Merge branch 'HbmMods:master' into master

This commit is contained in:
Raaaaaaaaaay 2026-01-27 23:31:22 +02:00 committed by GitHub
commit 14610ef919
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
109 changed files with 20171 additions and 36367 deletions

View File

@ -6,7 +6,7 @@
* Simplified the battery socket's client packets, reducing CPU load * Simplified the battery socket's client packets, reducing CPU load
* Muzzle flashes on guns now work in third person mode, including on other players and on NPCs, making it more apparent when you're being fired at * Muzzle flashes on guns now work in third person mode, including on other players and on NPCs, making it more apparent when you're being fired at
* This includes non-standard special effects like the .44 gap flash and the .35-800 ejector plume * This includes non-standard special effects like the .44 gap flash and the .35-800 ejector plume
* Removed the old unused satelite deco blocks, freeing up 6 block IDs * Removed the old unused satellite deco blocks, freeing up 6 block IDs
* Crucibles that smelt metal with no template set will no place the metal in the recipe stack instead of the waste stack, this should make it easier to get a recipe to work in the many, many cases where people add the template after smelting the material * Crucibles that smelt metal with no template set will no place the metal in the recipe stack instead of the waste stack, this should make it easier to get a recipe to work in the many, many cases where people add the template after smelting the material
* Battery sockets and the FENSU now support the copy tool * Battery sockets and the FENSU now support the copy tool
* Removed unused displaylist support from the model loader * Removed unused displaylist support from the model loader
@ -14,7 +14,12 @@
* Rebranded canned horse slime * Rebranded canned horse slime
* Now with extra bone marrow * Now with extra bone marrow
* Updated the deuterium tower's model * Updated the deuterium tower's model
* Increased the energy requirement for welding osmiridium * Updated most blast door visuals
* RBMKs now have QMAW pages
* Updated the model on the heavy magnetic storage container
* Increased the power draw on the osmiridium welding recipe
* Bullet casings now make sounds when falling to the ground
* Most ammo types now have QMAW pages, including information on whether or not they are a war crime
# Fixed # Fixed
* Potentially fixed yet another issue regarding crates * Potentially fixed yet another issue regarding crates
@ -24,4 +29,8 @@
* Fixed battery sockets producing junk debug data in the logs * Fixed battery sockets producing junk debug data in the logs
* Fixed an issue where the charging station would crash when trying to charge certain items * Fixed an issue where the charging station would crash when trying to charge certain items
* Fixed the DFC's core component not dropping its contents when mined * Fixed the DFC's core component not dropping its contents when mined
* Fixed audio problems with guns * Fixed audio problems with guns
* Fixed third person muzzleflash on the miniguns clipping the barrel
* Fixed arc furnace IO slots stacking items with incompatible NBT
* Fixed a bounding box issue with casing particles, causing them to slide sideways on the first tick, making trajectories weird
* Fixed some turrets not using the more modern casing spawner system which allows casings to have a smoke trail

View File

@ -1192,17 +1192,8 @@ public class ModBlocks {
public static Block corium_block; public static Block corium_block;
public static Fluid corium_fluid; public static Fluid corium_fluid;
public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor) { public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor) {
@Override public boolean blocksMovement() { return true; }
@Override @Override public Material setImmovableMobility() { return super.setImmovableMobility(); } //override access modifier
public boolean blocksMovement() {
return true;
}
@Override
public Material setImmovableMobility() { //override access modifier
return super.setImmovableMobility();
}
}.setImmovableMobility()); }.setImmovableMobility());
public static Block volcanic_lava_block; public static Block volcanic_lava_block;

View File

@ -4,12 +4,12 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb;
import com.hbm.items.special.ItemDoorSkin;
import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.TileEntityDoorGeneric;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.Rotation; import com.hbm.util.fauxpointtwelve.Rotation;
import api.hbm.block.IToolable;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -23,7 +23,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockDoorGeneric extends BlockDummyable implements IBomb { public class BlockDoorGeneric extends BlockDummyable implements IBomb, IToolable {
public DoorDecl type; public DoorDecl type;
@ -69,20 +69,29 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ){ public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ){
if(!world.isRemote && !playerIn.isSneaking()) { if(!world.isRemote && !playerIn.isSneaking()) {
int[] pos1 = findCore(world, x, y, z); int[] pos1 = findCore(world, x, y, z);
if(pos1 == null) if(pos1 == null) return false;
return false;
TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]);
if(door != null) { if(door != null) {
if(playerIn.getHeldItem() != null && playerIn.getHeldItem().getItem() instanceof ItemDoorSkin) { return door.tryToggle(playerIn);
return door.setSkinIndex((byte) playerIn.getHeldItem().getItemDamage());
} else {
return door.tryToggle(playerIn);
}
} }
} }
return !playerIn.isSneaking(); return !playerIn.isSneaking();
} }
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool != ToolType.SCREWDRIVER || !player.isSneaking()) return false;
int[] pos1 = findCore(world, x, y, z);
if(pos1 == null) return false;
TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]);
if(door == null || !door.getDoorType().hasSkins()) return false;
if(world.isRemote) return true;
door.cycleSkinIndex();
return true;
}
@Override @Override
public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) { public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) {

View File

@ -11,8 +11,8 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.handler.imc.ICompatNHNEI;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.gui.GUIMachineShredder;
import com.hbm.inventory.recipes.MachineRecipes;
import com.hbm.inventory.recipes.ShredderRecipes; import com.hbm.inventory.recipes.ShredderRecipes;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import codechicken.nei.NEIServerUtils; import codechicken.nei.NEIServerUtils;
@ -175,9 +175,18 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICom
public TemplateRecipeHandler newInstance() { public TemplateRecipeHandler newInstance() {
if(fuels == null || fuels.isEmpty()) if(fuels == null || fuels.isEmpty())
fuels = new ArrayList<Fuel>(); fuels = new ArrayList<Fuel>();
for(ItemStack i : MachineRecipes.instance().getBlades()) { for(ItemStack i : getBlades()) {
fuels.add(new Fuel(i)); fuels.add(new Fuel(i));
} }
return super.newInstance(); return super.newInstance();
} }
public static ArrayList<ItemStack> getBlades() {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.blades_advanced_alloy));
fuels.add(new ItemStack(ModItems.blades_steel));
fuels.add(new ItemStack(ModItems.blades_titanium));
fuels.add(new ItemStack(ModItems.blades_desh));
return fuels;
}
} }

View File

@ -12,7 +12,6 @@ import com.hbm.util.Tuple.Triplet;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
@ -50,42 +49,12 @@ public class MachineRecipes {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>(); ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potato));
fuels.add(new ItemStack(ModItems.battery_potatos)); fuels.add(new ItemStack(ModItems.battery_potatos));
fuels.add(new ItemStack(ModItems.fusion_core));
fuels.add(new ItemStack(ModItems.energy_core)); fuels.add(new ItemStack(ModItems.energy_core));
for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal())); for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal()));
for(EnumBatterySC num : EnumBatterySC.values()) fuels.add(new ItemStack(ModItems.battery_sc, 1, num.ordinal())); for(EnumBatterySC num : EnumBatterySC.values()) fuels.add(new ItemStack(ModItems.battery_sc, 1, num.ordinal()));
fuels.add(new ItemStack(ModItems.battery_creative)); fuels.add(new ItemStack(ModItems.battery_creative));
return fuels; return fuels;
} }
public ArrayList<ItemStack> getBlades() {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.blades_advanced_alloy));
fuels.add(new ItemStack(ModItems.blades_steel));
fuels.add(new ItemStack(ModItems.blades_titanium));
fuels.add(new ItemStack(ModItems.blades_desh));
return fuels;
}
public static boolean mODE(Item item, String[] names) {
return mODE(new ItemStack(item), names);
}
public static boolean mODE(ItemStack item, String[] names) {
boolean flag = false;
if(names.length > 0) {
for(int i = 0; i < names.length; i++) {
if(mODE(item, names[i]))
flag = true;
}
}
return flag;
}
public static boolean mODE(Item item, String name) {
return mODE(new ItemStack(item), name);
}
//Matches Ore Dict Entry //Matches Ore Dict Entry
public static boolean mODE(ItemStack stack, String name) { public static boolean mODE(ItemStack stack, String name) {

View File

@ -1347,16 +1347,6 @@ public class ModItems {
public static Item mp_chip_4; public static Item mp_chip_4;
public static Item mp_chip_5; public static Item mp_chip_5;
public static Item missile_skin_camo;
public static Item missile_skin_desert;
public static Item missile_skin_flames;
public static Item missile_skin_manly_pink;
public static Item missile_skin_orange_insulation;
public static Item missile_skin_sleek;
public static Item missile_skin_soviet_glory;
public static Item missile_skin_soviet_stank;
public static Item missile_skin_metal;
public static Item missile_custom; public static Item missile_custom;
public static Item missile_soyuz; public static Item missile_soyuz;
@ -2135,8 +2125,6 @@ public class ModItems {
public static Item door_bunker; public static Item door_bunker;
public static Item door_red; public static Item door_red;
public static Item sliding_blast_door_skin;
public static Item record_lc; public static Item record_lc;
public static Item record_ss; public static Item record_ss;
public static Item record_vc; public static Item record_vc;
@ -3680,16 +3668,6 @@ public class ModItems {
mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4");
mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5");
missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo");
missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert");
missile_skin_flames = new ItemCustomLore().setUnlocalizedName("missile_skin_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_flames");
missile_skin_manly_pink = new ItemCustomLore().setUnlocalizedName("missile_skin_manly_pink").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_manly_pink");
missile_skin_orange_insulation = new ItemCustomLore().setUnlocalizedName("missile_skin_orange_insulation").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_orange_insulation");
missile_skin_sleek = new ItemCustomLore().setUnlocalizedName("missile_skin_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_sleek");
missile_skin_soviet_glory = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_glory").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_glory");
missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank");
missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal");
ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell"); ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell");
ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab);
ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext"); ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext");
@ -4850,8 +4828,6 @@ public class ModItems {
door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker");
door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red");
sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default");
record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc"); record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc");
record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss"); record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss");
record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc"); record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc");
@ -7032,7 +7008,6 @@ public class ModItems {
GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); GameRegistry.registerItem(door_office, door_office.getUnlocalizedName());
GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName());
GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); GameRegistry.registerItem(door_red, door_red.getUnlocalizedName());
GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName());
//Records //Records
GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName()); GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName());

View File

@ -1,36 +0,0 @@
package com.hbm.items.special;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import java.util.List;
public class ItemDoorSkin extends Item {
protected final IIcon[] icons;
public ItemDoorSkin(int skinCount) {
setMaxStackSize(1);
icons = new IIcon[skinCount];
}
@Override
public boolean getHasSubtypes() {
return true;
}
@Override
public void getSubItems(Item item, CreativeTabs creativeTabs, List list) {
for(int i = 0; i < icons.length; i++) {
list.add(new ItemStack(item, 1, i));
}
}
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta) {
return icons[meta];
}
}

View File

@ -1,28 +0,0 @@
package com.hbm.items.special;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
public class ItemSlidingBlastDoorSkin extends ItemDoorSkin {
public ItemSlidingBlastDoorSkin() {
super(3);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg) {
this.itemIcon = reg.registerIcon(this.getIconString());
this.icons[0] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_default");
this.icons[1] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant1");
this.icons[2] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant2");
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + "." + stack.getItemDamage();
}
}

View File

@ -71,7 +71,7 @@ public class XFactory50 {
.setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap"));
bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F).setThresholdNegation(21F).setArmorPiercing(0.25F)
.setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du"));
bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE)
.setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he"));
bmg50_sm = new BulletConfig().setItem(EnumAmmo.BMG50_SM).setCasing(EnumCasingType.LARGE_STEEL, 6).setWear(10F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(30F).setArmorPiercing(0.35F) bmg50_sm = new BulletConfig().setItem(EnumAmmo.BMG50_SM).setCasing(EnumCasingType.LARGE_STEEL, 6).setWear(10F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(30F).setArmorPiercing(0.35F)
.setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50sm")); .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50sm"));

View File

@ -1072,11 +1072,6 @@ public class CraftingManager {
ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_BLANK) ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_BLANK)
}); });
addRecipeAuto(new ItemStack(ModItems.sliding_blast_door_skin), "SPS", "DPD", "SPS", 'P', Items.paper, 'D', "dye", 'S', STEEL.plate());
addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 1), new ItemStack(ModItems.sliding_blast_door_skin, 1, 0));
addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 2), new ItemStack(ModItems.sliding_blast_door_skin, 1, 1));
addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin), new ItemStack(ModItems.sliding_blast_door_skin, 1, 2));
addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 0), " I ", "IPI", " I ", 'I', STEEL.ingot(), 'P', STEEL.plateCast()); addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 0), " I ", "IPI", " I ", 'I', STEEL.ingot(), 'P', STEEL.plateCast());
addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 1), " I ", "IPI", " I ", 'I', ALLOY.ingot(), 'P', ALLOY.plateCast()); addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 1), " I ", "IPI", " I ", 'I', ALLOY.ingot(), 'P', ALLOY.plateCast());
addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 2), " I ", "IPI", " I ", 'I', DESH.ingot(), 'P', DESH.plateCast()); addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 2), " I ", "IPI", " I ", 'I', DESH.ingot(), 'P', DESH.plateCast());

View File

@ -1477,6 +1477,7 @@ public class MainRegistry {
ignoreMappings.add("hbm:tile.sat_laser"); ignoreMappings.add("hbm:tile.sat_laser");
ignoreMappings.add("hbm:tile.sat_foeq"); ignoreMappings.add("hbm:tile.sat_foeq");
ignoreMappings.add("hbm:tile.sat_resonator"); ignoreMappings.add("hbm:tile.sat_resonator");
ignoreMappings.add("hbm:item.sliding_blast_door_skin");
/// REMAP /// /// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -929,7 +929,6 @@ public class ModEventHandlerClient {
//prune other entities' muzzle flashes //prune other entities' muzzle flashes
if(mc.theWorld.getTotalWorldTime() % 30 == 0) { if(mc.theWorld.getTotalWorldTime() % 30 == 0) {
Iterator itr = ItemRenderWeaponBase.flashMap.keySet().iterator();
long millis = System.currentTimeMillis(); long millis = System.currentTimeMillis();
//dead entities may have later insertion order than actively firing ones, so we be safe //dead entities may have later insertion order than actively firing ones, so we be safe
ItemRenderWeaponBase.flashMap.values().removeIf(entry -> millis - entry.longValue() >= 150); ItemRenderWeaponBase.flashMap.values().removeIf(entry -> millis - entry.longValue() >= 150);

View File

@ -326,14 +326,6 @@ public class ResourceManager {
public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj")); public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj"));
public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj")); public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj"));
//Sliding Blast Door
public static final ResourceLocation sliding_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door.png");
public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant1.png");
public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant2.png");
public static AnimatedModel sliding_blast_door = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae"));
public static Animation sliding_blast_door_anim = ColladaLoader.loadAnim(1200, new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae"));
//Doors //Doors
public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true);
public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"));
@ -343,36 +335,28 @@ public class ResourceManager {
public static IModelCustomNamed pheo_fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/fire_door.obj")).asVBO(); public static IModelCustomNamed pheo_fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/fire_door.obj")).asVBO();
public static final ResourceLocation pheo_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door.png"); public static final ResourceLocation pheo_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door.png");
public static IModelCustomNamed pheo_airlock_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/airlock_door.obj")).asVBO(); public static IModelCustomNamed pheo_airlock_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/airlock_door.obj")).asVBO();
public static final ResourceLocation pheo_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/blast_door.png");
public static IModelCustomNamed pheo_blast_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/blast_door.obj")).asVBO();
public static final ResourceLocation pheo_containment_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door.png");
public static IModelCustomNamed pheo_containment_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/containment_door.obj")).asVBO();
public static final ResourceLocation pheo_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/seal_door.png");
public static IModelCustomNamed pheo_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/seal_door.obj")).asVBO();
public static final ResourceLocation pheo_secure_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door.png");
public static final ResourceLocation pheo_secure_door_grey_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door_grey.png");
public static IModelCustomNamed pheo_secure_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/secure_door.obj")).asVBO();
public static final ResourceLocation pheo_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/sliding_door.png");
public static IModelCustomNamed pheo_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/sliding_door.obj")).asVBO();
public static final ResourceLocation pheo_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/vehicle_door.png");
public static IModelCustomNamed pheo_vehicle_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/vehicle_door.obj")).asVBO();
public static final ResourceLocation pheo_water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/water_door.png");
public static IModelCustomNamed pheo_water_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/water_door.obj")).asVBO();
//Secure Access Door //Doors
public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png");
public static IModelCustomNamed secure_access_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj")).asVBO();
public static final ResourceLocation water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/water_door.png");
public static IModelCustomNamed water_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj")).asVBO();
public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png");
public static IModelCustomNamed sliding_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj")).asVBO();
public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png");
public static IModelCustomNamed round_airlock_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj")).asVBO();
public static final ResourceLocation qe_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_sliding_door.png");
public static IModelCustomNamed qe_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj")).asVBO();
public static final ResourceLocation qe_containment_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment.png");
public static IModelCustomNamed qe_containment = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj")).asVBO();
public static final ResourceLocation large_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/large_vehicle_door.png");
public static IModelCustomNamed large_vehicle_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj")).asVBO();
public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png");
public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png"); public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png");
public static IModelCustomNamed silo_hatch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj")).asVBO(); public static IModelCustomNamed silo_hatch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj")).asVBO();
public static final ResourceLocation silo_hatch_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch_large.png"); public static final ResourceLocation silo_hatch_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch_large.png");
public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO(); public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO();
//Skeleton //Skeleton
public static final IModelCustom skeleton_holder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/skeleton_holder.obj"),false).asVBO(); public static final IModelCustom skeleton_holder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/skeleton_holder.obj"),false).asVBO();

View File

@ -50,8 +50,6 @@ public class MuzzleFlashPacket implements IMessage {
if(stack == null) return null; if(stack == null) return null;
if(stack.getItem() instanceof ItemGunBaseNT) { if(stack.getItem() instanceof ItemGunBaseNT) {
ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem();
ItemRenderWeaponBase.flashMap.put(entity, System.currentTimeMillis()); ItemRenderWeaponBase.flashMap.put(entity, System.currentTimeMillis());
} }

View File

@ -8,6 +8,7 @@ import java.util.Random;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GL12;
import com.hbm.main.MainRegistry;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Pair;
@ -68,6 +69,9 @@ public class ParticleSpentCasing extends EntityFX {
this.motionX = mx; this.motionX = mx;
this.motionY = my; this.motionY = my;
this.motionZ = mz; this.motionZ = mz;
// i am at a loss for words as to what the fuck is going on here, but this is needed, stop asking, fuck you
this.setPosition(x, y, z);
particleGravity = 1F; particleGravity = 1F;
} }
@ -128,16 +132,26 @@ public class ParticleSpentCasing extends EntityFX {
rotationPitch += momentumPitch; rotationPitch += momentumPitch;
rotationYaw += momentumYaw; rotationYaw += momentumYaw;
if(Math.abs(prevRotationPitch - rotationPitch) > 180) {
if(prevRotationPitch < rotationPitch) prevRotationPitch += 360;
if(prevRotationPitch > rotationPitch) prevRotationPitch -= 360;
}
if(Math.abs(prevRotationYaw - rotationYaw) > 180) {
if(prevRotationYaw < rotationYaw) prevRotationYaw += 360;
if(prevRotationYaw > rotationYaw) prevRotationYaw -= 360;
}
} }
public void moveEntity(double motionX, double motionY, double motionZ) { public void moveEntity(double motionX, double motionY, double motionZ) {
this.worldObj.theProfiler.startSection("move"); this.worldObj.theProfiler.startSection("move");
this.ySize *= 0.4F; this.ySize *= 0.4F;
if (this.isInWeb) { if(this.isInWeb) {
this.isInWeb = false; this.isInWeb = false;
motionX *= 0.25D; motionX *= 0.25D;
motionY *= 0.05000000074505806D; motionY *= 0.05D;
motionZ *= 0.25D; motionZ *= 0.25D;
this.motionX = 0.0D; this.motionX = 0.0D;
this.motionY = 0.0D; this.motionY = 0.0D;
@ -151,7 +165,7 @@ public class ParticleSpentCasing extends EntityFX {
List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(motionX, motionY, motionZ)); List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(motionX, motionY, motionZ));
for (int i = 0; i < list.size(); ++i) { for(int i = 0; i < list.size(); ++i) {
motionY = ((AxisAlignedBB)list.get(i)).calculateYOffset(this.boundingBox, motionY); motionY = ((AxisAlignedBB)list.get(i)).calculateYOffset(this.boundingBox, motionY);
} }
@ -159,13 +173,13 @@ public class ParticleSpentCasing extends EntityFX {
int j; int j;
for (j = 0; j < list.size(); ++j) { for(j = 0; j < list.size(); ++j) {
motionX = ((AxisAlignedBB)list.get(j)).calculateXOffset(this.boundingBox, motionX); motionX = ((AxisAlignedBB)list.get(j)).calculateXOffset(this.boundingBox, motionX);
} }
this.boundingBox.offset(motionX, 0.0D, 0.0D); this.boundingBox.offset(motionX, 0.0D, 0.0D);
for (j = 0; j < list.size(); ++j) { for(j = 0; j < list.size(); ++j) {
motionZ = ((AxisAlignedBB)list.get(j)).calculateZOffset(this.boundingBox, motionZ); motionZ = ((AxisAlignedBB)list.get(j)).calculateZOffset(this.boundingBox, motionZ);
} }
@ -215,6 +229,10 @@ public class ParticleSpentCasing extends EntityFX {
momentumYaw = (float) rand.nextGaussian() * 10F * this.config.getBounceYaw(); momentumYaw = (float) rand.nextGaussian() * 10F * this.config.getBounceYaw();
} }
if(this.config.getSound() != null && isCollidedVertically && Math.abs(initMoY) >= 0.2) {
MainRegistry.proxy.playSoundClient(posX, posY, posZ, this.config.getSound(), this.config.PLINK_LARGE.equals(this.config.getSound()) ? 1F : 0.5F, 1F + this.rand.nextFloat() * 0.2F);
}
this.worldObj.theProfiler.endSection(); this.worldObj.theProfiler.endSection();
} }
@ -262,8 +280,8 @@ public class ParticleSpentCasing extends EntityFX {
GL11.glScalef(dScale, dScale, dScale); GL11.glScalef(dScale, dScale, dScale);
GL11.glRotatef(180 - rotationYaw, 0, 1, 0); GL11.glRotatef(180 - (float) BobMathUtil.interp(prevRotationYaw, rotationYaw, interp), 0, 1, 0);
GL11.glRotatef(-rotationPitch, 1, 0, 0); GL11.glRotatef((float) -BobMathUtil.interp(prevRotationPitch, rotationPitch, interp), 1, 0, 0);
GL11.glScalef(config.getScaleX(), config.getScaleY(), config.getScaleZ()); GL11.glScalef(config.getScaleX(), config.getScaleY(), config.getScaleZ());

View File

@ -23,8 +23,7 @@ public class SpentCasing implements Cloneable {
public enum CasingType { public enum CasingType {
STRAIGHT("Straight"), STRAIGHT("Straight"),
BOTTLENECK("Bottleneck"), BOTTLENECK("Bottleneck"),
SHOTGUN("Shotgun", "ShotgunCase"), //plastic shell, brass case SHOTGUN("Shotgun", "ShotgunCase"); //plastic shell, brass case
AR2("AR2", "AR2Highlight"); //plug, back detailing
public final String[] partNames; public final String[] partNames;
@ -43,9 +42,20 @@ public class SpentCasing implements Cloneable {
private float bounceYaw = 1F; private float bounceYaw = 1F;
private float bouncePitch = 1F; private float bouncePitch = 1F;
private int maxAge = 240; private int maxAge = 240;
public static final String PLINK_SHELL = "hbm:weapon.casing.shell";
public static final String PLINK_SMALL = "hbm:weapon.casing.small";
public static final String PLINK_MEDIUM = "hbm:weapon.casing.medium";
public static final String PLINK_LARGE = "hbm:weapon.casing.large";
public SpentCasing(CasingType type) { public SpentCasing(CasingType type) {
this.type = type; this.type = type;
if(type == CasingType.SHOTGUN) {
this.setSound(PLINK_SHELL);
} else {
this.setSound(PLINK_SMALL);
}
} }
/** Separated from the ctor to allow for easy creation of new casings from templates that don't need to be registered */ /** Separated from the ctor to allow for easy creation of new casings from templates that don't need to be registered */
@ -56,16 +66,15 @@ public class SpentCasing implements Cloneable {
} }
public SpentCasing setScale(float scale) { public SpentCasing setScale(float scale) {
this.scaleX = scale; return setScale(scale, scale, scale);
this.scaleY = scale;
this.scaleZ = scale;
return this;
} }
public SpentCasing setScale(float x, float y, float z) { public SpentCasing setScale(float x, float y, float z) {
this.scaleX = x; this.scaleX = x;
this.scaleY = y; this.scaleY = y;
this.scaleZ = z; this.scaleZ = z;
if(x * y * z >= 3 && this.type != CasingType.SHOTGUN) this.setSound(PLINK_MEDIUM);
if(x * y * z >= 100 && this.type != CasingType.SHOTGUN) this.setSound(PLINK_LARGE);
return this; return this;
} }

View File

@ -32,6 +32,34 @@ public class CasingCreator implements IParticleCreator {
composeEffect(world, player, frontOffset, heightOffset, sideOffset, frontMotion, heightMotion, sideMotion, motionVariance, 5F, 10F, casing, false, 0, 0, 0); composeEffect(world, player, frontOffset, heightOffset, sideOffset, frontMotion, heightMotion, sideMotion, motionVariance, 5F, 10F, casing, false, 0, 0, 0);
} }
public static void composeEffect(World world, double x, double y, double z, float yaw, float pitch, double frontMotion, double heightMotion, double sideMotion, double motionVariance, float mPitch, float mYaw, String casing, boolean smoking, int smokeLife, double smokeLift, int nodeLife) {
Vec3 motion = Vec3.createVectorHelper(sideMotion, heightMotion, frontMotion);
motion.rotateAroundX(-pitch / 180F * (float) Math.PI);
motion.rotateAroundY(-yaw / 180F * (float) Math.PI);
double mX = motion.xCoord + world.rand.nextGaussian() * motionVariance;
double mY = motion.yCoord + world.rand.nextGaussian() * motionVariance;
double mZ = motion.zCoord + world.rand.nextGaussian() * motionVariance;
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "casingNT");
data.setDouble("mX", mX);
data.setDouble("mY", mY);
data.setDouble("mZ", mZ);
data.setFloat("yaw", yaw);
data.setFloat("pitch", pitch);
data.setFloat("mPitch", mPitch);
data.setFloat("mYaw", mYaw);
data.setString("name", casing);
data.setBoolean("smoking", smoking);
data.setInteger("smokeLife", smokeLife);
data.setDouble("smokeLift", smokeLift);
data.setInteger("nodeLife", nodeLife);
IParticleCreator.sendPacket(world, x, y, z, 50, data);
}
public static void composeEffect(World world, EntityLivingBase player, double frontOffset, double heightOffset, double sideOffset, double frontMotion, double heightMotion, double sideMotion, double motionVariance, float mPitch, float mYaw, String casing, boolean smoking, int smokeLife, double smokeLift, int nodeLife) { public static void composeEffect(World world, EntityLivingBase player, double frontOffset, double heightOffset, double sideOffset, double frontMotion, double heightMotion, double sideMotion, double motionVariance, float mPitch, float mYaw, String casing, boolean smoking, int smokeLife, double smokeLift, int nodeLife) {
if(player.isSneaking()) heightOffset -= 0.075F; if(player.isSneaking()) heightOffset -= 0.075F;

View File

@ -605,13 +605,14 @@ public class ItemRenderLibrary {
}}); }});
renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){ renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -4, 0); GL11.glTranslated(0, -3.75, 0);
GL11.glScaled(2.4, 2.4, 2.4); GL11.glScaled(2.4, 2.4, 2.4);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.secure_access_door_tex); GL11.glTranslated(0, 1, 0);
bindTexture(ResourceManager.pheo_secure_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.secure_access_door.renderAll(); ResourceManager.pheo_secure_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
@ -629,6 +630,19 @@ public class ItemRenderLibrary {
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
renderers.put(Item.getItemFromBlock(ModBlocks.sliding_blast_door), new ItemRenderBase(){
public void renderInventory() {
GL11.glTranslated(0, -2.75, 0);
GL11.glScaled(2.5, 2.5, 2.5);
}
public void renderCommon() {
bindTexture(ResourceManager.pheo_blast_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.pheo_blast_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}
});
renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){ renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){
public void renderInventory() { public void renderInventory() {
@ -636,9 +650,10 @@ public class ItemRenderLibrary {
GL11.glScaled(1.8, 1.8, 1.8); GL11.glScaled(1.8, 1.8, 1.8);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.large_vehicle_door_tex); GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.pheo_vehicle_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.large_vehicle_door.renderAll(); ResourceManager.pheo_vehicle_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
@ -648,9 +663,10 @@ public class ItemRenderLibrary {
GL11.glScaled(4, 4, 4); GL11.glScaled(4, 4, 4);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.water_door_tex); GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.pheo_water_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.water_door.renderAll(); ResourceManager.pheo_water_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
@ -697,23 +713,21 @@ public class ItemRenderLibrary {
GL11.glScaled(3.8, 3.8, 3.8); GL11.glScaled(3.8, 3.8, 3.8);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.qe_containment_tex); bindTexture(ResourceManager.pheo_containment_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.qe_containment.renderAllExcept("decal"); ResourceManager.pheo_containment_door.renderAll();
bindTexture(ResourceManager.qe_containment_decal);
ResourceManager.qe_containment.renderPart("decal");
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){ renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -3.5, 0); GL11.glTranslated(0, -3, 0);
GL11.glScaled(6, 6, 6); GL11.glScaled(5, 5, 5);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.qe_sliding_door_tex); bindTexture(ResourceManager.pheo_sliding_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.qe_sliding_door.renderAll(); ResourceManager.pheo_sliding_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
@ -737,9 +751,9 @@ public class ItemRenderLibrary {
GL11.glScaled(7, 7, 7); GL11.glScaled(7, 7, 7);
} }
public void renderCommon() { public void renderCommon() {
bindTexture(ResourceManager.sliding_seal_door_tex); bindTexture(ResourceManager.pheo_seal_door_tex);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.sliding_seal_door.renderAll(); ResourceManager.pheo_seal_door.renderAll();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });

View File

@ -145,7 +145,7 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase {
} }
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0, 0, 12); GL11.glTranslated(0, 0, 12.25);
GL11.glRotated(90, 0, 1, 0); GL11.glRotated(90, 0, 1, 0);
if(stack.getItem() == ModItems.gun_minigun_lacunae) { if(stack.getItem() == ModItems.gun_minigun_lacunae) {

View File

@ -134,7 +134,7 @@ public class ItemRenderMinigunDual extends ItemRenderWeaponBase {
} }
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0, 0, 12); GL11.glTranslated(0, 0, 12.25);
GL11.glRotated(90, 0, 1, 0); GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(shotRand * 90, 1, 0, 0); GL11.glRotated(shotRand * 90, 1, 0, 0);
@ -164,7 +164,7 @@ public class ItemRenderMinigunDual extends ItemRenderWeaponBase {
} }
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0, 0, 12); GL11.glTranslated(0, 0, 12.25);
GL11.glRotated(90, 0, 1, 0); GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(shotRand * 90, 1, 0, 0); GL11.glRotated(shotRand * 90, 1, 0, 0);

View File

@ -1,172 +0,0 @@
package com.hbm.render.loader;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBox;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.renderer.Tessellator;
public class ModelRendererTest extends ModelRenderer {
//TODO: blow up mojank HQ with a JDAM
private boolean compiled;
private int displayList;
public ModelRendererTest(ModelBase p_i1173_1_) {
super(p_i1173_1_);
}
public ModelRendererTest(ModelBase p_i1174_1_, int p_i1174_2_, int p_i1174_3_) {
this(p_i1174_1_);
this.setTextureOffset(p_i1174_2_, p_i1174_3_);
}
@SideOnly(Side.CLIENT)
public void render(float p_78785_1_) {
if(!this.isHidden) {
if(this.showModel) {
if(!this.compiled) {
this.compileDisplayList(p_78785_1_);
}
GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ);
int i;
if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) {
if(this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F) {
GL11.glCallList(this.displayList);
if(this.childModels != null) {
for(i = 0; i < this.childModels.size(); ++i) {
((ModelRenderer) this.childModels.get(i)).render(p_78785_1_);
}
}
} else {
GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_);
GL11.glCallList(this.displayList);
if(this.childModels != null) {
for(i = 0; i < this.childModels.size(); ++i) {
((ModelRenderer) this.childModels.get(i)).render(p_78785_1_);
}
}
GL11.glTranslatef(-this.rotationPointX * p_78785_1_, -this.rotationPointY * p_78785_1_, -this.rotationPointZ * p_78785_1_);
}
} else {
GL11.glPushMatrix();
GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_);
if(this.rotateAngleZ != 0.0F) {
GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
}
if(this.rotateAngleY != 0.0F) {
GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
}
if(this.rotateAngleX != 0.0F) {
GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
}
GL11.glPushMatrix();
GL11.glScaled(0.1, 0.1, 0.1);
ResourceManager.chemplant_body.renderAll();
GL11.glPopMatrix();
//GL11.glCallList(this.displayList);
if(this.childModels != null) {
for(i = 0; i < this.childModels.size(); ++i) {
((ModelRenderer) this.childModels.get(i)).render(p_78785_1_);
}
}
GL11.glPopMatrix();
}
GL11.glTranslatef(-this.offsetX, -this.offsetY, -this.offsetZ);
}
}
}
@SideOnly(Side.CLIENT)
public void renderWithRotation(float p_78791_1_) {
if(!this.isHidden) {
if(this.showModel) {
if(!this.compiled) {
this.compileDisplayList(p_78791_1_);
}
GL11.glPushMatrix();
GL11.glTranslatef(this.rotationPointX * p_78791_1_, this.rotationPointY * p_78791_1_, this.rotationPointZ * p_78791_1_);
if(this.rotateAngleY != 0.0F) {
GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
}
if(this.rotateAngleX != 0.0F) {
GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
}
if(this.rotateAngleZ != 0.0F) {
GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
}
GL11.glCallList(this.displayList);
GL11.glPopMatrix();
}
}
}
@SideOnly(Side.CLIENT)
public void postRender(float p_78794_1_) {
if(!this.isHidden) {
if(this.showModel) {
if(!this.compiled) {
this.compileDisplayList(p_78794_1_);
}
if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) {
if(this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) {
GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_);
}
} else {
GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_);
if(this.rotateAngleZ != 0.0F) {
GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
}
if(this.rotateAngleY != 0.0F) {
GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
}
if(this.rotateAngleX != 0.0F) {
GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
}
}
}
}
}
@SideOnly(Side.CLIENT)
private void compileDisplayList(float p_78788_1_) {
this.displayList = GLAllocation.generateDisplayLists(1);
GL11.glNewList(this.displayList, GL11.GL_COMPILE);
Tessellator tessellator = Tessellator.instance;
for(int i = 0; i < this.cubeList.size(); ++i) {
((ModelBox) this.cubeList.get(i)).render(tessellator, p_78788_1_);
}
GL11.glEndList();
this.compiled = true;
}
}

View File

@ -52,5 +52,4 @@ public class RenderAirlockDoor implements IRenderDoors {
GL11.glDisable(GL11.GL_CLIP_PLANE0); GL11.glDisable(GL11.GL_CLIP_PLANE0);
GL11.glDisable(GL11.GL_CLIP_PLANE1); GL11.glDisable(GL11.GL_CLIP_PLANE1);
} }
} }

View File

@ -0,0 +1,42 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderContainmentDoor implements IRenderDoors {
public static final RenderContainmentDoor INSTANCE = new RenderContainmentDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_containment_door_tex);
double maxRaise = 2.25;
double raise = 0;
if(door.state == door.STATE_OPEN) raise = maxRaise;
if(door.currentAnimation != null) {
raise = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxRaise;
}
GL11.glTranslated(0.25, 0.0, 0.0);
ResourceManager.pheo_containment_door.renderPart("Frame");
GL11.glEnable(GL11.GL_CLIP_PLANE0);
buf.put(new double[] { 0, -1, 0, 3 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf);
GL11.glTranslated(0, MathHelper.clamp_double(raise, 0, maxRaise), 0);
ResourceManager.pheo_containment_door.renderPart("Door");
GL11.glDisable(GL11.GL_CLIP_PLANE0);
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.Library;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderSealDoor implements IRenderDoors {
public static final RenderSealDoor INSTANCE = new RenderSealDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_seal_door_tex);
double maxRaise = 1;
double raise = 0;
if(door.state == door.STATE_OPEN) raise = maxRaise;
if(door.currentAnimation != null) {
raise = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxRaise;
}
GL11.glTranslated(0.5, 0, 0);
ResourceManager.pheo_seal_door.renderPart("Frame");
GL11.glEnable(GL11.GL_CLIP_PLANE0);
buf.put(new double[] { 0, 0, -1, 0.5001 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf);
GL11.glTranslated(0, 0, Library.smoothstep(MathHelper.clamp_double(raise, 0, maxRaise), 0, 1) * 0.9);
ResourceManager.pheo_seal_door.renderPart("Door");
GL11.glDisable(GL11.GL_CLIP_PLANE0);
}
}

View File

@ -0,0 +1,38 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderSecureDoor implements IRenderDoors {
public static final RenderSecureDoor INSTANCE = new RenderSecureDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(
door.getSkinIndex() == 1 ?
ResourceManager.pheo_secure_door_grey_tex :
ResourceManager.pheo_secure_door_tex);
double maxRaise = 3.5;
double raise = 0;
if(door.state == door.STATE_OPEN) raise = maxRaise;
if(door.currentAnimation != null) {
raise = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxRaise;
}
GL11.glTranslated(0, 1, 0);
ResourceManager.pheo_secure_door.renderPart("Frame");
GL11.glTranslated(0, MathHelper.clamp_double(raise, 0, maxRaise), 0);
ResourceManager.pheo_secure_door.renderPart("Door");
}
}

View File

@ -0,0 +1,72 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderSlidingBlastDoor implements IRenderDoors {
public static final RenderSlidingBlastDoor INSTANCE = new RenderSlidingBlastDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_blast_door_tex);
double maxOpen = 2.125;
double open = 0;
double lock = 0;
if(door.state == door.STATE_OPEN) {
open = maxOpen;
lock = 90;
}
if(door.currentAnimation != null) {
open = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxOpen;
lock = IRenderDoors.getRelevantTransformation("LOCK", door.currentAnimation)[0] * 90;
}
GL11.glDisable(GL11.GL_CULL_FACE);
ResourceManager.pheo_blast_door.renderPart("Frame");
GL11.glEnable(GL11.GL_CLIP_PLANE0);
buf.put(new double[] { 0.0, 0.0, 1, 2.5 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf);
GL11.glEnable(GL11.GL_CLIP_PLANE1);
buf.put(new double[] { 0.0, 0.0, -1, 2.5 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE1, buf);
GL11.glPushMatrix();
GL11.glTranslated(0, 0, MathHelper.clamp_double(open, 0, maxOpen));
ResourceManager.pheo_blast_door.renderPart("LeftDoor");
GL11.glPushMatrix();
GL11.glTranslated(0, 1.8125, 0);
GL11.glRotated(90 + lock, 1, 0, 0);
GL11.glTranslated(0, -1.8125, 0);
ResourceManager.pheo_blast_door.renderPart("RightLock");
GL11.glPopMatrix();
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0, -MathHelper.clamp_double(open, 0, maxOpen));
ResourceManager.pheo_blast_door.renderPart("RightDoor");
GL11.glPushMatrix();
GL11.glTranslated(0, 1.8125, 0);
GL11.glRotated(90 + lock, 1, 0, 0);
GL11.glTranslated(0, -1.8125, 0);
ResourceManager.pheo_blast_door.renderPart("LeftLock");
GL11.glPopMatrix();
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_CLIP_PLANE0);
GL11.glDisable(GL11.GL_CLIP_PLANE1);
}
}

View File

@ -0,0 +1,44 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderSlidingDoor implements IRenderDoors {
public static final RenderSlidingDoor INSTANCE = new RenderSlidingDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_sliding_door_tex);
double maxOpen = 0.95;
double open = 0;
if(door.state == door.STATE_OPEN) open = maxOpen;
if(door.currentAnimation != null) {
open = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxOpen;
}
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glTranslated(0.53125, 0.001, 0.5);
ResourceManager.pheo_sliding_door.renderPart("Frame");
GL11.glPushMatrix();
GL11.glTranslated(0, 0, MathHelper.clamp_double(open, 0, maxOpen));
ResourceManager.pheo_sliding_door.renderPart("Left");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0, -MathHelper.clamp_double(open, 0, maxOpen));
ResourceManager.pheo_sliding_door.renderPart("Right");
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,55 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
import net.minecraft.util.MathHelper;
public class RenderVehicleDoor implements IRenderDoors {
public static final RenderVehicleDoor INSTANCE = new RenderVehicleDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_vehicle_door_tex);
double maxOpen = 3;
double open = 0;
if(door.state == door.STATE_OPEN) open = maxOpen;
if(door.currentAnimation != null) {
open = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxOpen;
}
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotated(90, 0, 1, 0);
ResourceManager.pheo_vehicle_door.renderPart("Frame");
GL11.glEnable(GL11.GL_CLIP_PLANE0);
buf.put(new double[] { 1, 0, 0, 3.4375 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf);
GL11.glEnable(GL11.GL_CLIP_PLANE1);
buf.put(new double[] { -1, 0 ,0, 3.4375 }); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE1, buf);
GL11.glPushMatrix();
GL11.glTranslated(-MathHelper.clamp_double(open, 0, maxOpen), 0, 0);
ResourceManager.pheo_vehicle_door.renderPart("Left");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(MathHelper.clamp_double(open, 0, maxOpen), 0, 0);
ResourceManager.pheo_vehicle_door.renderPart("Right");
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_CLIP_PLANE0);
GL11.glDisable(GL11.GL_CLIP_PLANE1);
}
}

View File

@ -0,0 +1,61 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.TileEntityDoorGeneric;
import net.minecraft.client.Minecraft;
public class RenderWaterDoor implements IRenderDoors {
public static final RenderWaterDoor INSTANCE = new RenderWaterDoor();
@Override
public void render(TileEntityDoorGeneric door, DoubleBuffer buf) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.pheo_water_door_tex);
double maxRot = 120;
double rot = 0;
double bolt = 0;
if(door.state == door.STATE_OPEN) {
rot = maxRot;
bolt = 1D;
}
if(door.currentAnimation != null) {
rot = IRenderDoors.getRelevantTransformation("DOOR", door.currentAnimation)[1] * maxRot;
bolt = IRenderDoors.getRelevantTransformation("BOLT", door.currentAnimation)[2];
}
GL11.glTranslated(0.375, 0.0, 0.0);
GL11.glRotated(90, 0, 1, 0);
ResourceManager.pheo_water_door.renderPart("Frame");
GL11.glTranslated(-1.1875, 0, 0);
GL11.glRotated(-rot, 0, 1, 0);
GL11.glTranslated(1.1875, 0, 0);
ResourceManager.pheo_water_door.renderPart("Door_Cube.003"); // ah fuck it
GL11.glPushMatrix();
GL11.glTranslated(-0.4 * bolt, 0, 0);
ResourceManager.pheo_water_door.renderPart("Bolts");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0.40625F, 2.28125, 0);
GL11.glRotated(bolt * 360, 0, 0, 1);
GL11.glTranslated(-0.40625F, -2.28125, 0);
ResourceManager.pheo_water_door.renderPart("Top");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0.40625F, 0.71875, 0);
GL11.glRotated(bolt * 360, 0, 0, 1);
GL11.glTranslated(-0.40625F, -0.71875, 0);
ResourceManager.pheo_water_door.renderPart("Bottom");
GL11.glPopMatrix();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -24,13 +24,13 @@ import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityDoorGeneric extends TileEntityLockableBase { public class TileEntityDoorGeneric extends TileEntityLockableBase {
public static byte STATE_CLOSED = 0; public static final byte STATE_CLOSED = 0;
public static byte STATE_OPEN = 1; public static final byte STATE_OPEN = 1;
public static byte STATE_CLOSING = 2; public static final byte STATE_CLOSING = 2;
public static byte STATE_OPENING = 3; public static final byte STATE_OPENING = 3;
//0: closed, 1: open, 2: closing, 3: opening //0: closed, 1: open, 2: closing, 3: opening
public byte state = 0; public byte state = STATE_CLOSED;
protected DoorDecl doorType; protected DoorDecl doorType;
public int openTicks = 0; public int openTicks = 0;
public long animStartTime = 0; public long animStartTime = 0;
@ -47,16 +47,13 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
@Override @Override
public void updateEntity() { public void updateEntity() {
if(state == 3) { if(state == STATE_OPENING) {
openTicks++; openTicks++;
if(openTicks >= getDoorType().timeToOpen()) { if(openTicks >= getDoorType().timeToOpen()) openTicks = getDoorType().timeToOpen();
openTicks = getDoorType().timeToOpen();
} } else if(state == STATE_CLOSING) {
} else if(state == 2) {
openTicks--; openTicks--;
if(openTicks <= 0) { if(openTicks <= 0) openTicks = 0;
openTicks = 0;
}
} }
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
@ -66,7 +63,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
int[][] ranges = getDoorType().getDoorOpenRanges(); int[][] ranges = getDoorType().getDoorOpenRanges();
ForgeDirection dir = ForgeDirection.getOrientation(getBlockMetadata() - BlockDummyable.offset); ForgeDirection dir = ForgeDirection.getOrientation(getBlockMetadata() - BlockDummyable.offset);
if(state == 3) { if(state == STATE_OPENING) {
for(int i = 0; i < ranges.length; i++) { for(int i = 0; i < ranges.length; i++) {
@ -102,7 +99,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
} }
} }
} else if(state == 2) { } else if(state == STATE_CLOSING) {
for(int i = 0; i < ranges.length; i++) { for(int i = 0; i < ranges.length; i++) {
@ -139,18 +136,18 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
} }
} }
} }
if(state == 3 && openTicks == getDoorType().timeToOpen()) { if(state == STATE_OPENING && openTicks == getDoorType().timeToOpen()) {
state = 1; state = STATE_OPEN;
} }
if(state == 2 && openTicks == 0) { if(state == STATE_CLOSING && openTicks == 0) {
state = 0; state = STATE_CLOSED;
} }
this.networkPackNT(100); this.networkPackNT(100);
if(redstonePower == -1 && state == 1) { if(redstonePower == -1 && state == STATE_OPEN) {
tryToggle(-1); tryToggle(-1);
} else if(redstonePower > 0 && state == 0) { } else if(redstonePower > 0 && state == STATE_CLOSED) {
tryToggle(-1); tryToggle(-1);
} }
if(redstonePower == -1) { if(redstonePower == -1) {
@ -169,7 +166,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
@Override @Override
public void deserialize(ByteBuf buf) { public void deserialize(ByteBuf buf) {
handleNewState(buf.readByte()); handleNewState(buf.readByte());
setSkinIndex(buf.readByte()); skinIndex = buf.readByte();
shouldUseBB = buf.readBoolean(); shouldUseBB = buf.readBoolean();
} }
@ -197,36 +194,31 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
if(this.isLocked() && player == null) return false; if(this.isLocked() && player == null) return false;
if(state == 0 && redstonePower > 0) { if(state == STATE_CLOSED && redstonePower > 0) {
//Redstone "power locks" doors, just like minecraft iron doors //Redstone "power locks" doors, just like minecraft iron doors
return false; return false;
} }
if(this.state == 0) {
if(!worldObj.isRemote && canAccess(player)) { if(this.state == STATE_CLOSED) {
this.state = 3; if(!worldObj.isRemote && canAccess(player)) this.state = STATE_OPENING;
}
return true; return true;
} else if(this.state == 1) {
if(!worldObj.isRemote && canAccess(player)) { } else if(this.state == STATE_OPEN) {
this.state = 2; if(!worldObj.isRemote && canAccess(player)) this.state = STATE_CLOSING;
}
return true; return true;
} }
return false; return false;
} }
public boolean tryToggle(int passcode) { public boolean tryToggle(int passcode) {
if(this.isLocked() && passcode != this.lock) if(this.isLocked() && passcode != this.lock) return false;
return false;
if(this.state == 0) { if(this.state == STATE_CLOSED) {
if(!worldObj.isRemote) { if(!worldObj.isRemote) this.state = STATE_OPENING;
this.state = 3;
}
return true; return true;
} else if(this.state == 1) {
if(!worldObj.isRemote) { } else if(this.state == STATE_OPEN) {
this.state = 2; if(!worldObj.isRemote) this.state = STATE_CLOSING;
}
return true; return true;
} }
return false; return false;
@ -238,7 +230,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
if(this.state != state) { if(this.state != state) {
DoorDecl doorType = getDoorType(); DoorDecl doorType = getDoorType();
if(this.state == 0 && state == 3) { // Door transitioning to open if(this.state == STATE_CLOSED && state == STATE_OPENING) { // Door transitioning to open
if(audio != null) { if(audio != null) {
audio.stopSound(); audio.stopSound();
audio.setKeepAlive(0); audio.setKeepAlive(0);
@ -261,7 +253,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
} }
} }
if(this.state == 1 && state == 2) { // Door transitioning to closed if(this.state == STATE_OPEN && state == STATE_CLOSING) { // Door transitioning to closed
if(audio != null) { if(audio != null) {
audio.stopSound(); audio.stopSound();
} }
@ -283,7 +275,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
} }
} }
if(state == 1 || state == 0) { // Door finished any transition if(state == STATE_OPEN || state == STATE_CLOSED) { // Door finished any transition
if(audio != null) { if(audio != null) {
audio.stopSound(); audio.stopSound();
audio = null; audio = null;
@ -294,13 +286,13 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
} }
} }
if(this.state == 3 && state == 1) { // Door finished transitioning to open if(this.state == STATE_OPENING && state == STATE_OPEN) { // Door finished transitioning to open
if(doorType.getOpenSoundEnd() != null) { if(doorType.getOpenSoundEnd() != null) {
worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundEnd(), doorType.getSoundVolume(), 1F, false); worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundEnd(), doorType.getSoundVolume(), 1F, false);
} }
} }
if(this.state == 2 && state == 0) { // Door finished transitioning to closed if(this.state == STATE_CLOSING && state == STATE_CLOSED) { // Door finished transitioning to closed
if(doorType.getCloseSoundEnd() != null) { if(doorType.getCloseSoundEnd() != null) {
worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundEnd(), doorType.getSoundVolume(), 1F, false); worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundEnd(), doorType.getSoundVolume(), 1F, false);
} }
@ -308,10 +300,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
this.state = state; this.state = state;
if(state > 1) animStartTime = System.currentTimeMillis();
if(state == STATE_OPENING || state == STATE_CLOSING) { if(state == STATE_OPENING || state == STATE_CLOSING) {
currentAnimation = this.doorType.getSEDNAAnim(state); animStartTime = System.currentTimeMillis();
currentAnimation = this.doorType.getSEDNAAnim(state, this.skinIndex);
} }
} }
} }
@ -320,23 +312,21 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
return skinIndex; return skinIndex;
} }
public boolean setSkinIndex(byte skinIndex) { public boolean cycleSkinIndex() {
if(!getDoorType().hasSkins()) if(!getDoorType().hasSkins()) return false;
return false; this.skinIndex++;
if(getDoorType().getSkinCount() < skinIndex) { this.skinIndex %= getDoorType().getSkinCount();
return false; this.markDirty();
}
this.skinIndex = skinIndex;
return true; return true;
} }
/**Useful for logic block interactions, as a way to close/open doors**/ /**Useful for logic block interactions, as a way to close/open doors**/
public void open(){ public void open(){
if(state == 0) state = 3; if(state == STATE_CLOSED) state = STATE_OPENING;
} }
public void close() { public void close() {
if(state == 1) state = 2; if(state == STATE_OPEN) state = STATE_CLOSING;
} }
@Override @Override

View File

@ -242,20 +242,6 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
} }
if(this.lid != this.prevLid && this.lid < this.prevLid && this.lid > 0.5F && this.hasMaterial && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) < 50) { if(this.lid != this.prevLid && this.lid < this.prevLid && this.lid > 0.5F && this.hasMaterial && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) < 50) {
/*NBTTagCompound data = new NBTTagCompound();
data.setString("type", "tower");
data.setFloat("lift", 0.01F);
data.setFloat("base", 0.5F);
data.setFloat("max", 2F);
data.setInteger("life", 50 + worldObj.rand.nextInt(20));
data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.25);
data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.25);
data.setDouble("posY", yCoord + 4);
data.setBoolean("noWind", true);
data.setFloat("alphaMod", prevLid / lid);
data.setInteger("color", 0x808080);
data.setFloat("strafe", 0.15F);
MainRegistry.proxy.effectNT(data);*/
if(worldObj.rand.nextInt(5) == 0) { if(worldObj.rand.nextInt(5) == 0) {
NBTTagCompound flame = new NBTTagCompound(); NBTTagCompound flame = new NBTTagCompound();
@ -286,7 +272,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
// add to existing stacks // add to existing stacks
for(int i /* ingredient */ = 5; i < 25; i++) { for(int i /* ingredient */ = 5; i < 25; i++) {
if(slots[i] == null) continue; if(slots[i] == null) continue;
if(!slots[q].isItemEqual(slots[i])) continue; if(!slots[q].isItemEqual(slots[i]) || !ItemStack.areItemStackTagsEqual(slots[q], slots[i])) continue;
int toMove = BobMathUtil.min(slots[i].getMaxStackSize() - slots[i].stackSize, slots[q].stackSize, max - slots[i].stackSize); int toMove = BobMathUtil.min(slots[i].getMaxStackSize() - slots[i].stackSize, slots[q].stackSize, max - slots[i].stackSize);
if(toMove > 0) { if(toMove > 0) {
this.decrStackSize(q, toMove); this.decrStackSize(q, toMove);

View File

@ -57,9 +57,9 @@ public class TileEntityMachineOrbus extends TileEntityBarrel {
xCoord - 2, xCoord - 2,
yCoord, yCoord,
zCoord - 2, zCoord - 2,
xCoord + 2, xCoord + 3,
yCoord + 5, yCoord + 5,
zCoord + 2 zCoord + 3
); );
} }

View File

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.entity.projectile.EntityArtilleryShell;
import com.hbm.handler.CasingEjector;
import com.hbm.handler.threading.PacketThreading; import com.hbm.handler.threading.PacketThreading;
import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.container.ContainerTurretBase;
import com.hbm.inventory.gui.GUITurretArty; import com.hbm.inventory.gui.GUITurretArty;
@ -13,6 +12,7 @@ import com.hbm.items.weapon.ItemAmmoArty;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.particle.helper.CasingCreator;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
@ -380,13 +380,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen
} }
} }
protected static CasingEjector ejector = new CasingEjector().setMotion(0, 0.6, -1).setAngleRange(0.1F, 0.1F);
@Override
protected CasingEjector getEjector() {
return ejector;
}
@Override @Override
protected Vec3 getCasingSpawnPos() { protected Vec3 getCasingSpawnPos() {
return this.getTurretPos(); return this.getTurretPos();
@ -439,18 +432,19 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen
protected void spawnCasing() { protected void spawnCasing() {
if(cachedCasingConfig == null) return; if(cachedCasingConfig == null) return;
CasingEjector ej = getEjector();
Vec3 spawn = this.getCasingSpawnPos(); Vec3 spawn = this.getCasingSpawnPos();
NBTTagCompound data = new NBTTagCompound(); float yaw = (float) Math.toDegrees(rotationYaw);
data.setString("type", "casing"); float pitch = (float) -Math.toDegrees(this.rotationPitch);
data.setFloat("pitch", (float) 0);
data.setFloat("yaw", (float) rotationYaw); CasingCreator.composeEffect(worldObj,
data.setBoolean("crouched", false); spawn.xCoord, spawn.yCoord, spawn.zCoord,
data.setString("name", cachedCasingConfig.getName()); yaw, pitch,
if(ej != null) data.setInteger("ej", ej.getId()); -0.6, 0.3, 0,
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, spawn.xCoord, spawn.yCoord, spawn.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); 0.01, worldObj.rand.nextFloat() * 20F - 10F, 0,
cachedCasingConfig.getName(),
true, 200, 1, 20);
cachedCasingConfig = null; cachedCasingConfig = null;
} }

View File

@ -3,12 +3,12 @@ package com.hbm.tileentity.turret;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.hbm.handler.CasingEjector;
import com.hbm.handler.threading.PacketThreading; import com.hbm.handler.threading.PacketThreading;
import com.hbm.inventory.gui.GUITurretJeremy; import com.hbm.inventory.gui.GUITurretJeremy;
import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.factory.XFactoryTurret; import com.hbm.items.weapon.sedna.factory.XFactoryTurret;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.particle.helper.CasingCreator;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -111,6 +111,26 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT {
} }
} }
@Override
protected void spawnCasing() {
if(cachedCasingConfig == null) return;
Vec3 spawn = this.getCasingSpawnPos();
float yaw = (float) Math.toDegrees(rotationYaw);
float pitch = (float) -Math.toDegrees(this.rotationPitch);
CasingCreator.composeEffect(worldObj,
spawn.xCoord, spawn.yCoord, spawn.zCoord,
yaw, pitch,
-0.2, -0.2, 0,
0.01, -5, 0,
cachedCasingConfig.getName(),
true, 100, 0.5, 20);
cachedCasingConfig = null;
}
@Override @Override
protected Vec3 getCasingSpawnPos() { protected Vec3 getCasingSpawnPos() {
@ -122,13 +142,6 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT {
return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord);
} }
protected static CasingEjector ejector = new CasingEjector().setAngleRange(0.01F, 0.01F).setMotion(0, 0, -0.2);
@Override
protected CasingEjector getEjector() {
return ejector;
}
@Override @Override
public boolean usesCasings() { public boolean usesCasings() {
return true; return true;

View File

@ -209,7 +209,7 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG
@Override @Override
protected CasingEjector getEjector() { protected CasingEjector getEjector() {
return ejector.setMotion(0.3, 0.6, 0); return ejector.setMotion(0.2, 0.2, 0);
} }
@Override @Override

View File

@ -0,0 +1,20 @@
{
"name": "Armor Piercing Bullet",
"icon": ["hbm:item.ammo_standard", 1, 31],
"trigger": [
["hbm:item.ammo_standard", 1, 8],
["hbm:item.ammo_standard", 1, 14],
["hbm:item.ammo_standard", 1, 19],
["hbm:item.ammo_standard", 1, 23],
["hbm:item.ammo_standard", 1, 88],
["hbm:item.ammo_standard", 1, 27],
["hbm:item.ammo_standard", 1, 31],
["hbm:item.ammo_standard", 1, 36]
],
"title": {
"en_US": "Armor Piercing Bullet"
},
"content": {
"en_US": "AP rounds are similar to FMJ rounds, but using hardened steel jackets and significantly higher powder load. Not only do APs deal more damage and pierce through armor more effectively, but they can also penetrate their target."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "Buckshot",
"icon": ["hbm:item.ammo_standard", 1, 44],
"trigger": [
["hbm:item.ammo_standard", 1, 44],
["hbm:item.ammo_standard", 1, 78]
],
"title": {
"en_US": "Buckshot"
},
"content": {
"en_US": "Standard shot, creates many low-damage pellets with considerable spread. Sometimes it's hard to beat the classics."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "Magnum Buckshot",
"icon": ["hbm:item.ammo_standard", 1, 47],
"trigger": [
["hbm:item.ammo_standard", 1, 42],
["hbm:item.ammo_standard", 1, 47]
],
"title": {
"en_US": "Magnum Buckshot"
},
"content": {
"en_US": "Buckshot, but with fewer larger pellets which deal more damage. While black powder magnum shells don't perform that much better compared to buckshot, smokeless powder ones are noticably more powerful. Additionally, magnum buckshot shells have roughly half as much spread as standard buckshot."
}
}

View File

@ -0,0 +1,13 @@
{
"name": "Shrapnel Buckshot",
"icon": ["hbm:item.ammo_standard", 1, 79],
"trigger": [
["hbm:item.ammo_standard", 1, 79]
],
"title": {
"en_US": "Shrapnel Buckshot"
},
"content": {
"en_US": "A more devious version of standard buckshot, identical in most ways except that the pellets are incredibly bouncy, ricocheting off of most surfaces multiple times. May be hazardous to the user when used in enclosed spaces."
}
}

View File

@ -0,0 +1,15 @@
{
"name": "Demolition Explosives",
"icon": ["hbm:item.ammo_standard", 1, 60],
"trigger": [
["hbm:item.ammo_standard", 1, 55],
["hbm:item.ammo_standard", 1, 60],
["hbm:item.ammo_standard", 1, 74]
],
"title": {
"en_US": "Demolition Explosives"
},
"content": {
"en_US": "Demolition explosives are similar to regular high-explosives, however they have a larger splash radius, slightly lower damage, and they break blocks. Not recommended for home defense."
}
}

View File

@ -0,0 +1,16 @@
{
"name": "Depleted Uranium Bullet",
"icon": ["hbm:item.ammo_standard", 1, 32],
"trigger": [
["hbm:item.ammo_standard", 1, 89],
["hbm:item.ammo_standard", 1, 32],
["hbm:item.ammo_standard", 1, 37],
["hbm:item.ammo_standard", 1, 80]
],
"title": {
"en_US": "Depleted Uranium Bullet"
},
"content": {
"en_US": "Ammunition with depleted uranium in its core. The increased density and higher powder load causes this ammo type to have even better armor-piercing properties than AP ammo. The added punch causes the projectiles to penetrate.<br><br>Due to their intended effect being kinetic energy, rather than being poisonous, depleted uranium ammunition is not subject to the Hague Conventions of 1899 regarding use of poisonous projectiles in warfare."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "FMJ Express Bullet",
"icon": ["hbm:item.ammo_standard", 1, 15],
"trigger": [
["hbm:item.ammo_standard", 1, 9],
["hbm:item.ammo_standard", 1, 15]
],
"title": {
"en_US": "FMJ Express Bullet"
},
"content": {
"en_US": "FMJ Express is a special type of full metal jacket ammo for revolver calibers. Express ammo has the same armor-piercing effects in addition to increased damage. Express projectiles can penetrate their targets, but unlike AP rounds, Express projectiles become weaker on every penetration. Due to the higher powder load in combination with the basic gunmetal casing, Express ammo causes the gun to wear faster."
}
}

View File

@ -0,0 +1,13 @@
{
"name": "Flechettes",
"icon": ["hbm:item.ammo_standard", 1, 46],
"trigger": [
["hbm:item.ammo_standard", 1, 46]
],
"title": {
"en_US": "Flechettes"
},
"content": {
"en_US": "Flechettes are small fin-stabilized projectiles, contrary to buckshot's round pellets. Flechette shells have less spread and better armor-piercing compared to standard buckshot."
}
}

View File

@ -0,0 +1,20 @@
{
"name": "Full Metal Jacket Bullet",
"icon": ["hbm:item.ammo_standard", 1, 29],
"trigger": [
["hbm:item.ammo_standard", 1, 6],
["hbm:item.ammo_standard", 1, 12],
["hbm:item.ammo_standard", 1, 17],
["hbm:item.ammo_standard", 1, 21],
["hbm:item.ammo_standard", 1, 86],
["hbm:item.ammo_standard", 1, 25],
["hbm:item.ammo_standard", 1, 29],
["hbm:item.ammo_standard", 1, 34]
],
"title": {
"en_US": "Full Metal Jacket Bullet"
},
"content": {
"en_US": "FMJs do not deform when hitting a soft target, meaning they deliver less damage. However, it allows them to pierce armor more effectively. All FMJs have some armor-piercing properties, as well as added damage threshold negation based on the caliber size."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "High-Explosives",
"icon": ["hbm:item.ammo_standard", 1, 58],
"trigger": [
["hbm:item.ammo_standard", 1, 53],
["hbm:item.ammo_standard", 1, 58]
],
"title": {
"en_US": "High-Explosives"
},
"content": {
"en_US": "Standard ammunition for grenade and rocket launchers. Deals splash damage in a moderate area."
}
}

View File

@ -0,0 +1,17 @@
{
"name": "High-Explosive Ammunition",
"icon": ["hbm:item.ammo_standard", 1, 82],
"trigger": [
["hbm:item.ammo_standard", 1, 82],
["hbm:item.ammo_standard", 1, 83],
["hbm:item.ammo_standard", 1, 84],
["hbm:item.ammo_standard", 1, 48],
["hbm:item.ammo_standard", 1, 73]
],
"title": {
"en_US": "High-Explosive Ammunition"
},
"content": {
"en_US": "As one would expect, explosive ammunition deals explosive damage to its target, and the surroundings in a small radius. The resulting damage is noticably higher than the gun's base damage, at the cost of causing the gun to wear down significantly faster.<br><br>Use of explosive projectiles with a weight of less than 400 grams is prohibited by the Saint Petersburg Declaration of 1868."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "Shaped Charges",
"icon": ["hbm:item.ammo_standard", 1, 59],
"trigger": [
["hbm:item.ammo_standard", 1, 54],
["hbm:item.ammo_standard", 1, 59]
],
"title": {
"en_US": "Shaped Charges"
},
"content": {
"en_US": "Special type of explosive munition with weaker splash damage compared to high-explosives, which deals massive extra damage on direct hit."
}
}

View File

@ -0,0 +1,14 @@
{
"name": "Incendiary Munitions",
"icon": ["hbm:item.ammo_standard", 1, 61],
"trigger": [
["hbm:item.ammo_standard", 1, 56],
["hbm:item.ammo_standard", 1, 61]
],
"title": {
"en_US": "Incendiary Munitions"
},
"content": {
"en_US": "Incendiary explosives leave behind lingering fire, which can ignite targets. The afterburn does not last very long, and can be extinguished with water.<br><br>Use of incendiary weapons against or near civilians is forbidden by the Geneva Conventions."
}
}

View File

@ -0,0 +1,20 @@
{
"name": "Jacketed Hollow Point Bullet",
"icon": ["hbm:item.ammo_standard", 1, 30],
"trigger": [
["hbm:item.ammo_standard", 1, 7],
["hbm:item.ammo_standard", 1, 13],
["hbm:item.ammo_standard", 1, 18],
["hbm:item.ammo_standard", 1, 22],
["hbm:item.ammo_standard", 1, 87],
["hbm:item.ammo_standard", 1, 26],
["hbm:item.ammo_standard", 1, 30],
["hbm:item.ammo_standard", 1, 35]
],
"title": {
"en_US": "Jacketed Hollow Point Bullet"
},
"content": {
"en_US": "JHPs are deforming bullets that cause more damage to soft targets compared to soft point bullets, at the cost of faring worse against armored targets. JHPs also have a higher bonus on headshots.<br><br>Due to being expanding projectiles, jacketed hollow points are prohibited for use in warfare under the Hague Conventions of 1899."
}
}

View File

@ -0,0 +1,13 @@
{
"name": "High Yield Mini Nuke",
"icon": ["hbm:item.ammo_standard", 1, 75],
"trigger": [
["hbm:item.ammo_standard", 1, 75]
],
"title": {
"en_US": "High Yield Mini Nuke"
},
"content": {
"en_US": "nuclear bobm<br>"
}
}

View File

@ -0,0 +1,15 @@
{
"name": "Black Powder Ammunition",
"icon": ["hbm:item.ammo_standard", 1, 10],
"trigger": [
["hbm:item.ammo_standard", 1, 4],
["hbm:item.ammo_standard", 1, 10],
["hbm:item.ammo_standard", 1, 41]
],
"title": {
"en_US": "Black Powder Ammunition"
},
"content": {
"en_US": "The earliest available type of cartridge, black powder ammo is available for revolver calibers and 12 gauge shells. For revolver calibers, black powder bullets are a variant of soft point bullets. Black powder shells however are available in buckshot, magnum shot and slug variants. Black powder ammo is very cheap, but deals significantly less damage and causes a large cloud of smoke on every shot."
}
}

View File

@ -0,0 +1,15 @@
{
"name": "Slug",
"icon": ["hbm:item.ammo_standard", 1, 45],
"trigger": [
["hbm:item.ammo_standard", 1, 43],
["hbm:item.ammo_standard", 1, 45],
["hbm:item.ammo_standard", 1, 81]
],
"title": {
"en_US": "Slug"
},
"content": {
"en_US": "A shell type that only holds a single large projectile. Unlike shot, slugs do not have inherent spread, deal the gun's full damage on hit, and have some armor-piercing properties."
}
}

View File

@ -0,0 +1,20 @@
{
"name": "Soft Point Bullet",
"icon": ["hbm:item.ammo_standard", 1, 28],
"trigger": [
["hbm:item.ammo_standard", 1, 5],
["hbm:item.ammo_standard", 1, 11],
["hbm:item.ammo_standard", 1, 16],
["hbm:item.ammo_standard", 1, 20],
["hbm:item.ammo_standard", 1, 85],
["hbm:item.ammo_standard", 1, 24],
["hbm:item.ammo_standard", 1, 28],
["hbm:item.ammo_standard", 1, 33]
],
"title": {
"en_US": "Soft Point Bullet"
},
"content": {
"en_US": "The \"default\" ammunition type for most guns. Soft point bullets do not change the gun's base damage, and don't have any armor-piercing properties.<br><br>Due to being expanding projectiles, soft points are prohibited for use in warfare under the Hague Conventions of 1899."
}
}

View File

@ -0,0 +1,13 @@
{
"name": "Starmetal Bullet",
"icon": ["hbm:item.ammo_standard", 1, 94],
"trigger": [
["hbm:item.ammo_standard", 1, 94]
],
"title": {
"en_US": "Starmetal Bullet"
},
"content": {
"en_US": "Cartridge with extra high powder load using a starmetal projectile. The density and stability of starmetal ensures that this projectile can punch through most armors, at the cost of the gun wearing ten times faster. Can only be used in anti-materiel rifles, as the chamber pressure is so high, it would blow automatic weapons apart."
}
}

View File

@ -0,0 +1,15 @@
{
"name": "White Phosphorus Munitions",
"icon": ["hbm:item.ammo_standard", 1, 62],
"trigger": [
["hbm:item.ammo_standard", 1, 49],
["hbm:item.ammo_standard", 1, 57],
["hbm:item.ammo_standard", 1, 62]
],
"title": {
"en_US": "White Phosphorus Munitions"
},
"content": {
"en_US": "White phosphorus ignites easily and is very hard to extinguish, causing significant afterburn damage which cannot be permanently extinguished by water. Lingering fire caused by WP explosions lasts longer than by conventinal incendiary explosives.<br><br>Use of incendiary weapons against or near civilians is forbidden by the Geneva Conventions."
}
}

View File

@ -1,464 +0,0 @@
# Blender v2.92.0 OBJ File: 'fire_door.blend'
# www.blender.org
o frame
v 0.500000 3.000000 -2.000000
v 0.500000 0.000000 -2.000000
v 0.500000 0.000000 2.000000
v 0.500000 3.000000 2.000000
v 0.250000 0.062500 1.375000
v 0.250000 2.750000 1.375000
v 0.250000 0.062500 -1.375000
v 0.250000 2.750000 -1.375000
v 0.353298 0.062500 1.375000
v 0.500000 0.000000 1.521702
v 0.500000 2.804434 1.521702
v 0.353298 2.750000 1.375000
v 0.353298 0.062500 -1.375000
v 0.500000 0.000000 -1.521702
v 0.500000 2.804434 -1.521702
v 0.353298 2.750000 -1.375000
v 0.250000 0.012500 1.500000
v 0.250000 2.812500 1.500000
v 0.250000 0.012500 -1.500000
v 0.250000 2.812500 -1.500000
v -0.500000 3.000000 -2.000000
v -0.500000 0.000000 -2.000000
v -0.500000 0.000000 2.000000
v -0.500000 3.000000 2.000000
v -0.250000 0.062500 1.375000
v -0.250000 2.750000 1.375000
v -0.250000 0.062500 -1.375000
v -0.250000 2.750000 -1.375000
v -0.353298 0.062500 1.375000
v -0.500000 0.000000 1.521702
v -0.500000 2.804434 1.521702
v -0.353298 2.750000 1.375000
v -0.353298 0.062500 -1.375000
v -0.500000 0.000000 -1.521702
v -0.500000 2.804434 -1.521702
v -0.353298 2.750000 -1.375000
v -0.250000 0.012500 1.500000
v -0.250000 2.812500 1.500000
v -0.250000 0.012500 -1.500000
v -0.250000 2.812500 -1.500000
vt 0.129307 0.159244
vt 0.426242 0.108600
vt 0.426242 0.159243
vt 0.426242 0.481480
vt 0.532123 0.159243
vt 0.827926 0.884298
vt 0.537562 0.895205
vt 0.537562 0.884298
vt 0.960877 0.286483
vt 0.949970 0.002720
vt 0.960877 0.002720
vt 0.982663 0.002720
vt 0.993570 0.286481
vt 0.982663 0.286481
vt 0.491082 0.933805
vt 0.480175 0.643442
vt 0.491082 0.643442
vt 0.129307 0.481479
vt 0.426242 0.532122
vt 0.108601 0.532122
vt 0.108600 0.108601
vt 0.474735 0.932486
vt 0.461537 0.643442
vt 0.474735 0.648722
vt 0.390106 0.650041
vt 0.376907 0.939085
vt 0.376907 0.643442
vt 0.997280 0.739973
vt 0.991983 0.436547
vt 0.997280 0.449735
vt 0.410591 0.457749
vt 0.142598 0.458801
vt 0.413384 0.180867
vt 0.145950 0.183841
vt 0.324114 0.939085
vt 0.921869 0.436547
vt 0.869076 0.753308
vt 0.869076 0.436547
vt 0.939205 0.753215
vt 0.991983 0.753216
vt 0.862476 0.449745
vt 0.862476 0.740110
vt 0.426242 0.638003
vt 0.002720 0.532122
vt 0.857037 0.862513
vt 0.558388 0.811578
vt 0.857037 0.811578
vt 0.496521 0.933804
vt 0.507428 0.643442
vt 0.507428 0.933804
vt 0.966317 0.286481
vt 0.977224 0.002720
vt 0.977224 0.286481
vt 0.512868 0.927206
vt 0.523775 0.643442
vt 0.523775 0.927206
vt 0.827926 0.878859
vt 0.537562 0.867952
vt 0.827926 0.867952
vt 0.558389 0.487482
vt 0.857037 0.436547
vt 0.857037 0.487481
vt 0.537562 0.862512
vt 0.408744 0.643442
vt 0.395545 0.932486
vt 0.395545 0.648722
vt 0.310915 0.650041
vt 0.310915 0.933806
vt 0.939206 0.436547
vt 0.933908 0.740024
vt 0.933908 0.449789
vt 0.840939 0.511629
vt 0.571917 0.510031
vt 0.843798 0.789097
vt 0.921869 0.753308
vt 0.928468 0.449745
vt 0.928468 0.740110
vt 0.108600 0.002720
vt 0.426242 0.002720
vt 0.408744 0.939085
vt 0.461537 0.939085
vt 0.532123 0.108601
vt 0.532123 0.481480
vt 0.532123 0.532122
vt 0.827926 0.895205
vt 0.949970 0.286483
vt 0.993570 0.002720
vt 0.480175 0.933805
vt 0.390106 0.933806
vt 0.324114 0.643442
vt 0.108601 0.638003
vt 0.002720 0.108601
vt 0.496521 0.643442
vt 0.966316 0.002720
vt 0.512867 0.643442
vt 0.537562 0.878859
vt 0.537562 0.436547
vt 0.574725 0.786781
vn 1.0000 -0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.2381 0.9712 0.0000
vn -0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.2108 -0.9775 0.0000
vn -1.0000 0.0000 0.0000
vn 0.7071 0.0000 0.7071
vn 0.3919 0.9200 0.0000
vn 0.3479 -0.9375 0.0000
vn 0.7071 0.0000 -0.7071
vn -0.2381 0.9712 0.0000
vn -0.2108 -0.9775 0.0000
vn -0.7071 0.0000 0.7071
vn -0.3919 0.9200 0.0000
vn -0.3479 -0.9375 0.0000
vn -0.7071 0.0000 -0.7071
s 1
f 11/1/1 3/2/1 10/3/1
f 14/4/2 10/3/2 30/5/2
f 5/6/3 13/7/4 7/8/3
f 6/9/5 9/10/5 5/11/5
f 7/12/6 16/13/6 8/14/6
f 8/15/2 12/16/7 6/17/2
f 15/18/1 2/19/1 1/20/1
f 15/18/1 4/21/1 11/1/1
f 8/22/8 19/23/8 7/24/8
f 6/25/8 17/26/8 18/27/8
f 7/28/8 17/29/8 5/30/8
f 13/31/9 15/18/9 16/32/9
f 14/4/10 9/33/4 10/3/10
f 11/1/11 16/32/7 15/18/11
f 11/1/12 9/33/12 12/34/12
f 37/35/5 18/27/5 17/26/5
f 38/36/2 20/37/2 18/38/2
f 39/39/3 17/29/3 19/40/3
f 6/41/8 20/37/8 8/42/8
f 22/43/5 1/20/5 2/19/5
f 21/44/3 4/21/3 1/20/3
f 23/45/8 31/46/8 30/47/8
f 33/48/13 25/49/3 27/50/3
f 29/51/5 26/52/5 25/53/5
f 36/54/6 27/55/6 28/56/6
f 32/57/14 28/58/2 26/59/2
f 35/60/8 22/61/8 34/62/8
f 24/63/8 35/60/8 31/46/8
f 39/64/1 28/65/1 27/66/1
f 26/67/1 37/35/1 25/68/1
f 37/69/1 27/70/1 25/71/1
f 35/60/15 33/72/15 36/73/15
f 29/74/13 34/62/16 30/47/16
f 36/73/14 31/46/17 35/60/17
f 31/46/18 29/74/18 30/47/18
f 40/75/1 26/76/1 28/77/1
f 3/2/6 24/78/6 23/79/6
f 40/80/6 19/23/6 20/81/6
f 11/1/1 4/21/1 3/2/1
f 10/3/2 3/2/2 23/82/2
f 30/5/2 34/83/2 14/4/2
f 34/83/2 22/84/2 14/4/2
f 10/3/2 23/82/2 30/5/2
f 22/84/2 2/19/2 14/4/2
f 5/6/3 9/85/4 13/7/4
f 6/9/5 12/86/5 9/10/5
f 7/12/6 13/87/6 16/13/6
f 8/15/2 16/88/7 12/16/7
f 15/18/1 14/4/1 2/19/1
f 15/18/1 1/20/1 4/21/1
f 8/22/8 20/81/8 19/23/8
f 6/25/8 5/89/8 17/26/8
f 7/28/8 19/40/8 17/29/8
f 13/31/9 14/4/9 15/18/9
f 14/4/10 13/31/4 9/33/4
f 11/1/11 12/34/7 16/32/7
f 11/1/12 10/3/12 9/33/12
f 37/35/5 38/90/5 18/27/5
f 38/36/2 40/75/2 20/37/2
f 39/39/3 37/69/3 17/29/3
f 6/41/8 18/38/8 20/37/8
f 22/43/5 21/91/5 1/20/5
f 21/44/3 24/92/3 4/21/3
f 23/45/8 24/63/8 31/46/8
f 33/48/13 29/93/13 25/49/3
f 29/51/5 32/94/5 26/52/5
f 36/54/6 33/95/6 27/55/6
f 32/57/14 36/96/14 28/58/2
f 35/60/8 21/97/8 22/61/8
f 24/63/8 21/97/8 35/60/8
f 39/64/1 40/80/1 28/65/1
f 26/67/1 38/90/1 37/35/1
f 37/69/1 39/39/1 27/70/1
f 35/60/15 34/62/15 33/72/15
f 29/74/13 33/72/13 34/62/16
f 36/73/14 32/98/14 31/46/17
f 31/46/18 32/98/18 29/74/18
f 40/75/1 38/36/1 26/76/1
f 3/2/6 4/21/6 24/78/6
f 40/80/6 39/64/6 19/23/6
o door
v 0.250000 0.183959 -1.121300
v 0.250000 2.621650 -1.138101
v 0.250000 2.621650 -0.055236
v 0.250000 0.183959 -0.072037
v 0.250000 0.012500 -1.500000
v 0.250000 2.812500 -1.500000
v 0.187500 0.233959 -1.071471
v 0.187500 2.571650 -1.087928
v 0.187500 0.233959 -0.121866
v 0.187500 2.571650 -0.105409
v 0.250000 0.012500 -0.072037
v 0.250000 2.812500 -0.055236
v -0.250000 0.183959 -1.121300
v -0.250000 2.621650 -1.138101
v -0.250000 2.621650 -0.055236
v -0.250000 0.183959 -0.072037
v -0.250000 0.012500 -1.500000
v -0.250000 2.812500 -1.500000
v -0.187500 0.233959 -1.071471
v -0.187500 2.571650 -1.087928
v -0.187500 0.233959 -0.121866
v -0.187500 2.571650 -0.105409
v -0.250000 0.012500 -0.072037
v -0.250000 2.812500 -0.055236
v 0.250000 0.183959 1.121300
v 0.250000 2.621650 1.138101
v 0.250000 2.621650 0.055236
v 0.250000 0.183959 0.072037
v 0.250000 0.012500 1.500000
v 0.250000 2.812500 1.500000
v 0.187500 0.233959 1.071471
v 0.187500 2.571650 1.087928
v 0.187500 0.233959 0.121866
v 0.187500 2.571650 0.105409
v 0.250000 0.012500 0.072037
v 0.250000 2.812500 0.055236
v -0.250000 0.183959 1.121300
v -0.250000 2.621650 1.138101
v -0.250000 2.621650 0.055236
v -0.250000 0.183959 0.072037
v -0.250000 0.012500 1.500000
v -0.250000 2.812500 1.500000
v -0.187500 0.233959 1.071471
v -0.187500 2.571650 1.087928
v -0.187500 0.233959 0.121866
v -0.187500 2.571650 0.105409
v -0.250000 0.012500 0.072037
v -0.250000 2.812500 0.055236
vt 0.870543 0.095027
vt 0.591111 0.056268
vt 0.890982 0.056268
vt 0.890982 0.002720
vt 0.591111 0.002720
vt 0.890982 0.210998
vt 0.870543 0.210998
vt 0.862101 0.203752
vt 0.619145 0.104447
vt 0.861533 0.102468
vt 0.609474 0.096826
vt 0.618040 0.201958
vt 0.609473 0.209199
vt 0.591111 0.209199
vt 0.591111 0.377559
vt 0.890982 0.431107
vt 0.591111 0.431107
vt 0.944530 0.210998
vt 0.944530 0.222829
vt 0.890982 0.222829
vt 0.284839 0.928692
vt 0.002720 0.967823
vt 0.021259 0.926875
vt 0.870543 0.222829
vt 0.305475 0.811605
vt 0.284840 0.811605
vt 0.030947 0.919265
vt 0.276182 0.818924
vt 0.275848 0.921133
vt 0.030066 0.820598
vt 0.021259 0.813422
vt 0.002720 0.813422
vt 0.284840 0.799660
vt 0.870543 0.338800
vt 0.609473 0.337001
vt 0.619105 0.329409
vt 0.862137 0.230055
vt 0.861490 0.331345
vt 0.618095 0.231869
vt 0.609473 0.224628
vt 0.591111 0.224628
vt 0.284840 0.682573
vt 0.002720 0.643442
vt 0.305476 0.643442
vt 0.305475 0.799660
vt 0.276134 0.792335
vt 0.030993 0.692044
vt 0.275893 0.690099
vt 0.021259 0.684390
vt 0.030002 0.790657
vt 0.021259 0.797844
vt 0.002720 0.797843
vt 0.537562 0.224628
vt 0.890982 0.377559
vt 0.944530 0.377559
vt 0.944530 0.056268
vt 0.305476 0.967823
vt 0.537562 0.377559
vt 0.537562 0.209198
vt 0.537562 0.056268
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.6260 0.0055 0.7798
vn 0.6234 0.0054 0.7819
vn 0.6261 0.0055 0.7798
vn 0.6247 -0.7809 0.0000
vn 0.6247 0.7809 0.0000
vn 0.6260 0.0055 -0.7798
vn 0.6234 0.0054 -0.7819
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 -0.0000 0.0000
vn -0.6260 0.0055 0.7798
vn -0.6234 0.0054 0.7819
vn -0.6247 -0.7809 0.0000
vn -0.6247 0.7809 0.0000
vn -0.6234 0.0054 -0.7819
vn -0.6260 0.0055 -0.7798
vn -0.6261 0.0055 -0.7798
vn 0.0000 -1.0000 0.0000
vn 0.6261 0.0055 -0.7798
vn -0.6261 0.0055 0.7798
s 1
f 42/99/19 45/100/19 46/101/19
f 58/102/20 45/100/20 57/103/20
f 42/99/19 52/104/19 43/105/19
f 50/106/19 47/107/19 48/108/19
f 41/109/21 48/108/22 47/107/23
f 50/106/24 42/99/24 43/105/24
f 41/109/25 49/110/25 44/111/25
f 44/111/26 50/106/27 43/105/27
f 41/109/19 51/112/19 45/100/19
f 69/113/28 82/114/28 81/115/28
f 64/116/29 88/117/29 76/118/29
f 54/119/30 57/120/30 53/121/30
f 44/111/19 43/105/19 67/122/19
f 64/123/30 54/119/30 55/124/30
f 59/125/30 62/126/30 60/127/30
f 53/121/31 60/127/32 54/119/32
f 54/119/33 62/126/33 55/124/33
f 61/128/34 53/121/34 56/129/34
f 62/126/35 56/129/36 55/124/35
f 53/121/30 63/130/30 56/129/30
f 79/131/30 64/123/30 55/124/30
f 66/132/19 69/113/19 65/133/19
f 76/118/19 66/132/19 67/122/19
f 71/134/19 74/135/19 72/136/19
f 65/133/26 72/136/27 66/132/27
f 66/132/24 74/135/24 67/122/24
f 73/137/25 65/133/25 68/138/25
f 74/135/22 68/138/21 67/122/22
f 65/133/19 75/139/19 68/138/19
f 78/140/30 81/141/30 82/142/30
f 78/140/30 88/143/30 79/131/30
f 86/144/30 83/145/30 84/146/30
f 77/147/36 84/146/35 83/145/37
f 86/144/33 78/140/33 79/131/33
f 77/147/34 85/148/34 80/149/34
f 80/149/31 86/144/32 79/131/32
f 77/147/30 87/150/30 81/141/30
f 51/112/38 75/139/38 87/151/38
f 42/99/19 41/109/19 45/100/19
f 58/102/20 46/101/20 45/100/20
f 42/99/19 46/101/19 52/104/19
f 50/106/19 49/110/19 47/107/19
f 41/109/21 42/99/22 48/108/22
f 50/106/24 48/108/24 42/99/24
f 41/109/25 47/107/25 49/110/25
f 44/111/26 49/110/39 50/106/27
f 41/109/19 44/111/19 51/112/19
f 69/113/28 70/152/28 82/114/28
f 88/117/29 82/153/29 70/152/29
f 76/118/29 52/104/29 64/116/29
f 52/104/29 46/101/29 64/116/29
f 88/117/29 70/152/29 76/118/29
f 46/101/29 58/154/29 64/116/29
f 54/119/30 58/155/30 57/120/30
f 43/105/19 52/104/19 76/118/19
f 67/122/19 68/138/19 44/111/19
f 68/138/19 75/139/19 51/112/19
f 43/105/19 76/118/19 67/122/19
f 51/112/19 44/111/19 68/138/19
f 64/123/30 58/155/30 54/119/30
f 59/125/30 61/128/30 62/126/30
f 53/121/31 59/125/40 60/127/32
f 54/119/33 60/127/33 62/126/33
f 61/128/34 59/125/34 53/121/34
f 62/126/35 61/128/37 56/129/36
f 53/121/30 57/120/30 63/130/30
f 56/129/30 63/130/30 87/150/30
f 87/150/30 80/149/30 56/129/30
f 80/149/30 79/131/30 55/124/30
f 79/131/30 88/143/30 64/123/30
f 55/124/30 56/129/30 80/149/30
f 66/132/19 70/152/19 69/113/19
f 76/118/19 70/152/19 66/132/19
f 71/134/19 73/137/19 74/135/19
f 65/133/26 71/134/39 72/136/27
f 66/132/24 72/136/24 74/135/24
f 73/137/25 71/134/25 65/133/25
f 74/135/22 73/137/23 68/138/21
f 65/133/19 69/113/19 75/139/19
f 78/140/30 77/147/30 81/141/30
f 78/140/30 82/142/30 88/143/30
f 86/144/30 85/148/30 83/145/30
f 77/147/36 78/140/35 84/146/35
f 86/144/33 84/146/33 78/140/33
f 77/147/34 83/145/34 85/148/34
f 80/149/31 85/148/40 86/144/32
f 77/147/30 80/149/30 87/150/30
f 75/139/38 69/113/38 81/156/38
f 87/151/38 63/157/38 51/112/38
f 63/157/38 57/158/38 51/112/38
f 75/139/38 81/156/38 87/151/38
f 57/158/38 45/100/38 51/112/38

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -5731,6 +5731,30 @@ vt 0.195455 0.699248
vt 0.190909 0.601504 vt 0.190909 0.601504
vt 0.145455 0.646617 vt 0.145455 0.646617
vt 0.218182 0.676692 vt 0.218182 0.676692
vt 0.959091 0.917293
vt 0.931818 0.872180
vt 0.959091 0.872180
vt 0.954545 0.939850
vt 0.936364 0.954887
vt 0.936364 0.939850
vt 0.931818 0.917293
vt 0.922727 0.872180
vt 0.968182 0.917293
vt 0.931818 0.932331
vt 0.959091 0.857143
vt 0.972727 0.909774
vt 0.968182 0.872180
vt 0.972727 0.879699
vt 0.954545 0.849624
vt 0.931818 0.857143
vt 0.936364 0.849624
vt 0.918182 0.879699
vt 0.922727 0.917293
vt 0.918182 0.909774
vt 0.959091 0.932331
vt 0.954545 0.834586
vt 0.909091 0.879699
vt 0.981818 0.909774
vt 0.195455 0.684211 vt 0.195455 0.684211
vt 0.168182 0.639098 vt 0.168182 0.639098
vt 0.195455 0.639098 vt 0.195455 0.639098
@ -5779,6 +5803,78 @@ vt 0.195455 0.699248
vt 0.190909 0.601504 vt 0.190909 0.601504
vt 0.145455 0.646617 vt 0.145455 0.646617
vt 0.218182 0.676692 vt 0.218182 0.676692
vt 0.959091 0.917293
vt 0.931818 0.872180
vt 0.959091 0.872180
vt 0.954545 0.939850
vt 0.936364 0.954887
vt 0.936364 0.939850
vt 0.931818 0.917293
vt 0.922727 0.872180
vt 0.968182 0.917293
vt 0.931818 0.932331
vt 0.959091 0.857143
vt 0.972727 0.909774
vt 0.968182 0.872180
vt 0.972727 0.879699
vt 0.954545 0.849624
vt 0.931818 0.857143
vt 0.936364 0.849624
vt 0.918182 0.879699
vt 0.922727 0.917293
vt 0.918182 0.909774
vt 0.959091 0.932331
vt 0.954545 0.834586
vt 0.909091 0.879699
vt 0.981818 0.909774
vt 0.195455 0.684211
vt 0.168182 0.639098
vt 0.195455 0.639098
vt 0.190909 0.706767
vt 0.172727 0.721804
vt 0.172727 0.706767
vt 0.168182 0.684211
vt 0.159091 0.639098
vt 0.204545 0.684211
vt 0.168182 0.699248
vt 0.195455 0.624060
vt 0.209091 0.676692
vt 0.204545 0.639098
vt 0.209091 0.646617
vt 0.190909 0.616541
vt 0.168182 0.624060
vt 0.172727 0.616541
vt 0.154545 0.646617
vt 0.159091 0.684211
vt 0.154545 0.676692
vt 0.195455 0.699248
vt 0.190909 0.601504
vt 0.145455 0.646617
vt 0.218182 0.676692
vt 0.959091 0.917293
vt 0.931818 0.872180
vt 0.959091 0.872180
vt 0.954545 0.939850
vt 0.936364 0.954887
vt 0.936364 0.939850
vt 0.931818 0.917293
vt 0.922727 0.872180
vt 0.968182 0.917293
vt 0.931818 0.932331
vt 0.959091 0.857143
vt 0.972727 0.909774
vt 0.968182 0.872180
vt 0.972727 0.879699
vt 0.954545 0.849624
vt 0.931818 0.857143
vt 0.936364 0.849624
vt 0.918182 0.879699
vt 0.922727 0.917293
vt 0.918182 0.909774
vt 0.959091 0.932331
vt 0.954545 0.834586
vt 0.909091 0.879699
vt 0.981818 0.909774
vt 0.195455 0.684211 vt 0.195455 0.684211
vt 0.168182 0.639098 vt 0.168182 0.639098
vt 0.195455 0.639098 vt 0.195455 0.639098
@ -5827,126 +5923,30 @@ vt 0.195455 0.699248
vt 0.190909 0.601504 vt 0.190909 0.601504
vt 0.145455 0.646617 vt 0.145455 0.646617
vt 0.218182 0.676692 vt 0.218182 0.676692
vt 0.195455 0.684211 vt 0.959091 0.917293
vt 0.168182 0.639098 vt 0.931818 0.872180
vt 0.195455 0.639098 vt 0.959091 0.872180
vt 0.190909 0.706767 vt 0.954545 0.939850
vt 0.172727 0.721804 vt 0.936364 0.954887
vt 0.172727 0.706767 vt 0.936364 0.939850
vt 0.168182 0.684211 vt 0.931818 0.917293
vt 0.159091 0.639098 vt 0.922727 0.872180
vt 0.204545 0.684211 vt 0.968182 0.917293
vt 0.168182 0.699248 vt 0.931818 0.932331
vt 0.195455 0.624060 vt 0.959091 0.857143
vt 0.209091 0.676692 vt 0.972727 0.909774
vt 0.204545 0.639098 vt 0.968182 0.872180
vt 0.209091 0.646617 vt 0.972727 0.879699
vt 0.190909 0.616541 vt 0.954545 0.849624
vt 0.168182 0.624060 vt 0.931818 0.857143
vt 0.172727 0.616541 vt 0.936364 0.849624
vt 0.154545 0.646617 vt 0.918182 0.879699
vt 0.159091 0.684211 vt 0.922727 0.917293
vt 0.154545 0.676692 vt 0.918182 0.909774
vt 0.195455 0.699248 vt 0.959091 0.932331
vt 0.190909 0.601504 vt 0.954545 0.834586
vt 0.145455 0.646617 vt 0.909091 0.879699
vt 0.218182 0.676692 vt 0.981818 0.909774
vt 0.195455 0.684211
vt 0.168182 0.639098
vt 0.195455 0.639098
vt 0.190909 0.706767
vt 0.172727 0.721804
vt 0.172727 0.706767
vt 0.168182 0.684211
vt 0.159091 0.639098
vt 0.204545 0.684211
vt 0.168182 0.699248
vt 0.195455 0.624060
vt 0.209091 0.676692
vt 0.204545 0.639098
vt 0.209091 0.646617
vt 0.190909 0.616541
vt 0.168182 0.624060
vt 0.172727 0.616541
vt 0.154545 0.646617
vt 0.159091 0.684211
vt 0.154545 0.676692
vt 0.195455 0.699248
vt 0.190909 0.601504
vt 0.145455 0.646617
vt 0.218182 0.676692
vt 0.195455 0.684211
vt 0.168182 0.639098
vt 0.195455 0.639098
vt 0.190909 0.706767
vt 0.172727 0.721804
vt 0.172727 0.706767
vt 0.168182 0.684211
vt 0.159091 0.639098
vt 0.204545 0.684211
vt 0.168182 0.699248
vt 0.195455 0.624060
vt 0.209091 0.676692
vt 0.204545 0.639098
vt 0.209091 0.646617
vt 0.190909 0.616541
vt 0.168182 0.624060
vt 0.172727 0.616541
vt 0.154545 0.646617
vt 0.159091 0.684211
vt 0.154545 0.676692
vt 0.195455 0.699248
vt 0.190909 0.601504
vt 0.145455 0.646617
vt 0.218182 0.676692
vt 0.195455 0.684211
vt 0.168182 0.639098
vt 0.195455 0.639098
vt 0.190909 0.706767
vt 0.172727 0.721804
vt 0.172727 0.706767
vt 0.168182 0.684211
vt 0.159091 0.639098
vt 0.204545 0.684211
vt 0.168182 0.699248
vt 0.195455 0.624060
vt 0.209091 0.676692
vt 0.204545 0.639098
vt 0.209091 0.646617
vt 0.190909 0.616541
vt 0.168182 0.624060
vt 0.172727 0.616541
vt 0.154545 0.646617
vt 0.159091 0.684211
vt 0.154545 0.676692
vt 0.195455 0.699248
vt 0.190909 0.601504
vt 0.145455 0.646617
vt 0.218182 0.676692
vt 0.195455 0.684211
vt 0.168182 0.639098
vt 0.195455 0.639098
vt 0.190909 0.706767
vt 0.172727 0.721804
vt 0.172727 0.706767
vt 0.168182 0.684211
vt 0.159091 0.639098
vt 0.204545 0.684211
vt 0.168182 0.699248
vt 0.195455 0.624060
vt 0.209091 0.676692
vt 0.204545 0.639098
vt 0.209091 0.646617
vt 0.190909 0.616541
vt 0.168182 0.624060
vt 0.172727 0.616541
vt 0.154545 0.646617
vt 0.159091 0.684211
vt 0.154545 0.676692
vt 0.195455 0.699248
vt 0.190909 0.601504
vt 0.145455 0.646617
vt 0.218182 0.676692
vt 0.354545 0.766917 vt 0.354545 0.766917
vt 0.409091 0.857143 vt 0.409091 0.857143
vt 0.354545 0.857143 vt 0.354545 0.857143
@ -6670,6 +6670,10 @@ vt 0.190909 0.721804
vt 0.172727 0.601504 vt 0.172727 0.601504
vt 0.145455 0.676692 vt 0.145455 0.676692
vt 0.218182 0.646617 vt 0.218182 0.646617
vt 0.954545 0.954887
vt 0.936364 0.834586
vt 0.909091 0.909774
vt 0.981818 0.879699
vt 0.190909 0.721804 vt 0.190909 0.721804
vt 0.172727 0.601504 vt 0.172727 0.601504
vt 0.145455 0.676692 vt 0.145455 0.676692
@ -6678,6 +6682,18 @@ vt 0.190909 0.721804
vt 0.172727 0.601504 vt 0.172727 0.601504
vt 0.145455 0.676692 vt 0.145455 0.676692
vt 0.218182 0.646617 vt 0.218182 0.646617
vt 0.954545 0.954887
vt 0.936364 0.834586
vt 0.909091 0.909774
vt 0.981818 0.879699
vt 0.190909 0.721804
vt 0.172727 0.601504
vt 0.145455 0.676692
vt 0.218182 0.646617
vt 0.954545 0.954887
vt 0.936364 0.834586
vt 0.909091 0.909774
vt 0.981818 0.879699
vt 0.190909 0.721804 vt 0.190909 0.721804
vt 0.172727 0.601504 vt 0.172727 0.601504
vt 0.145455 0.676692 vt 0.145455 0.676692
@ -6686,26 +6702,10 @@ vt 0.190909 0.721804
vt 0.172727 0.601504 vt 0.172727 0.601504
vt 0.145455 0.676692 vt 0.145455 0.676692
vt 0.218182 0.646617 vt 0.218182 0.646617
vt 0.190909 0.721804 vt 0.954545 0.954887
vt 0.172727 0.601504 vt 0.936364 0.834586
vt 0.145455 0.676692 vt 0.909091 0.909774
vt 0.218182 0.646617 vt 0.981818 0.879699
vt 0.190909 0.721804
vt 0.172727 0.601504
vt 0.145455 0.676692
vt 0.218182 0.646617
vt 0.190909 0.721804
vt 0.172727 0.601504
vt 0.145455 0.676692
vt 0.218182 0.646617
vt 0.190909 0.721804
vt 0.172727 0.601504
vt 0.145455 0.676692
vt 0.218182 0.646617
vt 0.190909 0.721804
vt 0.172727 0.601504
vt 0.145455 0.676692
vt 0.218182 0.646617
vt 0.400000 0.902256 vt 0.400000 0.902256
vt 0.436364 0.781955 vt 0.436364 0.781955
vt 0.327273 0.842105 vt 0.327273 0.842105

View File

@ -11460,6 +11460,30 @@ vt 0.681373 0.074713
vt 0.676471 0.000000 vt 0.676471 0.000000
vt 0.627451 0.034483 vt 0.627451 0.034483
vt 0.705882 0.057471 vt 0.705882 0.057471
vt 0.916667 0.522988
vt 0.887255 0.488506
vt 0.916667 0.488506
vt 0.911765 0.540230
vt 0.892157 0.551724
vt 0.892157 0.540230
vt 0.887255 0.522988
vt 0.877451 0.488506
vt 0.926471 0.522988
vt 0.887255 0.534483
vt 0.916667 0.477012
vt 0.931373 0.517241
vt 0.926471 0.488506
vt 0.931373 0.494253
vt 0.911765 0.471264
vt 0.887255 0.477012
vt 0.892157 0.471264
vt 0.872549 0.494253
vt 0.877451 0.522988
vt 0.872549 0.517241
vt 0.916667 0.534483
vt 0.911765 0.459770
vt 0.862745 0.494253
vt 0.941176 0.517241
vt 0.681373 0.063218 vt 0.681373 0.063218
vt 0.651961 0.028736 vt 0.651961 0.028736
vt 0.681373 0.028736 vt 0.681373 0.028736
@ -11508,6 +11532,30 @@ vt 0.681373 0.074713
vt 0.676471 0.000000 vt 0.676471 0.000000
vt 0.627451 0.034483 vt 0.627451 0.034483
vt 0.705882 0.057471 vt 0.705882 0.057471
vt 0.916667 0.522988
vt 0.887255 0.488506
vt 0.916667 0.488506
vt 0.911765 0.540230
vt 0.892157 0.551724
vt 0.892157 0.540230
vt 0.887255 0.522988
vt 0.877451 0.488506
vt 0.926471 0.522988
vt 0.887255 0.534483
vt 0.916667 0.477012
vt 0.931373 0.517241
vt 0.926471 0.488506
vt 0.931373 0.494253
vt 0.911765 0.471264
vt 0.887255 0.477012
vt 0.892157 0.471264
vt 0.872549 0.494253
vt 0.877451 0.522988
vt 0.872549 0.517241
vt 0.916667 0.534483
vt 0.911765 0.459770
vt 0.862745 0.494253
vt 0.941176 0.517241
vt 0.681373 0.063218 vt 0.681373 0.063218
vt 0.651961 0.028736 vt 0.651961 0.028736
vt 0.681373 0.028736 vt 0.681373 0.028736
@ -11532,78 +11580,30 @@ vt 0.681373 0.074713
vt 0.676471 0.000000 vt 0.676471 0.000000
vt 0.627451 0.034483 vt 0.627451 0.034483
vt 0.705882 0.057471 vt 0.705882 0.057471
vt 0.681373 0.063218 vt 0.916667 0.522988
vt 0.651961 0.028736 vt 0.887255 0.488506
vt 0.681373 0.028736 vt 0.916667 0.488506
vt 0.676471 0.080460 vt 0.911765 0.540230
vt 0.656863 0.091954 vt 0.892157 0.551724
vt 0.656863 0.080460 vt 0.892157 0.540230
vt 0.651961 0.063218 vt 0.887255 0.522988
vt 0.642157 0.028736 vt 0.877451 0.488506
vt 0.691176 0.063218 vt 0.926471 0.522988
vt 0.651961 0.074713 vt 0.887255 0.534483
vt 0.681373 0.017241 vt 0.916667 0.477012
vt 0.696078 0.057471 vt 0.931373 0.517241
vt 0.691176 0.028736 vt 0.926471 0.488506
vt 0.696078 0.034483 vt 0.931373 0.494253
vt 0.676471 0.011494 vt 0.911765 0.471264
vt 0.651961 0.017241 vt 0.887255 0.477012
vt 0.656863 0.011494 vt 0.892157 0.471264
vt 0.637255 0.034483 vt 0.872549 0.494253
vt 0.642157 0.063218 vt 0.877451 0.522988
vt 0.637255 0.057471 vt 0.872549 0.517241
vt 0.681373 0.074713 vt 0.916667 0.534483
vt 0.676471 0.000000 vt 0.911765 0.459770
vt 0.627451 0.034483 vt 0.862745 0.494253
vt 0.705882 0.057471 vt 0.941176 0.517241
vt 0.681373 0.063218
vt 0.651961 0.028736
vt 0.681373 0.028736
vt 0.676471 0.080460
vt 0.656863 0.091954
vt 0.656863 0.080460
vt 0.651961 0.063218
vt 0.642157 0.028736
vt 0.691176 0.063218
vt 0.651961 0.074713
vt 0.681373 0.017241
vt 0.696078 0.057471
vt 0.691176 0.028736
vt 0.696078 0.034483
vt 0.676471 0.011494
vt 0.651961 0.017241
vt 0.656863 0.011494
vt 0.637255 0.034483
vt 0.642157 0.063218
vt 0.637255 0.057471
vt 0.681373 0.074713
vt 0.676471 0.000000
vt 0.627451 0.034483
vt 0.705882 0.057471
vt 0.681373 0.063218
vt 0.651961 0.028736
vt 0.681373 0.028736
vt 0.676471 0.080460
vt 0.656863 0.091954
vt 0.656863 0.080460
vt 0.651961 0.063218
vt 0.642157 0.028736
vt 0.691176 0.063218
vt 0.651961 0.074713
vt 0.681373 0.017241
vt 0.696078 0.057471
vt 0.691176 0.028736
vt 0.696078 0.034483
vt 0.676471 0.011494
vt 0.651961 0.017241
vt 0.656863 0.011494
vt 0.637255 0.034483
vt 0.642157 0.063218
vt 0.637255 0.057471
vt 0.681373 0.074713
vt 0.676471 0.000000
vt 0.627451 0.034483
vt 0.705882 0.057471
vt 0.681373 0.063218 vt 0.681373 0.063218
vt 0.651961 0.028736 vt 0.651961 0.028736
vt 0.681373 0.028736 vt 0.681373 0.028736
@ -11653,30 +11653,30 @@ vt 0.681373 0.074713
vt 0.676471 0.000000 vt 0.676471 0.000000
vt 0.627451 0.034483 vt 0.627451 0.034483
vt 0.705882 0.057471 vt 0.705882 0.057471
vt 0.681373 0.063218 vt 0.916667 0.522988
vt 0.651961 0.028736 vt 0.887255 0.488506
vt 0.681373 0.028736 vt 0.916667 0.488506
vt 0.676471 0.080460 vt 0.911765 0.540230
vt 0.656863 0.091954 vt 0.892157 0.551724
vt 0.656863 0.080460 vt 0.892157 0.540230
vt 0.651961 0.063218 vt 0.887255 0.522988
vt 0.642157 0.028736 vt 0.877451 0.488506
vt 0.691176 0.063218 vt 0.926471 0.522988
vt 0.651961 0.074713 vt 0.887255 0.534483
vt 0.681373 0.017241 vt 0.916667 0.477012
vt 0.696078 0.057471 vt 0.931373 0.517241
vt 0.691176 0.028736 vt 0.926471 0.488506
vt 0.696078 0.034483 vt 0.931373 0.494253
vt 0.676471 0.011494 vt 0.911765 0.471264
vt 0.651961 0.017241 vt 0.887255 0.477012
vt 0.656863 0.011494 vt 0.892157 0.471264
vt 0.637255 0.034483 vt 0.872549 0.494253
vt 0.642157 0.063218 vt 0.877451 0.522988
vt 0.637255 0.057471 vt 0.872549 0.517241
vt 0.681373 0.074713 vt 0.916667 0.534483
vt 0.676471 0.000000 vt 0.911765 0.459770
vt 0.627451 0.034483 vt 0.862745 0.494253
vt 0.705882 0.057471 vt 0.941176 0.517241
vt 0.882353 -0.000000 vt 0.882353 -0.000000
vt 0.882353 0.068966 vt 0.882353 0.068966
vt 0.941176 0.045977 vt 0.941176 0.045977
@ -11940,6 +11940,10 @@ vt 0.676471 0.091954
vt 0.656863 0.000000 vt 0.656863 0.000000
vt 0.627451 0.057471 vt 0.627451 0.057471
vt 0.705882 0.034483 vt 0.705882 0.034483
vt 0.911765 0.551724
vt 0.892157 0.459770
vt 0.862745 0.517241
vt 0.941176 0.494253
vt 0.676471 0.091954 vt 0.676471 0.091954
vt 0.656863 0.000000 vt 0.656863 0.000000
vt 0.627451 0.057471 vt 0.627451 0.057471
@ -11948,33 +11952,29 @@ vt 0.676471 0.091954
vt 0.656863 0.000000 vt 0.656863 0.000000
vt 0.627451 0.057471 vt 0.627451 0.057471
vt 0.705882 0.034483 vt 0.705882 0.034483
vt 0.911765 0.551724
vt 0.892157 0.459770
vt 0.862745 0.517241
vt 0.941176 0.494253
vt 0.676471 0.091954 vt 0.676471 0.091954
vt 0.656863 0.000000 vt 0.656863 0.000000
vt 0.627451 0.057471 vt 0.627451 0.057471
vt 0.705882 0.034483 vt 0.705882 0.034483
vt 0.911765 0.551724
vt 0.892157 0.459770
vt 0.862745 0.517241
vt 0.941176 0.494253
vt 0.656863 0.000000
vt 0.627451 0.057471
vt 0.705882 0.034483
vt 0.676471 0.091954 vt 0.676471 0.091954
vt 0.656863 0.000000 vt 0.656863 0.000000
vt 0.627451 0.057471 vt 0.627451 0.057471
vt 0.705882 0.034483 vt 0.705882 0.034483
vt 0.676471 0.091954 vt 0.911765 0.551724
vt 0.656863 0.000000 vt 0.892157 0.459770
vt 0.627451 0.057471 vt 0.862745 0.517241
vt 0.705882 0.034483 vt 0.941176 0.494253
vt 0.676471 0.091954
vt 0.656863 0.000000
vt 0.627451 0.057471
vt 0.705882 0.034483
vt 0.656863 0.000000
vt 0.627451 0.057471
vt 0.705882 0.034483
vt 0.676471 0.091954
vt 0.656863 0.000000
vt 0.627451 0.057471
vt 0.705882 0.034483
vt 0.676471 0.091954
vt 0.656863 0.000000
vt 0.627451 0.057471
vt 0.705882 0.034483
vt 0.156863 0.908046 vt 0.156863 0.908046
vt 0.176471 0.747126 vt 0.176471 0.747126
vt 0.176471 0.908046 vt 0.176471 0.908046

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,569 @@
# Blender v2.79 (sub 0) OBJ File: 'seal_door.blend'
# www.blender.org
o Door
v -0.062500 0.187500 -0.437500
v -0.187500 0.125000 -0.375000
v -0.062500 0.125000 -0.375000
v -0.187500 0.062500 -0.250000
v -0.062500 0.062500 -0.250000
v -0.062500 0.062500 0.250000
v -0.187500 0.062500 0.250000
v -0.062500 0.125000 0.375000
v -0.187500 1.875000 0.375000
v -0.062500 1.937500 0.250000
v -0.062500 1.875000 0.375000
v -0.062500 1.937500 -0.250000
v -0.187500 1.937500 0.250000
v -0.187500 1.937500 -0.250000
v -0.187500 1.875000 -0.375000
v -0.062500 1.875000 -0.375000
v -0.187500 1.812500 -0.437500
v -0.062500 1.812500 -0.437500
v -0.187500 0.125000 0.375000
v -0.062500 0.187500 0.437500
v -0.187500 1.812500 0.437500
v -0.062500 1.812500 0.437500
v -0.187500 0.187500 0.437500
v -0.250000 1.750000 -0.437500
v -0.250000 1.750000 0.437500
v -0.187500 1.687500 -0.437500
v -0.187500 1.687500 0.437500
v -0.187500 1.312500 -0.437500
v -0.187500 1.312500 0.437500
v -0.250000 1.375000 -0.437500
v -0.250000 1.375000 0.437500
v -0.187500 1.437500 0.437500
v -0.187500 1.437500 -0.437500
v -0.187500 1.062500 0.437500
v -0.187500 1.062500 -0.437500
v -0.187500 0.937500 -0.437500
v -0.187500 0.937500 0.437500
v -0.250000 1.000000 -0.437500
v -0.250000 1.000000 0.437500
v -0.187500 0.687500 -0.437500
v -0.187500 0.687500 0.437500
v -0.187500 0.562500 -0.437500
v -0.187500 0.562500 0.437500
v -0.250000 0.625000 -0.437500
v -0.250000 0.625000 0.437500
v -0.187500 0.312500 -0.437500
v -0.187500 0.312500 0.437500
v -0.250000 0.250000 -0.437500
v -0.250000 0.250000 0.437500
v -0.187500 0.187500 -0.437500
v 0.000000 1.750000 0.437500
v 0.000000 1.750000 -0.437500
v -0.062500 1.687500 0.437500
v -0.062500 1.687500 -0.437500
v -0.062500 1.437500 0.437500
v -0.062500 1.437500 -0.437500
v 0.000000 1.375000 0.437500
v 0.000000 1.375000 -0.437500
v -0.062500 1.312500 0.437500
v -0.062500 1.312500 -0.437500
v -0.062500 1.062500 0.437500
v -0.062500 1.062500 -0.437500
v 0.000000 1.000000 0.437500
v 0.000000 1.000000 -0.437500
v -0.062500 0.937500 0.437500
v -0.062500 0.937500 -0.437500
v -0.062500 0.687500 0.437500
v -0.062500 0.687500 -0.437500
v 0.000000 0.625000 0.437500
v 0.000000 0.625000 -0.437500
v -0.062500 0.562500 0.437500
v -0.062500 0.562500 -0.437500
v -0.062500 0.312500 0.437500
v -0.062500 0.312500 -0.437500
v 0.000000 0.250000 0.437500
v 0.000000 0.250000 -0.437500
vt 0.875000 0.078125
vt 0.875000 0.046875
vt 0.750000 0.046875
vt 0.750000 0.546875
vt 0.750000 0.578125
vt 0.875000 0.578125
vt 0.656250 0.515625
vt 0.687500 0.515625
vt 0.687500 0.109375
vt 0.937500 0.515625
vt 0.937500 0.109375
vt 0.968750 0.109375
vt 0.718750 0.531250
vt 0.703125 0.515625
vt 0.921875 0.515625
vt 0.906250 0.531250
vt 0.750000 0.546875
vt 0.875000 0.546875
vt 0.703125 0.500000
vt 0.921875 0.500000
vt 0.703125 0.484375
vt 0.921875 0.484375
vt 0.703125 0.390625
vt 0.921875 0.390625
vt 0.703125 0.406250
vt 0.921875 0.406250
vt 0.921875 0.421875
vt 0.703125 0.421875
vt 0.921875 0.328125
vt 0.703125 0.328125
vt 0.703125 0.296875
vt 0.921875 0.296875
vt 0.703125 0.312500
vt 0.921875 0.312500
vt 0.703125 0.234375
vt 0.921875 0.234375
vt 0.703125 0.203125
vt 0.921875 0.203125
vt 0.703125 0.218750
vt 0.921875 0.218750
vt 0.703125 0.140625
vt 0.921875 0.140625
vt 0.703125 0.125000
vt 0.921875 0.125000
vt 0.703125 0.109375
vt 0.921875 0.109375
vt 0.906250 0.093750
vt 0.718750 0.093750
vt 0.750000 0.078125
vt 0.875000 0.078125
vt 0.937500 0.484375
vt 0.937500 0.390625
vt 0.937500 0.421875
vt 0.937500 0.328125
vt 0.937500 0.296875
vt 0.937500 0.203125
vt 0.937500 0.234375
vt 0.937500 0.140625
vt 0.687500 0.484375
vt 0.687500 0.515625
vt 0.687500 0.390625
vt 0.687500 0.421875
vt 0.687500 0.328125
vt 0.687500 0.296875
vt 0.687500 0.203125
vt 0.687500 0.234375
vt 0.687500 0.109375
vt 0.687500 0.140625
vt 0.906250 0.531250
vt 0.750000 0.546875
vt 0.718750 0.531250
vt 0.875000 0.546875
vt 0.703125 0.515625
vt 0.921875 0.515625
vt 0.703125 0.500000
vt 0.921875 0.500000
vt 0.703125 0.484375
vt 0.921875 0.484375
vt 0.703125 0.421875
vt 0.921875 0.421875
vt 0.703125 0.406250
vt 0.921875 0.406250
vt 0.703125 0.390625
vt 0.921875 0.390625
vt 0.703125 0.328125
vt 0.921875 0.328125
vt 0.703125 0.312500
vt 0.921875 0.312500
vt 0.703125 0.296875
vt 0.921875 0.296875
vt 0.703125 0.234375
vt 0.921875 0.234375
vt 0.703125 0.218750
vt 0.921875 0.218750
vt 0.703125 0.203125
vt 0.921875 0.203125
vt 0.703125 0.140625
vt 0.921875 0.140625
vt 0.703125 0.125000
vt 0.921875 0.125000
vt 0.703125 0.109375
vt 0.921875 0.109375
vt 0.906250 0.093750
vt 0.718750 0.093750
vt 0.750000 0.078125
vt 0.875000 0.078125
vt 0.640625 0.500000
vt 0.656250 0.515625
vt 0.656250 0.484375
vt 0.640625 0.406250
vt 0.656250 0.421875
vt 0.656250 0.390625
vt 0.656250 0.328125
vt 0.656250 0.296875
vt 0.640625 0.312500
vt 0.640625 0.218750
vt 0.656250 0.234375
vt 0.656250 0.203125
vt 0.640625 0.125000
vt 0.656250 0.140625
vt 0.656250 0.109375
vt 0.984375 0.125000
vt 0.968750 0.140625
vt 0.984375 0.218750
vt 0.968750 0.234375
vt 0.968750 0.203125
vt 0.968750 0.328125
vt 0.968750 0.296875
vt 0.984375 0.312500
vt 0.984375 0.406250
vt 0.968750 0.421875
vt 0.968750 0.390625
vt 0.984375 0.500000
vt 0.968750 0.515625
vt 0.968750 0.484375
vt 0.750000 0.078125
vt 0.875000 0.546875
vt 0.656250 0.109375
vt 0.687500 0.093750
vt 0.656250 0.093750
vt 0.687500 0.062500
vt 0.656250 0.062500
vt 0.968750 0.062500
vt 0.937500 0.062500
vt 0.937500 0.093750
vt 0.968750 0.531250
vt 0.937500 0.531250
vt 0.937500 0.562500
vt 0.687500 0.562500
vt 0.687500 0.531250
vt 0.656250 0.531250
vt 0.968750 0.093750
vt 0.937500 0.109375
vt 0.968750 0.515625
vt 0.937500 0.515625
vt 0.968750 0.562500
vt 0.656250 0.562500
vt 0.968750 0.109375
vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.7071 0.0000
vn -0.7071 -0.7071 -0.0000
vn 1.0000 -0.0000 0.0000
vn 0.7071 0.7071 0.0000
vn 0.7071 -0.7071 -0.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -0.8112 -0.5847
vn 0.0000 -0.8944 -0.4472
vn 0.0000 -0.8944 0.4472
vn 0.0000 -0.8112 0.5847
vn 0.0000 0.8112 0.5847
vn 0.0000 0.8944 0.4472
vn 0.0000 0.8944 -0.4472
vn 0.0000 0.8112 -0.5847
vn 0.0000 0.7071 -0.7071
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.7071 0.7071
s off
f 6/1/1 7/2/1 4/3/1
f 12/4/2 14/5/2 13/6/2
f 17/7/3 18/8/3 1/9/3
f 21/10/4 23/11/4 20/12/4
f 15/13/5 17/14/5 21/15/5
f 21/15/5 9/16/5 15/13/5
f 15/13/5 9/16/5 14/17/5
f 13/18/5 14/17/5 9/16/5
f 24/19/6 25/20/6 17/14/6
f 21/15/6 17/14/6 25/20/6
f 26/21/7 27/22/7 24/19/7
f 25/20/7 24/19/7 27/22/7
f 28/23/7 29/24/7 30/25/7
f 31/26/7 30/25/7 29/24/7
f 32/27/6 33/28/6 31/26/6
f 30/25/6 31/26/6 33/28/6
f 32/27/5 26/21/5 33/28/5
f 27/22/5 26/21/5 32/27/5
f 34/29/5 28/23/5 35/30/5
f 28/23/5 34/29/5 29/24/5
f 36/31/7 37/32/7 38/33/7
f 39/34/7 38/33/7 37/32/7
f 35/30/6 38/33/6 39/34/6
f 34/29/6 35/30/6 39/34/6
f 40/35/5 41/36/5 36/31/5
f 36/31/5 41/36/5 37/32/5
f 42/37/7 43/38/7 44/39/7
f 43/38/7 45/40/7 44/39/7
f 44/39/6 45/40/6 40/35/6
f 45/40/6 41/36/6 40/35/6
f 46/41/5 47/42/5 42/37/5
f 42/37/5 47/42/5 43/38/5
f 48/43/6 49/44/6 46/41/6
f 47/42/6 46/41/6 49/44/6
f 50/45/7 23/46/7 48/43/7
f 49/44/7 48/43/7 23/46/7
f 19/47/5 50/45/5 2/48/5
f 23/46/5 50/45/5 19/47/5
f 4/49/5 7/50/5 2/48/5
f 19/47/5 2/48/5 7/50/5
f 25/20/4 27/51/4 21/10/4
f 31/26/4 29/52/4 32/53/4
f 34/54/4 39/34/4 37/55/4
f 45/40/4 43/56/4 41/57/4
f 49/44/4 23/11/4 47/58/4
f 24/19/3 17/59/3 26/60/3
f 30/25/3 33/61/3 28/62/3
f 36/63/3 38/33/3 35/64/3
f 44/39/3 40/65/3 42/66/3
f 48/43/3 46/67/3 50/68/3
f 16/69/8 10/70/8 11/71/8
f 12/72/8 10/70/8 16/69/8
f 22/73/8 18/74/8 11/71/8
f 16/69/8 11/71/8 18/74/8
f 51/75/9 52/76/9 22/73/9
f 53/77/10 54/78/10 51/75/10
f 52/76/9 18/74/9 22/73/9
f 54/78/10 52/76/10 51/75/10
f 55/79/8 56/80/8 53/77/8
f 54/78/8 53/77/8 56/80/8
f 57/81/9 58/82/9 55/79/9
f 58/82/9 56/80/9 55/79/9
f 59/83/10 60/84/10 57/81/10
f 60/84/10 58/82/10 57/81/10
f 61/85/8 62/86/8 59/83/8
f 60/84/8 59/83/8 62/86/8
f 63/87/9 64/88/9 61/85/9
f 62/86/9 61/85/9 64/88/9
f 65/89/10 66/90/10 63/87/10
f 66/90/10 64/88/10 63/87/10
f 67/91/8 68/92/8 65/89/8
f 65/89/8 68/92/8 66/90/8
f 67/91/9 69/93/9 70/94/9
f 68/92/9 67/91/9 70/94/9
f 69/93/10 71/95/10 72/96/10
f 70/94/10 69/93/10 72/96/10
f 73/97/8 74/98/8 71/95/8
f 72/96/8 71/95/8 74/98/8
f 75/99/9 76/100/9 73/97/9
f 76/100/9 74/98/9 73/97/9
f 20/101/10 1/102/10 75/99/10
f 1/102/10 76/100/10 75/99/10
f 3/103/8 20/101/8 8/104/8
f 3/103/8 1/102/8 20/101/8
f 6/105/8 5/106/8 8/104/8
f 3/103/8 8/104/8 5/106/8
f 52/107/3 54/108/3 18/109/3
f 58/110/3 60/111/3 56/112/3
f 66/113/3 62/114/3 64/115/3
f 70/116/3 72/117/3 68/118/3
f 76/119/3 1/120/3 74/121/3
f 75/122/4 73/123/4 20/12/4
f 69/124/4 67/125/4 71/126/4
f 61/127/4 65/128/4 63/129/4
f 57/130/4 55/131/4 59/132/4
f 51/133/4 22/134/4 53/135/4
f 6/1/1 4/3/1 5/136/1
f 12/4/2 13/6/2 10/137/2
f 17/7/3 1/9/3 50/138/3
f 21/10/4 20/12/4 22/134/4
s 1
f 1/9/11 3/139/12 2/140/12
f 3/139/12 5/141/13 4/142/13
f 7/143/14 6/144/14 8/145/15
f 9/146/16 11/147/16 10/148/17
f 12/149/18 16/150/19 15/151/19
f 16/150/19 18/8/20 17/7/20
f 19/152/15 8/145/15 20/153/21
f 21/154/22 22/155/22 11/147/16
f 1/9/11 2/140/12 50/138/11
f 3/139/12 4/142/13 2/140/12
f 7/143/14 8/145/15 19/152/15
f 9/146/16 10/148/17 13/156/17
f 12/149/18 15/151/19 14/157/18
f 16/150/19 17/7/20 15/151/19
f 19/152/15 20/153/21 23/158/21
f 21/154/22 11/147/16 9/146/16
o Frame
v -0.250000 0.000000 -0.500000
v 0.000000 -0.000000 0.500000
v -0.250000 -0.000000 0.500000
v -0.250000 2.000000 -0.500000
v 0.000000 2.000000 0.500000
v 0.000000 2.000000 -0.500000
v 0.000000 0.000000 -0.500000
v -0.250000 2.000000 0.500000
v 0.000000 0.250000 -0.437500
v -0.250000 1.750000 -0.437500
v -0.250000 0.250000 -0.437500
v -0.250000 0.125000 -0.375000
v 0.000000 0.125000 -0.375000
v -0.250000 0.062500 0.250000
v 0.000000 0.125000 0.375000
v 0.000000 0.062500 0.250000
v -0.250000 0.125000 0.375000
v 0.000000 0.250000 0.437500
v -0.250000 1.875000 0.375000
v 0.000000 1.937500 0.250000
v 0.000000 1.875000 0.375000
v 0.000000 1.937500 -0.250000
v -0.250000 1.875000 -0.375000
v 0.000000 1.875000 -0.375000
v 0.000000 1.750000 -0.437500
v -0.250000 0.062500 -0.250000
v 0.000000 0.062500 -0.250000
v -0.250000 1.750000 0.437500
v 0.000000 1.750000 0.437500
v -0.250000 1.937500 0.250000
v -0.250000 1.937500 -0.250000
v -0.250000 0.250000 0.437500
vt 0.312500 0.000000
vt 0.062500 0.062500
vt 0.062500 0.000000
vt 0.312500 0.625000
vt 0.062500 0.562500
vt 0.312500 0.562500
vt 0.312500 0.062500
vt 0.062500 0.625000
vt 0.375000 0.593750
vt 0.312500 0.968750
vt 0.312500 0.593750
vt 0.312500 0.562500
vt 0.375000 0.593750
vt 0.312500 0.593750
vt 0.125000 0.687500
vt 0.093750 0.625000
vt 0.125000 0.625000
vt 0.062500 0.562500
vt 0.000000 0.593750
vt 0.000000 0.562500
vt 0.093750 0.937500
vt 0.125000 1.000000
vt 0.093750 1.000000
vt 0.250000 1.000000
vt 0.281250 0.937500
vt 0.281250 1.000000
vt 0.375000 1.000000
vt 0.375000 0.968750
vt 0.281250 0.625000
vt 0.250000 0.687500
vt 0.250000 0.625000
vt 0.062500 0.968750
vt 0.000000 0.968750
vt 0.000000 1.000000
vt 0.062500 0.968750
vt 0.062500 1.000000
vt 0.125000 0.937500
vt 0.250000 0.937500
vt 0.375000 0.562500
vt 0.390625 0.500000
vt 0.406250 0.531250
vt 0.437500 0.546875
vt 0.625000 0.562500
vt 0.562500 0.546875
vt 0.593750 0.531250
vt 0.609375 0.500000
vt 0.625000 0.062500
vt 0.609375 0.125000
vt 0.593750 0.093750
vt 0.562500 0.078125
vt 0.375000 0.062500
vt 0.437500 0.078125
vt 0.406250 0.093750
vt 0.390625 0.125000
vt 0.375000 0.562500
vt 0.281250 0.687500
vt 0.093750 0.687500
vt 0.062500 0.593750
vt 0.312500 1.000000
vt 0.000000 0.968750
vt 0.296875 0.500000
vt 0.296875 0.125000
vt 0.281250 0.093750
vt 0.250000 0.078125
vt 0.125000 0.078125
vt 0.093750 0.093750
vt 0.078125 0.125000
vt 0.078125 0.500000
vt 0.093750 0.531250
vt 0.125000 0.546875
vt 0.250000 0.546875
vt 0.281250 0.531250
vt 0.375000 0.562500
vt 0.375000 0.062500
vt 0.000000 0.062500
vt 0.000000 0.562500
vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.2298 0.9732
vn 0.0000 -0.2298 0.9732
vn 0.0000 0.7071 0.7071
vn 0.0000 0.9732 -0.2298
vn 0.0000 0.7071 -0.7071
vn 0.0000 0.2298 -0.9732
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -0.9732 -0.2298
vn 0.0000 -0.9732 0.2298
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.9732 0.2298
vn 0.0000 -0.2298 -0.9732
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -0.0000 1.0000
s 1
f 77/159/23 78/160/23 79/161/23
f 80/162/24 81/163/24 82/164/24
f 77/159/23 83/165/23 78/160/23
f 80/162/24 84/166/24 81/163/24
f 85/167/25 86/168/26 87/169/25
f 85/170/25 88/171/27 89/172/27
f 90/173/28 91/174/29 92/175/28
f 93/176/29 94/177/30 91/178/29
f 95/179/31 96/180/32 97/181/31
f 98/182/33 99/183/34 100/184/34
f 100/185/34 86/168/26 101/186/26
f 89/187/27 102/188/35 103/189/35
f 92/175/28 102/188/35 90/173/28
f 94/177/30 104/190/36 105/191/36
f 104/192/36 97/193/31 105/194/36
f 98/182/33 106/195/32 107/196/33
f 79/197/37 108/198/37 93/199/37
f 93/199/37 90/200/37 79/197/37
f 79/197/37 90/200/37 77/201/37
f 90/200/37 102/202/37 77/201/37
f 88/203/37 77/201/37 102/202/37
f 87/204/37 77/201/37 88/203/37
f 77/201/37 87/204/37 80/205/37
f 87/204/37 86/206/37 80/205/37
f 99/207/37 80/205/37 86/206/37
f 107/208/37 80/205/37 99/207/37
f 80/205/37 107/208/37 84/209/37
f 107/208/37 106/210/37 84/209/37
f 95/211/37 84/209/37 106/210/37
f 104/212/37 84/209/37 95/211/37
f 84/209/37 104/212/37 79/197/37
f 104/212/37 108/198/37 79/197/37
f 85/167/25 101/186/26 86/168/26
f 85/170/25 87/213/25 88/171/27
f 89/187/27 88/214/27 102/188/35
f 90/173/28 93/215/29 91/174/29
f 93/176/29 108/216/30 94/177/30
f 94/177/30 108/216/30 104/190/36
f 95/179/31 106/195/32 96/180/32
f 98/182/33 96/180/32 106/195/32
f 98/182/33 107/196/33 99/183/34
f 100/185/34 99/217/34 86/168/26
f 92/175/28 103/189/35 102/188/35
f 104/192/36 95/218/31 97/193/31
f 101/219/38 85/220/38 82/164/38
f 82/164/38 85/220/38 83/165/38
f 89/221/38 83/165/38 85/220/38
f 103/222/38 83/165/38 89/221/38
f 92/223/38 83/165/38 103/222/38
f 78/160/38 83/165/38 92/223/38
f 92/223/38 91/224/38 78/160/38
f 91/224/38 94/225/38 78/160/38
f 105/226/38 78/160/38 94/225/38
f 78/160/38 105/226/38 81/163/38
f 97/227/38 81/163/38 105/226/38
f 97/227/38 96/228/38 81/163/38
f 98/229/38 81/163/38 96/228/38
f 82/164/38 81/163/38 98/229/38
f 100/230/38 82/164/38 98/229/38
f 101/219/38 82/164/38 100/230/38
f 83/165/39 80/231/39 82/164/39
f 77/232/39 80/231/39 83/165/39
f 81/163/40 79/233/40 78/160/40
f 84/234/40 79/233/40 81/163/40

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,976 @@
# Blender v2.79 (sub 0) OBJ File: 'sliding_door.blend'
# www.blender.org
o Right
v -0.125000 1.875000 -0.875000
v -0.125000 1.125000 -0.875000
v -0.125000 1.875000 -0.125000
v -0.125000 1.125000 -0.125000
v -0.125000 0.125000 -0.875000
v -0.125000 0.875000 -0.875000
v -0.125000 0.125000 -0.125000
v -0.125000 0.875000 -0.125000
v -0.187500 1.875000 -0.875000
v -0.187500 1.125000 -0.875000
v -0.187500 1.875000 -0.125000
v -0.187500 1.125000 -0.125000
v -0.187500 0.125000 -0.875000
v -0.187500 0.875000 -0.875000
v -0.187500 0.125000 -0.125000
v -0.187500 0.875000 -0.125000
v -0.125000 1.062500 -0.875000
v -0.125000 0.937500 -0.875000
v -0.125000 1.062500 -0.250000
v -0.125000 0.937500 -0.250000
v -0.187500 1.062500 -0.875000
v -0.187500 0.937500 -0.875000
v -0.187500 1.062500 -0.250000
v -0.187500 0.937500 -0.250000
v -0.250000 0.000000 -1.000000
v -0.250000 0.125000 -1.000000
v -0.250000 0.000000 0.000000
v -0.250000 0.125000 0.000000
v -0.062500 0.000000 -1.000000
v -0.062500 0.125000 -1.000000
v -0.062500 0.000000 0.000000
v -0.062500 0.125000 0.000000
v -0.250000 0.000000 -0.125000
v -0.250000 0.125000 -0.125000
v -0.062500 0.000000 -0.125000
v -0.062500 0.125000 -0.125000
v -0.250000 0.000000 -0.875000
v -0.062500 0.125000 -0.875000
v -0.250000 0.125000 -0.875000
v -0.062500 0.000000 -0.875000
v -0.250000 1.875000 0.000000
v -0.062500 1.875000 0.000000
v -0.062500 1.875000 -0.875000
v -0.062500 1.875000 -1.000000
v -0.250000 1.875000 -1.000000
v -0.250000 1.875000 -0.875000
v -0.250000 2.000000 0.000000
v -0.062500 2.000000 0.000000
v -0.062500 2.000000 -0.875000
v -0.062500 2.000000 -1.000000
v -0.250000 2.000000 -1.000000
v -0.062500 2.000000 -0.125000
v -0.250000 2.000000 -0.875000
v -0.062500 1.875000 -0.125000
v -0.250000 1.875000 -0.125000
v -0.250000 2.000000 -0.125000
v -0.062500 1.250000 0.000000
v -0.250000 1.250000 0.000000
v -0.062500 1.250000 -0.125000
v -0.250000 0.750000 0.000000
v -0.062500 0.750000 0.000000
v -0.062500 0.875000 0.000000
v -0.250000 0.875000 -0.125000
v -0.250000 0.875000 0.000000
v -0.062500 0.875000 -0.187500
v -0.062500 1.125000 0.000000
v -0.250000 1.125000 -0.125000
v -0.250000 1.125000 0.000000
v -0.062500 1.125000 -0.187500
v -0.250000 1.125000 -0.250000
v -0.250000 0.875000 -0.250000
v -0.250000 1.250000 -0.125000
v -0.062500 1.125000 -0.250000
v -0.062500 0.875000 -0.250000
v -0.062500 0.750000 -0.125000
v -0.250000 0.750000 -0.125000
v -0.187500 1.125000 0.000000
v -0.187500 1.125000 -0.187500
v -0.187500 0.875000 -0.187500
v -0.187500 0.875000 0.000000
v -0.062500 0.875000 -0.125000
v -0.062500 1.125000 -0.125000
v -0.062500 0.875000 -0.062500
v -0.062500 1.125000 -0.062500
v -0.125000 0.875000 -0.125000
v -0.125000 1.125000 -0.125000
v -0.125000 0.875000 -0.062500
v -0.125000 1.125000 -0.062500
v -0.187500 1.062500 -0.875000
v -0.187500 1.125000 -0.875000
v -0.187500 1.062500 -0.250000
v -0.187500 1.125000 -0.250000
v -0.125000 1.062500 -0.875000
v -0.125000 1.125000 -0.875000
v -0.125000 1.062500 -0.250000
v -0.125000 1.125000 -0.250000
v -0.187500 0.937500 -0.875000
v -0.187500 0.875000 -0.875000
v -0.187500 0.937500 -0.250000
v -0.187500 0.875000 -0.250000
v -0.125000 0.937500 -0.875000
v -0.125000 0.875000 -0.875000
v -0.125000 0.937500 -0.250000
v -0.125000 0.875000 -0.250000
v -0.187500 2.000000 0.000000
v -0.187500 2.000000 -1.000000
v -0.187500 2.000000 -0.875000
v -0.187500 2.000000 -0.125000
v -0.125000 2.000000 0.000000
v -0.125000 2.000000 -0.875000
v -0.125000 2.000000 -1.000000
v -0.125000 2.000000 -0.125000
vt 0.909774 0.979167
vt 1.000000 0.729167
vt 1.000000 0.979167
vt 1.000000 0.645833
vt 0.909774 0.395833
vt 1.000000 0.395833
vt 0.819549 0.729167
vt 0.909774 0.979167
vt 0.819549 0.979167
vt 0.909774 0.395833
vt 0.819549 0.645833
vt 0.819549 0.395833
vt 0.924812 0.708333
vt 1.000000 0.666667
vt 1.000000 0.708333
vt 0.819549 0.666667
vt 0.894737 0.708333
vt 0.819549 0.708333
vt 0.646617 0.083333
vt 0.631579 0.125000
vt 0.631579 0.083333
vt 0.669173 0.083333
vt 0.646617 0.125000
vt 0.789474 0.083333
vt 0.774436 0.125000
vt 0.774436 0.083333
vt 0.812030 0.083333
vt 0.789474 0.125000
vt 0.789474 0.020833
vt 0.774436 0.020833
vt 0.789474 0.708333
vt 0.488722 0.708333
vt 0.466165 0.125000
vt 0.488722 0.125000
vt 0.684211 0.020833
vt 0.669173 0.020833
vt 0.684211 0.083333
vt 0.669173 0.125000
vt 0.541353 0.125000
vt 0.541353 0.083333
vt 0.526316 0.125000
vt 0.526316 0.083333
vt 0.458647 0.125000
vt 0.368421 0.187500
vt 0.368421 0.125000
vt 0.684211 0.125000
vt 0.684211 0.750000
vt 0.669173 0.708333
vt 0.684211 0.708333
vt 0.541353 0.750000
vt 0.526316 0.708333
vt 0.541353 0.708333
vt 0.669173 0.500000
vt 0.684211 0.500000
vt 0.646617 0.708333
vt 0.631579 0.500000
vt 0.646617 0.500000
vt 0.812030 0.708333
vt 0.812030 0.125000
vt 0.518797 0.708333
vt 0.496241 0.500000
vt 0.518797 0.500000
vt 0.789474 0.750000
vt 0.774436 0.708333
vt 0.646617 0.750000
vt 0.631579 0.708333
vt 0.774436 0.750000
vt 0.368421 0.270833
vt 0.458647 0.208333
vt 0.458647 0.270833
vt 0.812030 0.750000
vt 0.669173 0.750000
vt 0.654135 0.458333
vt 0.669173 0.458333
vt 0.631579 0.375000
vt 0.616541 0.375000
vt 0.631579 0.333333
vt 0.631579 0.458333
vt 0.646617 0.458333
vt 0.691729 0.458333
vt 0.684211 0.333333
vt 0.646617 0.333333
vt 0.518797 0.333333
vt 0.496241 0.125000
vt 0.518797 0.125000
vt 0.669173 0.333333
vt 0.669173 0.375000
vt 0.646617 0.375000
vt 0.699248 0.458333
vt 0.654135 0.375000
vt 0.571429 0.500000
vt 0.586466 0.416667
vt 0.586466 0.500000
vt 0.616541 0.458333
vt 0.518797 0.458333
vt 0.496241 0.375000
vt 0.518797 0.375000
vt 0.699248 0.375000
vt 0.691729 0.375000
vt 0.496241 0.458333
vt 0.496241 0.333333
vt 0.548872 0.416667
vt 0.571429 0.416667
vt 0.548872 0.500000
vt 0.571429 0.541667
vt 0.548872 0.541667
vt 0.548872 0.375000
vt 0.571429 0.375000
vt 0.759399 0.583333
vt 0.751880 0.500000
vt 0.759399 0.500000
vt 0.751880 0.583333
vt 0.744361 0.500000
vt 0.744361 0.583333
vt 0.736842 0.500000
vt 0.766917 0.583333
vt 0.766917 0.500000
vt 0.691729 0.229167
vt 0.766917 0.208333
vt 0.766917 0.229167
vt 0.766917 0.166667
vt 0.691729 0.187500
vt 0.691729 0.166667
vt 0.766917 0.145833
vt 0.691729 0.145833
vt 0.766917 0.187500
vt 0.691729 0.208333
vt 0.766917 0.687500
vt 0.691729 0.666667
vt 0.766917 0.666667
vt 0.691729 0.625000
vt 0.766917 0.645833
vt 0.691729 0.645833
vt 0.691729 0.604167
vt 0.766917 0.625000
vt 0.646617 0.770833
vt 0.631579 0.750000
vt 0.631579 0.770833
vt 0.541353 0.770833
vt 0.526316 0.750000
vt 0.774436 0.770833
vt 0.684211 0.770833
vt 0.789474 0.770833
vt 0.909774 0.729167
vt 0.909774 0.645833
vt 0.909774 0.729167
vt 0.909774 0.645833
vt 0.924812 0.666667
vt 0.894737 0.666667
vt 0.466165 0.708333
vt 0.458647 0.187500
vt 0.496241 0.708333
vt 0.368421 0.208333
vt 0.736842 0.583333
vt 0.691729 0.687500
vt 0.766917 0.604167
vt 0.526316 0.770833
vt 0.669173 0.770833
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn 0.0000 -0.7071 -0.7071
s off
f 3/1/1 2/2/1 1/3/1
f 6/4/1 7/5/1 5/6/1
f 10/7/2 11/8/2 9/9/2
f 15/10/2 14/11/2 13/12/2
f 19/13/1 18/14/1 17/15/1
f 22/16/2 23/17/2 21/18/2
f 27/19/2 34/20/2 33/21/2
f 31/22/3 28/23/3 27/19/3
f 29/24/1 38/25/1 40/26/1
f 25/27/4 30/28/4 29/24/4
f 25/29/5 40/26/5 37/30/5
f 44/31/1 38/25/1 30/28/1
f 43/32/3 39/33/3 38/34/3
f 33/35/5 31/22/5 27/36/5
f 35/37/1 32/38/1 31/22/1
f 33/21/2 39/39/2 37/40/2
f 37/40/2 26/41/2 25/42/2
f 38/43/6 34/44/6 36/45/6
f 37/30/5 35/37/5 33/35/5
f 40/26/1 36/46/1 35/37/1
f 52/47/1 42/48/1 54/49/1
f 53/50/2 45/51/2 46/52/2
f 54/49/1 57/53/1 59/54/1
f 41/55/2 72/56/2 58/57/2
f 46/52/2 26/41/2 39/39/2
f 45/58/4 30/28/4 26/59/4
f 55/60/4 59/61/4 72/62/4
f 42/48/3 58/57/3 57/53/3
f 50/63/1 43/64/1 44/31/1
f 47/65/2 55/66/2 41/55/2
f 52/47/1 43/64/1 49/67/1
f 54/68/5 46/69/5 43/70/5
f 51/71/4 44/31/4 45/58/4
f 48/72/3 41/55/3 42/48/3
f 55/66/2 53/50/2 46/52/2
f 57/53/3 77/73/3 66/74/3
f 63/75/2 71/76/2 76/77/2
f 58/57/2 67/78/2 68/79/2
f 59/54/1 66/74/1 69/80/1
f 75/81/1 32/38/1 36/46/1
f 60/82/2 34/20/2 28/23/2
f 76/83/4 36/84/4 34/85/4
f 61/86/3 28/23/3 32/38/3
f 75/81/1 62/87/1 61/86/1
f 64/88/2 76/77/2 60/82/2
f 69/80/1 73/89/1 59/54/1
f 61/86/3 80/90/3 60/82/3
f 78/91/3 65/92/3 69/93/3
f 68/79/2 63/75/2 64/88/2
f 70/94/2 63/75/2 67/78/2
f 77/73/3 64/88/3 80/90/3
f 70/95/4 74/96/4 71/97/4
f 74/98/1 69/80/1 65/99/1
f 75/81/1 74/98/1 65/99/1
f 72/56/2 70/94/2 67/78/2
f 73/100/7 72/62/7 59/61/7
f 75/101/8 71/97/8 74/96/8
f 78/91/1 80/102/1 79/103/1
f 77/104/5 69/105/5 66/106/5
f 79/103/6 62/107/6 65/108/6
f 82/109/1 83/110/1 81/111/1
f 84/112/3 87/113/3 83/110/3
f 88/114/2 85/115/2 87/113/2
f 86/116/4 81/111/4 85/117/4
f 91/118/2 90/119/2 89/120/2
f 93/121/1 96/122/1 95/123/1
f 89/124/5 95/123/5 91/125/5
f 94/126/6 92/127/6 96/122/6
f 98/128/2 99/129/2 97/130/2
f 104/131/1 101/132/1 103/133/1
f 103/133/6 97/130/6 99/129/6
f 100/134/5 102/135/5 104/131/5
f 105/136/6 56/137/6 47/65/6
f 108/138/6 53/50/6 56/137/6
f 107/139/6 51/140/6 53/50/6
f 110/141/6 52/47/6 49/67/6
f 112/142/6 48/72/6 52/47/6
f 111/143/6 49/67/6 50/63/6
f 58/57/3 68/79/3 77/73/3
f 80/90/3 64/88/3 60/82/3
f 3/1/1 4/144/1 2/2/1
f 6/4/1 8/145/1 7/5/1
f 10/7/2 12/146/2 11/8/2
f 15/10/2 16/147/2 14/11/2
f 19/13/1 20/148/1 18/14/1
f 22/16/2 24/149/2 23/17/2
f 27/19/2 28/23/2 34/20/2
f 31/22/3 32/38/3 28/23/3
f 29/24/1 30/28/1 38/25/1
f 25/27/4 26/59/4 30/28/4
f 25/29/5 29/24/5 40/26/5
f 44/31/1 43/64/1 38/25/1
f 43/32/3 46/150/3 39/33/3
f 33/35/5 35/37/5 31/22/5
f 35/37/1 36/46/1 32/38/1
f 33/21/2 34/20/2 39/39/2
f 37/40/2 39/39/2 26/41/2
f 38/43/6 39/151/6 34/44/6
f 37/30/5 40/26/5 35/37/5
f 40/26/1 38/25/1 36/46/1
f 52/47/1 48/72/1 42/48/1
f 53/50/2 51/140/2 45/51/2
f 54/49/1 42/48/1 57/53/1
f 41/55/2 55/66/2 72/56/2
f 46/52/2 45/51/2 26/41/2
f 45/58/4 44/31/4 30/28/4
f 55/60/4 54/152/4 59/61/4
f 42/48/3 41/55/3 58/57/3
f 50/63/1 49/67/1 43/64/1
f 47/65/2 56/137/2 55/66/2
f 52/47/1 54/49/1 43/64/1
f 54/68/5 55/153/5 46/69/5
f 51/71/4 50/63/4 44/31/4
f 48/72/3 47/65/3 41/55/3
f 55/66/2 56/137/2 53/50/2
f 57/53/3 58/57/3 77/73/3
f 58/57/2 72/56/2 67/78/2
f 59/54/1 57/53/1 66/74/1
f 75/81/1 61/86/1 32/38/1
f 60/82/2 76/77/2 34/20/2
f 76/83/4 75/101/4 36/84/4
f 61/86/3 60/82/3 28/23/3
f 75/81/1 65/99/1 62/87/1
f 64/88/2 63/75/2 76/77/2
f 61/86/3 62/87/3 80/90/3
f 78/91/3 79/103/3 65/92/3
f 68/79/2 67/78/2 63/75/2
f 70/94/2 71/76/2 63/75/2
f 77/73/3 68/79/3 64/88/3
f 70/95/4 73/100/4 74/96/4
f 74/98/1 73/89/1 69/80/1
f 73/100/7 70/95/7 72/62/7
f 75/101/8 76/83/8 71/97/8
f 78/91/1 77/104/1 80/102/1
f 77/104/5 78/91/5 69/105/5
f 79/103/6 80/102/6 62/107/6
f 82/109/1 84/112/1 83/110/1
f 84/112/3 88/114/3 87/113/3
f 88/114/2 86/154/2 85/115/2
f 86/116/4 82/109/4 81/111/4
f 91/118/2 92/127/2 90/119/2
f 93/121/1 94/126/1 96/122/1
f 89/124/5 93/121/5 95/123/5
f 94/126/6 90/119/6 92/127/6
f 98/128/2 100/155/2 99/129/2
f 104/131/1 102/135/1 101/132/1
f 103/133/6 101/132/6 97/130/6
f 100/134/5 98/156/5 102/135/5
f 105/136/6 108/138/6 56/137/6
f 108/138/6 107/139/6 53/50/6
f 107/139/6 106/157/6 51/140/6
f 110/141/6 112/142/6 52/47/6
f 112/142/6 109/158/6 48/72/6
f 111/143/6 110/141/6 49/67/6
o Frame
v -0.187500 0.000000 1.812500
v -0.187500 0.062500 1.812500
v -0.187500 0.000000 -1.812500
v -0.187500 0.062500 -1.812500
v -0.125000 0.000000 1.812500
v -0.125000 0.062500 1.812500
v -0.125000 0.000000 -1.812500
v -0.125000 0.062500 -1.812500
v -0.187500 2.000000 1.812500
v -0.187500 1.937500 1.812500
v -0.187500 2.000000 -1.812500
v -0.187500 1.937500 -1.812500
v -0.125000 2.000000 1.812500
v -0.125000 1.937500 1.812500
v -0.125000 2.000000 -1.812500
v -0.125000 1.937500 -1.812500
vt 0.015038 0.937500
vt 0.451128 0.958333
vt 0.015038 0.958333
vt 0.451128 0.937500
vt 0.458647 0.916667
vt 0.458647 0.937500
vt 0.451128 0.916667
vt 0.015038 0.895833
vt 0.451128 0.895833
vt 0.015038 0.916667
vt 0.007519 0.937500
vt 0.007519 0.916667
vt 0.451128 0.979167
vt 0.451128 0.854167
vt 0.015038 0.833333
vt 0.015038 0.854167
vt 0.458647 0.812500
vt 0.451128 0.833333
vt 0.458647 0.833333
vt 0.015038 0.791667
vt 0.451128 0.812500
vt 0.451128 0.791667
vt 0.007519 0.833333
vt 0.015038 0.812500
vt 0.007519 0.812500
vt 0.451128 0.875000
vt 0.015038 0.979167
vt 0.015038 0.875000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 114/159/9 115/160/9 113/161/9
f 116/162/10 119/163/10 115/164/10
f 120/165/11 117/166/11 119/167/11
f 118/168/12 113/169/12 117/170/12
f 119/171/13 113/161/13 115/160/13
f 116/162/14 118/168/14 120/165/14
f 123/172/9 122/173/9 121/174/9
f 127/175/10 124/176/10 123/177/10
f 125/178/11 128/179/11 127/180/11
f 121/181/12 126/182/12 125/183/12
f 121/174/14 127/184/14 123/172/14
f 126/182/13 124/176/13 128/179/13
f 114/159/9 116/162/9 115/160/9
f 116/162/10 120/165/10 119/163/10
f 120/165/11 118/168/11 117/166/11
f 118/168/12 114/159/12 113/169/12
f 119/171/13 117/185/13 113/161/13
f 116/162/14 114/159/14 118/168/14
f 123/172/9 124/176/9 122/173/9
f 127/175/10 128/179/10 124/176/10
f 125/178/11 126/182/11 128/179/11
f 121/181/12 122/173/12 126/182/12
f 121/174/14 125/186/14 127/184/14
f 126/182/13 122/173/13 124/176/13
o Left
v -0.125000 0.937500 -0.187500
v -0.125000 1.062500 -0.187500
v -0.125000 0.937500 0.187500
v -0.125000 1.062500 0.187500
v -0.187500 0.937500 -0.187500
v -0.187500 1.062500 -0.187500
v -0.187500 0.937500 0.187500
v -0.187500 1.062500 0.187500
v -0.250000 0.000000 1.000000
v -0.250000 0.125000 1.000000
v -0.250000 0.000000 0.000000
v -0.250000 0.125000 0.000000
v -0.062500 0.000000 1.000000
v -0.062500 0.125000 1.000000
v -0.062500 0.000000 0.000000
v -0.062500 0.125000 0.000000
v -0.250000 0.000000 0.125000
v -0.250000 0.125000 0.125000
v -0.062500 0.000000 0.125000
v -0.062500 0.125000 0.125000
v -0.250000 0.000000 0.875000
v -0.062500 0.125000 0.875000
v -0.250000 0.125000 0.875000
v -0.062500 0.000000 0.875000
v -0.250000 1.875000 0.000000
v -0.062500 1.875000 0.000000
v -0.062500 1.875000 0.875000
v -0.062500 1.875000 1.000000
v -0.250000 1.875000 1.000000
v -0.250000 1.875000 0.875000
v -0.250000 2.000000 0.000000
v -0.062500 2.000000 0.000000
v -0.062500 2.000000 0.875000
v -0.062500 2.000000 1.000000
v -0.250000 2.000000 1.000000
v -0.062500 2.000000 0.125000
v -0.250000 2.000000 0.875000
v -0.062500 1.875000 0.125000
v -0.250000 1.875000 0.125000
v -0.250000 2.000000 0.125000
v -0.062500 1.250000 0.000000
v -0.250000 1.250000 0.000000
v -0.062500 1.250000 0.125000
v -0.250000 0.750000 0.000000
v -0.062500 0.750000 0.000000
v -0.062500 0.875000 0.000000
v -0.250000 0.875000 0.125000
v -0.250000 0.875000 0.000000
v -0.062500 0.875000 0.187500
v -0.062500 1.125000 0.000000
v -0.250000 1.125000 0.125000
v -0.250000 1.125000 0.000000
v -0.062500 1.125000 0.187500
v -0.250000 1.125000 0.250000
v -0.250000 0.875000 0.250000
v -0.250000 1.250000 0.125000
v -0.062500 1.125000 0.250000
v -0.062500 0.875000 0.250000
v -0.062500 0.750000 0.125000
v -0.250000 0.750000 0.125000
v -0.187500 1.125000 0.000000
v -0.187500 1.125000 0.187500
v -0.187500 0.875000 0.187500
v -0.187500 0.875000 0.000000
v -0.062500 0.875000 0.125000
v -0.062500 1.125000 0.125000
v -0.062500 0.875000 0.062500
v -0.062500 1.125000 0.062500
v -0.125000 0.875000 0.125000
v -0.125000 1.125000 0.125000
v -0.125000 0.875000 0.062500
v -0.125000 1.125000 0.062500
v -0.187500 1.062500 0.875000
v -0.187500 1.125000 0.875000
v -0.187500 1.062500 0.250000
v -0.187500 1.125000 0.250000
v -0.125000 1.062500 0.875000
v -0.125000 1.125000 0.875000
v -0.125000 1.062500 0.250000
v -0.125000 1.125000 0.250000
v -0.187500 0.937500 0.875000
v -0.187500 0.875000 0.875000
v -0.187500 0.937500 0.250000
v -0.187500 0.875000 0.250000
v -0.125000 0.937500 0.875000
v -0.125000 0.875000 0.875000
v -0.125000 0.937500 0.250000
v -0.125000 0.875000 0.250000
v -0.187500 2.000000 0.000000
v -0.187500 2.000000 1.000000
v -0.187500 2.000000 0.875000
v -0.187500 2.000000 0.125000
v -0.125000 2.000000 0.000000
v -0.125000 2.000000 0.875000
v -0.125000 2.000000 1.000000
v -0.125000 2.000000 0.125000
v -0.125000 1.875000 0.875000
v -0.125000 1.125000 0.875000
v -0.125000 1.875000 0.125000
v -0.125000 1.125000 0.125000
v -0.125000 0.125000 0.875000
v -0.125000 0.875000 0.875000
v -0.125000 0.125000 0.125000
v -0.125000 0.875000 0.125000
v -0.187500 1.875000 0.875000
v -0.187500 1.125000 0.875000
v -0.187500 1.875000 0.125000
v -0.187500 1.125000 0.125000
v -0.187500 0.125000 0.875000
v -0.187500 0.875000 0.875000
v -0.187500 0.125000 0.125000
v -0.187500 0.875000 0.125000
v -0.125000 1.062500 0.875000
v -0.125000 0.937500 0.875000
v -0.125000 1.062500 0.250000
v -0.125000 0.937500 0.250000
v -0.187500 1.062500 0.875000
v -0.187500 0.937500 0.875000
v -0.187500 1.062500 0.250000
v -0.187500 0.937500 0.250000
vt 0.593985 0.625000
vt 0.548872 0.583333
vt 0.593985 0.583333
vt 0.548872 0.645833
vt 0.593985 0.687500
vt 0.548872 0.687500
vt 0.601504 0.625000
vt 0.601504 0.583333
vt 0.548872 0.562500
vt 0.548872 0.625000
vt 0.593985 0.645833
vt 0.187970 0.125000
vt 0.172932 0.083333
vt 0.187970 0.083333
vt 0.172932 0.125000
vt 0.150376 0.083333
vt 0.045113 0.125000
vt 0.030075 0.083333
vt 0.045113 0.083333
vt 0.030075 0.125000
vt 0.007519 0.083333
vt 0.045113 0.020833
vt 0.030075 0.020833
vt 0.030075 0.708333
vt 0.353383 0.125000
vt 0.330827 0.708333
vt 0.330827 0.125000
vt 0.135338 0.020833
vt 0.150376 0.020833
vt 0.150376 0.125000
vt 0.135338 0.083333
vt 0.278196 0.125000
vt 0.278196 0.083333
vt 0.293233 0.125000
vt 0.293233 0.083333
vt 0.458647 0.625000
vt 0.368421 0.562500
vt 0.458647 0.562500
vt 0.135338 0.125000
vt 0.150376 0.708333
vt 0.135338 0.750000
vt 0.135338 0.708333
vt 0.293233 0.708333
vt 0.278196 0.750000
vt 0.278196 0.708333
vt 0.150376 0.500000
vt 0.135338 0.500000
vt 0.187970 0.500000
vt 0.172932 0.708333
vt 0.172932 0.500000
vt 0.007519 0.708333
vt 0.007519 0.125000
vt 0.323308 0.500000
vt 0.300752 0.708333
vt 0.300752 0.500000
vt 0.045113 0.708333
vt 0.030075 0.750000
vt 0.187970 0.708333
vt 0.172932 0.750000
vt 0.045113 0.750000
vt 0.368421 0.645833
vt 0.458647 0.708333
vt 0.368421 0.708333
vt 0.007519 0.750000
vt 0.150376 0.750000
vt 0.165414 0.458333
vt 0.150376 0.458333
vt 0.187970 0.375000
vt 0.187970 0.333333
vt 0.203008 0.375000
vt 0.187970 0.458333
vt 0.172932 0.458333
vt 0.127820 0.458333
vt 0.135338 0.333333
vt 0.172932 0.333333
vt 0.323308 0.125000
vt 0.300752 0.333333
vt 0.300752 0.125000
vt 0.150376 0.333333
vt 0.150376 0.375000
vt 0.127820 0.375000
vt 0.172932 0.375000
vt 0.120301 0.458333
vt 0.165414 0.375000
vt 0.195489 0.562500
vt 0.210526 0.645833
vt 0.195489 0.645833
vt 0.203008 0.458333
vt 0.323308 0.375000
vt 0.300752 0.458333
vt 0.300752 0.375000
vt 0.120301 0.375000
vt 0.323308 0.458333
vt 0.323308 0.333333
vt 0.233083 0.562500
vt 0.210526 0.562500
vt 0.210526 0.687500
vt 0.233083 0.645833
vt 0.233083 0.687500
vt 0.233083 0.520833
vt 0.210526 0.520833
vt 0.067669 0.500000
vt 0.060150 0.583333
vt 0.060150 0.500000
vt 0.075188 0.500000
vt 0.067669 0.583333
vt 0.082707 0.500000
vt 0.075188 0.583333
vt 0.052632 0.583333
vt 0.052632 0.500000
vt 0.052632 0.208333
vt 0.127820 0.229167
vt 0.052632 0.229167
vt 0.127820 0.187500
vt 0.052632 0.166667
vt 0.127820 0.166667
vt 0.127820 0.145833
vt 0.052632 0.145833
vt 0.127820 0.208333
vt 0.052632 0.187500
vt 0.127820 0.666667
vt 0.052632 0.687500
vt 0.052632 0.666667
vt 0.052632 0.645833
vt 0.127820 0.625000
vt 0.127820 0.645833
vt 0.052632 0.625000
vt 0.127820 0.604167
vt 0.187970 0.770833
vt 0.172932 0.770833
vt 0.187970 0.750000
vt 0.293233 0.770833
vt 0.278196 0.770833
vt 0.135338 0.770833
vt 0.045113 0.770833
vt 0.030075 0.770833
vt 0.819549 0.729167
vt 0.909774 0.979167
vt 0.819549 0.979167
vt 0.909774 0.395833
vt 0.819549 0.645833
vt 0.819549 0.395833
vt 0.909774 0.979167
vt 1.000000 0.729167
vt 1.000000 0.979167
vt 1.000000 0.645833
vt 0.909774 0.395833
vt 1.000000 0.395833
vt 0.819549 0.666667
vt 0.894737 0.708333
vt 0.819549 0.708333
vt 0.924812 0.708333
vt 1.000000 0.666667
vt 1.000000 0.708333
vt 0.593985 0.562500
vt 0.353383 0.708333
vt 0.368421 0.625000
vt 0.293233 0.750000
vt 0.323308 0.708333
vt 0.458647 0.645833
vt 0.082707 0.583333
vt 0.127820 0.687500
vt 0.052632 0.604167
vt 0.150376 0.770833
vt 0.909774 0.729167
vt 0.909774 0.645833
vt 0.909774 0.729167
vt 0.909774 0.645833
vt 0.894737 0.666667
vt 0.924812 0.666667
vn 1.0000 0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.7071 0.7071
vn 0.0000 -0.7071 0.7071
s off
f 130/187/15 131/188/15 129/189/15
f 136/190/16 133/191/16 135/192/16
f 134/193/17 129/189/17 133/194/17
f 135/195/18 129/189/18 131/188/18
f 132/196/19 134/197/19 136/190/19
f 146/198/16 139/199/16 145/200/16
f 140/201/17 143/202/17 139/199/17
f 150/203/15 141/204/15 152/205/15
f 142/206/20 137/207/20 141/204/20
f 149/208/18 141/204/18 137/209/18
f 150/203/15 156/210/15 142/206/15
f 151/211/17 155/212/17 150/213/17
f 143/202/18 145/214/18 139/215/18
f 144/216/15 147/217/15 143/202/15
f 151/218/16 145/200/16 149/219/16
f 138/220/16 149/219/16 137/221/16
f 146/222/19 150/223/19 148/224/19
f 147/217/18 149/208/18 145/214/18
f 148/225/15 152/205/15 147/217/15
f 154/226/15 164/227/15 166/228/15
f 157/229/16 165/230/16 158/231/16
f 169/232/15 166/228/15 171/233/15
f 184/234/16 153/235/16 170/236/16
f 138/220/16 158/231/16 151/218/16
f 142/206/20 157/237/20 138/238/20
f 171/239/20 167/240/20 184/241/20
f 170/236/17 154/226/17 169/232/17
f 155/242/15 162/243/15 156/210/15
f 167/244/16 159/245/16 153/235/16
f 155/242/15 164/227/15 161/246/15
f 158/247/18 166/248/18 155/249/18
f 156/210/20 163/250/20 157/237/20
f 153/235/17 160/251/17 154/226/17
f 165/230/16 167/244/16 158/231/16
f 189/252/17 169/232/17 178/253/17
f 175/254/16 188/255/16 183/256/16
f 179/257/16 170/236/16 180/258/16
f 178/253/15 171/233/15 181/259/15
f 144/216/15 187/260/15 148/225/15
f 146/198/16 172/261/16 140/201/16
f 148/262/20 188/263/20 146/264/20
f 140/201/17 173/265/17 144/216/17
f 187/260/15 174/266/15 177/267/15
f 188/255/16 176/268/16 172/261/16
f 181/259/15 171/233/15 185/269/15
f 173/265/17 192/270/17 174/266/17
f 177/271/17 190/272/17 181/273/17
f 175/254/16 180/258/16 176/268/16
f 175/254/16 182/274/16 179/257/16
f 176/268/17 189/252/17 192/270/17
f 186/275/20 182/276/20 183/277/20
f 181/259/15 186/278/15 177/267/15
f 187/260/15 177/267/15 186/278/15
f 184/234/16 179/257/16 182/274/16
f 184/241/21 185/279/21 171/239/21
f 183/277/22 187/280/22 186/275/22
f 192/281/15 190/272/15 191/282/15
f 181/283/18 189/284/18 178/285/18
f 174/286/19 191/282/19 177/287/19
f 195/288/15 194/289/15 193/290/15
f 199/291/17 196/292/17 195/288/17
f 197/293/16 200/294/16 199/291/16
f 193/290/20 198/295/20 197/296/20
f 202/297/16 203/298/16 201/299/16
f 208/300/15 205/301/15 207/302/15
f 203/303/18 205/301/18 201/304/18
f 204/305/19 206/306/19 208/300/19
f 211/307/16 210/308/16 209/309/16
f 213/310/15 216/311/15 215/312/15
f 211/307/19 213/310/19 215/312/19
f 214/313/18 212/314/18 216/311/18
f 159/245/19 220/315/19 217/316/19
f 165/230/19 220/315/19 168/317/19
f 165/230/19 218/318/19 219/319/19
f 161/246/19 224/320/19 222/321/19
f 160/251/19 224/320/19 164/227/19
f 162/243/19 222/321/19 223/322/19
f 170/236/17 189/252/17 180/258/17
f 192/270/17 172/261/17 176/268/17
f 226/323/15 227/324/15 225/325/15
f 231/326/15 230/327/15 229/328/15
f 235/329/16 234/330/16 233/331/16
f 238/332/16 239/333/16 237/334/16
f 242/335/15 243/336/15 241/337/15
f 247/338/16 246/339/16 245/340/16
f 130/187/15 132/196/15 131/188/15
f 136/190/16 134/197/16 133/191/16
f 134/193/17 130/187/17 129/189/17
f 135/195/18 133/341/18 129/189/18
f 132/196/19 130/187/19 134/197/19
f 146/198/16 140/201/16 139/199/16
f 140/201/17 144/216/17 143/202/17
f 150/203/15 142/206/15 141/204/15
f 142/206/20 138/238/20 137/207/20
f 149/208/18 152/205/18 141/204/18
f 150/203/15 155/242/15 156/210/15
f 151/211/17 158/342/17 155/212/17
f 143/202/18 147/217/18 145/214/18
f 144/216/15 148/225/15 147/217/15
f 151/218/16 146/198/16 145/200/16
f 138/220/16 151/218/16 149/219/16
f 146/222/19 151/343/19 150/223/19
f 147/217/18 152/205/18 149/208/18
f 148/225/15 150/203/15 152/205/15
f 154/226/15 160/251/15 164/227/15
f 157/229/16 163/344/16 165/230/16
f 169/232/15 154/226/15 166/228/15
f 184/234/16 167/244/16 153/235/16
f 138/220/16 157/229/16 158/231/16
f 142/206/20 156/210/20 157/237/20
f 171/239/20 166/345/20 167/240/20
f 170/236/17 153/235/17 154/226/17
f 155/242/15 161/246/15 162/243/15
f 167/244/16 168/317/16 159/245/16
f 155/242/15 166/228/15 164/227/15
f 158/247/18 167/346/18 166/248/18
f 156/210/20 162/243/20 163/250/20
f 153/235/17 159/245/17 160/251/17
f 165/230/16 168/317/16 167/244/16
f 189/252/17 170/236/17 169/232/17
f 179/257/16 184/234/16 170/236/16
f 178/253/15 169/232/15 171/233/15
f 144/216/15 173/265/15 187/260/15
f 146/198/16 188/255/16 172/261/16
f 148/262/20 187/280/20 188/263/20
f 140/201/17 172/261/17 173/265/17
f 187/260/15 173/265/15 174/266/15
f 188/255/16 175/254/16 176/268/16
f 173/265/17 172/261/17 192/270/17
f 177/271/17 191/282/17 190/272/17
f 175/254/16 179/257/16 180/258/16
f 175/254/16 183/256/16 182/274/16
f 176/268/17 180/258/17 189/252/17
f 186/275/20 185/279/20 182/276/20
f 181/259/15 185/269/15 186/278/15
f 184/241/21 182/276/21 185/279/21
f 183/277/22 188/263/22 187/280/22
f 192/281/15 189/284/15 190/272/15
f 181/283/18 190/272/18 189/284/18
f 174/286/19 192/281/19 191/282/19
f 195/288/15 196/292/15 194/289/15
f 199/291/17 200/294/17 196/292/17
f 197/293/16 198/347/16 200/294/16
f 193/290/20 194/289/20 198/295/20
f 202/297/16 204/305/16 203/298/16
f 208/300/15 206/306/15 205/301/15
f 203/303/18 207/302/18 205/301/18
f 204/305/19 202/297/19 206/306/19
f 211/307/16 212/348/16 210/308/16
f 213/310/15 214/313/15 216/311/15
f 211/307/19 209/309/19 213/310/19
f 214/313/18 210/349/18 212/314/18
f 159/245/19 168/317/19 220/315/19
f 165/230/19 219/319/19 220/315/19
f 165/230/19 163/344/19 218/318/19
f 161/246/19 164/227/19 224/320/19
f 160/251/19 221/350/19 224/320/19
f 162/243/19 161/246/19 222/321/19
f 226/323/15 228/351/15 227/324/15
f 231/326/15 232/352/15 230/327/15
f 235/329/16 236/353/16 234/330/16
f 238/332/16 240/354/16 239/333/16
f 242/335/15 244/355/15 243/336/15
f 247/338/16 248/356/16 246/339/16

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -294,6 +294,11 @@
"weapon.reload.screw": {"category": "player", "sounds": ["weapon/reload/screw"]}, "weapon.reload.screw": {"category": "player", "sounds": ["weapon/reload/screw"]},
"weapon.foley.gunWhack": {"category": "player", "sounds": ["weapon/foley/gunWhack", "weapon/foley/gunWhack2"]}, "weapon.foley.gunWhack": {"category": "player", "sounds": ["weapon/foley/gunWhack", "weapon/foley/gunWhack2"]},
"weapon.casing.small": {"category": "player", "sounds": ["weapon/casing/small1", "weapon/casing/small2", "weapon/casing/small3"]},
"weapon.casing.medium": {"category": "player", "sounds": ["weapon/casing/medium1", "weapon/casing/medium2", "weapon/casing/medium3"]},
"weapon.casing.large": {"category": "player", "sounds": ["weapon/casing/large1", "weapon/casing/large2", "weapon/casing/large3"]},
"weapon.casing.shell": {"category": "player", "sounds": ["weapon/casing/shell1", "weapon/casing/shell2", "weapon/casing/shell3"]},
"turret.chekhov_fire": {"category": "block", "sounds": [{"name": "turret/chekhov_fire", "stream": false}]}, "turret.chekhov_fire": {"category": "block", "sounds": [{"name": "turret/chekhov_fire", "stream": false}]},
"turret.jeremy_fire": {"category": "block", "sounds": ["turret/jeremy_fire1", "turret/jeremy_fire2", "turret/jeremy_fire3", "turret/jeremy_fire4", "turret/jeremy_fire5"]}, "turret.jeremy_fire": {"category": "block", "sounds": ["turret/jeremy_fire1", "turret/jeremy_fire2", "turret/jeremy_fire3", "turret/jeremy_fire4", "turret/jeremy_fire5"]},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Some files were not shown because too many files have changed in this diff Show More