diff options
author | RealSilverMoon <31100241+RealSilverMoon@users.noreply.github.com> | 2024-02-01 01:15:29 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-31 18:15:29 +0100 |
commit | 787eba0a15c583b240e96630978b9c3539e55fa4 (patch) | |
tree | d4a4ba4e4fb4ea9d09174215581da5c79a6413a2 /src/main | |
parent | 19950f533392fdadc5858ba12adce64374414083 (diff) | |
download | GT5-Unofficial-787eba0a15c583b240e96630978b9c3539e55fa4.tar.gz GT5-Unofficial-787eba0a15c583b240e96630978b9c3539e55fa4.tar.bz2 GT5-Unofficial-787eba0a15c583b240e96630978b9c3539e55fa4.zip |
Add Drone Centre (#2412)
* Add Drone Centre
* Apply texture and model
* Update en_US.lang
* Remove import.*
* Switch to block render
* Balance range and break chance
* Add recipe
* Spotless
* Update lang
* Fix recipe
* Rewrite connection system and UI
* Remove debuff party
* Spotless
* Fix server class not found
* A stupid enough recipe
* Another bad recipe
* Update tooltip & i18n
* Close it!
* Spotless
* Disable draggable
* prohibited remote control when centre is offline
* Rename
* Rename; Change specifiers
* Update texture
* spotless
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main')
29 files changed, 5241 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 7617b2c195..043cd0b763 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -297,6 +297,7 @@ public class GregTech_API { public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4, sBlockCasings5, sBlockCasings6, sBlockCasings8, sBlockCasings9, sSolenoidCoilCasings; public static Block sBlockLongDistancePipes; + public static Block sDroneRender; /** * Getting assigned by the Config */ diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index 418bf2d14c..78475455b1 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -613,6 +613,7 @@ public class GT_Values { + "minecraft7771"; public static final String AuthorQuerns = "Author: " + EnumChatFormatting.RED + "Querns"; + public static final String AuthorSilverMoon = "Author: " + EnumChatFormatting.AQUA + "SilverMoon"; public static final String AuthorTheEpicGamer274 = "Author: " + "TheEpicGamer274"; // 7.5F comes from GT_Tool_Turbine_Large#getBaseDamage() given huge turbines are the most efficient now. diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index ac1aeeb7b2..c6149f20b9 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -2023,7 +2023,12 @@ public enum ItemList implements IItemContainer { InfinityCooledCasing, Machine_Multi_TranscendentPlasmaMixer, Cover_Metrics_Transmitter, - NC_AdvancedSensorCard; + NC_AdvancedSensorCard, + Machine_Multi_DroneCentre, + TierdDrone0, + TierdDrone1, + TierdDrone2, + Hatch_DroneDownLink; public static final ItemList[] DYE_ONLY_ITEMS = { Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15 }, diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java index 3994a02085..d32cb781e2 100644 --- a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java +++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java @@ -676,7 +676,9 @@ public enum MetaTileEntityIDs { RECIPE_FILTER_ZPM(9337), RECIPE_FILTER_UV(9338), RECIPE_FILTER_UHV(9339), - INDUSTRIAL_APIARY(9399); + INDUSTRIAL_APIARY(9399), + Drone_Centre(9400), + DroneDownLink(9401); public final int ID; diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index ebce87fdb5..a4d41366d4 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -96,6 +96,7 @@ import gregtech.common.render.GT_FluidDisplayStackRenderer; import gregtech.common.render.GT_MetaGenerated_Tool_Renderer; import gregtech.common.render.GT_MultiTile_Renderer; import gregtech.common.render.GT_PollutionRenderer; +import gregtech.common.render.GT_RenderDrone; import gregtech.common.render.GT_Renderer_Block; import gregtech.common.render.GT_Renderer_Entity_Arrow; import gregtech.common.render.items.GT_MetaGenerated_Item_Renderer; @@ -623,6 +624,7 @@ public class GT_Client extends GT_Proxy implements Runnable { super.onLoad(); new GT_Renderer_Block(); new GT_MultiTile_Renderer(); + new GT_RenderDrone(); metaGeneratedItemRenderer = new GT_MetaGenerated_Item_Renderer(); for (GT_MetaGenerated_Item item : GT_MetaGenerated_Item.sInstances.values()) { metaGeneratedItemRenderer.registerItem(item); diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 978b0caf9a..13f5939e38 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -175,6 +175,7 @@ import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.misc.GlobalEnergyWorldSavedData; import gregtech.common.misc.GlobalMetricsCoverDatabase; import gregtech.common.misc.spaceprojects.SpaceProjectWorldSavedData; +import gregtech.common.tileentities.machines.multi.drone.GT_MetaTileEntity_DroneCentre; public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { @@ -1397,6 +1398,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public void onServerStarted() { GregTech_API.sWirelessRedstone.clear(); + GT_MetaTileEntity_DroneCentre.getCentreMap() + .clear(); GT_Log.out.println( "GT_Mod: Cleaning up all OreDict Crafting Recipes, which have an empty List in them, since they are never meeting any Condition."); List<IRecipe> tList = CraftingManager.getInstance() diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Drone.java b/src/main/java/gregtech/common/blocks/GT_Block_Drone.java new file mode 100644 index 0000000000..81d1acc228 --- /dev/null +++ b/src/main/java/gregtech/common/blocks/GT_Block_Drone.java @@ -0,0 +1,65 @@ +package gregtech.common.blocks; + +import java.util.ArrayList; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; +import gregtech.common.tileentities.render.TileDrone; + +public class GT_Block_Drone extends Block { + + public GT_Block_Drone() { + super(Material.iron); + this.setResistance(20f); + this.setHardness(-1.0f); + this.setCreativeTab(GregTech_API.TAB_GREGTECH); + this.setBlockName("gt.dronerender"); + this.setLightLevel(100.0f); + GameRegistry.registerBlock(this, getUnlocalizedName()); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + blockIcon = iconRegister.registerIcon("gregtech:iconsets/TRANSPARENT"); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean canRenderInPass(int a) { + return true; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + + @Override + public TileEntity createTileEntity(World world, int metadata) { + return new TileDrone(); + } + + @Override + public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { + return new ArrayList<>(); + } +} diff --git a/src/main/java/gregtech/common/items/GT_TierDrone.java b/src/main/java/gregtech/common/items/GT_TierDrone.java new file mode 100644 index 0000000000..58da852d0e --- /dev/null +++ b/src/main/java/gregtech/common/items/GT_TierDrone.java @@ -0,0 +1,18 @@ +package gregtech.common.items; + +import gregtech.api.items.GT_Generic_Item; + +public class GT_TierDrone extends GT_Generic_Item { + + private final int level; + + public GT_TierDrone(String aUnlocalized, String aEnglish, String aEnglishTooltip, int level) { + super(aUnlocalized, aEnglish, aEnglishTooltip); + this.level = level; + this.setMaxStackSize(64); + } + + public int getLevel() { + return level; + } +} diff --git a/src/main/java/gregtech/common/render/GT_RenderDrone.java b/src/main/java/gregtech/common/render/GT_RenderDrone.java new file mode 100644 index 0000000000..af1336a219 --- /dev/null +++ b/src/main/java/gregtech/common/render/GT_RenderDrone.java @@ -0,0 +1,93 @@ +package gregtech.common.render; + +import static gregtech.api.enums.Mods.GregTech; + +import net.minecraft.client.renderer.OpenGlHelper; +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; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.common.tileentities.render.TileDrone; + +@SideOnly(Side.CLIENT) +public class GT_RenderDrone extends TileEntitySpecialRenderer { + + private static final ResourceLocation DroneTexture = new ResourceLocation(GregTech.ID, "textures/model/drone.png"); + private static final IModelCustom Drone = AdvancedModelLoader + .loadModel(new ResourceLocation(GregTech.ID, "textures/model/drone.obj")); + + public GT_RenderDrone() { + ClientRegistry.bindTileEntitySpecialRenderer(TileDrone.class, this); + } + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) { + if (!(tile instanceof TileDrone drone)) return; + final float size = 1.0f; + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + renderDrone(size); + renderBlade(drone, size); + GL11.glPopMatrix(); + } + + private void renderDrone(double size) { + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + this.bindTexture(DroneTexture); + GL11.glScaled(size, size, size); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240f, 240f); + Drone.renderOnly("drone", "box", "main"); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void renderBlade(TileDrone drone, double size) { + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + this.bindTexture(DroneTexture); + GL11.glScaled(size, size, size); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240f, 240f); + GL11.glPushMatrix(); + GL11.glTranslated(-0.7d * size, -1 * size, -0.7 * size); + GL11.glRotated(drone.rotation, 0, 1, 0); + GL11.glTranslated(0.7d * size, 1 * size, 0.7 * size); + Drone.renderOnly("blade2"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(-0.7d * size, -1 * size, 0.7 * size); + GL11.glRotated(drone.rotation, 0, 1, 0); + GL11.glTranslated(0.7d * size, 1 * size, -0.7 * size); + Drone.renderOnly("blade3"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(0.7d * size, -1 * size, -0.7 * size); + GL11.glRotated(drone.rotation, 0, 1, 0); + GL11.glTranslated(-0.7d * size, 1 * size, 0.7 * size); + Drone.renderOnly("blade1"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(0.7d * size, -1 * size, 0.7 * size); + GL11.glRotated(drone.rotation, 0, 1, 0); + GL11.glTranslated(-0.7d * size, 1 * size, -0.7 * size); + Drone.renderOnly("blade4"); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/DroneConnection.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/DroneConnection.java new file mode 100644 index 0000000000..57a8bea352 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/DroneConnection.java @@ -0,0 +1,123 @@ +package gregtech.common.tileentities.machines.multi.drone; + +import static gregtech.GT_Mod.gregtechproxy; + +import java.util.Optional; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; +import net.minecraftforge.common.DimensionManager; + +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.util.GT_Util; + +public class DroneConnection { + + String customName; + GT_MetaTileEntity_MultiBlockBase machine; + ItemStack machineItem; + ChunkCoordinates machineCoord; + GT_MetaTileEntity_DroneCentre centre; + ChunkCoordinates centreCoord; + World world; + + public DroneConnection(GT_MetaTileEntity_MultiBlockBase machine, GT_MetaTileEntity_DroneCentre centre) { + this.machine = machine; + this.machineItem = machine.getStackForm(1); + machineCoord = machine.getBaseMetaTileEntity() + .getCoords(); + this.centre = centre; + centreCoord = centre.getBaseMetaTileEntity() + .getCoords(); + this.world = centre.getBaseMetaTileEntity() + .getWorld(); + customName = Optional.ofNullable(centre.tempNameList.remove(machineCoord.toString())) + .orElse(machine.getLocalName()); + } + + public DroneConnection(NBTTagCompound aNBT) { + NBTTagCompound machineTag = aNBT.getCompoundTag("machine"); + NBTTagCompound centreTag = aNBT.getCompoundTag("centre"); + if (!gregtechproxy.isClientSide()) { + this.world = DimensionManager.getWorld(aNBT.getInteger("worldID")); + } else { + this.world = Minecraft.getMinecraft().thePlayer.worldObj; + } + machineItem = ItemStack.loadItemStackFromNBT(aNBT.getCompoundTag("item")); + machineCoord = new ChunkCoordinates( + machineTag.getInteger("x"), + machineTag.getInteger("y"), + machineTag.getInteger("z")); + this.machine = getLoadedGT_BaseMachineAt(machineCoord, world, true); + centreCoord = new ChunkCoordinates( + centreTag.getInteger("x"), + centreTag.getInteger("y"), + centreTag.getInteger("z")); + this.centre = (GT_MetaTileEntity_DroneCentre) getLoadedGT_BaseMachineAt(centreCoord, world, true); + this.customName = aNBT.getString("name"); + } + + public GT_MetaTileEntity_MultiBlockBase getMachine() { + return machine; + } + + public boolean reCheckConnection() { + if (machine == null) this.machine = getLoadedGT_BaseMachineAt(machineCoord, world, true); + if (centre == null) + this.centre = (GT_MetaTileEntity_DroneCentre) getLoadedGT_BaseMachineAt(centreCoord, world, true); + if (machine != null && centre != null + && !centre.getConnectionList() + .contains(this)) + centre.getConnectionList() + .add(this); + return isValid(); + } + + public String getCustomName() { + return customName; + } + + public void setCustomName(String name) { + customName = name; + } + + public NBTTagCompound transConnectionToNBT() { + NBTTagCompound aNBT = new NBTTagCompound(); + if (!this.isValid()) return aNBT; + aNBT.setTag("machine", transGT_BaseMachineToNBT(machine)); + aNBT.setTag("centre", transGT_BaseMachineToNBT(centre)); + aNBT.setTag("item", machineItem.writeToNBT(new NBTTagCompound())); + aNBT.setInteger( + "worldID", + machine.getBaseMetaTileEntity() + .getWorld().provider.dimensionId); + aNBT.setString("name", getCustomName()); + return aNBT; + } + + public GT_MetaTileEntity_MultiBlockBase getLoadedGT_BaseMachineAt(ChunkCoordinates coords, World world, + boolean isLoaded) { + TileEntity te = GT_Util.getTileEntity(world, coords, isLoaded); + if (te == null) return null; + return (GT_MetaTileEntity_MultiBlockBase) ((IGregTechTileEntity) te).getMetaTileEntity(); + } + + private NBTTagCompound transGT_BaseMachineToNBT(GT_MetaTileEntity_MultiBlockBase machine) { + IHasWorldObjectAndCoords baseCoord = machine.getBaseMetaTileEntity(); + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("x", baseCoord.getXCoord()); + tag.setInteger("y", baseCoord.getYCoord()); + tag.setInteger("z", baseCoord.getZCoord()); + return tag; + } + + public boolean isValid() { + return machine != null && machine.isValid() && centre != null && centre.isValid(); + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java new file mode 100644 index 0000000000..ee4ea4978d --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java @@ -0,0 +1,666 @@ +package gregtech.common.tileentities.machines.multi.drone; + +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; +import static gregtech.api.enums.GT_HatchElement.InputBus; +import static gregtech.api.enums.GT_Values.AuthorSilverMoon; +import static gregtech.api.multitileentity.multiblock.casing.Glasses.chainAllGlasses; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.HashMultimap; +import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; +import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import com.gtnewhorizon.structurelib.util.Vec3Impl; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.drawable.UITexture; +import com.gtnewhorizons.modularui.api.forge.ItemStackHandler; +import com.gtnewhorizons.modularui.api.math.Alignment; +import com.gtnewhorizons.modularui.api.math.Color; +import com.gtnewhorizons.modularui.api.math.MainAxisAlignment; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.Scrollable; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; +import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget; + +import appeng.api.util.DimensionalCoord; +import appeng.api.util.WorldCoord; +import appeng.client.render.BlockPosHighlighter; +import gregtech.api.GregTech_API; +import gregtech.api.enums.SoundResource; +import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Utility; +import gregtech.common.items.GT_TierDrone; +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; + +public class GT_MetaTileEntity_DroneCentre extends + GT_MetaTileEntity_ExtendedPowerMultiBlockBase<GT_MetaTileEntity_DroneCentre> implements ISurvivalConstructable { + + private static final IIconContainer ACTIVE = new Textures.BlockIcons.CustomIcon("iconsets/DRONE_CENTRE_ACTIVE"); + private static final IIconContainer FACE = new Textures.BlockIcons.CustomIcon("iconsets/DRONE_CENTRE_FACE"); + private static final IIconContainer INACTIVE = new Textures.BlockIcons.CustomIcon("iconsets/DRONE_CENTRE_INACTIVE"); + private Vec3Impl centreCoord; + private int droneLevel = 0; + private int buttonID; + private final List<DroneConnection> connectionList = new ArrayList<>(); + public HashMap<String, String> tempNameList = new HashMap<>(); + // Save centre by dimID + private static final HashMultimap<Integer, GT_MetaTileEntity_DroneCentre> droneMap = HashMultimap.create(); + // spotless off + private static final IStructureDefinition<GT_MetaTileEntity_DroneCentre> STRUCTURE_DEFINITION = StructureDefinition + .<GT_MetaTileEntity_DroneCentre>builder() + .addShape( + "main", + transpose( + new String[][] { { " ", " ", " ", " ", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, + { "CE~EC", "C C", "C C", "C C", "CAAAC", "CCCCC", "CAAAC", "C C", "CCCCC" }, + { "CEEEC", "CBBBC", "CBDBC", "CBBBC", "CCCCC", "CCCCC", "CCCCC", "CCCCC", "CCCCC" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" }, + { "C C", " ", " ", " ", " ", " ", " ", " ", "C C" } })) + .addElement( + 'E', + buildHatchAdder(GT_MetaTileEntity_DroneCentre.class).atLeast(InputBus) + .casingIndex(59) + .dot(1) + .buildAndChain(ofBlock(GregTech_API.sBlockCasings4, 2))) + .addElement('C', ofBlock(GregTech_API.sBlockCasings4, 2)) + .addElement('A', chainAllGlasses()) + .addElement('B', ofBlock(GregTech_API.sBlockCasings1, 11)) + .addElement('D', ofBlock(GregTech_API.sBlockCasings4, 0)) + .build(); + + // spotless on + public GT_MetaTileEntity_DroneCentre(String name) { + super(name); + } + + public GT_MetaTileEntity_DroneCentre(int ID, String Name, String NameRegional) { + super(ID, Name, NameRegional); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_DroneCentre(super.mName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aActive, boolean redstoneLevel) { + if (side == aFacing) { + if (getBaseMetaTileEntity().isActive()) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(59), TextureFactory.builder() + .addIcon(ACTIVE) + .extFacing() + .build() }; + } else { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(59), TextureFactory.builder() + .addIcon(INACTIVE) + .extFacing() + .build() }; + } + } else if (side == aFacing.getOpposite()) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(59), TextureFactory.builder() + .addIcon(FACE) + .extFacing() + .build() }; + } + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(59) }; + } + + @Override + public IStructureDefinition<GT_MetaTileEntity_DroneCentre> getStructureDefinition() { + return STRUCTURE_DEFINITION; + } + + @Override + protected GT_Multiblock_Tooltip_Builder createTooltip() { + GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Drone Centre") + .addInfo("Drone Center Controller") + .addInfo(EnumChatFormatting.AQUA + "Drone #10032, cleared for takeoff!") + .addInfo("Monitors multiblock machines in range.") + .addInfo("Replace maintenance hatch on other multi with drone downlink module.") + .addInfo("Provides maintenance, power control, monitoring and etc.") + .addInfo("Range is determined by drone tier: T1-32, T2-128, T3-512") + .addInfo("Place drones in input bus; only one needed to operate.") + .addInfo("Automatically upgrade based on the drone level in the input bus.") + .addInfo("There is a chance per second that the drone will crash.") + .addInfo("Chance is determined by drone tier: T1-1/28800, T2-1/172800, T3-0") + .addInfo("If machine is too far, remote control would not available") + .addInfo(AuthorSilverMoon) + .addSeparator() + .beginStructureBlock(5, 6, 9, false) + .addStructureInfo("Do not need maintenance hatch") + .addSeparator() + .toolTipFinisher("Gregtech"); + return tt; + } + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + buildPiece("main", stackSize, hintsOnly, 2, 1, 0); + } + + @Override + public int survivalConstruct(ItemStack stack, int elementBudget, ISurvivalBuildEnvironment env) { + if (mMachine) return -1; + return survivialBuildPiece("main", stack, 2, 1, 0, elementBudget, env, false, true); + } + + @Override + protected IAlignmentLimits getInitialAlignmentLimits() { + // I don't think a drone can take off HORIZONTALLY! + return (d, r, f) -> (d.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 && r.isNotRotated() + && !f.isVerticallyFliped(); + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + return checkPiece("main", 2, 1, 0); + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + @Override + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack aStack) { + return true; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + fixAll(); + if (aTick % 200 == 0) { + if (switch (droneLevel) { + case 1 -> getBaseMetaTileEntity().getRandomNumber(28800); + case 2 -> getBaseMetaTileEntity().getRandomNumber(172800); + default -> 1; + } == 0) { + droneLevel = 0; + if (!tryConsumeDrone()) criticalStopMachine(); + } + } + // Clean invalid connections every 4 seconds + if (aTick % 80 == 0) connectionList.removeIf(v -> !v.isValid()); + } + if (mMaxProgresstime > 0 && mMaxProgresstime - mProgresstime == 1) destroyRenderBlock(); + super.onPostTick(aBaseMetaTileEntity, aTick); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + droneLevel = aNBT.getInteger("drone"); + NBTTagCompound nameList = aNBT.getCompoundTag("conList"); + for (String s : nameList.func_150296_c()) { + tempNameList.put(s, nameList.getString(s)); + } + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("drone", droneLevel); + NBTTagCompound conList = new NBTTagCompound(); + for (DroneConnection con : connectionList) { + if (!Objects.equals(con.customName, con.machine.getLocalName())) + conList.setString(con.machineCoord.toString(), con.customName); + } + aNBT.setTag("conList", conList); + } + + @Override + public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, + int z) { + super.getWailaNBTData(player, tile, tag, world, x, y, z); + tag.setInteger("connectionCount", connectionList.size()); + if (droneLevel != 0) tag.setInteger("droneLevel", droneLevel); + } + + @Override + public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + NBTTagCompound tag = accessor.getNBTData(); + currenttip.add( + EnumChatFormatting.AQUA + StatCollector.translateToLocal("GT5U.waila.drone_downlink.droneLevel") + + tag.getInteger("droneLevel")); + currenttip.add( + StatCollector.translateToLocal("GT5U.waila.drone_downlink.connectionCount") + + tag.getInteger("connectionCount")); + super.getWailaBody(itemStack, currenttip, accessor, config); + } + + @Override + @NotNull + public CheckRecipeResult checkProcessing() { + if (droneLevel == 0) { + if (!tryConsumeDrone()) return SimpleCheckRecipeResult.ofFailure("drone_noDrone"); + } + if (droneLevel == 1 || droneLevel == 2) tryUpdateDrone(); + mMaxProgresstime = 200 * droneLevel; + createRenderBlock(); + return SimpleCheckRecipeResult.ofSuccess("drone_operating"); + } + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { + super.onFirstTick(aBaseMetaTileEntity); + if (aBaseMetaTileEntity.isServerSide()) { + if (droneMap.containsValue(this)) return; + centreCoord = new Vec3Impl( + getBaseMetaTileEntity().getXCoord(), + getBaseMetaTileEntity().getYCoord(), + getBaseMetaTileEntity().getZCoord()); + droneMap.put(getBaseMetaTileEntity().getWorld().provider.dimensionId, this); + } + } + + @Override + public void onRemoval() { + droneMap.remove(getBaseMetaTileEntity().getWorld().provider.dimensionId, this); + } + + public List<DroneConnection> getConnectionList() { + return connectionList; + } + + public int getRange() { + return switch (droneLevel) { + case 1 -> 32; + case 2 -> 128; + case 3 -> 512; + default -> 0; + }; + } + + public Vec3Impl getCoords() { + return centreCoord; + } + + private boolean tryConsumeDrone() { + List<ItemStack> inputs = getStoredInputs(); + if (inputs.isEmpty()) return false; + for (ItemStack item : inputs) { + if (item != null && item.getItem() instanceof GT_TierDrone drone) { + this.droneLevel = drone.getLevel(); + item.stackSize--; + updateSlots(); + return true; + } + } + return false; + } + + private void tryUpdateDrone() { + List<ItemStack> inputs = getStoredInputs(); + if (inputs.isEmpty()) return; + for (ItemStack item : inputs) { + if (item != null && item.getItem() instanceof GT_TierDrone drone) { + if (drone.getLevel() <= this.droneLevel) continue; + this.droneLevel = drone.getLevel(); + item.stackSize--; + updateSlots(); + return; + } + } + } + + private void createRenderBlock() { + int x = getBaseMetaTileEntity().getXCoord(); + int y = getBaseMetaTileEntity().getYCoord(); + int z = getBaseMetaTileEntity().getZCoord(); + + double xOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetX; + double zOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetZ; + double yOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetY; + + this.getBaseMetaTileEntity() + .getWorld() + .setBlock((int) (x + xOffset), (int) (y + yOffset), (int) (z + zOffset), Blocks.air); + this.getBaseMetaTileEntity() + .getWorld() + .setBlock((int) (x + xOffset), (int) (y + yOffset), (int) (z + zOffset), GregTech_API.sDroneRender); + } + + private void destroyRenderBlock() { + int x = getBaseMetaTileEntity().getXCoord(); + int y = getBaseMetaTileEntity().getYCoord(); + int z = getBaseMetaTileEntity().getZCoord(); + + double xOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetX; + double zOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetZ; + double yOffset = 2 * getExtendedFacing().getRelativeBackInWorld().offsetY; + + this.getBaseMetaTileEntity() + .getWorld() + .setBlock((int) (x + xOffset), (int) (y + yOffset), (int) (z + zOffset), Blocks.air); + } + + private void fixAll() { + this.mWrench = this.mScrewdriver = this.mSoftHammer = this.mHardHammer = this.mCrowbar = this.mSolderingTool = true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + super.addUIWidgets(builder, buildContext); + buildContext.addSyncedWindow(10, this::createMachineListWindow); + buildContext.addSyncedWindow(11, this::createCustomNameWindow); + builder.widget(// Machine List + new ButtonWidget().setOnClick( + (clickData, widget) -> { + if (!widget.isClient()) widget.getContext() + .openSyncedWindow(10); + }) + .setSize(16, 16) + .setBackground(() -> { + List<UITexture> UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_WHITELIST); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(StatCollector.translateToLocal("GT5U.gui.button.drone_open_list")) + .setPos(94, 91) + .setEnabled(getBaseMetaTileEntity().isActive())) + .widget(// Turn on ALL machines + new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient()) { + if (!getBaseMetaTileEntity().isActive()) { + GT_Utility.sendChatToPlayer( + widget.getContext() + .getPlayer(), + GT_Utility.trans("350", "You cannot control machine when drone centre shut down!")); + return; + } + for (DroneConnection mte : connectionList) { + mte.machine.getBaseMetaTileEntity() + .enableWorking(); + } + GT_Utility.sendChatToPlayer( + widget.getContext() + .getPlayer(), + GT_Utility.trans("351", "Successfully turn on all machines!")); + widget.getContext() + .getPlayer() + .closeScreen(); + } + }) + .setSize(16, 16) + .setBackground(() -> { + List<UITexture> UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(StatCollector.translateToLocal("GT5U.gui.button.drone_poweron_all")) + .setPos(146, 91) + .setEnabled(getBaseMetaTileEntity().isActive())) + .widget(// Turn off ALL machines + new ButtonWidget().setOnClick((clickData, widget) -> { + if (!widget.isClient()) { + if (!getBaseMetaTileEntity().isActive()) { + GT_Utility.sendChatToPlayer( + widget.getContext() + .getPlayer(), + GT_Utility.trans("350", "You cannot control machine when drone centre shut down!")); + return; + } + for (DroneConnection mte : connectionList) { + mte.machine.getBaseMetaTileEntity() + .disableWorking(); + } + GT_Utility.sendChatToPlayer( + widget.getContext() + .getPlayer(), + GT_Utility.trans("352", "Successfully turn off all machines!")); + widget.getContext() + .getPlayer() + .closeScreen(); + } + }) + .setSize(16, 16) + .setBackground(() -> { + List<UITexture> UI = new ArrayList<>(); + UI.add(GT_UITextures.BUTTON_STANDARD); + UI.add(GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_OFF); + return UI.toArray(new IDrawable[0]); + }) + .addTooltip(StatCollector.translateToLocal("GT5U.gui.button.drone_poweroff_all")) + .setPos(120, 91) + .setEnabled(getBaseMetaTileEntity().isActive())) + .widget(new FakeSyncWidget.ListSyncer<>(() -> connectionList, var1 -> { + connectionList.clear(); + connectionList.addAll(var1); + }, (buffer, j) -> { + try { + buffer.writeNBTTagCompoundToBuffer(j.transConnectionToNBT()); + } catch (IOException e) { + GT_Log.err.println(e.getCause()); + } + }, buffer -> { + try { + return new DroneConnection(buffer.readNBTTagCompoundFromBuffer()); + } catch (IOException e) { + GT_Log.err.println(e.getCause()); + } + return null; + })); + } + + protected ModularWindow createMachineListWindow(final EntityPlayer player) { + ModularWindow.Builder builder = ModularWindow.builder(260, 215); + builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setGuiTint(getGUIColorization()); + builder.widget( + ButtonWidget.closeWindowButton(true) + .setPos(245, 3)); + builder.widget( + new TextWidget(EnumChatFormatting.BOLD + StatCollector.translateToLocal("GT5U.gui.text.drone_title")) + .setScale(2) + .setTextAlignment(Alignment.Center) + .setPos(0, 10) + .setSize(260, 8)); + Scrollable MachineContainer = new Scrollable().setVerticalScroll(); + for (int i = 0; i < connectionList.size(); i++) { + DroneConnection connection = connectionList.get(i); + ItemStackHandler drawitem = new ItemStackHandler(1); + drawitem.setStackInSlot(0, connection.machineItem); + DynamicPositionedRow row = new DynamicPositionedRow().setSynced(false); + GT_MetaTileEntity_MultiBlockBase coreMachine = connection.machine; + int finalI = i; + row.widget( + SlotWidget.phantom(drawitem, 0) + .disableInteraction() + .setPos(0, 0)) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + buttonID = finalI; + if (!widget.isClient()) widget.getContext() + .openSyncedWindow(11); + }) + .addTooltip(StatCollector.translateToLocal("GT5U.gui.button.drone_setname")) + .setBackground( + () -> new IDrawable[] { GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_BUTTON_PRINT }) + .setSize(16, 16)); + // Client can't handle unloaded machines + row.widget( + new ButtonWidget().setOnClick( + (clickData, widget) -> Optional.ofNullable(coreMachine) + .ifPresent(machine -> { + if (!getBaseMetaTileEntity().isActive()) { + GT_Utility.sendChatToPlayer( + player, + GT_Utility.trans("350", "You cannot control machine when drone centre shut down!")); + return; + } + if (machine.isAllowedToWork()) { + machine.disableWorking(); + } else { + machine.enableWorking(); + } + })) + .setPlayClickSoundResource( + () -> Optional.ofNullable(coreMachine) + .filter(GT_MetaTileEntity_MultiBlockBase::isAllowedToWork) + .map(var -> SoundResource.GUI_BUTTON_UP.resourceLocation) + .orElse(SoundResource.GUI_BUTTON_DOWN.resourceLocation)) + .setBackground( + () -> Optional.ofNullable(coreMachine) + .map( + machine -> machine.isAllowedToWork() + ? new IDrawable[] { GT_UITextures.BUTTON_STANDARD_PRESSED, + GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_ON } + : new IDrawable[] { GT_UITextures.BUTTON_STANDARD, + GT_UITextures.OVERLAY_BUTTON_POWER_SWITCH_OFF }) + .orElse(new IDrawable[] { GT_UITextures.PICTURE_STALLED_ELECTRICITY })) + .attachSyncer( + new FakeSyncWidget.BooleanSyncer( + () -> Optional.ofNullable(coreMachine) + .map(GT_MetaTileEntity_MultiBlockBase::isAllowedToWork) + .orElse(false), + var -> Optional.ofNullable(coreMachine) + .ifPresent(machine -> { + if (var) machine.enableWorking(); + else machine.disableWorking(); + })), + builder) + .addTooltip( + coreMachine != null ? StatCollector.translateToLocal("GT5U.gui.button.power_switch") + : StatCollector.translateToLocal("GT5U.gui.button.drone_outofrange")) + .setSize(16, 16)) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + if (widget.isClient()) { + Optional.ofNullable(coreMachine) + .ifPresent(machine -> { + highlightMachine(player, machine); + player.closeScreen(); + }); + } + }) + .addTooltip( + coreMachine != null ? StatCollector.translateToLocal("GT5U.gui.button.drone_highlight") + : StatCollector.translateToLocal("GT5U.gui.button.drone_outofrange")) + .setBackground( + () -> Optional.ofNullable(coreMachine) + .map( + machine -> new IDrawable[] { GT_UITextures.BUTTON_STANDARD, + GT_UITextures.OVERLAY_BUTTON_INVERT_REDSTONE }) + .orElse(new IDrawable[] { GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF })) + .setSize(16, 16)); + row.widget( + new TextWidget( + connectionList.get(i) + .getCustomName()).setTextAlignment(Alignment.CenterLeft) + .setPos(0, 4)); + MachineContainer.widget( + row.setAlignment(MainAxisAlignment.SPACE_BETWEEN) + .setSpace(4) + .setPos(0, i * 20)); + } + return builder.widget( + MachineContainer.setPos(10, 30) + .setSize(240, 160)) + .setDraggable(false) + .build(); + } + + protected ModularWindow createCustomNameWindow(final EntityPlayer player) { + ModularWindow.Builder builder = ModularWindow.builder(150, 40); + builder.setBackground(GT_UITextures.BACKGROUND_SINGLEBLOCK_DEFAULT); + builder.setGuiTint(getGUIColorization()); + return builder.widget( + ButtonWidget.closeWindowButton(true) + .setPos(135, 3)) + .widget( + new TextWidget("Custom Machine Name").setTextAlignment(Alignment.Center) + .setPos(0, 5) + .setSize(150, 8)) + .widget( + new TextFieldWidget().setGetter( + () -> connectionList.get(buttonID) + .getCustomName()) + .setSetter( + var -> connectionList.get(buttonID) + .setCustomName(var)) + .setTextAlignment(Alignment.CenterLeft) + .setTextColor(Color.WHITE.dark(1)) + .setFocusOnGuiOpen(true) + .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD_LIGHT_GRAY.withOffset(-1, -1, 2, 2)) + .setPos(10, 16) + .setSize(130, 16)) + .build(); + } + + // Just like HIGHLIGHT_INTERFACE (and exactly from it) + private void highlightMachine(EntityPlayer player, GT_MetaTileEntity_MultiBlockBase machine) { + DimensionalCoord blockPos = new DimensionalCoord( + machine.getBaseMetaTileEntity() + .getXCoord(), + machine.getBaseMetaTileEntity() + .getYCoord(), + machine.getBaseMetaTileEntity() + .getZCoord(), + machine.getBaseMetaTileEntity() + .getWorld().provider.dimensionId); + WorldCoord blockPos2 = new WorldCoord((int) player.posX, (int) player.posY, (int) player.posZ); + BlockPosHighlighter.highlightBlock( + blockPos, + System.currentTimeMillis() + 500 * WorldCoord.getTaxicabDistance(blockPos, blockPos2)); + } + + public static HashMultimap<Integer, GT_MetaTileEntity_DroneCentre> getCentreMap() { + return droneMap; + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java new file mode 100644 index 0000000000..6e65033980 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java @@ -0,0 +1,269 @@ +package gregtech.common.tileentities.machines.multi.drone; + +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; +import java.util.Set; +import java.util.stream.Collectors; + +import net.minecraft.client.renderer.texture.IIconRegister; +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.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.gtnewhorizon.structurelib.util.Vec3Impl; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.render.TextureFactory; +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; + +public class GT_MetaTileEntity_Hatch_DroneDownLink extends GT_MetaTileEntity_Hatch_Maintenance { + + private Vec3Impl downlinkCoord; + private DroneConnection connection; + // This has to be existed for doing random damage. + private GT_MetaTileEntity_MultiBlockBase machine; + private static final IIconContainer moduleActive = new Textures.BlockIcons.CustomIcon( + "iconsets/OVERLAY_DRONE_MODULE_ACTIVE"); + + public GT_MetaTileEntity_Hatch_DroneDownLink(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier); + } + + public GT_MetaTileEntity_Hatch_DroneDownLink(String aName, int aTier, String[] aDescription, + ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures, false); + } + + @Override + public String[] getDescription() { + return new String[] { "Built-in powerful navigation beacon!" }; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister) { + super.registerIcons(aBlockIconRegister); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[] { aBaseTexture, TextureFactory.of(moduleActive) }; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[] { aBaseTexture, TextureFactory.of(moduleActive) }; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_DroneDownLink( + this.mName, + this.mTier, + this.mDescriptionArray, + this.mTextures); + } + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { + downlinkCoord = new Vec3Impl( + getBaseMetaTileEntity().getXCoord(), + getBaseMetaTileEntity().getYCoord(), + getBaseMetaTileEntity().getZCoord()); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + if (hasConnection()) { + if (connection.centre.getBaseMetaTileEntity() + .isActive()) { + doNormalMaintain(); + } else { + // Centre offline? ...do nothing. + // doRandomIssue(); + } + } else { + // If the connection invalid, set it to null. + // Find connection every 10 second + if (aTick % 200 == 0) { + connection = null; + tryFindConnection(); + // Let's have some "surprise". Sorry, surprise party is over. + // if (this.machine != null && this.machine.isValid()) { + // doRandomIssue(); + } + } + } + } + + private void doNormalMaintain() { + this.mWrench = this.mScrewdriver = this.mSoftHammer = this.mHardHammer = this.mCrowbar = this.mSolderingTool = true; + connection.machine.mWrench = connection.machine.mScrewdriver = connection.machine.mSoftHammer = connection.machine.mHardHammer = connection.machine.mCrowbar = connection.machine.mSolderingTool = true; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, + float aX, float aY, float aZ) { + return false; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return false; + } + + @Override + public void onRemoval() { + if (hasConnection()) connection.machine = null; + } + + private boolean hasConnection() { + if (connection == null) return false; + if (connection.isValid()) return true; + return connection.reCheckConnection(); + } + + /** + * Find a drone connection. This will search for all DC in the same dimension, then find one in range. + */ + private void tryFindConnection() { + if (GT_MetaTileEntity_DroneCentre.getCentreMap() + .containsKey(getBaseMetaTileEntity().getWorld().provider.dimensionId)) { + List<GT_MetaTileEntity_DroneCentre> target = GT_MetaTileEntity_DroneCentre.getCentreMap() + .get(getBaseMetaTileEntity().getWorld().provider.dimensionId) + .stream() + .collect(Collectors.toList()); + for (GT_MetaTileEntity_DroneCentre centre : target) { + if (centre.getCoords() + .withinDistance(this.downlinkCoord, centre.getRange()) + && centre.getBaseMetaTileEntity() + .isActive()) { + GT_MetaTileEntity_MultiBlockBase machine = tryFindCoreGTMultiBlock(); + if (machine != null && machine.isValid()) { + this.machine = machine; + connection = new DroneConnection(machine, centre); + connection.centre.getConnectionList() + .add(connection); + } + } + } + } + } + + private void doRandomIssue() { + switch (getBaseMetaTileEntity().getRandomNumber(6)) { + case 0 -> machine.mWrench = !machine.mWrench; + case 1 -> machine.mScrewdriver = !machine.mScrewdriver; + case 2 -> machine.mSoftHammer = !machine.mSoftHammer; + case 3 -> machine.mCrowbar = !machine.mCrowbar; + case 4 -> machine.mSolderingTool = !connection.machine.mSolderingTool; + case 5 -> machine.mHardHammer = !connection.machine.mHardHammer; + } + } + + // Find mainframe. Mainly from a method in GT_API——This will cause performance issue! Do not call it frequently. + private GT_MetaTileEntity_MultiBlockBase tryFindCoreGTMultiBlock() { + Queue<ChunkCoordinates> tQueue = new LinkedList<>(); + Set<ChunkCoordinates> visited = new HashSet<>(80); + tQueue.add( + this.getBaseMetaTileEntity() + .getCoords()); + World world = this.getBaseMetaTileEntity() + .getWorld(); + while (!tQueue.isEmpty()) { + final ChunkCoordinates aCoords = tQueue.poll(); + final TileEntity tTileEntity; + final boolean isMachineBlock; + tTileEntity = world.getTileEntity(aCoords.posX, aCoords.posY, aCoords.posZ); + isMachineBlock = GregTech_API.isMachineBlock( + world.getBlock(aCoords.posX, aCoords.posY, aCoords.posZ), + world.getBlockMetadata(aCoords.posX, aCoords.posY, aCoords.posZ)); + + // See if the block itself is MultiBlock, also the one we need. + if (tTileEntity instanceof IGregTechTileEntity te + && te.getMetaTileEntity() instanceof GT_MetaTileEntity_MultiBlockBase mte) + if (mte.mMaintenanceHatches.contains(this)) return mte; + + // Now see if we should add the nearby blocks to the queue: + // 1) If we've visited less than 5 blocks, then yes + // 2) If the tile says we should recursively update (pipes don't, machine blocks do) + // 3) If the block at the coordinates is marked as a machine block + if (visited.size() < 5 + || (tTileEntity instanceof IMachineBlockUpdateable + && ((IMachineBlockUpdateable) tTileEntity).isMachineBlockUpdateRecursive()) + || isMachineBlock) { + ChunkCoordinates tCoords; + + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX + 1, aCoords.posY, aCoords.posZ))) + tQueue.add(tCoords); + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX - 1, aCoords.posY, aCoords.posZ))) + tQueue.add(tCoords); + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX, aCoords.posY + 1, aCoords.posZ))) + tQueue.add(tCoords); + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX, aCoords.posY - 1, aCoords.posZ))) + tQueue.add(tCoords); + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX, aCoords.posY, aCoords.posZ + 1))) + tQueue.add(tCoords); + if (visited.add(tCoords = new ChunkCoordinates(aCoords.posX, aCoords.posY, aCoords.posZ - 1))) + tQueue.add(tCoords); + } + } + return null; + } + + @Override + public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, + int z) { + super.getWailaNBTData(player, tile, tag, world, x, y, z); + tag.setBoolean("connection", connection == null); + if (connection != null) { + tag.setInteger("x", connection.centreCoord.posX); + tag.setInteger("y", connection.centreCoord.posY); + tag.setInteger("z", connection.centreCoord.posZ); + } + } + + @Override + public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + NBTTagCompound tag = accessor.getNBTData(); + currenttip.add( + tag.getBoolean("connection") + ? EnumChatFormatting.RED + StatCollector.translateToLocal("GT5U.waila.drone_downlink.noConnection") + : EnumChatFormatting.AQUA + StatCollector.translateToLocal("GT5U.waila.drone_downlink.connection") + + tag.getInteger("x") + + " " + + tag.getInteger("y") + + " " + + tag.getInteger("z")); + super.getWailaBody(itemStack, currenttip, accessor, config); + } +} diff --git a/src/main/java/gregtech/common/tileentities/render/TileDrone.java b/src/main/java/gregtech/common/tileentities/render/TileDrone.java new file mode 100644 index 0000000000..625157ff37 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/render/TileDrone.java @@ -0,0 +1,24 @@ +package gregtech.common.tileentities.render; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileDrone extends TileEntity { + + public double rotation = 0; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return INFINITE_EXTENT_AABB; + } + + @Override + public double getMaxRenderDistanceSquared() { + return 65536; + } + + @Override + public void updateEntity() { + rotation = (rotation + 50) % 360d; + } +} diff --git a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java index 8ee6b07714..6fe3d273f6 100644 --- a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java +++ b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java @@ -221,6 +221,7 @@ import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_LV; import static gregtech.api.enums.MetaTileEntityIDs.WIREMILL_MV; import static gregtech.api.enums.Mods.BuildCraftFactory; import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GalacticraftCore; import static gregtech.api.enums.Mods.Gendustry; import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.NotEnoughItems; @@ -6485,6 +6486,31 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { OrePrefixes.rotor.get(Materials.StainlessSteel), 'P', OrePrefixes.pipeLarge.get(Materials.Polytetrafluoroethylene), 'M', ItemList.Electric_Motor_HV, 'B', ItemList.Hull_HV }); + + // Add Drone down link hatch + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_DroneDownLink.get(1L), + bits, + new Object[] { " S ", "CMC", "RRR", 'M', ItemList.Hatch_Maintenance, 'S', ItemList.Sensor_IV, 'R', + new ItemStack(GregTech_API.sBlockReinforced, 1, 9), 'C', ItemList.Conveyor_Module_EV }); + + // And Drone Centre + GT_Values.RA.stdBuilder() + .itemInputs( + ItemList.Casing_Assembler.get(1), + ItemList.Cover_SolarPanel_HV.get(4), + ItemList.Conveyor_Module_IV.get(2), + ItemList.Robot_Arm_IV.get(2), + ItemList.Sensor_IV.get(2), + ItemList.Energy_LapotronicOrb.get(4), + ItemList.Cover_WirelessNeedsMaintainance.get(1), + GalacticraftCore.isModLoaded() ? GT_ModHandler.getModItem(GalacticraftCore.ID, "item.basicItem", 1, 19) + : ItemList.Sensor_EV.get(4)) + .itemOutputs(ItemList.Machine_Multi_DroneCentre.get(1L)) + .fluidInputs(Materials.AdvancedGlue.getFluid(8000L)) + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(assemblerRecipes); } private static void registerShapelessCraftingRecipes() { diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java index 0f5023e854..c5dd0473a3 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java @@ -99,6 +99,21 @@ public class AssemblerRecipes implements Runnable { .eut(48) .addTo(assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TungstenSteel, 16), + GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Data), 4), + ItemList.Electric_Motor_IV.get(16), + ItemList.Emitter_EV.get(4), + ItemList.Duct_Tape.get(64), + ItemList.Energy_LapotronicOrb.get(1), + GT_Utility.getIntegratedCircuit(4)) + .itemOutputs(ItemList.TierdDrone0.get(4)) + .fluidInputs(Materials.AdvancedGlue.getFluid(144)) + .duration(10 * SECONDS) + .eut(48) + .addTo(assemblerRecipes); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java index 474e0575ac..8748c96654 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblyLineRecipes.java @@ -1,6 +1,9 @@ package gregtech.loaders.postload.recipes; import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GregTech; +import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.enums.Mods.TecTech; import static gregtech.api.util.GT_RecipeBuilder.HOURS; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; @@ -19,6 +22,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.util.ExternalMaterials; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; public class AssemblyLineRecipes implements Runnable { @@ -840,5 +844,51 @@ public class AssemblyLineRecipes implements Runnable { .duration(60 * SECONDS) .eut(TierEU.RECIPE_UV) .addTo(AssemblyLine); + + // Drone T2 + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.TierdDrone0.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.NaquadahAlloy, 16), + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4 }, + NewHorizonsCoreMod.isModLoaded() + ? GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HeavyDutyRocketEngineTier3", 4) + : ItemList.Casing_Firebox_TungstenSteel.get(16), + ItemList.Large_Fluid_Cell_Osmium.get(1), + GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.MysteriousCrystal, 1), + ItemList.Emitter_ZPM.get(4), + ItemList.Energy_Module.get(1), + ItemList.Cover_WirelessNeedsMaintainance.get(1)) + .itemOutputs(ItemList.TierdDrone1.get(4)) + .fluidInputs( + new FluidStack(solderIndalloy, 576), + FluidRegistry.getFluidStack(GTPlusPlus.isModLoaded() ? "fluid.rocketfuelmixc" : "nitrofuel", 4000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UV) + .addTo(AssemblyLine); + + // Drone T3 + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, ItemList.TierdDrone1.get(1)) + .metadata(RESEARCH_TIME, 8 * HOURS) + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Infinity, 16), + new Object[] { OrePrefixes.circuit.get(Materials.Bio), 4 }, + ItemList.Field_Generator_UV.get(16), + ItemList.Gravistar.get(8), + ItemList.Emitter_UV.get(4), + TecTech.isModLoaded() ? GT_ModHandler.getModItem(GregTech.ID, "gt.blockmachines", 16, 15497) + : ItemList.Hatch_AutoMaintenance.get(64), + ItemList.Energy_Cluster.get(8), + ItemList.Cover_WirelessNeedsMaintainance.get(1)) + .itemOutputs(ItemList.TierdDrone2.get(1)) + .fluidInputs( + new FluidStack(solderIndalloy, 144000), + GTPlusPlus.isModLoaded() ? FluidRegistry.getFluidStack("molten.ethylcyanoacrylatesuperglue", 2000) + : Materials.AdvancedGlue.getFluid(256000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(AssemblyLine); } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 0d1257350d..9373e4b12f 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -60,6 +60,7 @@ import gregtech.common.blocks.GT_Block_Casings6; import gregtech.common.blocks.GT_Block_Casings8; import gregtech.common.blocks.GT_Block_Casings9; import gregtech.common.blocks.GT_Block_Concretes; +import gregtech.common.blocks.GT_Block_Drone; import gregtech.common.blocks.GT_Block_Granites; import gregtech.common.blocks.GT_Block_Machines; import gregtech.common.blocks.GT_Block_Metal; @@ -78,7 +79,9 @@ import gregtech.common.items.GT_MetaGenerated_Item_98; import gregtech.common.items.GT_MetaGenerated_Item_99; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.items.GT_NeutronReflector_Item; +import gregtech.common.items.GT_TierDrone; import gregtech.common.items.GT_VolumetricFlask; +import gregtech.common.tileentities.render.TileDrone; public class GT_Loader_Item_Block_And_Fluid implements Runnable { @@ -540,7 +543,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GregTech_API.sBlockConcretes = new GT_Block_Concretes(); GregTech_API.sBlockStones = new GT_Block_Stones(); GregTech_API.sBlockOres1 = new GT_Block_Ores(); - + GregTech_API.sDroneRender = new GT_Block_Drone(); // meta ID order, DO NOT CHANGE ORDER GregTech_API.sBlockMetal1 = new GT_Block_Metal( @@ -664,6 +667,9 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { tBaseMetaTileEntity.getClass() .getName()); + GT_Log.out.println("GT_Mod: Registering the DroneRender."); + GameRegistry.registerTileEntity(TileDrone.class, "DroneRender"); + GT_Log.out.println("GT_Mod: Registering the BaseMetaPipeEntity."); GameRegistry.registerTileEntity(BaseMetaPipeEntity.class, "BaseMetaPipeEntity"); FMLInterModComms.sendMessage(AppliedEnergistics2.ID, "whitelist-spatial", BaseMetaPipeEntity.class.getName()); @@ -2208,5 +2214,12 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { .registerMachineBlock(GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("reinforcedGlass", 0)), 0); GregTech_API.sSolenoidCoilCasings = new GT_Cyclotron_Coils(); + ItemList.TierdDrone0 + .set(new GT_TierDrone("tierdDrone0", "Drone (Level 1)", "Quadcopter Stable Small Aircraft", 1)); + ItemList.TierdDrone1 + .set(new GT_TierDrone("tierdDrone1", "Drone (Level 2)", "Dual Turbo High-Ejection Medium Aircraft", 2)); + ItemList.TierdDrone2 + .set(new GT_TierDrone("tierdDrone2", "Drone (Level 3)", "Single Engine Anti-Gravity Large Aircraft", 3)); + } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 9977af29f8..d1196552c6 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -99,6 +99,8 @@ import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_UHV; import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_ULV; import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_UV; import static gregtech.api.enums.MetaTileEntityIDs.DYNAMO_HATCH_ZPM; +import static gregtech.api.enums.MetaTileEntityIDs.DroneDownLink; +import static gregtech.api.enums.MetaTileEntityIDs.Drone_Centre; import static gregtech.api.enums.MetaTileEntityIDs.EBF_CONTROLLER; import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_EV; import static gregtech.api.enums.MetaTileEntityIDs.ENERGY_HATCH_HV; @@ -577,6 +579,8 @@ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ProcessingA import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_PyrolyseOven; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_TranscendentPlasmaMixer; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_VacuumFreezer; +import gregtech.common.tileentities.machines.multi.drone.GT_MetaTileEntity_DroneCentre; +import gregtech.common.tileentities.machines.multi.drone.GT_MetaTileEntity_Hatch_DroneDownLink; import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Bronze; import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Steel; import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Bronze; @@ -859,7 +863,6 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC LARGE_TUNGSTENSTEEL_BOILER_CONTROLLER.ID, "multimachine.boiler.tungstensteel", "Large Tungstensteel Boiler").getStackForm(1L)); - ItemList.FusionComputer_LuV.set( new GT_MetaTileEntity_FusionComputer1( FUSION_CONTROLLER_MKI.ID, @@ -1029,7 +1032,9 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC ItemList.NanoForge.set( new GT_MetaTileEntity_NanoForge(NANO_FORGE_CONTROLLER.ID, "multimachine.nanoforge", "Nano Forge") .getStackForm(1)); - + ItemList.Machine_Multi_DroneCentre.set( + new GT_MetaTileEntity_DroneCentre(Drone_Centre.ID, "multimachine_DroneCentre", "Drone Centre") + .getStackForm(1)); } private static void registerSteamMachines() { @@ -4091,6 +4096,12 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC "Auto Maintenance Hatch", 6, true).getStackForm(1L)); + ItemList.Hatch_DroneDownLink.set( + new GT_MetaTileEntity_Hatch_DroneDownLink( + DroneDownLink.ID, + "hatch.dronedownlink", + "Drone DownLink Module", + 5).getStackForm(1)); ItemList.Hatch_DataAccess_EV.set( new GT_MetaTileEntity_Hatch_DataAccess(DATA_ACCESS_HATCH.ID, "hatch.dataaccess", "Data Access Hatch", 4) .getStackForm(1L)); diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 9e35aaa4e8..56e0df9dd3 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -418,6 +418,12 @@ GT5U.gui.button.ore_drill_cobblestone_on=§7Replace with cobblestone: §aON GT5U.gui.button.ore_drill_cobblestone_off=§7Replace with cobblestone: §4OFF GT5U.gui.button.drill_retract_pipes=§7Abort and retract mining pipes GT5U.gui.button.drill_retract_pipes_active=§4Cannot interrupt abort procedure +GT5U.gui.button.drone_setname=Set custom name for machine +GT5U.gui.button.drone_highlight=Highlight machine in the world +GT5U.gui.button.drone_outofrange=§4Machine is too far, drone control system not available! +GT5U.gui.button.drone_open_list=Open Machine List +GT5U.gui.button.drone_poweron_all=Turn ON ALL machines, no matter how remote +GT5U.gui.button.drone_poweroff_all=Turn OFF ALL machines, no matter how remote GT5U.gui.text.success=§aProcessing recipe GT5U.gui.text.generating=§aGenerating power GT5U.gui.text.no_recipe=§7No valid recipe found @@ -468,6 +474,9 @@ GT5U.gui.text.drill_offline_reason=Drill Offline: %s GT5U.gui.text.drill_offline_generic=Drill Offline GT5U.gui.text.stocking_bus_fail_extraction=§4Failed to extract expected amount of items from stocking bus. This can be caused by attaching multiple storage buses to the same inventory. GT5U.gui.text.stocking_hatch_fail_extraction=§4Failed to extract expected amount of fluids from stocking hatch. This can be caused by attaching multiple storage fluid buses to the same tank. +GT5U.gui.text.drone_noDrone=§4Can't find any drone in inputBuses! +GT5U.gui.text.drone_operating=§aDrone operating normally! +GT5U.gui.text.drone_title=Drone Control Centre GT5U.item.programmed_circuit.select.header=Reprogram Circuit @@ -612,6 +621,10 @@ GT5U.waila.stocking_bus.auto_pull.enabled=Auto-Pull from ME: Enabled GT5U.waila.stocking_bus.auto_pull.disabled=Auto-Pull from ME: Disabled GT5U.waila.stocking_bus.min_stack_size=Minimum Stack Size: %s GT5U.waila.stocking_hatch.min_amount=Minimum Amount: %s +GT5U.waila.drone_downlink.noConnection=Not connected +GT5U.waila.drone_downlink.connection=Connect to centre: +GT5U.waila.drone_downlink.connectionCount=Connection Count: +GT5U.waila.drone_downlink.droneLevel=Drone Level: achievement.flintpick=First Tools achievement.flintpick.desc=Craft a flint pick diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_ACTIVE.png Binary files differnew file mode 100644 index 0000000000..3590515cb8 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_ACTIVE.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_FACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_FACE.png Binary files differnew file mode 100644 index 0000000000..53488e032a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_FACE.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_INACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_INACTIVE.png Binary files differnew file mode 100644 index 0000000000..04f37eb57d --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DRONE_CENTRE_INACTIVE.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRONE_MODULE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRONE_MODULE_ACTIVE.png Binary files differnew file mode 100644 index 0000000000..470e589b59 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRONE_MODULE_ACTIVE.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TRANSPARENT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TRANSPARENT.png Binary files differnew file mode 100644 index 0000000000..6175e8622a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TRANSPARENT.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone0.png b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone0.png Binary files differnew file mode 100644 index 0000000000..003f6fd55c --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone0.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone1.png b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone1.png Binary files differnew file mode 100644 index 0000000000..3a43f3b6d9 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone1.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone2.png b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone2.png Binary files differnew file mode 100644 index 0000000000..d365d08765 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.tierdDrone2.png diff --git a/src/main/resources/assets/gregtech/textures/model/drone.obj b/src/main/resources/assets/gregtech/textures/model/drone.obj new file mode 100644 index 0000000000..bcdaf44454 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/model/drone.obj @@ -0,0 +1,3836 @@ +# Blender 3.6.5 +# www.blender.org +mtllib d1.mtl +o blade1 +v 0.321540 1.128201 -1.028646 +v 0.319121 1.137597 -1.026228 +v 1.026228 1.162403 -0.319121 +v 1.028646 1.171799 -0.321539 +v 0.387986 1.162403 -1.095093 +v 0.385567 1.171799 -1.092674 +v 1.092674 1.128201 -0.385567 +v 1.095093 1.137597 -0.387986 +v 0.885290 1.155562 -0.461026 +v 0.744352 1.148722 -0.602931 +v 0.603415 1.141881 -0.744836 +v 0.462477 1.135041 -0.886741 +v 0.461026 1.144438 -0.885290 +v 0.602931 1.151278 -0.744352 +v 0.744836 1.158119 -0.603415 +v 0.886741 1.164959 -0.462477 +v 0.528924 1.155562 -0.953187 +v 0.669861 1.148722 -0.811282 +v 0.810799 1.141881 -0.669377 +v 0.951736 1.135041 -0.527472 +v 0.953188 1.144438 -0.528923 +v 0.811283 1.151278 -0.669861 +v 0.669378 1.158119 -0.810799 +v 0.527472 1.164959 -0.951736 +vn -0.6936 0.2133 0.6880 +vn 0.7071 -0.0000 0.7071 +vn 0.6936 0.2134 -0.6880 +vn -0.7071 -0.0000 -0.7071 +vn 0.1277 -0.9765 -0.1739 +vn -0.1739 0.9765 0.1277 +vn 0.2182 0.9392 -0.2652 +vn 0.1266 0.9764 -0.1749 +vn 0.0270 0.9968 -0.0756 +vn -0.0752 0.9968 0.0274 +vn -0.2652 -0.9392 0.2182 +vn -0.1749 -0.9764 0.1266 +vn -0.0756 -0.9968 0.0270 +vn 0.0274 -0.9968 -0.0752 +vn 0.6538 -0.3421 -0.6749 +vn 0.6833 -0.2134 -0.6983 +vn 0.7011 -0.0726 -0.7094 +vn 0.7046 0.0725 -0.7059 +vn -0.6538 -0.3420 0.6749 +vn -0.6833 -0.2133 0.6983 +vn -0.7011 -0.0726 0.7094 +vn -0.7046 0.0726 0.7059 +vn -0.2182 0.9392 0.2652 +vn -0.1266 0.9764 0.1749 +vn -0.0270 0.9968 0.0756 +vn 0.0752 0.9968 -0.0274 +vn 0.1739 0.9765 -0.1277 +vn 0.2652 -0.9392 -0.2182 +vn 0.1749 -0.9764 -0.1266 +vn 0.0756 -0.9968 -0.0270 +vn -0.0274 -0.9968 0.0752 +vn -0.1277 -0.9765 0.1739 +vn -0.6749 0.3420 0.6539 +vn -0.6983 0.2133 0.6833 +vn -0.7094 0.0726 0.7011 +vn -0.7059 -0.0726 0.7046 +vn -0.6880 -0.2133 0.6936 +vn 0.6749 0.3421 -0.6538 +vn 0.6983 0.2134 -0.6833 +vn 0.7094 0.0725 -0.7011 +vn 0.7059 -0.0726 -0.7046 +vn 0.6880 -0.2134 -0.6936 +vn -0.7071 -0.0001 -0.7071 +vt 0.171027 0.845592 +vt 0.180875 0.796350 +vt 0.171027 0.796350 +vt 0.180875 0.845592 +vt 0.230117 0.845592 +vt 0.269511 0.845592 +vt 0.279359 0.796350 +vt 0.269511 0.796350 +vt 0.279359 0.845592 +vt 0.328601 0.845592 +vt 0.269511 0.894834 +vt 0.279359 0.747108 +vt 0.269511 0.747108 +vt 0.230117 0.796350 +vt 0.239965 0.747108 +vt 0.230117 0.747108 +vt 0.239965 0.796350 +vt 0.249814 0.747108 +vt 0.249814 0.796350 +vt 0.259662 0.747108 +vt 0.259662 0.796350 +vt 0.230117 0.894834 +vt 0.239965 0.845592 +vt 0.239965 0.894834 +vt 0.249814 0.845592 +vt 0.249814 0.894834 +vt 0.259662 0.845592 +vt 0.259662 0.894834 +vt 0.131634 0.845592 +vt 0.141482 0.796350 +vt 0.131634 0.796350 +vt 0.141482 0.845592 +vt 0.151330 0.796350 +vt 0.151330 0.845592 +vt 0.161179 0.796350 +vt 0.161179 0.845592 +vt 0.279359 0.894834 +vt 0.328601 0.796350 +s 0 +usemtl Material.002 +f 9/1/1 4/2/1 16/3/1 +f 4/2/2 3/4/2 7/5/2 +f 17/6/3 6/7/3 24/8/3 +f 6/7/4 5/9/4 1/10/4 +f 12/11/5 5/9/5 17/6/5 +f 24/8/6 2/12/6 13/13/6 +f 8/14/7 16/15/7 4/16/7 +f 21/17/8 15/18/8 16/15/8 +f 22/19/9 14/20/9 15/18/9 +f 23/21/10 13/13/10 14/20/10 +f 3/22/11 20/23/11 7/5/11 +f 9/24/12 19/25/12 20/23/12 +f 10/26/13 18/27/13 19/25/13 +f 11/28/14 17/6/14 18/27/14 +f 7/5/15 21/17/15 8/14/15 +f 20/23/16 22/19/16 21/17/16 +f 19/25/17 23/21/17 22/19/17 +f 18/27/18 24/8/18 23/21/18 +f 1/29/19 13/30/19 2/31/19 +f 12/32/20 14/33/20 13/30/20 +f 11/34/21 15/35/21 14/33/21 +f 10/36/22 16/3/22 15/35/22 +f 6/7/23 2/12/23 24/8/23 +f 24/8/24 13/13/24 23/21/24 +f 23/21/25 14/20/25 22/19/25 +f 22/19/26 15/18/26 21/17/26 +f 21/17/27 16/15/27 8/14/27 +f 1/37/28 5/9/28 12/11/28 +f 12/11/29 17/6/29 11/28/29 +f 11/28/30 18/27/30 10/26/30 +f 10/26/31 19/25/31 9/24/31 +f 9/24/32 20/23/32 3/22/32 +f 3/4/33 4/2/33 9/1/33 +f 9/1/34 16/3/34 10/36/34 +f 10/36/35 15/35/35 11/34/35 +f 11/34/36 14/33/36 12/32/36 +f 12/32/37 13/30/37 1/29/37 +f 5/9/38 6/7/38 17/6/38 +f 17/6/39 24/8/39 18/27/39 +f 18/27/40 23/21/40 19/25/40 +f 19/25/41 22/19/41 20/23/41 +f 20/23/42 21/17/42 7/5/42 +f 4/2/2 7/5/2 8/14/2 +f 6/7/43 1/10/43 2/38/43 +o blade2 +v -0.321540 1.128201 -1.028646 +v -0.319121 1.137597 -1.026228 +v -1.026228 1.162403 -0.319121 +v -1.028646 1.171799 -0.321539 +v -0.387986 1.162403 -1.095093 +v -0.385567 1.171799 -1.092674 +v -1.092674 1.128201 -0.385567 +v -1.095093 1.137597 -0.387986 +v -0.885290 1.155562 -0.461026 +v -0.744352 1.148722 -0.602931 +v -0.603415 1.141881 -0.744836 +v -0.462477 1.135041 -0.886741 +v -0.461026 1.144438 -0.885290 +v -0.602931 1.151278 -0.744352 +v -0.744836 1.158119 -0.603415 +v -0.886741 1.164959 -0.462477 +v -0.528924 1.155562 -0.953187 +v -0.669861 1.148722 -0.811282 +v -0.810799 1.141881 -0.669377 +v -0.951736 1.135041 -0.527472 +v -0.953188 1.144438 -0.528923 +v -0.811283 1.151278 -0.669861 +v -0.669378 1.158119 -0.810799 +v -0.527472 1.164959 -0.951736 +vn 0.6936 0.2133 0.6880 +vn -0.7071 -0.0000 0.7071 +vn -0.6936 0.2134 -0.6880 +vn 0.7071 -0.0000 -0.7071 +vn -0.1277 -0.9765 -0.1739 +vn 0.1739 0.9765 0.1277 +vn -0.2182 0.9392 -0.2652 +vn -0.1266 0.9764 -0.1749 +vn -0.0270 0.9968 -0.0756 +vn 0.0752 0.9968 0.0274 +vn 0.2652 -0.9392 0.2182 +vn 0.1749 -0.9764 0.1266 +vn 0.0756 -0.9968 0.0270 +vn -0.0274 -0.9968 -0.0752 +vn -0.6538 -0.3421 -0.6749 +vn -0.6833 -0.2134 -0.6983 +vn -0.7011 -0.0726 -0.7094 +vn -0.7046 0.0725 -0.7059 +vn 0.6538 -0.3420 0.6749 +vn 0.6833 -0.2133 0.6983 +vn 0.7011 -0.0726 0.7094 +vn 0.7046 0.0726 0.7059 +vn 0.2182 0.9392 0.2652 +vn 0.1266 0.9764 0.1749 +vn 0.0270 0.9968 0.0756 +vn -0.0752 0.9968 -0.0274 +vn -0.1739 0.9765 -0.1277 +vn -0.2652 -0.9392 -0.2182 +vn -0.1749 -0.9764 -0.1266 +vn -0.0756 -0.9968 -0.0270 +vn 0.0274 -0.9968 0.0752 +vn 0.1277 -0.9765 0.1739 +vn 0.6749 0.3420 0.6539 +vn 0.6983 0.2133 0.6833 +vn 0.7094 0.0726 0.7011 +vn 0.7059 -0.0726 0.7046 +vn 0.6880 -0.2133 0.6936 +vn -0.6749 0.3421 -0.6538 +vn -0.6983 0.2134 -0.6833 +vn -0.7094 0.0725 -0.7011 +vn -0.7059 -0.0726 -0.7046 +vn -0.6880 -0.2134 -0.6936 +vn 0.7071 -0.0001 -0.7071 +vt 0.863184 0.471780 +vt 0.912426 0.471780 +vt 0.912426 0.481629 +vt 0.863184 0.530870 +vt 0.863184 0.481629 +vt 0.863184 0.570264 +vt 0.912426 0.570264 +vt 0.912426 0.580112 +vt 0.863184 0.629354 +vt 0.863184 0.580112 +vt 0.813942 0.570264 +vt 0.961668 0.570264 +vt 0.961668 0.580112 +vt 0.912426 0.530870 +vt 0.961668 0.530870 +vt 0.961668 0.540719 +vt 0.912426 0.540719 +vt 0.961668 0.550567 +vt 0.912426 0.550567 +vt 0.961668 0.560415 +vt 0.912426 0.560415 +vt 0.813942 0.530870 +vt 0.863184 0.540719 +vt 0.813942 0.540719 +vt 0.863184 0.550567 +vt 0.813942 0.550567 +vt 0.863184 0.560416 +vt 0.813942 0.560415 +vt 0.863184 0.432387 +vt 0.912426 0.432387 +vt 0.912426 0.442235 +vt 0.863184 0.442235 +vt 0.912426 0.452084 +vt 0.863184 0.452084 +vt 0.912426 0.461932 +vt 0.863184 0.461932 +vt 0.813942 0.580112 +vt 0.912426 0.629354 +s 0 +usemtl Material.003 +f 33/39/44 40/40/44 28/41/44 +f 28/41/45 31/42/45 27/43/45 +f 41/44/46 48/45/46 30/46/46 +f 30/46/47 25/47/47 29/48/47 +f 36/49/48 41/44/48 29/48/48 +f 48/45/49 37/50/49 26/51/49 +f 32/52/50 28/53/50 40/54/50 +f 45/55/51 40/54/51 39/56/51 +f 46/57/52 39/56/52 38/58/52 +f 47/59/53 38/58/53 37/50/53 +f 27/60/54 31/42/54 44/61/54 +f 33/62/55 44/61/55 43/63/55 +f 34/64/56 43/63/56 42/65/56 +f 35/66/57 42/65/57 41/44/57 +f 31/42/58 32/52/58 45/55/58 +f 44/61/59 45/55/59 46/57/59 +f 43/63/60 46/57/60 47/59/60 +f 42/65/61 47/59/61 48/45/61 +f 25/67/62 26/68/62 37/69/62 +f 36/70/63 37/69/63 38/71/63 +f 35/72/64 38/71/64 39/73/64 +f 34/74/65 39/73/65 40/40/65 +f 30/46/66 48/45/66 26/51/66 +f 48/45/67 47/59/67 37/50/67 +f 47/59/68 46/57/68 38/58/68 +f 46/57/69 45/55/69 39/56/69 +f 45/55/70 32/52/70 40/54/70 +f 25/75/71 36/49/71 29/48/71 +f 36/49/72 35/66/72 41/44/72 +f 35/66/73 34/64/73 42/65/73 +f 34/64/74 33/62/74 43/63/74 +f 33/62/75 27/60/75 44/61/75 +f 27/43/76 33/39/76 28/41/76 +f 33/39/77 34/74/77 40/40/77 +f 34/74/78 35/72/78 39/73/78 +f 35/72/79 36/70/79 38/71/79 +f 36/70/80 25/67/80 37/69/80 +f 29/48/81 41/44/81 30/46/81 +f 41/44/82 42/65/82 48/45/82 +f 42/65/83 43/63/83 47/59/83 +f 43/63/84 44/61/84 46/57/84 +f 44/61/85 31/42/85 45/55/85 +f 28/41/45 32/52/45 31/42/45 +f 30/46/86 26/76/86 25/47/86 +o blade3 +v -0.321540 1.128201 1.028646 +v -0.319121 1.137597 1.026228 +v -1.026228 1.162403 0.319121 +v -1.028646 1.171799 0.321539 +v -0.387986 1.162403 1.095093 +v -0.385567 1.171799 1.092674 +v -1.092674 1.128201 0.385567 +v -1.095093 1.137597 0.387986 +v -0.885290 1.155562 0.461026 +v -0.744352 1.148722 0.602931 +v -0.603415 1.141881 0.744836 +v -0.462477 1.135041 0.886741 +v -0.461026 1.144438 0.885290 +v -0.602931 1.151278 0.744352 +v -0.744836 1.158119 0.603415 +v -0.886741 1.164959 0.462477 +v -0.528924 1.155562 0.953187 +v -0.669861 1.148722 0.811282 +v -0.810799 1.141881 0.669377 +v -0.951736 1.135041 0.527472 +v -0.953188 1.144438 0.528923 +v -0.811283 1.151278 0.669861 +v -0.669378 1.158119 0.810799 +v -0.527472 1.164959 0.951736 +vn 0.6936 0.2133 -0.6880 +vn -0.7071 -0.0000 -0.7071 +vn -0.6936 0.2134 0.6880 +vn 0.7071 -0.0000 0.7071 +vn -0.1277 -0.9765 0.1739 +vn 0.1739 0.9765 -0.1277 +vn -0.2182 0.9392 0.2652 +vn -0.1266 0.9764 0.1749 +vn -0.0270 0.9968 0.0756 +vn 0.0752 0.9968 -0.0274 +vn 0.2652 -0.9392 -0.2182 +vn 0.1749 -0.9764 -0.1266 +vn 0.0756 -0.9968 -0.0270 +vn -0.0274 -0.9968 0.0752 +vn -0.6538 -0.3421 0.6749 +vn -0.6833 -0.2134 0.6983 +vn -0.7011 -0.0726 0.7094 +vn -0.7046 0.0725 0.7059 +vn 0.6538 -0.3420 -0.6749 +vn 0.6833 -0.2133 -0.6983 +vn 0.7011 -0.0726 -0.7094 +vn 0.7046 0.0726 -0.7059 +vn 0.2182 0.9392 -0.2652 +vn 0.1266 0.9764 -0.1749 +vn 0.0270 0.9968 -0.0756 +vn -0.0752 0.9968 0.0274 +vn -0.1739 0.9765 0.1277 +vn -0.2652 -0.9392 0.2182 +vn -0.1749 -0.9764 0.1266 +vn -0.0756 -0.9968 0.0270 +vn 0.0274 -0.9968 -0.0752 +vn 0.1277 -0.9765 -0.1739 +vn 0.6749 0.3420 -0.6539 +vn 0.6983 0.2133 -0.6833 +vn 0.7094 0.0726 -0.7011 +vn 0.7059 -0.0726 -0.7046 +vn 0.6880 -0.2133 -0.6936 +vn -0.6749 0.3421 0.6538 +vn -0.6983 0.2134 0.6833 +vn -0.7094 0.0725 0.7011 +vn -0.7059 -0.0726 0.7046 +vn -0.6880 -0.2134 0.6936 +vn 0.7071 -0.0001 0.7071 +vt 0.807171 0.833480 +vt 0.797323 0.882722 +vt 0.807171 0.882722 +vt 0.797323 0.833480 +vt 0.748081 0.833480 +vt 0.708688 0.833480 +vt 0.698839 0.882722 +vt 0.708688 0.882722 +vt 0.698839 0.833480 +vt 0.649598 0.833480 +vt 0.708688 0.784238 +vt 0.698839 0.931964 +vt 0.708688 0.931964 +vt 0.748081 0.882722 +vt 0.738233 0.931964 +vt 0.748081 0.931964 +vt 0.738233 0.882722 +vt 0.728384 0.931964 +vt 0.728384 0.882722 +vt 0.718536 0.931964 +vt 0.718536 0.882722 +vt 0.748081 0.784238 +vt 0.738233 0.833480 +vt 0.738233 0.784238 +vt 0.728384 0.833480 +vt 0.728384 0.784238 +vt 0.718536 0.833480 +vt 0.718536 0.784238 +vt 0.846565 0.833480 +vt 0.836716 0.882722 +vt 0.846565 0.882722 +vt 0.836716 0.833480 +vt 0.826868 0.882722 +vt 0.826868 0.833480 +vt 0.817020 0.882722 +vt 0.817020 0.833480 +vt 0.698839 0.784238 +vt 0.649598 0.882722 +s 0 +usemtl Material.004 +f 57/77/87 52/78/87 64/79/87 +f 52/78/88 51/80/88 55/81/88 +f 65/82/89 54/83/89 72/84/89 +f 54/83/90 53/85/90 49/86/90 +f 60/87/91 53/85/91 65/82/91 +f 72/84/92 50/88/92 61/89/92 +f 56/90/93 64/91/93 52/92/93 +f 69/93/94 63/94/94 64/91/94 +f 70/95/95 62/96/95 63/94/95 +f 71/97/96 61/89/96 62/96/96 +f 51/98/97 68/99/97 55/81/97 +f 57/100/98 67/101/98 68/99/98 +f 58/102/99 66/103/99 67/101/99 +f 59/104/100 65/82/100 66/103/100 +f 55/81/101 69/93/101 56/90/101 +f 68/99/102 70/95/102 69/93/102 +f 67/101/103 71/97/103 70/95/103 +f 66/103/104 72/84/104 71/97/104 +f 49/105/105 61/106/105 50/107/105 +f 60/108/106 62/109/106 61/106/106 +f 59/110/107 63/111/107 62/109/107 +f 58/112/108 64/79/108 63/111/108 +f 54/83/109 50/88/109 72/84/109 +f 72/84/110 61/89/110 71/97/110 +f 71/97/111 62/96/111 70/95/111 +f 70/95/112 63/94/112 69/93/112 +f 69/93/113 64/91/113 56/90/113 +f 49/113/114 53/85/114 60/87/114 +f 60/87/115 65/82/115 59/104/115 +f 59/104/116 66/103/116 58/102/116 +f 58/102/117 67/101/117 57/100/117 +f 57/100/118 68/99/118 51/98/118 +f 51/80/119 52/78/119 57/77/119 +f 57/77/120 64/79/120 58/112/120 +f 58/112/121 63/111/121 59/110/121 +f 59/110/122 62/109/122 60/108/122 +f 60/108/123 61/106/123 49/105/123 +f 53/85/124 54/83/124 65/82/124 +f 65/82/125 72/84/125 66/103/125 +f 66/103/126 71/97/126 67/101/126 +f 67/101/127 70/95/127 68/99/127 +f 68/99/128 69/93/128 55/81/128 +f 52/78/88 55/81/88 56/90/88 +f 54/83/129 49/86/129 50/114/129 +o blade4 +v 0.321540 1.128201 1.028646 +v 0.319121 1.137597 1.026228 +v 1.026228 1.162403 0.319121 +v 1.028646 1.171799 0.321539 +v 0.387986 1.162403 1.095093 +v 0.385567 1.171799 1.092674 +v 1.092674 1.128201 0.385567 +v 1.095093 1.137597 0.387986 +v 0.885290 1.155562 0.461026 +v 0.744352 1.148722 0.602931 +v 0.603415 1.141881 0.744836 +v 0.462477 1.135041 0.886741 +v 0.461026 1.144438 0.885290 +v 0.602931 1.151278 0.744352 +v 0.744836 1.158119 0.603415 +v 0.886741 1.164959 0.462477 +v 0.528924 1.155562 0.953187 +v 0.669861 1.148722 0.811282 +v 0.810799 1.141881 0.669377 +v 0.951736 1.135041 0.527472 +v 0.953188 1.144438 0.528923 +v 0.811283 1.151278 0.669861 +v 0.669378 1.158119 0.810799 +v 0.527472 1.164959 0.951736 +vn -0.6936 0.2133 -0.6880 +vn 0.7071 -0.0000 -0.7071 +vn 0.6936 0.2134 0.6880 +vn -0.7071 -0.0000 0.7071 +vn 0.1277 -0.9765 0.1739 +vn -0.1739 0.9765 -0.1277 +vn 0.2182 0.9392 0.2652 +vn 0.1266 0.9764 0.1749 +vn 0.0270 0.9968 0.0756 +vn -0.0752 0.9968 -0.0274 +vn -0.2652 -0.9392 -0.2182 +vn -0.1749 -0.9764 -0.1266 +vn -0.0756 -0.9968 -0.0270 +vn 0.0274 -0.9968 0.0752 +vn 0.6538 -0.3421 0.6749 +vn 0.6833 -0.2134 0.6983 +vn 0.7011 -0.0726 0.7094 +vn 0.7046 0.0725 0.7059 +vn -0.6538 -0.3420 -0.6749 +vn -0.6833 -0.2133 -0.6983 +vn -0.7011 -0.0726 -0.7094 +vn -0.7046 0.0726 -0.7059 +vn -0.2182 0.9392 -0.2652 +vn -0.1266 0.9764 -0.1749 +vn -0.0270 0.9968 -0.0756 +vn 0.0752 0.9968 0.0274 +vn 0.1739 0.9765 0.1277 +vn 0.2652 -0.9392 0.2182 +vn 0.1749 -0.9764 0.1266 +vn 0.0756 -0.9968 0.0270 +vn -0.0274 -0.9968 -0.0752 +vn -0.1277 -0.9765 -0.1739 +vn -0.6749 0.3420 -0.6539 +vn -0.6983 0.2133 -0.6833 +vn -0.7094 0.0726 -0.7011 +vn -0.7059 -0.0726 -0.7046 +vn -0.6880 -0.2133 -0.6936 +vn 0.6749 0.3421 0.6538 +vn 0.6983 0.2134 0.6833 +vn 0.7094 0.0725 0.7011 +vn 0.7059 -0.0726 0.7046 +vn 0.6880 -0.2134 0.6936 +vn -0.7071 -0.0001 0.7071 +vt 0.500848 0.829767 +vt 0.500848 0.879009 +vt 0.491000 0.879009 +vt 0.441758 0.829767 +vt 0.491000 0.829767 +vt 0.402365 0.829767 +vt 0.402365 0.879009 +vt 0.392517 0.879009 +vt 0.343275 0.829767 +vt 0.392517 0.829767 +vt 0.402365 0.780525 +vt 0.402365 0.928251 +vt 0.392517 0.928251 +vt 0.441758 0.879009 +vt 0.441758 0.928251 +vt 0.431910 0.928251 +vt 0.431910 0.879009 +vt 0.422062 0.928251 +vt 0.422062 0.879009 +vt 0.412213 0.928251 +vt 0.412213 0.879009 +vt 0.441758 0.780525 +vt 0.431910 0.829767 +vt 0.431910 0.780525 +vt 0.422062 0.829767 +vt 0.422062 0.780525 +vt 0.412213 0.829767 +vt 0.412213 0.780525 +vt 0.540242 0.829767 +vt 0.540242 0.879009 +vt 0.530394 0.879009 +vt 0.530394 0.829767 +vt 0.520545 0.879009 +vt 0.520545 0.829767 +vt 0.510697 0.879009 +vt 0.510697 0.829767 +vt 0.392517 0.780525 +vt 0.343275 0.879009 +s 0 +usemtl Material.005 +f 81/115/130 88/116/130 76/117/130 +f 76/117/131 79/118/131 75/119/131 +f 89/120/132 96/121/132 78/122/132 +f 78/122/133 73/123/133 77/124/133 +f 84/125/134 89/120/134 77/124/134 +f 96/121/135 85/126/135 74/127/135 +f 80/128/136 76/129/136 88/130/136 +f 93/131/137 88/130/137 87/132/137 +f 94/133/138 87/132/138 86/134/138 +f 95/135/139 86/134/139 85/126/139 +f 75/136/140 79/118/140 92/137/140 +f 81/138/141 92/137/141 91/139/141 +f 82/140/142 91/139/142 90/141/142 +f 83/142/143 90/141/143 89/120/143 +f 79/118/144 80/128/144 93/131/144 +f 92/137/145 93/131/145 94/133/145 +f 91/139/146 94/133/146 95/135/146 +f 90/141/147 95/135/147 96/121/147 +f 73/143/148 74/144/148 85/145/148 +f 84/146/149 85/145/149 86/147/149 +f 83/148/150 86/147/150 87/149/150 +f 82/150/151 87/149/151 88/116/151 +f 78/122/152 96/121/152 74/127/152 +f 96/121/153 95/135/153 85/126/153 +f 95/135/154 94/133/154 86/134/154 +f 94/133/155 93/131/155 87/132/155 +f 93/131/156 80/128/156 88/130/156 +f 73/151/157 84/125/157 77/124/157 +f 84/125/158 83/142/158 89/120/158 +f 83/142/159 82/140/159 90/141/159 +f 82/140/160 81/138/160 91/139/160 +f 81/138/161 75/136/161 92/137/161 +f 75/119/162 81/115/162 76/117/162 +f 81/115/163 82/150/163 88/116/163 +f 82/150/164 83/148/164 87/149/164 +f 83/148/165 84/146/165 86/147/165 +f 84/146/166 73/143/166 85/145/166 +f 77/124/167 89/120/167 78/122/167 +f 89/120/168 90/141/168 96/121/168 +f 90/141/169 91/139/169 95/135/169 +f 91/139/170 92/137/170 94/133/170 +f 92/137/171 79/118/171 93/131/171 +f 76/117/131 80/128/131 79/118/131 +f 78/122/172 74/152/172 73/123/172 +o box +v -0.350000 -0.400000 0.400000 +v -0.400000 -0.400000 0.350000 +v -0.400000 0.400000 0.350000 +v -0.350000 0.400000 0.400000 +v -0.400000 -0.400000 -0.350000 +v -0.350000 -0.400000 -0.400000 +v -0.350000 0.400000 -0.400000 +v -0.400000 0.400000 -0.350000 +v 0.400000 -0.400000 0.350000 +v 0.350000 -0.400000 0.400000 +v 0.350000 0.400000 0.400000 +v 0.400000 0.400000 0.350000 +v 0.350000 -0.400000 -0.400000 +v 0.400000 -0.400000 -0.350000 +v 0.400000 0.400000 -0.350000 +v 0.350000 0.400000 -0.400000 +v -0.400000 0.340000 -0.350000 +v -0.350000 0.340000 -0.400000 +v -0.400000 0.340000 0.350000 +v -0.350000 0.340000 0.400000 +v 0.400000 0.340000 -0.350000 +v 0.350000 0.340000 -0.400000 +v 0.350000 0.340000 0.400000 +v 0.400000 0.340000 0.350000 +v -0.400000 0.266000 0.350000 +v -0.350000 0.266000 -0.400000 +v 0.400000 0.266000 -0.350000 +v 0.350000 0.266000 0.400000 +v 0.400000 0.266000 0.350000 +v 0.350000 0.266000 -0.400000 +v -0.400000 0.266000 -0.350000 +v -0.350000 0.266000 0.400000 +v 0.380536 0.340000 -0.355863 +v 0.355863 0.340000 -0.380536 +v 0.355863 0.340000 0.380536 +v 0.380536 0.340000 0.355863 +v 0.380536 0.266000 0.355863 +v 0.355863 0.266000 -0.380536 +v -0.380536 0.266000 -0.355863 +v -0.380536 0.340000 -0.355863 +v -0.355863 0.266000 0.380536 +v -0.355863 0.340000 0.380536 +v -0.355863 0.340000 -0.380536 +v -0.380536 0.340000 0.355863 +v -0.380536 0.266000 0.355863 +v -0.355863 0.266000 -0.380536 +v 0.380536 0.266000 -0.355863 +v 0.355863 0.266000 0.380536 +v 0.000000 -0.395000 0.396000 +v -0.396000 -0.057000 0.000000 +v -0.396000 -0.067000 0.009900 +v -0.396000 -0.077000 0.000000 +v -0.396000 -0.067000 -0.009900 +v 0.000000 -0.057000 -0.396000 +v -0.009900 -0.067000 -0.396000 +v 0.000000 -0.077000 -0.396000 +v 0.009900 -0.067000 -0.396000 +v 0.396000 -0.057000 0.000000 +v 0.396000 -0.067000 -0.009900 +v 0.396000 -0.077000 0.000000 +v 0.396000 -0.067000 0.009900 +v 0.000000 -0.057000 0.396000 +v 0.009900 -0.067000 0.396000 +v 0.000000 -0.077000 0.396000 +v -0.009900 -0.067000 0.396000 +v 0.010000 -0.400000 0.400000 +v -0.010000 -0.400000 0.400000 +v -0.010000 0.266000 0.400000 +v 0.010000 0.266000 0.400000 +v 0.400000 -0.400000 -0.010000 +v 0.400000 -0.400000 0.010000 +v 0.400000 0.266000 0.010000 +v 0.400000 0.266000 -0.010000 +v -0.010000 -0.400000 -0.400000 +v 0.010000 -0.400000 -0.400000 +v 0.010000 0.266000 -0.400000 +v -0.010000 0.266000 -0.400000 +v -0.400000 -0.400000 0.010000 +v -0.400000 -0.400000 -0.010000 +v -0.400000 0.266000 -0.010000 +v -0.400000 0.266000 0.010000 +v -0.400000 -0.077000 0.350000 +v -0.400000 -0.057000 0.350000 +v -0.350000 -0.077000 -0.400000 +v -0.350000 -0.057000 -0.400000 +v 0.400000 -0.077000 -0.350000 +v 0.400000 -0.057000 -0.350000 +v 0.350000 -0.077000 0.400000 +v 0.350000 -0.057000 0.400000 +v 0.400000 -0.057000 0.350000 +v 0.400000 -0.077000 0.350000 +v 0.350000 -0.057000 -0.400000 +v 0.350000 -0.077000 -0.400000 +v -0.400000 -0.057000 -0.350000 +v -0.400000 -0.077000 -0.350000 +v -0.350000 -0.077000 0.400000 +v -0.350000 -0.057000 0.400000 +v -0.010000 -0.077000 0.400000 +v 0.010000 -0.077000 0.400000 +v 0.010000 -0.057000 0.400000 +v -0.010000 -0.057000 0.400000 +v 0.400000 -0.077000 0.010000 +v 0.400000 -0.077000 -0.010000 +v 0.400000 -0.057000 -0.010000 +v 0.400000 -0.057000 0.010000 +v 0.010000 -0.077000 -0.400000 +v -0.010000 -0.077000 -0.400000 +v -0.010000 -0.057000 -0.400000 +v 0.010000 -0.057000 -0.400000 +v -0.400000 -0.077000 -0.010000 +v -0.400000 -0.077000 0.010000 +v -0.400000 -0.057000 0.010000 +v -0.400000 -0.057000 -0.010000 +v 0.396000 -0.395000 0.000000 +v 0.000000 -0.395000 -0.396000 +v -0.396000 -0.395000 0.000000 +v 0.000000 0.266000 0.396000 +v 0.396000 0.266000 -0.000000 +v 0.000000 0.266000 -0.396000 +v -0.396000 0.266000 -0.000000 +v -0.396000 -0.067000 0.346500 +v -0.346500 -0.067000 -0.396000 +v 0.396000 -0.067000 -0.346500 +v 0.346500 -0.067000 0.396000 +v -0.346500 -0.067000 0.396000 +v 0.346500 -0.067000 -0.396000 +v -0.396000 -0.067000 -0.346500 +v 0.396000 -0.067000 0.346500 +v -0.396000 -0.067000 0.000000 +v 0.000000 -0.067000 -0.396000 +v 0.396000 -0.067000 0.000000 +v 0.000000 -0.067000 0.396000 +v 0.000000 -0.395000 0.000000 +v 0.010000 -0.395000 0.000000 +v -0.010000 -0.395000 0.000000 +v -0.010000 -0.400000 0.010000 +v 0.000000 -0.395000 0.010000 +v 0.010000 -0.400000 0.010000 +v -0.010000 -0.400000 -0.010000 +v 0.000000 -0.395000 -0.010000 +v 0.010000 -0.400000 -0.010000 +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 -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.6247 -0.4685 -0.6247 +vn -0.0000 0.3714 0.9285 +vn -0.6247 0.4685 -0.6247 +vn 0.6247 -0.4685 -0.6247 +vn 0.6247 0.4685 -0.6247 +vn 0.6247 -0.4685 0.6247 +vn 0.6247 0.4685 0.6247 +vn -0.6247 0.4685 0.6247 +vn -0.0000 -0.3714 0.9285 +vn 0.9285 0.3714 -0.0000 +vn 0.9285 -0.3714 -0.0000 +vn -0.9285 0.3714 -0.0000 +vn -0.9285 -0.3714 -0.0000 +vn -0.0000 0.3714 -0.9285 +vn -0.0000 -0.3714 -0.9285 +vn -0.6247 -0.4685 0.6247 +vn -0.9285 -0.0000 -0.3714 +vn -0.9285 -0.0000 0.3714 +vn 0.3714 -0.0000 -0.9285 +vn -0.3714 -0.0000 -0.9285 +vn 0.9285 -0.0000 0.3714 +vn 0.9285 -0.0000 -0.3714 +vn -0.3714 -0.0000 0.9285 +vn 0.3714 -0.0000 0.9285 +vn -0.8714 -0.3451 0.3486 +vn -0.8714 0.3451 0.3486 +vn -0.3486 -0.3451 -0.8714 +vn -0.3486 0.3451 -0.8714 +vn 0.8714 -0.3451 -0.3486 +vn 0.8714 0.3451 -0.3486 +vn 0.3486 -0.3451 0.8714 +vn 0.3486 0.3451 0.8714 +vn -0.0000 -0.8944 -0.4472 +vn -0.4472 -0.8944 -0.0000 +vn 0.4082 -0.8165 -0.4082 +vn -0.4082 -0.8165 -0.4082 +vn 0.4472 -0.8944 -0.0000 +vn -0.4082 -0.8165 0.4082 +vn -0.0000 -0.8944 0.4472 +vn -0.3486 -0.3451 0.8714 +vn 0.8714 -0.3451 0.3486 +vn 0.3486 -0.3451 -0.8714 +vn -0.8714 -0.3451 -0.3486 +vn -0.8714 0.3451 -0.3486 +vn 0.3486 0.3451 -0.8714 +vn 0.8714 0.3451 0.3486 +vn -0.3486 0.3451 0.8714 +vn 0.4082 -0.8165 0.4082 +vt 0.913523 0.219406 +vt 0.899101 0.219390 +vt 0.004935 0.218361 +vt 0.206824 0.235900 +vt 0.004935 0.218361 +vt 0.206844 0.218593 +vt 0.437576 0.236165 +vt 0.235688 0.218627 +vt 0.437596 0.218859 +vt 0.221229 0.250338 +vt 0.235668 0.235933 +vt 0.437311 0.466918 +vt 0.899081 0.236696 +vt 0.697192 0.219158 +vt 0.668328 0.236431 +vt 0.466440 0.218892 +vt 0.668348 0.219124 +vt 0.913503 0.236713 +vt 0.668480 0.104614 +vt 0.697217 0.197813 +vt 0.668373 0.197780 +vt 0.437728 0.104349 +vt 0.466465 0.197548 +vt 0.437620 0.197514 +vt 0.206975 0.104083 +vt 0.235712 0.197282 +vt 0.206868 0.197249 +vt 0.697327 0.101762 +vt 0.668483 0.101729 +vt 0.697173 0.236464 +vt 0.466420 0.236199 +vt 0.206982 0.098314 +vt 0.109019 0.005035 +vt 0.207089 0.005148 +vt 0.570410 0.104500 +vt 0.333896 0.098459 +vt 0.235933 0.005181 +vt 0.334003 0.005294 +vt 0.339658 0.104235 +vt 0.466465 0.197547 +vt 0.668594 0.005678 +vt 0.697331 0.098877 +vt 0.668487 0.098845 +vt 0.899125 0.198045 +vt 0.801163 0.104766 +vt 0.899232 0.104879 +vt 0.899125 0.198045 +vt 0.913547 0.198062 +vt 0.668348 0.219124 +vt 0.668373 0.197780 +vt 0.697217 0.197813 +vt 0.437596 0.218859 +vt 0.235712 0.197282 +vt 0.437620 0.197514 +vt 0.206844 0.218593 +vt 0.004960 0.197017 +vt 0.206868 0.197249 +vt 0.235688 0.218627 +vt 0.697192 0.219158 +vt 0.108906 0.103969 +vt 0.103030 0.197129 +vt 0.005067 0.103850 +vt 0.103137 0.103963 +vt 0.564648 0.098725 +vt 0.466686 0.005446 +vt 0.564755 0.005559 +vt 0.913661 0.099127 +vt 0.899346 0.005944 +vt 0.913768 0.005961 +vt 0.795401 0.098990 +vt 0.697438 0.005712 +vt 0.795508 0.005824 +vt 0.795287 0.197926 +vt 0.697324 0.104646 +vt 0.795394 0.104759 +vt 0.564534 0.197660 +vt 0.466572 0.104381 +vt 0.564642 0.104494 +vt 0.573393 0.005569 +vt 0.913655 0.104896 +vt 0.333782 0.197395 +vt 0.235819 0.104115 +vt 0.333889 0.104228 +vt 0.570524 0.005566 +vt 0.899239 0.099111 +vt 0.801277 0.005831 +vt 0.235826 0.098347 +vt 0.437842 0.005413 +vt 0.466578 0.098612 +vt 0.437734 0.098580 +vt 0.108909 0.101085 +vt 0.106021 0.103966 +vt 0.106024 0.101082 +vt 0.339661 0.101350 +vt 0.336774 0.104231 +vt 0.336777 0.101347 +vt 0.570414 0.101616 +vt 0.567526 0.104497 +vt 0.567529 0.101613 +vt 0.801166 0.101881 +vt 0.798278 0.104762 +vt 0.798282 0.101878 +vt 0.801056 0.197932 +vt 0.005070 0.100965 +vt 0.103144 0.098194 +vt 0.103140 0.101078 +vt 0.466575 0.101496 +vt 0.437731 0.101463 +vt 0.235823 0.101231 +vt 0.206979 0.101198 +vt 0.899236 0.101994 +vt 0.913658 0.102011 +vt 0.108798 0.197136 +vt 0.333892 0.101344 +vt 0.795397 0.101875 +vt 0.564645 0.101609 +vt 0.108912 0.098201 +vt 0.339551 0.197402 +vt 0.570303 0.197667 +vt 0.339665 0.098466 +vt 0.570417 0.098731 +vt 0.801169 0.098997 +vt 0.798171 0.197929 +vt 0.567419 0.197664 +vt 0.336666 0.197398 +vt 0.105914 0.197133 +vt 0.798392 0.005828 +vt 0.798285 0.098994 +vt 0.567640 0.005562 +vt 0.567533 0.098728 +vt 0.336887 0.005297 +vt 0.336780 0.098463 +vt 0.106135 0.005031 +vt 0.106028 0.098197 +vt 0.103251 0.005028 +vt 0.339772 0.005300 +vt 0.005181 0.004915 +vt 0.550493 0.005543 +vt 0.561887 0.005556 +vt 0.573467 0.005569 +vt 0.555986 0.005549 +vt 0.561711 0.005556 +vt 0.561813 0.005556 +vt 0.567640 0.005562 +vt 0.004915 0.235668 +vt 0.451982 0.250604 +vt 0.451749 0.452512 +vt 0.235402 0.466685 +vt 0.220997 0.452247 +vt 0.005074 0.098081 +s 0 +usemtl Material.001 +f 116/153/173 140/154/173 138/155/173 +f 107/156/174 116/157/174 119/158/174 +f 111/159/175 120/160/175 117/161/175 +f 107/162/176 108/163/176 104/164/176 +f 99/165/177 113/166/177 115/154/177 +f 103/167/178 118/168/178 114/169/178 +f 100/170/179 115/154/179 116/153/179 +f 181/171/180 127/172/180 122/173/180 +f 183/174/181 126/175/181 123/176/181 +f 185/177/182 125/178/182 124/179/182 +f 223/180/183 181/171/183 218/181/183 +f 114/169/180 104/182/180 103/167/180 +f 117/161/181 112/183/181 111/159/181 +f 119/158/182 108/163/182 107/156/182 +f 184/184/174 162/185/174 106/186/174 +f 122/173/178 204/187/178 181/171/178 +f 198/188/175 105/189/175 167/190/175 +f 123/176/175 200/191/175 183/174/175 +f 134/192/176 123/176/176 126/175/176 +f 102/193/180 191/194/180 180/195/180 +f 121/196/177 208/197/177 179/198/177 +f 138/153/179 141/199/179 137/200/179 +f 139/201/178 134/192/178 142/202/178 +f 140/154/177 135/203/177 141/199/177 +f 129/204/175 133/205/175 143/206/175 +f 131/207/174 137/208/174 144/209/174 +f 144/209/182 132/210/182 131/207/182 +f 143/206/181 130/168/181 129/204/181 +f 142/202/180 136/211/180 139/201/180 +f 124/179/174 196/212/174 185/177/174 +f 164/213/174 193/214/174 197/215/174 +f 202/216/178 109/217/178 171/218/178 +f 192/219/179 98/220/179 97/221/179 +f 206/222/177 101/223/177 175/224/177 +f 176/225/177 190/226/177 209/227/177 +f 172/228/178 188/229/178 205/230/178 +f 102/193/173 235/231/173 101/223/173 +f 128/200/179 179/198/179 193/232/179 +f 168/233/175 186/234/175 201/235/175 +f 180/195/178 170/236/178 102/193/178 +f 178/237/177 174/238/177 98/220/177 +f 133/205/176 124/179/176 125/178/176 +f 106/186/182 187/239/182 184/184/182 +f 110/240/181 189/241/181 182/242/181 +f 159/243/174 158/244/174 228/245/174 +f 155/246/175 154/247/175 227/248/175 +f 151/249/178 150/250/178 226/251/178 +f 147/252/177 146/253/177 225/254/177 +f 177/255/176 121/196/176 141/199/176 +f 221/256/184 194/257/184 161/258/184 +f 223/180/185 180/195/185 191/194/185 +f 222/259/186 183/174/186 219/260/186 +f 222/259/187 182/242/187 189/241/187 +f 224/261/188 185/177/188 220/262/188 +f 224/261/189 184/184/189 187/239/189 +f 217/263/190 192/219/190 221/264/190 +f 165/265/176 124/179/176 144/209/176 +f 221/256/191 197/215/191 193/214/191 +f 224/261/192 198/188/192 157/266/192 +f 224/261/193 201/235/193 186/234/193 +f 223/180/194 206/222/194 149/267/194 +f 223/180/195 209/227/195 190/226/195 +f 222/259/196 202/216/196 153/268/196 +f 222/259/197 205/230/197 188/229/197 +f 220/262/184 195/269/184 184/184/184 +f 217/263/198 193/232/198 179/198/198 +f 169/270/176 123/176/176 143/206/176 +f 173/271/176 122/173/176 142/202/176 +f 196/212/191 220/262/191 185/177/191 +f 219/260/192 199/272/192 182/242/192 +f 200/191/193 219/260/193 183/174/193 +f 218/181/196 203/273/196 180/195/196 +f 204/187/197 218/181/197 181/171/197 +f 217/263/194 207/274/194 178/237/194 +f 208/197/195 217/263/195 179/198/195 +f 146/253/199 177/255/199 216/275/199 +f 146/253/200 176/225/200 209/227/200 +f 150/250/201 173/271/201 215/276/201 +f 150/250/202 172/228/202 205/230/202 +f 154/247/203 169/270/203 214/277/203 +f 154/247/204 168/233/204 201/235/204 +f 158/244/205 165/265/205 213/278/205 +f 158/244/206 164/213/206 197/215/206 +f 212/279/199 207/274/199 148/280/199 +f 212/279/200 206/222/200 175/224/200 +f 211/281/201 203/273/201 152/282/201 +f 211/281/202 202/216/202 171/218/202 +f 210/283/203 199/272/203 156/284/203 +f 210/283/204 198/188/204 167/190/204 +f 145/285/205 195/269/205 160/286/205 +f 145/285/206 194/257/206 163/287/206 +f 182/242/175 166/288/175 110/240/175 +f 149/267/207 146/253/207 209/227/207 +f 148/280/208 149/267/208 206/222/208 +f 148/280/177 147/252/177 225/254/177 +f 153/268/209 150/250/209 205/230/209 +f 152/282/210 153/268/210 202/216/210 +f 152/282/178 151/249/178 226/251/178 +f 157/266/211 154/247/211 201/235/211 +f 156/284/212 157/266/212 198/188/212 +f 156/284/175 155/246/175 227/248/175 +f 161/258/213 158/244/213 197/215/213 +f 160/286/214 161/258/214 194/257/214 +f 160/286/174 159/243/174 228/245/174 +f 135/203/176 122/173/176 127/172/176 +f 128/200/176 141/199/176 121/196/176 +f 194/257/174 97/289/174 163/287/174 +f 234/290/215 210/283/215 167/190/215 +f 237/291/216 211/281/216 171/218/216 +f 231/292/217 233/293/217 232/294/217 +f 237/291/173 109/217/173 110/240/173 +f 233/293/218 230/295/218 234/290/218 +f 235/231/219 211/281/219 236/281/219 +f 212/279/215 232/294/215 174/238/215 +f 145/285/216 234/290/216 162/185/216 +f 232/294/219 145/285/219 163/287/219 +f 232/294/173 163/287/173 97/289/173 +f 234/290/173 105/189/173 106/186/173 +f 230/295/220 236/281/220 237/291/220 +f 231/292/173 236/281/173 229/296/173 +f 212/279/221 235/231/221 231/292/221 +f 210/283/221 237/291/221 166/288/221 +f 115/154/173 136/211/173 140/154/173 +f 114/169/173 136/211/173 113/166/173 +f 118/168/173 117/161/173 129/204/173 +f 131/207/173 119/158/173 116/153/173 +f 116/153/173 115/154/173 140/154/173 +f 138/155/173 131/207/173 116/153/173 +f 107/156/174 100/297/174 116/157/174 +f 111/159/175 108/163/175 120/160/175 +f 108/163/176 111/159/176 112/298/176 +f 112/298/176 103/299/176 108/163/176 +f 103/299/176 104/164/176 108/163/176 +f 104/164/176 99/300/176 100/301/176 +f 100/301/176 107/162/176 104/164/176 +f 99/165/177 104/182/177 113/166/177 +f 103/167/178 112/183/178 118/168/178 +f 100/170/179 99/165/179 115/154/179 +f 181/171/180 190/226/180 127/172/180 +f 183/174/181 188/229/181 126/175/181 +f 185/177/182 186/234/182 125/178/182 +f 223/180/183 190/226/183 181/171/183 +f 114/169/180 113/166/180 104/182/180 +f 117/161/181 118/168/181 112/183/181 +f 119/158/182 120/160/182 108/163/182 +f 184/184/174 195/269/174 162/185/174 +f 122/173/178 173/271/178 204/187/178 +f 198/188/175 187/239/175 105/189/175 +f 123/176/175 169/270/175 200/191/175 +f 134/192/176 143/206/176 123/176/176 +f 102/193/180 101/223/180 191/194/180 +f 121/196/177 177/255/177 208/197/177 +f 138/153/179 140/154/179 141/199/179 +f 139/201/178 130/168/178 134/192/178 +f 140/154/177 136/211/177 135/203/177 +f 129/204/175 132/210/175 133/205/175 +f 131/207/174 138/155/174 137/208/174 +f 144/209/182 133/205/182 132/210/182 +f 143/206/181 134/192/181 130/168/181 +f 142/202/180 135/203/180 136/211/180 +f 124/179/174 165/265/174 196/212/174 +f 164/213/174 128/208/174 193/214/174 +f 202/216/178 189/241/178 109/217/178 +f 192/219/179 178/237/179 98/220/179 +f 206/222/177 191/194/177 101/223/177 +f 176/225/177 127/172/177 190/226/177 +f 172/228/178 126/175/178 188/229/178 +f 170/236/173 235/231/173 102/193/173 +f 235/231/173 175/224/173 101/223/173 +f 128/200/179 121/196/179 179/198/179 +f 168/233/175 125/178/175 186/234/175 +f 180/195/178 203/273/178 170/236/178 +f 178/237/177 207/274/177 174/238/177 +f 133/205/176 144/209/176 124/179/176 +f 106/186/182 105/189/182 187/239/182 +f 110/240/181 109/217/181 189/241/181 +f 159/243/222 196/212/222 158/244/222 +f 155/246/223 200/191/223 154/247/223 +f 151/249/224 204/187/224 150/250/224 +f 147/252/225 208/197/225 146/253/225 +f 141/199/176 135/203/176 216/275/176 +f 135/203/176 127/172/176 176/225/176 +f 216/275/176 135/203/176 176/225/176 +f 216/275/176 177/255/176 141/199/176 +f 221/256/184 192/302/184 194/257/184 +f 223/180/185 218/181/185 180/195/185 +f 222/259/186 188/229/186 183/174/186 +f 222/259/187 219/260/187 182/242/187 +f 224/261/188 186/234/188 185/177/188 +f 224/261/189 220/262/189 184/184/189 +f 217/263/190 178/237/190 192/219/190 +f 144/209/176 137/200/176 213/278/176 +f 137/200/176 128/200/176 164/213/176 +f 213/278/176 137/200/176 164/213/176 +f 213/278/176 165/265/176 144/209/176 +f 221/256/191 161/258/191 197/215/191 +f 224/261/192 187/239/192 198/188/192 +f 224/261/193 157/266/193 201/235/193 +f 223/180/194 191/194/194 206/222/194 +f 223/180/195 149/267/195 209/227/195 +f 222/259/196 189/241/196 202/216/196 +f 222/259/197 153/268/197 205/230/197 +f 220/262/184 159/243/184 195/269/184 +f 217/263/198 221/264/198 193/232/198 +f 143/206/176 133/205/176 214/277/176 +f 133/205/176 125/178/176 168/233/176 +f 214/277/176 133/205/176 168/233/176 +f 214/277/176 169/270/176 143/206/176 +f 142/202/176 134/192/176 215/276/176 +f 134/192/176 126/175/176 172/228/176 +f 215/276/176 134/192/176 172/228/176 +f 215/276/176 173/271/176 142/202/176 +f 196/212/191 159/243/191 220/262/191 +f 219/260/192 155/246/192 199/272/192 +f 200/191/193 155/246/193 219/260/193 +f 218/181/196 151/249/196 203/273/196 +f 204/187/197 151/249/197 218/181/197 +f 217/263/194 147/252/194 207/274/194 +f 208/197/195 147/252/195 217/263/195 +f 146/253/199 208/197/199 177/255/199 +f 146/253/200 216/275/200 176/225/200 +f 150/250/201 204/187/201 173/271/201 +f 150/250/202 215/276/202 172/228/202 +f 154/247/203 200/191/203 169/270/203 +f 154/247/204 214/277/204 168/233/204 +f 158/244/205 196/212/205 165/265/205 +f 158/244/206 213/278/206 164/213/206 +f 212/279/199 174/238/199 207/274/199 +f 212/279/200 148/280/200 206/222/200 +f 211/281/201 170/236/201 203/273/201 +f 211/281/202 152/282/202 202/216/202 +f 210/283/203 166/288/203 199/272/203 +f 210/283/204 156/284/204 198/188/204 +f 145/285/205 162/185/205 195/269/205 +f 145/285/206 160/286/206 194/257/206 +f 182/242/175 199/272/175 166/288/175 +f 149/267/177 225/254/177 146/253/177 +f 148/280/177 225/254/177 149/267/177 +f 148/280/226 207/274/226 147/252/226 +f 153/268/178 226/251/178 150/250/178 +f 152/282/178 226/251/178 153/268/178 +f 152/282/227 203/273/227 151/249/227 +f 157/266/175 227/248/175 154/247/175 +f 156/284/175 227/248/175 157/266/175 +f 156/284/228 199/272/228 155/246/228 +f 161/258/174 228/245/174 158/244/174 +f 160/286/174 228/245/174 161/258/174 +f 160/286/229 195/269/229 159/243/229 +f 135/203/176 142/202/176 122/173/176 +f 128/200/176 137/200/176 141/199/176 +f 194/257/174 192/302/174 97/289/174 +f 234/290/215 230/295/215 210/283/215 +f 237/291/216 236/281/216 211/281/216 +f 231/292/173 229/296/173 233/293/173 +f 110/240/173 166/288/173 237/291/173 +f 237/291/173 171/218/173 109/217/173 +f 233/293/173 229/296/173 230/295/173 +f 235/231/219 170/236/219 211/281/219 +f 212/279/215 231/292/215 232/294/215 +f 145/285/216 233/293/216 234/290/216 +f 232/294/219 233/293/219 145/285/219 +f 97/289/173 98/220/173 232/294/173 +f 98/220/173 174/238/173 232/294/173 +f 106/186/173 162/185/173 234/290/173 +f 234/290/173 167/190/173 105/189/173 +f 230/295/173 229/296/173 236/281/173 +f 231/292/230 235/231/230 236/281/230 +f 212/279/221 175/224/221 235/231/221 +f 210/283/221 230/295/221 237/291/221 +f 115/154/173 113/166/173 136/211/173 +f 114/169/173 139/201/173 136/211/173 +f 130/168/173 139/201/173 114/169/173 +f 120/160/173 119/158/173 131/207/173 +f 120/160/173 131/207/173 132/210/173 +f 130/168/173 114/169/173 118/168/173 +f 120/160/173 132/210/173 129/204/173 +f 129/204/173 130/168/173 118/168/173 +f 117/161/173 120/160/173 129/204/173 +o drone +v -0.447245 0.500000 -0.500278 +v -0.411890 0.500000 -0.464923 +v -0.464923 0.500000 -0.411890 +v -0.500278 0.500000 -0.447245 +v -0.556898 0.530000 -0.698320 +v -0.586898 0.500000 -0.685894 +v -0.698320 0.530000 -0.556898 +v -0.685894 0.500000 -0.586898 +v -0.685894 0.712426 -0.827315 +v -0.728320 0.700000 -0.827315 +v -0.827315 0.712426 -0.685894 +v -0.827315 0.700000 -0.728320 +v -0.503762 0.670000 -0.645183 +v -0.516188 0.700000 -0.615183 +v -0.645183 0.670000 -0.503761 +v -0.615183 0.700000 -0.516188 +v -0.728320 0.787574 -0.586898 +v -0.685894 0.800000 -0.586898 +v -0.586898 0.787574 -0.728320 +v -0.586898 0.800000 -0.685894 +v -0.141421 0.530000 -0.000000 +v -0.098995 0.500000 -0.000000 +v 0.000000 0.530000 -0.141421 +v 0.000000 0.500000 -0.098995 +v 0.000000 0.700000 -0.098995 +v 0.000000 0.670000 -0.141421 +v -0.141421 0.670000 -0.000000 +v -0.098995 0.700000 -0.000000 +v 0.000000 0.500000 -0.000000 +v 0.000000 0.700000 -0.000000 +v -0.385858 0.340000 -0.100000 +v -0.100000 0.340000 -0.385858 +v -0.100000 0.306000 -0.385858 +v -0.385858 0.306000 -0.100000 +v -0.420000 0.340000 -0.100000 +v -0.420000 0.306000 -0.100000 +v -0.100000 0.340000 -0.420000 +v -0.100000 0.306000 -0.420000 +v -0.385858 0.306000 -0.357272 +v -0.385858 0.340000 -0.357272 +v -0.357272 0.306000 -0.385858 +v -0.357272 0.340000 -0.385858 +v -0.415074 0.340000 -0.364151 +v -0.364151 0.340000 -0.415074 +v -0.364151 0.306000 -0.415074 +v -0.415074 0.306000 -0.364151 +v -0.685894 1.073136 -0.586898 +v -0.728320 1.073136 -0.586898 +v -0.586898 1.073136 -0.728320 +v -0.586898 1.073136 -0.685894 +v -0.728320 1.073136 -0.827315 +v -0.685894 1.073136 -0.827315 +v -0.827315 1.073136 -0.728320 +v -0.827315 1.073136 -0.685894 +v -0.701803 1.073136 -0.677055 +v -0.677055 1.073136 -0.712410 +v -0.712410 1.073136 -0.737159 +v -0.737159 1.073136 -0.701803 +v -0.712410 1.073136 -0.677055 +v -0.677055 1.073136 -0.701803 +v -0.701803 1.073136 -0.737159 +v -0.737159 1.073136 -0.712410 +v -0.737159 1.143136 -0.712410 +v -0.737159 1.143136 -0.701803 +v -0.712410 1.143136 -0.737159 +v -0.701803 1.143136 -0.737159 +v -0.677055 1.143136 -0.712410 +v -0.677055 1.143136 -0.701803 +v -0.701803 1.143136 -0.677055 +v -0.712410 1.143136 -0.677055 +v -0.728320 1.044580 -0.586898 +v -0.586898 1.044580 -0.685894 +v -0.685894 1.044580 -0.827315 +v -0.827315 1.044580 -0.728320 +v -0.685894 1.044580 -0.586898 +v -0.586898 1.044580 -0.728320 +v -0.728320 1.044580 -0.827315 +v -0.827315 1.044580 -0.685894 +v -0.686530 1.094580 -0.154005 +v -0.686530 1.123136 -0.154005 +v -0.154005 1.094580 -0.727683 +v -0.154005 1.123136 -0.727683 +v -0.727684 1.094580 -1.260209 +v -0.727684 1.123136 -1.260209 +v -1.260209 1.094580 -0.686530 +v -1.260209 1.123136 -0.686530 +v -1.260209 1.123136 -0.727684 +v -0.686530 1.123136 -1.260209 +v -0.154005 1.123136 -0.686530 +v -0.727683 1.123136 -0.154005 +v -0.727683 1.094580 -0.154005 +v -0.154005 1.094580 -0.686530 +v -0.686530 1.094580 -1.260209 +v -1.260209 1.094580 -0.727684 +v -1.248855 1.120000 -0.590826 +v -1.248855 1.180000 -0.590826 +v -1.248855 1.120000 -0.809174 +v -1.248855 1.180000 -0.809174 +v -1.165297 1.120000 -1.010902 +v -1.165297 1.180000 -1.010902 +v -1.010902 1.120000 -1.165297 +v -1.010902 1.180000 -1.165297 +v -0.809174 1.120000 -1.248855 +v -0.809174 1.180000 -1.248855 +v -0.590826 1.120000 -1.248855 +v -0.590826 1.180000 -1.248855 +v -0.389098 1.120000 -1.165297 +v -0.389098 1.180000 -1.165297 +v -0.234703 1.120000 -1.010902 +v -0.234703 1.180000 -1.010902 +v -0.151145 1.120000 -0.809174 +v -0.151145 1.180000 -0.809174 +v -0.151145 1.120000 -0.590826 +v -0.151145 1.180000 -0.590826 +v -0.234703 1.120000 -0.389098 +v -0.234703 1.180000 -0.389098 +v -0.389098 1.120000 -0.234703 +v -0.389098 1.180000 -0.234703 +v -0.590826 1.120000 -0.151145 +v -0.590826 1.180000 -0.151145 +v -0.809174 1.120000 -0.151145 +v -0.809174 1.180000 -0.151145 +v -1.010902 1.120000 -0.234703 +v -1.010902 1.180000 -0.234703 +v -1.165297 1.120000 -0.389098 +v -1.165297 1.180000 -0.389098 +v -1.268855 1.120000 -0.586848 +v -1.268855 1.120000 -0.813152 +v -1.268855 1.180000 -0.813152 +v -1.268855 1.180000 -0.586848 +v -1.182252 1.120000 -1.022231 +v -1.182252 1.180000 -1.022231 +v -1.022231 1.120000 -1.182252 +v -1.022231 1.180000 -1.182252 +v -0.813153 1.120000 -1.268855 +v -0.813153 1.180000 -1.268855 +v -0.586848 1.120000 -1.268855 +v -0.586848 1.180000 -1.268855 +v -0.377769 1.120000 -1.182252 +v -0.377769 1.180000 -1.182252 +v -0.217748 1.120000 -1.022231 +v -0.217748 1.180000 -1.022231 +v -0.131145 1.120000 -0.813152 +v -0.131145 1.180000 -0.813152 +v -0.131145 1.120000 -0.586848 +v -0.131145 1.180000 -0.586848 +v -0.217748 1.120000 -0.377769 +v -0.217748 1.180000 -0.377769 +v -0.377769 1.120000 -0.217748 +v -0.377769 1.180000 -0.217748 +v -0.586848 1.120000 -0.131145 +v -0.586848 1.180000 -0.131145 +v -0.813152 1.120000 -0.131145 +v -0.813152 1.180000 -0.131145 +v -1.022231 1.120000 -0.217748 +v -1.022231 1.180000 -0.217748 +v -1.182252 1.120000 -0.377769 +v -1.182252 1.180000 -0.377769 +v -0.500278 0.440000 -0.447245 +v -0.411890 0.440000 -0.464923 +v -0.464923 0.440000 -0.411890 +v -0.447245 0.440000 -0.500278 +v -0.349720 0.340000 -0.402753 +v -0.402753 0.340000 -0.349720 +v 0.447245 0.500000 -0.500278 +v 0.411890 0.500000 -0.464923 +v 0.464923 0.500000 -0.411890 +v 0.500278 0.500000 -0.447245 +v 0.556898 0.530000 -0.698320 +v 0.586898 0.500000 -0.685894 +v 0.698320 0.530000 -0.556898 +v 0.685894 0.500000 -0.586898 +v 0.685894 0.712426 -0.827315 +v 0.728320 0.700000 -0.827315 +v 0.827315 0.712426 -0.685894 +v 0.827315 0.700000 -0.728320 +v 0.503762 0.670000 -0.645183 +v 0.516188 0.700000 -0.615183 +v 0.645183 0.670000 -0.503761 +v 0.615183 0.700000 -0.516188 +v 0.728320 0.787574 -0.586898 +v 0.685894 0.800000 -0.586898 +v 0.586898 0.787574 -0.728320 +v 0.586898 0.800000 -0.685894 +v 0.141421 0.530000 -0.000000 +v 0.098995 0.500000 -0.000000 +v 0.141421 0.670000 -0.000000 +v 0.098995 0.700000 -0.000000 +v 0.385858 0.340000 -0.100000 +v 0.100000 0.340000 -0.385858 +v 0.100000 0.306000 -0.385858 +v 0.385858 0.306000 -0.100000 +v 0.420000 0.340000 -0.100000 +v 0.420000 0.306000 -0.100000 +v 0.100000 0.340000 -0.420000 +v 0.100000 0.306000 -0.420000 +v 0.385858 0.306000 -0.357272 +v 0.385858 0.340000 -0.357272 +v 0.357272 0.306000 -0.385858 +v 0.357272 0.340000 -0.385858 +v 0.415074 0.340000 -0.364151 +v 0.364151 0.340000 -0.415074 +v 0.364151 0.306000 -0.415074 +v 0.415074 0.306000 -0.364151 +v 0.685894 1.073136 -0.586898 +v 0.728320 1.073136 -0.586898 +v 0.586898 1.073136 -0.728320 +v 0.586898 1.073136 -0.685894 +v 0.728320 1.073136 -0.827315 +v 0.685894 1.073136 -0.827315 +v 0.827315 1.073136 -0.728320 +v 0.827315 1.073136 -0.685894 +v 0.701803 1.073136 -0.677055 +v 0.677055 1.073136 -0.712410 +v 0.712410 1.073136 -0.737159 +v 0.737159 1.073136 -0.701803 +v 0.712410 1.073136 -0.677055 +v 0.677055 1.073136 -0.701803 +v 0.701803 1.073136 -0.737159 +v 0.737159 1.073136 -0.712410 +v 0.737159 1.143136 -0.712410 +v 0.737159 1.143136 -0.701803 +v 0.712410 1.143136 -0.737159 +v 0.701803 1.143136 -0.737159 +v 0.677055 1.143136 -0.712410 +v 0.677055 1.143136 -0.701803 +v 0.701803 1.143136 -0.677055 +v 0.712410 1.143136 -0.677055 +v 0.728320 1.044580 -0.586898 +v 0.586898 1.044580 -0.685894 +v 0.685894 1.044580 -0.827315 +v 0.827315 1.044580 -0.728320 +v 0.685894 1.044580 -0.586898 +v 0.586898 1.044580 -0.728320 +v 0.728320 1.044580 -0.827315 +v 0.827315 1.044580 -0.685894 +v 0.686530 1.094580 -0.154005 +v 0.686530 1.123136 -0.154005 +v 0.154005 1.094580 -0.727683 +v 0.154005 1.123136 -0.727683 +v 0.727684 1.094580 -1.260209 +v 0.727684 1.123136 -1.260209 +v 1.260209 1.094580 -0.686530 +v 1.260209 1.123136 -0.686530 +v 1.260209 1.123136 -0.727684 +v 0.686530 1.123136 -1.260209 +v 0.154005 1.123136 -0.686530 +v 0.727683 1.123136 -0.154005 +v 0.727683 1.094580 -0.154005 +v 0.154005 1.094580 -0.686530 +v 0.686530 1.094580 -1.260209 +v 1.260209 1.094580 -0.727684 +v 1.248855 1.120000 -0.590826 +v 1.248855 1.180000 -0.590826 +v 1.248855 1.120000 -0.809174 +v 1.248855 1.180000 -0.809174 +v 1.165297 1.120000 -1.010902 +v 1.165297 1.180000 -1.010902 +v 1.010902 1.120000 -1.165297 +v 1.010902 1.180000 -1.165297 +v 0.809174 1.120000 -1.248855 +v 0.809174 1.180000 -1.248855 +v 0.590826 1.120000 -1.248855 +v 0.590826 1.180000 -1.248855 +v 0.389098 1.120000 -1.165297 +v 0.389098 1.180000 -1.165297 +v 0.234703 1.120000 -1.010902 +v 0.234703 1.180000 -1.010902 +v 0.151145 1.120000 -0.809174 +v 0.151145 1.180000 -0.809174 +v 0.151145 1.120000 -0.590826 +v 0.151145 1.180000 -0.590826 +v 0.234703 1.120000 -0.389098 +v 0.234703 1.180000 -0.389098 +v 0.389098 1.120000 -0.234703 +v 0.389098 1.180000 -0.234703 +v 0.590826 1.120000 -0.151145 +v 0.590826 1.180000 -0.151145 +v 0.809174 1.120000 -0.151145 +v 0.809174 1.180000 -0.151145 +v 1.010902 1.120000 -0.234703 +v 1.010902 1.180000 -0.234703 +v 1.165297 1.120000 -0.389098 +v 1.165297 1.180000 -0.389098 +v 1.268855 1.120000 -0.586848 +v 1.268855 1.120000 -0.813152 +v 1.268855 1.180000 -0.813152 +v 1.268855 1.180000 -0.586848 +v 1.182252 1.120000 -1.022231 +v 1.182252 1.180000 -1.022231 +v 1.022231 1.120000 -1.182252 +v 1.022231 1.180000 -1.182252 +v 0.813153 1.120000 -1.268855 +v 0.813153 1.180000 -1.268855 +v 0.586848 1.120000 -1.268855 +v 0.586848 1.180000 -1.268855 +v 0.377769 1.120000 -1.182252 +v 0.377769 1.180000 -1.182252 +v 0.217748 1.120000 -1.022231 +v 0.217748 1.180000 -1.022231 +v 0.131145 1.120000 -0.813152 +v 0.131145 1.180000 -0.813152 +v 0.131145 1.120000 -0.586848 +v 0.131145 1.180000 -0.586848 +v 0.217748 1.120000 -0.377769 +v 0.217748 1.180000 -0.377769 +v 0.377769 1.120000 -0.217748 +v 0.377769 1.180000 -0.217748 +v 0.586848 1.120000 -0.131145 +v 0.586848 1.180000 -0.131145 +v 0.813152 1.120000 -0.131145 +v 0.813152 1.180000 -0.131145 +v 1.022231 1.120000 -0.217748 +v 1.022231 1.180000 -0.217748 +v 1.182252 1.120000 -0.377769 +v 1.182252 1.180000 -0.377769 +v 0.500278 0.440000 -0.447245 +v 0.411890 0.440000 -0.464923 +v 0.464923 0.440000 -0.411890 +v 0.447245 0.440000 -0.500278 +v 0.349720 0.340000 -0.402753 +v 0.402753 0.340000 -0.349720 +v -0.447245 0.500000 0.500278 +v -0.411890 0.500000 0.464923 +v -0.464923 0.500000 0.411890 +v -0.500278 0.500000 0.447245 +v -0.556898 0.530000 0.698320 +v -0.586898 0.500000 0.685894 +v -0.698320 0.530000 0.556898 +v -0.685894 0.500000 0.586898 +v -0.685894 0.712426 0.827315 +v -0.728320 0.700000 0.827315 +v -0.827315 0.712426 0.685894 +v -0.827315 0.700000 0.728320 +v -0.503762 0.670000 0.645183 +v -0.516188 0.700000 0.615183 +v -0.645183 0.670000 0.503761 +v -0.615183 0.700000 0.516188 +v -0.728320 0.787574 0.586898 +v -0.685894 0.800000 0.586898 +v -0.586898 0.787574 0.728320 +v -0.586898 0.800000 0.685894 +v 0.000000 0.530000 0.141421 +v 0.000000 0.500000 0.098995 +v 0.000000 0.700000 0.098995 +v 0.000000 0.670000 0.141421 +v -0.385858 0.340000 0.100000 +v -0.100000 0.340000 0.385858 +v -0.100000 0.306000 0.385858 +v -0.385858 0.306000 0.100000 +v -0.420000 0.340000 0.100000 +v -0.420000 0.306000 0.100000 +v -0.100000 0.340000 0.420000 +v -0.100000 0.306000 0.420000 +v -0.385858 0.306000 0.357272 +v -0.385858 0.340000 0.357272 +v -0.357272 0.306000 0.385858 +v -0.357272 0.340000 0.385858 +v -0.415074 0.340000 0.364151 +v -0.364151 0.340000 0.415074 +v -0.364151 0.306000 0.415074 +v -0.415074 0.306000 0.364151 +v -0.685894 1.073136 0.586898 +v -0.728320 1.073136 0.586898 +v -0.586898 1.073136 0.728320 +v -0.586898 1.073136 0.685894 +v -0.728320 1.073136 0.827315 +v -0.685894 1.073136 0.827315 +v -0.827315 1.073136 0.728320 +v -0.827315 1.073136 0.685894 +v -0.701803 1.073136 0.677055 +v -0.677055 1.073136 0.712410 +v -0.712410 1.073136 0.737159 +v -0.737159 1.073136 0.701803 +v -0.712410 1.073136 0.677055 +v -0.677055 1.073136 0.701803 +v -0.701803 1.073136 0.737159 +v -0.737159 1.073136 0.712410 +v -0.737159 1.143136 0.712410 +v -0.737159 1.143136 0.701803 +v -0.712410 1.143136 0.737159 +v -0.701803 1.143136 0.737159 +v -0.677055 1.143136 0.712410 +v -0.677055 1.143136 0.701803 +v -0.701803 1.143136 0.677055 +v -0.712410 1.143136 0.677055 +v -0.728320 1.044580 0.586898 +v -0.586898 1.044580 0.685894 +v -0.685894 1.044580 0.827315 +v -0.827315 1.044580 0.728320 +v -0.685894 1.044580 0.586898 +v -0.586898 1.044580 0.728320 +v -0.728320 1.044580 0.827315 +v -0.827315 1.044580 0.685894 +v -0.686530 1.094580 0.154005 +v -0.686530 1.123136 0.154005 +v -0.154005 1.094580 0.727683 +v -0.154005 1.123136 0.727683 +v -0.727684 1.094580 1.260209 +v -0.727684 1.123136 1.260209 +v -1.260209 1.094580 0.686530 +v -1.260209 1.123136 0.686530 +v -1.260209 1.123136 0.727684 +v -0.686530 1.123136 1.260209 +v -0.154005 1.123136 0.686530 +v -0.727683 1.123136 0.154005 +v -0.727683 1.094580 0.154005 +v -0.154005 1.094580 0.686530 +v -0.686530 1.094580 1.260209 +v -1.260209 1.094580 0.727684 +v -1.248855 1.120000 0.590826 +v -1.248855 1.180000 0.590826 +v -1.248855 1.120000 0.809174 +v -1.248855 1.180000 0.809174 +v -1.165297 1.120000 1.010902 +v -1.165297 1.180000 1.010902 +v -1.010902 1.120000 1.165297 +v -1.010902 1.180000 1.165297 +v -0.809174 1.120000 1.248855 +v -0.809174 1.180000 1.248855 +v -0.590826 1.120000 1.248855 +v -0.590826 1.180000 1.248855 +v -0.389098 1.120000 1.165297 +v -0.389098 1.180000 1.165297 +v -0.234703 1.120000 1.010902 +v -0.234703 1.180000 1.010902 +v -0.151145 1.120000 0.809174 +v -0.151145 1.180000 0.809174 +v -0.151145 1.120000 0.590826 +v -0.151145 1.180000 0.590826 +v -0.234703 1.120000 0.389098 +v -0.234703 1.180000 0.389098 +v -0.389098 1.120000 0.234703 +v -0.389098 1.180000 0.234703 +v -0.590826 1.120000 0.151145 +v -0.590826 1.180000 0.151145 +v -0.809174 1.120000 0.151145 +v -0.809174 1.180000 0.151145 +v -1.010902 1.120000 0.234703 +v -1.010902 1.180000 0.234703 +v -1.165297 1.120000 0.389098 +v -1.165297 1.180000 0.389098 +v -1.268855 1.120000 0.586848 +v -1.268855 1.120000 0.813152 +v -1.268855 1.180000 0.813152 +v -1.268855 1.180000 0.586848 +v -1.182252 1.120000 1.022231 +v -1.182252 1.180000 1.022231 +v -1.022231 1.120000 1.182252 +v -1.022231 1.180000 1.182252 +v -0.813153 1.120000 1.268855 +v -0.813153 1.180000 1.268855 +v -0.586848 1.120000 1.268855 +v -0.586848 1.180000 1.268855 +v -0.377769 1.120000 1.182252 +v -0.377769 1.180000 1.182252 +v -0.217748 1.120000 1.022231 +v -0.217748 1.180000 1.022231 +v -0.131145 1.120000 0.813152 +v -0.131145 1.180000 0.813152 +v -0.131145 1.120000 0.586848 +v -0.131145 1.180000 0.586848 +v -0.217748 1.120000 0.377769 +v -0.217748 1.180000 0.377769 +v -0.377769 1.120000 0.217748 +v -0.377769 1.180000 0.217748 +v -0.586848 1.120000 0.131145 +v -0.586848 1.180000 0.131145 +v -0.813152 1.120000 0.131145 +v -0.813152 1.180000 0.131145 +v -1.022231 1.120000 0.217748 +v -1.022231 1.180000 0.217748 +v -1.182252 1.120000 0.377769 +v -1.182252 1.180000 0.377769 +v -0.500278 0.440000 0.447245 +v -0.411890 0.440000 0.464923 +v -0.464923 0.440000 0.411890 +v -0.447245 0.440000 0.500278 +v -0.349720 0.340000 0.402753 +v -0.402753 0.340000 0.349720 +v 0.447245 0.500000 0.500278 +v 0.411890 0.500000 0.464923 +v 0.464923 0.500000 0.411890 +v 0.500278 0.500000 0.447245 +v 0.556898 0.530000 0.698320 +v 0.586898 0.500000 0.685894 +v 0.698320 0.530000 0.556898 +v 0.685894 0.500000 0.586898 +v 0.685894 0.712426 0.827315 +v 0.728320 0.700000 0.827315 +v 0.827315 0.712426 0.685894 +v 0.827315 0.700000 0.728320 +v 0.503762 0.670000 0.645183 +v 0.516188 0.700000 0.615183 +v 0.645183 0.670000 0.503761 +v 0.615183 0.700000 0.516188 +v 0.728320 0.787574 0.586898 +v 0.685894 0.800000 0.586898 +v 0.586898 0.787574 0.728320 +v 0.586898 0.800000 0.685894 +v 0.385858 0.340000 0.100000 +v 0.100000 0.340000 0.385858 +v 0.100000 0.306000 0.385858 +v 0.385858 0.306000 0.100000 +v 0.420000 0.340000 0.100000 +v 0.420000 0.306000 0.100000 +v 0.100000 0.340000 0.420000 +v 0.100000 0.306000 0.420000 +v 0.385858 0.306000 0.357272 +v 0.385858 0.340000 0.357272 +v 0.357272 0.306000 0.385858 +v 0.357272 0.340000 0.385858 +v 0.415074 0.340000 0.364151 +v 0.364151 0.340000 0.415074 +v 0.364151 0.306000 0.415074 +v 0.415074 0.306000 0.364151 +v 0.685894 1.073136 0.586898 +v 0.728320 1.073136 0.586898 +v 0.586898 1.073136 0.728320 +v 0.586898 1.073136 0.685894 +v 0.728320 1.073136 0.827315 +v 0.685894 1.073136 0.827315 +v 0.827315 1.073136 0.728320 +v 0.827315 1.073136 0.685894 +v 0.701803 1.073136 0.677055 +v 0.677055 1.073136 0.712410 +v 0.712410 1.073136 0.737159 +v 0.737159 1.073136 0.701803 +v 0.712410 1.073136 0.677055 +v 0.677055 1.073136 0.701803 +v 0.701803 1.073136 0.737159 +v 0.737159 1.073136 0.712410 +v 0.737159 1.143136 0.712410 +v 0.737159 1.143136 0.701803 +v 0.712410 1.143136 0.737159 +v 0.701803 1.143136 0.737159 +v 0.677055 1.143136 0.712410 +v 0.677055 1.143136 0.701803 +v 0.701803 1.143136 0.677055 +v 0.712410 1.143136 0.677055 +v 0.728320 1.044580 0.586898 +v 0.586898 1.044580 0.685894 +v 0.685894 1.044580 0.827315 +v 0.827315 1.044580 0.728320 +v 0.685894 1.044580 0.586898 +v 0.586898 1.044580 0.728320 +v 0.728320 1.044580 0.827315 +v 0.827315 1.044580 0.685894 +v 0.686530 1.094580 0.154005 +v 0.686530 1.123136 0.154005 +v 0.154005 1.094580 0.727683 +v 0.154005 1.123136 0.727683 +v 0.727684 1.094580 1.260209 +v 0.727684 1.123136 1.260209 +v 1.260209 1.094580 0.686530 +v 1.260209 1.123136 0.686530 +v 1.260209 1.123136 0.727684 +v 0.686530 1.123136 1.260209 +v 0.154005 1.123136 0.686530 +v 0.727683 1.123136 0.154005 +v 0.727683 1.094580 0.154005 +v 0.154005 1.094580 0.686530 +v 0.686530 1.094580 1.260209 +v 1.260209 1.094580 0.727684 +v 1.248855 1.120000 0.590826 +v 1.248855 1.180000 0.590826 +v 1.248855 1.120000 0.809174 +v 1.248855 1.180000 0.809174 +v 1.165297 1.120000 1.010902 +v 1.165297 1.180000 1.010902 +v 1.010902 1.120000 1.165297 +v 1.010902 1.180000 1.165297 +v 0.809174 1.120000 1.248855 +v 0.809174 1.180000 1.248855 +v 0.590826 1.120000 1.248855 +v 0.590826 1.180000 1.248855 +v 0.389098 1.120000 1.165297 +v 0.389098 1.180000 1.165297 +v 0.234703 1.120000 1.010902 +v 0.234703 1.180000 1.010902 +v 0.151145 1.120000 0.809174 +v 0.151145 1.180000 0.809174 +v 0.151145 1.120000 0.590826 +v 0.151145 1.180000 0.590826 +v 0.234703 1.120000 0.389098 +v 0.234703 1.180000 0.389098 +v 0.389098 1.120000 0.234703 +v 0.389098 1.180000 0.234703 +v 0.590826 1.120000 0.151145 +v 0.590826 1.180000 0.151145 +v 0.809174 1.120000 0.151145 +v 0.809174 1.180000 0.151145 +v 1.010902 1.120000 0.234703 +v 1.010902 1.180000 0.234703 +v 1.165297 1.120000 0.389098 +v 1.165297 1.180000 0.389098 +v 1.268855 1.120000 0.586848 +v 1.268855 1.120000 0.813152 +v 1.268855 1.180000 0.813152 +v 1.268855 1.180000 0.586848 +v 1.182252 1.120000 1.022231 +v 1.182252 1.180000 1.022231 +v 1.022231 1.120000 1.182252 +v 1.022231 1.180000 1.182252 +v 0.813153 1.120000 1.268855 +v 0.813153 1.180000 1.268855 +v 0.586848 1.120000 1.268855 +v 0.586848 1.180000 1.268855 +v 0.377769 1.120000 1.182252 +v 0.377769 1.180000 1.182252 +v 0.217748 1.120000 1.022231 +v 0.217748 1.180000 1.022231 +v 0.131145 1.120000 0.813152 +v 0.131145 1.180000 0.813152 +v 0.131145 1.120000 0.586848 +v 0.131145 1.180000 0.586848 +v 0.217748 1.120000 0.377769 +v 0.217748 1.180000 0.377769 +v 0.377769 1.120000 0.217748 +v 0.377769 1.180000 0.217748 +v 0.586848 1.120000 0.131145 +v 0.586848 1.180000 0.131145 +v 0.813152 1.120000 0.131145 +v 0.813152 1.180000 0.131145 +v 1.022231 1.120000 0.217748 +v 1.022231 1.180000 0.217748 +v 1.182252 1.120000 0.377769 +v 1.182252 1.180000 0.377769 +v 0.500278 0.440000 0.447245 +v 0.411890 0.440000 0.464923 +v 0.464923 0.440000 0.411890 +v 0.447245 0.440000 0.500278 +v 0.349720 0.340000 0.402753 +v 0.402753 0.340000 0.349720 +vn -0.0000 1.0000 -0.0000 +vn 0.5000 0.7071 0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.8536 -0.5000 0.1465 +vn 0.1465 -0.5000 -0.8536 +vn -0.5000 0.7071 0.5000 +vn 0.8536 0.5000 -0.1464 +vn 0.5000 0.7071 -0.5000 +vn -0.1464 0.5000 0.8536 +vn 0.5000 -0.7071 -0.5000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.5000 -0.7071 0.5000 +vn -0.9998 -0.0000 -0.0186 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.0000 0.7071 +vn -0.0186 -0.0000 -0.9998 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.0000 0.9934 -0.1147 +vn 0.0015 -0.0000 -1.0000 +vn -0.0015 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +vn -0.0000 -0.0000 -1.0000 +vn -0.1147 0.9934 -0.0000 +vn -1.0000 -0.0000 -0.0015 +vn -0.0000 -0.9934 0.1147 +vn 0.1147 -0.9934 -0.0000 +vn -0.0000 -0.9934 -0.1147 +vn -0.0015 -0.0000 1.0000 +vn -1.0000 -0.0000 0.0015 +vn -0.1147 -0.9934 -0.0000 +vn 0.1147 0.9934 -0.0000 +vn 0.0015 -0.0000 1.0000 +vn -0.0000 0.9934 0.1147 +vn 1.0000 -0.0000 -0.0015 +vn 1.0000 -0.0000 0.0015 +vn -0.9239 -0.0000 -0.3827 +vn -0.3827 -0.0000 -0.9239 +vn 0.3827 -0.0000 -0.9239 +vn 0.9239 -0.0000 -0.3827 +vn 0.9239 -0.0000 0.3827 +vn 0.3827 -0.0000 0.9239 +vn -0.3827 -0.0000 0.9239 +vn -0.9239 -0.0000 0.3827 +vn -0.6982 -0.0000 0.7159 +vn -0.5287 -0.6640 -0.5287 +vn 0.5310 0.6603 0.5310 +vn 0.7159 -0.0000 -0.6982 +vn -0.8536 -0.5000 0.1464 +vn 0.1464 -0.5000 -0.8536 +vn -0.7587 -0.0690 0.6478 +vn -0.7070 -0.0149 0.7070 +vn 0.7070 -0.0149 -0.7070 +vn 0.6478 -0.0690 -0.7587 +vn 0.8536 -0.5000 0.1465 +vn -0.1465 -0.5000 -0.8536 +vn -0.8536 0.5000 -0.1464 +vn -0.5000 0.7071 -0.5000 +vn 0.1464 0.5000 0.8536 +vn 0.5000 -0.7071 0.5000 +vn 0.9998 -0.0000 -0.0186 +vn 0.0186 -0.0000 -0.9998 +vn 0.6982 -0.0000 0.7159 +vn 0.5287 -0.6640 -0.5287 +vn -0.5310 0.6603 0.5310 +vn -0.7159 -0.0000 -0.6982 +vn 0.8536 -0.5000 0.1464 +vn -0.1464 -0.5000 -0.8536 +vn 0.7587 -0.0690 0.6478 +vn 0.7070 -0.0149 0.7070 +vn -0.7070 -0.0149 -0.7070 +vn -0.6478 -0.0690 -0.7587 +vn -0.8536 -0.5000 -0.1465 +vn 0.1465 -0.5000 0.8536 +vn 0.8536 0.5000 0.1464 +vn -0.1464 0.5000 -0.8536 +vn -0.9998 -0.0000 0.0186 +vn -0.0186 -0.0000 0.9998 +vn -0.6982 -0.0000 -0.7159 +vn -0.5287 -0.6640 0.5287 +vn 0.5310 0.6603 -0.5310 +vn 0.7159 -0.0000 0.6982 +vn -0.8536 -0.5000 -0.1464 +vn 0.1464 -0.5000 0.8536 +vn -0.7587 -0.0690 -0.6478 +vn 0.6478 -0.0690 0.7587 +vn 0.8536 -0.5000 -0.1465 +vn -0.1465 -0.5000 0.8536 +vn -0.8536 0.5000 0.1464 +vn 0.1464 0.5000 -0.8536 +vn 0.9998 -0.0000 0.0186 +vn 0.0186 -0.0000 0.9998 +vn 0.6982 -0.0000 -0.7159 +vn 0.5287 -0.6640 0.5287 +vn -0.5310 0.6603 -0.5310 +vn -0.7159 -0.0000 0.6982 +vn 0.8536 -0.5000 -0.1464 +vn -0.1464 -0.5000 0.8536 +vn 0.7587 -0.0690 -0.6478 +vn -0.6478 -0.0690 0.7587 +vt 0.390412 0.639334 +vt 0.458120 0.642245 +vt 0.458120 0.642245 +vt 0.429752 0.662878 +vt 0.224726 0.662642 +vt 0.429752 0.662878 +vt 0.293209 0.540681 +vt 0.224642 0.735866 +vt 0.361438 0.638392 +vt 0.429668 0.736102 +vt 0.372205 0.559837 +vt 0.282511 0.559733 +vt 0.282511 0.559733 +vt 0.266402 0.645800 +vt 0.187226 0.724810 +vt 0.388116 0.645940 +vt 0.467110 0.725132 +vt 0.274897 0.545237 +vt 0.452737 0.663446 +vt 0.464614 0.675933 +vt 0.379851 0.545358 +vt 0.361551 0.540760 +vt 0.264121 0.639189 +vt 0.196406 0.641944 +vt 0.264121 0.639189 +vt 0.224726 0.662642 +vt 0.189835 0.675616 +vt 0.473602 0.736152 +vt 0.473279 0.721758 +vt 0.293096 0.638313 +vt 0.264301 0.639712 +vt 0.178040 0.348052 +vt 0.173100 0.246910 +vt 0.200502 0.284742 +vt 0.180708 0.735815 +vt 0.181065 0.721422 +vt 0.161056 0.449273 +vt 0.149596 0.422930 +vt 0.166055 0.445652 +vt 0.126909 0.391607 +vt 0.139525 0.419548 +vt 0.144524 0.415927 +vt 0.121909 0.395228 +vt 0.161056 0.449273 +vt 0.166055 0.445652 +vt 0.148439 0.421332 +vt 0.143440 0.424953 +vt 0.138368 0.417950 +vt 0.143367 0.414329 +vt 0.169488 0.346685 +vt 0.173100 0.246910 +vt 0.121909 0.267397 +vt 0.201741 0.663157 +vt 0.473324 0.653715 +vt 0.361438 0.638392 +vt 0.196406 0.641944 +vt 0.180816 0.641997 +vt 0.457582 0.644365 +vt 0.457582 0.644365 +vt 0.293096 0.638313 +vt 0.378222 0.570610 +vt 0.276469 0.570493 +vt 0.473710 0.642333 +vt 0.372205 0.559837 +vt 0.361438 0.638392 +vt 0.473710 0.642334 +vt 0.196406 0.641944 +vt 0.180792 0.662592 +vt 0.196940 0.644065 +vt 0.473687 0.662929 +vt 0.390230 0.639857 +vt 0.473708 0.644487 +vt 0.180813 0.644150 +vt 0.473708 0.644487 +vt 0.276469 0.570493 +vt 0.006219 0.860813 +vt 0.016969 0.946816 +vt 0.006219 0.946816 +vt 0.016969 0.860813 +vt 0.027720 0.946816 +vt 0.027720 0.860813 +vt 0.038470 0.946816 +vt 0.038470 0.860813 +vt 0.049220 0.946816 +vt 0.049220 0.860813 +vt 0.059971 0.946816 +vt 0.059970 0.860813 +vt 0.070721 0.946816 +vt 0.070721 0.860813 +vt 0.081471 0.946816 +vt 0.081471 0.860813 +vt 0.092221 0.946816 +vt 0.092221 0.860813 +vt 0.102972 0.946816 +vt 0.102972 0.860813 +vt 0.113722 0.946816 +vt 0.113722 0.860813 +vt 0.124472 0.946816 +vt 0.124472 0.860813 +vt 0.135223 0.946816 +vt 0.135223 0.860813 +vt 0.145973 0.946816 +vt 0.145973 0.860813 +vt 0.156723 0.946816 +vt 0.021879 0.263763 +vt 0.010751 0.391270 +vt 0.010751 0.280418 +vt 0.156723 0.860813 +vt 0.167474 0.946816 +vt 0.167474 0.860813 +vt 0.178224 0.946816 +vt 0.006843 0.410916 +vt 0.006843 0.300064 +vt 0.009022 0.431279 +vt 0.010751 0.430563 +vt 0.010751 0.319711 +vt 0.004972 0.300064 +vt 0.020557 0.448541 +vt 0.021879 0.447218 +vt 0.021879 0.336366 +vt 0.009022 0.320427 +vt 0.038535 0.458347 +vt 0.037819 0.460075 +vt 0.037819 0.349223 +vt 0.020557 0.337689 +vt 0.058181 0.464125 +vt 0.058181 0.462255 +vt 0.038535 0.347495 +vt 0.058181 0.353273 +vt 0.078543 0.460075 +vt 0.077827 0.458347 +vt 0.077827 0.347495 +vt 0.058181 0.351403 +vt 0.094483 0.447218 +vt 0.095806 0.448541 +vt 0.094483 0.336366 +vt 0.078543 0.349223 +vt 0.105611 0.430563 +vt 0.107340 0.431279 +vt 0.105611 0.319711 +vt 0.095806 0.337689 +vt 0.109519 0.410916 +vt 0.111390 0.410916 +vt 0.109519 0.300064 +vt 0.107340 0.320427 +vt 0.105611 0.391270 +vt 0.107340 0.390554 +vt 0.107340 0.279702 +vt 0.111390 0.300064 +vt 0.095806 0.373292 +vt 0.094483 0.374615 +vt 0.094483 0.263763 +vt 0.105611 0.280418 +vt 0.078543 0.361758 +vt 0.077827 0.363486 +vt 0.077827 0.252634 +vt 0.095806 0.262440 +vt 0.058181 0.359578 +vt 0.058181 0.357707 +vt 0.058181 0.246855 +vt 0.078543 0.250906 +vt 0.037819 0.361758 +vt 0.038535 0.363486 +vt 0.058181 0.248726 +vt 0.037819 0.250906 +vt 0.020557 0.373292 +vt 0.021879 0.374615 +vt 0.038535 0.252634 +vt 0.009022 0.390554 +vt 0.020557 0.262440 +vt 0.004972 0.410916 +vt 0.009022 0.279702 +vt 0.144597 0.426551 +vt 0.143739 0.425366 +vt 0.154776 0.272652 +vt 0.121909 0.267397 +vt 0.178040 0.348052 +vt 0.139337 0.419289 +vt 0.139676 0.419757 +vt 0.327380 0.540721 +vt 0.186801 0.265826 +vt 0.200502 0.284742 +vt 0.181175 0.653379 +vt 0.180816 0.641997 +vt 0.178224 0.860813 +vt 0.144597 0.426551 +vt 0.190013 0.909082 +vt 0.190013 0.995085 +vt 0.200763 0.995085 +vt 0.200763 0.909082 +vt 0.211513 0.995085 +vt 0.211513 0.909082 +vt 0.222263 0.995085 +vt 0.222263 0.909082 +vt 0.233014 0.995085 +vt 0.233014 0.909082 +vt 0.243764 0.995085 +vt 0.243764 0.909082 +vt 0.254514 0.995085 +vt 0.254514 0.909082 +vt 0.265265 0.995085 +vt 0.265265 0.909082 +vt 0.276015 0.995085 +vt 0.276015 0.909082 +vt 0.286765 0.995085 +vt 0.286765 0.909082 +vt 0.297516 0.995085 +vt 0.297516 0.909082 +vt 0.308266 0.995085 +vt 0.308266 0.909082 +vt 0.319016 0.995085 +vt 0.319016 0.909082 +vt 0.329767 0.995085 +vt 0.329767 0.909082 +vt 0.340517 0.995085 +vt 0.599451 0.447218 +vt 0.610580 0.430563 +vt 0.610580 0.319711 +vt 0.340517 0.909082 +vt 0.351267 0.995085 +vt 0.351267 0.909082 +vt 0.362018 0.995085 +vt 0.614488 0.410916 +vt 0.614488 0.300064 +vt 0.610580 0.280418 +vt 0.612308 0.279702 +vt 0.610580 0.391270 +vt 0.616358 0.410916 +vt 0.599451 0.263763 +vt 0.600774 0.262440 +vt 0.599451 0.374615 +vt 0.612308 0.390554 +vt 0.582796 0.252634 +vt 0.583512 0.250906 +vt 0.600774 0.373292 +vt 0.583512 0.361758 +vt 0.563149 0.248726 +vt 0.563149 0.246856 +vt 0.582796 0.363486 +vt 0.563149 0.357707 +vt 0.543503 0.252634 +vt 0.542787 0.250906 +vt 0.543503 0.363486 +vt 0.563149 0.359578 +vt 0.526848 0.263763 +vt 0.525525 0.262440 +vt 0.526848 0.374615 +vt 0.542787 0.361758 +vt 0.515719 0.280418 +vt 0.513991 0.279702 +vt 0.515719 0.391270 +vt 0.525525 0.373292 +vt 0.511811 0.300064 +vt 0.509941 0.300064 +vt 0.511811 0.410916 +vt 0.513991 0.390554 +vt 0.515719 0.319711 +vt 0.513991 0.320427 +vt 0.509941 0.410916 +vt 0.513991 0.431278 +vt 0.526848 0.336366 +vt 0.525525 0.337689 +vt 0.526848 0.447218 +vt 0.515719 0.430563 +vt 0.543503 0.347495 +vt 0.542787 0.349223 +vt 0.543503 0.458347 +vt 0.525525 0.448541 +vt 0.563149 0.351403 +vt 0.563149 0.353273 +vt 0.542787 0.460075 +vt 0.563149 0.464125 +vt 0.582796 0.347495 +vt 0.583512 0.349223 +vt 0.563149 0.462255 +vt 0.583512 0.460075 +vt 0.599451 0.336366 +vt 0.600774 0.337689 +vt 0.582796 0.458347 +vt 0.612308 0.320427 +vt 0.600774 0.448541 +vt 0.616358 0.300064 +vt 0.612308 0.431278 +vt 0.362018 0.909082 +vt 0.875665 0.965381 +vt 0.961668 0.965381 +vt 0.961668 0.954630 +vt 0.875665 0.954630 +vt 0.961668 0.943880 +vt 0.875665 0.943880 +vt 0.961668 0.933130 +vt 0.875665 0.933130 +vt 0.961668 0.922379 +vt 0.875665 0.922379 +vt 0.961668 0.911629 +vt 0.875665 0.911629 +vt 0.961668 0.900879 +vt 0.875665 0.900879 +vt 0.961668 0.890128 +vt 0.875665 0.890128 +vt 0.961668 0.879378 +vt 0.875665 0.879378 +vt 0.961668 0.868628 +vt 0.875665 0.868628 +vt 0.961668 0.857877 +vt 0.875665 0.857877 +vt 0.961668 0.847127 +vt 0.875665 0.847127 +vt 0.961668 0.836377 +vt 0.875665 0.836377 +vt 0.961668 0.825626 +vt 0.875665 0.825626 +vt 0.961668 0.814876 +vt 0.055835 0.562321 +vt 0.072490 0.573450 +vt 0.183342 0.573450 +vt 0.875665 0.814876 +vt 0.961668 0.804126 +vt 0.875665 0.804126 +vt 0.961668 0.793375 +vt 0.092136 0.577358 +vt 0.202988 0.577358 +vt 0.222634 0.573450 +vt 0.223350 0.575178 +vt 0.111782 0.573450 +vt 0.092136 0.579228 +vt 0.239290 0.562321 +vt 0.240613 0.563644 +vt 0.128438 0.562321 +vt 0.112498 0.575178 +vt 0.250418 0.545666 +vt 0.252147 0.546382 +vt 0.129761 0.563644 +vt 0.141295 0.546382 +vt 0.254326 0.526019 +vt 0.256197 0.526019 +vt 0.139566 0.545666 +vt 0.145345 0.526019 +vt 0.250418 0.506373 +vt 0.252147 0.505657 +vt 0.139566 0.506373 +vt 0.143474 0.526019 +vt 0.239290 0.489718 +vt 0.240613 0.488395 +vt 0.128438 0.489718 +vt 0.141295 0.505657 +vt 0.222634 0.478589 +vt 0.223350 0.476861 +vt 0.111782 0.478589 +vt 0.129761 0.488395 +vt 0.202988 0.474681 +vt 0.202988 0.472810 +vt 0.092136 0.474681 +vt 0.112498 0.476861 +vt 0.183342 0.478589 +vt 0.182626 0.476861 +vt 0.092136 0.472810 +vt 0.071774 0.476861 +vt 0.166687 0.489718 +vt 0.165364 0.488395 +vt 0.055835 0.489718 +vt 0.072490 0.478589 +vt 0.155558 0.506373 +vt 0.153830 0.505657 +vt 0.044706 0.506373 +vt 0.054512 0.488395 +vt 0.151650 0.526019 +vt 0.149779 0.526019 +vt 0.042978 0.505657 +vt 0.038927 0.526019 +vt 0.155558 0.545666 +vt 0.153830 0.546382 +vt 0.040798 0.526019 +vt 0.042978 0.546382 +vt 0.166687 0.562321 +vt 0.165364 0.563644 +vt 0.044706 0.545666 +vt 0.182626 0.575178 +vt 0.054512 0.563644 +vt 0.202988 0.579228 +vt 0.071774 0.575178 +vt 0.875665 0.793375 +vt 0.451779 0.894230 +vt 0.462530 0.980233 +vt 0.451779 0.980233 +vt 0.462530 0.894230 +vt 0.473280 0.980233 +vt 0.473280 0.894230 +vt 0.484030 0.980233 +vt 0.484030 0.894230 +vt 0.494781 0.980233 +vt 0.494781 0.894230 +vt 0.505531 0.980233 +vt 0.505531 0.894230 +vt 0.516281 0.980233 +vt 0.516281 0.894230 +vt 0.527032 0.980233 +vt 0.527032 0.894230 +vt 0.537782 0.980233 +vt 0.537782 0.894230 +vt 0.548532 0.980233 +vt 0.548532 0.894230 +vt 0.559283 0.980233 +vt 0.559283 0.894230 +vt 0.570033 0.980233 +vt 0.570033 0.894230 +vt 0.580783 0.980233 +vt 0.580783 0.894230 +vt 0.591534 0.980233 +vt 0.591533 0.894230 +vt 0.602284 0.980233 +vt 0.094483 0.786958 +vt 0.105611 0.659451 +vt 0.105611 0.770302 +vt 0.602284 0.894230 +vt 0.613034 0.980233 +vt 0.613034 0.894230 +vt 0.623784 0.980233 +vt 0.109519 0.639804 +vt 0.109519 0.750656 +vt 0.107340 0.619442 +vt 0.105611 0.620158 +vt 0.105611 0.731010 +vt 0.111390 0.750656 +vt 0.095806 0.602180 +vt 0.094483 0.603503 +vt 0.094483 0.714355 +vt 0.107340 0.730294 +vt 0.077827 0.592374 +vt 0.078543 0.590646 +vt 0.078543 0.701498 +vt 0.095806 0.713032 +vt 0.058181 0.586595 +vt 0.058181 0.588466 +vt 0.077827 0.703226 +vt 0.058181 0.697447 +vt 0.037819 0.590646 +vt 0.038535 0.592374 +vt 0.038535 0.703226 +vt 0.058181 0.699318 +vt 0.021879 0.603503 +vt 0.020557 0.602180 +vt 0.021879 0.714355 +vt 0.037819 0.701498 +vt 0.010751 0.620158 +vt 0.009023 0.619442 +vt 0.010751 0.731010 +vt 0.020557 0.713032 +vt 0.006843 0.639804 +vt 0.004972 0.639804 +vt 0.006843 0.750656 +vt 0.009023 0.730294 +vt 0.010751 0.659451 +vt 0.009023 0.660166 +vt 0.009023 0.771018 +vt 0.004972 0.750656 +vt 0.020557 0.677429 +vt 0.021879 0.676106 +vt 0.021879 0.786958 +vt 0.010751 0.770302 +vt 0.037819 0.688963 +vt 0.038535 0.687234 +vt 0.038535 0.798086 +vt 0.020557 0.788281 +vt 0.058181 0.691142 +vt 0.058181 0.693013 +vt 0.058181 0.803865 +vt 0.037819 0.799815 +vt 0.078543 0.688963 +vt 0.077827 0.687234 +vt 0.058181 0.801994 +vt 0.078543 0.799815 +vt 0.095806 0.677429 +vt 0.094483 0.676106 +vt 0.077827 0.798086 +vt 0.107340 0.660166 +vt 0.095806 0.788281 +vt 0.111390 0.639804 +vt 0.107340 0.771018 +vt 0.623784 0.894230 +s 0 +usemtl Material +f 289/303/231 293/304/231 286/305/231 +f 257/306/232 253/307/232 251/308/232 +f 251/308/231 253/307/231 265/309/231 +f 245/310/233 247/311/233 243/312/233 +f 287/313/231 292/314/231 284/315/231 +f 248/316/234 245/310/234 244/317/234 +f 243/312/235 246/318/235 242/319/235 +f 253/307/236 264/320/236 265/309/236 +f 256/321/237 251/308/237 250/322/237 +f 263/323/238 251/308/238 262/324/238 +f 291/325/231 296/326/231 295/327/231 +f 255/328/239 252/329/239 253/307/239 +f 243/330/240 260/331/240 261/330/240 +f 311/332/241 248/316/241 315/333/241 +f 240/334/242 261/335/242 259/336/242 +f 245/337/243 258/338/243 244/317/243 +f 272/339/244 283/340/244 273/341/244 +f 270/342/245 279/343/245 278/344/245 +f 270/342/246 274/345/246 269/345/246 +f 268/346/245 273/341/245 271/347/245 +f 276/348/246 268/346/246 271/347/246 +f 276/348/247 279/343/247 277/349/247 +f 281/350/248 275/342/248 282/351/248 +f 276/348/242 283/340/242 282/351/242 +f 241/352/242 243/353/242 238/354/242 +f 246/318/249 250/322/249 242/319/249 +f 258/338/250 252/329/250 244/317/250 +f 248/316/250 252/329/250 254/355/250 +f 260/331/249 250/322/249 263/356/249 +f 290/332/231 294/311/231 288/357/231 +f 285/358/251 317/359/251 284/359/251 +f 286/305/252 318/360/252 313/361/252 +f 290/332/253 331/362/253 324/362/253 +f 314/357/254 247/311/254 311/332/254 +f 285/358/250 291/325/250 315/333/250 +f 309/363/247 284/315/247 312/364/247 +f 291/325/231 299/332/231 290/332/231 +f 288/357/231 298/303/231 289/303/231 +f 286/305/231 297/365/231 287/365/231 +f 285/358/231 292/359/231 296/326/231 +f 297/366/247 306/314/247 292/314/247 +f 305/366/231 303/303/231 300/332/231 +f 299/332/254 302/367/254 294/311/254 +f 293/304/246 305/368/246 297/365/246 +f 295/327/241 300/332/241 299/332/241 +f 298/303/249 304/304/249 293/304/249 +f 296/326/250 301/327/250 295/327/250 +f 292/359/245 307/369/245 296/326/245 +f 294/311/255 303/303/255 298/303/255 +f 255/370/245 308/371/245 254/355/245 +f 313/361/246 257/372/246 256/321/246 +f 314/357/255 246/318/255 247/311/255 +f 287/365/256 319/304/256 286/305/256 +f 321/367/255 330/373/255 320/367/255 +f 318/360/246 326/365/246 329/374/246 +f 317/359/245 328/371/245 316/375/245 +f 324/362/241 322/333/241 323/327/241 +f 288/357/257 320/367/257 314/357/257 +f 312/375/258 328/371/258 308/371/258 +f 313/361/259 329/374/259 309/376/259 +f 314/357/260 330/373/260 310/373/260 +f 291/325/261 322/333/261 315/333/261 +f 285/358/262 328/371/262 327/326/262 +f 315/333/263 331/362/263 311/332/263 +f 290/332/264 323/327/264 291/325/264 +f 287/313/265 329/363/265 326/366/265 +f 289/303/266 321/367/266 288/357/266 +f 289/303/267 330/373/267 325/303/267 +f 284/315/268 316/377/268 312/364/268 +f 367/378/241 365/379/241 364/380/241 +f 366/381/269 368/382/269 365/379/269 +f 369/383/254 370/384/254 368/382/254 +f 371/385/270 372/386/270 370/384/270 +f 373/387/255 374/388/255 372/386/255 +f 375/389/271 376/390/271 374/388/271 +f 377/391/249 378/392/249 376/390/249 +f 379/393/272 380/394/272 378/392/272 +f 381/395/246 382/396/246 380/394/246 +f 383/397/273 384/398/273 382/396/273 +f 385/399/247 386/400/247 384/398/247 +f 387/401/274 388/402/274 386/400/274 +f 389/403/245 390/404/245 388/402/245 +f 391/405/275 392/406/275 390/404/275 +f 361/407/249 362/408/249 363/409/249 +f 393/410/250 394/411/250 392/406/250 +f 395/412/276 364/413/276 394/411/276 +f 363/409/272 332/414/272 333/415/272 +f 332/414/242 365/416/242 334/417/242 +f 335/418/231 367/419/231 333/415/231 +f 334/417/242 368/420/242 336/421/242 +f 337/422/231 366/423/231 335/418/231 +f 338/424/242 368/420/242 370/425/242 +f 337/422/231 371/426/231 369/427/231 +f 338/424/242 372/428/242 340/429/242 +f 339/430/231 373/431/231 371/426/231 +f 340/429/242 374/432/242 342/433/242 +f 343/434/231 373/431/231 341/435/231 +f 344/436/242 374/432/242 376/437/242 +f 345/438/231 375/439/231 343/434/231 +f 346/440/242 376/437/242 378/441/242 +f 347/442/231 377/443/231 345/438/231 +f 348/444/242 378/441/242 380/445/242 +f 349/446/231 379/447/231 347/442/231 +f 350/448/242 380/445/242 382/449/242 +f 349/446/231 383/450/231 381/451/231 +f 350/448/242 384/452/242 352/453/242 +f 353/454/231 383/450/231 351/455/231 +f 352/453/242 386/456/242 354/457/242 +f 355/458/231 385/459/231 353/454/231 +f 356/460/242 386/456/242 388/461/242 +f 355/458/231 389/462/231 387/463/231 +f 356/460/242 390/464/242 358/465/242 +f 357/466/231 391/467/231 389/462/231 +f 358/465/242 392/468/242 360/469/242 +f 361/407/231 391/467/231 359/470/231 +f 360/469/242 394/471/242 362/408/242 +f 363/409/231 393/472/231 361/407/231 +f 362/408/242 364/473/242 332/414/242 +f 363/409/231 367/419/231 395/474/231 +f 359/470/271 360/469/271 361/407/271 +f 357/466/255 358/465/255 359/470/255 +f 355/458/270 356/460/270 357/466/270 +f 353/454/254 354/457/254 355/458/254 +f 351/455/269 352/453/269 353/454/269 +f 349/446/241 350/448/241 351/455/241 +f 347/442/276 348/444/276 349/446/276 +f 345/438/250 346/440/250 347/442/250 +f 343/434/275 344/436/275 345/438/275 +f 341/435/245 342/433/245 343/434/245 +f 339/430/274 340/429/274 341/435/274 +f 337/422/247 338/424/247 339/430/247 +f 335/418/273 336/421/273 337/422/273 +f 333/415/246 334/417/246 335/418/246 +f 310/373/249 286/305/249 313/361/249 +f 396/352/277 283/340/277 280/475/277 +f 401/476/231 272/339/231 268/346/231 +f 240/334/247 397/477/247 239/477/247 +f 239/477/249 399/478/249 238/354/249 +f 238/354/254 396/352/254 241/352/254 +f 241/352/250 398/479/250 240/334/250 +f 396/352/278 282/351/278 283/340/278 +f 274/345/231 281/350/231 400/480/231 +f 400/480/231 277/349/231 279/481/231 +f 400/480/279 398/479/279 401/476/279 +f 281/350/280 282/351/280 399/478/280 +f 289/303/231 298/303/231 293/304/231 +f 257/306/232 255/328/232 253/307/232 +f 267/482/231 262/324/231 265/309/231 +f 262/324/231 251/308/231 265/309/231 +f 245/310/233 249/362/233 247/311/233 +f 287/313/231 297/366/231 292/314/231 +f 248/316/281 249/362/281 245/310/281 +f 243/312/282 247/311/282 246/318/282 +f 253/307/236 252/370/236 264/320/236 +f 256/321/237 257/306/237 251/308/237 +f 263/323/238 250/372/238 251/308/238 +f 291/325/231 285/358/231 296/326/231 +f 255/328/239 254/355/239 252/329/239 +f 243/330/240 242/319/240 260/331/240 +f 311/332/241 249/362/241 248/316/241 +f 239/477/242 238/354/242 243/353/242 +f 243/353/242 261/335/242 239/477/242 +f 261/335/242 266/483/242 259/336/242 +f 239/477/242 261/335/242 240/334/242 +f 259/336/242 245/484/242 240/334/242 +f 245/484/242 241/352/242 240/334/242 +f 245/337/243 259/337/243 258/338/243 +f 272/339/244 280/475/244 283/340/244 +f 270/342/245 269/345/245 279/343/245 +f 270/342/246 275/342/246 274/345/246 +f 268/346/245 272/339/245 273/341/245 +f 276/348/246 277/349/246 268/346/246 +f 276/348/247 278/344/247 279/343/247 +f 281/350/248 274/345/248 275/342/248 +f 276/348/242 271/347/242 273/341/242 +f 282/351/242 275/342/242 278/344/242 +f 275/342/242 270/342/242 278/344/242 +f 276/348/242 273/341/242 283/340/242 +f 282/351/242 278/344/242 276/348/242 +f 241/352/242 245/484/242 243/353/242 +f 246/318/249 256/321/249 250/322/249 +f 258/338/250 264/485/250 252/329/250 +f 248/316/250 244/317/250 252/329/250 +f 260/331/249 242/319/249 250/322/249 +f 290/332/231 299/332/231 294/311/231 +f 285/358/251 327/326/251 317/359/251 +f 286/305/252 319/304/252 318/360/252 +f 290/332/253 311/332/253 331/362/253 +f 247/311/254 249/362/254 311/332/254 +f 311/332/254 290/332/254 314/357/254 +f 290/332/254 288/357/254 314/357/254 +f 315/333/250 248/316/250 254/355/250 +f 254/355/250 308/371/250 315/333/250 +f 308/371/250 285/358/250 315/333/250 +f 255/328/247 257/306/247 309/363/247 +f 309/363/247 287/313/247 284/315/247 +f 312/364/247 255/328/247 309/363/247 +f 291/325/231 295/327/231 299/332/231 +f 288/357/231 294/311/231 298/303/231 +f 286/305/231 293/304/231 297/365/231 +f 285/358/231 284/359/231 292/359/231 +f 297/366/247 305/366/247 306/314/247 +f 300/332/231 301/327/231 307/369/231 +f 307/369/231 306/486/231 300/332/231 +f 306/486/231 305/366/231 300/332/231 +f 305/366/231 304/304/231 303/303/231 +f 303/303/231 302/367/231 300/332/231 +f 299/332/254 300/332/254 302/367/254 +f 293/304/246 304/304/246 305/368/246 +f 295/327/241 301/327/241 300/332/241 +f 298/303/249 303/303/249 304/304/249 +f 296/326/250 307/369/250 301/327/250 +f 292/359/245 306/486/245 307/369/245 +f 294/311/255 302/367/255 303/303/255 +f 255/370/245 312/375/245 308/371/245 +f 313/361/246 309/376/246 257/372/246 +f 314/357/255 310/373/255 246/318/255 +f 287/365/256 326/365/256 319/304/256 +f 321/367/255 325/303/255 330/373/255 +f 318/360/246 319/304/246 326/365/246 +f 317/359/245 327/326/245 328/371/245 +f 324/362/241 331/362/241 322/333/241 +f 288/357/257 321/367/257 320/367/257 +f 312/375/258 316/375/258 328/371/258 +f 313/361/259 318/360/259 329/374/259 +f 314/357/260 320/367/260 330/373/260 +f 291/325/261 323/327/261 322/333/261 +f 285/358/262 308/371/262 328/371/262 +f 315/333/263 322/333/263 331/362/263 +f 290/332/264 324/362/264 323/327/264 +f 287/313/265 309/363/265 329/363/265 +f 289/303/266 325/303/266 321/367/266 +f 289/303/267 310/373/267 330/373/267 +f 284/315/268 317/314/268 316/377/268 +f 367/378/241 366/381/241 365/379/241 +f 366/381/269 369/383/269 368/382/269 +f 369/383/254 371/385/254 370/384/254 +f 371/385/270 373/387/270 372/386/270 +f 373/387/255 375/389/255 374/388/255 +f 375/389/271 377/391/271 376/390/271 +f 377/391/249 379/393/249 378/392/249 +f 379/393/272 381/395/272 380/394/272 +f 381/395/246 383/397/246 382/396/246 +f 383/397/273 385/399/273 384/398/273 +f 385/399/247 387/401/247 386/400/247 +f 387/401/274 389/403/274 388/402/274 +f 389/403/245 391/405/245 390/404/245 +f 391/405/275 393/410/275 392/406/275 +f 361/407/249 360/469/249 362/408/249 +f 393/410/250 395/412/250 394/411/250 +f 395/412/276 367/487/276 364/413/276 +f 363/409/272 362/408/272 332/414/272 +f 332/414/242 364/473/242 365/416/242 +f 335/418/231 366/423/231 367/419/231 +f 334/417/242 365/416/242 368/420/242 +f 337/422/231 369/427/231 366/423/231 +f 338/424/242 336/421/242 368/420/242 +f 337/422/231 339/430/231 371/426/231 +f 338/424/242 370/425/242 372/428/242 +f 339/430/231 341/435/231 373/431/231 +f 340/429/242 372/428/242 374/432/242 +f 343/434/231 375/439/231 373/431/231 +f 344/436/242 342/433/242 374/432/242 +f 345/438/231 377/443/231 375/439/231 +f 346/440/242 344/436/242 376/437/242 +f 347/442/231 379/447/231 377/443/231 +f 348/444/242 346/440/242 378/441/242 +f 349/446/231 381/451/231 379/447/231 +f 350/448/242 348/444/242 380/445/242 +f 349/446/231 351/455/231 383/450/231 +f 350/448/242 382/449/242 384/452/242 +f 353/454/231 385/459/231 383/450/231 +f 352/453/242 384/452/242 386/456/242 +f 355/458/231 387/463/231 385/459/231 +f 356/460/242 354/457/242 386/456/242 +f 355/458/231 357/466/231 389/462/231 +f 356/460/242 388/461/242 390/464/242 +f 357/466/231 359/470/231 391/467/231 +f 358/465/242 390/464/242 392/468/242 +f 361/407/231 393/472/231 391/467/231 +f 360/469/242 392/468/242 394/471/242 +f 363/409/231 395/474/231 393/472/231 +f 362/408/242 394/471/242 364/473/242 +f 363/409/231 333/415/231 367/419/231 +f 359/470/271 358/465/271 360/469/271 +f 357/466/255 356/460/255 358/465/255 +f 355/458/270 354/457/270 356/460/270 +f 353/454/254 352/453/254 354/457/254 +f 351/455/269 350/448/269 352/453/269 +f 349/446/241 348/444/241 350/448/241 +f 347/442/276 346/440/276 348/444/276 +f 345/438/250 344/436/250 346/440/250 +f 343/434/275 342/433/275 344/436/275 +f 341/435/245 340/429/245 342/433/245 +f 339/430/274 338/424/274 340/429/274 +f 337/422/247 336/421/247 338/424/247 +f 335/418/273 334/417/273 336/421/273 +f 333/415/246 332/414/246 334/417/246 +f 313/361/249 256/321/249 310/373/249 +f 256/321/249 246/318/249 310/373/249 +f 310/373/249 289/303/249 286/305/249 +f 280/475/283 401/476/283 398/488/283 +f 398/488/284 396/352/284 280/475/284 +f 268/346/231 277/349/231 401/476/231 +f 401/476/231 280/475/231 272/339/231 +f 240/334/247 398/479/247 397/477/247 +f 239/477/249 397/477/249 399/478/249 +f 238/354/254 399/478/254 396/352/254 +f 241/352/250 396/352/250 398/479/250 +f 396/352/278 399/478/278 282/351/278 +f 279/481/231 269/345/231 400/480/231 +f 269/345/231 274/345/231 400/480/231 +f 400/480/231 401/476/231 277/349/231 +f 400/480/279 397/477/279 398/479/279 +f 399/478/285 397/477/285 281/350/285 +f 397/477/286 400/480/286 281/350/286 +f 447/303/231 444/305/231 451/304/231 +f 421/306/236 415/308/236 417/307/236 +f 415/308/231 425/309/231 417/307/231 +f 409/310/240 407/312/240 411/311/240 +f 445/313/231 442/315/231 450/314/231 +f 412/316/287 408/317/287 409/310/287 +f 407/312/288 406/319/288 410/318/288 +f 417/307/232 425/309/232 424/320/232 +f 420/321/289 414/322/289 415/308/289 +f 263/323/290 262/324/290 415/308/290 +f 449/325/231 453/327/231 454/326/231 +f 419/328/291 417/307/291 416/329/291 +f 407/330/233 261/330/233 260/331/233 +f 469/332/246 473/333/246 412/316/246 +f 404/334/242 423/336/242 261/335/242 +f 409/337/292 408/317/292 422/338/292 +f 430/339/293 431/341/293 441/340/293 +f 428/342/245 436/344/245 437/343/245 +f 428/342/241 427/345/241 432/345/241 +f 426/346/245 429/347/245 431/341/245 +f 434/348/241 429/347/241 426/346/241 +f 434/348/250 435/349/250 437/343/250 +f 439/350/294 440/351/294 433/342/294 +f 434/348/242 440/351/242 441/340/242 +f 405/352/242 402/354/242 407/353/242 +f 410/318/254 406/319/254 414/322/254 +f 422/338/247 408/317/247 416/329/247 +f 412/316/247 418/355/247 416/329/247 +f 260/331/254 263/356/254 414/322/254 +f 448/332/231 446/357/231 452/311/231 +f 443/358/251 442/359/251 475/359/251 +f 444/305/253 471/361/253 476/360/253 +f 448/332/252 482/362/252 489/362/252 +f 472/357/249 469/332/249 411/311/249 +f 443/358/247 473/333/247 449/325/247 +f 467/363/250 470/364/250 442/315/250 +f 449/325/231 448/332/231 457/332/231 +f 446/357/231 447/303/231 456/303/231 +f 444/305/231 445/365/231 455/365/231 +f 443/358/231 454/326/231 450/359/231 +f 455/366/250 450/314/250 464/314/250 +f 463/366/231 458/332/231 461/303/231 +f 457/332/249 452/311/249 460/367/249 +f 451/304/241 455/365/241 463/368/241 +f 453/327/246 457/332/246 458/332/246 +f 456/303/254 451/304/254 462/304/254 +f 454/326/247 453/327/247 459/327/247 +f 450/359/245 454/326/245 465/369/245 +f 452/311/255 456/303/255 461/303/255 +f 419/370/245 418/355/245 466/371/245 +f 471/361/241 420/321/241 421/372/241 +f 472/357/255 411/311/255 410/318/255 +f 445/365/264 444/305/264 477/304/264 +f 479/367/255 478/367/255 488/373/255 +f 476/360/241 487/374/241 484/365/241 +f 475/359/245 474/375/245 486/371/245 +f 482/362/246 481/327/246 480/333/246 +f 446/357/267 472/357/267 478/367/267 +f 470/375/258 466/371/258 486/371/258 +f 471/361/263 467/376/263 487/374/263 +f 472/357/260 468/373/260 488/373/260 +f 449/325/265 473/333/265 480/333/265 +f 443/358/268 485/326/268 486/371/268 +f 473/333/259 469/332/259 489/362/259 +f 448/332/256 449/325/256 481/327/256 +f 445/313/261 484/366/261 487/363/261 +f 447/303/266 446/357/266 479/367/266 +f 447/303/257 483/303/257 488/373/257 +f 442/315/262 470/364/262 474/377/262 +f 525/489/246 522/490/246 523/491/246 +f 524/492/272 523/491/272 526/493/272 +f 527/494/249 526/493/249 528/495/249 +f 529/496/271 528/495/271 530/497/271 +f 531/498/255 530/497/255 532/499/255 +f 533/500/270 532/499/270 534/501/270 +f 535/502/254 534/501/254 536/503/254 +f 537/504/269 536/503/269 538/505/269 +f 539/506/241 538/505/241 540/507/241 +f 541/508/276 540/507/276 542/509/276 +f 543/510/250 542/509/250 544/511/250 +f 545/512/275 544/511/275 546/513/275 +f 547/514/245 546/513/245 548/515/245 +f 549/516/274 548/515/274 550/517/274 +f 519/518/254 521/519/254 520/520/254 +f 551/521/247 550/517/247 552/522/247 +f 553/523/273 552/522/273 522/524/273 +f 521/519/269 491/525/269 490/526/269 +f 490/526/242 492/527/242 523/528/242 +f 493/529/231 491/525/231 525/530/231 +f 492/527/242 494/531/242 526/532/242 +f 495/533/231 493/529/231 524/534/231 +f 496/535/242 528/536/242 526/532/242 +f 495/533/231 527/537/231 529/538/231 +f 496/535/242 498/539/242 530/540/242 +f 497/541/231 529/538/231 531/542/231 +f 498/539/242 500/543/242 532/544/242 +f 501/545/231 499/546/231 531/542/231 +f 502/547/242 534/548/242 532/544/242 +f 503/549/231 501/545/231 533/550/231 +f 504/551/242 536/552/242 534/548/242 +f 505/553/231 503/549/231 535/554/231 +f 506/555/242 538/556/242 536/552/242 +f 507/557/231 505/553/231 537/558/231 +f 508/559/242 540/560/242 538/556/242 +f 507/557/231 539/561/231 541/562/231 +f 508/559/242 510/563/242 542/564/242 +f 511/565/231 509/566/231 541/562/231 +f 510/563/242 512/567/242 544/568/242 +f 513/569/231 511/565/231 543/570/231 +f 514/571/242 546/572/242 544/568/242 +f 513/569/231 545/573/231 547/574/231 +f 514/571/242 516/575/242 548/576/242 +f 515/577/231 547/574/231 549/578/231 +f 516/575/242 518/579/242 550/580/242 +f 519/518/231 517/581/231 549/578/231 +f 518/579/242 520/520/242 552/582/242 +f 521/519/231 519/518/231 551/583/231 +f 520/520/242 490/526/242 522/584/242 +f 521/519/231 553/585/231 525/530/231 +f 517/581/270 519/518/270 518/579/270 +f 515/577/255 517/581/255 516/575/255 +f 513/569/271 515/577/271 514/571/271 +f 511/565/249 513/569/249 512/567/249 +f 509/566/272 511/565/272 510/563/272 +f 507/557/246 509/566/246 508/559/246 +f 505/553/273 507/557/273 506/555/273 +f 503/549/247 505/553/247 504/551/247 +f 501/545/274 503/549/274 502/547/274 +f 499/546/245 501/545/245 500/543/245 +f 497/541/275 499/546/275 498/539/275 +f 495/533/250 497/541/250 496/535/250 +f 493/529/276 495/533/276 494/531/276 +f 491/525/241 493/529/241 492/527/241 +f 468/373/254 471/361/254 444/305/254 +f 554/352/295 438/475/295 441/340/295 +f 559/476/231 426/346/231 430/339/231 +f 404/334/250 403/477/250 555/477/250 +f 403/477/254 402/354/254 557/478/254 +f 402/354/249 405/352/249 554/352/249 +f 405/352/247 404/334/247 556/479/247 +f 554/352/296 441/340/296 440/351/296 +f 432/345/231 558/480/231 439/350/231 +f 558/480/231 437/481/231 435/349/231 +f 558/480/297 559/476/297 556/479/297 +f 439/350/298 557/478/298 440/351/298 +f 447/303/231 451/304/231 456/303/231 +f 421/306/236 417/307/236 419/328/236 +f 267/482/231 425/309/231 262/324/231 +f 262/324/231 425/309/231 415/308/231 +f 409/310/240 411/311/240 413/362/240 +f 445/313/231 450/314/231 455/366/231 +f 412/316/299 409/310/299 413/362/299 +f 407/312/300 410/318/300 411/311/300 +f 417/307/232 424/320/232 416/370/232 +f 420/321/289 415/308/289 421/306/289 +f 263/323/290 415/308/290 414/372/290 +f 449/325/231 454/326/231 443/358/231 +f 419/328/291 416/329/291 418/355/291 +f 407/330/233 260/331/233 406/319/233 +f 469/332/246 412/316/246 413/362/246 +f 403/477/242 407/353/242 402/354/242 +f 407/353/242 403/477/242 261/335/242 +f 261/335/242 423/336/242 266/483/242 +f 403/477/242 404/334/242 261/335/242 +f 423/336/242 404/334/242 409/484/242 +f 409/484/242 404/334/242 405/352/242 +f 409/337/292 422/338/292 423/337/292 +f 430/339/293 441/340/293 438/475/293 +f 428/342/245 437/343/245 427/345/245 +f 428/342/241 432/345/241 433/342/241 +f 426/346/245 431/341/245 430/339/245 +f 434/348/241 426/346/241 435/349/241 +f 434/348/250 437/343/250 436/344/250 +f 439/350/294 433/342/294 432/345/294 +f 434/348/242 431/341/242 429/347/242 +f 440/351/242 436/344/242 433/342/242 +f 433/342/242 436/344/242 428/342/242 +f 434/348/242 441/340/242 431/341/242 +f 440/351/242 434/348/242 436/344/242 +f 405/352/242 407/353/242 409/484/242 +f 410/318/254 414/322/254 420/321/254 +f 422/338/247 416/329/247 424/485/247 +f 412/316/247 416/329/247 408/317/247 +f 260/331/254 414/322/254 406/319/254 +f 448/332/231 452/311/231 457/332/231 +f 443/358/251 475/359/251 485/326/251 +f 444/305/253 476/360/253 477/304/253 +f 448/332/252 489/362/252 469/332/252 +f 411/311/249 469/332/249 413/362/249 +f 469/332/249 472/357/249 448/332/249 +f 448/332/249 472/357/249 446/357/249 +f 473/333/247 418/355/247 412/316/247 +f 418/355/247 473/333/247 466/371/247 +f 466/371/247 473/333/247 443/358/247 +f 419/328/250 467/363/250 421/306/250 +f 467/363/250 442/315/250 445/313/250 +f 470/364/250 467/363/250 419/328/250 +f 449/325/231 457/332/231 453/327/231 +f 446/357/231 456/303/231 452/311/231 +f 444/305/231 455/365/231 451/304/231 +f 443/358/231 450/359/231 442/359/231 +f 455/366/250 464/314/250 463/366/250 +f 458/332/231 465/369/231 459/327/231 +f 465/369/231 458/332/231 464/486/231 +f 464/486/231 458/332/231 463/366/231 +f 463/366/231 461/303/231 462/304/231 +f 461/303/231 458/332/231 460/367/231 +f 457/332/249 460/367/249 458/332/249 +f 451/304/241 463/368/241 462/304/241 +f 453/327/246 458/332/246 459/327/246 +f 456/303/254 462/304/254 461/303/254 +f 454/326/247 459/327/247 465/369/247 +f 450/359/245 465/369/245 464/486/245 +f 452/311/255 461/303/255 460/367/255 +f 419/370/245 466/371/245 470/375/245 +f 471/361/241 421/372/241 467/376/241 +f 472/357/255 410/318/255 468/373/255 +f 445/365/264 477/304/264 484/365/264 +f 479/367/255 488/373/255 483/303/255 +f 476/360/241 484/365/241 477/304/241 +f 475/359/245 486/371/245 485/326/245 +f 482/362/246 480/333/246 489/362/246 +f 446/357/267 478/367/267 479/367/267 +f 470/375/258 486/371/258 474/375/258 +f 471/361/263 487/374/263 476/360/263 +f 472/357/260 488/373/260 478/367/260 +f 449/325/265 480/333/265 481/327/265 +f 443/358/268 486/371/268 466/371/268 +f 473/333/259 489/362/259 480/333/259 +f 448/332/256 481/327/256 482/362/256 +f 445/313/261 487/363/261 467/363/261 +f 447/303/266 479/367/266 483/303/266 +f 447/303/257 488/373/257 468/373/257 +f 442/315/262 474/377/262 475/314/262 +f 525/489/246 523/491/246 524/492/246 +f 524/492/272 526/493/272 527/494/272 +f 527/494/249 528/495/249 529/496/249 +f 529/496/271 530/497/271 531/498/271 +f 531/498/255 532/499/255 533/500/255 +f 533/500/270 534/501/270 535/502/270 +f 535/502/254 536/503/254 537/504/254 +f 537/504/269 538/505/269 539/506/269 +f 539/506/241 540/507/241 541/508/241 +f 541/508/276 542/509/276 543/510/276 +f 543/510/250 544/511/250 545/512/250 +f 545/512/275 546/513/275 547/514/275 +f 547/514/245 548/515/245 549/516/245 +f 549/516/274 550/517/274 551/521/274 +f 519/518/254 520/520/254 518/579/254 +f 551/521/247 552/522/247 553/523/247 +f 553/523/273 522/524/273 525/586/273 +f 521/519/269 490/526/269 520/520/269 +f 490/526/242 523/528/242 522/584/242 +f 493/529/231 525/530/231 524/534/231 +f 492/527/242 526/532/242 523/528/242 +f 495/533/231 524/534/231 527/537/231 +f 496/535/242 526/532/242 494/531/242 +f 495/533/231 529/538/231 497/541/231 +f 496/535/242 530/540/242 528/536/242 +f 497/541/231 531/542/231 499/546/231 +f 498/539/242 532/544/242 530/540/242 +f 501/545/231 531/542/231 533/550/231 +f 502/547/242 532/544/242 500/543/242 +f 503/549/231 533/550/231 535/554/231 +f 504/551/242 534/548/242 502/547/242 +f 505/553/231 535/554/231 537/558/231 +f 506/555/242 536/552/242 504/551/242 +f 507/557/231 537/558/231 539/561/231 +f 508/559/242 538/556/242 506/555/242 +f 507/557/231 541/562/231 509/566/231 +f 508/559/242 542/564/242 540/560/242 +f 511/565/231 541/562/231 543/570/231 +f 510/563/242 544/568/242 542/564/242 +f 513/569/231 543/570/231 545/573/231 +f 514/571/242 544/568/242 512/567/242 +f 513/569/231 547/574/231 515/577/231 +f 514/571/242 548/576/242 546/572/242 +f 515/577/231 549/578/231 517/581/231 +f 516/575/242 550/580/242 548/576/242 +f 519/518/231 549/578/231 551/583/231 +f 518/579/242 552/582/242 550/580/242 +f 521/519/231 551/583/231 553/585/231 +f 520/520/242 522/584/242 552/582/242 +f 521/519/231 525/530/231 491/525/231 +f 517/581/270 518/579/270 516/575/270 +f 515/577/255 516/575/255 514/571/255 +f 513/569/271 514/571/271 512/567/271 +f 511/565/249 512/567/249 510/563/249 +f 509/566/272 510/563/272 508/559/272 +f 507/557/246 508/559/246 506/555/246 +f 505/553/273 506/555/273 504/551/273 +f 503/549/247 504/551/247 502/547/247 +f 501/545/274 502/547/274 500/543/274 +f 499/546/245 500/543/245 498/539/245 +f 497/541/275 498/539/275 496/535/275 +f 495/533/250 496/535/250 494/531/250 +f 493/529/276 494/531/276 492/527/276 +f 491/525/241 492/527/241 490/526/241 +f 471/361/254 468/373/254 420/321/254 +f 420/321/254 468/373/254 410/318/254 +f 468/373/254 444/305/254 447/303/254 +f 438/475/301 556/488/301 559/476/301 +f 556/488/302 438/475/302 554/352/302 +f 426/346/231 559/476/231 435/349/231 +f 559/476/231 430/339/231 438/475/231 +f 404/334/250 555/477/250 556/479/250 +f 403/477/254 557/478/254 555/477/254 +f 402/354/249 554/352/249 557/478/249 +f 405/352/247 556/479/247 554/352/247 +f 554/352/296 440/351/296 557/478/296 +f 437/481/231 558/480/231 427/345/231 +f 427/345/231 558/480/231 432/345/231 +f 558/480/231 435/349/231 559/476/231 +f 558/480/297 556/479/297 555/477/297 +f 557/478/303 439/350/303 555/477/303 +f 555/477/304 439/350/304 558/480/304 +f 605/303/231 602/305/231 609/304/231 +f 579/306/238 573/308/238 575/307/238 +f 573/308/231 265/309/231 575/307/231 +f 567/310/243 565/312/243 569/311/243 +f 603/313/231 600/315/231 608/314/231 +f 570/316/305 566/317/305 567/310/305 +f 565/312/306 564/319/306 568/318/306 +f 575/307/290 265/309/290 264/320/290 +f 578/321/307 572/322/307 573/308/307 +f 583/323/232 582/324/232 573/308/232 +f 607/325/231 611/327/231 612/326/231 +f 577/328/308 575/307/308 574/329/308 +f 565/330/292 581/330/292 580/331/292 +f 627/332/241 631/333/241 570/316/241 +f 562/334/242 259/336/242 581/335/242 +f 567/337/233 566/317/233 258/338/233 +f 588/339/309 589/341/309 599/340/309 +f 586/342/255 594/344/255 595/343/255 +f 586/342/246 585/345/246 590/345/246 +f 584/346/255 587/347/255 589/341/255 +f 592/348/246 587/347/246 584/346/246 +f 592/348/249 593/349/249 595/343/249 +f 597/350/310 598/351/310 591/342/310 +f 592/348/242 598/351/242 599/340/242 +f 563/352/242 560/354/242 565/353/242 +f 568/318/247 564/319/247 572/322/247 +f 258/338/254 566/317/254 574/329/254 +f 570/316/254 576/355/254 574/329/254 +f 580/331/247 583/356/247 572/322/247 +f 606/332/231 604/357/231 610/311/231 +f 601/358/266 600/359/266 633/359/266 +f 602/305/265 629/361/265 634/360/265 +f 606/332/261 640/362/261 647/362/261 +f 630/357/250 627/332/250 569/311/250 +f 601/358/254 631/333/254 607/325/254 +f 625/363/249 628/364/249 600/315/249 +f 607/325/231 606/332/231 615/332/231 +f 604/357/231 605/303/231 614/303/231 +f 602/305/231 603/365/231 613/365/231 +f 601/358/231 612/326/231 608/359/231 +f 613/366/249 608/314/249 622/314/249 +f 621/366/231 616/332/231 619/303/231 +f 615/332/250 610/311/250 618/367/250 +f 609/304/246 613/365/246 621/368/246 +f 611/327/241 615/332/241 616/332/241 +f 614/303/247 609/304/247 620/304/247 +f 612/326/254 611/327/254 617/327/254 +f 608/359/255 612/326/255 623/369/255 +f 610/311/245 614/303/245 619/303/245 +f 577/370/255 576/355/255 624/371/255 +f 629/361/246 578/321/246 579/372/246 +f 630/357/245 569/311/245 568/318/245 +f 603/365/256 602/305/256 635/304/256 +f 637/367/245 636/367/245 646/373/245 +f 634/360/246 645/374/246 642/365/246 +f 633/359/255 632/375/255 644/371/255 +f 640/362/241 639/327/241 638/333/241 +f 604/357/262 630/357/262 636/367/262 +f 628/375/260 624/371/260 644/371/260 +f 629/361/259 625/376/259 645/374/259 +f 630/357/258 626/373/258 646/373/258 +f 607/325/253 631/333/253 638/333/253 +f 601/358/257 643/326/257 644/371/257 +f 631/333/263 627/332/263 647/362/263 +f 606/332/264 607/325/264 639/327/264 +f 603/313/252 642/366/252 645/363/252 +f 605/303/251 604/357/251 637/367/251 +f 605/303/268 641/303/268 646/373/268 +f 600/315/267 628/364/267 632/377/267 +f 683/587/241 680/588/241 681/589/241 +f 682/590/276 681/589/276 684/591/276 +f 685/592/250 684/591/250 686/593/250 +f 687/594/275 686/593/275 688/595/275 +f 689/596/245 688/595/245 690/597/245 +f 691/598/274 690/597/274 692/599/274 +f 693/600/247 692/599/247 694/601/247 +f 695/602/273 694/601/273 696/603/273 +f 697/604/246 696/603/246 698/605/246 +f 699/606/272 698/605/272 700/607/272 +f 701/608/249 700/607/249 702/609/249 +f 703/610/271 702/609/271 704/611/271 +f 705/612/255 704/611/255 706/613/255 +f 707/614/270 706/613/270 708/615/270 +f 677/616/247 679/617/247 678/618/247 +f 709/619/254 708/615/254 710/620/254 +f 711/621/269 710/620/269 680/622/269 +f 679/617/273 649/623/273 648/624/273 +f 648/624/242 650/625/242 681/626/242 +f 651/627/231 649/623/231 683/628/231 +f 650/625/242 652/629/242 684/630/242 +f 653/631/231 651/627/231 682/632/231 +f 654/633/242 686/634/242 684/630/242 +f 653/631/231 685/635/231 687/636/231 +f 654/633/242 656/637/242 688/638/242 +f 655/639/231 687/636/231 689/640/231 +f 656/637/242 658/641/242 690/642/242 +f 659/643/231 657/644/231 689/640/231 +f 660/645/242 692/646/242 690/642/242 +f 661/647/231 659/643/231 691/648/231 +f 662/649/242 694/650/242 692/646/242 +f 663/651/231 661/647/231 693/652/231 +f 664/653/242 696/654/242 694/650/242 +f 665/655/231 663/651/231 695/656/231 +f 666/657/242 698/658/242 696/654/242 +f 665/655/231 697/659/231 699/660/231 +f 666/657/242 668/661/242 700/662/242 +f 669/663/231 667/664/231 699/660/231 +f 668/661/242 670/665/242 702/666/242 +f 671/667/231 669/663/231 701/668/231 +f 672/669/242 704/670/242 702/666/242 +f 671/667/231 703/671/231 705/672/231 +f 672/669/242 674/673/242 706/674/242 +f 673/675/231 705/672/231 707/676/231 +f 674/673/242 676/677/242 708/678/242 +f 677/616/231 675/679/231 707/676/231 +f 676/677/242 678/618/242 710/680/242 +f 679/617/231 677/616/231 709/681/231 +f 678/618/242 648/624/242 680/682/242 +f 679/617/231 711/683/231 683/628/231 +f 675/679/274 677/616/274 676/677/274 +f 673/675/245 675/679/245 674/673/245 +f 671/667/275 673/675/275 672/669/275 +f 669/663/250 671/667/250 670/665/250 +f 667/664/276 669/663/276 668/661/276 +f 665/655/241 667/664/241 666/657/241 +f 663/651/269 665/655/269 664/653/269 +f 661/647/254 663/651/254 662/649/254 +f 659/643/270 661/647/270 660/645/270 +f 657/644/255 659/643/255 658/641/255 +f 655/639/271 657/644/271 656/637/271 +f 653/631/249 655/639/249 654/633/249 +f 651/627/272 653/631/272 652/629/272 +f 649/623/246 651/627/246 650/625/246 +f 626/373/247 629/361/247 602/305/247 +f 712/352/311 596/475/311 599/340/311 +f 717/476/231 584/346/231 588/339/231 +f 562/334/249 561/477/249 713/477/249 +f 561/477/247 560/354/247 715/478/247 +f 560/354/250 563/352/250 712/352/250 +f 563/352/254 562/334/254 714/479/254 +f 712/352/312 599/340/312 598/351/312 +f 590/345/231 716/480/231 597/350/231 +f 716/480/231 595/481/231 593/349/231 +f 716/480/313 717/476/313 714/479/313 +f 597/350/314 715/478/314 598/351/314 +f 605/303/231 609/304/231 614/303/231 +f 579/306/238 575/307/238 577/328/238 +f 267/482/231 265/309/231 582/324/231 +f 582/324/231 265/309/231 573/308/231 +f 567/310/243 569/311/243 571/362/243 +f 603/313/231 608/314/231 613/366/231 +f 570/316/315 567/310/315 571/362/315 +f 565/312/316 568/318/316 569/311/316 +f 575/307/290 264/320/290 574/370/290 +f 578/321/307 573/308/307 579/306/307 +f 583/323/232 573/308/232 572/372/232 +f 607/325/231 612/326/231 601/358/231 +f 577/328/308 574/329/308 576/355/308 +f 565/330/292 580/331/292 564/319/292 +f 627/332/241 570/316/241 571/362/241 +f 561/477/242 565/353/242 560/354/242 +f 565/353/242 561/477/242 581/335/242 +f 581/335/242 259/336/242 266/483/242 +f 561/477/242 562/334/242 581/335/242 +f 259/336/242 562/334/242 567/484/242 +f 567/484/242 562/334/242 563/352/242 +f 567/337/233 258/338/233 259/337/233 +f 588/339/309 599/340/309 596/475/309 +f 586/342/255 595/343/255 585/345/255 +f 586/342/246 590/345/246 591/342/246 +f 584/346/255 589/341/255 588/339/255 +f 592/348/246 584/346/246 593/349/246 +f 592/348/249 595/343/249 594/344/249 +f 597/350/310 591/342/310 590/345/310 +f 592/348/242 589/341/242 587/347/242 +f 598/351/242 594/344/242 591/342/242 +f 591/342/242 594/344/242 586/342/242 +f 592/348/242 599/340/242 589/341/242 +f 598/351/242 592/348/242 594/344/242 +f 563/352/242 565/353/242 567/484/242 +f 568/318/247 572/322/247 578/321/247 +f 258/338/254 574/329/254 264/485/254 +f 570/316/254 574/329/254 566/317/254 +f 580/331/247 572/322/247 564/319/247 +f 606/332/231 610/311/231 615/332/231 +f 601/358/266 633/359/266 643/326/266 +f 602/305/265 634/360/265 635/304/265 +f 606/332/261 647/362/261 627/332/261 +f 569/311/250 627/332/250 571/362/250 +f 627/332/250 630/357/250 606/332/250 +f 606/332/250 630/357/250 604/357/250 +f 631/333/254 576/355/254 570/316/254 +f 576/355/254 631/333/254 624/371/254 +f 624/371/254 631/333/254 601/358/254 +f 577/328/249 625/363/249 579/306/249 +f 625/363/249 600/315/249 603/313/249 +f 628/364/249 625/363/249 577/328/249 +f 607/325/231 615/332/231 611/327/231 +f 604/357/231 614/303/231 610/311/231 +f 602/305/231 613/365/231 609/304/231 +f 601/358/231 608/359/231 600/359/231 +f 613/366/249 622/314/249 621/366/249 +f 616/332/231 623/369/231 617/327/231 +f 623/369/231 616/332/231 622/486/231 +f 622/486/231 616/332/231 621/366/231 +f 621/366/231 619/303/231 620/304/231 +f 619/303/231 616/332/231 618/367/231 +f 615/332/250 618/367/250 616/332/250 +f 609/304/246 621/368/246 620/304/246 +f 611/327/241 616/332/241 617/327/241 +f 614/303/247 620/304/247 619/303/247 +f 612/326/254 617/327/254 623/369/254 +f 608/359/255 623/369/255 622/486/255 +f 610/311/245 619/303/245 618/367/245 +f 577/370/255 624/371/255 628/375/255 +f 629/361/246 579/372/246 625/376/246 +f 630/357/245 568/318/245 626/373/245 +f 603/365/256 635/304/256 642/365/256 +f 637/367/245 646/373/245 641/303/245 +f 634/360/246 642/365/246 635/304/246 +f 633/359/255 644/371/255 643/326/255 +f 640/362/241 638/333/241 647/362/241 +f 604/357/262 636/367/262 637/367/262 +f 628/375/260 644/371/260 632/375/260 +f 629/361/259 645/374/259 634/360/259 +f 630/357/258 646/373/258 636/367/258 +f 607/325/253 638/333/253 639/327/253 +f 601/358/257 644/371/257 624/371/257 +f 631/333/263 647/362/263 638/333/263 +f 606/332/264 639/327/264 640/362/264 +f 603/313/252 645/363/252 625/363/252 +f 605/303/251 637/367/251 641/303/251 +f 605/303/268 646/373/268 626/373/268 +f 600/315/267 632/377/267 633/314/267 +f 683/587/241 681/589/241 682/590/241 +f 682/590/276 684/591/276 685/592/276 +f 685/592/250 686/593/250 687/594/250 +f 687/594/275 688/595/275 689/596/275 +f 689/596/245 690/597/245 691/598/245 +f 691/598/274 692/599/274 693/600/274 +f 693/600/247 694/601/247 695/602/247 +f 695/602/273 696/603/273 697/604/273 +f 697/604/246 698/605/246 699/606/246 +f 699/606/272 700/607/272 701/608/272 +f 701/608/249 702/609/249 703/610/249 +f 703/610/271 704/611/271 705/612/271 +f 705/612/255 706/613/255 707/614/255 +f 707/614/270 708/615/270 709/619/270 +f 677/616/247 678/618/247 676/677/247 +f 709/619/254 710/620/254 711/621/254 +f 711/621/269 680/622/269 683/684/269 +f 679/617/273 648/624/273 678/618/273 +f 648/624/242 681/626/242 680/682/242 +f 651/627/231 683/628/231 682/632/231 +f 650/625/242 684/630/242 681/626/242 +f 653/631/231 682/632/231 685/635/231 +f 654/633/242 684/630/242 652/629/242 +f 653/631/231 687/636/231 655/639/231 +f 654/633/242 688/638/242 686/634/242 +f 655/639/231 689/640/231 657/644/231 +f 656/637/242 690/642/242 688/638/242 +f 659/643/231 689/640/231 691/648/231 +f 660/645/242 690/642/242 658/641/242 +f 661/647/231 691/648/231 693/652/231 +f 662/649/242 692/646/242 660/645/242 +f 663/651/231 693/652/231 695/656/231 +f 664/653/242 694/650/242 662/649/242 +f 665/655/231 695/656/231 697/659/231 +f 666/657/242 696/654/242 664/653/242 +f 665/655/231 699/660/231 667/664/231 +f 666/657/242 700/662/242 698/658/242 +f 669/663/231 699/660/231 701/668/231 +f 668/661/242 702/666/242 700/662/242 +f 671/667/231 701/668/231 703/671/231 +f 672/669/242 702/666/242 670/665/242 +f 671/667/231 705/672/231 673/675/231 +f 672/669/242 706/674/242 704/670/242 +f 673/675/231 707/676/231 675/679/231 +f 674/673/242 708/678/242 706/674/242 +f 677/616/231 707/676/231 709/681/231 +f 676/677/242 710/680/242 708/678/242 +f 679/617/231 709/681/231 711/683/231 +f 678/618/242 680/682/242 710/680/242 +f 679/617/231 683/628/231 649/623/231 +f 675/679/274 676/677/274 674/673/274 +f 673/675/245 674/673/245 672/669/245 +f 671/667/275 672/669/275 670/665/275 +f 669/663/250 670/665/250 668/661/250 +f 667/664/276 668/661/276 666/657/276 +f 665/655/241 666/657/241 664/653/241 +f 663/651/269 664/653/269 662/649/269 +f 661/647/254 662/649/254 660/645/254 +f 659/643/270 660/645/270 658/641/270 +f 657/644/255 658/641/255 656/637/255 +f 655/639/271 656/637/271 654/633/271 +f 653/631/249 654/633/249 652/629/249 +f 651/627/272 652/629/272 650/625/272 +f 649/623/246 650/625/246 648/624/246 +f 629/361/247 626/373/247 578/321/247 +f 578/321/247 626/373/247 568/318/247 +f 626/373/247 602/305/247 605/303/247 +f 596/475/317 714/488/317 717/476/317 +f 714/488/303 596/475/303 712/352/303 +f 584/346/231 717/476/231 593/349/231 +f 717/476/231 588/339/231 596/475/231 +f 562/334/249 713/477/249 714/479/249 +f 561/477/247 715/478/247 713/477/247 +f 560/354/250 712/352/250 715/478/250 +f 563/352/254 714/479/254 712/352/254 +f 712/352/312 598/351/312 715/478/312 +f 595/481/231 716/480/231 585/345/231 +f 585/345/231 716/480/231 590/345/231 +f 716/480/231 593/349/231 717/476/231 +f 716/480/313 714/479/313 713/477/313 +f 715/478/302 597/350/302 713/477/302 +f 713/477/318 597/350/318 716/480/318 +f 759/303/231 763/304/231 756/305/231 +f 737/306/290 733/307/290 731/308/290 +f 731/308/231 733/307/231 425/309/231 +f 725/310/292 727/311/292 723/312/292 +f 757/313/231 762/314/231 754/315/231 +f 728/316/319 725/310/319 724/317/319 +f 723/312/320 726/318/320 722/319/320 +f 733/307/238 424/320/238 425/309/238 +f 736/321/321 731/308/321 730/322/321 +f 583/323/236 731/308/236 582/324/236 +f 761/325/231 766/326/231 765/327/231 +f 735/328/322 732/329/322 733/307/322 +f 723/330/243 580/331/243 581/330/243 +f 781/332/246 728/316/246 785/333/246 +f 720/334/242 581/335/242 423/336/242 +f 725/337/240 422/338/240 724/317/240 +f 742/339/323 753/340/323 743/341/323 +f 740/342/255 749/343/255 748/344/255 +f 740/342/241 744/345/241 739/345/241 +f 738/346/255 743/341/255 741/347/255 +f 746/348/241 738/346/241 741/347/241 +f 746/348/254 749/343/254 747/349/254 +f 751/350/324 745/342/324 752/351/324 +f 746/348/242 753/340/242 752/351/242 +f 721/352/242 723/353/242 718/354/242 +f 726/318/250 730/322/250 722/319/250 +f 422/338/249 732/329/249 724/317/249 +f 728/316/249 732/329/249 734/355/249 +f 580/331/250 730/322/250 583/356/250 +f 760/332/231 764/311/231 758/357/231 +f 755/358/266 787/359/266 754/359/266 +f 756/305/261 788/360/261 783/361/261 +f 760/332/265 801/362/265 794/362/265 +f 784/357/247 727/311/247 781/332/247 +f 755/358/249 761/325/249 785/333/249 +f 779/363/254 754/315/254 782/364/254 +f 761/325/231 769/332/231 760/332/231 +f 758/357/231 768/303/231 759/303/231 +f 756/305/231 767/365/231 757/365/231 +f 755/358/231 762/359/231 766/326/231 +f 767/366/254 776/314/254 762/314/254 +f 775/366/231 773/303/231 770/332/231 +f 769/332/247 772/367/247 764/311/247 +f 763/304/241 775/368/241 767/365/241 +f 765/327/246 770/332/246 769/332/246 +f 768/303/250 774/304/250 763/304/250 +f 766/326/249 771/327/249 765/327/249 +f 762/359/255 777/369/255 766/326/255 +f 764/311/245 773/303/245 768/303/245 +f 735/370/255 778/371/255 734/355/255 +f 783/361/241 737/372/241 736/321/241 +f 784/357/245 726/318/245 727/311/245 +f 757/365/264 789/304/264 756/305/264 +f 791/367/245 800/373/245 790/367/245 +f 788/360/241 796/365/241 799/374/241 +f 787/359/255 798/371/255 786/375/255 +f 794/362/246 792/333/246 793/327/246 +f 758/357/268 790/367/268 784/357/268 +f 782/375/260 798/371/260 778/371/260 +f 783/361/263 799/374/263 779/376/263 +f 784/357/258 800/373/258 780/373/258 +f 761/325/252 792/333/252 785/333/252 +f 755/358/267 798/371/267 797/326/267 +f 785/333/259 801/362/259 781/332/259 +f 760/332/256 793/327/256 761/325/256 +f 757/313/253 799/363/253 796/366/253 +f 759/303/251 791/367/251 758/357/251 +f 759/303/262 800/373/262 795/303/262 +f 754/315/257 786/377/257 782/364/257 +f 837/685/246 835/686/246 834/687/246 +f 836/688/273 838/689/273 835/686/273 +f 839/690/247 840/691/247 838/689/247 +f 841/692/274 842/693/274 840/691/274 +f 843/694/245 844/695/245 842/693/245 +f 845/696/275 846/697/275 844/695/275 +f 847/698/250 848/699/250 846/697/250 +f 849/700/276 850/701/276 848/699/276 +f 851/702/241 852/703/241 850/701/241 +f 853/704/269 854/705/269 852/703/269 +f 855/706/254 856/707/254 854/705/254 +f 857/708/270 858/709/270 856/707/270 +f 859/710/255 860/711/255 858/709/255 +f 861/712/271 862/713/271 860/711/271 +f 831/714/250 832/715/250 833/716/250 +f 863/717/249 864/718/249 862/713/249 +f 865/719/272 834/720/272 864/718/272 +f 833/716/276 802/721/276 803/722/276 +f 802/721/242 835/723/242 804/724/242 +f 805/725/231 837/726/231 803/722/231 +f 804/724/242 838/727/242 806/728/242 +f 807/729/231 836/730/231 805/725/231 +f 808/731/242 838/727/242 840/732/242 +f 807/729/231 841/733/231 839/734/231 +f 808/731/242 842/735/242 810/736/242 +f 809/737/231 843/738/231 841/733/231 +f 810/736/242 844/739/242 812/740/242 +f 813/741/231 843/738/231 811/742/231 +f 814/743/242 844/739/242 846/744/242 +f 815/745/231 845/746/231 813/741/231 +f 816/747/242 846/744/242 848/748/242 +f 817/749/231 847/750/231 815/745/231 +f 818/751/242 848/748/242 850/752/242 +f 819/753/231 849/754/231 817/749/231 +f 820/755/242 850/752/242 852/756/242 +f 819/753/231 853/757/231 851/758/231 +f 820/755/242 854/759/242 822/760/242 +f 823/761/231 853/757/231 821/762/231 +f 822/760/242 856/763/242 824/764/242 +f 825/765/231 855/766/231 823/761/231 +f 826/767/242 856/763/242 858/768/242 +f 825/765/231 859/769/231 857/770/231 +f 826/767/242 860/771/242 828/772/242 +f 827/773/231 861/774/231 859/769/231 +f 828/772/242 862/775/242 830/776/242 +f 831/714/231 861/774/231 829/777/231 +f 830/776/242 864/778/242 832/715/242 +f 833/716/231 863/779/231 831/714/231 +f 832/715/242 834/780/242 802/721/242 +f 833/716/231 837/726/231 865/781/231 +f 829/777/275 830/776/275 831/714/275 +f 827/773/245 828/772/245 829/777/245 +f 825/765/274 826/767/274 827/773/274 +f 823/761/247 824/764/247 825/765/247 +f 821/762/273 822/760/273 823/761/273 +f 819/753/246 820/755/246 821/762/246 +f 817/749/272 818/751/272 819/753/272 +f 815/745/249 816/747/249 817/749/249 +f 813/741/271 814/743/271 815/745/271 +f 811/742/255 812/740/255 813/741/255 +f 809/737/270 810/736/270 811/742/270 +f 807/729/254 808/731/254 809/737/254 +f 805/725/269 806/728/269 807/729/269 +f 803/722/241 804/724/241 805/725/241 +f 780/373/250 756/305/250 783/361/250 +f 866/352/325 753/340/325 750/475/325 +f 871/476/231 742/339/231 738/346/231 +f 720/334/254 867/477/254 719/477/254 +f 719/477/250 869/478/250 718/354/250 +f 718/354/247 866/352/247 721/352/247 +f 721/352/249 868/479/249 720/334/249 +f 866/352/326 752/351/326 753/340/326 +f 744/345/231 751/350/231 870/480/231 +f 870/480/231 747/349/231 749/481/231 +f 870/480/327 868/479/327 871/476/327 +f 751/350/328 752/351/328 869/478/328 +f 759/303/231 768/303/231 763/304/231 +f 737/306/290 735/328/290 733/307/290 +f 267/482/231 582/324/231 425/309/231 +f 582/324/231 731/308/231 425/309/231 +f 725/310/292 729/362/292 727/311/292 +f 757/313/231 767/366/231 762/314/231 +f 728/316/329 729/362/329 725/310/329 +f 723/312/330 727/311/330 726/318/330 +f 733/307/238 732/370/238 424/320/238 +f 736/321/321 737/306/321 731/308/321 +f 583/323/236 730/372/236 731/308/236 +f 761/325/231 755/358/231 766/326/231 +f 735/328/322 734/355/322 732/329/322 +f 723/330/243 722/319/243 580/331/243 +f 781/332/246 729/362/246 728/316/246 +f 719/477/242 718/354/242 723/353/242 +f 723/353/242 581/335/242 719/477/242 +f 581/335/242 266/483/242 423/336/242 +f 719/477/242 581/335/242 720/334/242 +f 423/336/242 725/484/242 720/334/242 +f 725/484/242 721/352/242 720/334/242 +f 725/337/240 423/337/240 422/338/240 +f 742/339/323 750/475/323 753/340/323 +f 740/342/255 739/345/255 749/343/255 +f 740/342/241 745/342/241 744/345/241 +f 738/346/255 742/339/255 743/341/255 +f 746/348/241 747/349/241 738/346/241 +f 746/348/254 748/344/254 749/343/254 +f 751/350/324 744/345/324 745/342/324 +f 746/348/242 741/347/242 743/341/242 +f 752/351/242 745/342/242 748/344/242 +f 745/342/242 740/342/242 748/344/242 +f 746/348/242 743/341/242 753/340/242 +f 752/351/242 748/344/242 746/348/242 +f 721/352/242 725/484/242 723/353/242 +f 726/318/250 736/321/250 730/322/250 +f 422/338/249 424/485/249 732/329/249 +f 728/316/249 724/317/249 732/329/249 +f 580/331/250 722/319/250 730/322/250 +f 760/332/231 769/332/231 764/311/231 +f 755/358/266 797/326/266 787/359/266 +f 756/305/261 789/304/261 788/360/261 +f 760/332/265 781/332/265 801/362/265 +f 727/311/247 729/362/247 781/332/247 +f 781/332/247 760/332/247 784/357/247 +f 760/332/247 758/357/247 784/357/247 +f 785/333/249 728/316/249 734/355/249 +f 734/355/249 778/371/249 785/333/249 +f 778/371/249 755/358/249 785/333/249 +f 735/328/254 737/306/254 779/363/254 +f 779/363/254 757/313/254 754/315/254 +f 782/364/254 735/328/254 779/363/254 +f 761/325/231 765/327/231 769/332/231 +f 758/357/231 764/311/231 768/303/231 +f 756/305/231 763/304/231 767/365/231 +f 755/358/231 754/359/231 762/359/231 +f 767/366/254 775/366/254 776/314/254 +f 770/332/231 771/327/231 777/369/231 +f 777/369/231 776/486/231 770/332/231 +f 776/486/231 775/366/231 770/332/231 +f 775/366/231 774/304/231 773/303/231 +f 773/303/231 772/367/231 770/332/231 +f 769/332/247 770/332/247 772/367/247 +f 763/304/241 774/304/241 775/368/241 +f 765/327/246 771/327/246 770/332/246 +f 768/303/250 773/303/250 774/304/250 +f 766/326/249 777/369/249 771/327/249 +f 762/359/255 776/486/255 777/369/255 +f 764/311/245 772/367/245 773/303/245 +f 735/370/255 782/375/255 778/371/255 +f 783/361/241 779/376/241 737/372/241 +f 784/357/245 780/373/245 726/318/245 +f 757/365/264 796/365/264 789/304/264 +f 791/367/245 795/303/245 800/373/245 +f 788/360/241 789/304/241 796/365/241 +f 787/359/255 797/326/255 798/371/255 +f 794/362/246 801/362/246 792/333/246 +f 758/357/268 791/367/268 790/367/268 +f 782/375/260 786/375/260 798/371/260 +f 783/361/263 788/360/263 799/374/263 +f 784/357/258 790/367/258 800/373/258 +f 761/325/252 793/327/252 792/333/252 +f 755/358/267 778/371/267 798/371/267 +f 785/333/259 792/333/259 801/362/259 +f 760/332/256 794/362/256 793/327/256 +f 757/313/253 779/363/253 799/363/253 +f 759/303/251 795/303/251 791/367/251 +f 759/303/262 780/373/262 800/373/262 +f 754/315/257 787/314/257 786/377/257 +f 837/685/246 836/688/246 835/686/246 +f 836/688/273 839/690/273 838/689/273 +f 839/690/247 841/692/247 840/691/247 +f 841/692/274 843/694/274 842/693/274 +f 843/694/245 845/696/245 844/695/245 +f 845/696/275 847/698/275 846/697/275 +f 847/698/250 849/700/250 848/699/250 +f 849/700/276 851/702/276 850/701/276 +f 851/702/241 853/704/241 852/703/241 +f 853/704/269 855/706/269 854/705/269 +f 855/706/254 857/708/254 856/707/254 +f 857/708/270 859/710/270 858/709/270 +f 859/710/255 861/712/255 860/711/255 +f 861/712/271 863/717/271 862/713/271 +f 831/714/250 830/776/250 832/715/250 +f 863/717/249 865/719/249 864/718/249 +f 865/719/272 837/782/272 834/720/272 +f 833/716/276 832/715/276 802/721/276 +f 802/721/242 834/780/242 835/723/242 +f 805/725/231 836/730/231 837/726/231 +f 804/724/242 835/723/242 838/727/242 +f 807/729/231 839/734/231 836/730/231 +f 808/731/242 806/728/242 838/727/242 +f 807/729/231 809/737/231 841/733/231 +f 808/731/242 840/732/242 842/735/242 +f 809/737/231 811/742/231 843/738/231 +f 810/736/242 842/735/242 844/739/242 +f 813/741/231 845/746/231 843/738/231 +f 814/743/242 812/740/242 844/739/242 +f 815/745/231 847/750/231 845/746/231 +f 816/747/242 814/743/242 846/744/242 +f 817/749/231 849/754/231 847/750/231 +f 818/751/242 816/747/242 848/748/242 +f 819/753/231 851/758/231 849/754/231 +f 820/755/242 818/751/242 850/752/242 +f 819/753/231 821/762/231 853/757/231 +f 820/755/242 852/756/242 854/759/242 +f 823/761/231 855/766/231 853/757/231 +f 822/760/242 854/759/242 856/763/242 +f 825/765/231 857/770/231 855/766/231 +f 826/767/242 824/764/242 856/763/242 +f 825/765/231 827/773/231 859/769/231 +f 826/767/242 858/768/242 860/771/242 +f 827/773/231 829/777/231 861/774/231 +f 828/772/242 860/771/242 862/775/242 +f 831/714/231 863/779/231 861/774/231 +f 830/776/242 862/775/242 864/778/242 +f 833/716/231 865/781/231 863/779/231 +f 832/715/242 864/778/242 834/780/242 +f 833/716/231 803/722/231 837/726/231 +f 829/777/275 828/772/275 830/776/275 +f 827/773/245 826/767/245 828/772/245 +f 825/765/274 824/764/274 826/767/274 +f 823/761/247 822/760/247 824/764/247 +f 821/762/273 820/755/273 822/760/273 +f 819/753/246 818/751/246 820/755/246 +f 817/749/272 816/747/272 818/751/272 +f 815/745/249 814/743/249 816/747/249 +f 813/741/271 812/740/271 814/743/271 +f 811/742/255 810/736/255 812/740/255 +f 809/737/270 808/731/270 810/736/270 +f 807/729/254 806/728/254 808/731/254 +f 805/725/269 804/724/269 806/728/269 +f 803/722/241 802/721/241 804/724/241 +f 783/361/250 736/321/250 780/373/250 +f 736/321/250 726/318/250 780/373/250 +f 780/373/250 759/303/250 756/305/250 +f 750/475/331 871/476/331 868/488/331 +f 868/488/285 866/352/285 750/475/285 +f 738/346/231 747/349/231 871/476/231 +f 871/476/231 750/475/231 742/339/231 +f 720/334/254 868/479/254 867/477/254 +f 719/477/250 867/477/250 869/478/250 +f 718/354/247 869/478/247 866/352/247 +f 721/352/249 866/352/249 868/479/249 +f 866/352/326 869/478/326 752/351/326 +f 749/481/231 739/345/231 870/480/231 +f 739/345/231 744/345/231 870/480/231 +f 870/480/231 871/476/231 747/349/231 +f 870/480/327 867/477/327 868/479/327 +f 869/478/284 867/477/284 751/350/284 +f 867/477/332 870/480/332 751/350/332 +o main +v -0.300000 0.670000 0.400000 +v -0.400000 0.670000 0.300000 +v -0.300000 0.900000 0.400000 +v -0.300000 1.000000 0.300000 +v -0.400000 0.900000 0.300000 +v -0.400000 0.670000 -0.300000 +v -0.300000 0.670000 -0.400000 +v -0.300000 1.000000 -0.300000 +v -0.300000 0.900000 -0.400000 +v -0.400000 0.900000 -0.300000 +v 0.400000 0.670000 0.300000 +v 0.300000 0.670000 0.400000 +v 0.300000 1.000000 0.300000 +v 0.300000 0.900000 0.400000 +v 0.400000 0.900000 0.300000 +v 0.300000 0.670000 -0.400000 +v 0.400000 0.670000 -0.300000 +v 0.300000 1.000000 -0.300000 +v 0.400000 0.900000 -0.300000 +v 0.300000 0.900000 -0.400000 +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 -0.0000 -1.0000 +vn -0.5774 0.5774 0.5774 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 0.5774 +vn 0.5774 0.5774 -0.5774 +vn -0.7071 -0.0000 0.7071 +vn -0.7071 0.7071 -0.0000 +vn -0.7071 -0.0000 -0.7071 +vn -0.0000 0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 -1.0000 -0.0000 +vt 0.679453 0.754780 +vt 0.499631 0.795101 +vt 0.555867 0.689170 +vt 0.754435 0.613540 +vt 0.574613 0.653860 +vt 0.630850 0.547930 +vt 0.895676 0.688522 +vt 0.733508 0.738215 +vt 0.789745 0.632285 +vt 0.904400 0.331059 +vt 0.724578 0.371379 +vt 0.780815 0.265449 +vt 0.829418 0.472299 +vt 0.649595 0.512620 +vt 0.705832 0.406689 +vt 0.830066 0.812107 +vt 0.839439 0.794452 +vt 0.857094 0.803825 +vt 0.905048 0.670867 +vt 0.913331 0.697895 +vt 0.724136 0.755870 +vt 0.715853 0.728843 +vt 0.772090 0.622912 +vt 0.799118 0.614630 +vt 0.913773 0.313404 +vt 0.790187 0.247794 +vt 0.848163 0.436989 +vt 0.773181 0.578229 +vt 0.698198 0.719470 +vt 0.547585 0.662142 +vt 0.433373 0.578878 +vt 0.623216 0.860710 +vt 0.489609 0.472947 +vt 0.516637 0.464665 +vt 0.622568 0.520902 +vt 0.441655 0.605906 +s 0 +f 885/783/333 872/784/333 883/785/333 +f 890/786/334 882/787/334 888/788/334 +f 879/789/335 884/790/335 889/791/335 +f 876/792/336 877/793/336 873/794/336 +f 880/795/337 887/796/337 878/797/337 +f 874/798/338 875/799/338 876/800/338 +f 879/789/339 880/801/339 881/802/339 +f 884/790/340 885/803/340 886/804/340 +f 889/791/341 890/805/341 891/806/341 +f 874/807/342 873/794/342 872/808/342 +f 879/789/343 876/800/343 875/799/343 +f 878/797/344 881/809/344 880/795/344 +f 889/791/345 880/801/345 879/789/345 +f 888/788/346 891/810/346 890/786/346 +f 884/790/347 890/786/347 889/791/347 +f 883/785/348 886/811/348 885/783/348 +f 875/799/349 885/803/349 884/790/349 +f 888/788/350 883/812/350 873/813/350 +f 885/783/333 874/814/333 872/784/333 +f 890/786/334 886/811/334 882/787/334 +f 879/789/335 875/799/335 884/790/335 +f 876/792/336 881/809/336 877/793/336 +f 880/795/337 891/810/337 887/796/337 +f 874/807/342 876/792/342 873/794/342 +f 879/789/343 881/802/343 876/800/343 +f 878/797/344 877/793/344 881/809/344 +f 889/791/345 891/806/345 880/801/345 +f 888/788/346 887/796/346 891/810/346 +f 884/790/347 886/811/347 890/786/347 +f 883/785/348 882/787/348 886/811/348 +f 875/799/349 874/798/349 885/803/349 +f 873/813/350 877/815/350 878/816/350 +f 878/816/350 887/817/350 888/788/350 +f 888/788/350 882/787/350 883/812/350 +f 883/812/350 872/818/350 873/813/350 +f 873/813/350 878/816/350 888/788/350 diff --git a/src/main/resources/assets/gregtech/textures/model/drone.png b/src/main/resources/assets/gregtech/textures/model/drone.png Binary files differnew file mode 100644 index 0000000000..7cef90199b --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/model/drone.png |