From 7d1a164bf7d63da0f595cfa7d798ebb3ddf00bd0 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 8 May 2025 14:57:49 +0300 Subject: [PATCH 01/11] Make veinminer follow diagonals --- .../java/com/hbm/handler/ToolAbility.java | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 2a03e79a4..4ec1f4035 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -60,22 +60,35 @@ public abstract class ToolAbility { if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) return false; - List indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5}); - Collections.shuffle(indices); - pos.clear(); - - for(Integer i : indices) { - switch(i) { - case 0: breakExtra(world, x + 1, y, z, x, y, z, player, tool, 0); break; - case 1: breakExtra(world, x - 1, y, z, x, y, z, player, tool, 0); break; - case 2: breakExtra(world, x, y + 1, z, x, y, z, player, tool, 0); break; - case 3: breakExtra(world, x, y - 1, z, x, y, z, player, tool, 0); break; - case 4: breakExtra(world, x, y, z + 1, x, y, z, player, tool, 0); break; - case 5: breakExtra(world, x, y, z - 1, x, y, z, player, tool, 0); break; + + recurse(world, x, y, z, x, y, z, player, tool, 0); + + return false; + } + + private static final List offsets = new ArrayList<>(3*3*3-1); + + static { + for (int dx = -1; dx <= 1; dx++) { + for (int dy = -1; dy <= 1; dy++) { + for (int dz = -1; dz <= 1; dz++) { + if (dx != 0 || dy != 0 || dz != 0) { + offsets.add(new ThreeInts(dx, dy, dz)); + } + } } } - return false; + } + + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { + + List shuffledOffsets = new ArrayList<>(offsets); + Collections.shuffle(shuffledOffsets); + + for(ThreeInts offset : shuffledOffsets) { + breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth); + } } private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { @@ -112,20 +125,8 @@ public abstract class ToolAbility { return; tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); - - List indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5}); - Collections.shuffle(indices); - - for(Integer i : indices) { - switch(i) { - case 0: breakExtra(world, x + 1, y, z, refX, refY, refZ, player, tool, depth); break; - case 1: breakExtra(world, x - 1, y, z, refX, refY, refZ, player, tool, depth); break; - case 2: breakExtra(world, x, y + 1, z, refX, refY, refZ, player, tool, depth); break; - case 3: breakExtra(world, x, y - 1, z, refX, refY, refZ, player, tool, depth); break; - case 4: breakExtra(world, x, y, z + 1, refX, refY, refZ, player, tool, depth); break; - case 5: breakExtra(world, x, y, z - 1, refX, refY, refZ, player, tool, depth); break; - } - } + + recurse(world, x, y, z, refX, refY, refZ, player, tool, depth); } private boolean isSameBlock(Block b1, Block b2) { From 0d141f56b1b225f83081e3a8296f0ab0010f9d1f Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 8 May 2025 15:09:31 +0300 Subject: [PATCH 02/11] Fix import --- src/main/java/com/hbm/handler/ToolAbility.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 4ec1f4035..1ce02283b 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -1,6 +1,7 @@ package com.hbm.handler; import java.util.Arrays; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; From 71998aca4100d0b222e244e1ea2033afec3e35db Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 8 May 2025 16:58:05 +0200 Subject: [PATCH 03/11] bobms --- .../weapon/sedna/factory/GunFactory.java | 4 +- .../sedna/factory/GunFactoryClient.java | 2 + .../weapon/sedna/factory/LegoClient.java | 29 +++++++++++++ .../weapon/sedna/factory/XFactoryTool.java | 43 ++++++++++++++++++- .../weapon/sedna/ItemRenderChargeThrower.java | 23 ++++++++-- .../weapon/sedna/ItemRenderMinigunDual.java | 1 - 6 files changed, 93 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index 002a35c66..f12233377 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -100,7 +100,7 @@ public class GunFactory { G10, G10_SHRAPNEL, G10_DU, G10_SLUG, R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, - CT_HOOK, + CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -127,7 +127,7 @@ public class GunFactory { TAU_URANIUM, COIL_TUNGSTEN, COIL_FERROURANIUM, NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, - CT_HOOK, + CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, }; public Enum[] getOrder() { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 46d0cc495..e568369a9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -220,6 +220,8 @@ public class GunFactoryClient { p35800.setRendererBeam(LegoClient.RENDER_CRACKLE); ct_hook.setRenderer(LegoClient.RENDER_CT_HOOK); + ct_mortar.setRenderer(LegoClient.RENDER_CT_MORTAR); + ct_mortar_charge.setRenderer(LegoClient.RENDER_CT_MORTAR_CHARGE); setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index bedc1285a..f3d2e68a5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -576,4 +576,33 @@ public class LegoClient { tessellator.addVertexWithUV(a - jX, b, c - jZ, wrap, 1); tessellator.addVertexWithUV(a + jX, b, c + jZ, wrap, 0); } + + public static BiConsumer RENDER_CT_MORTAR = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(180, 0, 0, 1); + GL11.glTranslatef(0, 0, -6F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + + public static BiConsumer RENDER_CT_MORTAR_CHARGE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(180, 0, 0, 1); + GL11.glTranslatef(0, 0, -6F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index a21c6e555..58e7729f9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -4,7 +4,17 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Consumer; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -16,6 +26,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; @@ -30,6 +41,8 @@ import net.minecraft.util.MovingObjectPosition; public class XFactoryTool { public static BulletConfig ct_hook; + public static BulletConfig ct_mortar; + public static BulletConfig ct_mortar_charge; public static Consumer LAMBDA_SET_HOOK = (entity) -> { EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; @@ -49,17 +62,43 @@ public class XFactoryTool { bullet.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }; + + public static BiConsumer LAMBDA_MORTAR = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60, 8)); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + }; + + public static BiConsumer LAMBDA_MORTAR_CHARGE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + ExplosionCreator.composeEffectSmall(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord); + vnt.explode(); + }; public static void init() { - ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(1200).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); + ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact(LAMBDA_MORTAR); + ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact(LAMBDA_MORTAR_CHARGE); ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) .dmg(5F).delay(4).dry(40).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook)) + .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CT)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java index 5d6ad1bb9..1d46d93b2 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java @@ -58,14 +58,20 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { if(isScoped(stack) && !usingScope) ResourceManager.charge_thrower.renderPart("Scope"); if(mag.getAmount(stack, null) > 0) { - + if(mag.getType(stack, null) == XFactoryTool.ct_hook) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook"); } - //Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); - //ResourceManager.charge_thrower.renderPart("Mortar"); - //ResourceManager.charge_thrower.renderPart("Oomph"); + if(mag.getType(stack, null) == XFactoryTool.ct_mortar) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + } //Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_rocket_tex); //ResourceManager.charge_thrower.renderPart("Rocket"); } @@ -117,6 +123,15 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook"); } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + } } GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java index bd65653b9..8cb34f24f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java @@ -138,7 +138,6 @@ public class ItemRenderMinigunDual extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_dual_tex); ResourceManager.minigun.renderPart(index == 0 ? "GunDual" : "Gun"); - ResourceManager.minigun.renderPart("Grip"); ResourceManager.minigun.renderPart("Barrels"); GL11.glShadeModel(GL11.GL_FLAT); } From 21088af66f2b68585016377bb682ce5617049b92 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 May 2025 23:10:21 +0200 Subject: [PATCH 04/11] i cast: delete everything in that general direction --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/bomb/BlockCrashedBomb.java | 11 +- .../weapon/sedna/factory/XFactoryTool.java | 7 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 6 + .../render/tileentity/RenderCrashedBomb.java | 23 +- .../bomb/TileEntityCrashedBomb.java | 10 +- src/main/java/com/hbm/world/feature/Dud.java | 3 +- .../hbm/models/bombs/dud_conventional.obj | 940 +++++++++++ .../assets/hbm/models/bombs/dud_nuke.obj | 799 ++++++++++ .../assets/hbm/models/bombs/dud_salted.obj | 1411 +++++++++++++++++ .../models/bombs/dud_conventional.png | Bin 0 -> 29044 bytes .../hbm/textures/models/bombs/dud_nuke.png | Bin 0 -> 22951 bytes .../hbm/textures/models/bombs/dud_salted.png | Bin 0 -> 31296 bytes .../models/weapons/charge_thrower.png | Bin 2308 -> 3034 bytes .../models/weapons/charge_thrower_hook.png | Bin 528 -> 594 bytes .../models/weapons/charge_thrower_mortar.png | Bin 821 -> 1351 bytes .../models/weapons/fatman_balefire.png | Bin 0 -> 900 bytes 18 files changed, 3191 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_conventional.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_nuke.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_salted.obj create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_nuke.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_salted.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ae42a0c1e..d1c604bed 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1749,7 +1749,7 @@ public class ModBlocks { vitrified_barrel = new YellowBarrel(Material.iron).setBlockName("vitrified_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_vitrified"); lox_barrel = new RedBarrel(Material.iron, false).setBlockName("lox_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_lox"); taint_barrel = new RedBarrel(Material.iron, false).setBlockName("taint_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_taint"); - crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); + crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F); charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); @@ -2892,7 +2892,7 @@ public class ModBlocks { //Generic Bombs GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); - GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); + register(crashed_balefire); GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName()); GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName()); GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index d1aae78d7..191b36173 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -1,5 +1,6 @@ package com.hbm.blocks.bomb; +import com.hbm.blocks.BlockEnumMulti; import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; import com.hbm.handler.threading.PacketThreading; @@ -9,7 +10,7 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.block.BlockContainer; +import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -18,10 +19,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class BlockCrashedBomb extends BlockContainer implements IBomb { +public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvider, IBomb { + + public static enum EnumDudType { + BALEFIRE, CONVENTIONAL, NUKE, SALTED + } public BlockCrashedBomb(Material mat) { - super(mat); + super(mat, EnumDudType.class, false, false); } @Override diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 58e7729f9..917c06aee 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -9,7 +9,6 @@ import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; @@ -87,11 +86,11 @@ public class XFactoryTool { public static void init() { - ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); - ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(2F).setGrav(0.035D) + ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR); - ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(2F).setGrav(0.035D) + ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR_CHARGE); ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 5a9f416a1..6bdbc7b8b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -299,8 +299,8 @@ public class HbmWorldGen implements IWorldGenerator { } if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) { - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); + int x = i + 8 + rand.nextInt(16); + int z = j + 8 + rand.nextInt(16); int y = world.getHeightValue(x, z); new Dud().generate(world, rand, x, y, z); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 78bd4c289..7fbac54ce 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -279,6 +279,9 @@ public class ResourceManager { public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO(); + public static final IModelCustom dud_conventional = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_conventional.obj")).asVBO(); + public static final IModelCustom dud_nuke = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_nuke.obj")).asVBO(); + public static final IModelCustom dud_salted = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_salted.obj")).asVBO(); //Satellites public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj")); @@ -731,6 +734,9 @@ public class ResourceManager { public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png"); public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png"); public static final ResourceLocation dud_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_balefire.png"); + public static final ResourceLocation dud_conventional_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_conventional.png"); + public static final ResourceLocation dud_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_nuke.png"); + public static final ResourceLocation dud_salted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_salted.png"); //Satellites public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java b/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java index 849016d81..2da5145d4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java @@ -5,12 +5,15 @@ import java.util.Random; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.client.IItemRenderer; @@ -35,10 +38,13 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte GL11.glRotated(pitch, 1, 0, 0); GL11.glRotated(roll, 0, 0, 1); GL11.glTranslated(0, 0, -offset); - + + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, tile.getBlockMetadata()); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.dud_balefire_tex); - ResourceManager.dud_balefire.renderAll(); + if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); } + if(type == EnumDudType.CONVENTIONAL) { bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); } + if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); } + if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); } GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); @@ -55,14 +61,17 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte public void renderInventory() { GL11.glTranslated(0, 3, 0); - GL11.glScaled(2.75, 2.75, 2.75); + GL11.glScaled(2.125, 2.125, 2.125); GL11.glRotated(90, 0, 0, 1); } - public void renderCommon() { + public void renderCommonWithStack(ItemStack item) { + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, item.getItemDamage()); GL11.glRotated(90, 0, 1, 0); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.dud_balefire_tex); - ResourceManager.dud_balefire.renderAll(); + if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); } + if(type == EnumDudType.CONVENTIONAL) { GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); } + if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); } + if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); } GL11.glShadeModel(GL11.GL_FLAT); }}; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java index 2a917cee6..cf70bb5f8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java @@ -8,15 +8,9 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityCrashedBomb extends TileEntity { @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } + public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - + public double getMaxRenderDistanceSquared() { return 65536.0D; } } diff --git a/src/main/java/com/hbm/world/feature/Dud.java b/src/main/java/com/hbm/world/feature/Dud.java index 85572aa4a..41e24a200 100644 --- a/src/main/java/com/hbm/world/feature/Dud.java +++ b/src/main/java/com/hbm/world/feature/Dud.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType; import com.hbm.config.GeneralConfig; import net.minecraft.block.Block; @@ -60,7 +61,7 @@ public class Dud extends WorldGenerator { if(!LocationIsValidSpawn(world, x, y, z)) return false; - world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(4) + 2, 3); + world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(EnumDudType.values().length), 3); if(GeneralConfig.enableDebugMode) System.out.print("[Debug] Successfully spawned dud at " + x + " " + y + " " + z + "\n"); diff --git a/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj b/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj new file mode 100644 index 000000000..bf8619226 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj @@ -0,0 +1,940 @@ +# Blender v2.79 (sub 7) OBJ File: 'dud1.blend' +# www.blender.org +mtllib dud_conventional.mtl +o Cube.003_Cube.005 +v 0.392370 -0.392370 -1.500000 +v 0.392370 -0.392370 2.499999 +v 0.267370 -0.392370 -1.500000 +v 0.267370 -0.392370 2.499999 +v 0.392370 -0.267370 -1.500000 +v 0.392370 -0.267370 2.499999 +v 0.267370 -0.267370 -1.500000 +v 0.267370 -0.267370 2.499999 +v -0.392369 -0.392370 -1.500000 +v -0.392370 -0.392369 2.499999 +v -0.392369 -0.267370 -1.500000 +v -0.392370 -0.267369 2.499999 +v -0.267369 -0.392370 -1.500000 +v -0.267370 -0.392369 2.499999 +v -0.267369 -0.267370 -1.500000 +v -0.267370 -0.267369 2.499999 +v -0.392370 0.392369 -1.500000 +v -0.392370 0.392370 2.499999 +v -0.267370 0.392369 -1.500000 +v -0.267370 0.392370 2.499999 +v -0.392370 0.267369 -1.500000 +v -0.392370 0.267370 2.499999 +v -0.267370 0.267369 -1.500000 +v -0.267370 0.267370 2.499999 +v 0.392369 0.392369 -1.499999 +v 0.392370 0.392370 2.499998 +v 0.392369 0.267369 -1.499999 +v 0.392370 0.267370 2.499999 +v 0.267369 0.392370 -1.499999 +v 0.267370 0.392370 2.499999 +v 0.267369 0.267370 -1.499999 +v 0.267370 0.267370 2.499999 +v 0.220971 -0.088388 -3.500000 +v 0.220971 -0.088388 -3.437500 +v 0.265165 -0.132582 -3.500000 +v 0.265165 -0.132582 -3.437500 +v 0.088388 -0.220971 -3.500000 +v 0.088388 -0.220971 -3.437500 +v 0.132583 -0.265165 -3.500000 +v 0.132583 -0.265165 -3.437500 +v 0.353553 -0.132582 -3.437500 +v 0.353553 -0.132582 -3.500000 +v 0.132583 -0.353553 -3.500000 +v 0.132583 -0.353553 -3.437500 +v 0.707107 -0.486136 -3.437500 +v 0.707107 -0.486136 -3.500000 +v 0.486136 -0.707107 -3.500000 +v 0.486136 -0.707107 -3.437500 +v -0.088388 -0.220971 -3.500000 +v -0.088388 -0.220971 -3.437500 +v -0.132582 -0.265166 -3.500000 +v -0.132582 -0.265166 -3.437500 +v -0.220970 -0.088389 -3.500000 +v -0.220970 -0.088389 -3.437500 +v -0.265165 -0.132583 -3.500000 +v -0.265165 -0.132583 -3.437500 +v -0.132582 -0.353554 -3.437500 +v -0.132582 -0.353554 -3.500000 +v -0.353553 -0.132583 -3.500000 +v -0.353553 -0.132583 -3.437500 +v -0.486135 -0.707107 -3.437500 +v -0.486135 -0.707107 -3.500000 +v -0.707106 -0.486136 -3.500000 +v -0.707106 -0.486136 -3.437500 +v -0.220971 0.088387 -3.500000 +v -0.220971 0.088387 -3.437500 +v -0.265165 0.132582 -3.500000 +v -0.265165 0.132582 -3.437500 +v -0.088388 0.220970 -3.500000 +v -0.088388 0.220970 -3.437500 +v -0.132582 0.265164 -3.500000 +v -0.132582 0.265164 -3.437500 +v -0.353553 0.132582 -3.437500 +v -0.353553 0.132582 -3.500000 +v -0.132583 0.353552 -3.500000 +v -0.132582 0.353552 -3.437500 +v -0.707107 0.486135 -3.437501 +v -0.707107 0.486135 -3.500001 +v -0.486136 0.707106 -3.500001 +v -0.486136 0.707106 -3.437501 +v 0.088388 0.220970 -3.500000 +v 0.088388 0.220970 -3.437500 +v 0.132582 0.265164 -3.500000 +v 0.132582 0.265164 -3.437500 +v 0.220970 0.088388 -3.500000 +v 0.220970 0.088388 -3.437500 +v 0.265164 0.132582 -3.500000 +v 0.265164 0.132582 -3.437500 +v 0.132582 0.353553 -3.437501 +v 0.132582 0.353553 -3.500000 +v 0.353553 0.132582 -3.500000 +v 0.353553 0.132582 -3.437500 +v 0.486135 0.707106 -3.437501 +v 0.486135 0.707106 -3.500001 +v 0.707106 0.486135 -3.500001 +v 0.707106 0.486135 -3.437501 +v 0.420463 -0.062500 -1.424884 +v 0.420463 0.062500 -1.424884 +v 0.420463 0.000000 -1.500000 +v 0.920463 -0.062500 -1.674884 +v 0.920463 0.000000 -1.750000 +v 0.920463 0.062500 -1.674884 +v 0.420463 -0.062500 0.424884 +v 0.420463 -0.000000 0.500000 +v 0.420463 0.062500 0.424884 +v 0.920463 -0.062500 0.174884 +v 0.920463 0.062500 0.174884 +v 0.920463 -0.000000 0.250000 +v -0.420463 -0.062500 -1.424884 +v -0.420463 0.062500 -1.424884 +v -0.420463 0.000000 -1.500000 +v -0.920463 -0.062500 -1.674884 +v -0.920463 0.000000 -1.750000 +v -0.920463 0.062500 -1.674884 +v -0.420463 -0.062500 0.424884 +v -0.420463 -0.000000 0.500000 +v -0.420463 0.062500 0.424884 +v -0.920463 -0.062500 0.174884 +v -0.920463 0.062500 0.174884 +v -0.920463 -0.000000 0.250000 +v -0.186935 -0.031250 3.781250 +v -0.186935 -0.031250 4.156250 +v -0.186935 0.031250 3.781250 +v -0.186935 0.031250 4.156250 +v -0.124435 -0.031250 3.781250 +v -0.124435 -0.031250 4.156250 +v -0.124435 0.031250 3.781250 +v -0.124435 0.031250 4.156250 +v 0.186935 -0.031250 3.781250 +v 0.186935 -0.031250 4.156250 +v 0.186935 0.031250 3.781250 +v 0.186935 0.031250 4.156250 +v 0.124435 -0.031250 3.781250 +v 0.124435 -0.031250 4.156250 +v 0.124435 0.031250 3.781250 +v 0.124435 0.031250 4.156250 +v -0.000000 0.482963 -2.000000 +v -0.000000 0.482962 3.000000 +v 0.241481 0.418258 -2.000000 +v 0.241481 0.418258 3.000000 +v 0.418258 0.241481 -2.000000 +v 0.418258 0.241481 3.000000 +v 0.482963 0.000000 -2.000000 +v 0.482963 -0.000000 3.000000 +v 0.418258 -0.241481 -2.000000 +v 0.418258 -0.241482 3.000000 +v 0.241481 -0.418258 -2.000000 +v 0.241481 -0.418258 3.000000 +v 0.000000 -0.482963 -2.000000 +v 0.000000 -0.482963 3.000000 +v -0.241481 -0.418258 -2.000000 +v -0.241481 -0.418258 3.000000 +v -0.418258 -0.241481 -2.000000 +v -0.418258 -0.241482 3.000000 +v -0.482963 -0.000000 -2.000000 +v -0.482963 -0.000000 3.000000 +v -0.418258 0.241481 -2.000000 +v -0.418258 0.241481 3.000000 +v -0.241482 0.418258 -2.000000 +v -0.241482 0.418258 3.000000 +v 0.000000 0.241481 -3.000000 +v 0.120741 0.209129 -3.000000 +v 0.209129 0.120741 -3.000000 +v 0.241481 0.000000 -3.000000 +v 0.209129 -0.120741 -3.000000 +v 0.120741 -0.209129 -3.000000 +v 0.000000 -0.241481 -3.000000 +v -0.120741 -0.209129 -3.000000 +v -0.209129 -0.120741 -3.000000 +v -0.241481 -0.000000 -3.000000 +v -0.209129 0.120741 -3.000000 +v -0.120741 0.209129 -3.000000 +v 0.000000 0.241481 -3.500000 +v 0.120741 0.209129 -3.500000 +v 0.209129 0.120741 -3.500000 +v 0.241481 0.000000 -3.500000 +v 0.209129 -0.120741 -3.500000 +v 0.120741 -0.209129 -3.500000 +v 0.000000 -0.241481 -3.500000 +v -0.120741 -0.209129 -3.500000 +v -0.209129 -0.120741 -3.500000 +v -0.241481 -0.000000 -3.500000 +v -0.209129 0.120741 -3.500000 +v -0.120741 0.209129 -3.500000 +v 0.120741 0.209129 3.750000 +v -0.000000 0.241481 3.750000 +v 0.209129 0.120740 3.750000 +v 0.241481 -0.000000 3.750000 +v 0.209129 -0.120741 3.750000 +v 0.120741 -0.209129 3.750000 +v 0.000000 -0.241481 3.750000 +v -0.120741 -0.209129 3.750000 +v -0.209129 -0.120741 3.750000 +v -0.241481 -0.000000 3.750000 +v -0.209129 0.120740 3.750000 +v -0.120741 0.209129 3.750000 +v 0.000000 -0.000000 4.000000 +vt 0.382857 0.042857 +vt 0.017143 0.071429 +vt 0.017143 0.042857 +vt 0.382857 0.014286 +vt 0.017143 0.014286 +vt 0.005714 0.014286 +vt 0.005714 0.042857 +vt 0.394286 0.042857 +vt 0.394286 0.014286 +vt 0.382857 0.114286 +vt 0.017143 0.142857 +vt 0.017143 0.114286 +vt 0.382857 0.085714 +vt 0.017143 0.085714 +vt 0.005714 0.085714 +vt 0.005714 0.114286 +vt 0.394286 0.114286 +vt 0.394286 0.085714 +vt 0.382857 0.185714 +vt 0.017143 0.214286 +vt 0.017143 0.185714 +vt 0.382857 0.157143 +vt 0.017143 0.157143 +vt 0.005714 0.157143 +vt 0.005714 0.185714 +vt 0.394286 0.185714 +vt 0.394286 0.157143 +vt 0.382857 0.257143 +vt 0.017143 0.285714 +vt 0.017143 0.257143 +vt 0.017143 0.228571 +vt 0.005714 0.228571 +vt 0.005714 0.257143 +vt 0.394286 0.257143 +vt 0.382857 0.228571 +vt 0.394286 0.228571 +vt 0.691429 0.128571 +vt 0.685714 0.142857 +vt 0.685714 0.128571 +vt 0.657143 0.142857 +vt 0.651429 0.157143 +vt 0.651429 0.142857 +vt 0.657143 0.128571 +vt 0.662857 0.142857 +vt 0.680000 0.128571 +vt 0.680000 0.142857 +vt 0.645714 0.142857 +vt 0.628571 0.128571 +vt 0.645714 0.128571 +vt 0.657143 0.157143 +vt 0.651429 0.271429 +vt 0.622857 0.157143 +vt 0.628571 0.142857 +vt 0.691429 0.142857 +vt 0.685714 0.157143 +vt 0.685714 0.285714 +vt 0.657143 0.271429 +vt 0.685714 0.271429 +vt 0.622857 0.271429 +vt 0.691429 0.157143 +vt 0.617143 0.128571 +vt 0.611429 0.142857 +vt 0.611429 0.128571 +vt 0.582857 0.142857 +vt 0.577143 0.157143 +vt 0.577143 0.142857 +vt 0.582857 0.128571 +vt 0.588571 0.142857 +vt 0.605714 0.128571 +vt 0.605714 0.142857 +vt 0.571429 0.142857 +vt 0.554286 0.128571 +vt 0.571429 0.128571 +vt 0.582857 0.157143 +vt 0.577143 0.271429 +vt 0.548571 0.157143 +vt 0.554286 0.142857 +vt 0.617143 0.142857 +vt 0.611429 0.157143 +vt 0.611429 0.285714 +vt 0.582857 0.271429 +vt 0.611429 0.271429 +vt 0.548571 0.271429 +vt 0.617143 0.157143 +vt 0.542857 0.128571 +vt 0.537143 0.142857 +vt 0.537143 0.128571 +vt 0.502857 0.142857 +vt 0.508571 0.157143 +vt 0.502857 0.157143 +vt 0.508571 0.142857 +vt 0.502857 0.128571 +vt 0.508571 0.128571 +vt 0.514286 0.142857 +vt 0.531429 0.128571 +vt 0.531429 0.142857 +vt 0.480000 0.142857 +vt 0.497143 0.128571 +vt 0.497143 0.142857 +vt 0.502857 0.271429 +vt 0.474286 0.157143 +vt 0.542857 0.142857 +vt 0.537143 0.157143 +vt 0.537143 0.285714 +vt 0.508571 0.271429 +vt 0.537143 0.271429 +vt 0.474286 0.271429 +vt 0.542857 0.271429 +vt 0.468571 0.128571 +vt 0.462857 0.142857 +vt 0.462857 0.128571 +vt 0.434286 0.142857 +vt 0.428571 0.157143 +vt 0.428571 0.142857 +vt 0.434286 0.128571 +vt 0.440000 0.142857 +vt 0.457143 0.128571 +vt 0.457143 0.142857 +vt 0.422857 0.142857 +vt 0.405714 0.128571 +vt 0.422857 0.128571 +vt 0.434286 0.157143 +vt 0.428571 0.271429 +vt 0.400000 0.157143 +vt 0.405714 0.142857 +vt 0.468571 0.157143 +vt 0.462857 0.157143 +vt 0.462857 0.285714 +vt 0.434286 0.271429 +vt 0.462857 0.271429 +vt 0.400000 0.271429 +vt 0.468571 0.271429 +vt 0.862857 0.968548 +vt 0.862857 0.545738 +vt 0.874286 0.545738 +vt 0.805714 0.557143 +vt 0.760000 0.928571 +vt 0.760000 0.500000 +vt 0.857143 0.928571 +vt 0.811429 0.557143 +vt 0.857143 0.500000 +vt 0.805714 0.471429 +vt 0.760000 0.485714 +vt 0.760000 0.471429 +vt 0.760000 0.457143 +vt 0.805714 0.457143 +vt 0.857143 0.471429 +vt 0.811429 0.485714 +vt 0.811429 0.471429 +vt 0.811429 0.457143 +vt 0.857143 0.457143 +vt 0.880000 0.545738 +vt 0.891429 0.968548 +vt 0.880000 0.968548 +vt 0.948571 0.557143 +vt 0.994286 0.928571 +vt 0.948571 0.985714 +vt 0.942857 0.557143 +vt 0.897143 0.928571 +vt 0.897143 0.500000 +vt 0.994286 0.485714 +vt 0.948571 0.471429 +vt 0.994286 0.471429 +vt 0.994286 0.457143 +vt 0.942857 0.485714 +vt 0.897143 0.471429 +vt 0.942857 0.471429 +vt 0.942857 0.457143 +vt 0.714286 0.757143 +vt 0.748571 0.771429 +vt 0.748571 0.757143 +vt 0.714286 0.771429 +vt 0.748571 0.785714 +vt 0.714286 0.728571 +vt 0.748571 0.742857 +vt 0.748571 0.728571 +vt 0.714286 0.742857 +vt 0.708571 0.757143 +vt 0.708571 0.771429 +vt 0.748571 0.814286 +vt 0.714286 0.828571 +vt 0.748571 0.828571 +vt 0.748571 0.800000 +vt 0.714286 0.814286 +vt 0.748571 0.842857 +vt 0.714286 0.857143 +vt 0.748571 0.857143 +vt 0.714286 0.842857 +vt 0.708571 0.828571 +vt 0.708571 0.814286 +vt 0.382857 0.071429 +vt 0.382857 0.142857 +vt 0.382857 0.214286 +vt 0.382857 0.285714 +vt 0.651429 0.128571 +vt 0.662857 0.128571 +vt 0.657143 0.285714 +vt 0.691429 0.271429 +vt 0.577143 0.128571 +vt 0.588571 0.128571 +vt 0.582857 0.285714 +vt 0.617143 0.271429 +vt 0.514286 0.128571 +vt 0.480000 0.128571 +vt 0.542857 0.157143 +vt 0.508571 0.285714 +vt 0.468571 0.142857 +vt 0.428571 0.128571 +vt 0.440000 0.128571 +vt 0.434286 0.285714 +vt 0.868571 0.528571 +vt 0.874286 0.968548 +vt 0.868571 0.985714 +vt 0.805714 0.985714 +vt 0.811429 0.985714 +vt 0.805714 0.485714 +vt 0.857143 0.485714 +vt 0.885714 0.528571 +vt 0.891429 0.545738 +vt 0.885714 0.985714 +vt 0.994286 0.500000 +vt 0.942857 0.985714 +vt 0.948571 0.485714 +vt 0.948571 0.457143 +vt 0.897143 0.485714 +vt 0.897143 0.457143 +vt 0.714286 0.785714 +vt 0.714286 0.800000 +vt 0.102857 0.471429 +vt 0.560000 0.414286 +vt 0.560000 0.471429 +vt 0.102857 0.414286 +vt 0.560000 0.357143 +vt 0.102857 0.357143 +vt 0.560000 0.300000 +vt 0.102857 0.985714 +vt 0.560000 0.928571 +vt 0.560000 0.985714 +vt 0.102857 0.928571 +vt 0.560000 0.871429 +vt 0.102857 0.871429 +vt 0.560000 0.814286 +vt 0.102857 0.814286 +vt 0.560000 0.757143 +vt 0.102857 0.757143 +vt 0.560000 0.700000 +vt 0.102857 0.700000 +vt 0.560000 0.642857 +vt 0.102857 0.642857 +vt 0.560000 0.585714 +vt 0.034286 0.942857 +vt 0.102857 0.585714 +vt 0.560000 0.528571 +vt 0.102857 0.528571 +vt 0.651429 0.400000 +vt 0.657143 0.642857 +vt 0.702857 0.671429 +vt 0.657143 0.671429 +vt 0.651429 0.628571 +vt 0.651429 0.685714 +vt 0.651429 0.742857 +vt 0.651429 0.800000 +vt 0.651429 0.857143 +vt 0.651429 0.914286 +vt 0.651429 0.971429 +vt 0.651429 0.514286 +vt 0.651429 0.457143 +vt 0.651429 0.342857 +vt 0.651429 0.571429 +vt 0.753847 0.928913 +vt 0.720484 0.976662 +vt 0.720625 0.880554 +vt 0.657143 0.785714 +vt 0.702857 0.814286 +vt 0.657143 0.814286 +vt 0.657143 0.871429 +vt 0.702857 0.900000 +vt 0.657143 0.900000 +vt 0.657143 0.957143 +vt 0.702857 0.985714 +vt 0.657143 0.985714 +vt 0.657143 0.757143 +vt 0.702857 0.785714 +vt 0.657143 0.700000 +vt 0.702857 0.728571 +vt 0.657143 0.728571 +vt 0.657143 0.842857 +vt 0.702857 0.871429 +vt 0.657143 0.928571 +vt 0.702857 0.957143 +vt 0.702857 0.757143 +vt 0.702857 0.700000 +vt 0.702857 0.842857 +vt 0.702857 0.928571 +vt 0.034286 0.828571 +vt 0.034286 0.857143 +vt 0.005714 0.842857 +vt 0.034286 0.485714 +vt 0.034286 0.428571 +vt 0.034286 0.314286 +vt 0.102857 0.300000 +vt 0.034286 0.542857 +vt 0.034286 0.371429 +vt 0.034286 0.600000 +vt 0.034286 0.685714 +vt 0.034286 0.657143 +vt 0.034286 0.714286 +vt 0.034286 0.771429 +vt 0.034286 0.885714 +vt 0.034286 0.342857 +vt 0.005714 0.328571 +vt 0.034286 0.628571 +vt 0.005714 0.614286 +vt 0.034286 0.800000 +vt 0.005714 0.785714 +vt 0.034286 0.971429 +vt 0.005714 0.957143 +vt 0.034286 0.571429 +vt 0.005714 0.557143 +vt 0.034286 0.457143 +vt 0.005714 0.442857 +vt 0.034286 0.742857 +vt 0.005714 0.728571 +vt 0.034286 0.914286 +vt 0.005714 0.900000 +vt 0.034286 0.514286 +vt 0.005714 0.500000 +vt 0.034286 0.400000 +vt 0.005714 0.385714 +vt 0.005714 0.671429 +vt 0.651429 0.371429 +vt 0.702857 0.642857 +vt 0.651429 0.600000 +vt 0.651429 0.657143 +vt 0.651429 0.714286 +vt 0.651429 0.771429 +vt 0.651429 0.828571 +vt 0.651429 0.885714 +vt 0.651429 0.942857 +vt 0.651429 0.485714 +vt 0.651429 0.428571 +vt 0.651429 0.314286 +vt 0.651429 0.542857 +vt 0.731734 0.873222 +vt 0.742820 0.880758 +vt 0.750915 0.901142 +vt 0.750833 0.956630 +vt 0.742679 0.976865 +vt 0.731571 0.984197 +vt 0.712390 0.956277 +vt 0.709457 0.928506 +vt 0.712471 0.900789 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3046 0.7322 -0.6092 +vn -0.3046 -0.7322 -0.6092 +vn 0.3046 0.7322 0.6092 +vn 0.3046 -0.7322 0.6092 +vn 0.3046 0.7322 -0.6092 +vn 0.3046 -0.7322 -0.6092 +vn -0.3046 0.7322 0.6092 +vn -0.3046 -0.7322 0.6092 +vn 0.0000 0.9885 0.1513 +vn 0.4966 0.8602 -0.1160 +vn 0.0000 0.9932 -0.1160 +vn 0.4942 0.8560 0.1513 +vn 0.8602 0.4966 -0.1160 +vn 0.8560 0.4942 0.1513 +vn 0.9932 0.0000 -0.1160 +vn 0.9885 0.0000 0.1513 +vn 0.8602 -0.4966 -0.1160 +vn 0.8560 -0.4942 0.1513 +vn 0.4966 -0.8602 -0.1160 +vn 0.4942 -0.8560 0.1513 +vn 0.0000 -0.9932 -0.1160 +vn 0.0000 -0.9885 0.1513 +vn -0.4966 -0.8602 -0.1160 +vn -0.4942 -0.8560 0.1513 +vn -0.8602 -0.4966 -0.1160 +vn -0.8560 -0.4942 0.1513 +vn -0.9932 0.0000 -0.1160 +vn -0.9885 0.0000 0.1513 +vn -0.8602 0.4966 -0.1160 +vn 0.7509 -0.4335 0.4981 +vn -0.8560 0.4942 0.1513 +vn -0.4966 0.8602 -0.1160 +vn -0.4942 0.8560 0.1513 +vn 0.4964 0.8597 -0.1205 +vn 0.9927 0.0000 -0.1205 +vn 0.6557 0.3786 -0.6532 +vn 0.8597 0.4964 -0.1205 +vn -0.9927 0.0000 -0.1205 +vn -0.8597 -0.4964 -0.1205 +vn -0.4963 -0.8597 -0.1205 +vn 0.0000 -0.9927 -0.1205 +vn 0.4964 -0.8597 -0.1205 +vn 0.8597 -0.4964 -0.1205 +vn -0.4964 0.8597 -0.1205 +vn 0.0000 0.9927 -0.1205 +vn -0.8597 0.4964 -0.1205 +vn 0.7571 0.0000 -0.6532 +vn -0.3786 -0.6557 -0.6532 +vn -0.3786 0.6557 -0.6532 +vn -0.7571 0.0000 -0.6532 +vn 0.0000 -0.7571 -0.6532 +vn -0.6557 0.3786 -0.6532 +vn 0.0000 0.7571 -0.6532 +vn 0.6557 -0.3786 -0.6532 +vn 0.3786 0.6557 -0.6532 +vn -0.6557 -0.3786 -0.6532 +vn 0.3786 -0.6557 -0.6532 +vn 0.0000 -0.8671 0.4981 +vn 0.4335 -0.7509 0.4981 +vn 0.0000 0.8671 0.4981 +vn 0.4335 0.7509 0.4981 +vn 0.8671 0.0000 0.4981 +vn -0.4335 0.7509 0.4981 +vn 0.7509 0.4335 0.4981 +vn -0.7509 0.4335 0.4981 +vn -0.7509 -0.4335 0.4981 +vn -0.8671 0.0000 0.4981 +vn -0.4335 -0.7509 0.4981 +usemtl None +s off +f 2/1/1 3/2/1 1/3/1 +f 6/4/2 1/3/2 5/5/2 +f 7/6/3 1/3/3 3/7/3 +f 4/8/4 6/4/4 8/9/4 +f 10/10/5 11/11/5 9/12/5 +f 14/13/1 9/12/1 13/14/1 +f 15/15/3 9/12/3 11/16/3 +f 12/17/4 14/13/4 16/18/4 +f 18/19/6 19/20/6 17/21/6 +f 22/22/5 17/21/5 21/23/5 +f 23/24/3 17/21/3 19/25/3 +f 20/26/4 22/22/4 24/27/4 +f 26/28/2 27/29/2 25/30/2 +f 29/31/6 26/28/6 25/30/6 +f 31/32/3 25/30/3 27/33/3 +f 28/34/4 30/35/4 32/36/4 +f 34/37/7 35/38/7 33/39/7 +f 39/40/5 44/41/5 40/42/5 +f 40/42/8 37/43/8 39/40/8 +f 39/44/3 33/45/3 35/46/3 +f 40/47/4 34/48/4 38/49/4 +f 43/50/8 48/51/8 44/41/8 +f 35/46/3 43/50/3 39/44/3 +f 40/47/4 41/52/4 36/53/4 +f 36/54/6 42/55/6 35/38/6 +f 45/56/9 47/57/9 46/58/9 +f 42/55/3 47/57/3 43/50/3 +f 44/41/4 45/59/4 41/52/4 +f 41/60/7 46/58/7 42/55/7 +f 50/61/9 51/62/9 49/63/9 +f 55/64/6 60/65/6 56/66/6 +f 56/66/10 53/67/10 55/64/10 +f 55/68/3 49/69/3 51/70/3 +f 56/71/4 50/72/4 54/73/4 +f 59/74/10 64/75/10 60/65/10 +f 51/70/3 59/74/3 55/68/3 +f 56/71/4 57/76/4 52/77/4 +f 52/78/2 58/79/2 51/62/2 +f 61/80/8 63/81/8 62/82/8 +f 59/74/3 62/82/3 63/81/3 +f 60/65/4 61/83/4 57/76/4 +f 57/84/9 62/82/9 58/79/9 +f 66/85/8 67/86/8 65/87/8 +f 72/88/2 75/89/2 76/90/2 +f 71/91/7 70/92/7 69/93/7 +f 71/94/3 65/95/3 67/96/3 +f 68/97/4 70/98/4 72/99/4 +f 75/89/7 80/100/7 76/90/7 +f 67/96/3 75/89/3 71/94/3 +f 72/99/4 73/101/4 68/97/4 +f 68/102/1 74/103/1 67/86/1 +f 77/104/10 79/105/10 78/106/10 +f 74/103/3 79/105/3 75/89/3 +f 76/90/4 77/107/4 73/101/4 +f 74/103/8 77/108/8 78/106/8 +f 82/109/10 83/110/10 81/111/10 +f 87/112/1 92/113/1 88/114/1 +f 88/114/9 85/115/9 87/112/9 +f 87/116/3 81/117/3 83/118/3 +f 88/119/4 82/120/4 86/121/4 +f 91/122/9 96/123/9 92/113/9 +f 83/118/3 91/122/3 87/116/3 +f 88/119/4 89/124/4 84/125/4 +f 83/110/5 89/126/5 90/127/5 +f 93/128/7 95/129/7 94/130/7 +f 90/127/3 95/129/3 91/122/3 +f 92/113/4 93/131/4 89/124/4 +f 90/127/10 93/132/10 94/130/10 +f 106/133/2 100/134/2 102/135/2 +f 98/136/6 107/137/6 102/138/6 +f 106/139/1 97/140/1 100/141/1 +f 99/142/11 102/143/11 101/144/11 +f 99/142/12 100/145/12 97/146/12 +f 108/147/13 105/148/13 104/149/13 +f 108/147/14 103/150/14 106/151/14 +f 114/152/5 118/153/5 119/154/5 +f 110/155/6 119/156/6 117/157/6 +f 109/158/1 118/159/1 112/160/1 +f 114/161/15 111/162/15 113/163/15 +f 111/162/16 112/164/16 113/163/16 +f 117/165/17 120/166/17 116/167/17 +f 120/166/18 115/168/18 116/167/18 +f 122/169/5 123/170/5 121/171/5 +f 124/172/6 127/173/6 123/170/6 +f 128/174/2 125/175/2 127/176/2 +f 126/177/1 121/171/1 125/175/1 +f 124/172/4 126/178/4 128/179/4 +f 131/180/2 130/181/2 129/182/2 +f 135/183/6 132/184/6 131/180/6 +f 133/185/5 136/186/5 135/187/5 +f 129/182/1 134/188/1 133/185/1 +f 134/189/4 132/184/4 136/190/4 +f 2/1/1 4/191/1 3/2/1 +f 6/4/2 2/1/2 1/3/2 +f 7/6/3 5/5/3 1/3/3 +f 4/8/4 2/1/4 6/4/4 +f 10/10/5 12/192/5 11/11/5 +f 14/13/1 10/10/1 9/12/1 +f 15/15/3 13/14/3 9/12/3 +f 12/17/4 10/10/4 14/13/4 +f 18/19/6 20/193/6 19/20/6 +f 22/22/5 18/19/5 17/21/5 +f 23/24/3 21/23/3 17/21/3 +f 20/26/4 18/19/4 22/22/4 +f 26/28/2 28/194/2 27/29/2 +f 29/31/6 30/35/6 26/28/6 +f 31/32/3 29/31/3 25/30/3 +f 28/34/4 26/28/4 30/35/4 +f 34/37/7 36/54/7 35/38/7 +f 39/40/5 43/50/5 44/41/5 +f 40/42/8 38/195/8 37/43/8 +f 39/44/3 37/196/3 33/45/3 +f 40/47/4 36/53/4 34/48/4 +f 43/50/8 47/57/8 48/51/8 +f 35/46/3 42/55/3 43/50/3 +f 40/47/4 44/41/4 41/52/4 +f 36/54/6 41/60/6 42/55/6 +f 45/56/9 48/197/9 47/57/9 +f 42/55/3 46/58/3 47/57/3 +f 44/41/4 48/51/4 45/59/4 +f 41/60/7 45/198/7 46/58/7 +f 50/61/9 52/78/9 51/62/9 +f 55/64/6 59/74/6 60/65/6 +f 56/66/10 54/199/10 53/67/10 +f 55/68/3 53/200/3 49/69/3 +f 56/71/4 52/77/4 50/72/4 +f 59/74/10 63/81/10 64/75/10 +f 51/70/3 58/79/3 59/74/3 +f 56/71/4 60/65/4 57/76/4 +f 52/78/2 57/84/2 58/79/2 +f 61/80/8 64/201/8 63/81/8 +f 59/74/3 58/79/3 62/82/3 +f 60/65/4 64/75/4 61/83/4 +f 57/84/9 61/202/9 62/82/9 +f 66/85/8 68/102/8 67/86/8 +f 72/88/2 71/91/2 75/89/2 +f 71/91/7 72/88/7 70/92/7 +f 71/94/3 69/203/3 65/95/3 +f 68/97/4 66/204/4 70/98/4 +f 75/89/7 79/105/7 80/100/7 +f 67/96/3 74/103/3 75/89/3 +f 72/99/4 76/90/4 73/101/4 +f 68/102/1 73/205/1 74/103/1 +f 77/104/10 80/206/10 79/105/10 +f 74/103/3 78/106/3 79/105/3 +f 76/90/4 80/100/4 77/107/4 +f 74/103/8 73/205/8 77/108/8 +f 82/109/10 84/207/10 83/110/10 +f 87/112/1 91/122/1 92/113/1 +f 88/114/9 86/208/9 85/115/9 +f 87/116/3 85/209/3 81/117/3 +f 88/119/4 84/125/4 82/120/4 +f 91/122/9 95/129/9 96/123/9 +f 83/118/3 90/127/3 91/122/3 +f 88/119/4 92/113/4 89/124/4 +f 83/110/5 84/207/5 89/126/5 +f 93/128/7 96/210/7 95/129/7 +f 90/127/3 94/130/3 95/129/3 +f 92/113/4 96/123/4 93/131/4 +f 90/127/10 89/126/10 93/132/10 +f 100/134/2 101/211/2 102/135/2 +f 102/135/2 107/212/2 106/133/2 +f 107/212/2 108/213/2 106/133/2 +f 98/136/6 105/214/6 107/137/6 +f 106/139/1 103/215/1 97/140/1 +f 99/142/11 98/216/11 102/143/11 +f 99/142/12 101/144/12 100/145/12 +f 108/147/13 107/217/13 105/148/13 +f 108/147/14 104/149/14 103/150/14 +f 114/152/5 113/218/5 112/219/5 +f 112/219/5 118/153/5 114/152/5 +f 118/153/5 120/220/5 119/154/5 +f 110/155/6 114/221/6 119/156/6 +f 109/158/1 115/222/1 118/159/1 +f 114/161/15 110/223/15 111/162/15 +f 111/162/16 109/224/16 112/164/16 +f 117/165/17 119/225/17 120/166/17 +f 120/166/18 118/226/18 115/168/18 +f 122/169/5 124/172/5 123/170/5 +f 124/172/6 128/227/6 127/173/6 +f 128/174/2 126/177/2 125/175/2 +f 126/177/1 122/169/1 121/171/1 +f 124/172/4 122/169/4 126/178/4 +f 131/180/2 132/184/2 130/181/2 +f 135/183/6 136/228/6 132/184/6 +f 133/185/5 134/188/5 136/186/5 +f 129/182/1 130/181/1 134/188/1 +f 134/189/4 130/181/4 132/184/4 +s 1 +f 138/229/19 139/230/20 137/231/21 +f 140/232/22 141/233/23 139/230/20 +f 142/234/24 143/235/25 141/233/23 +f 144/236/26 145/237/27 143/238/25 +f 146/239/28 147/240/29 145/237/27 +f 148/241/30 149/242/31 147/240/29 +f 150/243/32 151/244/33 149/242/31 +f 152/245/34 153/246/35 151/244/33 +f 154/247/36 155/248/37 153/246/35 +f 156/249/38 157/250/39 155/248/37 +f 144/236/26 189/251/40 146/239/28 +f 158/252/41 159/253/42 157/250/39 +f 160/254/43 137/231/21 159/253/42 +f 141/233/23 162/255/44 139/230/20 +f 164/256/45 175/257/46 163/258/47 +f 157/250/39 170/259/48 155/248/37 +f 155/248/37 169/260/49 153/246/35 +f 153/246/35 168/261/50 151/244/33 +f 151/244/33 167/262/51 149/242/31 +f 149/242/31 166/263/52 147/240/29 +f 147/240/29 165/264/53 145/237/27 +f 145/237/27 164/265/45 143/238/25 +f 137/231/21 172/266/54 159/253/42 +f 139/230/20 161/267/55 137/231/21 +f 143/235/25 163/268/47 141/233/23 +f 159/253/42 171/269/56 157/250/39 +f 176/270/57 180/271/58 184/272/59 +f 171/273/56 182/274/60 170/275/48 +f 168/276/50 179/277/61 167/278/51 +f 165/279/53 176/280/57 164/281/45 +f 172/282/54 183/283/62 171/273/56 +f 162/284/44 173/285/63 161/286/55 +f 169/287/49 180/288/58 168/276/50 +f 166/289/52 177/290/64 165/279/53 +f 161/286/55 184/291/59 172/282/54 +f 163/258/47 174/292/65 162/284/44 +f 170/275/48 181/293/66 169/287/49 +f 167/278/51 178/294/67 166/289/52 +f 191/295/68 190/296/69 197/297/4 +f 160/254/43 186/298/70 138/229/19 +f 138/229/19 185/299/71 140/232/22 +f 142/234/24 188/300/72 144/301/26 +f 158/252/41 196/302/73 160/254/43 +f 140/232/22 187/303/74 142/234/24 +f 156/249/38 195/304/75 158/252/41 +f 156/249/38 193/305/76 194/306/77 +f 152/245/34 193/307/76 154/247/36 +f 150/243/32 192/308/78 152/245/34 +f 148/241/30 191/295/68 150/243/32 +f 146/239/28 190/309/69 148/241/30 +f 188/300/72 187/310/74 197/311/4 +f 195/304/75 194/312/77 197/313/4 +f 192/308/78 191/314/68 197/315/4 +f 189/251/40 188/316/72 197/317/4 +f 196/302/73 195/318/75 197/319/4 +f 185/299/71 186/320/70 197/321/4 +f 193/307/76 192/322/78 197/323/4 +f 190/309/69 189/324/40 197/325/4 +f 186/298/70 196/326/73 197/327/4 +f 187/303/74 185/328/71 197/329/4 +f 194/306/77 193/305/76 197/330/4 +f 138/229/19 140/232/22 139/230/20 +f 140/232/22 142/234/24 141/233/23 +f 142/234/24 144/301/26 143/235/25 +f 144/236/26 146/239/28 145/237/27 +f 146/239/28 148/241/30 147/240/29 +f 148/241/30 150/243/32 149/242/31 +f 150/243/32 152/245/34 151/244/33 +f 152/245/34 154/247/36 153/246/35 +f 154/247/36 156/249/38 155/248/37 +f 156/249/38 158/252/41 157/250/39 +f 144/236/26 188/316/72 189/251/40 +f 158/252/41 160/254/43 159/253/42 +f 160/254/43 138/229/19 137/231/21 +f 141/233/23 163/331/47 162/255/44 +f 164/256/45 176/332/57 175/257/46 +f 157/250/39 171/333/56 170/259/48 +f 155/248/37 170/334/48 169/260/49 +f 153/246/35 169/335/49 168/261/50 +f 151/244/33 168/336/50 167/262/51 +f 149/242/31 167/337/51 166/263/52 +f 147/240/29 166/338/52 165/264/53 +f 145/237/27 165/339/53 164/265/45 +f 137/231/21 161/340/55 172/266/54 +f 139/230/20 162/341/44 161/267/55 +f 143/235/25 164/342/45 163/268/47 +f 159/253/42 172/343/54 171/269/56 +f 184/272/59 173/344/63 176/270/57 +f 173/344/63 174/345/65 176/270/57 +f 174/345/65 175/346/46 176/270/57 +f 176/270/57 177/347/64 178/348/67 +f 178/348/67 179/349/61 176/270/57 +f 179/349/61 180/271/58 176/270/57 +f 180/271/58 181/350/66 182/351/60 +f 182/351/60 183/352/62 184/272/59 +f 180/271/58 182/351/60 184/272/59 +f 171/273/56 183/283/62 182/274/60 +f 168/276/50 180/288/58 179/277/61 +f 165/279/53 177/290/64 176/280/57 +f 172/282/54 184/291/59 183/283/62 +f 162/284/44 174/292/65 173/285/63 +f 169/287/49 181/293/66 180/288/58 +f 166/289/52 178/294/67 177/290/64 +f 161/286/55 173/285/63 184/291/59 +f 163/258/47 175/257/46 174/292/65 +f 170/275/48 182/274/60 181/293/66 +f 167/278/51 179/277/61 178/294/67 +f 160/254/43 196/326/73 186/298/70 +f 138/229/19 186/320/70 185/299/71 +f 142/234/24 187/310/74 188/300/72 +f 158/252/41 195/318/75 196/302/73 +f 140/232/22 185/328/71 187/303/74 +f 156/249/38 194/312/77 195/304/75 +f 156/249/38 154/247/36 193/305/76 +f 152/245/34 192/322/78 193/307/76 +f 150/243/32 191/314/68 192/308/78 +f 148/241/30 190/296/69 191/295/68 +f 146/239/28 189/324/40 190/309/69 diff --git a/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj b/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj new file mode 100644 index 000000000..7d9c18355 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj @@ -0,0 +1,799 @@ +# Blender v2.79 (sub 7) OBJ File: 'flat fuck.blend' +# www.blender.org +mtllib flat_fuck.mtl +o Cube.001_Cube.002 +v 0.218750 -0.031250 -3.812500 +v 0.218750 0.031250 -3.812500 +v 0.218750 -0.031250 -4.187500 +v 0.218750 0.031250 -4.187500 +v 0.406250 -0.031250 -4.000000 +v 0.343750 -0.031250 -3.812500 +v 0.343750 0.031250 -3.812500 +v 0.406250 0.031250 -4.000000 +v 0.343750 -0.031250 -4.187500 +v 0.406250 -0.031250 -4.125000 +v 0.406250 0.031250 -4.125000 +v 0.343750 0.031250 -4.187500 +v -0.218750 -0.031250 -3.812500 +v -0.218750 0.031250 -3.812500 +v -0.218750 -0.031250 -4.187500 +v -0.218750 0.031250 -4.187500 +v -0.406250 -0.031250 -4.000000 +v -0.343750 -0.031250 -3.812500 +v -0.343750 0.031250 -3.812500 +v -0.406250 0.031250 -4.000000 +v -0.343750 -0.031250 -4.187500 +v -0.406250 -0.031250 -4.125000 +v -0.406250 0.031250 -4.125000 +v -0.343750 0.031250 -4.187500 +v -0.031250 0.572454 -0.406250 +v -0.031250 0.697454 -0.406250 +v -0.031250 0.572454 -0.593750 +v -0.031250 0.697454 -0.593750 +v 0.031250 0.572454 -0.406250 +v 0.031250 0.697454 -0.406250 +v 0.031250 0.572454 -0.593750 +v 0.031250 0.697454 -0.593750 +v -0.031250 0.759954 -0.468750 +v 0.031250 0.759954 -0.468750 +v -0.511384 0.259164 -0.406250 +v -0.619638 0.321664 -0.406250 +v -0.511385 0.259164 -0.593750 +v -0.619638 0.321664 -0.593750 +v -0.480135 0.313290 -0.406250 +v -0.588388 0.375790 -0.406250 +v -0.480135 0.313290 -0.593750 +v -0.588388 0.375790 -0.593750 +v -0.673764 0.352914 -0.468750 +v -0.642514 0.407040 -0.468750 +v -0.480134 -0.313290 -0.406250 +v -0.588388 -0.375790 -0.406250 +v -0.480134 -0.313290 -0.593750 +v -0.588388 -0.375790 -0.593750 +v -0.511384 -0.259164 -0.406250 +v -0.619638 -0.321664 -0.406250 +v -0.511384 -0.259164 -0.593750 +v -0.619638 -0.321664 -0.593750 +v -0.642514 -0.407040 -0.468750 +v -0.673764 -0.352914 -0.468750 +v 0.031250 -0.572454 -0.406250 +v 0.031250 -0.697454 -0.406250 +v 0.031250 -0.572454 -0.593750 +v 0.031250 -0.697454 -0.593750 +v -0.031250 -0.572454 -0.406250 +v -0.031250 -0.697454 -0.406250 +v -0.031250 -0.572454 -0.593750 +v -0.031250 -0.697454 -0.593750 +v 0.031250 -0.759954 -0.468750 +v -0.031250 -0.759954 -0.468750 +v 0.511385 -0.259163 -0.406250 +v 0.619638 -0.321663 -0.406250 +v 0.511385 -0.259163 -0.593750 +v 0.619638 -0.321663 -0.593750 +v 0.480135 -0.313290 -0.406250 +v 0.588388 -0.375790 -0.406250 +v 0.480135 -0.313290 -0.593750 +v 0.588388 -0.375790 -0.593750 +v 0.673764 -0.352913 -0.468750 +v 0.642515 -0.407040 -0.468750 +v 0.480134 0.313290 -0.406250 +v 0.588388 0.375790 -0.406250 +v 0.480134 0.313290 -0.593750 +v 0.588388 0.375790 -0.593750 +v 0.511384 0.259164 -0.406250 +v 0.619638 0.321664 -0.406250 +v 0.511384 0.259164 -0.593750 +v 0.619638 0.321664 -0.593750 +v 0.642514 0.407040 -0.468750 +v 0.673764 0.352914 -0.468750 +v -0.176777 0.132583 -3.625000 +v -0.176777 0.132583 -4.375000 +v -0.132583 0.176777 -3.625000 +v -0.132583 0.176777 -4.375000 +v -0.574524 0.530330 -3.625000 +v -0.618719 0.574524 -3.687500 +v -0.618719 0.574524 -4.312500 +v -0.574524 0.530330 -4.375000 +v -0.574524 0.618718 -3.687500 +v -0.530330 0.574524 -3.625000 +v -0.530330 0.574524 -4.375000 +v -0.574524 0.618718 -4.312500 +v -0.132583 -0.176777 -3.625000 +v -0.132583 -0.176777 -4.375000 +v -0.176777 -0.132583 -3.625000 +v -0.176777 -0.132583 -4.375000 +v -0.530330 -0.574524 -3.625000 +v -0.574525 -0.618719 -3.687500 +v -0.574525 -0.618719 -4.312500 +v -0.530331 -0.574524 -4.375000 +v -0.618719 -0.574524 -3.687500 +v -0.574525 -0.530330 -3.625000 +v -0.574525 -0.530330 -4.375000 +v -0.618719 -0.574524 -4.312500 +v 0.176776 -0.132583 -3.624999 +v 0.176776 -0.132583 -4.374999 +v 0.132582 -0.176777 -3.624999 +v 0.132582 -0.176777 -4.374999 +v 0.574524 -0.530331 -3.624999 +v 0.618718 -0.574525 -3.687499 +v 0.618718 -0.574525 -4.312499 +v 0.574524 -0.530331 -4.374999 +v 0.574524 -0.618719 -3.687499 +v 0.530330 -0.574525 -3.624999 +v 0.530330 -0.574525 -4.374999 +v 0.574524 -0.618719 -4.312499 +v 0.132583 0.176776 -3.624999 +v 0.132583 0.176776 -4.374999 +v 0.176777 0.132582 -3.624999 +v 0.176777 0.132582 -4.374999 +v 0.530330 0.574524 -3.624999 +v 0.574524 0.618718 -3.687499 +v 0.574524 0.618718 -4.312499 +v 0.530330 0.574524 -4.374999 +v 0.618719 0.574524 -3.687499 +v 0.574524 0.530330 -3.624999 +v 0.574524 0.530330 -4.374999 +v 0.618719 0.574524 -4.312499 +v 0.000000 0.603704 -1.500000 +v 0.000000 0.603704 1.500000 +v 0.301852 0.522823 -1.500000 +v 0.301852 0.522823 1.500000 +v 0.522823 0.301852 -1.500000 +v 0.522823 0.301852 1.500000 +v 0.603704 0.000000 -1.500000 +v 0.603704 -0.000000 1.500000 +v 0.522823 -0.301852 -1.500000 +v 0.522823 -0.301852 1.500000 +v 0.301852 -0.522823 -1.500000 +v 0.301852 -0.522823 1.500000 +v 0.000000 -0.603704 -1.500000 +v 0.000000 -0.603704 1.500000 +v -0.301852 -0.522823 -1.500000 +v -0.301852 -0.522823 1.500000 +v -0.522823 -0.301852 -1.500000 +v -0.522823 -0.301852 1.500000 +v -0.603704 -0.000000 -1.500000 +v -0.603704 -0.000000 1.500000 +v -0.522823 0.301852 -1.500000 +v -0.522823 0.301852 1.500000 +v -0.301852 0.522823 -1.500000 +v -0.301852 0.522823 1.500000 +v -0.000000 0.241482 -4.500000 +v 0.120741 0.209129 -4.500000 +v 0.209129 0.120741 -4.500000 +v 0.241481 0.000000 -4.500000 +v 0.209129 -0.120741 -4.500000 +v 0.120741 -0.209129 -4.500000 +v 0.000000 -0.241481 -4.500000 +v -0.120741 -0.209129 -4.500000 +v -0.209129 -0.120741 -4.500000 +v -0.241481 0.000000 -4.500000 +v -0.209129 0.120741 -4.500000 +v -0.120741 0.209129 -4.500000 +vt 0.731034 0.370968 +vt 0.724138 0.338710 +vt 0.724138 0.370968 +vt 0.731034 0.338710 +vt 0.751724 0.387097 +vt 0.765517 0.387097 +vt 0.751724 0.403226 +vt 0.765517 0.403226 +vt 0.772414 0.338710 +vt 0.779310 0.370968 +vt 0.779310 0.338710 +vt 0.779310 0.387097 +vt 0.772414 0.370968 +vt 0.772414 0.387097 +vt 0.731034 0.419355 +vt 0.703448 0.387097 +vt 0.731034 0.435484 +vt 0.724138 0.467742 +vt 0.731034 0.467742 +vt 0.682759 0.435484 +vt 0.682759 0.467742 +vt 0.703448 0.483871 +vt 0.703448 0.500000 +vt 0.689655 0.483871 +vt 0.689655 0.500000 +vt 0.675862 0.467742 +vt 0.675862 0.435484 +vt 0.675862 0.483871 +vt 0.682759 0.483871 +vt 0.724138 0.516129 +vt 0.751724 0.483871 +vt 0.765517 0.483871 +vt 0.772414 0.467742 +vt 0.724138 0.209677 +vt 0.703448 0.177419 +vt 0.724138 0.177419 +vt 0.703448 0.209677 +vt 0.696552 0.177419 +vt 0.696552 0.209677 +vt 0.675862 0.177419 +vt 0.731034 0.209677 +vt 0.731034 0.177419 +vt 0.717241 0.225806 +vt 0.724138 0.225806 +vt 0.696552 0.241935 +vt 0.675862 0.209677 +vt 0.682759 0.225806 +vt 0.786207 0.290323 +vt 0.765517 0.258065 +vt 0.786207 0.258065 +vt 0.758621 0.290323 +vt 0.758621 0.258065 +vt 0.737931 0.258065 +vt 0.793103 0.258065 +vt 0.765517 0.290323 +vt 0.779310 0.306452 +vt 0.793103 0.290323 +vt 0.786207 0.306452 +vt 0.758621 0.322581 +vt 0.737931 0.290323 +vt 0.744828 0.306452 +vt 0.786207 0.209677 +vt 0.765517 0.177419 +vt 0.786207 0.177419 +vt 0.758621 0.209677 +vt 0.758621 0.177419 +vt 0.737931 0.209677 +vt 0.737931 0.177419 +vt 0.793103 0.209677 +vt 0.793103 0.177419 +vt 0.765517 0.209677 +vt 0.779310 0.225806 +vt 0.786207 0.225806 +vt 0.765517 0.241935 +vt 0.758621 0.241935 +vt 0.744828 0.225806 +vt 0.724138 0.129032 +vt 0.703448 0.096774 +vt 0.724138 0.096774 +vt 0.703448 0.129032 +vt 0.696552 0.096774 +vt 0.675862 0.129032 +vt 0.675862 0.096774 +vt 0.731034 0.129032 +vt 0.731034 0.096774 +vt 0.717241 0.145161 +vt 0.731034 0.145161 +vt 0.724138 0.145161 +vt 0.696552 0.161290 +vt 0.696552 0.129032 +vt 0.682759 0.145161 +vt 0.786207 0.129032 +vt 0.765517 0.096774 +vt 0.786207 0.096774 +vt 0.765517 0.129032 +vt 0.758621 0.096774 +vt 0.758621 0.129032 +vt 0.737931 0.096774 +vt 0.793103 0.129032 +vt 0.793103 0.096774 +vt 0.779310 0.145161 +vt 0.793103 0.145161 +vt 0.786207 0.145161 +vt 0.758621 0.161290 +vt 0.737931 0.129032 +vt 0.744828 0.145161 +vt 0.724138 0.258065 +vt 0.703448 0.290323 +vt 0.703448 0.258065 +vt 0.696552 0.258065 +vt 0.675862 0.290323 +vt 0.675862 0.258065 +vt 0.731034 0.290323 +vt 0.731034 0.258065 +vt 0.724138 0.290323 +vt 0.717241 0.306452 +vt 0.731034 0.306452 +vt 0.724138 0.306452 +vt 0.696552 0.322581 +vt 0.696552 0.290323 +vt 0.682759 0.306452 +vt 0.917241 0.774194 +vt 0.986207 0.790323 +vt 0.917241 0.790323 +vt 0.827586 0.774194 +vt 0.820690 0.758065 +vt 0.820690 0.612903 +vt 0.910345 0.758065 +vt 0.910345 0.612903 +vt 0.903448 0.612903 +vt 0.910345 0.774194 +vt 0.903448 0.758065 +vt 0.813793 0.774194 +vt 0.820690 0.774194 +vt 0.813793 0.758065 +vt 0.813793 0.612903 +vt 0.917241 0.580645 +vt 0.986207 0.596774 +vt 0.917241 0.596774 +vt 0.827586 0.580645 +vt 0.820690 0.564516 +vt 0.820690 0.419355 +vt 0.910345 0.564516 +vt 0.910345 0.419355 +vt 0.903448 0.419355 +vt 0.910345 0.580645 +vt 0.903448 0.564516 +vt 0.813793 0.580645 +vt 0.820690 0.580645 +vt 0.813793 0.419355 +vt 0.917241 0.387097 +vt 0.986207 0.403226 +vt 0.917241 0.403226 +vt 0.827586 0.387097 +vt 0.820690 0.370968 +vt 0.820690 0.225806 +vt 0.910345 0.370968 +vt 0.910345 0.225806 +vt 0.903448 0.370968 +vt 0.903448 0.225806 +vt 0.903448 0.387097 +vt 0.910345 0.387097 +vt 0.820690 0.387097 +vt 0.813793 0.370968 +vt 0.813793 0.225806 +vt 0.917241 0.983871 +vt 0.986207 0.967742 +vt 0.986207 0.983871 +vt 0.827586 0.967742 +vt 0.820690 0.951613 +vt 0.820690 0.806452 +vt 0.917241 0.967742 +vt 0.910345 0.951613 +vt 0.910345 0.806452 +vt 0.903448 0.951613 +vt 0.903448 0.806452 +vt 0.903448 0.967742 +vt 0.910345 0.967742 +vt 0.820690 0.967742 +vt 0.813793 0.951613 +vt 0.813793 0.806452 +vt 0.687135 0.905981 +vt 0.742256 0.683307 +vt 0.797152 0.906284 +vt 0.729378 0.596377 +vt 0.716764 0.648801 +vt 0.677939 0.597702 +vt 0.724138 0.419355 +vt 0.682759 0.338710 +vt 0.682759 0.370968 +vt 0.689655 0.387097 +vt 0.724138 0.435484 +vt 0.731034 0.516129 +vt 0.772414 0.435484 +vt 0.731034 0.225806 +vt 0.703448 0.241935 +vt 0.793103 0.306452 +vt 0.765517 0.322581 +vt 0.793103 0.225806 +vt 0.703448 0.161290 +vt 0.765517 0.161290 +vt 0.703448 0.322581 +vt 0.986207 0.774194 +vt 0.896552 0.774194 +vt 0.993103 0.612903 +vt 0.993103 0.758065 +vt 0.903448 0.774194 +vt 0.986207 0.580645 +vt 0.896552 0.580645 +vt 0.993103 0.419355 +vt 0.993103 0.564516 +vt 0.903448 0.580645 +vt 0.813793 0.564516 +vt 0.986207 0.387097 +vt 0.896552 0.387097 +vt 0.993103 0.225806 +vt 0.993103 0.370968 +vt 0.813793 0.387097 +vt 0.896552 0.967742 +vt 0.993103 0.806452 +vt 0.993103 0.951613 +vt 0.813793 0.967742 +vt 0.773875 0.960593 +vt 0.742106 0.980407 +vt 0.710357 0.960418 +vt 0.678663 0.831683 +vt 0.687210 0.757431 +vt 0.710486 0.703122 +vt 0.774005 0.703296 +vt 0.797226 0.757733 +vt 0.805699 0.832032 +vt 0.703942 0.657191 +vt 0.691044 0.649463 +vt 0.681527 0.627689 +vt 0.681243 0.567538 +vt 0.690554 0.545279 +vt 0.703375 0.536889 +vt 0.716273 0.544617 +vt 0.725791 0.566391 +vt 0.726074 0.626541 +vt 0.006897 0.500000 +vt 0.337931 0.419355 +vt 0.337931 0.500000 +vt 0.006897 0.338710 +vt 0.337931 0.338710 +vt 0.337931 0.258065 +vt 0.006897 0.258065 +vt 0.337931 0.177419 +vt 0.006897 0.177419 +vt 0.337931 0.096774 +vt 0.006897 0.096774 +vt 0.337931 0.016129 +vt 0.006897 0.983871 +vt 0.337931 0.903226 +vt 0.337931 0.983871 +vt 0.006897 0.903226 +vt 0.337931 0.822581 +vt 0.006897 0.822581 +vt 0.337931 0.741935 +vt 0.006897 0.741935 +vt 0.337931 0.661290 +vt 0.006897 0.661290 +vt 0.337931 0.580645 +vt 0.006897 0.580645 +vt 0.668966 0.967742 +vt 0.668966 0.048387 +vt 0.668966 0.080645 +vt 0.668966 0.161290 +vt 0.668966 0.241935 +vt 0.668966 0.564516 +vt 0.668966 0.451613 +vt 0.668966 0.483871 +vt 0.668966 0.322581 +vt 0.668966 0.612903 +vt 0.668966 0.645161 +vt 0.668966 0.403226 +vt 0.668966 0.693548 +vt 0.668966 0.725806 +vt 0.668966 0.806452 +vt 0.668966 0.887097 +vt 0.006897 0.419355 +vt 0.006897 0.016129 +vt 0.668966 0.935484 +vt 0.668966 0.129032 +vt 0.668966 0.209677 +vt 0.668966 0.532258 +vt 0.668966 0.290323 +vt 0.668966 0.370968 +vt 0.668966 0.774194 +vt 0.668966 0.854839 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.9487 0.0000 0.3162 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.9487 0.0000 0.3162 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8944 -0.4472 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.6124 0.3536 0.7071 +vn -0.7746 0.4472 -0.4472 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.6124 -0.3536 0.7071 +vn -0.7746 -0.4472 -0.4472 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8944 -0.4472 +vn 0.6124 -0.3536 0.7071 +vn 0.7746 -0.4472 -0.4472 +vn 0.6124 0.3536 0.7071 +vn 0.7746 0.4472 -0.4472 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 0.5000 -0.7071 +vn -0.5000 0.5000 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.5000 -0.5000 -0.7071 +vn -0.5000 -0.5000 0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.0000 0.7571 0.6532 +vn 0.4991 0.8645 -0.0595 +vn 0.0000 0.9982 -0.0595 +vn 0.6557 0.3786 0.6532 +vn 0.8645 0.4991 -0.0595 +vn 0.9982 0.0000 -0.0595 +vn 0.7571 0.0000 0.6532 +vn 0.8645 -0.4991 -0.0595 +vn 0.6557 -0.3786 0.6532 +vn 0.4991 -0.8645 -0.0595 +vn 0.3786 -0.6557 0.6532 +vn 0.0000 -0.9982 -0.0595 +vn 0.0000 -0.7571 0.6532 +vn -0.4991 -0.8645 -0.0595 +vn -0.3786 -0.6557 0.6532 +vn -0.8645 -0.4991 -0.0595 +vn -0.6557 -0.3786 0.6532 +vn -0.9982 0.0000 -0.0595 +vn -0.7571 0.0000 0.6532 +vn -0.8645 0.4991 -0.0595 +vn -0.6557 0.3786 0.6532 +vn -0.4991 0.8645 -0.0595 +vn -0.3786 0.6557 0.6532 +vn 0.0000 -0.7169 -0.6972 +vn 0.3584 -0.6208 -0.6972 +vn 0.6208 -0.3584 -0.6972 +vn 0.7169 0.0000 -0.6972 +vn -0.3584 0.6208 -0.6972 +vn 0.3584 0.6208 -0.6972 +vn 0.0000 0.7169 -0.6972 +vn 0.6208 0.3584 -0.6972 +vn -0.6208 0.3584 -0.6972 +vn -0.7169 0.0000 -0.6972 +vn -0.6208 -0.3584 -0.6972 +vn -0.3584 -0.6208 -0.6972 +vn 0.3786 0.6557 0.6532 +usemtl None +s off +f 7/1/1 1/2/1 6/3/1 +f 2/4/2 7/1/2 8/5/2 +f 11/6/3 5/7/3 10/8/3 +f 4/9/4 9/10/4 3/11/4 +f 10/12/5 12/13/5 11/14/5 +f 6/3/6 8/15/6 7/1/6 +f 5/16/7 6/3/7 1/2/7 +f 13/17/1 19/18/1 18/19/1 +f 16/20/2 24/21/2 20/22/2 +f 17/23/8 23/24/8 22/25/8 +f 21/26/4 16/20/4 15/27/4 +f 24/21/9 22/28/9 23/29/9 +f 20/30/10 18/19/10 19/18/10 +f 17/31/7 22/32/7 21/33/7 +f 26/34/8 27/35/8 25/36/8 +f 28/37/4 31/38/4 27/35/4 +f 32/39/3 29/40/3 31/38/3 +f 30/41/1 25/36/1 29/42/1 +f 28/37/8 26/34/8 33/43/8 +f 30/41/11 33/44/11 26/34/11 +f 28/37/12 34/45/12 32/39/12 +f 30/46/3 32/39/3 34/47/3 +f 36/48/13 37/49/13 35/50/13 +f 37/49/4 42/51/4 41/52/4 +f 42/51/14 39/53/14 41/52/14 +f 39/54/1 36/48/1 35/50/1 +f 38/55/13 36/48/13 43/56/13 +f 40/57/15 43/58/15 36/48/15 +f 38/55/16 44/59/16 42/51/16 +f 40/60/14 42/51/14 44/61/14 +f 46/62/17 47/63/17 45/64/17 +f 47/63/4 52/65/4 51/66/4 +f 51/66/18 50/67/18 49/68/18 +f 50/69/1 45/64/1 49/70/1 +f 48/71/17 46/62/17 53/72/17 +f 50/69/19 53/73/19 46/62/19 +f 52/65/20 53/74/20 54/75/20 +f 50/67/18 52/65/18 54/76/18 +f 56/77/3 57/78/3 55/79/3 +f 58/80/4 61/81/4 57/78/4 +f 61/81/8 60/82/8 59/83/8 +f 60/84/1 55/79/1 59/85/1 +f 58/80/3 56/77/3 63/86/3 +f 56/77/21 64/87/21 63/88/21 +f 58/80/22 64/89/22 62/90/22 +f 60/82/8 62/90/8 64/91/8 +f 66/92/14 67/93/14 65/94/14 +f 68/95/4 71/96/4 67/93/4 +f 72/97/13 69/98/13 71/96/13 +f 70/99/1 65/94/1 69/100/1 +f 68/95/14 66/92/14 73/101/14 +f 66/92/23 74/102/23 73/103/23 +f 68/95/24 74/104/24 72/97/24 +f 70/105/13 72/97/13 74/106/13 +f 75/107/18 78/108/18 77/109/18 +f 78/108/4 81/110/4 77/109/4 +f 81/110/17 80/111/17 79/112/17 +f 80/113/1 75/107/1 79/114/1 +f 78/108/18 76/115/18 83/116/18 +f 76/115/25 84/117/25 83/118/25 +f 78/108/26 84/119/26 82/120/26 +f 80/111/17 82/120/17 84/121/17 +f 91/122/27 93/123/27 96/124/27 +f 93/125/28 94/126/28 87/127/28 +f 91/122/29 92/128/29 86/129/29 +f 92/128/4 88/130/4 86/129/4 +f 91/131/30 95/132/30 92/128/30 +f 90/133/31 94/126/31 93/134/31 +f 87/127/1 89/135/1 85/136/1 +f 103/137/29 105/138/29 108/139/29 +f 105/140/27 106/141/27 99/142/27 +f 103/137/32 104/143/32 98/144/32 +f 104/143/4 100/145/4 98/144/4 +f 103/146/33 107/147/33 104/143/33 +f 102/148/34 106/141/34 105/149/34 +f 106/141/1 97/150/1 99/142/1 +f 115/151/32 117/152/32 120/153/32 +f 117/154/29 118/155/29 111/156/29 +f 115/151/28 116/157/28 110/158/28 +f 110/158/4 119/159/4 112/160/4 +f 120/161/35 116/157/35 115/162/35 +f 117/163/36 113/164/36 118/155/36 +f 111/156/1 113/164/1 109/165/1 +f 132/166/28 126/167/28 129/168/28 +f 129/169/32 130/170/32 123/171/32 +f 127/172/27 128/173/27 122/174/27 +f 122/174/4 131/175/4 124/176/4 +f 132/177/37 128/173/37 127/178/37 +f 129/179/38 125/180/38 130/170/38 +f 130/170/1 121/181/1 123/171/1 +f 154/182/1 146/183/1 138/184/1 +f 166/185/4 168/186/4 160/187/4 +f 7/1/1 2/4/1 1/2/1 +f 8/5/2 11/6/2 12/13/2 +f 12/13/2 4/9/2 8/5/2 +f 4/9/2 2/4/2 8/5/2 +f 11/6/3 8/5/3 5/7/3 +f 4/9/4 12/13/4 9/10/4 +f 10/12/5 9/10/5 12/13/5 +f 6/3/6 5/188/6 8/15/6 +f 1/2/7 3/189/7 5/16/7 +f 3/189/7 9/190/7 5/16/7 +f 9/190/7 10/191/7 5/16/7 +f 13/17/1 14/192/1 19/18/1 +f 24/21/2 23/24/2 20/22/2 +f 20/22/2 19/18/2 14/192/2 +f 14/192/2 16/20/2 20/22/2 +f 17/23/8 20/22/8 23/24/8 +f 21/26/4 24/21/4 16/20/4 +f 24/21/9 21/26/9 22/28/9 +f 20/30/10 17/193/10 18/19/10 +f 21/33/7 15/194/7 17/31/7 +f 15/194/7 13/17/7 17/31/7 +f 13/17/7 18/19/7 17/31/7 +f 26/34/8 28/37/8 27/35/8 +f 28/37/4 32/39/4 31/38/4 +f 32/39/3 30/46/3 29/40/3 +f 30/41/1 26/34/1 25/36/1 +f 30/41/11 34/195/11 33/44/11 +f 28/37/12 33/196/12 34/45/12 +f 36/48/13 38/55/13 37/49/13 +f 37/49/4 38/55/4 42/51/4 +f 42/51/14 40/60/14 39/53/14 +f 39/54/1 40/57/1 36/48/1 +f 40/57/15 44/197/15 43/58/15 +f 38/55/16 43/198/16 44/59/16 +f 46/62/17 48/71/17 47/63/17 +f 47/63/4 48/71/4 52/65/4 +f 51/66/18 52/65/18 50/67/18 +f 50/69/1 46/62/1 45/64/1 +f 50/69/19 54/199/19 53/73/19 +f 52/65/20 48/71/20 53/74/20 +f 56/77/3 58/80/3 57/78/3 +f 58/80/4 62/90/4 61/81/4 +f 61/81/8 62/90/8 60/82/8 +f 60/84/1 56/77/1 55/79/1 +f 56/77/21 60/84/21 64/87/21 +f 58/80/22 63/200/22 64/89/22 +f 66/92/14 68/95/14 67/93/14 +f 68/95/4 72/97/4 71/96/4 +f 72/97/13 70/105/13 69/98/13 +f 70/99/1 66/92/1 65/94/1 +f 66/92/23 70/99/23 74/102/23 +f 68/95/24 73/201/24 74/104/24 +f 75/107/18 76/115/18 78/108/18 +f 78/108/4 82/120/4 81/110/4 +f 81/110/17 82/120/17 80/111/17 +f 80/113/1 76/115/1 75/107/1 +f 76/115/25 80/113/25 84/117/25 +f 78/108/26 83/202/26 84/119/26 +f 91/122/27 90/203/27 93/123/27 +f 87/127/28 88/130/28 96/204/28 +f 88/130/28 95/132/28 96/204/28 +f 96/204/28 93/125/28 87/127/28 +f 86/129/29 85/205/29 90/203/29 +f 85/205/29 89/206/29 90/203/29 +f 90/203/29 91/122/29 86/129/29 +f 92/128/4 95/132/4 88/130/4 +f 91/131/30 96/207/30 95/132/30 +f 90/133/31 89/135/31 94/126/31 +f 87/127/1 94/126/1 89/135/1 +f 103/137/29 102/208/29 105/138/29 +f 99/142/27 100/145/27 108/209/27 +f 100/145/27 107/147/27 108/209/27 +f 108/209/27 105/140/27 99/142/27 +f 98/144/32 97/210/32 102/208/32 +f 97/210/32 101/211/32 102/208/32 +f 102/208/32 103/137/32 98/144/32 +f 104/143/4 107/147/4 100/145/4 +f 103/146/33 108/212/33 107/147/33 +f 102/148/34 101/213/34 106/141/34 +f 106/141/1 101/213/1 97/150/1 +f 115/151/32 114/214/32 117/152/32 +f 111/156/29 112/160/29 120/215/29 +f 112/160/29 119/159/29 120/215/29 +f 120/215/29 117/154/29 111/156/29 +f 110/158/28 109/216/28 114/214/28 +f 109/216/28 113/217/28 114/214/28 +f 114/214/28 115/151/28 110/158/28 +f 110/158/4 116/157/4 119/159/4 +f 120/161/35 119/159/35 116/157/35 +f 117/163/36 114/218/36 113/164/36 +f 111/156/1 118/155/1 113/164/1 +f 132/166/28 127/172/28 126/167/28 +f 123/171/32 124/176/32 132/219/32 +f 124/176/32 131/175/32 132/219/32 +f 132/219/32 129/169/32 123/171/32 +f 122/174/27 121/220/27 126/167/27 +f 121/220/27 125/221/27 126/167/27 +f 126/167/27 127/172/27 122/174/27 +f 122/174/4 128/173/4 131/175/4 +f 132/177/37 131/175/37 128/173/37 +f 129/179/38 126/222/38 125/180/38 +f 130/170/1 125/180/1 121/181/1 +f 138/184/1 136/223/1 134/224/1 +f 134/224/1 156/225/1 154/182/1 +f 154/182/1 152/226/1 146/183/1 +f 152/226/1 150/227/1 146/183/1 +f 150/227/1 148/228/1 146/183/1 +f 146/183/1 144/229/1 142/230/1 +f 142/230/1 140/231/1 138/184/1 +f 138/184/1 134/224/1 154/182/1 +f 146/183/1 142/230/1 138/184/1 +f 168/186/4 157/232/4 158/233/4 +f 158/233/4 159/234/4 160/187/4 +f 160/187/4 161/235/4 162/236/4 +f 162/236/4 163/237/4 160/187/4 +f 163/237/4 164/238/4 160/187/4 +f 164/238/4 165/239/4 166/185/4 +f 166/185/4 167/240/4 168/186/4 +f 168/186/4 158/233/4 160/187/4 +f 164/238/4 166/185/4 160/187/4 +s 1 +f 134/241/39 135/242/40 133/243/41 +f 135/242/40 138/244/42 137/245/43 +f 138/244/42 139/246/44 137/245/43 +f 140/247/45 141/248/46 139/246/44 +f 142/249/47 143/250/48 141/248/46 +f 144/251/49 145/252/50 143/250/48 +f 146/253/51 147/254/52 145/255/50 +f 148/256/53 149/257/54 147/254/52 +f 150/258/55 151/259/56 149/257/54 +f 152/260/57 153/261/58 151/259/56 +f 154/262/59 155/263/60 153/261/58 +f 156/264/61 133/243/41 155/263/60 +f 147/254/52 163/265/62 145/255/50 +f 143/250/48 163/266/62 162/267/63 +f 143/250/48 161/268/64 141/248/46 +f 141/248/46 160/269/65 139/246/44 +f 133/243/41 168/270/66 155/263/60 +f 133/243/41 158/271/67 157/272/68 +f 139/246/44 159/273/69 137/245/43 +f 153/261/58 168/274/66 167/275/70 +f 137/245/43 158/276/67 135/242/40 +f 151/259/56 167/277/70 166/278/71 +f 151/259/56 165/279/72 149/257/54 +f 149/257/54 164/280/73 147/254/52 +f 134/241/39 136/281/74 135/242/40 +f 135/242/40 136/281/74 138/244/42 +f 138/244/42 140/247/45 139/246/44 +f 140/247/45 142/249/47 141/248/46 +f 142/249/47 144/251/49 143/250/48 +f 144/251/49 146/282/51 145/252/50 +f 146/253/51 148/256/53 147/254/52 +f 148/256/53 150/258/55 149/257/54 +f 150/258/55 152/260/57 151/259/56 +f 152/260/57 154/262/59 153/261/58 +f 154/262/59 156/264/61 155/263/60 +f 156/264/61 134/241/39 133/243/41 +f 147/254/52 164/283/73 163/265/62 +f 143/250/48 145/252/50 163/266/62 +f 143/250/48 162/284/63 161/268/64 +f 141/248/46 161/285/64 160/269/65 +f 133/243/41 157/286/68 168/270/66 +f 133/243/41 135/242/40 158/271/67 +f 139/246/44 160/287/65 159/273/69 +f 153/261/58 155/263/60 168/274/66 +f 137/245/43 159/288/69 158/276/67 +f 151/259/56 153/261/58 167/277/70 +f 151/259/56 166/289/71 165/279/72 +f 149/257/54 165/290/72 164/280/73 diff --git a/src/main/resources/assets/hbm/models/bombs/dud_salted.obj b/src/main/resources/assets/hbm/models/bombs/dud_salted.obj new file mode 100644 index 000000000..de9bcb0f1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_salted.obj @@ -0,0 +1,1411 @@ +# Blender v2.79 (sub 7) OBJ File: 'salted boy.blend' +# www.blender.org +mtllib salted boy.mtl +o Cylinder.002 +v -0.000000 -0.724444 -2.500000 +v -0.000000 -0.724445 1.750000 +v -0.362223 -0.627387 -2.500000 +v -0.362223 -0.627388 1.750000 +v -0.627388 -0.362221 -2.500000 +v -0.627388 -0.362222 1.750000 +v -0.724445 0.000001 -2.500000 +v -0.724445 0.000000 1.750000 +v -0.627388 0.362224 -2.500000 +v -0.627388 0.362223 1.750000 +v -0.362222 0.627389 -2.500000 +v -0.362222 0.627388 1.750000 +v -0.000000 0.724446 -2.500000 +v -0.000000 0.724445 1.750000 +v 0.362222 0.627389 -2.500000 +v 0.362222 0.627388 1.750000 +v 0.627388 0.362224 -2.500000 +v 0.627388 0.362223 1.750000 +v 0.724445 0.000001 -2.500000 +v 0.724445 0.000000 1.750000 +v 0.627388 -0.362221 -2.500000 +v 0.627388 -0.362222 1.750000 +v 0.362223 -0.627387 -2.500000 +v 0.362223 -0.627387 1.750000 +v -0.241482 -0.418258 2.000000 +v -0.000000 -0.482963 2.000000 +v -0.418258 -0.241482 2.000000 +v -0.482963 0.000000 2.000000 +v -0.418258 0.241482 2.000000 +v -0.241482 0.418259 2.000000 +v -0.000000 0.482963 2.000000 +v 0.241482 0.418259 2.000000 +v 0.418258 0.241482 2.000000 +v 0.482963 0.000000 2.000000 +v 0.418259 -0.241481 2.000000 +v 0.241482 -0.418258 2.000000 +v 0.574524 -0.530329 -2.624999 +v 0.839690 -0.795494 -2.624999 +v 0.640816 -0.464038 -3.374999 +v 0.905981 -0.729203 -3.374999 +v 0.530330 -0.574524 -2.624999 +v 0.795496 -0.839688 -2.624999 +v 0.464039 -0.640815 -3.374999 +v 0.729204 -0.905980 -3.374999 +v 0.662913 -0.441941 -2.687499 +v 0.751301 -0.530329 -2.687499 +v 0.662913 -0.441941 -2.749999 +v 0.751301 -0.530329 -2.749999 +v 0.441942 -0.662912 -2.687499 +v 0.530330 -0.751300 -2.687499 +v 0.441942 -0.662912 -2.749999 +v 0.530330 -0.751300 -2.749999 +v 0.662913 -0.441941 -2.812499 +v 0.751301 -0.530329 -2.812499 +v 0.662913 -0.441941 -2.874999 +v 0.751301 -0.530329 -2.874999 +v 0.441942 -0.662912 -2.812499 +v 0.530330 -0.751300 -2.812499 +v 0.441942 -0.662912 -2.874999 +v 0.530330 -0.751300 -2.874999 +v -0.530330 -0.574523 -2.624998 +v -0.795495 -0.839689 -2.624998 +v -0.464039 -0.640814 -3.374998 +v -0.729204 -0.905980 -3.374999 +v -0.574525 -0.530329 -2.624998 +v -0.839690 -0.795494 -2.624998 +v -0.640816 -0.464038 -3.374998 +v -0.905981 -0.729203 -3.374998 +v -0.441942 -0.662912 -2.687498 +v -0.530330 -0.751300 -2.687498 +v -0.441942 -0.662912 -2.749998 +v -0.530330 -0.751300 -2.749998 +v -0.662913 -0.441941 -2.687498 +v -0.751301 -0.530329 -2.687498 +v -0.662913 -0.441941 -2.749998 +v -0.751301 -0.530329 -2.749998 +v -0.441942 -0.662912 -2.812498 +v -0.530330 -0.751300 -2.812498 +v -0.441942 -0.662912 -2.874998 +v -0.530330 -0.751300 -2.874998 +v -0.662913 -0.441941 -2.812498 +v -0.751301 -0.530329 -2.812498 +v -0.662913 -0.441941 -2.874998 +v -0.751301 -0.530329 -2.874998 +v -0.574524 0.530331 -2.624998 +v -0.839690 0.795496 -2.624998 +v -0.640816 0.464040 -3.374998 +v -0.905981 0.729206 -3.374998 +v -0.530330 0.574526 -2.624998 +v -0.795495 0.839691 -2.624998 +v -0.464039 0.640817 -3.374998 +v -0.729204 0.905982 -3.374997 +v -0.662913 0.441943 -2.687498 +v -0.751301 0.530331 -2.687498 +v -0.662913 0.441943 -2.749998 +v -0.751301 0.530331 -2.749998 +v -0.441942 0.662914 -2.687498 +v -0.530330 0.751302 -2.687498 +v -0.441942 0.662914 -2.749998 +v -0.530330 0.751302 -2.749998 +v -0.662913 0.441943 -2.812498 +v -0.751301 0.530331 -2.812498 +v -0.662913 0.441943 -2.874998 +v -0.751301 0.530332 -2.874998 +v -0.441942 0.662914 -2.812498 +v -0.530330 0.751302 -2.812498 +v -0.441942 0.662914 -2.874998 +v -0.530330 0.751302 -2.874998 +v 0.530330 0.574525 -2.624997 +v 0.795496 0.839691 -2.624997 +v 0.464039 0.640817 -3.374997 +v 0.729204 0.905982 -3.374997 +v 0.574525 0.530331 -2.624997 +v 0.839690 0.795496 -2.624997 +v 0.640816 0.464040 -3.374997 +v 0.905981 0.729205 -3.374997 +v 0.441942 0.662914 -2.687497 +v 0.530330 0.751302 -2.687497 +v 0.441942 0.662914 -2.749997 +v 0.530330 0.751302 -2.749997 +v 0.662913 0.441943 -2.687497 +v 0.751301 0.530331 -2.687497 +v 0.662913 0.441943 -2.749997 +v 0.751301 0.530331 -2.749997 +v 0.441942 0.662914 -2.812497 +v 0.530330 0.751302 -2.812497 +v 0.441942 0.662914 -2.874997 +v 0.530331 0.751302 -2.874997 +v 0.662913 0.441943 -2.812497 +v 0.751301 0.530331 -2.812497 +v 0.662913 0.441943 -2.874997 +v 0.751301 0.530331 -2.874997 +v 0.031250 -0.639213 1.937500 +v -0.031250 -0.639213 1.937500 +v 0.031250 -0.639213 1.812500 +v -0.031250 -0.639213 1.812500 +v 0.031250 -0.576713 1.937500 +v -0.031250 -0.576713 1.937500 +v 0.031250 -0.576713 1.812500 +v -0.031250 -0.576713 1.812500 +v -0.537950 -0.346670 1.937500 +v -0.569200 -0.292543 1.937500 +v -0.537950 -0.346670 1.812500 +v -0.569200 -0.292543 1.812500 +v -0.483823 -0.315420 1.937500 +v -0.515073 -0.261294 1.937500 +v -0.483823 -0.315420 1.812500 +v -0.515073 -0.261293 1.812500 +v -0.569200 0.292543 1.937500 +v -0.537950 0.346670 1.937500 +v -0.569200 0.292543 1.812500 +v -0.537950 0.346670 1.812500 +v -0.515073 0.261293 1.937500 +v -0.483824 0.315420 1.937500 +v -0.515073 0.261293 1.812500 +v -0.483824 0.315420 1.812500 +v -0.031250 0.639213 1.937500 +v 0.031250 0.639213 1.937500 +v -0.031250 0.639213 1.812500 +v 0.031250 0.639213 1.812500 +v -0.031250 0.576713 1.937500 +v 0.031250 0.576714 1.937500 +v -0.031250 0.576713 1.812500 +v 0.031250 0.576714 1.812500 +v 0.537950 0.346670 1.937500 +v 0.569200 0.292544 1.937500 +v 0.537950 0.346670 1.812500 +v 0.569200 0.292544 1.812500 +v 0.483823 0.315420 1.937500 +v 0.515073 0.261294 1.937500 +v 0.483823 0.315420 1.812500 +v 0.515073 0.261294 1.812500 +v 0.569200 -0.292543 1.937500 +v 0.537950 -0.346670 1.937500 +v 0.569200 -0.292543 1.812500 +v 0.537950 -0.346670 1.812500 +v 0.515073 -0.261293 1.937500 +v 0.483824 -0.315420 1.937500 +v 0.515073 -0.261293 1.812500 +v 0.483824 -0.315420 1.812500 +v -0.000000 -0.715776 -1.000000 +v -0.357888 -0.619880 -1.000000 +v -0.619880 -0.357887 -1.000000 +v -0.715776 0.000001 -1.000000 +v -0.619880 0.357889 -1.000000 +v -0.357888 0.619881 -1.000000 +v -0.000000 0.715777 -1.000000 +v 0.357888 0.619881 -1.000000 +v 0.619880 0.357889 -1.000000 +v 0.715776 0.000001 -1.000000 +v 0.619881 -0.357887 -1.000000 +v 0.357888 -0.619879 -1.000000 +v -0.000000 -0.715776 -1.125000 +v -0.357888 -0.619880 -1.125000 +v -0.619880 -0.357887 -1.125000 +v -0.715776 0.000001 -1.125000 +v -0.619880 0.357889 -1.125000 +v -0.357888 0.619881 -1.125000 +v -0.000000 0.715777 -1.125000 +v 0.357888 0.619881 -1.125000 +v 0.619880 0.357889 -1.125000 +v 0.715776 0.000001 -1.125000 +v 0.619881 -0.357887 -1.125000 +v 0.357888 -0.619879 -1.125000 +v -0.000000 -0.715776 1.000000 +v -0.357888 -0.619880 1.000000 +v -0.619880 -0.357888 1.000000 +v -0.715776 0.000000 1.000000 +v -0.619880 0.357889 1.000000 +v -0.357888 0.619881 1.000000 +v -0.000000 0.715776 1.000000 +v 0.357888 0.619881 1.000000 +v 0.619880 0.357889 1.000000 +v 0.715776 0.000001 1.000000 +v 0.619881 -0.357888 1.000000 +v 0.357888 -0.619880 1.000000 +v -0.000000 -0.715776 0.875000 +v -0.357888 -0.619880 0.875000 +v -0.619880 -0.357888 0.875000 +v -0.715776 0.000000 0.875000 +v -0.619880 0.357889 0.875000 +v -0.357888 0.619881 0.875000 +v -0.000000 0.715777 0.875000 +v 0.357888 0.619881 0.875000 +v 0.619880 0.357889 0.875000 +v 0.715776 0.000001 0.875000 +v 0.619881 -0.357887 0.875000 +v 0.357888 -0.619880 0.875000 +v -0.000000 -0.715775 -2.500000 +v -0.357888 -0.619879 -2.500000 +v -0.619880 -0.357887 -2.500000 +v -0.715776 0.000001 -2.500000 +v -0.619880 0.357889 -2.500000 +v -0.357888 0.619882 -2.500000 +v -0.000000 0.715777 -2.500000 +v 0.357888 0.619882 -2.500000 +v 0.619880 0.357889 -2.500000 +v 0.715776 0.000001 -2.500000 +v 0.619881 -0.357887 -2.500000 +v 0.357888 -0.619879 -2.500000 +v -0.000000 -0.715775 -3.500000 +v -0.357888 -0.619879 -3.500000 +v -0.619880 -0.357887 -3.500000 +v -0.715776 0.000001 -3.500000 +v -0.619880 0.357890 -3.500000 +v -0.357888 0.619882 -3.500000 +v -0.000000 0.715777 -3.500000 +v 0.357888 0.619882 -3.500000 +v 0.619880 0.357890 -3.500000 +v 0.715776 0.000002 -3.500000 +v 0.619881 -0.357887 -3.500000 +v 0.357888 -0.619879 -3.500000 +v -0.000000 -0.845185 -3.500000 +v -0.422593 -0.731951 -3.500000 +v -0.731952 -0.422592 -3.500000 +v -0.845186 0.000001 -3.500000 +v -0.731952 0.422594 -3.500000 +v -0.422593 0.731954 -3.500000 +v 0.000000 0.845187 -3.500000 +v 0.422593 0.731954 -3.500000 +v 0.731952 0.422594 -3.500000 +v 0.845186 0.000002 -3.500000 +v 0.731953 -0.422591 -3.500000 +v 0.422593 -0.731951 -3.500000 +v -0.000000 -0.715775 -3.000000 +v -0.357888 -0.619879 -3.000000 +v -0.619880 -0.357887 -3.000000 +v -0.715776 0.000001 -3.000000 +v -0.619880 0.357889 -3.000000 +v -0.357888 0.619882 -3.000000 +v 0.000000 0.715777 -3.000000 +v 0.357888 0.619882 -3.000000 +v 0.619880 0.357889 -3.000000 +v 0.715776 0.000001 -3.000000 +v 0.619881 -0.357887 -3.000000 +v 0.357889 -0.619879 -3.000000 +v -0.000000 -0.845185 -1.000000 +v -0.422593 -0.731952 -1.000000 +v -0.731952 -0.422592 -1.000000 +v -0.845186 0.000001 -1.000000 +v -0.731952 0.422594 -1.000000 +v -0.422593 0.731953 -1.000000 +v -0.000000 0.845186 -1.000000 +v 0.422593 0.731953 -1.000000 +v 0.731952 0.422594 -1.000000 +v 0.845186 0.000001 -1.000000 +v 0.731953 -0.422592 -1.000000 +v 0.422593 -0.731951 -1.000000 +v -0.000000 -0.845185 -1.125000 +v -0.422593 -0.731952 -1.125000 +v -0.731952 -0.422592 -1.125000 +v -0.845186 0.000001 -1.125000 +v -0.731952 0.422594 -1.125000 +v -0.422593 0.731953 -1.125000 +v 0.000000 0.845186 -1.125000 +v 0.422593 0.731953 -1.125000 +v 0.731952 0.422594 -1.125000 +v 0.845186 0.000001 -1.125000 +v 0.731953 -0.422592 -1.125000 +v 0.422593 -0.731951 -1.125000 +v -0.000000 -0.845186 1.000000 +v -0.422593 -0.731952 1.000000 +v -0.731952 -0.422593 1.000000 +v -0.845186 0.000000 1.000000 +v -0.731952 0.422593 1.000000 +v -0.422593 0.731953 1.000000 +v -0.000000 0.845186 1.000000 +v 0.422593 0.731953 1.000000 +v 0.731952 0.422593 1.000000 +v 0.845186 0.000001 1.000000 +v 0.731953 -0.422592 1.000000 +v 0.422593 -0.731952 1.000000 +v -0.000000 -0.845186 0.875000 +v -0.422593 -0.731952 0.875000 +v -0.731952 -0.422592 0.875000 +v -0.845186 0.000000 0.875000 +v -0.731952 0.422593 0.875000 +v -0.422593 0.731953 0.875000 +v 0.000000 0.845186 0.875000 +v 0.422593 0.731953 0.875000 +v 0.731952 0.422593 0.875000 +v 0.845186 0.000001 0.875000 +v 0.731953 -0.422592 0.875000 +v 0.422593 -0.731952 0.875000 +v -0.000000 -0.845185 -2.500000 +v -0.422593 -0.731951 -2.500000 +v -0.731952 -0.422592 -2.500000 +v -0.845186 0.000001 -2.500000 +v -0.731952 0.422594 -2.500000 +v -0.422593 0.731954 -2.500000 +v -0.000000 0.845187 -2.500000 +v 0.422593 0.731953 -2.500000 +v 0.731952 0.422594 -2.500000 +v 0.845186 0.000001 -2.500000 +v 0.731953 -0.422591 -2.500000 +v 0.422593 -0.731951 -2.500000 +vt 0.909091 0.720930 +vt 0.973262 0.790698 +vt 0.909091 0.790698 +vt 0.994652 0.604651 +vt 0.973262 0.674419 +vt 0.973262 0.604651 +vt 0.909091 0.604651 +vt 0.903743 0.720930 +vt 0.903743 0.790698 +vt 0.973262 0.720930 +vt 0.909091 0.691860 +vt 0.898396 0.686046 +vt 0.893048 0.662791 +vt 0.898396 0.662791 +vt 0.866310 0.686046 +vt 0.866310 0.662791 +vt 0.860963 0.697674 +vt 0.866310 0.720930 +vt 0.860963 0.720930 +vt 0.893048 0.697674 +vt 0.893048 0.720930 +vt 0.893048 0.686046 +vt 0.866310 0.697674 +vt 0.898396 0.755814 +vt 0.893048 0.732558 +vt 0.898396 0.732558 +vt 0.893048 0.755814 +vt 0.866310 0.732558 +vt 0.860963 0.790698 +vt 0.866310 0.767442 +vt 0.866310 0.790698 +vt 0.893048 0.790698 +vt 0.866310 0.755814 +vt 0.909091 0.523256 +vt 0.973262 0.593023 +vt 0.909091 0.593023 +vt 0.994652 0.476744 +vt 0.973262 0.406977 +vt 0.994652 0.406977 +vt 0.909091 0.476744 +vt 0.909091 0.406977 +vt 0.903743 0.523256 +vt 0.903743 0.593023 +vt 0.973262 0.523256 +vt 0.909091 0.494186 +vt 0.973262 0.476744 +vt 0.898396 0.488372 +vt 0.893048 0.465116 +vt 0.898396 0.465116 +vt 0.893048 0.488372 +vt 0.866310 0.465116 +vt 0.860963 0.523256 +vt 0.866310 0.500000 +vt 0.866310 0.523256 +vt 0.893048 0.523256 +vt 0.866310 0.488372 +vt 0.898396 0.558140 +vt 0.893048 0.534884 +vt 0.898396 0.534884 +vt 0.893048 0.558140 +vt 0.866310 0.534884 +vt 0.860963 0.593023 +vt 0.866310 0.569767 +vt 0.866310 0.593023 +vt 0.893048 0.569767 +vt 0.893048 0.593023 +vt 0.866310 0.558140 +vt 0.909091 0.325581 +vt 0.973262 0.395349 +vt 0.909091 0.395349 +vt 0.994652 0.279070 +vt 0.973262 0.209302 +vt 0.994652 0.209302 +vt 0.973262 0.279070 +vt 0.909091 0.209302 +vt 0.903743 0.325581 +vt 0.903743 0.395349 +vt 0.973262 0.325581 +vt 0.909091 0.296512 +vt 0.898396 0.290698 +vt 0.893048 0.267442 +vt 0.898396 0.267442 +vt 0.893048 0.290698 +vt 0.866310 0.267442 +vt 0.860963 0.302326 +vt 0.866310 0.325581 +vt 0.860963 0.325581 +vt 0.866310 0.302326 +vt 0.893048 0.325581 +vt 0.866310 0.290698 +vt 0.898396 0.360465 +vt 0.893048 0.337209 +vt 0.898396 0.337209 +vt 0.893048 0.360465 +vt 0.866310 0.337209 +vt 0.860963 0.372093 +vt 0.866310 0.395349 +vt 0.860963 0.395349 +vt 0.893048 0.372093 +vt 0.893048 0.395349 +vt 0.866310 0.372093 +vt 0.866310 0.360465 +vt 0.909091 0.918605 +vt 0.973262 0.988372 +vt 0.909091 0.988372 +vt 0.994652 0.802326 +vt 0.973262 0.872093 +vt 0.973262 0.802326 +vt 0.909091 0.802326 +vt 0.903743 0.918605 +vt 0.903743 0.988372 +vt 0.973262 0.918605 +vt 0.909091 0.889535 +vt 0.898396 0.883721 +vt 0.893048 0.860465 +vt 0.898396 0.860465 +vt 0.893048 0.883721 +vt 0.866310 0.860465 +vt 0.860963 0.895349 +vt 0.866310 0.918605 +vt 0.860963 0.918605 +vt 0.866310 0.895349 +vt 0.893048 0.918605 +vt 0.866310 0.883721 +vt 0.898396 0.953488 +vt 0.893048 0.930233 +vt 0.898396 0.930233 +vt 0.893048 0.953488 +vt 0.866310 0.930233 +vt 0.860963 0.988372 +vt 0.866310 0.965116 +vt 0.866310 0.988372 +vt 0.893048 0.965116 +vt 0.893048 0.988372 +vt 0.866310 0.953488 +vt 0.834225 0.639535 +vt 0.839572 0.616279 +vt 0.839572 0.639535 +vt 0.850267 0.616279 +vt 0.844920 0.639535 +vt 0.844920 0.616279 +vt 0.834225 0.651163 +vt 0.839572 0.651163 +vt 0.834225 0.616279 +vt 0.828877 0.639535 +vt 0.828877 0.616279 +vt 0.834225 0.593023 +vt 0.839572 0.569767 +vt 0.839572 0.593023 +vt 0.850267 0.569767 +vt 0.844920 0.593023 +vt 0.844920 0.569767 +vt 0.834225 0.604651 +vt 0.839572 0.604651 +vt 0.834225 0.569767 +vt 0.828877 0.593023 +vt 0.828877 0.569767 +vt 0.834225 0.546512 +vt 0.839572 0.523256 +vt 0.839572 0.546512 +vt 0.850267 0.523256 +vt 0.844920 0.546512 +vt 0.844920 0.523256 +vt 0.834225 0.558140 +vt 0.839572 0.558140 +vt 0.834225 0.523256 +vt 0.828877 0.546512 +vt 0.828877 0.523256 +vt 0.834225 0.500000 +vt 0.839572 0.476744 +vt 0.839572 0.500000 +vt 0.850267 0.476744 +vt 0.844920 0.500000 +vt 0.844920 0.476744 +vt 0.834225 0.511628 +vt 0.839572 0.511628 +vt 0.828877 0.476744 +vt 0.828877 0.500000 +vt 0.834225 0.453488 +vt 0.839572 0.430233 +vt 0.839572 0.453488 +vt 0.850267 0.430233 +vt 0.844920 0.453488 +vt 0.844920 0.430233 +vt 0.834225 0.465116 +vt 0.839572 0.465116 +vt 0.834225 0.430233 +vt 0.828877 0.453488 +vt 0.828877 0.430233 +vt 0.834225 0.686047 +vt 0.839572 0.662791 +vt 0.839572 0.686047 +vt 0.850267 0.662791 +vt 0.844920 0.686047 +vt 0.844920 0.662791 +vt 0.834225 0.697674 +vt 0.839572 0.697674 +vt 0.828877 0.662791 +vt 0.828877 0.686047 +vt 0.679144 0.982558 +vt 0.668449 0.906977 +vt 0.679144 0.912791 +vt 0.679144 0.901163 +vt 0.668449 0.825581 +vt 0.679144 0.831395 +vt 0.679144 0.750000 +vt 0.668449 0.744186 +vt 0.679144 0.738372 +vt 0.668449 0.662791 +vt 0.679144 0.668605 +vt 0.679144 0.656977 +vt 0.668449 0.581395 +vt 0.679144 0.587209 +vt 0.679144 0.575581 +vt 0.668449 0.500000 +vt 0.679144 0.505814 +vt 0.679144 0.424419 +vt 0.668449 0.418605 +vt 0.679144 0.412791 +vt 0.668449 0.337209 +vt 0.679144 0.343023 +vt 0.679144 0.331395 +vt 0.668449 0.255814 +vt 0.679144 0.261628 +vt 0.679144 0.180233 +vt 0.668449 0.174419 +vt 0.679144 0.168605 +vt 0.668449 0.093023 +vt 0.679144 0.098837 +vt 0.679144 0.087209 +vt 0.668449 0.011628 +vt 0.679144 0.017442 +vt 0.854372 0.855140 +vt 0.763956 0.968649 +vt 0.763956 0.741632 +vt 0.534759 0.982558 +vt 0.545455 0.906977 +vt 0.545455 0.988372 +vt 0.534759 0.831395 +vt 0.534759 0.901163 +vt 0.534759 0.750000 +vt 0.545455 0.825581 +vt 0.534759 0.819767 +vt 0.534759 0.668605 +vt 0.545455 0.744186 +vt 0.534759 0.738372 +vt 0.534759 0.587209 +vt 0.545455 0.662791 +vt 0.534759 0.656977 +vt 0.534759 0.575581 +vt 0.545455 0.500000 +vt 0.545455 0.581395 +vt 0.534759 0.424419 +vt 0.534759 0.494186 +vt 0.534759 0.343023 +vt 0.545455 0.418605 +vt 0.534759 0.412791 +vt 0.534759 0.261628 +vt 0.545455 0.337209 +vt 0.534759 0.331395 +vt 0.534759 0.250000 +vt 0.545455 0.174419 +vt 0.545455 0.255814 +vt 0.534759 0.168605 +vt 0.545455 0.093023 +vt 0.534759 0.017442 +vt 0.534759 0.087209 +vt 0.566845 0.982558 +vt 0.556150 0.906977 +vt 0.566845 0.912791 +vt 0.566845 0.901163 +vt 0.556150 0.825581 +vt 0.566845 0.831395 +vt 0.566845 0.819767 +vt 0.556150 0.744186 +vt 0.566845 0.750000 +vt 0.566845 0.738372 +vt 0.556150 0.662791 +vt 0.566845 0.668605 +vt 0.566845 0.587209 +vt 0.556150 0.581395 +vt 0.566845 0.575581 +vt 0.556150 0.500000 +vt 0.566845 0.505814 +vt 0.566845 0.424419 +vt 0.556150 0.418605 +vt 0.566845 0.412791 +vt 0.556150 0.337209 +vt 0.566845 0.343023 +vt 0.566845 0.331395 +vt 0.556150 0.255814 +vt 0.566845 0.261628 +vt 0.566845 0.250000 +vt 0.556150 0.174419 +vt 0.566845 0.180233 +vt 0.566845 0.168605 +vt 0.556150 0.093023 +vt 0.566845 0.098837 +vt 0.566845 0.017442 +vt 0.556150 0.011628 +vt 0.497326 0.982558 +vt 0.508021 0.906977 +vt 0.508021 0.988372 +vt 0.497326 0.831395 +vt 0.497326 0.901163 +vt 0.497326 0.750000 +vt 0.508021 0.825581 +vt 0.497326 0.819767 +vt 0.497326 0.738372 +vt 0.508021 0.662791 +vt 0.508021 0.744186 +vt 0.497326 0.587209 +vt 0.497326 0.656977 +vt 0.497326 0.575581 +vt 0.508021 0.500000 +vt 0.508021 0.581395 +vt 0.497326 0.424419 +vt 0.497326 0.494186 +vt 0.497326 0.343023 +vt 0.508021 0.418605 +vt 0.497326 0.412791 +vt 0.497326 0.331395 +vt 0.508021 0.255814 +vt 0.508021 0.337209 +vt 0.497326 0.180233 +vt 0.497326 0.250000 +vt 0.497326 0.168605 +vt 0.508021 0.093023 +vt 0.508021 0.174419 +vt 0.497326 0.087209 +vt 0.508021 0.011628 +vt 0.529412 0.982558 +vt 0.518717 0.906977 +vt 0.529412 0.912791 +vt 0.529412 0.901163 +vt 0.518717 0.825581 +vt 0.529412 0.831395 +vt 0.529412 0.819767 +vt 0.518717 0.744186 +vt 0.529412 0.750000 +vt 0.529412 0.738372 +vt 0.518717 0.662791 +vt 0.529412 0.668605 +vt 0.529412 0.587209 +vt 0.518717 0.581395 +vt 0.529412 0.575581 +vt 0.518717 0.500000 +vt 0.529412 0.505814 +vt 0.529412 0.494186 +vt 0.518717 0.418605 +vt 0.529412 0.424419 +vt 0.529412 0.412791 +vt 0.518717 0.337209 +vt 0.529412 0.343023 +vt 0.529412 0.331395 +vt 0.518717 0.255814 +vt 0.529412 0.261628 +vt 0.529412 0.250000 +vt 0.518717 0.174419 +vt 0.529412 0.180233 +vt 0.529412 0.168605 +vt 0.518717 0.093023 +vt 0.529412 0.098837 +vt 0.529412 0.017442 +vt 0.518717 0.011628 +vt 0.572192 0.982558 +vt 0.582888 0.906977 +vt 0.582888 0.988372 +vt 0.572192 0.831395 +vt 0.572192 0.901163 +vt 0.572192 0.750000 +vt 0.582888 0.825581 +vt 0.572192 0.819767 +vt 0.572192 0.668605 +vt 0.582888 0.744186 +vt 0.572192 0.738372 +vt 0.572192 0.587209 +vt 0.582888 0.662791 +vt 0.572192 0.656977 +vt 0.572192 0.575581 +vt 0.582888 0.500000 +vt 0.582888 0.581395 +vt 0.572192 0.424419 +vt 0.572192 0.494186 +vt 0.572192 0.343023 +vt 0.582888 0.418605 +vt 0.572192 0.412791 +vt 0.572192 0.261628 +vt 0.582888 0.337209 +vt 0.572192 0.331395 +vt 0.572192 0.250000 +vt 0.582888 0.174419 +vt 0.582888 0.255814 +vt 0.572192 0.168605 +vt 0.582888 0.093023 +vt 0.572192 0.087209 +vt 0.582888 0.011628 +vt 0.994652 0.674419 +vt 0.909091 0.674419 +vt 0.909091 0.703488 +vt 0.860963 0.767442 +vt 0.893048 0.767442 +vt 0.909091 0.505814 +vt 0.860963 0.500000 +vt 0.893048 0.500000 +vt 0.860963 0.569767 +vt 0.909091 0.279070 +vt 0.909091 0.308140 +vt 0.893048 0.302326 +vt 0.994652 0.872093 +vt 0.909091 0.872093 +vt 0.909091 0.901163 +vt 0.893048 0.895349 +vt 0.860963 0.965116 +vt 0.850267 0.639535 +vt 0.850267 0.593023 +vt 0.850267 0.546512 +vt 0.834225 0.476744 +vt 0.850267 0.500000 +vt 0.850267 0.453488 +vt 0.834225 0.662791 +vt 0.850267 0.686047 +vt 0.668449 0.988372 +vt 0.679144 0.819767 +vt 0.679144 0.494186 +vt 0.679144 0.250000 +vt 0.794095 0.724072 +vt 0.824233 0.741632 +vt 0.846296 0.789606 +vt 0.846296 0.920674 +vt 0.824233 0.968649 +vt 0.794095 0.986208 +vt 0.741893 0.920674 +vt 0.733817 0.855140 +vt 0.741893 0.789606 +vt 0.534759 0.912791 +vt 0.534759 0.505814 +vt 0.534759 0.180233 +vt 0.534759 0.098837 +vt 0.545455 0.011628 +vt 0.556150 0.988372 +vt 0.566845 0.656977 +vt 0.566845 0.494186 +vt 0.566845 0.087209 +vt 0.497326 0.912791 +vt 0.497326 0.668605 +vt 0.497326 0.505814 +vt 0.497326 0.261628 +vt 0.497326 0.098837 +vt 0.497326 0.017442 +vt 0.518717 0.988372 +vt 0.529412 0.656977 +vt 0.529412 0.087209 +vt 0.572192 0.912791 +vt 0.572192 0.505814 +vt 0.572192 0.180233 +vt 0.572192 0.098837 +vt 0.572192 0.017442 +vt 0.037433 0.988372 +vt 0.401070 0.918605 +vt 0.401070 0.988372 +vt 0.037433 0.918605 +vt 0.401070 0.848837 +vt 0.037433 0.848837 +vt 0.401070 0.779070 +vt 0.037433 0.779070 +vt 0.401070 0.709302 +vt 0.037433 0.639535 +vt 0.401070 0.639535 +vt 0.401070 0.569767 +vt 0.037433 0.500000 +vt 0.401070 0.500000 +vt 0.401070 0.430233 +vt 0.037433 0.430233 +vt 0.401070 0.360465 +vt 0.037433 0.360465 +vt 0.401070 0.290698 +vt 0.005348 0.581395 +vt 0.037433 0.569767 +vt 0.037433 0.290698 +vt 0.401070 0.220930 +vt 0.037433 0.220930 +vt 0.401070 0.151163 +vt 0.037433 0.709302 +vt 0.005348 0.651163 +vt 0.005348 0.720930 +vt 0.037433 0.151163 +vt 0.005348 0.209302 +vt 0.005348 0.162791 +vt 0.005348 0.930233 +vt 0.005348 0.790698 +vt 0.005348 0.279070 +vt 0.005348 0.232558 +vt 0.005348 0.860465 +vt 0.005348 0.302326 +vt 0.005348 0.372093 +vt 0.005348 0.441860 +vt 0.005348 0.511628 +vt 0.449231 0.987503 +vt 0.412805 0.941775 +vt 0.412805 0.850318 +vt 0.684492 0.639535 +vt 0.727273 0.709302 +vt 0.684492 0.709302 +vt 0.684492 0.220930 +vt 0.727273 0.151163 +vt 0.727273 0.220930 +vt 0.684492 0.848837 +vt 0.727273 0.918605 +vt 0.684492 0.918605 +vt 0.684492 0.360465 +vt 0.727273 0.430233 +vt 0.684492 0.430233 +vt 0.684492 0.569767 +vt 0.727273 0.639535 +vt 0.684492 0.779070 +vt 0.727273 0.848837 +vt 0.684492 0.290698 +vt 0.727273 0.360465 +vt 0.684492 0.500000 +vt 0.727273 0.569767 +vt 0.727273 0.779070 +vt 0.727273 0.290698 +vt 0.727273 0.988372 +vt 0.684492 0.988372 +vt 0.727273 0.500000 +vt 0.005348 0.627907 +vt 0.005348 0.697674 +vt 0.005348 0.767442 +vt 0.005348 0.976744 +vt 0.005348 0.837209 +vt 0.005348 0.906977 +vt 0.005348 0.348837 +vt 0.005348 0.418605 +vt 0.005348 0.488372 +vt 0.005348 0.558140 +vt 0.428200 0.816843 +vt 0.449230 0.804590 +vt 0.470261 0.816843 +vt 0.485656 0.850318 +vt 0.491291 0.896047 +vt 0.485656 0.941775 +vt 0.470261 0.975250 +vt 0.428200 0.975250 +vt 0.407170 0.896046 +vt 0.684492 0.151163 +vn 0.7016 0.7016 0.1240 +vn 0.0000 0.0000 -1.0000 +vn -0.7016 -0.7016 0.1240 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7016 -0.7016 0.1240 +vn -0.7016 0.7016 0.1240 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.3596 0.6229 0.6947 +vn 0.0000 0.7193 0.6947 +vn -0.6229 0.3596 0.6947 +vn -0.7193 0.0000 0.6947 +vn 0.0000 -0.7193 0.6947 +vn 0.3596 -0.6229 0.6947 +vn -0.3596 -0.6229 0.6947 +vn -0.6229 -0.3596 0.6947 +vn 0.6229 -0.3596 0.6947 +vn 0.7193 0.0000 0.6947 +vn 0.6229 0.3596 0.6947 +vn 0.3596 0.6229 0.6947 +usemtl None +s off +f 38/1/1 39/2/1 37/3/1 +f 39/4/2 44/5/2 43/6/2 +f 44/5/3 41/7/3 43/6/3 +f 42/8/4 37/3/4 41/9/4 +f 40/10/5 42/11/5 44/5/5 +f 46/12/6 47/13/6 45/14/6 +f 47/13/2 52/15/2 51/16/2 +f 52/17/7 49/18/7 51/19/7 +f 49/18/4 46/20/4 45/21/4 +f 48/22/5 50/23/5 52/15/5 +f 54/24/6 55/25/6 53/26/6 +f 56/27/2 59/28/2 55/25/2 +f 59/29/7 58/30/7 57/31/7 +f 58/30/4 53/32/4 57/31/4 +f 56/27/5 58/30/5 60/33/5 +f 62/34/8 63/35/8 61/36/8 +f 64/37/2 67/38/2 63/39/2 +f 67/38/9 66/40/9 65/41/9 +f 66/42/4 61/36/4 65/43/4 +f 64/44/7 66/45/7 68/46/7 +f 70/47/5 71/48/5 69/49/5 +f 72/50/2 75/51/2 71/48/2 +f 75/52/10 74/53/10 73/54/10 +f 74/53/4 69/55/4 73/54/4 +f 72/50/7 74/53/7 76/56/7 +f 78/57/5 79/58/5 77/59/5 +f 80/60/2 83/61/2 79/58/2 +f 83/62/10 82/63/10 81/64/10 +f 81/64/4 78/65/4 77/66/4 +f 80/60/7 82/63/7 84/67/7 +f 86/68/3 87/69/3 85/70/3 +f 88/71/2 91/72/2 87/73/2 +f 92/74/1 89/75/1 91/72/1 +f 90/76/4 85/70/4 89/77/4 +f 88/78/10 90/79/10 92/74/10 +f 94/80/7 95/81/7 93/82/7 +f 96/83/2 99/84/2 95/81/2 +f 100/85/6 97/86/6 99/87/6 +f 98/88/4 93/89/4 97/86/4 +f 96/83/10 98/88/10 100/90/10 +f 102/91/7 103/92/7 101/93/7 +f 104/94/2 107/95/2 103/92/2 +f 108/96/6 105/97/6 107/98/6 +f 105/97/4 102/99/4 101/100/4 +f 104/94/10 106/101/10 108/102/10 +f 110/103/9 111/104/9 109/105/9 +f 111/106/2 116/107/2 115/108/2 +f 116/107/8 113/109/8 115/108/8 +f 114/110/4 109/105/4 113/111/4 +f 112/112/6 114/113/6 116/107/6 +f 118/114/10 119/115/10 117/116/10 +f 120/117/2 123/118/2 119/115/2 +f 124/119/5 121/120/5 123/121/5 +f 122/122/4 117/123/4 121/120/4 +f 120/117/6 122/122/6 124/124/6 +f 126/125/10 127/126/10 125/127/10 +f 128/128/2 131/129/2 127/126/2 +f 131/130/5 130/131/5 129/132/5 +f 129/132/4 126/133/4 125/134/4 +f 128/128/6 130/131/6 132/135/6 +f 134/136/11 135/137/11 133/138/11 +f 140/139/12 137/140/12 139/141/12 +f 138/142/4 133/138/4 137/143/4 +f 139/141/13 133/138/13 135/137/13 +f 136/144/14 138/145/14 140/146/14 +f 142/147/15 143/148/15 141/149/15 +f 148/150/16 145/151/16 147/152/16 +f 146/153/4 141/149/4 145/154/4 +f 147/152/17 141/149/17 143/148/17 +f 144/155/18 146/156/18 148/157/18 +f 150/158/19 151/159/19 149/160/19 +f 156/161/20 153/162/20 155/163/20 +f 154/164/4 149/160/4 153/165/4 +f 155/163/21 149/160/21 151/159/21 +f 152/166/22 154/167/22 156/168/22 +f 158/169/12 159/170/12 157/171/12 +f 164/172/11 161/173/11 163/174/11 +f 162/175/4 157/171/4 161/176/4 +f 159/170/14 161/173/14 157/171/14 +f 164/177/13 158/169/13 162/178/13 +f 166/179/16 167/180/16 165/181/16 +f 172/182/15 169/183/15 171/184/15 +f 170/185/4 165/181/4 169/186/4 +f 171/184/18 165/181/18 167/180/18 +f 168/187/17 170/188/17 172/189/17 +f 174/190/20 175/191/20 173/192/20 +f 180/193/19 177/194/19 179/195/19 +f 178/196/4 173/192/4 177/197/4 +f 179/195/22 173/192/22 175/191/22 +f 180/198/21 174/190/21 178/199/21 +f 241/200/2 254/201/2 242/202/2 +f 242/203/2 255/204/2 243/205/2 +f 244/206/2 255/204/2 256/207/2 +f 244/208/2 257/209/2 245/210/2 +f 245/211/2 258/212/2 246/213/2 +f 246/214/2 259/215/2 247/216/2 +f 248/217/2 259/215/2 260/218/2 +f 248/219/2 261/220/2 249/221/2 +f 249/222/2 262/223/2 250/224/2 +f 251/225/2 262/223/2 263/226/2 +f 251/227/2 264/228/2 252/229/2 +f 252/230/2 253/231/2 241/232/2 +f 268/233/2 272/234/2 276/235/2 +f 181/236/4 278/237/4 277/238/4 +f 183/239/4 278/237/4 182/240/4 +f 184/241/4 279/242/4 183/243/4 +f 185/244/4 280/245/4 184/246/4 +f 186/247/4 281/248/4 185/249/4 +f 186/250/4 283/251/4 282/252/4 +f 188/253/4 283/251/4 187/254/4 +f 189/255/4 284/256/4 188/257/4 +f 190/258/4 285/259/4 189/260/4 +f 190/261/4 287/262/4 286/263/4 +f 191/264/4 288/265/4 287/262/4 +f 181/266/4 288/265/4 192/267/4 +f 193/268/2 290/269/2 194/270/2 +f 194/271/2 291/272/2 195/273/2 +f 195/274/2 292/275/2 196/276/2 +f 196/277/2 293/278/2 197/279/2 +f 198/280/2 293/278/2 294/281/2 +f 198/282/2 295/283/2 199/284/2 +f 200/285/2 295/283/2 296/286/2 +f 200/287/2 297/288/2 201/289/2 +f 201/290/2 298/291/2 202/292/2 +f 202/293/2 299/294/2 203/295/2 +f 203/296/2 300/297/2 204/298/2 +f 193/299/2 300/297/2 289/300/2 +f 205/301/4 302/302/4 301/303/4 +f 207/304/4 302/302/4 206/305/4 +f 208/306/4 303/307/4 207/308/4 +f 208/309/4 305/310/4 304/311/4 +f 210/312/4 305/310/4 209/313/4 +f 210/314/4 307/315/4 306/316/4 +f 212/317/4 307/315/4 211/318/4 +f 213/319/4 308/320/4 212/321/4 +f 213/322/4 310/323/4 309/324/4 +f 215/325/4 310/323/4 214/326/4 +f 215/327/4 312/328/4 311/329/4 +f 216/330/4 301/331/4 312/328/4 +f 217/332/2 314/333/2 218/334/2 +f 218/335/2 315/336/2 219/337/2 +f 219/338/2 316/339/2 220/340/2 +f 220/341/2 317/342/2 221/343/2 +f 222/344/2 317/342/2 318/345/2 +f 222/346/2 319/347/2 223/348/2 +f 223/349/2 320/350/2 224/351/2 +f 224/352/2 321/353/2 225/354/2 +f 225/355/2 322/356/2 226/357/2 +f 226/358/2 323/359/2 227/360/2 +f 227/361/2 324/362/2 228/363/2 +f 217/364/2 324/362/2 313/365/2 +f 229/366/4 326/367/4 325/368/4 +f 231/369/4 326/367/4 230/370/4 +f 232/371/4 327/372/4 231/373/4 +f 233/374/4 328/375/4 232/376/4 +f 234/377/4 329/378/4 233/379/4 +f 234/380/4 331/381/4 330/382/4 +f 236/383/4 331/381/4 235/384/4 +f 237/385/4 332/386/4 236/387/4 +f 238/388/4 333/389/4 237/390/4 +f 238/391/4 335/392/4 334/393/4 +f 239/394/4 336/395/4 335/392/4 +f 240/396/4 325/397/4 336/395/4 +f 38/1/1 40/10/1 39/2/1 +f 39/4/2 40/398/2 44/5/2 +f 44/5/3 42/399/3 41/7/3 +f 42/8/4 38/1/4 37/3/4 +f 40/10/5 38/400/5 42/11/5 +f 46/12/6 48/22/6 47/13/6 +f 47/13/2 48/22/2 52/15/2 +f 52/17/7 50/23/7 49/18/7 +f 49/18/4 50/23/4 46/20/4 +f 48/22/5 46/20/5 50/23/5 +f 54/24/6 56/27/6 55/25/6 +f 56/27/2 60/33/2 59/28/2 +f 59/29/7 60/401/7 58/30/7 +f 58/30/4 54/402/4 53/32/4 +f 56/27/5 54/402/5 58/30/5 +f 62/34/8 64/44/8 63/35/8 +f 64/37/2 68/46/2 67/38/2 +f 67/38/9 68/46/9 66/40/9 +f 66/42/4 62/34/4 61/36/4 +f 64/44/7 62/403/7 66/45/7 +f 70/47/5 72/50/5 71/48/5 +f 72/50/2 76/56/2 75/51/2 +f 75/52/10 76/404/10 74/53/10 +f 74/53/4 70/405/4 69/55/4 +f 72/50/7 70/405/7 74/53/7 +f 78/57/5 80/60/5 79/58/5 +f 80/60/2 84/67/2 83/61/2 +f 83/62/10 84/406/10 82/63/10 +f 81/64/4 82/63/4 78/65/4 +f 80/60/7 78/65/7 82/63/7 +f 86/68/3 88/78/3 87/69/3 +f 88/71/2 92/74/2 91/72/2 +f 92/74/1 90/407/1 89/75/1 +f 90/76/4 86/68/4 85/70/4 +f 88/78/10 86/408/10 90/79/10 +f 94/80/7 96/83/7 95/81/7 +f 96/83/2 100/90/2 99/84/2 +f 100/85/6 98/88/6 97/86/6 +f 98/88/4 94/409/4 93/89/4 +f 96/83/10 94/409/10 98/88/10 +f 102/91/7 104/94/7 103/92/7 +f 104/94/2 108/102/2 107/95/2 +f 108/96/6 106/101/6 105/97/6 +f 105/97/4 106/101/4 102/99/4 +f 104/94/10 102/99/10 106/101/10 +f 110/103/9 112/112/9 111/104/9 +f 111/106/2 112/410/2 116/107/2 +f 116/107/8 114/411/8 113/109/8 +f 114/110/4 110/103/4 109/105/4 +f 112/112/6 110/412/6 114/113/6 +f 118/114/10 120/117/10 119/115/10 +f 120/117/2 124/124/2 123/118/2 +f 124/119/5 122/122/5 121/120/5 +f 122/122/4 118/413/4 117/123/4 +f 120/117/6 118/413/6 122/122/6 +f 126/125/10 128/128/10 127/126/10 +f 128/128/2 132/135/2 131/129/2 +f 131/130/5 132/414/5 130/131/5 +f 129/132/4 130/131/4 126/133/4 +f 128/128/6 126/133/6 130/131/6 +f 134/136/11 136/144/11 135/137/11 +f 140/139/12 138/415/12 137/140/12 +f 138/142/4 134/136/4 133/138/4 +f 139/141/13 137/140/13 133/138/13 +f 136/144/14 134/136/14 138/145/14 +f 142/147/15 144/155/15 143/148/15 +f 148/150/16 146/416/16 145/151/16 +f 146/153/4 142/147/4 141/149/4 +f 147/152/17 145/151/17 141/149/17 +f 144/155/18 142/147/18 146/156/18 +f 150/158/19 152/166/19 151/159/19 +f 156/161/20 154/417/20 153/162/20 +f 154/164/4 150/158/4 149/160/4 +f 155/163/21 153/162/21 149/160/21 +f 152/166/22 150/158/22 154/167/22 +f 158/169/12 160/418/12 159/170/12 +f 164/172/11 162/419/11 161/173/11 +f 162/175/4 158/169/4 157/171/4 +f 159/170/14 163/174/14 161/173/14 +f 164/177/13 160/418/13 158/169/13 +f 166/179/16 168/187/16 167/180/16 +f 172/182/15 170/420/15 169/183/15 +f 170/185/4 166/179/4 165/181/4 +f 171/184/18 169/183/18 165/181/18 +f 168/187/17 166/179/17 170/188/17 +f 174/190/20 176/421/20 175/191/20 +f 180/193/19 178/422/19 177/194/19 +f 178/196/4 174/190/4 173/192/4 +f 179/195/22 177/194/22 173/192/22 +f 180/198/21 176/421/21 174/190/21 +f 241/200/2 253/423/2 254/201/2 +f 242/203/2 254/201/2 255/204/2 +f 244/206/2 243/424/2 255/204/2 +f 244/208/2 256/207/2 257/209/2 +f 245/211/2 257/209/2 258/212/2 +f 246/214/2 258/212/2 259/215/2 +f 248/217/2 247/425/2 259/215/2 +f 248/219/2 260/218/2 261/220/2 +f 249/222/2 261/220/2 262/223/2 +f 251/225/2 250/426/2 262/223/2 +f 251/227/2 263/226/2 264/228/2 +f 252/230/2 264/228/2 253/231/2 +f 276/235/2 265/427/2 266/428/2 +f 266/428/2 267/429/2 268/233/2 +f 268/233/2 269/430/2 272/234/2 +f 269/430/2 270/431/2 272/234/2 +f 270/431/2 271/432/2 272/234/2 +f 272/234/2 273/433/2 276/235/2 +f 273/433/2 274/434/2 276/235/2 +f 274/434/2 275/435/2 276/235/2 +f 276/235/2 266/428/2 268/233/2 +f 181/236/4 182/436/4 278/237/4 +f 183/239/4 279/242/4 278/237/4 +f 184/241/4 280/245/4 279/242/4 +f 185/244/4 281/248/4 280/245/4 +f 186/247/4 282/252/4 281/248/4 +f 186/250/4 187/437/4 283/251/4 +f 188/253/4 284/256/4 283/251/4 +f 189/255/4 285/259/4 284/256/4 +f 190/258/4 286/263/4 285/259/4 +f 190/261/4 191/438/4 287/262/4 +f 191/264/4 192/439/4 288/265/4 +f 181/266/4 277/440/4 288/265/4 +f 193/268/2 289/441/2 290/269/2 +f 194/271/2 290/269/2 291/272/2 +f 195/274/2 291/272/2 292/275/2 +f 196/277/2 292/275/2 293/278/2 +f 198/280/2 197/442/2 293/278/2 +f 198/282/2 294/281/2 295/283/2 +f 200/285/2 199/443/2 295/283/2 +f 200/287/2 296/286/2 297/288/2 +f 201/290/2 297/288/2 298/291/2 +f 202/293/2 298/291/2 299/294/2 +f 203/296/2 299/294/2 300/297/2 +f 193/299/2 204/444/2 300/297/2 +f 205/301/4 206/445/4 302/302/4 +f 207/304/4 303/307/4 302/302/4 +f 208/306/4 304/311/4 303/307/4 +f 208/309/4 209/446/4 305/310/4 +f 210/312/4 306/316/4 305/310/4 +f 210/314/4 211/447/4 307/315/4 +f 212/317/4 308/320/4 307/315/4 +f 213/319/4 309/324/4 308/320/4 +f 213/322/4 214/448/4 310/323/4 +f 215/325/4 311/329/4 310/323/4 +f 215/327/4 216/449/4 312/328/4 +f 216/330/4 205/450/4 301/331/4 +f 217/332/2 313/451/2 314/333/2 +f 218/335/2 314/333/2 315/336/2 +f 219/338/2 315/336/2 316/339/2 +f 220/341/2 316/339/2 317/342/2 +f 222/344/2 221/452/2 317/342/2 +f 222/346/2 318/345/2 319/347/2 +f 223/349/2 319/347/2 320/350/2 +f 224/352/2 320/350/2 321/353/2 +f 225/355/2 321/353/2 322/356/2 +f 226/358/2 322/356/2 323/359/2 +f 227/361/2 323/359/2 324/362/2 +f 217/364/2 228/453/2 324/362/2 +f 229/366/4 230/454/4 326/367/4 +f 231/369/4 327/372/4 326/367/4 +f 232/371/4 328/375/4 327/372/4 +f 233/374/4 329/378/4 328/375/4 +f 234/377/4 330/382/4 329/378/4 +f 234/380/4 235/455/4 331/381/4 +f 236/383/4 332/386/4 331/381/4 +f 237/385/4 333/389/4 332/386/4 +f 238/388/4 334/393/4 333/389/4 +f 238/391/4 239/456/4 335/392/4 +f 239/394/4 240/457/4 336/395/4 +f 240/396/4 229/458/4 325/397/4 +s 1 +f 2/459/11 3/460/21 1/461/11 +f 4/462/21 5/463/15 3/460/21 +f 6/464/15 7/465/14 5/463/15 +f 8/466/14 9/467/19 7/465/14 +f 9/467/19 12/468/18 11/469/18 +f 12/468/18 13/470/12 11/469/18 +f 13/470/12 16/471/22 15/472/22 +f 16/471/22 17/473/16 15/472/22 +f 18/474/16 19/475/13 17/473/16 +f 20/476/13 21/477/20 19/475/13 +f 12/468/23 31/478/24 14/479/24 +f 22/480/20 23/481/17 21/477/20 +f 24/482/17 1/483/11 23/481/17 +f 10/484/25 30/485/23 12/468/23 +f 8/466/26 29/486/25 10/484/25 +f 2/487/27 36/488/28 26/489/27 +f 2/459/27 25/490/29 4/462/29 +f 6/464/30 28/491/26 8/466/26 +f 24/482/28 35/492/31 36/493/28 +f 4/462/29 27/494/30 6/464/30 +f 20/476/32 35/495/31 22/480/31 +f 18/474/33 34/496/32 20/476/32 +f 16/471/34 33/497/33 18/474/33 +f 14/479/24 32/498/34 16/471/34 +f 31/499/4 29/500/4 27/501/4 +f 286/263/13 297/288/16 285/259/16 +f 283/251/12 294/281/18 282/252/18 +f 279/242/15 292/275/14 291/272/15 +f 287/262/20 298/291/13 286/263/13 +f 284/256/22 295/283/12 283/251/12 +f 280/245/14 293/278/19 292/275/14 +f 288/265/17 299/294/20 287/262/20 +f 277/238/11 290/269/21 289/441/11 +f 285/259/16 296/286/22 284/256/22 +f 281/248/19 294/281/18 293/278/19 +f 288/265/17 289/300/11 300/297/17 +f 278/237/21 291/272/15 290/269/21 +f 310/323/13 321/353/16 309/324/16 +f 307/315/12 318/345/18 306/316/18 +f 303/307/15 316/339/14 315/336/15 +f 311/329/20 322/356/13 310/323/13 +f 308/320/22 319/347/12 307/315/12 +f 304/311/14 317/342/19 316/339/14 +f 312/328/17 323/359/20 311/329/20 +f 301/303/11 314/333/21 313/451/11 +f 309/324/16 320/350/22 308/320/22 +f 306/316/18 317/342/19 305/310/19 +f 301/331/11 324/362/17 312/328/17 +f 302/302/21 315/336/15 314/333/21 +f 246/502/17 269/503/20 245/504/20 +f 334/393/13 261/220/16 333/389/16 +f 331/381/12 258/212/18 330/382/18 +f 328/375/14 255/204/15 327/372/15 +f 335/392/20 262/223/13 334/393/13 +f 332/386/22 259/215/12 331/381/12 +f 329/378/19 256/207/14 328/375/14 +f 336/395/17 263/226/20 335/392/20 +f 326/367/21 253/423/11 325/368/11 +f 333/389/16 260/218/22 332/386/22 +f 330/382/18 257/209/19 329/378/19 +f 336/395/17 253/231/11 264/228/17 +f 326/367/21 255/204/15 254/201/21 +f 252/505/18 265/506/12 276/507/18 +f 243/508/16 266/509/22 242/510/22 +f 250/511/14 273/512/15 249/513/15 +f 247/514/11 270/515/17 246/502/17 +f 244/516/13 267/517/16 243/508/16 +f 251/518/19 274/519/14 250/511/14 +f 248/520/21 271/521/11 247/514/11 +f 244/516/13 269/503/20 268/522/13 +f 251/518/19 276/507/18 275/523/19 +f 242/510/22 265/524/12 241/525/12 +f 249/513/15 272/526/21 248/520/21 +f 2/459/11 4/462/21 3/460/21 +f 4/462/21 6/464/15 5/463/15 +f 6/464/15 8/466/14 7/465/14 +f 8/466/14 10/484/19 9/467/19 +f 9/467/19 10/484/19 12/468/18 +f 12/468/18 14/479/12 13/470/12 +f 13/470/12 14/479/12 16/471/22 +f 16/471/22 18/474/16 17/473/16 +f 18/474/16 20/476/13 19/475/13 +f 20/476/13 22/480/20 21/477/20 +f 12/468/23 30/527/23 31/478/24 +f 22/480/20 24/482/17 23/481/17 +f 24/482/17 2/487/11 1/483/11 +f 10/484/25 29/528/25 30/485/23 +f 8/466/26 28/529/26 29/486/25 +f 2/487/27 24/482/28 36/488/28 +f 2/459/27 26/530/27 25/490/29 +f 6/464/30 27/531/30 28/491/26 +f 24/482/28 22/480/31 35/492/31 +f 4/462/29 25/532/29 27/494/30 +f 20/476/32 34/533/32 35/495/31 +f 18/474/33 33/534/33 34/496/32 +f 16/471/34 32/535/34 33/497/33 +f 14/479/24 31/536/24 32/498/34 +f 27/501/4 25/537/4 26/538/4 +f 26/538/4 36/539/4 27/501/4 +f 36/539/4 35/540/4 27/501/4 +f 35/540/4 34/541/4 33/542/4 +f 33/542/4 32/543/4 31/499/4 +f 31/499/4 30/544/4 29/500/4 +f 29/500/4 28/545/4 27/501/4 +f 35/540/4 33/542/4 27/501/4 +f 33/542/4 31/499/4 27/501/4 +f 286/263/13 298/291/13 297/288/16 +f 283/251/12 295/283/12 294/281/18 +f 279/242/15 280/245/14 292/275/14 +f 287/262/20 299/294/20 298/291/13 +f 284/256/22 296/286/22 295/283/12 +f 280/245/14 281/248/19 293/278/19 +f 288/265/17 300/297/17 299/294/20 +f 277/238/11 278/237/21 290/269/21 +f 285/259/16 297/288/16 296/286/22 +f 281/248/19 282/252/18 294/281/18 +f 288/265/17 277/440/11 289/300/11 +f 278/237/21 279/242/15 291/272/15 +f 310/323/13 322/356/13 321/353/16 +f 307/315/12 319/347/12 318/345/18 +f 303/307/15 304/311/14 316/339/14 +f 311/329/20 323/359/20 322/356/13 +f 308/320/22 320/350/22 319/347/12 +f 304/311/14 305/310/19 317/342/19 +f 312/328/17 324/362/17 323/359/20 +f 301/303/11 302/302/21 314/333/21 +f 309/324/16 321/353/16 320/350/22 +f 306/316/18 318/345/18 317/342/19 +f 301/331/11 313/365/11 324/362/17 +f 302/302/21 303/307/15 315/336/15 +f 246/502/17 270/515/17 269/503/20 +f 334/393/13 262/223/13 261/220/16 +f 331/381/12 259/215/12 258/212/18 +f 328/375/14 256/207/14 255/204/15 +f 335/392/20 263/226/20 262/223/13 +f 332/386/22 260/218/22 259/215/12 +f 329/378/19 257/209/19 256/207/14 +f 336/395/17 264/228/17 263/226/20 +f 326/367/21 254/201/21 253/423/11 +f 333/389/16 261/220/16 260/218/22 +f 330/382/18 258/212/18 257/209/19 +f 336/395/17 325/397/11 253/231/11 +f 326/367/21 327/372/15 255/204/15 +f 252/505/18 241/546/12 265/506/12 +f 243/508/16 267/517/16 266/509/22 +f 250/511/14 274/519/14 273/512/15 +f 247/514/11 271/521/11 270/515/17 +f 244/516/13 268/522/13 267/517/16 +f 251/518/19 275/523/19 274/519/14 +f 248/520/21 272/526/21 271/521/11 +f 244/516/13 245/504/20 269/503/20 +f 251/518/19 252/505/18 276/507/18 +f 242/510/22 266/509/22 265/524/12 +f 249/513/15 273/512/15 272/526/21 diff --git a/src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png b/src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2ac97f536c8501234debcd1dda51551400660e GIT binary patch literal 29044 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 Hu0mjfX5ZAr delta 2281 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 BhI9Y` diff --git a/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_hook.png b/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_hook.png index 6d0cfa335c418c3525d94870053d900fc5bb27c1..4b5bf505cce96411665990976cb56a4b9307efd1 100644 GIT binary patch delta 554 zcmV+_0@eMH1kwbMGk*dJNkl%@F5QW>62Vw7}I0{GcDDGXe=O$(o3_)AK zc}b1oeVeKIqpYu9)1a1vD6H$cY2TIb-ix(%xcmPn@_`=EdoLjb^ssNwEs@@P@!p?) z-lIejk+J2+xxDy(nx?KLiinKsx^7WO6tOJJ;fH4lOuy?{qJKzbXNmPZ3` zHoa05S(C;{c0K@>$!(^NfJ&kcu(1W_fjCY3#>QKVt{b0w;Gi6Rv{n^ac^mKJy(2AvB#&phyrD34$U)aAyO8i3Fi0lIJ4ZU?M?KBnXNGL6IOR5(L+gAecxH z6bYi~X8fM8)>dDa4%xFBn9wQ~2MPK`|(=GL}l2 z*KX?I@(0A&@`M1Q!$g7@Tb`mqbeKpGoFhT7v_Y`6K~N-!(ONt7yhTK@?=v--y*(@U sE(b}uP$P=0<1j~3+&xa44Q00T38g~ns8FpyK>z>%07*qoM6N<$g7FmruK)l5 delta 487 zcmVKNQdM d?b?W$&o6qVu8ru|i~axr002ovPDHLkV1ob5=du6* diff --git a/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_mortar.png b/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_mortar.png index 8c65186e8502283fe966e14c1702fd3c9b5ea813..bb4768a913c56dca9210742b53509672a7a02d57 100644 GIT binary patch delta 1317 zcmV+=1={+x2FD7JGk*mBNklkh21iPq7m_o4Z1Gr1!6mC+a zOKA`!5b^*n7Pbty$OD)_0t+eg2rjI*5CRpKq!B8%NRiHQ3hj~ajPCroGxy9yGv5yw zFPf28_WpeCnLBr8o-AK2KggrS^^J&#Y&UBu^ZLb3L_}`i&VNhy>FQy(m)ZQP_VYaK z_97xOn_t!bnfE{6KS}oq(bUtSKLEy!fWZ_2gDCFh#&%ih#is z0fQ+522%tKrU)2J5ipn{U@%3%V2Xgj6aj;&Plo;geOWFK*B&_Ma<4n*B+Ihn>sglN zw(GXlYQ>uV7JsNyU==55{dH%@{VxvzX#0Z?1*`aH`TI1vCvR5-ERj&Ss%HKDZMvw@t(+|GZd!$` zX=U=a>3h0_x()#|5_3w)IoIhFRNG4A@1JUTE@B=mfnxP)6BZpZfBor=h*bAczLdjU z)lqL-1b+;s2-q1*S-o_4OkKqYSVt*_N7Z(itn#qi=YI8#CV#|2jk{GdUxo^HrkXs* zDHJ6C8Bn2Z`rcHcE12a&urNMUu#S%Z>mN_|6t4`Aq5a$UcRz|q|K|-Y)K;*?^^JV@ z#XAuZ`Qi7cqdxPG^d{5fFTQ;2J1+CDXV0?S?|=TYDz}@pJnZ)J+2^0iH!r{b@b_Q; z^!I^lY&UCJT$i6#^8XILs?$Oit2&|r_RGtEMPzsK`qV4iY<_i^26(@h*~L}vW-3it z438SZ;%j}HOa<$co?C3%k6B&{H*_Bt6|k~OHG4d;)PC*u?fm%Y<*N6MiB>VW6mcsj zB7dhVCVZh##a6GnVKRo*qDRvTRt(zMY2UNBI}A%YBQH{2r8HO~!&jWtY6G_2tmSrd zC{eSBDX^)|m-&5<9~?hy#clq3yL`X4ESGGXRIn*ktq={0|AP+&s3EIQD>29e7%y_olC4b zuh_@WB&r7!Ijv}Zcy!;z^^LrK@$R^7sugS~esEG<@Y_~Y1*-~Ie*2+v>BKA*Y&b*z zyEhJ4UARO}tDT~PO;@9UH3?T}zqx{!S(fGQh2flwx>rT3qsZbp$$#Qe zq`rq93`R$h)1C*zN6|--AzGn|`;M`4by-k22C*mRO;@xYrYm-XT+M?2homc7Py027 z%Bf3Q!M2;V{PyQpB666?*RL^M$yc=ceVBed#$F7~a8(gZC0)@96j8xo%4|g|AVLL$ zvFKApx`=S9Ywo8$lOKx;22)&k8-I!CMaH3m!4v_5DFOyl1PrDK7))^#8HstYI8-p0 zB49AZ5Q!+uW%Fl-JLd>ktf|lB$J`c_fT6R{lYIT>UlK61R`wuO|1|=JR{U`J!=`?% z+c=6uCv`m;0fQ+5hGat3j2;ZFXqZ9|n4rn;fO)V?M4BBziV!fg;D@X3KOP)C7^0L_ bt}_1tT`xt>rv+%%00000NkvXXu0mjfjYorF literal 821 zcmeAS@N?(olHy`uVBq!ia0vp^Gk`dOgAGVNWZoSLq*#ibJVQ8upoSx*gMoqRji-xa zNX4ADcQ5ANHV|n|T=_vKZh`Ke=83$QIJ@3Gn60|WaROtMiSd_(%qH3;9ZwFLJrF3= z`1NVRrg#7MN;JB*cKGXQb_E{$npYv|w-qR^>$m;KR zf7%`PHPg5Q%o@tKRvB?JYES*$aCML98pCG^6BadzM%Cw9A6YW5e#>0v%D{sPt_MJ9 ztJn3t&o;@Q(R$DR+PZkv^Jl3UyZF9me|fujag$?L0}`5Av++*o&zQ3HD+CNSE@jtf z|C^9h{P*WJC)Vf<#ff=4XZRfu%i$|e<+#x_H*7;(qH;pg&g#A1^CxfQW7E_E37(ES ztSZVAlsJ#y?9T6B$?eyV&wXzbH@(hodYHlcI)kXj_>qgx@=ANw0B8<%;GZZ&XV}E_O`L)oq zp9zQK)9Y)_9!~0L5phmg7!4HOC&wi(3RD_0gDY+7EqlxJ!oD*at{w_ak%U;@`?C1@ z^G)(^?*IRrz4dRx)N2RLYX3*4l;7z-vPQtbqfj)mWAzE6L?)o-`r>)&Qb1j;D-*UB z=x=&c0d(69ezUFi?bq*YKN!t3v2{n6&S3#gP^20-FA2^1|HSs<)ZJS*{g?CuJAkeC z%Odqyb(MtHMe(l77*FZie6HEhx##WlS3kJR^)k*JR5&USsqt&?i7OwU7p|KGj5pC` zO_58#{fT|@`&{TZ1IE>@t50ltEUBajjLffGPJ5Tm*I1Qa4a^4&p00i_>zopr0Oogi ALjV8( diff --git a/src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png b/src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png new file mode 100644 index 0000000000000000000000000000000000000000..21e850d08abd255661a213f0376cf9feca5750b3 GIT binary patch literal 900 zcmeAS@N?(olHy`uVBq!ia0vp^6+j%y!3HFo!W6846icy_X9x!n)NrJ9FfcG%d%8G= zRLprh*D(9GgUIpuU7BwNcBlqlo8_=z!NLons`DKqxm)X)c>jw0Vwt-uZ2rP4+2)gl z^jjyDX>Dm<&@xSEhhF8mpEZ+oe*0P3|F551V`a}?SNHy&r48Vjf;n7miRL|fBbgWT|Y9riKnl_+}+E* z_S=!yQ}sB+_*mSJ=w4j=en#irn~jMZtuya0IN8-vKmXj~Rk`gGNrYjLwTDp)v8 z+O3{D%VqaGft9DUF1p;h=iyw?G9xK=N1nh_*LC_G9jCHVWtx;*H}BxwEMji^*_Gws z#Y2&Aw642+H+pM&gYA2>I}r0vSf{tsU%a=rV9A`wvzH5A zE{49(6)N~woYLB8e9QE>X`iV@keKT}n{(YU`fEOmAFG`AxT{&OD#fY%A}}m~&V>Z5 zfQ}5RFHnWmPwl^3k?~m3kqzNbpo&Q*zR~kn%{l*k?cBKQzjs@F`4Rj6{?yK(tlSOj zUaxK1nY7d4PxY_5gTLw&0~P^;M{v=UTRUczG{(nvaztzGzgOm|;Kb(c8GGH@)3ot{ zhr#Bl-X`Anmc}@5D6qQzAohD_$9~D&nY+DrmT`T%deF4-$Kj*y;5SNf19k?`!#`K{*zz+tQNP|%bv5qY{lT|>gTe~ HDWM4f<9VMc literal 0 HcmV?d00001 From 17de40d7b2549d429f7a3196fda2b00506b2f159 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 May 2025 14:52:10 +0200 Subject: [PATCH 05/11] kill all zebras --- changelog | 1 + .../standard/BlockMutatorBalefire.java | 23 +++++ .../weapon/sedna/factory/GunFactory.java | 3 +- .../sedna/factory/GunFactoryClient.java | 1 + .../weapon/sedna/factory/LegoClient.java | 13 +++ .../sedna/factory/XFactoryCatapult.java | 33 ++++++- .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/sedna/ItemRenderFatMan.java | 74 +++++++++++++- .../hbm/render/util/RenderMiscEffects.java | 93 +++++++++--------- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../textures/items/ammo_standard.ct_hook.png | Bin 191 -> 239 bytes .../items/ammo_standard.ct_mortar.png | Bin 195 -> 314 bytes .../items/ammo_standard.ct_mortar_charge.png | Bin 0 -> 465 bytes .../items/ammo_standard.ct_rocket.png | Bin 178 -> 175 bytes .../items/ammo_standard.nuke_balefire.png | Bin 0 -> 562 bytes .../assets/hbm/textures/items/biomass_alt.png | Bin 525 -> 0 bytes .../assets/hbm/textures/items/gun_bf_ammo.png | Bin 549 -> 0 bytes .../hbm/textures/items/gun_cryolator_ammo.png | Bin 249 -> 0 bytes .../textures/models/weapons/benelli_tex.png | Bin 1499 -> 0 bytes .../models/weapons/fatman_balefire.png | Bin 900 -> 873 bytes .../hbm/textures/models/weapons/pch.png | Bin 333 -> 0 bytes 22 files changed, 194 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar_charge.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png delete mode 100755 src/main/resources/assets/hbm/textures/items/biomass_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/pch.png diff --git a/changelog b/changelog index 6c02bce7b..d62a70591 100644 --- a/changelog +++ b/changelog @@ -12,6 +12,7 @@ * This means that reading the fill state of multiple batteries over the same channel should result the combined fill state of all batteries * Halved base spread of the .22 SMG * Certain secret guns now have a proper way of being obtained +* Demolition mini nukes now create fire again ## Fixed * Fixed RoR controller having the wrong recipe \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java new file mode 100644 index 000000000..4560852e0 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockMutatorBalefire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, ModBlocks.balefire); + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index f12233377..98b4f09e8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -101,6 +101,7 @@ public class GunFactory { R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, + NUKE_BALEFIRE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -126,7 +127,7 @@ public class GunFactory { CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, TAU_URANIUM, COIL_TUNGSTEN, COIL_FERROURANIUM, - NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, NUKE_BALEFIRE, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index e568369a9..4576cf7a0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -203,6 +203,7 @@ public class GunFactoryClient { setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high); nuke_tots.setRenderer(LegoClient.RENDER_GRENADE); nuke_hive.setRenderer(LegoClient.RENDER_HIVE); + nuke_balefire.setRenderer(LegoClient.RENDER_NUKE_BALEFIRE); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge, energy_tesla_ir); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING_SUB, energy_tesla_ir_sub); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index f3d2e68a5..ac476aa60 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -12,6 +12,7 @@ import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.item.weapon.sedna.ItemRenderFatMan; import com.hbm.render.tileentity.RenderArcFurnace; import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; @@ -435,6 +436,18 @@ public class LegoClient { GL11.glPopMatrix(); }; + public static BiConsumer RENDER_NUKE_BALEFIRE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(-90, 0, 1, 0); + GL11.glTranslatef(0, -1, 1F); + GL11.glShadeModel(GL11.GL_SMOOTH); + ItemRenderFatMan.renderBalefire(interp); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + public static BiConsumer RENDER_HIVE = (bullet, interp) -> { GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java index 0617d33b7..42d957506 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java @@ -8,6 +8,8 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorBalefire; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; @@ -44,6 +46,7 @@ public class XFactoryCatapult { public static BulletConfig nuke_high; public static BulletConfig nuke_tots; public static BulletConfig nuke_hive; + public static BulletConfig nuke_balefire; public static BiConsumer LAMBDA_NUKE_STANDARD = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; @@ -64,9 +67,9 @@ public class XFactoryCatapult { if(bullet.isDead) return; bullet.setDead(); - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15); vnt.setBlockAllocator(new BlockAllocatorStandard(64)); - vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorFire())); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); @@ -83,6 +86,27 @@ public class XFactoryCatapult { spawnMush(bullet, mop); }; + public static BiConsumer LAMBDA_NUKE_BALEFIRE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + vnt.setBlockAllocator(new BlockAllocatorStandard(64)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBalefire())); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F); + + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", true); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250)); + }; + public static void incrementRad(World world, double posX, double posY, double posZ, float mult) { for(int i = -2; i <= 2; i++) { for(int j = -2; j <= 2; j++) { if(Math.abs(i) + Math.abs(j) < 4) { @@ -136,12 +160,13 @@ public class XFactoryCatapult { nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH); nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setDamage(0.35F).setOnImpact(LAMBDA_NUKE_TINYTOT); nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.25F).setOnImpact(LAMBDA_NUKE_HIVE); + nuke_balefire = new BulletConfig().setItem(EnumAmmo.NUKE_BALEFIRE).setDamage(2.5F).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_BALEFIRE); ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) .dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive)) + .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire)) .offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D) .setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7fbac54ce..07de3e21c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1011,6 +1011,7 @@ public class ResourceManager { public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation fatman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman.png"); public static final ResourceLocation fatman_mininuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_mininuke.png"); + public static final ResourceLocation fatman_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_balefire.png"); public static final ResourceLocation lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png"); public static final ResourceLocation lasrifle_mods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle_mods.png"); public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java index 100cb62e9..67ad4ba90 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java @@ -3,8 +3,10 @@ package com.hbm.render.item.weapon.sedna; import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactoryCatapult; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -34,7 +36,7 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { @Override public void renderFirstPerson(ItemStack stack) { - + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex); double scale = 0.5D; @@ -81,10 +83,9 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { GL11.glPopMatrix(); if(isLoaded || nuke[0] != 0 || nuke[1] != 0 || nuke[2] != 0) { - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); GL11.glPushMatrix(); GL11.glTranslated(nuke[0], nuke[1], nuke[2]); - ResourceManager.fatman.renderPart("MiniNuke"); + renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glPopMatrix(); } @@ -132,8 +133,71 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { ResourceManager.fatman.renderPart("Lid"); if(!isLoaded) GL11.glTranslated(0, 0, 3); ResourceManager.fatman.renderPart("Piston"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); - if(isLoaded) ResourceManager.fatman.renderPart("MiniNuke"); + if(isLoaded) renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glShadeModel(GL11.GL_FLAT); } + + public void renderNuke(Object type) { + if(type == XFactoryCatapult.nuke_balefire) { + renderBalefire(interp); + } else { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + } + } + + public static void renderBalefire(float interp) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(ResourceManager.fatman_balefire_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + mc.renderEngine.bindTexture(RenderMiscEffects.glintBF); + mc.entityRenderer.disableLightmap(interp); + + float scale = 2F; + float r = 0F; + float g = 0.8F; + float b = 0.15F; + float speed = -6; + float glintColor = 0.76F; + int layers = 3; + + GL11.glPushMatrix(); + float offset = mc.thePlayer.ticksExisted + interp; + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glDepthMask(false); + + for(int k = 0; k < layers; ++k) { + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0F, movement, 0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + ResourceManager.fatman.renderPart("MiniNuke"); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + + mc.entityRenderer.enableLightmap(interp); + } } diff --git a/src/main/java/com/hbm/render/util/RenderMiscEffects.java b/src/main/java/com/hbm/render/util/RenderMiscEffects.java index 037b7e45e..7e944e084 100644 --- a/src/main/java/com/hbm/render/util/RenderMiscEffects.java +++ b/src/main/java/com/hbm/render/util/RenderMiscEffects.java @@ -10,60 +10,61 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.IModelCustom; public class RenderMiscEffects { - + public static ResourceLocation glint = new ResourceLocation(RefStrings.MODID + ":textures/misc/glint.png"); - + public static ResourceLocation glintBF = new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png"); + public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float colorMod, float r, float g, float b, float speed, float scale) { - GL11.glPushMatrix(); - float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; - GL11.glEnable(GL11.GL_BLEND); - float color = colorMod; - GL11.glColor4f(color, color, color, 1.0F); - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDepthMask(false); + GL11.glPushMatrix(); + float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; + GL11.glEnable(GL11.GL_BLEND); + float color = colorMod; + GL11.glColor4f(color, color, color, 1.0F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDepthMask(false); - for (int k = 0; k < 2; ++k) { - - GL11.glDisable(GL11.GL_LIGHTING); - - float glintColor = 0.76F; - - GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - - float movement = offset * (0.001F + (float)k * 0.003F) * speed; - - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(30.0F - (float)k * 60.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.0F, movement, 0.0F); - - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - if("all".equals(part)) - model.renderAll(); - else - model.renderPart(part); - } + for(int k = 0; k < 2; ++k) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glDepthMask(true); - GL11.glLoadIdentity(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - } + GL11.glDisable(GL11.GL_LIGHTING); + + float glintColor = 0.76F; + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - (float) k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, movement, 0.0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + if("all".equals(part)) + model.renderAll(); + else + model.renderPart(part); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float r, float g, float b, float speed, float scale) { renderClassicGlint(world, interpol, model, part, 0.5F, r, g, b, speed, scale); - } + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part) { - renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F/3F); - } + renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F / 3F); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5643c75cb..5c4eb045f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1072,6 +1072,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge) item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) item.ammo_standard.coil_ferrouranium.name=Ferrourankugel item.ammo_standard.coil_tungsten.name=Wolframkugel +item.ammo_standard.ct_hook.name=Enterhaken +item.ammo_standard.ct_mortar.name=Sprengladung +item.ammo_standard.ct_mortar_charge.name=Geballte Ladung item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas @@ -2071,6 +2074,7 @@ item.gun_b92.name=§9B92 Energiepistole§r item.gun_b92_ammo.name=§9B92-Energiezelle§r item.gun_bolter.name=Boltergewehr item.gun_carbine.name=Karabiner +item.gun_charge_thrower.name=Ladungswerfer item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole item.gun_cryocannon.name=Kyro-Kanone diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 725b7c61a..8128b5cfb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1797,6 +1797,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball item.ammo_standard.coil_tungsten.name=Coilgun Tungsten Ball +item.ammo_standard.ct_hook.name=Grappling Hook +item.ammo_standard.ct_mortar.name=Demolition Charge +item.ammo_standard.ct_mortar_charge.name=Heavy Demolition Charge item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel item.ammo_standard.flame_gas.name=Flamer Fuel, Gas @@ -2882,6 +2885,7 @@ item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_bolter.name=Bolter item.gun_carbine.name=Carbine +item.gun_charge_thrower.name=Charge Thrower item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png index 3cd514abeaeff534a9dedaf49557269ff2554ddc..de59811d7857106f973fa8a773e1b90291646f04 100644 GIT binary patch delta 195 zcmV;!06hP{0q+5jG=HW^L_t(Ijm43%6~iD5M9-N-y=!_#(I^__MsZI~uTA78_&JV^ zahhDm6aOO#;NO{g#ZpQDK&=(3+Pw<^Fta$qEhOWc=tzcvvyhBY!N*)A!`%S@B7%9I zky5&!y}|plnFYxxrF6S_T@}o1a(C2Pu`J8w!<(SBzK@8&%sk-kP}TdL?7#6Kikx$t xNyZlRmWT*M1SB_ZSa2nIBj)5#-K(iO?q)fJ+rG z(OTkBn$um002ovPDHLkV1oAi BJUjpZ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png index f123c98ed5fe0f8d52c58a008a4ec4a8996d6569..148c63268cc23dfd8a9ebd7642be98efe45d57b6 100644 GIT binary patch delta 271 zcmV+q0r39A0lET^G=K3)L_t(IjjfR}Y63wNhQHk-1PoU4iUl!6PN49bG#1`K7|0nc zasmr4F<_a_VjByEP6xW*y06VkU zC5X>B8V~)@L;Laf@B>Bv@=m;i#k};7yJpM!eGRQ+Cs!jJAd7jKJrACIzy7RH)o6?; zHH`E1@r{TeB3OI>O{n;sx#(%naM;EaWN<9mi~a;1c*Uy2Ao3vT_WND_JR0g VzZXKwpa1{>00>D%PDHLkV1hH6e>4C9 delta 151 zcmV;I0BHZZ0>c52G=F+YL_t(Ijir*y6~G_}1TmFuX_U5|nUi^_;bX#4*>O-sOabTs zx*SxqVY@-H?d=Z0JGBD2qHtxL>unLhW0gU+5da9u$s{!xO(dHQTa$Ezb>?9LAj;2o zu$qjps=5~GGug1JZvCat5O>-eUA0-AudsX=1Bh(W*$Q@&Y0eMI zNJiK$eF5-sS7Ug5gx&Rm)l%Rtxf}EHv+T@6-qCAvh9Yc5z0(K0e`> ze7074%-Vj*M>0Y&Ukt$^L6EEV@EL-SHusrYn8sW4tYEvwvKnE#YSSO@GsD`$Cz26( z24^A-z|Hj)-kN7N=}2WA{rdQ1uKiMbGjM;rkK>(V82kZ&5NsmEdWS+^6~Kj!J!@=o z)I7d9y+SD!ieUkyvW{uSdWWbF)G6kR*6iYp>0g{&A|i+gp65l5Nh<4TrIc=z!OzbC zD5bQBXr+{P-RLomr0JlceoLaOv{53WgE(FP5%|7u0UF>NR%WJs9}o5z00000NkvXX Hu0mjfCq&D( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png index 4c6ca590ae6120a14351682ed4dfa9d7180d5f91..a68e433f676844d9ef191826bf293ad3b5b463dd 100644 GIT binary patch delta 130 zcmV-|0Db?m0j~j&G<#-AL_t(Ijm^=)5x^h_1i;hED2>vtGxN(Z2_TqH_^HS0An=OV delta 133 zcmV;00DAwg0kQ#*G=6DGL_t(Ijjhqa4Zt7>1<;R^F&d+>nZ1<6w1Pm(i39&d0r;bs zd5XyFWXBBv06GX+vxY^4_TvH2MP5TyWIM1TstQ$gq2T~zVOwwsc!s0v9RGOQNovy( nlD@ZxqyY~p0ntm^$mhBM-AX$QShirh00000NkvXXu0mjfisU*H diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4f3649019d06e027ace5fdd3afc84306c641a6 GIT binary patch literal 562 zcmV-20?qx2P)`)QG!9~zfLH!#Xf+!u-iXwKfiN?glwuz0&OB0g!u2ZXl`~yAH<=%5H zhkGt;dnoOi@dp!9HfuDj4T>d`S9iX*@S@SEY}U^I2dC%v%0OQSXD4^!p%;gAQ?g;s z{X)#D&BDEm5{tzoolXOgNF)pJ9yi_}Pa8ow}6yVXlx$u95wd!Q=1~pFB+XLSsuDiA2PCa&AOU zO^wpeeiRgJZ0b~KD0K|2pRw^Ooju*G+A9pYLR2@Z==v^vJ|DSU4psALc>PY+WD$!x zRVh-EG$tmi-;ACX=C1DByg4{ex0iFUriU&2Rb0>*O+;-bpAB z9#5U0zw(PH!Mc35C8xG07*qoM6N<$f;;{J AUH||9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/biomass_alt.png b/src/main/resources/assets/hbm/textures/items/biomass_alt.png deleted file mode 100755 index 3e0eee5eb63ef896f9d3eec141c7807bcd4f7ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)PTLF#MZz`bLc~EelO?55f`S(jh?f)k z0|f87^42@`PK>Ul=t6IziwYbeD`aHo$Y7g}o%Lg58`EQ_v$u<6xH|JrpS$<{em@V- z1MdsxA=fN|2*PS6od&8;Y{F;~xLqoRWYKcR-UwD^5RNVf9w*!}6`UckN?~a*xg-gD zGmN+SxvzM6pU)wsAvmBy1Ti)**D6_7c&po)92sOU_K8%sNJr;I{9QJ7VkPb$su&&_MSHeR_1ABP9^S*uX83ND@dpD$wQt1VW$R$z z@1cJ|5xsqVywpAtC|tmI$;Ic540|m)qy1rCzld_g;B^Pshz)mQ6OTP0R@bPh`Oa4iAT2&EY&dO9g?!DBDTzsAvlK-nbZS932#U8w#I1rL zh!h7Got(r?Hy1&77jeqqq7I4E6cH99YzfY^}GV*-h-QO7BI*ucExxP!TKRPd~jTN#}VJ=+She;Am+Oz{` z`d_#QQkWi!ViLRt+qQpyaP{GWJhgZd%dByb!w8aibgAwv^WyUg`>ia6RGQ6xg{O}{ zu>E`*Aq3@eSy7MQ&dCEu0}7@^iHjtdMI*{kc35|}_*!XD{keguB`8|6%%7VFpx5i+ zIF8iKaD;RwONK)zCj*I|H<@A(*Nm|U{RnVCg2Md!)0 zS3rCm;<($hcS^E1Xp@?ZvUKePLbV9#aUz6>X$4N-xI!dk5XgY=`yz&6>^-DoxAIa` nC7v%)RgImI$J;%I^dI0CxDmE=yipnl00000NkvXXu0mjfyT$U; diff --git a/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png deleted file mode 100644 index 11a1af457af0d5518c1552da72659b1eb12502e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwY1Q6G=C`*Q{_<^bln`_;m-PP+;St2@Qu71ok>@zZp_4*qz1v@*Dfj z1Cak4=wllNldy`G;b5b0tZ3mtbc{!N13kflHa*N z@$iJg9o*+SS46yT$k)7Eb4O}Jze*%u66(f|Me diff --git a/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png deleted file mode 100644 index 2381fab496721827d1231c85015bf1e0710656fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1499 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 CXNcwi delta 861 zcmaFK*1|r)q~6-o#WAE}&fB?$*|!};j?eGXd@Ha+HTc>rhXo53UI-QfE#o+yB3R zj{^k`_XrE_t^4T|U;o?l`u+Ng)7RTiI@W3H(b4fqDL(V|>P?4!G(7g~ZuUk63#UoD)pKXL?4BpE@|4y^ms|HdoC{iJB*pH?6L{*nPQRn$ zR931?lXC0k9h{p*%xyorvK+j4DDsWgb(il(Z%uEoeQ$OLV*Uy1^mf+!i}%(RESVE| z_EKcz+7s3JbMsfR2<%bU>AG{%#nAV;LIwYdQ(7C1ZWbFMo^f6Zs{ zW0mtBcQxx(r8t#e1cnCCy^ydK(2+s)2CA_7sr`2=G9D{BvVlBW5Ai8b$s`ls==rPW zoPWM{Zrt_XyDh%_h<$&5YG+VZ?uK=**Ea1;+UfA8`d8h-Uv-KBi+}+nxM<3)9kWUr z<6}EHqP6zlEAv!vVsrP5y>9Jk+W5f3VDnUO6YqOVW1Ke>SY3Y*`@OSczhv&r-QGLP zxV~LIXxjMW@KJYh*?K`cw4Ut{GsSyg7ri;0=Lw#`|#GR*5@j#;$j{M4Ch zO3y1|uV;Upa8NL*?3vCM-r~NySFPWxHGWKRTsB?j^p?3BpIO>H(+!)oY?iU4q>P~6 z&K~W_vB`hp`ljwsdwcosmD>LEGjFPuOaDlBnQUtGY}U)-ollB-g=9GwhE***#`ErX zhQ|wce?HxP`T>iS6|ac8a>&hm`O_q$W(_zURP3EC^6T7`BR`Ip$b2#0$ky+3`@c=r f?ERX+VE@T4e^!gz>t)Yb1|aZs^>bP0l+XkK{CJ$? diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pch.png b/src/main/resources/assets/hbm/textures/models/weapons/pch.png deleted file mode 100644 index 97b11c5afac2cc8b1f66e55612d6c15ea8c1e816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)rv}t1rtU-g^K5GXns^yR{ZtYaHuu1H4N3xpNNAIWRMb=mADVpp*h|!N9A8 zM$C+76V_S~eG4Qah)DcBFwZl*_we5TS^}*#lv4Zbfj=-%RTY4rC1{%F0m3;406R!@ z1I!F&-Wvxa$L7acbOUu=pPrKEB) Date: Thu, 8 May 2025 19:31:55 +0200 Subject: [PATCH 06/11] Fixed id mismatch in steam turbine OpenComputers integration --- .../java/com/hbm/handler/CompatHandler.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index 62fc432c0..46ce74fc0 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -38,16 +38,15 @@ public class CompatHandler { * @return Object[] array containing an int with the "compression level" */ public static Object[] steamTypeToInt(FluidType type) { - switch(type.getID()) { - case(4): // Fluids.HOTSTEAM - return new Object[] {1}; - case(5): // Fluids.SUPERHOTSTEAM - return new Object[] {2}; - case(6): // Fluids.ULTRAHOTSTEAM - return new Object[] {3}; - default: - return new Object[] {0}; - } + final int typeId = type.getID(); + if(typeId == Fluids.HOTSTEAM.getID()) { + return new Object[]{1}; + } else if(typeId == Fluids.SUPERHOTSTEAM.getID()) { + return new Object[]{2}; + } else if(typeId == Fluids.ULTRAHOTSTEAM.getID()) { + return new Object[]{3}; + } + return new Object[] {0}; } /** From be2edd87d8539e21cc740f751feb87a925f4a637 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 8 May 2025 22:29:32 +0200 Subject: [PATCH 07/11] Fixed wrong tank type. getInfo returns input tank type and setType also works with input tank type --- .../tileentity/machine/TileEntityChungus.java | 4 +- .../TileEntityMachineLargeTurbine.java | 38 +++++++++---------- .../machine/TileEntityMachineTurbine.java | 2 +- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 9aa33070d..db9394516 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -139,7 +139,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr if(operational) turnTimer = 25; networkPackNT(150); - + } else { this.lastRotor = this.rotor; @@ -306,7 +306,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 060710858..dc238dce9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -49,7 +49,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public long power; public FluidTank[] tanks; protected double[] info = new double[3]; - + private boolean shouldTurn; public float rotor; public float lastRotor; @@ -57,7 +57,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme private AudioWrapper audio; private float audioDesync; - + //Configurable Values public static long maxPower = 100000000; public static int inputTankSize = 512_000; @@ -67,7 +67,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public TileEntityMachineLargeTurbine() { super(7); - + tanks = new FluidTank[2]; tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); @@ -107,11 +107,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.info = new double[3]; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -144,7 +144,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; - + tanks[1].unloadTank(5, 6, slots); this.networkPackNT(50); @@ -152,12 +152,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } else { this.lastRotor = this.rotor; this.rotor += this.fanAcceleration; - + if(this.rotor >= 360) { this.rotor -= 360; this.lastRotor -= 360; } - + if(shouldTurn) { // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync)); @@ -172,7 +172,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme audio.updatePitch(0.25F + 0.75F * turbineSpeed); } else { this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); - + if(audio != null) { if(this.fanAcceleration > 0) { float turbineSpeed = this.fanAcceleration / 15F; @@ -186,7 +186,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } } } - + protected DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -214,11 +214,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[0].deserialize(buf); tanks[1].deserialize(buf); } - + public long getPowerScaled(int i) { return (power * i) / maxPower; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -226,7 +226,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[1].readFromNBT(nbt, "steam"); power = nbt.getLong("power"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -249,12 +249,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public long getMaxPower() { return this.maxPower; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -281,11 +281,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public String getComponentName() { return "ntm_turbine"; } - + @Override public void onChunkUnload() { super.onChunkUnload(); - + if(audio != null) { audio.stopSound(); audio = null; @@ -311,7 +311,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 88f1c3694..0b89eb6d9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -364,7 +364,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) From 15fb0c1ad7e9c7ca441b457e11429a526ea11518 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 8 May 2025 22:43:49 +0200 Subject: [PATCH 08/11] Improved steam turbine OpenComputers integration + documented --- .../tileentity/machine/TileEntityChungus.java | 19 ++++++++++++++----- .../TileEntityMachineLargeTurbine.java | 17 ++++++++++++----- .../machine/TileEntityMachineTurbine.java | 16 +++++++++++----- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index db9394516..16121b0cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -297,29 +297,35 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr } } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override @@ -329,6 +335,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr "getFluid", "getType", "setType", + "getPower", "getInfo" }; } @@ -343,6 +350,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr return getType(context, args); case ("setType"): return setType(context, args); + case ("getPower"): + return getPower(context, args); case ("getInfo"): return getInfo(context, args); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index dc238dce9..a4655c162 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -302,29 +302,35 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override @@ -334,6 +340,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme "getFluid", "getType", "setType", + "getPower", "getInfo" }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 0b89eb6d9..3180fbefa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -355,29 +355,35 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return "ntm_turbine"; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {true}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override From 805ee3a9980e89c2d06f9d1ae6d7ade641f3a2f9 Mon Sep 17 00:00:00 2001 From: Night Heron Date: Fri, 9 May 2025 23:30:40 +0800 Subject: [PATCH 09/11] cumming --- src/main/resources/assets/hbm/lang/zh_CN.lang | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 51e23d9ab..5d8f62943 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -6048,3 +6048,15 @@ container.ammoBag=弹药袋 item.ammo_bag.name=弹药袋 item.ammo_bag_infinite.name=无限弹药袋 item.gun_g3_zebra.name=斑马步枪 +container.rttyController=无线红石信号控制器 +container.rttyReader=无线红石信号控制器 +tile.radio_torch_controller.name=无线红石信号控制器 +tile.radio_torch_controller.desc=可以接收信号并将信号传送到与其连接的机器 +tile.radio_torch_reader.name=无线红石信号控制器 +tile.radio_torch_reader.desc=从被连接的块读取数值并以指定的频率发送 +item.ammo_standard.ct_hook.name=抓钩 +item.ammo_standard.ct_mortar.name=炸药包 +item.ammo_standard.ct_mortar_charge.name=重型炸药包 +item.gun_charge_thrower.name=炸药投掷器 +tile.sandbags.name=沙袋 +tile.wood_barrier.name=木制围栏 From f3a9c0f787740bb4e13245480cc07a4757431861 Mon Sep 17 00:00:00 2001 From: LegendaryDoge30 Date: Sat, 10 May 2025 00:12:33 +0200 Subject: [PATCH 10/11] puter --- src/main/java/com/hbm/blocks/ModBlocks.java | 16 +- .../assets/hbm/models/blocks/puter.obj | 1070 +++++------------ .../hbm/textures/blocks/deco_computer.png | Bin 1832 -> 671 bytes 3 files changed, 294 insertions(+), 792 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d1c604bed..41cbe0f7f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -335,7 +335,7 @@ public class ModBlocks { public static Block brick_compound; public static Block brick_asbestos; public static Block brick_fire; - + public static Block lightstone; public static Block concrete_slab; @@ -824,7 +824,7 @@ public class ModBlocks { public static Block drone_dock; public static Block drone_crate_provider; public static Block drone_crate_requester; - + public static Block pneumatic_tube; public static Block fan; @@ -1479,7 +1479,7 @@ public class ModBlocks { gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); - + sandbags = new BlockSandbags(Material.ground).setBlockName("sandbags").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":sandbags"); wood_barrier = new BlockBarrier(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_barrier").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier"); @@ -1549,7 +1549,7 @@ public class ModBlocks { brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab); stones_slab = new BlockMultiSlabMeta(null, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_slab").setCreativeTab(MainRegistry.blockTab); stones_double_slab = new BlockMultiSlabMeta(stones_slab, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_double_slab").setCreativeTab(MainRegistry.blockTab); - + concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab); concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); @@ -1604,7 +1604,7 @@ public class ModBlocks { brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); - deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); + deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.125F, 0F, 0F, .875F, .875F, .625F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -1955,7 +1955,7 @@ public class ModBlocks { drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider"); drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester"); - + pneumatic_tube = new PneumoTube().setBlockName("pneumatic_tube").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_tube"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -2698,14 +2698,14 @@ public class ModBlocks { GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName()); GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName()); - + //Lightstone and its stair/slab variants register(lightstone); register(lightstone_tile_stairs); register(lightstone_bricks_stairs); register(stones_slab, ItemModSlab.class); register(stones_double_slab, ItemModSlab.class); - + GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName()); GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName()); GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/models/blocks/puter.obj b/src/main/resources/assets/hbm/models/blocks/puter.obj index c8d5fc5a2..1b7c78f85 100644 --- a/src/main/resources/assets/hbm/models/blocks/puter.obj +++ b/src/main/resources/assets/hbm/models/blocks/puter.obj @@ -1,786 +1,288 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.2 # www.blender.org -o Cube.002 -v -0.182506 -0.356313 -0.499021 -v -0.202175 -0.376577 -0.479353 -v -0.202175 -0.356313 -0.479353 -v 0.202175 -0.376577 -0.479353 -v 0.182506 -0.356313 -0.499021 -v 0.202175 -0.356313 -0.479353 -v 0.182506 -0.356313 0.025979 -v -0.182506 -0.376577 0.025979 -v 0.182506 -0.376577 0.025979 -v 0.168634 -0.353125 -0.007583 -v 0.168634 -0.353125 -0.465459 -v -0.168634 -0.353125 -0.007583 -v 0.202175 -0.356313 0.006310 -v -0.202175 -0.356313 0.006310 -v -0.202175 -0.376577 0.006310 -v -0.182475 -0.376637 -0.499021 -v 0.182509 -0.376637 -0.499021 -v 0.202175 -0.376577 0.006310 -v -0.168634 -0.353125 -0.465459 -v -0.182506 -0.356313 0.025979 -v 0.236819 -0.376637 0.112318 -v -0.236819 -0.391892 0.112318 -v 0.236819 -0.391892 0.112318 -v 0.262500 -0.500000 -0.434422 -v 0.262500 -0.500000 -0.000000 -v -0.262500 -0.500000 -0.434422 -v 0.243379 -0.500000 0.123162 -v 0.269772 -0.391892 0.010843 -v 0.243379 -0.391892 0.123162 -v 0.262500 -0.391892 -0.000000 -v -0.236819 -0.376637 0.112318 -v -0.262500 -0.391892 -0.000000 -v -0.262500 -0.500000 -0.000000 -v -0.269772 -0.391892 0.010843 -v 0.242168 -0.500000 -0.499021 -v -0.242168 -0.500000 -0.499021 -v -0.262500 -0.376637 -0.434422 -v -0.242168 -0.376637 -0.499021 -v 0.242168 -0.376637 -0.499021 -v 0.262500 -0.376637 -0.434422 -v 0.236819 -0.500000 0.112318 -v 0.269772 -0.500000 0.010843 -v -0.243379 -0.500000 0.123162 -v -0.236819 -0.500000 0.112318 -v 0.262500 -0.376637 -0.000000 -v -0.243379 -0.391892 0.123162 -v -0.269772 -0.500000 0.010843 -v -0.262500 -0.376637 -0.000000 -vt 0.737500 0.775000 -vt 0.750000 0.787500 -vt 0.737500 0.787500 -vt 0.975000 0.787500 -vt 0.962500 0.775000 -vt 0.975000 0.775000 -vt 0.962500 0.725000 -vt 0.750000 0.712500 -vt 0.962500 0.712500 -vt 0.962500 0.062500 -vt 0.962500 0.350000 -vt 0.750000 0.062500 -vt 0.975000 0.725000 -vt 0.937500 0.400000 -vt 0.925000 0.712500 -vt 0.925000 0.400000 -vt 0.737500 0.787500 -vt 0.962500 0.787500 -vt 0.962500 0.712500 -vt 0.975000 0.400000 -vt 0.975000 0.712500 -vt 0.950000 0.700000 -vt 0.950000 0.412500 -vt 0.750000 0.750000 -vt 0.962500 0.750000 -vt 0.950000 0.412500 -vt 0.962500 0.400000 -vt 0.750000 0.775000 -vt 0.962500 0.750000 -vt 0.750000 0.725000 -vt 0.737500 0.712500 -vt 0.650000 0.075000 -vt 0.362500 0.062500 -vt 0.650000 0.062500 -vt 0.575000 0.475000 -vt 0.700000 0.475000 -vt 0.575000 0.662500 -vt 0.350000 0.162500 -vt 0.412500 0.225000 -vt 0.350000 0.225000 -vt 0.425000 0.225000 -vt 0.425000 0.162500 -vt 0.687500 0.162500 -vt 0.350000 0.150000 -vt 0.425000 0.137500 -vt 0.350000 0.137500 -vt 0.425000 0.075000 -vt 0.412500 0.137500 -vt 0.725000 0.000000 -vt 0.937500 0.000000 -vt 0.975000 0.062500 -vt 0.725000 0.075000 -vt 0.687500 0.150000 -vt 0.725000 0.150000 -vt 0.725000 0.237500 -vt 0.687500 0.237500 -vt 0.750000 0.487500 -vt 0.712500 0.475000 -vt 0.762500 0.487500 -vt 0.537500 0.150000 -vt 0.350000 0.162500 -vt 0.350000 0.150000 -vt 0.762500 0.650000 -vt 0.750000 0.650000 -vt 0.350000 0.225000 -vt 0.425000 0.237500 -vt 0.350000 0.237500 -vt 0.587500 0.162500 -vt 0.537500 0.162500 -vt 0.350000 0.137500 -vt 0.412500 0.075000 -vt 0.350000 0.075000 -vt 0.412500 0.162500 -vt 0.687500 0.075000 -vt 0.587500 0.162500 -vt 0.637500 0.150000 -vt 0.637500 0.162500 -vt 0.712500 0.662500 -vt 0.700000 0.662500 -vt 0.350000 0.062500 -vt 0.662500 0.000000 -vt 0.662500 0.062500 -vt 0.912500 0.412500 -vt 0.862500 0.687500 -vt 0.862500 0.375000 -vt 0.750000 0.775000 -vt 0.750000 0.350000 -vt 0.975000 0.712500 -vt 0.937500 0.712500 -vt 0.737500 0.725000 -vt 0.750000 0.750000 -vt 0.737500 0.775000 -vt 0.950000 0.700000 -vt 0.362500 0.075000 -vt 0.537500 0.650000 -vt 0.537500 0.487500 -vt 0.425000 0.150000 -vt 0.975000 0.000000 -vt 0.662500 0.062500 -vt 0.662500 0.000000 -vt 0.725000 0.162500 -vt 0.587500 0.150000 -vt 0.587500 0.150000 -vt 0.350000 0.000000 -vt 0.862500 0.687500 -vt 0.875000 0.700000 -vt 0.825000 0.700000 -vt 0.812500 0.650000 -vt 0.812500 0.350000 -vt 0.862500 0.375000 -vt 0.925000 0.350000 -vt 0.925000 0.400000 -vt 0.812500 0.350000 -vt 0.812500 0.650000 -vt 0.762500 0.375000 -vt 0.800000 0.700000 -vt 0.762500 0.687500 -vt 0.750000 0.700000 -vt 0.925000 0.712500 -vt 0.925000 0.662500 -vt 0.912500 0.650000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.7071 -0.0000 0.7071 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.0946 0.9955 0.0000 -vn 0.0000 0.9955 0.0946 -vn 0.0946 0.9955 0.0000 -vn 0.0000 0.9955 -0.0946 -vn -0.7071 -0.0000 0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.9735 0.0000 0.2288 -vn -0.9748 0.0000 0.2229 -vn -0.8305 0.0000 -0.5570 -vn -0.9539 0.0000 -0.3002 -vn 0.9539 0.0000 -0.3002 -vn 0.9748 0.0000 0.2229 -vn -0.9735 0.0000 0.2288 -vn 0.8305 0.0000 -0.5570 -vn 0.0000 1.0000 0.0007 -vn -0.7065 -0.0011 -0.7077 -vn 0.7071 0.0001 -0.7071 -vn -0.0669 0.9955 0.0669 -vn -0.0669 0.9955 -0.0669 -vn 0.0669 0.9955 -0.0669 -vn 0.0669 0.9955 0.0669 -vn 0.0000 1.0000 -0.0031 -vn -0.0013 1.0000 -0.0004 -vn -0.0010 1.0000 0.0000 -vn 0.0010 1.0000 0.0002 -vn 0.0010 1.0000 0.0000 -vn 0.0013 1.0000 -0.0004 -vn -0.0010 1.0000 0.0002 -vn -0.0004 1.0000 0.0004 -vn 0.0004 1.0000 0.0004 -s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 10/10/4 11/11/4 12/12/4 -f 9/9/5 13/13/5 7/7/5 -f 14/14/6 2/15/6 15/16/6 -f 16/17/7 5/5/7 17/18/7 -f 6/19/8 18/20/8 4/21/8 -f 19/22/9 14/14/9 12/23/9 -f 12/24/10 7/7/10 10/25/10 -f 6/19/11 10/26/11 13/27/11 -f 1/28/12 11/29/12 5/5/12 -f 20/30/13 15/31/13 8/8/13 -f 21/32/3 22/33/3 23/34/3 -f 24/35/14 25/36/14 26/37/14 -f 27/38/15 28/39/15 29/40/15 -f 30/41/8 25/42/8 24/43/8 -f 31/44/16 32/45/16 22/46/16 -f 33/47/17 34/48/17 32/45/17 -f 16/49/7 17/50/7 35/51/7 -f 36/52/18 37/53/18 38/54/18 -f 24/43/19 39/55/19 40/56/19 -f 41/57/14 42/58/14 27/59/14 -f 22/60/4 29/61/4 23/62/4 -f 41/57/14 43/63/14 44/64/14 -f 23/65/20 45/66/20 21/67/20 -f 22/60/4 34/68/4 46/69/4 -f 46/70/21 47/71/21 43/72/21 -f 30/41/22 42/73/22 25/42/22 -f 26/74/6 32/45/6 37/53/6 -f 23/75/4 28/76/4 30/77/4 -f 44/64/14 47/78/14 33/79/14 -f 46/80/3 27/81/3 29/82/3 -f 9/83/23 31/84/23 21/85/23 -f 1/1/24 16/86/24 2/2/24 -f 4/4/25 17/18/25 5/5/25 -f 7/7/3 20/30/3 8/8/3 -f 19/87/4 12/12/4 11/11/4 -f 9/9/5 18/88/5 13/13/5 -f 14/14/6 3/89/6 2/15/6 -f 16/17/7 1/1/7 5/5/7 -f 6/19/8 13/27/8 18/20/8 -f 12/24/26 14/90/26 20/30/26 -f 19/91/27 1/28/27 3/92/27 -f 11/29/28 6/6/28 5/5/28 -f 10/25/29 7/7/29 13/13/29 -f 19/22/9 3/89/9 14/14/9 -f 12/24/10 20/30/10 7/7/10 -f 6/19/11 11/93/11 10/26/11 -f 1/28/12 19/91/12 11/29/12 -f 20/30/13 14/90/13 15/31/13 -f 21/32/3 31/94/3 22/33/3 -f 25/36/14 41/57/14 44/64/14 -f 44/64/14 33/79/14 25/36/14 -f 33/79/14 26/37/14 25/36/14 -f 26/37/14 36/95/14 35/96/14 -f 35/96/14 24/35/14 26/37/14 -f 27/38/15 42/73/15 28/39/15 -f 24/43/8 40/56/8 30/41/8 -f 40/56/8 45/66/8 30/41/8 -f 31/44/16 48/97/16 32/45/16 -f 33/47/17 47/71/17 34/48/17 -f 17/50/7 39/98/7 35/51/7 -f 35/51/7 36/99/7 16/49/7 -f 36/99/7 38/100/7 16/49/7 -f 36/52/18 26/74/18 37/53/18 -f 24/43/19 35/101/19 39/55/19 -f 41/57/14 25/36/14 42/58/14 -f 22/60/4 46/69/4 29/61/4 -f 41/57/14 27/59/14 43/63/14 -f 23/65/20 30/41/20 45/66/20 -f 22/60/4 32/102/4 34/68/4 -f 46/70/21 34/48/21 47/71/21 -f 30/41/22 28/39/22 42/73/22 -f 33/47/6 32/45/6 26/74/6 -f 32/45/6 48/97/6 37/53/6 -f 23/75/4 29/103/4 28/76/4 -f 44/64/14 43/63/14 47/78/14 -f 46/80/3 43/104/3 27/81/3 -f 2/105/30 16/106/30 38/107/30 -f 38/107/31 37/108/31 2/105/31 -f 37/108/32 48/109/32 15/110/32 -f 21/85/33 45/111/33 18/112/33 -f 45/113/34 40/114/34 18/115/34 -f 40/114/35 39/116/35 4/117/35 -f 39/116/30 17/118/30 4/117/30 -f 37/108/32 15/110/32 2/105/32 -f 48/119/36 31/84/36 15/120/36 -f 40/114/34 4/117/34 18/115/34 -f 8/121/37 15/120/37 31/84/37 -f 21/85/38 18/112/38 9/83/38 -f 9/83/23 8/121/23 31/84/23 -o Cube.001 -v 0.065019 -0.337090 -0.339524 -v 0.077958 -0.358688 -0.229123 -v 0.077958 -0.358688 -0.352438 -v -0.065019 -0.247914 -0.242045 -v -0.065019 -0.337090 -0.339524 -v -0.065019 -0.337090 -0.242037 -v -0.065019 -0.247914 -0.339516 -v -0.074076 -0.234429 -0.233013 -v -0.074076 -0.234429 -0.348548 -v 0.048744 -0.337090 -0.225761 -v -0.061658 -0.358688 -0.212822 -v 0.061658 -0.358688 -0.212822 -v -0.048744 -0.337090 -0.355799 -v 0.061658 -0.358688 -0.368738 -v -0.061658 -0.358688 -0.368738 -v -0.048736 -0.247914 -0.355799 -v 0.048744 -0.337090 -0.355799 -v 0.065019 -0.247914 -0.339516 -v 0.065019 -0.337090 -0.242037 -v 0.048736 -0.247914 -0.225761 -v -0.048744 -0.337090 -0.225761 -v -0.077958 -0.358688 -0.352438 -v 0.057767 -0.234429 -0.364857 -v 0.048736 -0.247914 -0.355799 -v 0.065019 -0.247914 -0.242045 -v 0.074076 -0.234429 -0.348548 -v 0.074076 -0.234429 -0.233013 -v -0.057767 -0.234429 -0.216704 -v -0.048736 -0.247914 -0.225761 -v -0.057767 -0.234429 -0.364857 -v 0.057767 -0.234429 -0.216704 -v -0.077958 -0.358688 -0.229123 -v -0.228515 -0.193409 -0.478319 -v -0.262500 -0.200363 -0.133796 -v -0.262500 -0.159424 -0.478319 -v -0.228515 0.290571 -0.478319 -v -0.262500 0.256505 -0.133796 -v -0.228434 0.290571 -0.133796 -v 0.262500 -0.234429 0.025979 -v 0.228515 -0.193409 -0.478319 -v 0.262500 -0.200363 -0.133796 -v 0.228434 -0.234429 -0.133796 -v 0.262500 -0.159424 -0.478319 -v 0.262500 0.256505 -0.133796 -v -0.262500 -0.234429 0.025979 -v -0.305185 -0.311180 -0.084290 -v -0.228434 -0.234429 -0.133796 -v 0.305185 0.367322 -0.084290 -v 0.228434 0.290571 -0.133796 -v 0.305271 0.367322 0.092896 -v 0.262500 0.290571 0.092896 -v 0.305271 -0.311180 0.092896 -v 0.305185 -0.311180 -0.084290 -v 0.339251 -0.277114 -0.084290 -v -0.305271 0.367322 0.092896 -v -0.305185 0.367322 -0.084290 -v -0.339251 0.333256 -0.084290 -v 0.262500 -0.234429 0.092896 -v -0.339251 0.333342 0.092896 -v -0.339251 -0.277200 0.092896 -v -0.262500 -0.234429 0.092896 -v 0.339251 -0.277200 0.092896 -v 0.339251 0.333342 0.092896 -v -0.339251 -0.277114 -0.084290 -v -0.305271 -0.311180 0.092896 -v 0.339251 0.333256 -0.084290 -v 0.228515 0.290571 -0.478319 -v 0.262500 0.256586 -0.478319 -v -0.241798 0.248016 -0.499021 -v -0.219945 0.269868 -0.499021 -v 0.241798 -0.150854 -0.499021 -v 0.219945 -0.172706 -0.499021 -v 0.241798 0.248016 -0.499021 -v -0.241798 -0.150854 -0.499021 -v -0.262500 0.256586 -0.478319 -v -0.219945 -0.172706 -0.499021 -v -0.262500 0.290571 0.025979 -v -0.262500 0.290571 0.092896 -v 0.262500 0.290571 0.025979 -v 0.219945 0.269868 -0.499021 -vt 0.325000 0.725000 -vt 0.375000 0.737500 -vt 0.325000 0.737500 -vt 0.450000 0.675000 -vt 0.500000 0.725000 -vt 0.450000 0.725000 -vt 0.500000 0.675000 -vt 0.450000 0.662500 -vt 0.500000 0.662500 -vt 0.387500 0.725000 -vt 0.437500 0.737500 -vt 0.387500 0.737500 -vt 0.512500 0.725000 -vt 0.562500 0.737500 -vt 0.512500 0.737500 -vt 0.512500 0.675000 -vt 0.562500 0.725000 -vt 0.325000 0.675000 -vt 0.375000 0.725000 -vt 0.387500 0.675000 -vt 0.437500 0.725000 -vt 0.325000 0.787500 -vt 0.375000 0.800000 -vt 0.387500 0.750000 -vt 0.562500 0.662500 -vt 0.562500 0.675000 -vt 0.375000 0.675000 -vt 0.325000 0.662500 -vt 0.375000 0.662500 -vt 0.437500 0.662500 -vt 0.437500 0.675000 -vt 0.512500 0.737500 -vt 0.575000 0.737500 -vt 0.575000 0.725000 -vt 0.512500 0.662500 -vt 0.575000 0.675000 -vt 0.575000 0.662500 -vt 0.387500 0.662500 -vt 0.450000 0.737500 -vt 0.375000 0.737500 -vt 0.337500 0.737500 -vt 0.325000 0.750000 -vt 0.337500 0.800000 -vt 0.387500 0.787500 -vt 0.387500 0.262500 -vt 0.375000 0.375000 -vt 0.375000 0.262500 -vt 0.187500 0.262500 -vt 0.200000 0.375000 -vt 0.187500 0.375000 -vt 0.062500 0.737500 -vt 0.262500 0.537500 -vt 0.262500 0.737500 -vt 0.562500 0.262500 -vt 0.575000 0.375000 -vt 0.562500 0.375000 -vt 0.600000 0.262500 -vt 0.750000 0.375000 -vt 0.387500 0.412500 -vt 0.387500 0.375000 -vt 0.012500 0.412500 -vt 0.012500 0.375000 -vt 0.012500 0.800000 -vt -0.000000 0.787500 -vt 0.037500 0.762500 -vt 0.562500 0.475000 -vt 0.562500 0.412500 -vt 0.575000 0.412500 -vt 0.187500 0.475000 -vt 0.187500 0.412500 -vt 0.200000 0.412500 -vt 0.750000 0.475000 -vt 0.575000 0.475000 -vt 0.200000 0.475000 -vt 0.375000 0.412500 -vt 0.375000 0.475000 -vt -0.000000 0.487500 -vt 0.012500 0.475000 -vt 0.037500 0.512500 -vt 0.287500 0.762500 -vt 0.325000 0.787500 -vt 0.312500 0.800000 -vt 0.287500 0.512500 -vt 0.312500 0.475000 -vt 0.325000 0.487500 -vt 0.012500 0.475000 -vt -0.000000 0.412500 -vt 0.350000 0.262500 -vt 0.450000 0.312500 -vt 0.450000 0.337500 -vt 0.500000 0.337500 -vt 0.487500 0.350000 -vt 0.012500 0.262500 -vt -0.000000 0.375000 -vt 0.387500 0.475000 -vt -0.000000 0.262500 -vt 0.200000 0.250000 -vt 0.187500 0.250000 -vt 0.575000 0.250000 -vt 0.562500 0.250000 -vt -0.000000 0.250000 -vt 0.375000 0.250000 -vt 0.200000 0.262500 -vt 0.350000 0.250000 -vt 0.750000 0.250000 -vt 0.750000 0.262500 -vt 0.337500 0.475000 -vt 0.325000 0.487500 -vt 0.325000 0.650000 -vt 0.500000 0.312500 -vt 0.487500 0.300000 -vt 0.462500 0.300000 -vt 0.462500 0.350000 -vt 0.062500 0.762500 -vt 0.575000 0.262500 -vt 0.750000 0.412500 -vt 0.287500 0.737500 -vt 0.062500 0.512500 -vt 0.062500 0.537500 -vt 0.037500 0.537500 -vt 0.037500 0.737500 -vt -0.000000 0.475000 -vt 0.012500 0.250000 -vt 0.387500 0.250000 -vt 0.600000 0.250000 -vt 0.337500 0.662500 -vt 0.525000 0.662500 -vt 0.537500 0.650000 -vt 0.537500 0.487500 -vt 0.525000 0.475000 -vt 0.262500 0.762500 -vt 0.287500 0.537500 -vt 0.262500 0.512500 -vn 0.8578 0.5139 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.8301 -0.5576 0.0000 -vn 0.0000 0.5139 0.8578 -vn 0.0000 0.5139 -0.8578 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 +mtllib puter.mtl +o Cube.003 +v -0.312500 -0.125000 0.062500 +v -0.312500 0.312500 0.062500 +v 0.312500 -0.125000 0.062500 +v -0.375000 -0.187500 0.062500 +v -0.312500 -0.125000 0.000000 +v -0.312500 0.312500 0.000000 +v 0.312500 -0.125000 -0.000000 +v -0.250000 -0.062500 0.062500 +v -0.250000 0.250000 0.062500 +v 0.250000 -0.062500 0.062500 +v 0.250000 0.250000 0.062500 +v 0.312500 0.312500 -0.000000 +v 0.312500 0.312500 0.062500 +v 0.375000 0.375000 0.062500 +v 0.375000 0.375000 -0.312500 +v 0.375000 -0.187500 0.062500 +v -0.375000 0.375000 0.062500 +v -0.375000 0.375000 -0.312500 +v -0.375000 -0.187500 -0.312500 +v -0.312500 0.312500 -0.312500 +v -0.312500 -0.187500 -0.312500 +v 0.312500 0.312500 -0.312500 +v -0.312500 0.250000 -0.500000 +v -0.312500 -0.187500 -0.500000 +v 0.312500 0.250000 -0.500000 +v 0.312500 -0.187500 -0.500000 +v 0.312500 -0.187500 -0.312500 +v 0.375000 -0.187500 -0.312500 +v -0.375000 -0.500000 0.500000 +v -0.375000 -0.500000 0.187500 +v -0.375000 -0.437500 0.500000 +v 0.375000 -0.500000 0.500000 +v 0.375000 -0.500000 0.187500 +v 0.375000 -0.437500 0.500000 +v 0.375000 -0.375000 0.187500 +v -0.375000 -0.375000 0.187500 +v -0.375000 -0.500000 0.125000 +v -0.375000 -0.500000 -0.500000 +v -0.375000 -0.312500 0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 -0.500000 -0.500000 +v 0.375000 -0.312500 0.125000 +v 0.375000 -0.312500 -0.500000 +v -0.375000 -0.312500 -0.500000 +v -0.000000 -0.250000 -0.312500 +v 0.108253 -0.250000 -0.250000 +v -0.000000 -0.187500 -0.312500 +v -0.108253 -0.250000 -0.250000 +v -0.108253 -0.250000 -0.125000 +v -0.108253 -0.187500 -0.250000 +v -0.108253 -0.187500 -0.125000 +v -0.000000 -0.187500 -0.062500 +v 0.108253 -0.187500 -0.125000 +v -0.000000 -0.250000 -0.062500 +v 0.108253 -0.250000 -0.125000 +v 0.108253 -0.187500 -0.250000 +v -0.312500 -0.312500 0.062500 +v -0.312500 -0.312500 -0.437500 +v -0.250000 -0.250000 0.000000 +v 0.312500 -0.312500 0.062500 +v 0.312500 -0.312500 -0.437500 +v 0.250000 -0.250000 -0.000000 +v 0.250000 -0.250000 -0.375000 +v -0.250000 -0.250000 -0.375000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3002 0.3002 0.9054 +vn -0.4082 -0.4082 0.8165 +vn -0.3002 -0.3002 0.9054 +vn 0.4082 -0.4082 0.8165 +vn 0.3002 -0.3002 0.9054 +vn 0.4082 0.4082 0.8165 +vn 0.3002 0.3002 0.9054 +vn -0.4082 0.4082 0.8165 +vn -1.0000 -0.0000 -0.0000 vn -0.0000 -1.0000 -0.0000 -vn 0.0000 -0.5576 -0.8301 -vn 0.8301 -0.5576 0.0000 -vn 0.0000 -0.5576 0.8301 -vn -0.5130 -0.6882 0.5130 -vn -0.5397 0.6461 -0.5397 -vn 0.5397 0.6461 -0.5397 -vn 0.5397 0.6461 0.5397 -vn -0.7071 0.0001 0.7071 -vn -0.5130 -0.6882 -0.5130 -vn 0.5130 -0.6882 -0.5130 -vn 0.5131 -0.6882 0.5130 -vn -0.7071 0.0001 -0.7071 -vn 0.7071 0.0001 -0.7071 -vn 0.7071 0.0001 0.7071 -vn -0.5397 0.6461 0.5397 -vn -0.8578 0.5139 0.0000 -vn 0.5130 -0.6882 0.5130 -vn -0.7046 -0.7046 -0.0837 -vn -0.7071 0.7071 0.0002 -vn 0.7046 -0.7046 -0.0837 -vn 0.0000 -0.5420 -0.8404 -vn 0.0000 0.5420 -0.8404 -vn 0.5420 0.0000 -0.8404 -vn 0.0000 1.0000 0.0000 -vn -0.5420 0.0000 -0.8404 -vn 0.7071 0.7071 -0.0003 -vn -0.7071 0.7071 -0.0003 -vn 0.2934 -0.2934 -0.9098 -vn 0.2934 0.2934 -0.9098 -vn -0.2934 -0.2934 -0.9098 -vn -0.2934 0.2934 -0.9098 -vn -0.7071 -0.7071 -0.0003 -vn 0.7071 -0.7071 -0.0003 -vn 0.7071 0.7071 0.0002 -vn -0.5000 0.5000 -0.7071 -vn 0.5000 -0.5000 -0.7071 -vn 0.5000 0.5000 -0.7070 -vn -0.5000 -0.5000 -0.7070 -vn 0.0000 -0.7071 -0.7071 -vn -0.7071 0.0000 -0.7071 -vn 0.0000 0.7071 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 0.1414 -0.9798 -0.1414 -vn 0.0000 -0.9404 -0.3400 -vn -0.1414 -0.9798 -0.1414 -vn -0.1623 -0.9798 -0.1166 -vn -0.5000 0.5000 -0.7070 -vn 0.5000 -0.5000 -0.7070 -vn 0.5000 0.5000 -0.7071 -vn -0.5000 -0.5000 -0.7071 -vn 0.1623 -0.9798 -0.1166 -s off -f 49/122/39 50/123/39 51/124/39 -f 52/125/40 53/126/40 54/127/40 -f 55/128/41 56/129/41 57/130/41 -f 58/131/42 59/132/42 60/133/42 -f 61/134/43 62/135/43 63/136/43 -f 64/137/44 65/138/44 61/134/44 -f 66/139/45 67/140/45 49/122/45 -f 68/141/46 69/142/46 58/131/46 -f 70/143/47 62/144/47 50/145/47 -f 64/137/48 71/146/48 72/147/48 -f 73/148/49 74/149/49 75/150/49 -f 68/141/50 76/151/50 77/152/50 -f 56/129/51 77/152/51 76/151/51 -f 61/134/52 70/153/52 53/126/52 -f 51/154/53 65/138/53 49/155/53 -f 60/133/54 67/140/54 58/131/54 -f 77/152/55 54/127/55 69/142/55 -f 55/128/56 78/156/56 64/137/56 -f 66/157/57 71/146/57 74/158/57 -f 73/148/58 79/159/58 68/141/58 -f 61/134/59 55/128/59 64/137/59 -f 49/155/60 72/147/60 66/157/60 -f 58/131/61 73/148/61 68/141/61 -f 59/132/62 54/127/62 80/160/62 -f 54/127/63 70/153/63 80/160/63 -f 49/122/39 67/140/39 50/123/39 -f 52/125/40 55/128/40 53/126/40 -f 55/128/41 52/125/41 56/129/41 -f 58/131/42 69/142/42 59/132/42 -f 61/134/43 65/138/43 62/135/43 -f 64/137/44 72/147/44 65/138/44 -f 66/139/45 73/148/45 67/140/45 -f 68/141/46 77/152/46 69/142/46 -f 50/145/47 60/161/47 59/162/47 -f 59/162/47 80/163/47 70/143/47 -f 70/143/47 63/164/47 62/144/47 -f 62/144/47 51/165/47 50/145/47 -f 50/145/47 59/162/47 70/143/47 -f 64/137/48 78/156/48 71/146/48 -f 73/148/49 66/139/49 74/149/49 -f 68/141/50 79/159/50 76/151/50 -f 56/129/51 52/125/51 77/152/51 -f 61/134/52 63/136/52 70/153/52 -f 51/154/53 62/135/53 65/138/53 -f 60/133/54 50/123/54 67/140/54 -f 77/152/55 52/125/55 54/127/55 -f 55/128/56 57/130/56 78/156/56 -f 66/157/57 72/147/57 71/146/57 -f 73/148/64 75/150/64 79/159/64 -f 61/134/59 53/126/59 55/128/59 -f 49/155/60 65/138/60 72/147/60 -f 58/131/61 67/140/61 73/148/61 -f 59/132/62 69/142/62 54/127/62 -f 54/127/63 53/126/63 70/153/63 -f 81/166/65 82/167/65 83/168/65 -f 84/169/66 85/170/66 86/171/66 -f 125/172/46 87/173/46 127/174/46 -f 88/175/67 89/176/67 90/177/67 -f 91/178/45 92/179/45 89/176/45 -f 90/177/68 94/180/68 95/181/68 -f 86/171/69 96/182/69 97/183/69 -f 111/184/46 98/185/46 99/186/46 -f 100/187/47 94/180/47 101/188/47 -f 92/179/70 102/189/70 89/176/70 -f 103/190/71 96/182/71 104/191/71 -f 82/167/72 105/192/72 85/170/72 -f 102/189/45 111/193/45 110/194/45 -f 107/195/40 112/196/40 108/197/40 -f 103/198/46 107/199/46 126/200/46 -f 106/201/46 100/202/46 110/203/46 -f 109/204/46 108/205/46 113/206/46 -f 98/207/73 114/208/73 96/182/73 -f 104/191/74 107/195/74 103/190/74 -f 85/170/40 83/209/40 82/167/40 -f 95/181/47 57/210/47 56/211/47 -f 75/212/47 90/177/47 79/213/47 -f 101/188/75 89/176/75 102/189/75 -f 84/169/71 97/183/71 115/214/71 -f 97/183/76 114/208/76 92/215/76 -f 112/196/77 95/181/77 94/180/77 -f 86/171/78 105/192/78 104/191/78 -f 113/216/79 112/196/79 94/180/79 -f 101/188/80 110/194/80 100/187/80 -f 97/183/81 116/217/81 115/214/81 -f 117/218/82 84/169/82 118/219/82 -f 119/220/83 88/175/83 120/221/83 -f 121/222/84 115/214/84 116/217/84 -f 122/223/85 81/166/85 83/168/85 -f 81/166/86 120/221/86 88/175/86 -f 123/224/87 122/225/87 83/209/87 -f 115/214/88 118/219/88 84/169/88 -f 91/178/89 121/226/89 116/227/89 -f 124/228/44 122/229/44 117/230/44 -f 99/186/46 103/198/46 126/200/46 -f 74/231/47 90/177/47 75/212/47 -f 71/232/90 88/175/90 74/231/90 -f 81/166/91 71/232/91 78/233/91 -f 57/210/92 81/166/92 78/233/92 -f 76/234/47 95/181/47 56/211/47 -f 79/213/47 95/181/47 76/234/47 -f 127/174/47 126/235/47 125/172/47 -f 81/166/65 95/181/65 82/167/65 -f 84/169/66 123/224/66 85/170/66 -f 88/175/67 91/236/67 89/176/67 -f 91/178/45 116/227/45 92/179/45 -f 90/177/68 101/188/68 94/180/68 -f 86/171/69 104/191/69 96/182/69 -f 100/187/47 113/216/47 94/180/47 -f 92/179/70 114/237/70 102/189/70 -f 103/190/71 98/207/71 96/182/71 -f 82/167/72 112/196/72 105/192/72 -f 87/173/40 99/238/40 127/174/40 -f 126/200/46 108/205/46 109/204/46 -f 109/239/71 87/173/71 93/240/71 -f 100/202/46 109/204/46 113/206/46 -f 109/241/45 125/172/45 126/242/45 -f 106/201/46 111/184/46 99/186/46 -f 102/189/45 114/237/45 111/193/45 -f 107/195/40 105/192/40 112/196/40 -f 98/207/73 111/243/73 114/208/73 -f 104/191/74 105/192/74 107/195/74 -f 85/170/40 123/224/40 83/209/40 -f 95/181/93 81/166/93 57/210/93 -f 101/188/75 90/177/75 89/176/75 -f 84/169/71 86/171/71 97/183/71 -f 97/183/76 96/182/76 114/208/76 -f 112/196/77 82/167/77 95/181/77 -f 86/171/78 85/170/78 105/192/78 -f 113/216/79 108/197/79 112/196/79 -f 101/188/80 102/189/80 110/194/80 -f 97/183/81 92/215/81 116/217/81 -f 117/218/94 123/224/94 84/169/94 -f 119/220/95 91/236/95 88/175/95 -f 121/222/96 128/244/96 115/214/96 -f 122/223/97 124/245/97 81/166/97 -f 81/166/86 124/245/86 120/221/86 -f 123/224/87 117/218/87 122/225/87 -f 115/214/88 128/244/88 118/219/88 -f 91/178/89 119/246/89 121/226/89 -f 117/230/44 118/247/44 124/228/44 -f 118/247/44 128/248/44 124/228/44 -f 128/248/44 121/249/44 119/250/44 -f 119/250/44 120/251/44 128/248/44 -f 120/251/44 124/228/44 128/248/44 -f 74/231/98 88/175/98 90/177/98 -f 81/166/91 88/175/91 71/232/91 -f 79/213/47 90/177/47 95/181/47 -f 125/172/46 93/240/46 87/173/46 -f 99/186/46 98/185/46 103/198/46 -f 127/174/47 99/252/47 126/235/47 -f 87/173/40 106/253/40 99/238/40 -f 126/200/46 107/199/46 108/205/46 -f 109/239/71 106/254/71 87/173/71 -f 100/202/46 106/201/46 109/204/46 -f 109/241/45 93/240/45 125/172/45 -f 106/201/46 110/203/46 111/184/46 -o Cube.001_Cube.005 -v -0.369039 -0.459563 0.479973 -v -0.369039 -0.501855 0.209191 -v -0.369039 -0.501855 0.479973 -v -0.369039 -0.433180 0.209191 -v 0.369039 -0.501855 0.209191 -v 0.369039 -0.459563 0.479973 -v 0.369039 -0.501855 0.479973 -v 0.369039 -0.433180 0.209191 -vt 0.175000 0.175000 -vt -0.000000 0.150000 -vt 0.175000 0.150000 -vt 0.350000 0.225000 -vt 0.175000 0.200000 -vt 0.350000 0.200000 -vt 0.175000 0.225000 -vt -0.000000 0.200000 -vt -0.000000 0.225000 -vt 0.175000 0.225000 -vt 0.350000 0.250000 -vt 0.175000 0.250000 -vt 0.350000 0.150000 -vt 0.175000 0.200000 -vt 0.175000 0.150000 -vt -0.000000 0.150000 -vt 0.350000 0.000000 -vt 0.350000 0.150000 -vt -0.000000 0.200000 -vt 0.175000 0.225000 -vt 0.175000 0.175000 -vt 0.350000 0.225000 -vt 0.350000 0.200000 -vt -0.000000 0.000000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.9953 0.0970 -s off -f 129/255/99 130/256/99 131/257/99 -f 132/258/100 133/259/100 130/260/100 -f 133/261/101 134/262/101 135/263/101 -f 134/264/102 131/265/102 135/266/102 -f 133/267/103 131/268/103 130/269/103 -f 132/270/104 134/271/104 136/272/104 -f 129/255/99 132/273/99 130/256/99 -f 132/258/100 136/274/100 133/259/100 -f 133/261/101 136/275/101 134/262/101 -f 134/264/102 129/276/102 131/265/102 -f 133/267/103 135/277/103 131/268/103 -f 132/270/104 129/278/104 134/271/104 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.9487 -0.3162 +vn -0.0000 0.9806 0.1961 +vn 0.8660 -0.0000 -0.5000 +vn -0.8660 -0.0000 -0.5000 +vn -0.8660 -0.0000 0.5000 +vn 0.8660 -0.0000 0.5000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 0.7071 0.7071 +vn 0.7071 0.7071 -0.0000 +vn -0.0000 0.7071 -0.7071 +vt 0.106061 0.893939 +vt 0.090909 0.772727 +vt 0.106061 0.787879 +vt 0.378788 0.787879 +vt 0.393939 0.893939 +vt 0.378788 0.893939 +vt 0.545455 0.757576 +vt 0.363636 0.772727 +vt 0.363636 0.757576 +vt 0.272727 0.772727 +vt 0.257576 0.787879 +vt 0.121212 0.878788 +vt 0.121212 0.803030 +vt 0.242424 0.803030 +vt 0.257576 0.893939 +vt 0.242424 0.878788 +vt 0.530303 0.893939 +vt 0.515152 0.787879 +vt 0.530303 0.787879 +vt 0.545455 0.909091 +vt 0.363636 0.924242 +vt 0.363636 0.909091 +vt 0.272727 0.909091 +vt 0.090909 0.909091 +vt 0.090909 1.000000 +vt 0.272727 1.000000 +vt 0.000000 0.772727 +vt 0.545455 0.772727 +vt 0.803030 0.848485 +vt 0.757576 0.954545 +vt 0.757576 0.848485 +vt 0.606061 1.000000 +vt 0.757576 1.000000 +vt 0.606061 0.848485 +vt 0.560606 0.848485 +vt 0.606061 0.954545 +vt 0.560606 0.969697 +vt 0.757576 0.803030 +vt 0.606061 0.803030 +vt 0.378788 0.772727 +vt 0.272727 0.681818 +vt 0.090909 0.681818 +vt 0.621212 0.560606 +vt 0.439394 0.636364 +vt 0.439394 0.560606 +vt 0.439394 0.651515 +vt 0.363636 0.636364 +vt 0.621212 0.651515 +vt 0.621212 0.636364 +vt 0.696970 0.636364 +vt 0.439394 0.727273 +vt 0.621212 0.727273 +vt 0.878788 0.666667 +vt 0.878788 0.636364 +vt 0.348485 0.318182 +vt 0.166667 0.469697 +vt 0.166667 0.318182 +vt 0.166667 0.515152 +vt 0.015152 0.469697 +vt 0.348485 0.515152 +vt 0.348485 0.469697 +vt 0.500000 0.515152 +vt 0.500000 0.469697 +vt 0.166667 0.666667 +vt 0.348485 0.666667 +vt 0.681818 0.515152 +vt 0.681818 0.469697 +vt 0.439394 1.000000 +vt 0.409091 0.984848 +vt 0.439394 0.984848 +vt 0.469697 1.000000 +vt 0.469697 0.984848 +vt 0.318182 1.000000 +vt 0.287879 0.984848 +vt 0.318182 0.984848 +vt 0.348485 1.000000 +vt 0.348485 0.984848 +vt 0.378788 1.000000 +vt 0.378788 0.984848 +vt 0.409091 1.000000 +vt 0.015152 0.560606 +vt -0.000000 0.666667 +vt 0.000000 0.545455 +vt 0.136364 0.560606 +vt 0.151515 0.545455 +vt 0.136364 0.651515 +vt 0.151515 0.666667 +vt 0.015152 0.651515 +vt 0.393939 0.787879 +vt 0.515152 0.893939 +vt 0.545455 0.924242 +vt 0.000000 0.909091 +vt 0.530303 0.772727 +vt 0.803030 0.969697 +vt 0.363636 0.666667 +vt 0.696970 0.666667 +vt 0.015152 0.515152 +vt 0.287879 1.000000 +s 1 +usemtl Texture +f 2/1/1 4/2/1 1/3/1 +f 1/4/2 6/5/2 2/6/2 +f 3/7/3 5/8/3 1/9/3 +f 1/3/1 16/10/1 3/11/1 +f 9/12/4 5/3/5 8/13/6 +f 8/13/6 7/11/7 10/14/8 +f 10/14/8 9/12/4 8/13/6 +f 10/14/8 12/15/9 11/16/10 +f 11/16/10 6/1/11 9/12/4 +f 13/17/12 7/18/12 3/19/12 +f 2/20/13 12/21/13 13/22/13 +f 3/11/1 14/23/1 13/15/1 +f 13/15/1 17/24/1 2/1/1 +f 15/22/2 16/10/2 28/8/2 +f 18/25/3 14/23/3 15/26/3 +f 17/24/12 19/27/12 4/2/12 +f 20/17/14 19/28/14 18/20/14 +f 20/17/14 15/22/14 22/6/14 +f 21/29/12 23/30/12 24/31/12 +f 22/32/15 23/30/15 20/33/15 +f 23/30/14 26/34/14 24/31/14 +f 27/35/2 25/36/2 22/37/2 +f 21/38/13 26/34/13 27/39/13 +f 22/6/14 28/8/14 27/40/14 +f 28/41/13 4/2/13 19/42/13 +f 33/43/13 29/44/13 30/45/13 +f 31/46/12 30/47/12 29/44/12 +f 34/48/1 29/44/1 32/49/1 +f 33/50/2 34/48/2 32/49/2 +f 36/51/16 34/48/16 35/52/16 +f 36/53/14 33/50/14 30/54/14 +f 41/55/13 37/56/13 38/57/13 +f 39/58/12 38/59/12 37/56/12 +f 42/60/1 37/56/1 40/61/1 +f 43/62/2 40/61/2 41/63/2 +f 44/64/3 42/60/3 43/65/3 +f 44/66/14 41/63/14 38/67/14 +f 47/68/14 46/69/17 45/70/14 +f 50/71/18 45/70/14 48/72/18 +f 51/73/19 48/74/18 49/75/19 +f 52/76/1 49/75/19 54/77/1 +f 53/78/20 54/77/1 55/79/20 +f 56/80/17 55/79/20 46/69/17 +f 59/81/21 58/82/21 57/83/21 +f 62/84/22 57/83/22 60/85/22 +f 63/86/23 60/85/23 61/87/23 +f 64/88/3 62/84/3 63/86/3 +f 64/88/24 61/87/24 58/82/24 +f 2/1/1 17/24/1 4/2/1 +f 1/4/2 5/89/2 6/5/2 +f 3/7/3 7/28/3 5/8/3 +f 1/3/1 4/2/1 16/10/1 +f 9/12/4 6/1/11 5/3/5 +f 8/13/6 5/3/5 7/11/7 +f 10/14/8 11/16/10 9/12/4 +f 10/14/8 7/11/7 12/15/9 +f 11/16/10 12/15/9 6/1/11 +f 13/17/12 12/90/12 7/18/12 +f 2/20/13 6/91/13 12/21/13 +f 3/11/1 16/10/1 14/23/1 +f 13/15/1 14/23/1 17/24/1 +f 15/22/2 14/23/2 16/10/2 +f 18/25/3 17/24/3 14/23/3 +f 17/24/12 18/92/12 19/27/12 +f 20/17/14 21/93/14 19/28/14 +f 20/17/14 18/20/14 15/22/14 +f 21/29/12 20/94/12 23/30/12 +f 22/32/15 25/36/15 23/30/15 +f 23/30/14 25/36/14 26/34/14 +f 27/35/2 26/34/2 25/36/2 +f 21/38/13 24/31/13 26/34/13 +f 22/6/14 15/22/14 28/8/14 +f 28/41/13 16/10/13 4/2/13 +f 33/43/13 32/49/13 29/44/13 +f 31/46/12 36/95/12 30/47/12 +f 34/48/1 31/46/1 29/44/1 +f 33/50/2 35/96/2 34/48/2 +f 36/51/16 31/46/16 34/48/16 +f 36/53/14 35/96/14 33/50/14 +f 41/55/13 40/61/13 37/56/13 +f 39/58/12 44/97/12 38/59/12 +f 42/60/1 39/58/1 37/56/1 +f 43/62/2 42/60/2 40/61/2 +f 44/64/3 39/58/3 42/60/3 +f 44/66/14 43/62/14 41/63/14 +f 47/68/14 56/80/17 46/69/17 +f 50/71/18 47/68/14 45/70/14 +f 51/73/19 50/98/18 48/74/18 +f 52/76/1 51/73/19 49/75/19 +f 53/78/20 52/76/1 54/77/1 +f 56/80/17 53/78/20 55/79/20 +f 59/81/21 64/88/21 58/82/21 +f 62/84/22 59/81/22 57/83/22 +f 63/86/23 62/84/23 60/85/23 +f 64/88/3 59/81/3 62/84/3 +f 64/88/24 63/86/24 61/87/24 diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_computer.png b/src/main/resources/assets/hbm/textures/blocks/deco_computer.png index fab8d3cd29d30ca65fe69a95c6644973ad8c4c65..be42793228b53cac24ab27ad30737a5bb26487b7 100644 GIT binary patch delta 631 zcmV--0*L*n4xa@fiBL{Q4GJ0x0000DNk~Le0000&0000&2m=5B0Mv@`+L0k3Og~Ue zR7LXc=Gf80va+(jwW5N8g3iUWOhh#q85sZn|G==1*vhT)=FLnVGd z00GEJL_t(oN9~i_c7q@gMYT2;O*Kuz|9@-ea$rC)&T7(^E;lj20NVkz2|{DE;Uhzb z35@dijHqZ6okk*`sMCzuxI-b(z1uD_PsFKcX(4E-gRtUPV3=D~g{9eH9QPDVe{nb* zmI|TOO3-!@F~#wCtSES-YfcHBOnb+SKzVIsp$ksuvq$kXi)g4S=&0lB( ziUC_<5c1I2J4qjB!rDa?i%Lj=+=o8jNFM#>dZbd%t;y2QH&TycQAu%}eMUXyI;&5_ z&#o~3rQ+A0*~{z-V^L`gS;!rtUOH$jVssfH`~V8}5AO|N Rw7&oV002ovPDHLkV1jLE7z_Xa delta 1815 zcmV+y2k7{p1*i@oiBL{Q4GJ0x0000DNk~Le0000`0000`2m=5B0J+ZspOGOTe_&8d zR7JeBriFiXy0WCbwWq$esJXGDyR)UYuc5!Usld3Z!MUrpuAl$_0RR90xUiyzfOfdB zqqVM}!n&-(yREgYpEx!$H#IRiH#4iGmmC`zBP1g-Gcm2EnW?0nH#jx`003wSd@le1 z03dWyPE-H?|NsC0|NsC0|NsC0k)H;Upaqej1%LklTwELN00009a7bBm000id000id z0mpBsWB>pLB}qg=F@mv2srOuO7t` z2?DdT7c7zK_#fk)@aOSP`15!t{CWHz32);UA*cN~a`83XC7epmtZkZR{u=(~kkF@^ zSAT)~gac-NU_FBkW-z!K59^|0Lt0kdh}n zhNt)8@~>yWi53dakW_)GLSxPhrU|95Cr{wR2M9rO?2uFeMXRGtyg)w?&K)sHm4L9; zwI;_7Np%TyA+y|cnddz@cF5%kd8(u=x_>C^Jk28HZb_bjrINDb*dduVOuh06)-oN! zWvNM?0iI9OZ%J~BB-)^a5IOiBr=>?ye49K2k+oV@Jq`2vHYkpn0;JFwVj}mr$)D~` zSjshpWv+{BlbkT$yv(B{f*WmJ?U35r!CWM_hQj&6W!9;C@EyD?jn*vju7;t?jhu-TH7Y5A7nU{7XByAdOpc z6hnPQw`s{Uu&5r$pOpY^O)!;*Rx16MinjqjRHmnP>}}qf!!n-szOXf-vIJ|}kne~X zXd#6OfNgiGP%$DxL9@mbdlpM&o`@a%ptPu*kNmZf9A=k|5UjA8vr$5exPQIJG#BYj z=DAo@bC_WCsZ(-+Eje)MTZGuD?1N8QJSs)eu1((n^U6zJyB6It?C(g9w8dUl>@}gf zPnv^%!M(0Fw3C-C7x=yEE%!Y+2fYNtWd@nV9quXeQpw++%ctq1O|ZaEOD(+Fw465N z?#E>$hnP`^A2WtPUSVb1ntz(ZyRnl#M}dgV2UNkU>{+lxZOLiN(z#ih2=xdsee}&} z!eH$OxI`p-djHo^Quu?HTXGaboKJ=4eN&YYGReHnLz<@m*yX=vXrDPb8j?c0?4Vc? zqbV0Dr7U>b72AL~FmlK#noAW&ayo^2Y|_k-lI2O?`=*+3w{bz{6MuABJ3~e3=ll69 zHoVIw{1|4r&L*7a0S0t_!VGifU|@U7r!@iw^bmFNA_P$?Ah#xk1fAlI-yqBb_L%f4 zNLn$@U%ZR)ISKofzWERqD)pwi^`gi_ATq5=k?X!uhE0gUD}7T8l%8we=3|87)(9o= z2#+WzQvzpC_2Y{$5`QyU5<)VnX`SM13aJC2*MD5;XV>^d=r`6y--Ld6=r)u0E`4tk zz@$+oQ z6x4yK9zjFKm-zHA1VBzpVLTs=&xEY?@+-i& z7R=fjwVBMMsG?wlFf1C~g`I1!Lf(*5LaqXZYDq$dBV~$*5smMhaEsjr{Ll{a+**Q6 zpII>w;d$e`sxbWbH<@$L_5Vy2oaIEtA)LkMjc-qQu78g#r?}WVV_&l@5LwUS)fC3w zjG-01Q8xVS8=nckKJ)MT=U&-dG`@QZ6+WiERW|#^mkMuuzWzYjNFB4b#&=JlX1`fB zVAuHWD!f-V2@ErX#&=KQ@y02Hb%smewDD=|RMYE(rK|70XOC$E1&e`WCc@x%&GM4f&ZSLUqCr!DJbX{)c+2I0l=mX2v3E0Rbu58 zKd&E8LgA2PjE%!iDcy%xy)g<6R62E*lFO2Pc|18DzX8l3I(l!A6UYDn002ovPDHLk FV1kD6fDQlv From a1402daec2dd4a8783bfb78d5698074dc16e5976 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 May 2025 16:40:39 +0200 Subject: [PATCH 11/11] charge thrower animations --- .../java/com/hbm/crafting/WeaponRecipes.java | 2 ++ .../weapon/sedna/factory/Orchestras.java | 12 ++++++++-- .../weapon/sedna/factory/XFactoryTool.java | 18 +++++---------- .../weapon/sedna/ItemRenderChargeThrower.java | 23 ++++++++++++++++++- 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d9eca4a19..242a2e475 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -94,6 +94,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tau, 1), new Object[] { " RD", "CTT", "GMS", 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'C', CU.pipe(), 'T', ModItems.coil_advanced_torus, 'G', ANY_HARDPLASTIC.grip(), 'R', BIGMT.lightReceiver(), 'M', BIGMT.mechanism(), 'S', ANY_HARDPLASTIC.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lasrifle, 1), new Object[] { "DLC", "BRS", "MG ", 'D', ModItems.crystal_redstone, 'L', DictFrame.fromOne(ModItems.weapon_mod_special, EnumModSpecial.SCOPE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ANY_BISMOIDBRONZE.lightBarrel(), 'R', ANY_BISMOIDBRONZE.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'M', BIGMT.mechanism(), 'G', ANY_HARDPLASTIC.grip() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_double_barrel_sacred_dragon, 1), new Object[] { ModItems.gun_double_barrel, DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', Items.leather }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', ANY_RUBBER.ingot() }); //SEDNA Ammo CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder }); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 61a5c0d01..3d0164466 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -7,6 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.impl.ItemGunStinger; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.mags.IMagazine; @@ -22,6 +23,7 @@ import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -1419,9 +1421,15 @@ public class Orchestras { if(entity.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - + + if(type == AnimType.CYCLE_DRY) { + Entity e = entity.worldObj.getEntityByID(ItemGunChargeThrower.getLastHook(stack)); + if(timer == 0 && e == null) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); + } + if(type == AnimType.RELOAD) { - if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 1F); } }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 917c06aee..d20677e53 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -96,7 +96,7 @@ public class XFactoryTool { ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) - .dmg(5F).delay(4).dry(40).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) + .dmg(5F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CT)) @@ -112,19 +112,13 @@ public class XFactoryTool { @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CT_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() - .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); + .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); case CYCLE: return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) - .addBus("HAMMER", new BusAnimationSequence().addPos(15, 0, 0, 50).addPos(15, 0, 0, 550).addPos(0, 0, 0, 100)); + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL)); case RELOAD: return new BusAnimation() - .addBus("OPEN", new BusAnimationSequence().addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 750).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("SHELL", new BusAnimationSequence().addPos(4, -8, -4, 0).addPos(4, -8, -4, 200).addPos(0, 0, -5, 500, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 800).addPos(0, 0, 0, 200, IType.SIN_DOWN)); - case JAMMED: return new BusAnimation() - .addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 550).addPos(0, 0, 0, 200, IType.SIN_DOWN)); - case INSPECT: return new BusAnimation() - .addBus("FLIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 1500, IType.SIN_FULL)); + .addBus("RAISE", new BusAnimationSequence().addPos(-45, 0, 0, 500, IType.SIN_FULL).hold(2000).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("AMMO", new BusAnimationSequence().setPos(0, -10, -5).hold(500).addPos(0, 0, 5, 750, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP).hold(4000)) + .addBus("TWIST", new BusAnimationSequence().setPos(0, 0, 25).hold(2000).addPos(0, 0, 0, 150)); } return null; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java index 1d46d93b2..4b30ccc31 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java @@ -7,6 +7,7 @@ import com.hbm.items.weapon.sedna.factory.XFactoryTool; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -51,14 +52,34 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { double scale = 0.5D; GL11.glScaled(scale, scale, scale); } + + boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("AMMO") != null; + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] raise = HbmAnimations.getRelevantTransformation("RAISE"); + double[] ammo = HbmAnimations.getRelevantTransformation("AMMO"); + double[] twist = HbmAnimations.getRelevantTransformation("TWIST"); + + GL11.glTranslated(0, 0, -7); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 7); + + GL11.glTranslated(0, -7, 4); + GL11.glRotated(raise[0], 1, 0, 0); + GL11.glTranslated(0, 7, -4); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_tex); ResourceManager.charge_thrower.renderPart("Gun"); if(isScoped(stack) && !usingScope) ResourceManager.charge_thrower.renderPart("Scope"); - if(mag.getAmount(stack, null) > 0) { + if(mag.getAmount(stack, null) > 0 || reloading) { + GL11.glTranslated(ammo[0], ammo[1], ammo[2]); + GL11.glRotated(twist[2], 0, 0, 1); + if(mag.getType(stack, null) == XFactoryTool.ct_hook) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook");