From f01d1bfbb51ddbac05d1d73a4d7bd9ffff2db460 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 18 May 2021 23:12:05 +0200 Subject: [PATCH] fire extinguisher --- src/main/java/com/hbm/blocks/ModBlocks.java | 17 +- .../hbm/handler/BulletConfigSyncingUtil.java | 8 + .../hbm/handler/guncfg/GunEnergyFactory.java | 202 ++- src/main/java/com/hbm/items/ModItems.java | 12 + .../java/com/hbm/items/weapon/ItemAmmo.java | 6 + src/main/java/com/hbm/main/ClientProxy.java | 8 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/item/weapon/ItemRenderFireExt.java | 95 ++ .../assets/hbm/models/weapons/fireext.obj | 1350 +++++++++++++++++ .../assets/hbm/textures/blocks/foam.png | Bin 0 -> 309 bytes .../assets/hbm/textures/blocks/sand_boron.png | Bin 0 -> 861 bytes .../hbm/textures/items/ammo_fireext.png | Bin 0 -> 235 bytes .../hbm/textures/items/ammo_fireext_foam.png | Bin 0 -> 236 bytes .../hbm/textures/items/ammo_fireext_sand.png | Bin 0 -> 263 bytes .../hbm/textures/items/rbmk_fuel_ueu.png | Bin 0 -> 565 bytes .../hbm/textures/models/weapons/fireext.png | Bin 0 -> 753 bytes .../models/weapons/fireext_normal.png | Bin 0 -> 1819 bytes .../textures/models/weapons/fireext_sand.png | Bin 0 -> 2340 bytes 18 files changed, 1697 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java create mode 100644 src/main/resources/assets/hbm/models/weapons/fireext.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/foam.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/sand_boron.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_fireext.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_fireext_foam.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_fireext_sand.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_fuel_ueu.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/fireext.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/fireext_normal.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/fireext_sand.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ddb929a4e..96cc6d8f3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -183,6 +183,7 @@ public class ModBlocks { public static Block block_white_phosphorus; public static Block block_red_phosphorus; public static Block block_fallout; + public static Block block_foam; public static Block block_graphite; public static Block block_boron; public static Block block_lanthanium; @@ -325,6 +326,7 @@ public class ModBlocks { public static Block fence_metal; + public static Block sand_boron; public static Block sand_uranium; public static Block sand_polonium; public static Block glass_uranium; @@ -345,7 +347,10 @@ public class ModBlocks { public static Block frozen_grass; public static Block frozen_log; public static Block frozen_planks; + public static Block fallout; + public static Block foam_layer; + public static Block sand_boron_layer; public static Block sellafield_slaked; public static Block sellafield_0; @@ -1180,11 +1185,12 @@ public class ModBlocks { block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).addAsbestos().toBlock().setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); block_cobalt = new BlockGeneric(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); - block_lithium = new BlockLithium(Material.iron).addHydroReactivity().toBlock().setBlockName("block_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); - block_zirconium = new BlockGeneric(Material.iron).setBlockName("block_zirconium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); + block_lithium = new BlockLithium(Material.iron).addHydroReactivity().toBlock().setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); + block_zirconium = new BlockGeneric(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); block_white_phosphorus = new BlockHazard(Material.rock).addFire(15).toBlock().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); block_red_phosphorus = new BlockHazardFalling().addFire(15).toBlock().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); block_fallout = new BlockHazardFalling().addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); + block_foam = new BlockGeneric(Material.snow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); block_graphite = new BlockFlammable(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite"); block_boron = new BlockGeneric(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron"); block_lanthanium = new BlockGeneric(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium"); @@ -1326,6 +1332,7 @@ public class ModBlocks { fence_metal = new BlockMetalFence(Material.iron).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); + sand_boron = new BlockFalling(Material.sand).setBlockName("sand_boron").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_boron"); sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium"); sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium"); glass_uranium = new BlockNTMGlass(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); @@ -1347,6 +1354,8 @@ public class ModBlocks { frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); fallout = new BlockFallout(Material.snow).addRadiation(ItemHazard.fo * ItemHazard.powder * 2).toBlock().setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); + foam_layer = new BlockFallout(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); + sand_boron_layer = new BlockFallout(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield_0 = new BlockOre(Material.rock, 0.5F, 10F).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); @@ -2002,6 +2011,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_fallout, ItemBlockHazard.class, block_fallout.getUnlocalizedName()); + GameRegistry.registerBlock(block_foam, block_foam.getUnlocalizedName()); GameRegistry.registerBlock(block_graphite, block_graphite.getUnlocalizedName()); GameRegistry.registerBlock(block_boron, block_boron.getUnlocalizedName()); GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); @@ -2189,6 +2199,8 @@ public class ModBlocks { GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); GameRegistry.registerBlock(fallout, ItemBlockHazard.class, fallout.getUnlocalizedName()); + GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); + GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); //RAD GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); @@ -2285,6 +2297,7 @@ public class ModBlocks { GameRegistry.registerBlock(fence_metal, fence_metal.getUnlocalizedName()); //Sands, Glass + GameRegistry.registerBlock(sand_boron, sand_boron.getUnlocalizedName()); GameRegistry.registerBlock(sand_uranium, sand_uranium.getUnlocalizedName()); GameRegistry.registerBlock(sand_polonium, sand_polonium.getUnlocalizedName()); GameRegistry.registerBlock(glass_uranium, glass_uranium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index f0851822c..6d2886010 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -137,6 +137,10 @@ public class BulletConfigSyncingUtil { public static int FLAMER_VAPORIZER = i++; public static int FLAMER_GAS = i++; + public static int FEXT_NORMAL = i++; + public static int FEXT_FOAM = i++; + public static int FEXT_SAND = i++; + public static int R556_NORMAL = i++; public static int R556_GOLD = i++; public static int R556_PHOSPHORUS = i++; @@ -358,6 +362,10 @@ public class BulletConfigSyncingUtil { configSet.put(FLAMER_WP, GunEnergyFactory.getPhosphorusConfig()); configSet.put(FLAMER_VAPORIZER, GunEnergyFactory.getVaporizerConfig()); configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig()); + + configSet.put(FEXT_NORMAL, GunEnergyFactory.getFextConfig()); + configSet.put(FEXT_FOAM, GunEnergyFactory.getFextFoamConfig()); + configSet.put(FEXT_SAND, GunEnergyFactory.getFlameConfig()); configSet.put(R556_NORMAL, Gun556mmFactory.get556Config()); configSet.put(R556_GOLD, Gun556mmFactory.get556GoldConfig()); diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index d1aca7661..7c227c15e 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -2,6 +2,7 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; @@ -9,13 +10,18 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; @@ -114,6 +120,36 @@ public class GunEnergyFactory { return config; } + + public static GunConfiguration getExtConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 1; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.reloadDuration = 20; + config.reloadSoundEnd = false; + config.firingDuration = 0; + config.ammoCap = 300; //good for 15 seconds of continued spray + config.durability = 10000; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCLE; + config.firingSound = "hbm:weapon.flamethrowerShoot"; + config.reloadSound = "hbm:weapon.flamerReload"; + + config.name = "PROTEX Fire Exinguisher 6kg"; + config.manufacturer = "Gloria GmbH"; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.FEXT_NORMAL); + config.config.add(BulletConfigSyncingUtil.FEXT_FOAM); + config.config.add(BulletConfigSyncingUtil.FEXT_SAND); + + return config; + } public static GunConfiguration getVortexConfig() { @@ -271,6 +307,170 @@ public class GunEnergyFactory { return bullet; } + public static BulletConfiguration getFextConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = ModItems.ammo_fireext; + bullet.ammoCount = 300; + + bullet.velocity = 0.75F; + bullet.spread = 0.025F; + bullet.wear = 1; + bullet.bulletsMin = 2; + bullet.bulletsMax = 3; + bullet.dmgMin = 0; + bullet.dmgMax = 0; + bullet.gravity = 0.04D; + bullet.maxAge = 100; + bullet.doesRicochet = false; + bullet.doesPenetrate = true; + bullet.doesBreakGlass = false; + bullet.style = BulletConfiguration.STYLE_NONE; + bullet.plink = BulletConfiguration.PLINK_NONE; + + bullet.bImpact = new IBulletImpactBehavior() { + + @Override + public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + + if(!bullet.worldObj.isRemote) { + + int ix = (int)Math.floor(bullet.posX); + int iy = (int)Math.floor(bullet.posY); + int iz = (int)Math.floor(bullet.posZ); + + boolean fizz = false; + + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = -1; k <= 1; k++) { + + if(bullet.worldObj.getBlock(ix + i, iy + j, iz + k) == Blocks.fire) { + bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); + fizz = true; + } + } + } + } + + if(fizz) + bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); + } + } + }; + + bullet.bUpdate = new IBulletUpdateBehavior() { + + @Override + public void behaveUpdate(EntityBulletBase bullet) { + + if(bullet.worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.water)); + data.setDouble("posX", bullet.posX); + data.setDouble("posY", bullet.posY); + data.setDouble("posZ", bullet.posZ); + data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05); + MainRegistry.proxy.effectNT(data); + } + } + }; + + return bullet; + } + + public static BulletConfiguration getFextFoamConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = ModItems.ammo_fireext_foam; + bullet.ammoCount = 300; + + bullet.velocity = 0.75F; + bullet.spread = 0.025F; + bullet.wear = 1; + bullet.bulletsMin = 2; + bullet.bulletsMax = 3; + bullet.dmgMin = 0; + bullet.dmgMax = 0; + bullet.gravity = 0.04D; + bullet.maxAge = 100; + bullet.doesRicochet = false; + bullet.doesPenetrate = true; + bullet.doesBreakGlass = false; + bullet.style = BulletConfiguration.STYLE_NONE; + bullet.plink = BulletConfiguration.PLINK_NONE; + + bullet.bImpact = new IBulletImpactBehavior() { + + @Override + public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + + if(!bullet.worldObj.isRemote) { + + int ix = (int)Math.floor(bullet.posX); + int iy = (int)Math.floor(bullet.posY); + int iz = (int)Math.floor(bullet.posZ); + + boolean fizz = false; + + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = -1; k <= 1; k++) { + + Block b = bullet.worldObj.getBlock(ix + i, iy + j, iz + k); + + if(b.getMaterial() == Material.fire) { + bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); + fizz = true; + } + } + } + } + + Block b = bullet.worldObj.getBlock(ix, iy, iz); + + if(b != ModBlocks.foam_layer && b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.foam_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.foam_layer); + } + + if(fizz) + bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); + } + } + }; + + bullet.bUpdate = new IBulletUpdateBehavior() { + + @Override + public void behaveUpdate(EntityBulletBase bullet) { + + if(bullet.worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(ModBlocks.block_foam)); + data.setDouble("posX", bullet.posX); + data.setDouble("posY", bullet.posY); + data.setDouble("posZ", bullet.posZ); + data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05); + MainRegistry.proxy.effectNT(data); + } + } + }; + + return bullet; + } + public static BulletConfiguration getZOMGBoltConfig() { BulletConfiguration bullet = new BulletConfiguration(); @@ -300,7 +500,7 @@ public class GunEnergyFactory { public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { - ExplosionChaos.explodeZOMG(bullet.worldObj, (int)bullet.posX, (int)bullet.posY, (int)bullet.posZ, 5); + ExplosionChaos.explodeZOMG(bullet.worldObj, (int)Math.floor(bullet.posX), (int)Math.floor(bullet.posY), (int)Math.floor(bullet.posZ), 5); bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "hbm:entity.bombDet", 5.0F, 1.0F); ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 5); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 54f88217e..9687ad02e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1375,6 +1375,9 @@ public class ModItems { public static Item ammo_fuel_phosphorus; public static Item ammo_fuel_vaporizer; public static Item ammo_fuel_gas; + public static Item ammo_fireext; + public static Item ammo_fireext_foam; + public static Item ammo_fireext_sand; public static Item ammo_cell; public static Item ammo_dart; public static Item ammo_dart_nerf; @@ -1464,6 +1467,7 @@ public class ModItems { public static Item gun_flamer; public static Item gun_cryolator; public static Item gun_cryolator_ammo; + public static Item gun_fireext; public static Item gun_mp; public static Item gun_bolter; public static Item gun_bolter_digamma; @@ -3649,6 +3653,9 @@ public class ModItems { ammo_fuel_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_fuel_phosphorus").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_phosphorus"); ammo_fuel_vaporizer = new ItemAmmo().setUnlocalizedName("ammo_fuel_vaporizer").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_vaporizer"); ammo_fuel_gas = new ItemAmmo().setUnlocalizedName("ammo_fuel_gas").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_gas"); + ammo_fireext = new ItemAmmo().setUnlocalizedName("ammo_fireext").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fireext"); + ammo_fireext_foam = new ItemAmmo().setUnlocalizedName("ammo_fireext_foam").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fireext_foam"); + ammo_fireext_sand = new ItemAmmo().setUnlocalizedName("ammo_fireext_sand").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fireext_sand"); ammo_cell = new ItemAmmo().setUnlocalizedName("ammo_cell").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(16).setTextureName(RefStrings.MODID + ":ammo_cell"); ammo_dart = new ItemAmmo().setUnlocalizedName("ammo_dart").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(16).setTextureName(RefStrings.MODID + ":ammo_dart"); ammo_dart_nerf = new ItemAmmo().setUnlocalizedName("ammo_dart_nerf").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(16).setTextureName(RefStrings.MODID + ":ammo_dart_nerf"); @@ -3738,6 +3745,7 @@ public class ModItems { gun_flamer = new ItemGunBase(GunEnergyFactory.getFlamerConfig()).setUnlocalizedName("gun_flamer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flamer"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator"); + gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); ammo_566_gold = new ItemCustomLore().setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo"); gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); gun_bolter = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter"); @@ -6213,6 +6221,7 @@ public class ModItems { GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); GameRegistry.registerItem(gun_cryolator, gun_cryolator.getUnlocalizedName()); + GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(gun_mp, gun_mp.getUnlocalizedName()); GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); GameRegistry.registerItem(gun_bolter_digamma, gun_bolter_digamma.getUnlocalizedName()); @@ -6362,6 +6371,9 @@ public class ModItems { GameRegistry.registerItem(ammo_fuel_phosphorus, ammo_fuel_phosphorus.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel_vaporizer, ammo_fuel_vaporizer.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel_gas, ammo_fuel_gas.getUnlocalizedName()); + GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); + GameRegistry.registerItem(ammo_fireext_foam, ammo_fireext_foam.getUnlocalizedName()); + GameRegistry.registerItem(ammo_fireext_sand, ammo_fireext_sand.getUnlocalizedName()); GameRegistry.registerItem(ammo_cell, ammo_cell.getUnlocalizedName()); GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName()); GameRegistry.registerItem(ammo_dart_nerf, ammo_dart_nerf.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 70c250bb5..485bdf879 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -440,6 +440,12 @@ public class ItemAmmo extends Item { list.add(EnumChatFormatting.RED + "- Not incendiary"); } + //FIRE EXT + if(this == ModItems.ammo_fireext_foam) { + list.add(EnumChatFormatting.BLUE + "+ Can put out any fire type"); + list.add(EnumChatFormatting.BLUE + "+ Creates protective foam layer"); + } + //5.56mm if(this == ModItems.ammo_556_phosphorus) { list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e26fed867..43e84fd4f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -336,6 +336,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); @@ -909,6 +910,13 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(sec); } } + + if("blockdust".equals(data.getString("mode"))) { + + Block b = Block.getBlockById(data.getInteger("block")); + fx = new net.minecraft.client.particle.EntityBlockDustFX(world, x, y, z, mX, mY + 0.2, mZ, b, 0); + ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); + } if(fx != null) Minecraft.getMinecraft().effectRenderer.addEffect(fx); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f826be1c3..069fdc8a0 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -524,6 +524,7 @@ public class ResourceManager { public static final IModelCustom thompson = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/thompson.obj")); public static final IModelCustom bolter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bolter.obj")); public static final IModelCustom ff_python = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/python.obj")); + public static final IModelCustom fireext = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fireext.obj")); public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj")); public static final IModelCustom grenade_aschrab = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_aschrab.obj")); @@ -577,6 +578,7 @@ public class ResourceManager { public static final ResourceLocation thompson_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/thompson.png"); public static final ResourceLocation bolter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bolter.png"); public static final ResourceLocation bolter_digamma_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bolter_digamma.png"); + public static final ResourceLocation fireext_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fireext_normal.png"); public static final ResourceLocation ff_gold = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gold.png"); public static final ResourceLocation ff_gun_bright = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gun_bright.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java new file mode 100644 index 000000000..5d3b62589 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java @@ -0,0 +1,95 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderFireExt implements IItemRenderer { + + public ItemRenderFireExt() { } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.35D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(0.5, -0.5, -0.5F); + GL11.glRotated(80, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + break; + + case EQUIPPED: + + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-5, 0.0F, 1.0F, 1.0F); + GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.75F, -2.75F, 0.5F); + + break; + + case ENTITY: + + double s1 = 0.3D; + GL11.glScaled(s1, s1, s1); + + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + + double s = 4.5D; + GL11.glTranslated(2, 14, 0); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-135, 1, 0, 0); + GL11.glRotated(System.currentTimeMillis() / 10 % 360, 0, 1, 0); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.fireext.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/resources/assets/hbm/models/weapons/fireext.obj b/src/main/resources/assets/hbm/models/weapons/fireext.obj new file mode 100644 index 000000000..243ede664 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/fireext.obj @@ -0,0 +1,1350 @@ +# Blender v2.79 (sub 0) OBJ File: 'fireext.blend' +# www.blender.org +o Cylinder +v 0.000000 0.000000 -0.500000 +v 0.000000 2.000000 -0.500000 +v 0.191342 0.000000 -0.461940 +v 0.191342 2.000000 -0.461940 +v 0.353553 0.000000 -0.353553 +v 0.353553 2.000000 -0.353553 +v 0.461940 0.000000 -0.191342 +v 0.461940 2.000000 -0.191342 +v 0.500000 0.000000 0.000000 +v 0.500000 2.000000 0.000000 +v 0.461940 0.000000 0.191342 +v 0.461940 2.000000 0.191342 +v 0.353553 0.000000 0.353553 +v 0.353553 2.000000 0.353553 +v 0.191342 0.000000 0.461940 +v 0.191342 2.000000 0.461940 +v 0.000000 0.000000 0.500000 +v 0.000000 2.000000 0.500000 +v -0.191342 0.000000 0.461940 +v -0.191342 2.000000 0.461940 +v -0.353553 0.000000 0.353554 +v -0.353553 2.000000 0.353554 +v -0.461940 0.000000 0.191342 +v -0.461940 2.000000 0.191342 +v -0.500000 0.000000 -0.000000 +v -0.500000 2.000000 -0.000000 +v -0.461940 0.000000 -0.191342 +v -0.461940 2.000000 -0.191342 +v -0.353553 0.000000 -0.353554 +v -0.353553 2.000000 -0.353554 +v -0.191341 0.000000 -0.461940 +v -0.191341 2.000000 -0.461940 +v 0.000000 2.353553 -0.353553 +v 0.000000 2.191342 -0.461940 +v 0.073223 2.461940 -0.176777 +v 0.135299 2.353553 -0.326641 +v 0.176777 2.191342 -0.426777 +v 0.135299 2.461940 -0.135299 +v 0.250000 2.353553 -0.250000 +v 0.326641 2.191342 -0.326641 +v 0.176777 2.461940 -0.073223 +v 0.326641 2.353553 -0.135299 +v 0.426777 2.191342 -0.176777 +v 0.191342 2.461940 -0.000000 +v 0.353553 2.353553 -0.000000 +v 0.461940 2.191342 -0.000000 +v 0.176777 2.461940 0.073223 +v 0.326641 2.353553 0.135299 +v 0.426777 2.191342 0.176777 +v 0.135299 2.461940 0.135299 +v 0.250000 2.353553 0.250000 +v 0.326641 2.191342 0.326641 +v 0.073223 2.461940 0.176777 +v 0.135299 2.353553 0.326641 +v 0.176777 2.191342 0.426777 +v -0.000000 2.461940 0.191342 +v -0.000000 2.353553 0.353553 +v -0.000000 2.191342 0.461940 +v -0.073223 2.461940 0.176777 +v -0.135299 2.353553 0.326640 +v -0.176777 2.191342 0.426776 +v -0.135299 2.461940 0.135299 +v -0.250000 2.353553 0.250000 +v -0.326641 2.191342 0.326640 +v -0.176777 2.461940 0.073223 +v -0.326641 2.353553 0.135299 +v -0.426777 2.191342 0.176776 +v -0.191342 2.461940 -0.000000 +v -0.353553 2.353553 -0.000000 +v -0.461940 2.191342 -0.000000 +v -0.176777 2.461940 -0.073223 +v -0.326641 2.353553 -0.135299 +v -0.426776 2.191342 -0.176777 +v -0.135299 2.461940 -0.135299 +v -0.250000 2.353553 -0.250000 +v -0.326640 2.191342 -0.326641 +v -0.073223 2.461940 -0.176777 +v -0.135299 2.353553 -0.326641 +v -0.176776 2.191342 -0.426777 +v 0.062500 2.625000 -0.125000 +v 0.000000 2.461940 -0.191342 +v 0.000000 2.625000 -0.125000 +v -0.047835 2.625000 -0.115485 +v -0.088388 2.625000 -0.088388 +v -0.115485 2.625000 -0.047835 +v -0.125000 2.625000 0.000000 +v -0.115485 2.625000 0.047835 +v -0.088388 2.625000 0.088388 +v -0.047835 2.625000 0.115485 +v -0.000000 2.625000 0.125000 +v 0.047835 2.625000 0.115485 +v 0.088388 2.625000 0.088388 +v 0.115485 2.625000 0.047835 +v 0.125000 2.625000 -0.000000 +v 0.115485 2.625000 -0.047835 +v 0.088388 2.625000 -0.088388 +v 0.047835 2.625000 -0.115485 +v 0.062500 2.672835 -0.115485 +v 0.062500 2.713388 -0.088388 +v 0.062500 2.740485 -0.047835 +v 0.062500 2.750000 0.000000 +v 0.062500 2.740485 0.047835 +v 0.062500 2.713388 0.088388 +v 0.062500 2.672835 0.115485 +v 0.062500 2.625000 0.125000 +v 0.062500 2.577165 0.115485 +v 0.062500 2.536612 0.088388 +v 0.062500 2.509515 0.047835 +v 0.062500 2.500000 -0.000000 +v 0.062500 2.509515 -0.047835 +v 0.062500 2.536612 -0.088388 +v 0.062500 2.577165 -0.115485 +v 0.187500 2.672835 -0.115485 +v 0.187500 2.625000 -0.125000 +v 0.187500 2.713388 -0.088388 +v 0.187500 2.740485 -0.047835 +v 0.187500 2.750000 0.000000 +v 0.187500 2.740485 0.047835 +v 0.187500 2.713388 0.088388 +v 0.187500 2.672835 0.115485 +v 0.187500 2.625000 0.125000 +v 0.187500 2.577165 0.115485 +v 0.187500 2.536612 0.088388 +v 0.187500 2.509515 0.047835 +v 0.187500 2.500000 -0.000000 +v 0.187500 2.509515 -0.047835 +v 0.187500 2.536612 -0.088388 +v 0.187500 2.577165 -0.115485 +v -0.187500 2.625000 -0.125000 +v -0.187500 2.672835 -0.115485 +v -0.187500 2.713388 -0.088388 +v -0.187500 2.740485 -0.047835 +v -0.187500 2.750000 0.000000 +v -0.187500 2.740485 0.047835 +v -0.187500 2.713388 0.088388 +v -0.187500 2.672835 0.115485 +v -0.187500 2.625000 0.125000 +v -0.187500 2.577165 0.115485 +v -0.187500 2.536612 0.088388 +v -0.187500 2.509515 0.047835 +v -0.187500 2.500000 -0.000000 +v -0.187500 2.509515 -0.047835 +v -0.187500 2.536612 -0.088388 +v -0.187500 2.577165 -0.115485 +v -0.062500 2.672835 -0.115485 +v -0.062500 2.625000 -0.125000 +v -0.062500 2.713388 -0.088388 +v -0.062500 2.740485 -0.047835 +v -0.062500 2.750000 0.000000 +v -0.062500 2.740485 0.047835 +v -0.062500 2.713388 0.088388 +v -0.062500 2.672835 0.115485 +v -0.062500 2.625000 0.125000 +v -0.062500 2.577165 0.115485 +v -0.062500 2.536612 0.088388 +v -0.062500 2.509515 0.047835 +v -0.062500 2.500000 -0.000000 +v -0.062500 2.509515 -0.047835 +v -0.062500 2.536612 -0.088388 +v -0.062500 2.577165 -0.115485 +v 0.062500 2.625000 0.125000 +v -0.062500 2.625000 0.125000 +v 0.062500 2.625000 -0.250000 +v -0.062500 2.625000 -0.250000 +v 0.062500 2.375000 -0.750000 +v -0.062500 2.375000 -0.750000 +v 0.062500 2.375000 -0.875000 +v -0.062500 2.375000 -0.875000 +v 0.062500 2.500000 -0.875000 +v -0.062500 2.500000 -0.875000 +v 0.062500 2.500000 -0.750000 +v -0.062500 2.500000 -0.750000 +v 0.062500 2.750000 -0.250000 +v -0.062500 2.750000 -0.250000 +v 0.062500 2.750000 0.125000 +v -0.062500 2.750000 0.125000 +v 0.062500 2.875000 -0.125000 +v -0.062500 2.875000 -0.125000 +v 0.062500 2.875000 -0.625000 +v -0.062500 2.875000 -0.625000 +v 0.062500 2.812500 -0.625000 +v -0.062500 2.812500 -0.625000 +v 0.062500 2.812500 -0.125000 +v -0.062500 2.812500 -0.125000 +v 0.062500 2.750000 0.000000 +v -0.062500 2.750000 0.000000 +v 0.187500 2.509515 0.047835 +v 0.187500 2.536612 0.088388 +v 0.187500 2.577165 0.115485 +v 0.187500 2.625000 0.125000 +v 0.187500 2.672835 0.115485 +v 0.187500 2.713388 0.088388 +v 0.187500 2.740485 0.047835 +v 0.187500 2.750000 0.000000 +v 0.187500 2.740485 -0.047835 +v 0.187500 2.713388 -0.088388 +v 0.187500 2.625000 -0.125000 +v 0.187500 2.672835 -0.115485 +v 0.000000 2.812500 0.375000 +v -0.062500 2.795753 0.375000 +v -0.108253 2.750000 0.375000 +v -0.125000 2.687500 0.375000 +v -0.108253 2.625000 0.375000 +v -0.062500 2.579247 0.375000 +v -0.000000 2.562500 0.375000 +v 0.062500 2.579247 0.375000 +v 0.108253 2.625000 0.375000 +v 0.125000 2.687500 0.375000 +v 0.108253 2.750000 0.375000 +v 0.062500 2.795753 0.375000 +v 0.000000 2.875000 1.375000 +v -0.093750 2.849880 1.375000 +v -0.162380 2.781250 1.375000 +v -0.187500 2.687500 1.375000 +v -0.162380 2.593750 1.375000 +v -0.093750 2.525120 1.375000 +v -0.000000 2.500000 1.375000 +v 0.093750 2.525120 1.375000 +v 0.162380 2.593750 1.375000 +v 0.187500 2.687500 1.375000 +v 0.162380 2.781250 1.375000 +v 0.093750 2.849880 1.375000 +v 0.000000 2.843750 1.375000 +v -0.078125 2.822817 1.375000 +v -0.135316 2.765625 1.375000 +v -0.156250 2.687500 1.375000 +v -0.135316 2.609375 1.375000 +v -0.078125 2.552183 1.375000 +v -0.000000 2.531250 1.375000 +v 0.078125 2.552183 1.375000 +v 0.135316 2.609375 1.375000 +v 0.156250 2.687500 1.375000 +v 0.135317 2.765625 1.375000 +v 0.078125 2.822817 1.375000 +v 0.000000 2.781250 0.375000 +v -0.046875 2.768690 0.375000 +v -0.081190 2.734375 0.375000 +v -0.093750 2.687500 0.375000 +v -0.081190 2.640625 0.375000 +v -0.046875 2.606310 0.375000 +v -0.000000 2.593750 0.375000 +v 0.046875 2.606310 0.375000 +v 0.081190 2.640625 0.375000 +v 0.093750 2.687500 0.375000 +v 0.081190 2.734375 0.375000 +v 0.046875 2.768690 0.375000 +v 0.000000 0.000000 -0.500000 +v 0.191342 0.000000 -0.461940 +v 0.353553 0.000000 -0.353553 +v 0.461940 0.000000 -0.191342 +v 0.500000 0.000000 0.000000 +v 0.461940 0.000000 0.191342 +v 0.353553 0.000000 0.353553 +v 0.191342 0.000000 0.461940 +v 0.000000 0.000000 0.500000 +v -0.191342 0.000000 0.461940 +v -0.353553 0.000000 0.353554 +v -0.461940 0.000000 0.191342 +v -0.500000 0.000000 -0.000000 +v -0.461940 0.000000 -0.191342 +v -0.353553 0.000000 -0.353554 +v -0.191341 0.000000 -0.461940 +v 0.000000 2.875000 1.375000 +v -0.093750 2.849880 1.375000 +v -0.162380 2.781250 1.375000 +v -0.187500 2.687500 1.375000 +v -0.162380 2.593750 1.375000 +v -0.093750 2.525120 1.375000 +v -0.000000 2.500000 1.375000 +v 0.093750 2.525120 1.375000 +v 0.162380 2.593750 1.375000 +v 0.187500 2.687500 1.375000 +v 0.162380 2.781250 1.375000 +v 0.093750 2.849880 1.375000 +v 0.000000 2.843750 1.375000 +v -0.078125 2.822817 1.375000 +v -0.135316 2.765625 1.375000 +v -0.156250 2.687500 1.375000 +v -0.135316 2.609375 1.375000 +v -0.078125 2.552183 1.375000 +v -0.000000 2.531250 1.375000 +v 0.078125 2.552183 1.375000 +v 0.135316 2.609375 1.375000 +v 0.156250 2.687500 1.375000 +v 0.135317 2.765625 1.375000 +v 0.078125 2.822817 1.375000 +v 0.000000 2.750000 0.125000 +v -0.031250 2.741627 0.125000 +v -0.054127 2.718750 0.125000 +v -0.062500 2.687500 0.125000 +v -0.054127 2.656250 0.125000 +v -0.031250 2.633373 0.125000 +v -0.000000 2.625000 0.125000 +v 0.031250 2.633373 0.125000 +v 0.054127 2.656250 0.125000 +v 0.062500 2.687500 0.125000 +v 0.054127 2.718750 0.125000 +v 0.031250 2.741627 0.125000 +v 0.000000 2.812500 0.375000 +v -0.062500 2.795753 0.375000 +v -0.108253 2.750000 0.375000 +v -0.125000 2.687500 0.375000 +v -0.108253 2.625000 0.375000 +v -0.062500 2.579247 0.375000 +v -0.000000 2.562500 0.375000 +v 0.062500 2.579247 0.375000 +v 0.108253 2.625000 0.375000 +v 0.125000 2.687500 0.375000 +v 0.108253 2.750000 0.375000 +v 0.062500 2.795753 0.375000 +v 0.187500 2.500000 -0.000000 +v 0.187500 2.509515 -0.047835 +v 0.187500 2.536612 -0.088388 +v 0.187500 2.577165 -0.115485 +v -0.187500 2.625000 -0.125000 +v -0.187500 2.672835 -0.115485 +v -0.187500 2.713388 -0.088388 +v -0.187500 2.740485 -0.047835 +v -0.187500 2.750000 0.000000 +v -0.187500 2.740485 0.047835 +v -0.187500 2.713388 0.088388 +v -0.187500 2.672835 0.115485 +v -0.187500 2.625000 0.125000 +v -0.187500 2.577165 0.115485 +v -0.187500 2.536612 0.088388 +v -0.187500 2.509515 0.047835 +v -0.187500 2.500000 -0.000000 +v -0.187500 2.509515 -0.047835 +v -0.187500 2.536612 -0.088388 +v -0.187500 2.577165 -0.115485 +v 0.000000 2.781250 0.375000 +v -0.046875 2.768690 0.375000 +v -0.081190 2.734375 0.375000 +v -0.093750 2.687500 0.375000 +v -0.081190 2.640625 0.375000 +v -0.046875 2.606310 0.375000 +v -0.000000 2.593750 0.375000 +v 0.046875 2.606310 0.375000 +v 0.081190 2.640625 0.375000 +v 0.093750 2.687500 0.375000 +v 0.081190 2.734375 0.375000 +v 0.046875 2.768690 0.375000 +vt 0.863636 0.386364 +vt 0.886364 0.363636 +vt 0.886364 0.386364 +vt 0.613636 0.727273 +vt 0.613636 0.772727 +vt 0.590909 0.772727 +vt 0.647727 0.568182 +vt 0.670455 0.386364 +vt 0.670455 0.568182 +vt 0.732452 0.851627 +vt 0.760492 0.866653 +vt 0.739965 0.907706 +vt 0.647727 0.659091 +vt 0.670455 0.659091 +vt 0.568182 0.772727 +vt 0.590909 0.636364 +vt 0.568182 0.636364 +vt 0.590909 0.454545 +vt 0.568182 0.454545 +vt 0.590909 0.409091 +vt 0.568182 0.409091 +vt 0.590909 0.363636 +vt 0.636364 0.409091 +vt 0.613636 0.454545 +vt 0.613636 0.409091 +vt 0.636364 0.454545 +vt 0.613636 0.636364 +vt 0.647727 0.386364 +vt 0.670455 0.363636 +vt 0.568182 0.818182 +vt 0.545455 0.454545 +vt 0.636364 0.727273 +vt 0.636364 0.636364 +vt 0.704545 0.568182 +vt 0.681818 0.613636 +vt 0.681818 0.568182 +vt 0.704545 0.386364 +vt 0.681818 0.386364 +vt 0.545455 0.727273 +vt 0.545455 0.636364 +vt 0.636364 0.613636 +vt 0.636364 0.568182 +vt 0.580509 0.945988 +vt 0.563853 0.952614 +vt 0.549733 0.933745 +vt 0.546420 0.917748 +vt 0.563853 0.865568 +vt 0.589943 0.900434 +vt 0.709031 0.084709 +vt 0.684918 0.327153 +vt 0.563696 0.278927 +vt 0.909091 0.386364 +vt 0.909091 0.363636 +vt 0.931818 0.386364 +vt 0.931818 0.363636 +vt 0.954545 0.363636 +vt 0.954545 0.386364 +vt 0.977273 0.363636 +vt 0.977273 0.386364 +vt 1.000000 0.386364 +vt 1.000000 0.363636 +vt 0.727273 0.386364 +vt 0.750000 0.363636 +vt 0.750000 0.386364 +vt 0.772727 0.386364 +vt 0.772727 0.363636 +vt 0.795455 0.363636 +vt 0.795455 0.386364 +vt 0.818182 0.363636 +vt 0.818182 0.386364 +vt 0.840909 0.363636 +vt 0.840909 0.386364 +vt 0.863636 0.363636 +vt 0.732452 0.899031 +vt 0.728114 0.884004 +vt 0.728114 0.866653 +vt 0.739965 0.842951 +vt 0.748640 0.842951 +vt 0.756154 0.851627 +vt 0.760492 0.884004 +vt 0.756154 0.899031 +vt 0.748640 0.907707 +vt 0.568182 0.363636 +vt 0.647727 0.363636 +vt 0.590909 0.818182 +vt 0.545455 0.409091 +vt 0.704545 0.613636 +vt 0.545455 0.772727 +vt 0.636364 0.386364 +vt 0.546420 0.917748 +vt 0.546420 0.900434 +vt 0.549733 0.884437 +vt 0.555855 0.872194 +vt 0.563853 0.865568 +vt 0.586630 0.884437 +vt 0.572510 0.865568 +vt 0.580509 0.872194 +vt 0.589943 0.900434 +vt 0.589943 0.917748 +vt 0.586630 0.933745 +vt 0.572510 0.952614 +vt 0.555855 0.945988 +vt 0.589943 0.917748 +vt 0.572510 0.952614 +vt 0.586630 0.933745 +vt 0.580509 0.945988 +vt 0.563853 0.952614 +vt 0.555855 0.945988 +vt 0.549733 0.933745 +vt 0.546420 0.900434 +vt 0.549733 0.884437 +vt 0.555855 0.872194 +vt 0.572510 0.865568 +vt 0.580509 0.872194 +vt 0.586630 0.884437 +vt 0.587809 0.036483 +vt 0.619314 0.010384 +vt 0.653414 0.010384 +vt 0.684918 0.036484 +vt 0.722080 0.147718 +vt 0.722080 0.215919 +vt 0.709031 0.278928 +vt 0.653414 0.353252 +vt 0.619313 0.353252 +vt 0.587809 0.327153 +vt 0.550647 0.215918 +vt 0.550647 0.147718 +vt 0.563696 0.084709 +vt 0.727273 0.363636 +vt 0.409091 0.727273 +vt 0.375000 0.000000 +vt 0.409091 0.000000 +vt 0.375000 0.727273 +vt 0.340909 0.000000 +vt 0.340909 0.727273 +vt 0.306818 0.000000 +vt 0.306818 0.727273 +vt 0.272727 -0.000000 +vt 0.272727 0.727273 +vt 0.238636 0.000000 +vt 0.238636 0.727273 +vt 0.204545 0.000000 +vt 0.204545 0.727273 +vt 0.170455 0.000000 +vt 0.170455 0.727273 +vt 0.136364 0.000000 +vt 0.136364 0.727273 +vt 0.102273 0.000000 +vt 0.102273 0.727273 +vt 0.068182 0.000000 +vt 0.068182 0.727273 +vt 0.034091 0.000000 +vt 0.034091 0.727273 +vt -0.000000 0.000000 +vt 0.545455 0.727273 +vt 0.511364 -0.000000 +vt 0.545455 -0.000000 +vt 0.511364 0.727273 +vt 0.477273 -0.000000 +vt 0.477273 0.727273 +vt 0.443182 -0.000000 +vt 0.443182 0.727273 +vt 0.272727 0.795455 +vt 0.409091 0.863636 +vt 0.375000 0.795455 +vt 0.409091 0.795455 +vt 0.215909 0.931818 +vt 0.227273 1.000000 +vt 0.215909 1.000000 +vt 0.397727 0.931818 +vt 0.386364 0.863636 +vt 0.181818 0.931818 +vt 0.193182 1.000000 +vt 0.181818 1.000000 +vt 0.363636 0.931818 +vt 0.352273 0.863636 +vt 0.375000 0.863636 +vt 0.238636 0.795455 +vt 0.204545 0.795455 +vt 0.340909 0.795455 +vt 0.329545 0.931818 +vt 0.318182 0.863636 +vt 0.340909 0.863636 +vt 0.170455 0.795455 +vt 0.306818 0.795455 +vt 0.159091 0.931818 +vt 0.147727 1.000000 +vt 0.147727 0.931818 +vt 0.306818 0.863636 +vt 0.125000 0.931818 +vt 0.113636 1.000000 +vt 0.113636 0.931818 +vt 0.295455 0.931818 +vt 0.284091 0.863636 +vt 0.136364 0.795455 +vt 0.272727 0.863636 +vt 0.090909 0.931818 +vt 0.079545 1.000000 +vt 0.079545 0.931818 +vt 0.261364 0.931818 +vt 0.250000 0.863636 +vt 0.227273 0.931818 +vt 0.215909 0.863636 +vt 0.238636 0.863636 +vt 0.102273 0.795455 +vt 0.068182 0.795455 +vt 0.056818 0.931818 +vt 0.045455 1.000000 +vt 0.045455 0.931818 +vt 0.204545 0.863636 +vt 0.181818 0.863636 +vt 0.022727 0.931818 +vt 0.011364 1.000000 +vt 0.011364 0.931818 +vt 0.034091 0.795455 +vt -0.000000 0.727273 +vt 0.170455 0.863636 +vt 0.534091 0.931818 +vt 0.522727 1.000000 +vt 0.522727 0.931818 +vt 0.147727 0.863636 +vt 0.136364 0.863636 +vt 0.500000 0.931818 +vt 0.488636 1.000000 +vt 0.488636 0.931818 +vt 0.113636 0.863636 +vt 0.545455 0.795455 +vt 0.511364 0.795455 +vt 0.079545 0.863636 +vt 0.102273 0.863636 +vt 0.477273 0.795455 +vt 0.465909 0.931818 +vt 0.454545 1.000000 +vt 0.454545 0.931818 +vt 0.068182 0.863636 +vt 0.045455 0.863636 +vt 0.431818 0.931818 +vt 0.420455 1.000000 +vt 0.420455 0.931818 +vt 0.443182 0.795455 +vt 0.034091 0.863636 +vt 0.000000 0.795455 +vt 0.386364 1.000000 +vt 0.386364 0.931818 +vt 0.011364 0.863636 +vt 0.352273 1.000000 +vt 0.352273 0.931818 +vt 0.545455 0.863636 +vt 0.522727 0.863636 +vt 0.511364 0.863636 +vt 0.488636 0.863636 +vt 0.318182 1.000000 +vt 0.318182 0.931818 +vt 0.477273 0.863636 +vt 0.284091 0.931818 +vt 0.295455 1.000000 +vt 0.284091 1.000000 +vt 0.454545 0.863636 +vt 0.420455 0.863636 +vt 0.250000 0.931818 +vt 0.261364 1.000000 +vt 0.250000 1.000000 +vt 0.443182 0.863636 +vt 0.568182 0.818182 +vt 0.556818 0.863636 +vt 0.556818 0.818182 +vt 0.670455 0.818182 +vt 0.659091 0.863636 +vt 0.659091 0.818182 +vt 0.579545 0.818182 +vt 0.568182 0.863636 +vt 0.681818 0.818182 +vt 0.670455 0.863636 +vt 0.602273 0.818182 +vt 0.590909 0.863636 +vt 0.590909 0.818182 +vt 0.579545 0.863636 +vt 0.693182 0.818182 +vt 0.681818 0.863636 +vt 0.613636 0.818182 +vt 0.602273 0.863636 +vt 0.704545 0.818182 +vt 0.693182 0.863636 +vt 0.625000 0.818182 +vt 0.613636 0.863636 +vt 0.715909 0.818182 +vt 0.704545 0.863636 +vt 0.636364 0.818182 +vt 0.625000 0.863636 +vt 0.727273 0.818182 +vt 0.715909 0.863636 +vt 0.647727 0.818182 +vt 0.636364 0.863636 +vt 0.545455 0.818182 +vt 0.545455 0.863636 +vt 0.647727 0.863636 +vt 0.704545 0.863636 +vt 0.715909 0.818182 +vt 0.715909 0.863636 +vt 0.602273 0.863636 +vt 0.613636 0.818182 +vt 0.613636 0.863636 +vt 0.693182 0.863636 +vt 0.704545 0.818182 +vt 0.590909 0.863636 +vt 0.602273 0.818182 +vt 0.670455 0.863636 +vt 0.681818 0.818182 +vt 0.681818 0.863636 +vt 0.693182 0.818182 +vt 0.579545 0.863636 +vt 0.590909 0.818182 +vt 0.659091 0.863636 +vt 0.670455 0.818182 +vt 0.568182 0.863636 +vt 0.579545 0.818182 +vt 0.647727 0.863636 +vt 0.659091 0.818182 +vt 0.556818 0.863636 +vt 0.568182 0.818182 +vt 0.636364 0.863636 +vt 0.647727 0.818182 +vt 0.545455 0.818182 +vt 0.556818 0.818182 +vt 0.625000 0.863636 +vt 0.636364 0.818182 +vt 0.727273 0.818182 +vt 0.727273 0.863636 +vt 0.625000 0.818182 +vt 0.931818 0.750000 +vt 0.954545 0.386364 +vt 0.954545 0.750000 +vt 0.727273 0.750000 +vt 0.750000 0.386364 +vt 0.750000 0.750000 +vt 0.795455 0.750000 +vt 0.818182 0.386364 +vt 0.818182 0.750000 +vt 0.909091 0.750000 +vt 0.931818 0.386364 +vt 0.977273 0.750000 +vt 1.000000 0.386364 +vt 1.000000 0.750000 +vt 0.772727 0.750000 +vt 0.795455 0.386364 +vt 0.886364 0.750000 +vt 0.909091 0.386364 +vt 0.840909 0.750000 +vt 0.863636 0.386364 +vt 0.863636 0.750000 +vt 0.977273 0.386364 +vt 0.772727 0.386364 +vt 0.886364 0.386364 +vt 0.840909 0.386364 +vt 0.977273 0.840909 +vt 1.000000 0.750000 +vt 0.988636 0.840909 +vt 0.920455 0.840909 +vt 0.909091 0.750000 +vt 0.931818 0.750000 +vt 0.806818 0.840909 +vt 0.795455 0.750000 +vt 0.818182 0.750000 +vt 0.738636 0.840909 +vt 0.727273 0.750000 +vt 0.750000 0.750000 +vt 0.943182 0.840909 +vt 0.954545 0.750000 +vt 0.829545 0.840909 +vt 0.840909 0.750000 +vt 0.875000 0.840909 +vt 0.863636 0.750000 +vt 0.886364 0.750000 +vt 0.750000 0.840909 +vt 0.772727 0.750000 +vt 0.761364 0.840909 +vt 0.954545 0.840909 +vt 0.977273 0.750000 +vt 0.965909 0.840909 +vt 0.840909 0.840909 +vt 0.852273 0.840909 +vt 0.886364 0.840909 +vt 0.897727 0.840909 +vt 0.772727 0.840909 +vt 0.784091 0.840909 +vt 0.750000 0.363636 +vt 0.727273 -0.000000 +vt 0.750000 0.000000 +vt 0.977273 0.363636 +vt 1.000000 -0.000000 +vt 1.000000 0.363636 +vt 0.954545 0.363636 +vt 0.977273 0.000000 +vt 0.931818 0.363636 +vt 0.954545 -0.000000 +vt 0.909091 0.000000 +vt 0.931818 0.000000 +vt 0.909091 0.363636 +vt 0.886364 0.000000 +vt 0.863636 0.363636 +vt 0.886364 0.363636 +vt 0.840909 0.363636 +vt 0.863636 0.000000 +vt 0.818182 0.363636 +vt 0.840909 0.000000 +vt 0.795455 0.363636 +vt 0.818182 0.000000 +vt 0.772727 0.000000 +vt 0.795455 0.000000 +vt 0.772727 0.363636 +vt 0.193182 0.931818 +vt 0.159091 1.000000 +vt 0.125000 1.000000 +vt 0.090909 1.000000 +vt 0.056818 1.000000 +vt 0.022727 1.000000 +vt 0.534091 1.000000 +vt 0.500000 1.000000 +vt 0.465909 1.000000 +vt 0.431818 1.000000 +vt 0.397727 1.000000 +vt 0.363636 1.000000 +vt 0.329545 1.000000 +vt 0.727273 0.863636 +vt 0.545455 0.863636 +vt 0.727273 0.386364 +vt 0.909091 0.840909 +vt 0.795455 0.840909 +vt 0.727273 0.840909 +vt 0.931818 0.840909 +vt 0.818182 0.840909 +vt 0.863636 0.840909 +vt 0.727273 0.363636 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.8944 -0.4472 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.0968 -0.9953 +vn 0.3827 0.0000 -0.9239 +vn 0.3809 0.0968 -0.9195 +vn 0.7071 0.0000 -0.7071 +vn 0.7038 0.0968 -0.7038 +vn 0.9239 0.0000 -0.3827 +vn 0.9195 0.0968 -0.3809 +vn 0.9953 0.0968 0.0000 +vn 0.9239 0.0000 0.3827 +vn 0.9195 0.0968 0.3809 +vn 0.7071 0.0000 0.7071 +vn 0.7038 0.0968 0.7038 +vn 0.3827 0.0000 0.9239 +vn 0.3809 0.0968 0.9195 +vn 0.0000 0.0968 0.9953 +vn -0.3827 0.0000 0.9239 +vn -0.3809 0.0968 0.9195 +vn -0.7071 0.0000 0.7071 +vn -0.7038 0.0968 0.7038 +vn -0.9239 0.0000 0.3827 +vn -0.9195 0.0968 0.3809 +vn -0.9953 0.0968 0.0000 +vn -0.9239 0.0000 -0.3827 +vn -0.9195 0.0968 -0.3809 +vn -0.7071 0.0000 -0.7071 +vn -0.7038 0.0968 -0.7038 +vn -0.3827 0.0000 -0.9239 +vn -0.3809 0.0968 -0.9195 +vn 0.9273 0.3743 0.0000 +vn 0.0000 0.6952 -0.7188 +vn 0.3548 0.3743 -0.8567 +vn 0.0000 0.3743 -0.9273 +vn 0.5371 0.6504 0.5371 +vn 0.8557 0.3768 0.3544 +vn 0.6550 0.3768 0.6550 +vn 0.0000 0.6504 -0.7595 +vn 0.2751 0.6952 -0.6641 +vn 0.2907 0.6504 0.7017 +vn 0.3544 0.3768 0.8557 +vn 0.2907 0.6504 -0.7017 +vn 0.5083 0.6952 -0.5083 +vn 0.8567 0.3743 0.3548 +vn 0.6557 0.3743 0.6557 +vn 0.6557 0.3743 -0.6557 +vn 0.5371 0.6504 -0.5371 +vn 0.6641 0.6952 -0.2751 +vn 0.3548 0.3743 0.8567 +vn 0.8567 0.3743 -0.3548 +vn 0.0000 0.3768 0.9263 +vn 0.0000 0.6504 0.7595 +vn -0.3544 0.3768 0.8557 +vn -0.2907 0.6504 0.7017 +vn 0.7017 0.6504 -0.2907 +vn 0.7188 0.6952 0.0000 +vn 0.0000 0.3743 0.9273 +vn -0.6550 0.3768 0.6550 +vn -0.5371 0.6504 0.5371 +vn 0.7595 0.6504 0.0000 +vn 0.6641 0.6952 0.2751 +vn 0.7017 0.6504 0.2907 +vn 0.5083 0.6952 0.5083 +vn -0.3548 0.3743 0.8567 +vn -0.6557 0.3743 0.6557 +vn -0.8557 0.3768 0.3544 +vn -0.7017 0.6504 0.2907 +vn 0.2751 0.6952 0.6641 +vn -0.9263 0.3768 0.0000 +vn -0.7595 0.6504 0.0000 +vn -0.8567 0.3743 0.3548 +vn -0.8557 0.3768 -0.3544 +vn -0.7017 0.6504 -0.2907 +vn 0.0000 0.6952 0.7188 +vn -0.6550 0.3768 -0.6550 +vn -0.5371 0.6504 -0.5371 +vn -0.2751 0.6952 0.6641 +vn -0.9273 0.3743 0.0000 +vn -0.8567 0.3743 -0.3548 +vn -0.5083 0.6952 0.5083 +vn -0.6557 0.3743 -0.6557 +vn -0.3544 0.3768 -0.8557 +vn -0.2907 0.6504 -0.7017 +vn -0.6641 0.6952 0.2751 +vn 0.0000 0.3768 -0.9263 +vn -0.3548 0.3743 -0.8567 +vn 0.3544 0.3768 -0.8557 +vn -0.7188 0.6952 0.0000 +vn 0.6550 0.3768 -0.6550 +vn -0.6641 0.6952 -0.2751 +vn -0.5083 0.6952 -0.5083 +vn 0.8557 0.3768 -0.3544 +vn 0.9263 0.3768 0.0000 +vn -0.2751 0.6952 -0.6641 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.9980 0.0000 -0.0623 +vn 0.8643 -0.4990 -0.0623 +vn 0.0000 -0.9980 -0.0623 +vn -0.4990 -0.8643 -0.0623 +vn -0.9980 0.0000 -0.0623 +vn -0.8643 0.4990 -0.0623 +vn 0.8643 0.4990 -0.0623 +vn 0.4990 -0.8643 -0.0623 +vn -0.8643 -0.4990 -0.0623 +vn 0.4990 0.8643 -0.0623 +vn -0.4990 0.8643 -0.0623 +vn 0.0000 0.9980 -0.0623 +vn 0.4851 -0.8401 -0.2425 +vn 0.0000 -0.9701 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn 0.8401 0.4851 -0.2425 +vn -0.8401 0.4851 -0.2425 +vn -0.9701 0.0000 -0.2425 +vn -0.4851 -0.8401 -0.2425 +vn 0.8401 -0.4851 -0.2425 +vn -0.4851 0.8401 -0.2425 +vn 0.4851 0.8401 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn -0.8401 -0.4851 -0.2425 +vn 0.4990 0.8643 0.0623 +vn 0.0000 0.9980 0.0623 +vn -0.4990 0.8643 0.0623 +vn -0.8643 0.4990 0.0623 +vn -0.9980 0.0000 0.0623 +vn -0.8643 -0.4990 0.0623 +vn -0.4990 -0.8643 0.0623 +vn 0.0000 -0.9980 0.0623 +vn 0.4990 -0.8643 0.0623 +vn 0.8643 -0.4990 0.0623 +vn 0.9980 0.0000 0.0623 +vn 0.8643 0.4990 0.0623 +s off +f 263/1/1 286/2/1 274/3/1 +f 185/4/2 175/5/2 161/6/2 +f 177/7/3 180/8/3 178/9/3 +f 335/10/1 339/11/1 331/12/1 +f 175/13/4 178/9/4 176/14/4 +f 162/15/5 163/16/5 161/6/5 +f 164/17/6 165/18/6 163/16/6 +f 166/19/5 167/20/5 165/18/5 +f 168/21/7 169/22/7 167/20/7 +f 170/23/3 171/24/3 169/25/3 +f 172/26/8 173/27/8 171/24/8 +f 179/28/7 182/29/7 180/8/7 +f 161/6/1 176/30/1 162/15/1 +f 172/31/9 168/21/9 166/19/9 +f 164/17/9 172/31/9 166/19/9 +f 186/32/3 173/27/3 174/33/3 +f 169/25/2 165/18/2 167/20/2 +f 171/24/2 163/16/2 165/18/2 +f 183/34/10 186/35/10 184/36/10 +f 181/37/5 184/36/5 182/38/5 +f 186/39/9 174/40/9 164/17/9 +f 186/35/9 178/9/9 184/36/9 +f 182/38/9 178/9/9 180/8/9 +f 185/41/2 177/7/2 175/13/2 +f 183/42/2 179/28/2 177/7/2 +f 321/43/9 319/44/9 317/45/9 +f 190/46/2 311/47/2 197/48/2 +f 250/49/5 254/50/5 258/51/5 +f 273/52/1 286/2/1 285/53/1 +f 272/54/1 285/53/1 284/55/1 +f 272/54/1 283/56/1 271/57/1 +f 271/57/1 282/58/1 270/59/1 +f 269/60/1 282/58/1 281/61/1 +f 269/62/1 280/63/1 268/64/1 +f 267/65/1 280/63/1 279/66/1 +f 267/65/1 278/67/1 266/68/1 +f 266/68/1 277/69/1 265/70/1 +f 265/70/1 276/71/1 264/72/1 +f 263/1/1 276/71/1 275/73/1 +f 263/1/1 275/73/1 286/2/1 +f 161/6/2 163/16/2 185/4/2 +f 163/16/2 173/27/2 185/4/2 +f 177/7/3 179/28/3 180/8/3 +f 331/12/1 332/74/1 333/75/1 +f 333/75/1 334/76/1 335/10/1 +f 335/10/1 336/77/1 337/78/1 +f 337/78/1 338/79/1 339/11/1 +f 339/11/1 340/80/1 331/12/1 +f 340/80/1 341/81/1 331/12/1 +f 341/81/1 342/82/1 331/12/1 +f 331/12/1 333/75/1 335/10/1 +f 335/10/1 337/78/1 339/11/1 +f 175/13/4 177/7/4 178/9/4 +f 162/15/5 164/17/5 163/16/5 +f 164/17/6 166/19/6 165/18/6 +f 166/19/5 168/21/5 167/20/5 +f 168/21/7 170/83/7 169/22/7 +f 170/23/3 172/26/3 171/24/3 +f 172/26/8 174/33/8 173/27/8 +f 179/28/7 181/84/7 182/29/7 +f 161/6/1 175/85/1 176/30/1 +f 172/31/9 170/86/9 168/21/9 +f 164/17/9 174/40/9 172/31/9 +f 186/32/3 185/4/3 173/27/3 +f 169/25/2 171/24/2 165/18/2 +f 171/24/2 173/27/2 163/16/2 +f 183/34/10 185/87/10 186/35/10 +f 181/37/5 183/34/5 184/36/5 +f 164/17/9 162/15/9 186/39/9 +f 162/15/9 176/88/9 186/39/9 +f 186/35/9 176/14/9 178/9/9 +f 182/38/9 184/36/9 178/9/9 +f 185/41/2 183/42/2 177/7/2 +f 183/42/2 181/89/2 179/28/2 +f 317/45/9 316/90/9 315/91/9 +f 315/91/9 330/92/9 329/93/9 +f 329/93/9 328/94/9 325/95/9 +f 328/94/9 327/96/9 325/95/9 +f 327/96/9 326/97/9 325/95/9 +f 325/95/9 324/98/9 323/99/9 +f 323/99/9 322/100/9 321/43/9 +f 321/43/9 320/101/9 319/44/9 +f 319/44/9 318/102/9 317/45/9 +f 317/45/9 315/91/9 325/95/9 +f 315/91/9 329/93/9 325/95/9 +f 325/95/9 323/99/9 317/45/9 +f 323/99/9 321/43/9 317/45/9 +f 197/48/2 198/103/2 194/104/2 +f 198/103/2 196/105/2 194/104/2 +f 196/105/2 195/106/2 194/104/2 +f 194/104/2 193/107/2 192/108/2 +f 192/108/2 191/109/2 194/104/2 +f 191/109/2 190/46/2 194/104/2 +f 190/46/2 189/110/2 311/47/2 +f 189/110/2 188/111/2 311/47/2 +f 188/111/2 187/112/2 311/47/2 +f 311/47/2 312/113/2 313/114/2 +f 313/114/2 314/115/2 311/47/2 +f 314/115/2 197/48/2 311/47/2 +f 197/48/2 194/104/2 190/46/2 +f 262/116/5 247/117/5 248/118/5 +f 248/118/5 249/119/5 262/116/5 +f 249/119/5 250/49/5 262/116/5 +f 250/49/5 251/120/5 252/121/5 +f 252/121/5 253/122/5 250/49/5 +f 253/122/5 254/50/5 250/49/5 +f 254/50/5 255/123/5 258/51/5 +f 255/123/5 256/124/5 258/51/5 +f 256/124/5 257/125/5 258/51/5 +f 258/51/5 259/126/5 260/127/5 +f 260/127/5 261/128/5 262/116/5 +f 258/51/5 260/127/5 262/116/5 +f 262/116/5 250/49/5 258/51/5 +f 273/52/1 274/3/1 286/2/1 +f 272/54/1 273/52/1 285/53/1 +f 272/54/1 284/55/1 283/56/1 +f 271/57/1 283/56/1 282/58/1 +f 269/60/1 270/59/1 282/58/1 +f 269/62/1 281/129/1 280/63/1 +f 267/65/1 268/64/1 280/63/1 +f 267/65/1 279/66/1 278/67/1 +f 266/68/1 278/67/1 277/69/1 +f 265/70/1 277/69/1 276/71/1 +f 263/1/1 264/72/1 276/71/1 +s 1 +f 2/130/11 3/131/12 1/132/7 +f 4/133/13 5/134/14 3/131/12 +f 6/135/15 7/136/16 5/134/14 +f 8/137/17 9/138/2 7/136/16 +f 10/139/18 11/140/19 9/138/2 +f 12/141/20 13/142/21 11/140/19 +f 14/143/22 15/144/23 13/142/21 +f 16/145/24 17/146/1 15/144/23 +f 18/147/25 19/148/26 17/146/1 +f 20/149/27 21/150/28 19/148/26 +f 22/151/29 23/152/30 21/150/28 +f 24/153/31 25/154/9 23/152/30 +f 26/155/32 27/156/33 25/157/9 +f 28/158/34 29/159/35 27/156/33 +f 30/160/36 31/161/37 29/159/35 +f 32/162/38 1/132/7 31/161/37 +f 46/163/39 12/141/20 10/139/18 +f 33/164/40 37/165/41 34/166/42 +f 50/167/43 93/168/44 92/169/45 +f 81/170/46 36/171/47 33/164/40 +f 53/172/48 92/173/45 91/174/49 +f 35/175/50 39/176/51 36/177/47 +f 14/143/22 49/178/52 52/179/53 +f 36/177/47 40/180/54 37/165/41 +f 38/181/55 42/182/56 39/183/51 +f 16/145/24 52/179/53 55/184/57 +f 39/183/51 43/185/58 40/180/54 +f 53/186/48 90/187/59 56/188/60 +f 55/184/57 18/147/25 16/145/24 +f 42/189/56 46/163/39 43/185/58 +f 56/190/60 89/191/61 59/192/62 +f 41/193/63 45/194/64 42/189/56 +f 58/195/65 20/149/27 18/147/25 +f 45/196/64 49/178/52 46/163/39 +f 59/197/62 88/198/66 62/199/67 +f 44/200/68 48/201/69 45/196/64 +f 47/202/70 51/203/71 48/204/69 +f 22/151/29 61/205/72 64/206/73 +f 48/204/69 52/179/53 49/178/52 +f 62/207/67 87/208/74 65/209/75 +f 51/210/71 53/172/48 54/211/76 +f 64/206/73 24/153/31 22/151/29 +f 51/210/71 55/184/57 52/179/53 +f 65/212/75 86/213/77 68/214/78 +f 67/215/79 26/216/32 24/153/31 +f 54/217/76 58/195/65 55/184/57 +f 68/218/78 85/219/80 71/220/81 +f 54/217/76 56/188/60 57/221/82 +f 57/222/82 61/205/72 58/195/65 +f 71/223/81 84/224/83 74/225/84 +f 57/222/82 59/192/62 60/226/85 +f 28/158/34 70/227/86 73/228/87 +f 59/197/62 63/229/88 60/230/85 +f 30/160/36 73/228/87 76/231/89 +f 60/230/85 64/206/73 61/205/72 +f 74/232/84 83/233/90 77/234/91 +f 63/235/88 65/209/75 66/236/92 +f 76/231/89 32/162/38 30/160/36 +f 63/235/88 67/215/79 64/206/73 +f 77/237/91 82/238/93 81/239/46 +f 79/240/94 2/130/11 32/162/38 +f 66/241/92 70/242/86 67/215/79 +f 81/170/46 97/243/95 35/244/50 +f 65/212/75 69/245/96 66/241/92 +f 35/175/50 96/246/97 38/247/55 +f 69/248/96 71/220/81 72/249/98 +f 2/130/11 37/165/41 4/133/13 +f 69/248/96 73/228/87 70/227/86 +f 72/250/98 74/225/84 75/251/99 +f 4/133/13 40/180/54 6/135/15 +f 72/250/98 76/231/89 73/228/87 +f 38/181/55 95/252/100 41/253/63 +f 6/135/15 43/185/58 8/137/17 +f 75/254/99 79/240/94 76/231/89 +f 44/255/68 95/256/100 94/257/101 +f 75/254/99 77/234/91 78/258/102 +f 43/185/58 10/139/18 8/137/17 +f 79/240/94 33/259/40 34/166/42 +f 47/260/70 94/261/101 93/262/44 +f 78/263/102 81/239/46 33/259/40 +f 111/264/103 126/265/104 110/266/104 +f 104/267/105 119/268/106 103/269/106 +f 112/270/107 127/271/103 111/264/103 +f 105/272/1 120/273/105 104/267/105 +f 98/274/108 114/275/7 80/276/7 +f 80/276/7 128/277/107 112/270/107 +f 106/278/109 121/279/1 105/272/1 +f 99/280/110 113/281/108 98/274/108 +f 107/282/111 122/283/109 106/278/109 +f 100/284/112 115/285/110 99/280/110 +f 108/286/113 123/287/111 107/282/111 +f 101/288/3 116/289/112 100/284/112 +f 109/290/5 124/291/113 108/286/113 +f 102/292/114 117/293/3 101/288/3 +f 109/294/5 126/265/104 125/295/5 +f 103/269/106 118/296/114 102/292/114 +f 143/297/103 158/298/104 142/299/104 +f 136/300/105 151/301/106 135/302/106 +f 144/303/107 159/304/103 143/297/103 +f 137/305/1 152/306/105 136/300/105 +f 130/307/108 146/308/7 129/309/7 +f 129/309/7 160/310/107 144/303/107 +f 138/311/109 153/312/1 137/305/1 +f 131/313/110 145/314/108 130/307/108 +f 139/315/111 154/316/109 138/311/109 +f 132/317/112 147/318/110 131/313/110 +f 140/319/113 155/320/111 139/315/111 +f 133/321/3 148/322/112 132/317/112 +f 140/319/113 157/323/5 156/324/113 +f 134/325/114 149/326/3 133/321/3 +f 142/299/104 157/327/5 141/328/5 +f 135/302/106 150/329/114 134/325/114 +f 208/330/115 219/331/116 207/332/116 +f 205/333/117 216/334/118 204/335/118 +f 202/336/119 213/337/120 201/338/120 +f 209/339/121 220/340/115 208/330/115 +f 206/341/122 217/342/117 205/343/117 +f 203/344/123 214/345/119 202/336/119 +f 210/346/124 221/347/121 209/339/121 +f 200/348/125 211/349/126 199/350/126 +f 207/332/116 218/351/122 206/341/122 +f 204/335/118 215/352/123 203/344/123 +f 210/346/124 211/349/126 222/353/124 +f 200/348/125 213/337/120 212/354/125 +f 294/355/127 305/356/128 293/357/128 +f 296/358/129 309/359/130 308/360/129 +f 289/361/131 302/362/132 301/363/131 +f 292/364/133 305/365/128 304/366/133 +f 295/367/134 308/360/129 307/368/134 +f 288/369/135 301/363/131 300/370/135 +f 298/371/136 299/372/137 310/373/136 +f 292/374/133 303/375/138 291/376/138 +f 295/377/134 306/378/127 294/379/127 +f 288/380/135 299/372/137 287/381/137 +f 298/382/136 309/359/130 297/383/130 +f 291/384/138 302/362/132 290/385/132 +f 228/386/139 241/387/140 240/388/139 +f 230/389/141 241/390/140 229/391/140 +f 231/392/142 242/393/141 230/389/141 +f 232/394/143 243/395/142 231/392/142 +f 232/394/143 245/396/144 244/397/143 +f 233/398/144 246/399/145 245/396/144 +f 223/400/146 246/399/145 234/401/145 +f 224/402/147 235/403/146 223/400/146 +f 225/404/148 236/405/147 224/402/147 +f 226/406/149 237/407/148 225/404/148 +f 226/406/149 239/408/150 238/409/149 +f 227/410/150 240/388/139 239/408/150 +f 2/130/11 4/133/13 3/131/12 +f 4/133/13 6/135/15 5/134/14 +f 6/135/15 8/137/17 7/136/16 +f 8/137/17 10/139/18 9/138/2 +f 10/139/18 12/141/20 11/140/19 +f 12/141/20 14/143/22 13/142/21 +f 14/143/22 16/145/24 15/144/23 +f 16/145/24 18/147/25 17/146/1 +f 18/147/25 20/149/27 19/148/26 +f 20/149/27 22/151/29 21/150/28 +f 22/151/29 24/153/31 23/152/30 +f 24/153/31 26/216/32 25/154/9 +f 26/155/32 28/158/34 27/156/33 +f 28/158/34 30/160/36 29/159/35 +f 30/160/36 32/162/38 31/161/37 +f 32/162/38 2/130/11 1/132/7 +f 46/163/39 49/178/52 12/141/20 +f 33/164/40 36/171/47 37/165/41 +f 50/167/43 47/202/70 93/168/44 +f 81/170/46 35/244/50 36/171/47 +f 53/172/48 50/411/43 92/173/45 +f 35/175/50 38/247/55 39/176/51 +f 14/143/22 12/141/20 49/178/52 +f 36/177/47 39/176/51 40/180/54 +f 38/181/55 41/253/63 42/182/56 +f 16/145/24 14/143/22 52/179/53 +f 39/183/51 42/182/56 43/185/58 +f 53/186/48 91/412/49 90/187/59 +f 55/184/57 58/195/65 18/147/25 +f 42/189/56 45/194/64 46/163/39 +f 56/190/60 90/413/59 89/191/61 +f 41/193/63 44/255/68 45/194/64 +f 58/195/65 61/205/72 20/149/27 +f 45/196/64 48/201/69 49/178/52 +f 59/197/62 89/414/61 88/198/66 +f 44/200/68 47/260/70 48/201/69 +f 47/202/70 50/167/43 51/203/71 +f 22/151/29 20/149/27 61/205/72 +f 48/204/69 51/203/71 52/179/53 +f 62/207/67 88/415/66 87/208/74 +f 51/210/71 50/411/43 53/172/48 +f 64/206/73 67/215/79 24/153/31 +f 51/210/71 54/211/76 55/184/57 +f 65/212/75 87/416/74 86/213/77 +f 67/215/79 70/242/86 26/216/32 +f 54/217/76 57/221/82 58/195/65 +f 68/218/78 86/417/77 85/219/80 +f 54/217/76 53/186/48 56/188/60 +f 57/222/82 60/226/85 61/205/72 +f 71/223/81 85/418/80 84/224/83 +f 57/222/82 56/190/60 59/192/62 +f 28/158/34 26/155/32 70/227/86 +f 59/197/62 62/199/67 63/229/88 +f 30/160/36 28/158/34 73/228/87 +f 60/230/85 63/229/88 64/206/73 +f 74/232/84 84/419/83 83/233/90 +f 63/235/88 62/207/67 65/209/75 +f 76/231/89 79/240/94 32/162/38 +f 63/235/88 66/236/92 67/215/79 +f 77/237/91 83/420/90 82/238/93 +f 79/240/94 34/166/42 2/130/11 +f 66/241/92 69/245/96 70/242/86 +f 81/170/46 82/421/93 97/243/95 +f 65/212/75 68/214/78 69/245/96 +f 35/175/50 97/422/95 96/246/97 +f 69/248/96 68/218/78 71/220/81 +f 2/130/11 34/166/42 37/165/41 +f 69/248/96 72/249/98 73/228/87 +f 72/250/98 71/223/81 74/225/84 +f 4/133/13 37/165/41 40/180/54 +f 72/250/98 75/251/99 76/231/89 +f 38/181/55 96/423/97 95/252/100 +f 6/135/15 40/180/54 43/185/58 +f 75/254/99 78/258/102 79/240/94 +f 44/255/68 41/193/63 95/256/100 +f 75/254/99 74/232/84 77/234/91 +f 43/185/58 46/163/39 10/139/18 +f 79/240/94 78/263/102 33/259/40 +f 47/260/70 44/200/68 94/261/101 +f 78/263/102 77/237/91 81/239/46 +f 111/264/103 127/271/103 126/265/104 +f 104/267/105 120/273/105 119/268/106 +f 112/270/107 128/277/107 127/271/103 +f 105/272/1 121/279/1 120/273/105 +f 98/274/108 113/281/108 114/275/7 +f 80/276/7 114/275/7 128/277/107 +f 106/278/109 122/283/109 121/279/1 +f 99/280/110 115/285/110 113/281/108 +f 107/282/111 123/287/111 122/283/109 +f 100/284/112 116/289/112 115/285/110 +f 108/286/113 124/291/113 123/287/111 +f 101/288/3 117/293/3 116/289/112 +f 109/290/5 125/424/5 124/291/113 +f 102/292/114 118/296/114 117/293/3 +f 109/294/5 110/266/104 126/265/104 +f 103/269/106 119/268/106 118/296/114 +f 143/297/103 159/304/103 158/298/104 +f 136/300/105 152/306/105 151/301/106 +f 144/303/107 160/310/107 159/304/103 +f 137/305/1 153/312/1 152/306/105 +f 130/307/108 145/314/108 146/308/7 +f 129/309/7 146/308/7 160/310/107 +f 138/311/109 154/316/109 153/312/1 +f 131/313/110 147/318/110 145/314/108 +f 139/315/111 155/320/111 154/316/109 +f 132/317/112 148/322/112 147/318/110 +f 140/319/113 156/324/113 155/320/111 +f 133/321/3 149/326/3 148/322/112 +f 140/319/113 141/425/5 157/323/5 +f 134/325/114 150/329/114 149/326/3 +f 142/299/104 158/298/104 157/327/5 +f 135/302/106 151/301/106 150/329/114 +f 208/330/115 220/340/115 219/331/116 +f 205/333/117 217/426/117 216/334/118 +f 202/336/119 214/345/119 213/337/120 +f 209/339/121 221/347/121 220/340/115 +f 206/341/122 218/351/122 217/342/117 +f 203/344/123 215/352/123 214/345/119 +f 210/346/124 222/353/124 221/347/121 +f 200/348/125 212/354/125 211/349/126 +f 207/332/116 219/331/116 218/351/122 +f 204/335/118 216/334/118 215/352/123 +f 210/346/124 199/350/126 211/349/126 +f 200/348/125 201/338/120 213/337/120 +f 294/355/127 306/378/127 305/356/128 +f 296/358/129 297/427/130 309/359/130 +f 289/361/131 290/428/132 302/362/132 +f 292/364/133 293/429/128 305/365/128 +f 295/367/134 296/430/129 308/360/129 +f 288/369/135 289/431/131 301/363/131 +f 298/371/136 287/432/137 299/372/137 +f 292/374/133 304/366/133 303/375/138 +f 295/377/134 307/368/134 306/378/127 +f 288/380/135 300/370/135 299/372/137 +f 298/382/136 310/373/136 309/359/130 +f 291/384/138 303/375/138 302/362/132 +f 228/386/139 229/433/140 241/387/140 +f 230/389/141 242/393/141 241/390/140 +f 231/392/142 243/395/142 242/393/141 +f 232/394/143 244/397/143 243/395/142 +f 232/394/143 233/398/144 245/396/144 +f 233/398/144 234/401/145 246/399/145 +f 223/400/146 235/403/146 246/399/145 +f 224/402/147 236/405/147 235/403/146 +f 225/404/148 237/407/148 236/405/147 +f 226/406/149 238/409/149 237/407/148 +f 226/406/149 227/410/150 239/408/150 +f 227/410/150 228/386/139 240/388/139 diff --git a/src/main/resources/assets/hbm/textures/blocks/foam.png b/src/main/resources/assets/hbm/textures/blocks/foam.png new file mode 100644 index 0000000000000000000000000000000000000000..2eae5c6dcbb723be904f2adff7cbcfbf668beff3 GIT binary patch literal 309 zcmV-50m}Y~P)NHfYt7<3h5Nn% z*tU)1H~f&|0KoCTA18iK?8Hg>mZlSZSy>UV8-fETJ^-JJBL_YJ zS0pY7G>HS!fCBiXtyq^F0Q> z$>BR6(rIM~A$al636-*e*YZ$KkH3_T<6t`umoLu|ib92?Uate7C<v(c;}gkT=c zNS6_6t;YVnBWmOMh&VG5GnIMfV2S|OYjQWg!?9e>o;~GYf1gEGBg&ifeGgZ8X5FjeU#&0K9{T23fJloWiwP&C5aO{ zoi4pzmy@#*Mj4?y3gxQAX*jUb@wz)C;SizKH4N27*A1Gc&op!pLLe%gSO4D9sK-2f z|2@XHV@%T`jZ=y|XL@r%QiLd9fAxu6>#bqy9!VY|k<_q=;t;hChG8HS6@a$iW-=L5 zS8UQOrqlBfgTa7s(cq`!A6R5Q!7RXYJq)Xkp*HEY`*gcLmThr88Uipl_yE*`a2}#O z{_Zm=)dB0>j8~U8NUMu$EYLKaRgn{}>6kmkG0J z!2JiithY;6s}ikVXE+){_8I^xh0~|M(=dICY7;3d9v<~jp8WQO)P=!l`X8g=h{5(Y zicnBcxYs{mGM&=vbO`5jav4*r38H9$Yjp{N0HIbYcTt3GnDqNwIA$AB>X??vEV|}q za>Z>hEKK np{o|lJfYQd&~=^B_$B`XKW1reFLy6@00000NkvXXu0mjfnnjF0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fireext.png b/src/main/resources/assets/hbm/textures/items/ammo_fireext.png new file mode 100644 index 0000000000000000000000000000000000000000..db88b9b47410c31d3528f69add652d32e9d0e184 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;F?S*W!m4+t*9PO?t#+DJI5NT2{u!TU-pL zLHxoX9tBn&HRff1)V24qcZ(;SYroY0?@!{6pP$ta_fA%q%=`DJ(_B`8VP>L(Ap^s; XHx@$1Z#l$)u4V9a^>bP0l+XkK`x8)j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fireext_foam.png b/src/main/resources/assets/hbm/textures/items/ammo_fireext_foam.png new file mode 100644 index 0000000000000000000000000000000000000000..53473358a0714ef55f296615fad771955eda9523 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$p%k$F*#G;pM*x;Qg%>9~W%QrSLIp;NB6y_a>QEL}and^RIgF#rMi04L4 zmCHOle~xS0ZFpg`KK-tq`dO>GiB;({vx3SKgf>Y@X9u~z->B;?v*-A{BgssMHg4<{ zd@Ud_i*5coXKCeqnrxPxhb-T$;%Y5E;h7V}pc%>GFsW@WkAd-I730k}*=$ur4;VI2 hv3JNfc(eZ*`_pV+6M z3LS~U+fqIpqmwg_`zTC^aOf|QU2``Lg4^Xc^!2Vzpx3pwB1ZYZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_ueu.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_ueu.png new file mode 100644 index 0000000000000000000000000000000000000000..5c388b0ec2f52ecc5f7c600bda9563b17fcb222f GIT binary patch literal 565 zcmV-50?Pe~P)Lfk?GI27-lj_sxx>J1b4R%XBKPL{+T_n=TLPY ze0%arj4_y{AxRV7zy4T@%lVmgAT(P%V?;}{V^#Hj;;8a1Gm zMr*yA0~^@8fWiS0$>+cZ_AWrHeDaBv(t#@WEPJvokUerJpdlyiC|HWdh-NN1l6jfh!V5e=k*CHGZx>B^AwRWuy z3+#O*n|(e3;QZm0wG@0`oR)XI34rQKHUZ$*k9m3iey4+J$X@^Yp?MK!T?8#?l*aK00000NkvXXu0mjf Di)Q?b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/fireext.png b/src/main/resources/assets/hbm/textures/models/weapons/fireext.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3a6dca4f88c6abc35c472cff60fb337a85436e GIT binary patch literal 753 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 KMNUMnLSTZ0*Ia@C literal 0 HcmV?d00001