Merge branch 'HbmMods:master' into forestchem

This commit is contained in:
Lazzzycat 2025-05-11 19:45:39 +02:00 committed by GitHub
commit b95e9b6e80
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
50 changed files with 3916 additions and 968 deletions

View File

@ -12,6 +12,7 @@
* This means that reading the fill state of multiple batteries over the same channel should result the combined fill state of all batteries
* Halved base spread of the .22 SMG
* Certain secret guns now have a proper way of being obtained
* Demolition mini nukes now create fire again
## Fixed
* Fixed RoR controller having the wrong recipe

View File

@ -335,7 +335,7 @@ public class ModBlocks {
public static Block brick_compound;
public static Block brick_asbestos;
public static Block brick_fire;
public static Block lightstone;
public static Block concrete_slab;
@ -824,7 +824,7 @@ public class ModBlocks {
public static Block drone_dock;
public static Block drone_crate_provider;
public static Block drone_crate_requester;
public static Block pneumatic_tube;
public static Block fan;
@ -1479,7 +1479,7 @@ public class ModBlocks {
gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond");
asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt");
asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light");
sandbags = new BlockSandbags(Material.ground).setBlockName("sandbags").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":sandbags");
wood_barrier = new BlockBarrier(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_barrier").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier");
@ -1549,7 +1549,7 @@ public class ModBlocks {
brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab);
stones_slab = new BlockMultiSlabMeta(null, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_slab").setCreativeTab(MainRegistry.blockTab);
stones_double_slab = new BlockMultiSlabMeta(stones_slab, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_double_slab").setCreativeTab(MainRegistry.blockTab);
concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab);
concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab);
concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab);
@ -1604,7 +1604,7 @@ public class ModBlocks {
brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000);
deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.125F, 0F, 0F, .875F, .875F, .625F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -1749,7 +1749,7 @@ public class ModBlocks {
vitrified_barrel = new YellowBarrel(Material.iron).setBlockName("vitrified_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_vitrified");
lox_barrel = new RedBarrel(Material.iron, false).setBlockName("lox_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_lox");
taint_barrel = new RedBarrel(Material.iron, false).setBlockName("taint_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_taint");
crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire");
crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_rust");
fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F);
charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F);
charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F);
@ -1955,7 +1955,7 @@ public class ModBlocks {
drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock");
drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider");
drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester");
pneumatic_tube = new PneumoTube().setBlockName("pneumatic_tube").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_tube");
chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain");
@ -2698,14 +2698,14 @@ public class ModBlocks {
GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName());
GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName());
//Lightstone and its stair/slab variants
register(lightstone);
register(lightstone_tile_stairs);
register(lightstone_bricks_stairs);
register(stones_slab, ItemModSlab.class);
register(stones_double_slab, ItemModSlab.class);
GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName());
GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName());
GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName());
@ -2892,7 +2892,7 @@ public class ModBlocks {
//Generic Bombs
GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName());
GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName());
register(crashed_balefire);
GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName());
GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName());
GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName());

View File

@ -1,5 +1,6 @@
package com.hbm.blocks.bomb;
import com.hbm.blocks.BlockEnumMulti;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityBalefire;
import com.hbm.handler.threading.PacketThreading;
@ -9,7 +10,7 @@ import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.tileentity.bomb.TileEntityCrashedBomb;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
@ -18,10 +19,14 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class BlockCrashedBomb extends BlockContainer implements IBomb {
public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvider, IBomb {
public static enum EnumDudType {
BALEFIRE, CONVENTIONAL, NUKE, SALTED
}
public BlockCrashedBomb(Material mat) {
super(mat);
super(mat, EnumDudType.class, false, false);
}
@Override

View File

@ -94,6 +94,8 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tau, 1), new Object[] { " RD", "CTT", "GMS", 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'C', CU.pipe(), 'T', ModItems.coil_advanced_torus, 'G', ANY_HARDPLASTIC.grip(), 'R', BIGMT.lightReceiver(), 'M', BIGMT.mechanism(), 'S', ANY_HARDPLASTIC.stock() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lasrifle, 1), new Object[] { "DLC", "BRS", "MG ", 'D', ModItems.crystal_redstone, 'L', DictFrame.fromOne(ModItems.weapon_mod_special, EnumModSpecial.SCOPE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ANY_BISMOIDBRONZE.lightBarrel(), 'R', ANY_BISMOIDBRONZE.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'M', BIGMT.mechanism(), 'G', ANY_HARDPLASTIC.grip() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_double_barrel_sacred_dragon, 1), new Object[] { ModItems.gun_double_barrel, DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', Items.leather });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', ANY_RUBBER.ingot() });
//SEDNA Ammo
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder });

View File

@ -0,0 +1,23 @@
package com.hbm.explosion.vanillant.standard;
import com.hbm.blocks.ModBlocks;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.interfaces.IBlockMutator;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class BlockMutatorBalefire implements IBlockMutator {
@Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { }
@Override
public void mutatePost(ExplosionVNT explosion, int x, int y, int z) {
Block block = explosion.world.getBlock(x, y, z);
Block block1 = explosion.world.getBlock(x, y - 1, z);
if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) {
explosion.world.setBlock(x, y, z, ModBlocks.balefire);
}
}
}

View File

@ -38,16 +38,15 @@ public class CompatHandler {
* @return Object[] array containing an int with the "compression level"
*/
public static Object[] steamTypeToInt(FluidType type) {
switch(type.getID()) {
case(4): // Fluids.HOTSTEAM
return new Object[] {1};
case(5): // Fluids.SUPERHOTSTEAM
return new Object[] {2};
case(6): // Fluids.ULTRAHOTSTEAM
return new Object[] {3};
default:
return new Object[] {0};
}
final int typeId = type.getID();
if(typeId == Fluids.HOTSTEAM.getID()) {
return new Object[]{1};
} else if(typeId == Fluids.SUPERHOTSTEAM.getID()) {
return new Object[]{2};
} else if(typeId == Fluids.ULTRAHOTSTEAM.getID()) {
return new Object[]{3};
}
return new Object[] {0};
}
/**

View File

@ -1,6 +1,7 @@
package com.hbm.handler;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@ -60,22 +61,35 @@ public abstract class ToolAbility {
if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack)
return false;
List<Integer> indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5});
Collections.shuffle(indices);
pos.clear();
for(Integer i : indices) {
switch(i) {
case 0: breakExtra(world, x + 1, y, z, x, y, z, player, tool, 0); break;
case 1: breakExtra(world, x - 1, y, z, x, y, z, player, tool, 0); break;
case 2: breakExtra(world, x, y + 1, z, x, y, z, player, tool, 0); break;
case 3: breakExtra(world, x, y - 1, z, x, y, z, player, tool, 0); break;
case 4: breakExtra(world, x, y, z + 1, x, y, z, player, tool, 0); break;
case 5: breakExtra(world, x, y, z - 1, x, y, z, player, tool, 0); break;
recurse(world, x, y, z, x, y, z, player, tool, 0);
return false;
}
private static final List<ThreeInts> offsets = new ArrayList<>(3*3*3-1);
static {
for (int dx = -1; dx <= 1; dx++) {
for (int dy = -1; dy <= 1; dy++) {
for (int dz = -1; dz <= 1; dz++) {
if (dx != 0 || dy != 0 || dz != 0) {
offsets.add(new ThreeInts(dx, dy, dz));
}
}
}
}
return false;
}
private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) {
List<ThreeInts> shuffledOffsets = new ArrayList<>(offsets);
Collections.shuffle(shuffledOffsets);
for(ThreeInts offset : shuffledOffsets) {
breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth);
}
}
private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) {
@ -112,20 +126,8 @@ public abstract class ToolAbility {
return;
tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ);
List<Integer> indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5});
Collections.shuffle(indices);
for(Integer i : indices) {
switch(i) {
case 0: breakExtra(world, x + 1, y, z, refX, refY, refZ, player, tool, depth); break;
case 1: breakExtra(world, x - 1, y, z, refX, refY, refZ, player, tool, depth); break;
case 2: breakExtra(world, x, y + 1, z, refX, refY, refZ, player, tool, depth); break;
case 3: breakExtra(world, x, y - 1, z, refX, refY, refZ, player, tool, depth); break;
case 4: breakExtra(world, x, y, z + 1, refX, refY, refZ, player, tool, depth); break;
case 5: breakExtra(world, x, y, z - 1, refX, refY, refZ, player, tool, depth); break;
}
}
recurse(world, x, y, z, refX, refY, refZ, player, tool, depth);
}
private boolean isSameBlock(Block b1, Block b2) {

View File

@ -100,7 +100,8 @@ public class GunFactory {
G10, G10_SHRAPNEL, G10_DU, G10_SLUG,
R762_HE, BMG50_HE, G10_EXPLOSIVE,
P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU,
CT_HOOK,
CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE,
NUKE_BALEFIRE,
//ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING!
;
@ -126,8 +127,8 @@ public class GunFactory {
CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR,
TAU_URANIUM,
COIL_TUNGSTEN, COIL_FERROURANIUM,
NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE,
CT_HOOK,
NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, NUKE_BALEFIRE,
CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE,
};
public Enum[] getOrder() {

View File

@ -203,6 +203,7 @@ public class GunFactoryClient {
setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high);
nuke_tots.setRenderer(LegoClient.RENDER_GRENADE);
nuke_hive.setRenderer(LegoClient.RENDER_HIVE);
nuke_balefire.setRenderer(LegoClient.RENDER_NUKE_BALEFIRE);
setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge, energy_tesla_ir);
setRendererBulkBeam(LegoClient.RENDER_LIGHTNING_SUB, energy_tesla_ir_sub);
@ -220,6 +221,8 @@ public class GunFactoryClient {
p35800.setRendererBeam(LegoClient.RENDER_CRACKLE);
ct_hook.setRenderer(LegoClient.RENDER_CT_HOOK);
ct_mortar.setRenderer(LegoClient.RENDER_CT_MORTAR);
ct_mortar_charge.setRenderer(LegoClient.RENDER_CT_MORTAR_CHARGE);
setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots

View File

@ -12,6 +12,7 @@ import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar;
import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.weapon.sedna.ItemRenderFatMan;
import com.hbm.render.tileentity.RenderArcFurnace;
import com.hbm.render.util.BeamPronter;
import com.hbm.render.util.BeamPronter.EnumBeamType;
@ -435,6 +436,18 @@ public class LegoClient {
GL11.glPopMatrix();
};
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_NUKE_BALEFIRE = (bullet, interp) -> {
GL11.glPushMatrix();
GL11.glScalef(0.125F, 0.125F, 0.125F);
GL11.glRotated(-90, 0, 1, 0);
GL11.glTranslatef(0, -1, 1F);
GL11.glShadeModel(GL11.GL_SMOOTH);
ItemRenderFatMan.renderBalefire(interp);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
};
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_HIVE = (bullet, interp) -> {
GL11.glPushMatrix();
@ -576,4 +589,33 @@ public class LegoClient {
tessellator.addVertexWithUV(a - jX, b, c - jZ, wrap, 1);
tessellator.addVertexWithUV(a + jX, b, c + jZ, wrap, 0);
}
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_CT_MORTAR = (bullet, interp) -> {
GL11.glPushMatrix();
GL11.glScalef(0.125F, 0.125F, 0.125F);
GL11.glRotated(90, 0, -1, 0);
GL11.glRotated(180, 0, 0, 1);
GL11.glTranslatef(0, 0, -6F);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
};
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_CT_MORTAR_CHARGE = (bullet, interp) -> {
GL11.glPushMatrix();
GL11.glScalef(0.125F, 0.125F, 0.125F);
GL11.glRotated(90, 0, -1, 0);
GL11.glRotated(180, 0, 0, 1);
GL11.glTranslatef(0, 0, -6F);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
ResourceManager.charge_thrower.renderPart("Oomph");
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
};
}

View File

@ -7,6 +7,7 @@ import com.hbm.items.ModItems;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.Receiver;
import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower;
import com.hbm.items.weapon.sedna.impl.ItemGunStinger;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import com.hbm.items.weapon.sedna.mags.IMagazine;
@ -22,6 +23,7 @@ import com.hbm.util.EntityDamageUtil;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -1419,9 +1421,15 @@ public class Orchestras {
if(entity.worldObj.isRemote) return;
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
if(type == AnimType.CYCLE_DRY) {
Entity e = entity.worldObj.getEntityByID(ItemGunChargeThrower.getLastHook(stack));
if(timer == 0 && e == null) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F);
}
if(type == AnimType.RELOAD) {
if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F);
if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F);
if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 1F);
}
};
}

View File

@ -8,6 +8,8 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5;
import com.hbm.entity.projectile.EntityBulletBaseMK4;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
import com.hbm.explosion.vanillant.standard.BlockMutatorBalefire;
import com.hbm.explosion.vanillant.standard.BlockMutatorFire;
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
@ -44,6 +46,7 @@ public class XFactoryCatapult {
public static BulletConfig nuke_high;
public static BulletConfig nuke_tots;
public static BulletConfig nuke_hive;
public static BulletConfig nuke_balefire;
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_NUKE_STANDARD = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
@ -64,9 +67,9 @@ public class XFactoryCatapult {
if(bullet.isDead) return;
bullet.setDead();
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10);
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15);
vnt.setBlockAllocator(new BlockAllocatorStandard(64));
vnt.setBlockProcessor(new BlockProcessorStandard());
vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorFire()));
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.explode();
@ -83,6 +86,27 @@ public class XFactoryCatapult {
spawnMush(bullet, mop);
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_NUKE_BALEFIRE = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
if(bullet.isDead) return;
bullet.setDead();
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10);
vnt.setBlockAllocator(new BlockAllocatorStandard(64));
vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBalefire()));
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.explode();
incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F);
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
data.setBoolean("balefire", true);
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250));
};
public static void incrementRad(World world, double posX, double posY, double posZ, float mult) {
for(int i = -2; i <= 2; i++) { for(int j = -2; j <= 2; j++) {
if(Math.abs(i) + Math.abs(j) < 4) {
@ -136,12 +160,13 @@ public class XFactoryCatapult {
nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH);
nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setDamage(0.35F).setOnImpact(LAMBDA_NUKE_TINYTOT);
nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.25F).setOnImpact(LAMBDA_NUKE_HIVE);
nuke_balefire = new BulletConfig().setItem(EnumAmmo.NUKE_BALEFIRE).setDamage(2.5F).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_BALEFIRE);
ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
.dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
.dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
.rec(new Receiver(0)
.dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F)
.mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive))
.mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire))
.offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D)
.setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN))
.setupStandardConfiguration()

View File

@ -4,7 +4,16 @@ import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.projectile.EntityBulletBaseMK4;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie;
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
import com.hbm.explosion.vanillant.standard.BlockMutatorDebris;
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
import com.hbm.items.ModItems;
import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.Crosshair;
@ -16,6 +25,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower;
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
import com.hbm.particle.helper.ExplosionCreator;
import com.hbm.render.anim.BusAnimation;
import com.hbm.render.anim.BusAnimationSequence;
import com.hbm.render.anim.BusAnimationKeyframe.IType;
@ -30,6 +40,8 @@ import net.minecraft.util.MovingObjectPosition;
public class XFactoryTool {
public static BulletConfig ct_hook;
public static BulletConfig ct_mortar;
public static BulletConfig ct_mortar_charge;
public static Consumer<Entity> LAMBDA_SET_HOOK = (entity) -> {
EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity;
@ -49,17 +61,43 @@ public class XFactoryTool {
bullet.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit);
}
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_MORTAR = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5, bullet.getThrower());
vnt.setBlockAllocator(new BlockAllocatorBulkie(60, 8));
vnt.setBlockProcessor(new BlockProcessorStandard());
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
vnt.explode();
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_MORTAR_CHARGE = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, bullet.getThrower());
vnt.setBlockAllocator(new BlockAllocatorStandard());
vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1)));
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
ExplosionCreator.composeEffectSmall(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord);
vnt.explode();
};
public static void init() {
ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(1200).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false)
ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false)
.setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK);
ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(3F).setGrav(0.035D)
.setOnImpact(LAMBDA_MORTAR);
ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(3F).setGrav(0.035D)
.setOnImpact(LAMBDA_MORTAR_CHARGE);
ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig()
.dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX)
.rec(new Receiver(0)
.dmg(5F).delay(4).dry(40).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F)
.mag(new MagazineFullReload(0, 1).addConfigs(ct_hook))
.dmg(5F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F)
.mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge))
.offset(1, -0.0625 * 2.5, -0.25D)
.setupStandardFire().recoil(LAMBDA_RECOIL_CT))
.setupStandardConfiguration()
@ -74,19 +112,13 @@ public class XFactoryTool {
@SuppressWarnings("incomplete-switch") public static BiFunction<ItemStack, AnimType, BusAnimation> LAMBDA_CT_ANIMS = (stack, type) -> {
switch(type) {
case EQUIP: return new BusAnimation()
.addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN));
.addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN));
case CYCLE: return new BusAnimation()
.addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250))
.addBus("HAMMER", new BusAnimationSequence().addPos(15, 0, 0, 50).addPos(15, 0, 0, 550).addPos(0, 0, 0, 100));
.addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL));
case RELOAD: return new BusAnimation()
.addBus("OPEN", new BusAnimationSequence().addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 750).addPos(0, 0, 0, 200, IType.SIN_UP))
.addBus("SHELL", new BusAnimationSequence().addPos(4, -8, -4, 0).addPos(4, -8, -4, 200).addPos(0, 0, -5, 500, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP))
.addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 800).addPos(0, 0, 0, 200, IType.SIN_DOWN));
case JAMMED: return new BusAnimation()
.addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(0, 0, 0, 200, IType.SIN_UP))
.addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 550).addPos(0, 0, 0, 200, IType.SIN_DOWN));
case INSPECT: return new BusAnimation()
.addBus("FLIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 1500, IType.SIN_FULL));
.addBus("RAISE", new BusAnimationSequence().addPos(-45, 0, 0, 500, IType.SIN_FULL).hold(2000).addPos(0, 0, 0, 500, IType.SIN_FULL))
.addBus("AMMO", new BusAnimationSequence().setPos(0, -10, -5).hold(500).addPos(0, 0, 5, 750, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP).hold(4000))
.addBus("TWIST", new BusAnimationSequence().setPos(0, 0, 25).hold(2000).addPos(0, 0, 0, 150));
}
return null;

View File

@ -299,8 +299,8 @@ public class HbmWorldGen implements IWorldGenerator {
}
if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) {
int x = i + rand.nextInt(16);
int z = j + rand.nextInt(16);
int x = i + 8 + rand.nextInt(16);
int z = j + 8 + rand.nextInt(16);
int y = world.getHeightValue(x, z);
new Dud().generate(world, rand, x, y, z);

View File

@ -279,6 +279,9 @@ public class ResourceManager {
public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj"));
public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO();
public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO();
public static final IModelCustom dud_conventional = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_conventional.obj")).asVBO();
public static final IModelCustom dud_nuke = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_nuke.obj")).asVBO();
public static final IModelCustom dud_salted = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_salted.obj")).asVBO();
//Satellites
public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj"));
@ -731,6 +734,9 @@ public class ResourceManager {
public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png");
public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png");
public static final ResourceLocation dud_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_balefire.png");
public static final ResourceLocation dud_conventional_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_conventional.png");
public static final ResourceLocation dud_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_nuke.png");
public static final ResourceLocation dud_salted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_salted.png");
//Satellites
public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png");
@ -1005,6 +1011,7 @@ public class ResourceManager {
public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png");
public static final ResourceLocation fatman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman.png");
public static final ResourceLocation fatman_mininuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_mininuke.png");
public static final ResourceLocation fatman_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_balefire.png");
public static final ResourceLocation lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png");
public static final ResourceLocation lasrifle_mods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle_mods.png");
public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png");

View File

@ -7,6 +7,7 @@ import com.hbm.items.weapon.sedna.factory.XFactoryTool;
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
@ -51,21 +52,47 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase {
double scale = 0.5D;
GL11.glScaled(scale, scale, scale);
}
boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("AMMO") != null;
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP");
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
double[] raise = HbmAnimations.getRelevantTransformation("RAISE");
double[] ammo = HbmAnimations.getRelevantTransformation("AMMO");
double[] twist = HbmAnimations.getRelevantTransformation("TWIST");
GL11.glTranslated(0, 0, -7);
GL11.glRotated(equip[0], -1, 0, 0);
GL11.glTranslated(0, 0, 7);
GL11.glTranslated(0, -7, 4);
GL11.glRotated(raise[0], 1, 0, 0);
GL11.glTranslated(0, 7, -4);
GL11.glTranslated(recoil[0], recoil[1], recoil[2]);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_tex);
ResourceManager.charge_thrower.renderPart("Gun");
if(isScoped(stack) && !usingScope) ResourceManager.charge_thrower.renderPart("Scope");
if(mag.getAmount(stack, null) > 0) {
if(mag.getAmount(stack, null) > 0 || reloading) {
GL11.glTranslated(ammo[0], ammo[1], ammo[2]);
GL11.glRotated(twist[2], 0, 0, 1);
if(mag.getType(stack, null) == XFactoryTool.ct_hook) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex);
ResourceManager.charge_thrower.renderPart("Hook");
}
//Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
//ResourceManager.charge_thrower.renderPart("Mortar");
//ResourceManager.charge_thrower.renderPart("Oomph");
if(mag.getType(stack, null) == XFactoryTool.ct_mortar) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
}
if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
ResourceManager.charge_thrower.renderPart("Oomph");
}
//Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_rocket_tex);
//ResourceManager.charge_thrower.renderPart("Rocket");
}
@ -117,6 +144,15 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex);
ResourceManager.charge_thrower.renderPart("Hook");
}
if(mag.getType(stack, null) == XFactoryTool.ct_mortar) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
}
if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex);
ResourceManager.charge_thrower.renderPart("Mortar");
ResourceManager.charge_thrower.renderPart("Oomph");
}
}
GL11.glShadeModel(GL11.GL_FLAT);

View File

@ -3,8 +3,10 @@ package com.hbm.render.item.weapon.sedna;
import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.factory.XFactoryCatapult;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
import com.hbm.render.util.RenderMiscEffects;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
@ -34,7 +36,7 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase {
@Override
public void renderFirstPerson(ItemStack stack) {
ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem();
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex);
double scale = 0.5D;
@ -81,10 +83,9 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase {
GL11.glPopMatrix();
if(isLoaded || nuke[0] != 0 || nuke[1] != 0 || nuke[2] != 0) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex);
GL11.glPushMatrix();
GL11.glTranslated(nuke[0], nuke[1], nuke[2]);
ResourceManager.fatman.renderPart("MiniNuke");
renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null));
GL11.glPopMatrix();
}
@ -132,8 +133,71 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase {
ResourceManager.fatman.renderPart("Lid");
if(!isLoaded) GL11.glTranslated(0, 0, 3);
ResourceManager.fatman.renderPart("Piston");
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex);
if(isLoaded) ResourceManager.fatman.renderPart("MiniNuke");
if(isLoaded) renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null));
GL11.glShadeModel(GL11.GL_FLAT);
}
public void renderNuke(Object type) {
if(type == XFactoryCatapult.nuke_balefire) {
renderBalefire(interp);
} else {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex);
ResourceManager.fatman.renderPart("MiniNuke");
}
}
public static void renderBalefire(float interp) {
Minecraft mc = Minecraft.getMinecraft();
mc.renderEngine.bindTexture(ResourceManager.fatman_balefire_tex);
ResourceManager.fatman.renderPart("MiniNuke");
mc.renderEngine.bindTexture(RenderMiscEffects.glintBF);
mc.entityRenderer.disableLightmap(interp);
float scale = 2F;
float r = 0F;
float g = 0.8F;
float b = 0.15F;
float speed = -6;
float glintColor = 0.76F;
int layers = 3;
GL11.glPushMatrix();
float offset = mc.thePlayer.ticksExisted + interp;
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_BLEND);
GL11.glColor4f(1F, 1F, 1F, 1F);
GL11.glDepthFunc(GL11.GL_EQUAL);
GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
GL11.glDepthMask(false);
for(int k = 0; k < layers; ++k) {
GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
float movement = offset * (0.001F + (float) k * 0.003F) * speed;
GL11.glScalef(scale, scale, scale);
GL11.glRotatef(30.0F - k * 60.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0F, movement, 0F);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
ResourceManager.fatman.renderPart("MiniNuke");
}
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glDepthMask(true);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glDepthFunc(GL11.GL_LEQUAL);
GL11.glPopMatrix();
mc.entityRenderer.enableLightmap(interp);
}
}

View File

@ -138,7 +138,6 @@ public class ItemRenderMinigunDual extends ItemRenderWeaponBase {
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_dual_tex);
ResourceManager.minigun.renderPart(index == 0 ? "GunDual" : "Gun");
ResourceManager.minigun.renderPart("Grip");
ResourceManager.minigun.renderPart("Barrels");
GL11.glShadeModel(GL11.GL_FLAT);
}

View File

@ -5,12 +5,15 @@ import java.util.Random;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
@ -35,10 +38,13 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte
GL11.glRotated(pitch, 1, 0, 0);
GL11.glRotated(roll, 0, 0, 1);
GL11.glTranslated(0, 0, -offset);
EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, tile.getBlockMetadata());
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.dud_balefire_tex);
ResourceManager.dud_balefire.renderAll();
if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); }
if(type == EnumDudType.CONVENTIONAL) { bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); }
if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); }
if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); }
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
@ -55,14 +61,17 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte
public void renderInventory() {
GL11.glTranslated(0, 3, 0);
GL11.glScaled(2.75, 2.75, 2.75);
GL11.glScaled(2.125, 2.125, 2.125);
GL11.glRotated(90, 0, 0, 1);
}
public void renderCommon() {
public void renderCommonWithStack(ItemStack item) {
EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, item.getItemDamage());
GL11.glRotated(90, 0, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.dud_balefire_tex);
ResourceManager.dud_balefire.renderAll();
if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); }
if(type == EnumDudType.CONVENTIONAL) { GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); }
if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); }
if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); }
GL11.glShadeModel(GL11.GL_FLAT);
}};
}

View File

@ -10,60 +10,61 @@ import net.minecraft.world.World;
import net.minecraftforge.client.model.IModelCustom;
public class RenderMiscEffects {
public static ResourceLocation glint = new ResourceLocation(RefStrings.MODID + ":textures/misc/glint.png");
public static ResourceLocation glintBF = new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png");
public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float colorMod, float r, float g, float b, float speed, float scale) {
GL11.glPushMatrix();
float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol;
GL11.glEnable(GL11.GL_BLEND);
float color = colorMod;
GL11.glColor4f(color, color, color, 1.0F);
GL11.glDepthFunc(GL11.GL_EQUAL);
GL11.glDepthMask(false);
GL11.glPushMatrix();
float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol;
GL11.glEnable(GL11.GL_BLEND);
float color = colorMod;
GL11.glColor4f(color, color, color, 1.0F);
GL11.glDepthFunc(GL11.GL_EQUAL);
GL11.glDepthMask(false);
for (int k = 0; k < 2; ++k) {
GL11.glDisable(GL11.GL_LIGHTING);
float glintColor = 0.76F;
GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F);
GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
float movement = offset * (0.001F + (float)k * 0.003F) * speed;
GL11.glScalef(scale, scale, scale);
GL11.glRotatef(30.0F - (float)k * 60.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.0F, movement, 0.0F);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
if("all".equals(part))
model.renderAll();
else
model.renderPart(part);
}
for(int k = 0; k < 2; ++k) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glDepthMask(true);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glDepthFunc(GL11.GL_LEQUAL);
GL11.glPopMatrix();
}
GL11.glDisable(GL11.GL_LIGHTING);
float glintColor = 0.76F;
GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F);
GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
float movement = offset * (0.001F + (float) k * 0.003F) * speed;
GL11.glScalef(scale, scale, scale);
GL11.glRotatef(30.0F - (float) k * 60.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.0F, movement, 0.0F);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
if("all".equals(part))
model.renderAll();
else
model.renderPart(part);
}
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glDepthMask(true);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glDepthFunc(GL11.GL_LEQUAL);
GL11.glPopMatrix();
}
public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float r, float g, float b, float speed, float scale) {
renderClassicGlint(world, interpol, model, part, 0.5F, r, g, b, speed, scale);
}
}
public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part) {
renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F/3F);
}
renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F / 3F);
}
}

View File

@ -8,15 +8,9 @@ import net.minecraft.util.AxisAlignedBB;
public class TileEntityCrashedBomb extends TileEntity {
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; }
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
return 65536.0D;
}
public double getMaxRenderDistanceSquared() { return 65536.0D; }
}

View File

@ -139,7 +139,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
if(operational) turnTimer = 25;
networkPackNT(150);
} else {
this.lastRotor = this.rotor;
@ -297,29 +297,35 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
}
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>")
@Optional.Method(modid = "OpenComputers")
public Object[] getFluid(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.")
@Optional.Method(modid = "OpenComputers")
public Object[] getType(Context context, Arguments args) {
return CompatHandler.steamTypeToInt(tanks[1].getTankType());
return CompatHandler.steamTypeToInt(tanks[0].getTankType());
}
@Callback(direct = true, limit = 4)
@Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.")
@Optional.Method(modid = "OpenComputers")
public Object[] setType(Context context, Arguments args) {
tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0)));
return new Object[] {};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.")
@Optional.Method(modid = "OpenComputers")
public Object[] getPower(Context context, Arguments args) {
return new Object[] {power};
}
@Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>, <input tank fluid type>, <power>")
@Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())};
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power};
}
@Override
@ -329,6 +335,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
"getFluid",
"getType",
"setType",
"getPower",
"getInfo"
};
}
@ -343,6 +350,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
return getType(context, args);
case ("setType"):
return setType(context, args);
case ("getPower"):
return getPower(context, args);
case ("getInfo"):
return getInfo(context, args);
}

View File

@ -49,7 +49,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
public long power;
public FluidTank[] tanks;
protected double[] info = new double[3];
private boolean shouldTurn;
public float rotor;
public float lastRotor;
@ -57,7 +57,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
private AudioWrapper audio;
private float audioDesync;
//Configurable Values
public static long maxPower = 100000000;
public static int inputTankSize = 512_000;
@ -67,7 +67,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
public TileEntityMachineLargeTurbine() {
super(7);
tanks = new FluidTank[2];
tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize);
tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize);
@ -107,11 +107,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
this.info = new double[3];
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite());
for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
@ -144,7 +144,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
}
if(!valid) tanks[1].setTankType(Fluids.NONE);
if(power > maxPower) power = maxPower;
tanks[1].unloadTank(5, 6, slots);
this.networkPackNT(50);
@ -152,12 +152,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
} else {
this.lastRotor = this.rotor;
this.rotor += this.fanAcceleration;
if(this.rotor >= 360) {
this.rotor -= 360;
this.lastRotor -= 360;
}
if(shouldTurn) {
// Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum
this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync));
@ -172,7 +172,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
audio.updatePitch(0.25F + 0.75F * turbineSpeed);
} else {
this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F));
if(audio != null) {
if(this.fanAcceleration > 0) {
float turbineSpeed = this.fanAcceleration / 15F;
@ -186,7 +186,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
}
}
}
protected DirPos[] getConPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
@ -214,11 +214,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
tanks[0].deserialize(buf);
tanks[1].deserialize(buf);
}
public long getPowerScaled(int i) {
return (power * i) / maxPower;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
@ -226,7 +226,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
tanks[1].readFromNBT(nbt, "steam");
power = nbt.getLong("power");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
@ -249,12 +249,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
public long getMaxPower() {
return this.maxPower;
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
@ -281,11 +281,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
public String getComponentName() {
return "ntm_turbine";
}
@Override
public void onChunkUnload() {
super.onChunkUnload();
if(audio != null) {
audio.stopSound();
audio = null;
@ -302,29 +302,35 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
}
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>")
@Optional.Method(modid = "OpenComputers")
public Object[] getFluid(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.")
@Optional.Method(modid = "OpenComputers")
public Object[] getType(Context context, Arguments args) {
return CompatHandler.steamTypeToInt(tanks[1].getTankType());
return CompatHandler.steamTypeToInt(tanks[0].getTankType());
}
@Callback(direct = true, limit = 4)
@Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.")
@Optional.Method(modid = "OpenComputers")
public Object[] setType(Context context, Arguments args) {
tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0)));
return new Object[] {};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.")
@Optional.Method(modid = "OpenComputers")
public Object[] getPower(Context context, Arguments args) {
return new Object[] {power};
}
@Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>, <input tank fluid type>, <power>")
@Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())};
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power};
}
@Override
@ -334,6 +340,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
"getFluid",
"getType",
"setType",
"getPower",
"getInfo"
};
}

View File

@ -355,29 +355,35 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS
return "ntm_turbine";
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>")
@Optional.Method(modid = "OpenComputers")
public Object[] getFluid(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.")
@Optional.Method(modid = "OpenComputers")
public Object[] getType(Context context, Arguments args) {
return CompatHandler.steamTypeToInt(tanks[1].getTankType());
return CompatHandler.steamTypeToInt(tanks[0].getTankType());
}
@Callback(direct = true, limit = 4)
@Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.")
@Optional.Method(modid = "OpenComputers")
public Object[] setType(Context context, Arguments args) {
tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0)));
return new Object[] {true};
}
@Callback(direct = true)
@Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.")
@Optional.Method(modid = "OpenComputers")
public Object[] getPower(Context context, Arguments args) {
return new Object[] {power};
}
@Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: <input tank amount>, <input tank capacity>, <output tank amount>, <output tank capacity>, <input tank fluid type>, <power>")
@Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) {
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())};
return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power};
}
@Override

View File

@ -3,6 +3,7 @@ package com.hbm.world.feature;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType;
import com.hbm.config.GeneralConfig;
import net.minecraft.block.Block;
@ -60,7 +61,7 @@ public class Dud extends WorldGenerator {
if(!LocationIsValidSpawn(world, x, y, z))
return false;
world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(4) + 2, 3);
world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(EnumDudType.values().length), 3);
if(GeneralConfig.enableDebugMode)
System.out.print("[Debug] Successfully spawned dud at " + x + " " + y + " " + z + "\n");

View File

@ -1072,6 +1072,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge)
item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung)
item.ammo_standard.coil_ferrouranium.name=Ferrourankugel
item.ammo_standard.coil_tungsten.name=Wolframkugel
item.ammo_standard.ct_hook.name=Enterhaken
item.ammo_standard.ct_mortar.name=Sprengladung
item.ammo_standard.ct_mortar_charge.name=Geballte Ladung
item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire
item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel
item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas
@ -2071,6 +2074,7 @@ item.gun_b92.name=§9B92 Energiepistole§r
item.gun_b92_ammo.name=§9B92-Energiezelle§r
item.gun_bolter.name=Boltergewehr
item.gun_carbine.name=Karabiner
item.gun_charge_thrower.name=Ladungswerfer
item.gun_chemthrower.name=Chemowerfer
item.gun_coilgun.name=Gaußpistole
item.gun_cryocannon.name=Kyro-Kanone

View File

@ -1797,6 +1797,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength)
item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge)
item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball
item.ammo_standard.coil_tungsten.name=Coilgun Tungsten Ball
item.ammo_standard.ct_hook.name=Grappling Hook
item.ammo_standard.ct_mortar.name=Demolition Charge
item.ammo_standard.ct_mortar_charge.name=Heavy Demolition Charge
item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire
item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel
item.ammo_standard.flame_gas.name=Flamer Fuel, Gas
@ -2882,6 +2885,7 @@ item.gun_b92.name=§9B92 Energy Pistol§r
item.gun_b92_ammo.name=§9B92 Energy Cell§r
item.gun_bolter.name=Bolter
item.gun_carbine.name=Carbine
item.gun_charge_thrower.name=Charge Thrower
item.gun_chemthrower.name=Chemthrower
item.gun_coilgun.name=Coilgun
item.gun_congolake.name=Congo Lake

View File

@ -6048,3 +6048,15 @@ container.ammoBag=弹药袋
item.ammo_bag.name=弹药袋
item.ammo_bag_infinite.name=无限弹药袋
item.gun_g3_zebra.name=斑马步枪
container.rttyController=无线红石信号控制器
container.rttyReader=无线红石信号控制器
tile.radio_torch_controller.name=无线红石信号控制器
tile.radio_torch_controller.desc=可以接收信号并将信号传送到与其连接的机器
tile.radio_torch_reader.name=无线红石信号控制器
tile.radio_torch_reader.desc=从被连接的块读取数值并以指定的频率发送
item.ammo_standard.ct_hook.name=抓钩
item.ammo_standard.ct_mortar.name=炸药包
item.ammo_standard.ct_mortar_charge.name=重型炸药包
item.gun_charge_thrower.name=炸药投掷器
tile.sandbags.name=沙袋
tile.wood_barrier.name=木制围栏

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,940 @@
# Blender v2.79 (sub 7) OBJ File: 'dud1.blend'
# www.blender.org
mtllib dud_conventional.mtl
o Cube.003_Cube.005
v 0.392370 -0.392370 -1.500000
v 0.392370 -0.392370 2.499999
v 0.267370 -0.392370 -1.500000
v 0.267370 -0.392370 2.499999
v 0.392370 -0.267370 -1.500000
v 0.392370 -0.267370 2.499999
v 0.267370 -0.267370 -1.500000
v 0.267370 -0.267370 2.499999
v -0.392369 -0.392370 -1.500000
v -0.392370 -0.392369 2.499999
v -0.392369 -0.267370 -1.500000
v -0.392370 -0.267369 2.499999
v -0.267369 -0.392370 -1.500000
v -0.267370 -0.392369 2.499999
v -0.267369 -0.267370 -1.500000
v -0.267370 -0.267369 2.499999
v -0.392370 0.392369 -1.500000
v -0.392370 0.392370 2.499999
v -0.267370 0.392369 -1.500000
v -0.267370 0.392370 2.499999
v -0.392370 0.267369 -1.500000
v -0.392370 0.267370 2.499999
v -0.267370 0.267369 -1.500000
v -0.267370 0.267370 2.499999
v 0.392369 0.392369 -1.499999
v 0.392370 0.392370 2.499998
v 0.392369 0.267369 -1.499999
v 0.392370 0.267370 2.499999
v 0.267369 0.392370 -1.499999
v 0.267370 0.392370 2.499999
v 0.267369 0.267370 -1.499999
v 0.267370 0.267370 2.499999
v 0.220971 -0.088388 -3.500000
v 0.220971 -0.088388 -3.437500
v 0.265165 -0.132582 -3.500000
v 0.265165 -0.132582 -3.437500
v 0.088388 -0.220971 -3.500000
v 0.088388 -0.220971 -3.437500
v 0.132583 -0.265165 -3.500000
v 0.132583 -0.265165 -3.437500
v 0.353553 -0.132582 -3.437500
v 0.353553 -0.132582 -3.500000
v 0.132583 -0.353553 -3.500000
v 0.132583 -0.353553 -3.437500
v 0.707107 -0.486136 -3.437500
v 0.707107 -0.486136 -3.500000
v 0.486136 -0.707107 -3.500000
v 0.486136 -0.707107 -3.437500
v -0.088388 -0.220971 -3.500000
v -0.088388 -0.220971 -3.437500
v -0.132582 -0.265166 -3.500000
v -0.132582 -0.265166 -3.437500
v -0.220970 -0.088389 -3.500000
v -0.220970 -0.088389 -3.437500
v -0.265165 -0.132583 -3.500000
v -0.265165 -0.132583 -3.437500
v -0.132582 -0.353554 -3.437500
v -0.132582 -0.353554 -3.500000
v -0.353553 -0.132583 -3.500000
v -0.353553 -0.132583 -3.437500
v -0.486135 -0.707107 -3.437500
v -0.486135 -0.707107 -3.500000
v -0.707106 -0.486136 -3.500000
v -0.707106 -0.486136 -3.437500
v -0.220971 0.088387 -3.500000
v -0.220971 0.088387 -3.437500
v -0.265165 0.132582 -3.500000
v -0.265165 0.132582 -3.437500
v -0.088388 0.220970 -3.500000
v -0.088388 0.220970 -3.437500
v -0.132582 0.265164 -3.500000
v -0.132582 0.265164 -3.437500
v -0.353553 0.132582 -3.437500
v -0.353553 0.132582 -3.500000
v -0.132583 0.353552 -3.500000
v -0.132582 0.353552 -3.437500
v -0.707107 0.486135 -3.437501
v -0.707107 0.486135 -3.500001
v -0.486136 0.707106 -3.500001
v -0.486136 0.707106 -3.437501
v 0.088388 0.220970 -3.500000
v 0.088388 0.220970 -3.437500
v 0.132582 0.265164 -3.500000
v 0.132582 0.265164 -3.437500
v 0.220970 0.088388 -3.500000
v 0.220970 0.088388 -3.437500
v 0.265164 0.132582 -3.500000
v 0.265164 0.132582 -3.437500
v 0.132582 0.353553 -3.437501
v 0.132582 0.353553 -3.500000
v 0.353553 0.132582 -3.500000
v 0.353553 0.132582 -3.437500
v 0.486135 0.707106 -3.437501
v 0.486135 0.707106 -3.500001
v 0.707106 0.486135 -3.500001
v 0.707106 0.486135 -3.437501
v 0.420463 -0.062500 -1.424884
v 0.420463 0.062500 -1.424884
v 0.420463 0.000000 -1.500000
v 0.920463 -0.062500 -1.674884
v 0.920463 0.000000 -1.750000
v 0.920463 0.062500 -1.674884
v 0.420463 -0.062500 0.424884
v 0.420463 -0.000000 0.500000
v 0.420463 0.062500 0.424884
v 0.920463 -0.062500 0.174884
v 0.920463 0.062500 0.174884
v 0.920463 -0.000000 0.250000
v -0.420463 -0.062500 -1.424884
v -0.420463 0.062500 -1.424884
v -0.420463 0.000000 -1.500000
v -0.920463 -0.062500 -1.674884
v -0.920463 0.000000 -1.750000
v -0.920463 0.062500 -1.674884
v -0.420463 -0.062500 0.424884
v -0.420463 -0.000000 0.500000
v -0.420463 0.062500 0.424884
v -0.920463 -0.062500 0.174884
v -0.920463 0.062500 0.174884
v -0.920463 -0.000000 0.250000
v -0.186935 -0.031250 3.781250
v -0.186935 -0.031250 4.156250
v -0.186935 0.031250 3.781250
v -0.186935 0.031250 4.156250
v -0.124435 -0.031250 3.781250
v -0.124435 -0.031250 4.156250
v -0.124435 0.031250 3.781250
v -0.124435 0.031250 4.156250
v 0.186935 -0.031250 3.781250
v 0.186935 -0.031250 4.156250
v 0.186935 0.031250 3.781250
v 0.186935 0.031250 4.156250
v 0.124435 -0.031250 3.781250
v 0.124435 -0.031250 4.156250
v 0.124435 0.031250 3.781250
v 0.124435 0.031250 4.156250
v -0.000000 0.482963 -2.000000
v -0.000000 0.482962 3.000000
v 0.241481 0.418258 -2.000000
v 0.241481 0.418258 3.000000
v 0.418258 0.241481 -2.000000
v 0.418258 0.241481 3.000000
v 0.482963 0.000000 -2.000000
v 0.482963 -0.000000 3.000000
v 0.418258 -0.241481 -2.000000
v 0.418258 -0.241482 3.000000
v 0.241481 -0.418258 -2.000000
v 0.241481 -0.418258 3.000000
v 0.000000 -0.482963 -2.000000
v 0.000000 -0.482963 3.000000
v -0.241481 -0.418258 -2.000000
v -0.241481 -0.418258 3.000000
v -0.418258 -0.241481 -2.000000
v -0.418258 -0.241482 3.000000
v -0.482963 -0.000000 -2.000000
v -0.482963 -0.000000 3.000000
v -0.418258 0.241481 -2.000000
v -0.418258 0.241481 3.000000
v -0.241482 0.418258 -2.000000
v -0.241482 0.418258 3.000000
v 0.000000 0.241481 -3.000000
v 0.120741 0.209129 -3.000000
v 0.209129 0.120741 -3.000000
v 0.241481 0.000000 -3.000000
v 0.209129 -0.120741 -3.000000
v 0.120741 -0.209129 -3.000000
v 0.000000 -0.241481 -3.000000
v -0.120741 -0.209129 -3.000000
v -0.209129 -0.120741 -3.000000
v -0.241481 -0.000000 -3.000000
v -0.209129 0.120741 -3.000000
v -0.120741 0.209129 -3.000000
v 0.000000 0.241481 -3.500000
v 0.120741 0.209129 -3.500000
v 0.209129 0.120741 -3.500000
v 0.241481 0.000000 -3.500000
v 0.209129 -0.120741 -3.500000
v 0.120741 -0.209129 -3.500000
v 0.000000 -0.241481 -3.500000
v -0.120741 -0.209129 -3.500000
v -0.209129 -0.120741 -3.500000
v -0.241481 -0.000000 -3.500000
v -0.209129 0.120741 -3.500000
v -0.120741 0.209129 -3.500000
v 0.120741 0.209129 3.750000
v -0.000000 0.241481 3.750000
v 0.209129 0.120740 3.750000
v 0.241481 -0.000000 3.750000
v 0.209129 -0.120741 3.750000
v 0.120741 -0.209129 3.750000
v 0.000000 -0.241481 3.750000
v -0.120741 -0.209129 3.750000
v -0.209129 -0.120741 3.750000
v -0.241481 -0.000000 3.750000
v -0.209129 0.120740 3.750000
v -0.120741 0.209129 3.750000
v 0.000000 -0.000000 4.000000
vt 0.382857 0.042857
vt 0.017143 0.071429
vt 0.017143 0.042857
vt 0.382857 0.014286
vt 0.017143 0.014286
vt 0.005714 0.014286
vt 0.005714 0.042857
vt 0.394286 0.042857
vt 0.394286 0.014286
vt 0.382857 0.114286
vt 0.017143 0.142857
vt 0.017143 0.114286
vt 0.382857 0.085714
vt 0.017143 0.085714
vt 0.005714 0.085714
vt 0.005714 0.114286
vt 0.394286 0.114286
vt 0.394286 0.085714
vt 0.382857 0.185714
vt 0.017143 0.214286
vt 0.017143 0.185714
vt 0.382857 0.157143
vt 0.017143 0.157143
vt 0.005714 0.157143
vt 0.005714 0.185714
vt 0.394286 0.185714
vt 0.394286 0.157143
vt 0.382857 0.257143
vt 0.017143 0.285714
vt 0.017143 0.257143
vt 0.017143 0.228571
vt 0.005714 0.228571
vt 0.005714 0.257143
vt 0.394286 0.257143
vt 0.382857 0.228571
vt 0.394286 0.228571
vt 0.691429 0.128571
vt 0.685714 0.142857
vt 0.685714 0.128571
vt 0.657143 0.142857
vt 0.651429 0.157143
vt 0.651429 0.142857
vt 0.657143 0.128571
vt 0.662857 0.142857
vt 0.680000 0.128571
vt 0.680000 0.142857
vt 0.645714 0.142857
vt 0.628571 0.128571
vt 0.645714 0.128571
vt 0.657143 0.157143
vt 0.651429 0.271429
vt 0.622857 0.157143
vt 0.628571 0.142857
vt 0.691429 0.142857
vt 0.685714 0.157143
vt 0.685714 0.285714
vt 0.657143 0.271429
vt 0.685714 0.271429
vt 0.622857 0.271429
vt 0.691429 0.157143
vt 0.617143 0.128571
vt 0.611429 0.142857
vt 0.611429 0.128571
vt 0.582857 0.142857
vt 0.577143 0.157143
vt 0.577143 0.142857
vt 0.582857 0.128571
vt 0.588571 0.142857
vt 0.605714 0.128571
vt 0.605714 0.142857
vt 0.571429 0.142857
vt 0.554286 0.128571
vt 0.571429 0.128571
vt 0.582857 0.157143
vt 0.577143 0.271429
vt 0.548571 0.157143
vt 0.554286 0.142857
vt 0.617143 0.142857
vt 0.611429 0.157143
vt 0.611429 0.285714
vt 0.582857 0.271429
vt 0.611429 0.271429
vt 0.548571 0.271429
vt 0.617143 0.157143
vt 0.542857 0.128571
vt 0.537143 0.142857
vt 0.537143 0.128571
vt 0.502857 0.142857
vt 0.508571 0.157143
vt 0.502857 0.157143
vt 0.508571 0.142857
vt 0.502857 0.128571
vt 0.508571 0.128571
vt 0.514286 0.142857
vt 0.531429 0.128571
vt 0.531429 0.142857
vt 0.480000 0.142857
vt 0.497143 0.128571
vt 0.497143 0.142857
vt 0.502857 0.271429
vt 0.474286 0.157143
vt 0.542857 0.142857
vt 0.537143 0.157143
vt 0.537143 0.285714
vt 0.508571 0.271429
vt 0.537143 0.271429
vt 0.474286 0.271429
vt 0.542857 0.271429
vt 0.468571 0.128571
vt 0.462857 0.142857
vt 0.462857 0.128571
vt 0.434286 0.142857
vt 0.428571 0.157143
vt 0.428571 0.142857
vt 0.434286 0.128571
vt 0.440000 0.142857
vt 0.457143 0.128571
vt 0.457143 0.142857
vt 0.422857 0.142857
vt 0.405714 0.128571
vt 0.422857 0.128571
vt 0.434286 0.157143
vt 0.428571 0.271429
vt 0.400000 0.157143
vt 0.405714 0.142857
vt 0.468571 0.157143
vt 0.462857 0.157143
vt 0.462857 0.285714
vt 0.434286 0.271429
vt 0.462857 0.271429
vt 0.400000 0.271429
vt 0.468571 0.271429
vt 0.862857 0.968548
vt 0.862857 0.545738
vt 0.874286 0.545738
vt 0.805714 0.557143
vt 0.760000 0.928571
vt 0.760000 0.500000
vt 0.857143 0.928571
vt 0.811429 0.557143
vt 0.857143 0.500000
vt 0.805714 0.471429
vt 0.760000 0.485714
vt 0.760000 0.471429
vt 0.760000 0.457143
vt 0.805714 0.457143
vt 0.857143 0.471429
vt 0.811429 0.485714
vt 0.811429 0.471429
vt 0.811429 0.457143
vt 0.857143 0.457143
vt 0.880000 0.545738
vt 0.891429 0.968548
vt 0.880000 0.968548
vt 0.948571 0.557143
vt 0.994286 0.928571
vt 0.948571 0.985714
vt 0.942857 0.557143
vt 0.897143 0.928571
vt 0.897143 0.500000
vt 0.994286 0.485714
vt 0.948571 0.471429
vt 0.994286 0.471429
vt 0.994286 0.457143
vt 0.942857 0.485714
vt 0.897143 0.471429
vt 0.942857 0.471429
vt 0.942857 0.457143
vt 0.714286 0.757143
vt 0.748571 0.771429
vt 0.748571 0.757143
vt 0.714286 0.771429
vt 0.748571 0.785714
vt 0.714286 0.728571
vt 0.748571 0.742857
vt 0.748571 0.728571
vt 0.714286 0.742857
vt 0.708571 0.757143
vt 0.708571 0.771429
vt 0.748571 0.814286
vt 0.714286 0.828571
vt 0.748571 0.828571
vt 0.748571 0.800000
vt 0.714286 0.814286
vt 0.748571 0.842857
vt 0.714286 0.857143
vt 0.748571 0.857143
vt 0.714286 0.842857
vt 0.708571 0.828571
vt 0.708571 0.814286
vt 0.382857 0.071429
vt 0.382857 0.142857
vt 0.382857 0.214286
vt 0.382857 0.285714
vt 0.651429 0.128571
vt 0.662857 0.128571
vt 0.657143 0.285714
vt 0.691429 0.271429
vt 0.577143 0.128571
vt 0.588571 0.128571
vt 0.582857 0.285714
vt 0.617143 0.271429
vt 0.514286 0.128571
vt 0.480000 0.128571
vt 0.542857 0.157143
vt 0.508571 0.285714
vt 0.468571 0.142857
vt 0.428571 0.128571
vt 0.440000 0.128571
vt 0.434286 0.285714
vt 0.868571 0.528571
vt 0.874286 0.968548
vt 0.868571 0.985714
vt 0.805714 0.985714
vt 0.811429 0.985714
vt 0.805714 0.485714
vt 0.857143 0.485714
vt 0.885714 0.528571
vt 0.891429 0.545738
vt 0.885714 0.985714
vt 0.994286 0.500000
vt 0.942857 0.985714
vt 0.948571 0.485714
vt 0.948571 0.457143
vt 0.897143 0.485714
vt 0.897143 0.457143
vt 0.714286 0.785714
vt 0.714286 0.800000
vt 0.102857 0.471429
vt 0.560000 0.414286
vt 0.560000 0.471429
vt 0.102857 0.414286
vt 0.560000 0.357143
vt 0.102857 0.357143
vt 0.560000 0.300000
vt 0.102857 0.985714
vt 0.560000 0.928571
vt 0.560000 0.985714
vt 0.102857 0.928571
vt 0.560000 0.871429
vt 0.102857 0.871429
vt 0.560000 0.814286
vt 0.102857 0.814286
vt 0.560000 0.757143
vt 0.102857 0.757143
vt 0.560000 0.700000
vt 0.102857 0.700000
vt 0.560000 0.642857
vt 0.102857 0.642857
vt 0.560000 0.585714
vt 0.034286 0.942857
vt 0.102857 0.585714
vt 0.560000 0.528571
vt 0.102857 0.528571
vt 0.651429 0.400000
vt 0.657143 0.642857
vt 0.702857 0.671429
vt 0.657143 0.671429
vt 0.651429 0.628571
vt 0.651429 0.685714
vt 0.651429 0.742857
vt 0.651429 0.800000
vt 0.651429 0.857143
vt 0.651429 0.914286
vt 0.651429 0.971429
vt 0.651429 0.514286
vt 0.651429 0.457143
vt 0.651429 0.342857
vt 0.651429 0.571429
vt 0.753847 0.928913
vt 0.720484 0.976662
vt 0.720625 0.880554
vt 0.657143 0.785714
vt 0.702857 0.814286
vt 0.657143 0.814286
vt 0.657143 0.871429
vt 0.702857 0.900000
vt 0.657143 0.900000
vt 0.657143 0.957143
vt 0.702857 0.985714
vt 0.657143 0.985714
vt 0.657143 0.757143
vt 0.702857 0.785714
vt 0.657143 0.700000
vt 0.702857 0.728571
vt 0.657143 0.728571
vt 0.657143 0.842857
vt 0.702857 0.871429
vt 0.657143 0.928571
vt 0.702857 0.957143
vt 0.702857 0.757143
vt 0.702857 0.700000
vt 0.702857 0.842857
vt 0.702857 0.928571
vt 0.034286 0.828571
vt 0.034286 0.857143
vt 0.005714 0.842857
vt 0.034286 0.485714
vt 0.034286 0.428571
vt 0.034286 0.314286
vt 0.102857 0.300000
vt 0.034286 0.542857
vt 0.034286 0.371429
vt 0.034286 0.600000
vt 0.034286 0.685714
vt 0.034286 0.657143
vt 0.034286 0.714286
vt 0.034286 0.771429
vt 0.034286 0.885714
vt 0.034286 0.342857
vt 0.005714 0.328571
vt 0.034286 0.628571
vt 0.005714 0.614286
vt 0.034286 0.800000
vt 0.005714 0.785714
vt 0.034286 0.971429
vt 0.005714 0.957143
vt 0.034286 0.571429
vt 0.005714 0.557143
vt 0.034286 0.457143
vt 0.005714 0.442857
vt 0.034286 0.742857
vt 0.005714 0.728571
vt 0.034286 0.914286
vt 0.005714 0.900000
vt 0.034286 0.514286
vt 0.005714 0.500000
vt 0.034286 0.400000
vt 0.005714 0.385714
vt 0.005714 0.671429
vt 0.651429 0.371429
vt 0.702857 0.642857
vt 0.651429 0.600000
vt 0.651429 0.657143
vt 0.651429 0.714286
vt 0.651429 0.771429
vt 0.651429 0.828571
vt 0.651429 0.885714
vt 0.651429 0.942857
vt 0.651429 0.485714
vt 0.651429 0.428571
vt 0.651429 0.314286
vt 0.651429 0.542857
vt 0.731734 0.873222
vt 0.742820 0.880758
vt 0.750915 0.901142
vt 0.750833 0.956630
vt 0.742679 0.976865
vt 0.731571 0.984197
vt 0.712390 0.956277
vt 0.709457 0.928506
vt 0.712471 0.900789
vn -0.0000 -1.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 0.0000 -1.0000
vn -0.0000 0.0000 1.0000
vn -1.0000 0.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.7071 0.7071 -0.0000
vn -0.7071 -0.7071 0.0000
vn 0.7071 -0.7071 0.0000
vn -0.7071 0.7071 0.0000
vn -0.3046 0.7322 -0.6092
vn -0.3046 -0.7322 -0.6092
vn 0.3046 0.7322 0.6092
vn 0.3046 -0.7322 0.6092
vn 0.3046 0.7322 -0.6092
vn 0.3046 -0.7322 -0.6092
vn -0.3046 0.7322 0.6092
vn -0.3046 -0.7322 0.6092
vn 0.0000 0.9885 0.1513
vn 0.4966 0.8602 -0.1160
vn 0.0000 0.9932 -0.1160
vn 0.4942 0.8560 0.1513
vn 0.8602 0.4966 -0.1160
vn 0.8560 0.4942 0.1513
vn 0.9932 0.0000 -0.1160
vn 0.9885 0.0000 0.1513
vn 0.8602 -0.4966 -0.1160
vn 0.8560 -0.4942 0.1513
vn 0.4966 -0.8602 -0.1160
vn 0.4942 -0.8560 0.1513
vn 0.0000 -0.9932 -0.1160
vn 0.0000 -0.9885 0.1513
vn -0.4966 -0.8602 -0.1160
vn -0.4942 -0.8560 0.1513
vn -0.8602 -0.4966 -0.1160
vn -0.8560 -0.4942 0.1513
vn -0.9932 0.0000 -0.1160
vn -0.9885 0.0000 0.1513
vn -0.8602 0.4966 -0.1160
vn 0.7509 -0.4335 0.4981
vn -0.8560 0.4942 0.1513
vn -0.4966 0.8602 -0.1160
vn -0.4942 0.8560 0.1513
vn 0.4964 0.8597 -0.1205
vn 0.9927 0.0000 -0.1205
vn 0.6557 0.3786 -0.6532
vn 0.8597 0.4964 -0.1205
vn -0.9927 0.0000 -0.1205
vn -0.8597 -0.4964 -0.1205
vn -0.4963 -0.8597 -0.1205
vn 0.0000 -0.9927 -0.1205
vn 0.4964 -0.8597 -0.1205
vn 0.8597 -0.4964 -0.1205
vn -0.4964 0.8597 -0.1205
vn 0.0000 0.9927 -0.1205
vn -0.8597 0.4964 -0.1205
vn 0.7571 0.0000 -0.6532
vn -0.3786 -0.6557 -0.6532
vn -0.3786 0.6557 -0.6532
vn -0.7571 0.0000 -0.6532
vn 0.0000 -0.7571 -0.6532
vn -0.6557 0.3786 -0.6532
vn 0.0000 0.7571 -0.6532
vn 0.6557 -0.3786 -0.6532
vn 0.3786 0.6557 -0.6532
vn -0.6557 -0.3786 -0.6532
vn 0.3786 -0.6557 -0.6532
vn 0.0000 -0.8671 0.4981
vn 0.4335 -0.7509 0.4981
vn 0.0000 0.8671 0.4981
vn 0.4335 0.7509 0.4981
vn 0.8671 0.0000 0.4981
vn -0.4335 0.7509 0.4981
vn 0.7509 0.4335 0.4981
vn -0.7509 0.4335 0.4981
vn -0.7509 -0.4335 0.4981
vn -0.8671 0.0000 0.4981
vn -0.4335 -0.7509 0.4981
usemtl None
s off
f 2/1/1 3/2/1 1/3/1
f 6/4/2 1/3/2 5/5/2
f 7/6/3 1/3/3 3/7/3
f 4/8/4 6/4/4 8/9/4
f 10/10/5 11/11/5 9/12/5
f 14/13/1 9/12/1 13/14/1
f 15/15/3 9/12/3 11/16/3
f 12/17/4 14/13/4 16/18/4
f 18/19/6 19/20/6 17/21/6
f 22/22/5 17/21/5 21/23/5
f 23/24/3 17/21/3 19/25/3
f 20/26/4 22/22/4 24/27/4
f 26/28/2 27/29/2 25/30/2
f 29/31/6 26/28/6 25/30/6
f 31/32/3 25/30/3 27/33/3
f 28/34/4 30/35/4 32/36/4
f 34/37/7 35/38/7 33/39/7
f 39/40/5 44/41/5 40/42/5
f 40/42/8 37/43/8 39/40/8
f 39/44/3 33/45/3 35/46/3
f 40/47/4 34/48/4 38/49/4
f 43/50/8 48/51/8 44/41/8
f 35/46/3 43/50/3 39/44/3
f 40/47/4 41/52/4 36/53/4
f 36/54/6 42/55/6 35/38/6
f 45/56/9 47/57/9 46/58/9
f 42/55/3 47/57/3 43/50/3
f 44/41/4 45/59/4 41/52/4
f 41/60/7 46/58/7 42/55/7
f 50/61/9 51/62/9 49/63/9
f 55/64/6 60/65/6 56/66/6
f 56/66/10 53/67/10 55/64/10
f 55/68/3 49/69/3 51/70/3
f 56/71/4 50/72/4 54/73/4
f 59/74/10 64/75/10 60/65/10
f 51/70/3 59/74/3 55/68/3
f 56/71/4 57/76/4 52/77/4
f 52/78/2 58/79/2 51/62/2
f 61/80/8 63/81/8 62/82/8
f 59/74/3 62/82/3 63/81/3
f 60/65/4 61/83/4 57/76/4
f 57/84/9 62/82/9 58/79/9
f 66/85/8 67/86/8 65/87/8
f 72/88/2 75/89/2 76/90/2
f 71/91/7 70/92/7 69/93/7
f 71/94/3 65/95/3 67/96/3
f 68/97/4 70/98/4 72/99/4
f 75/89/7 80/100/7 76/90/7
f 67/96/3 75/89/3 71/94/3
f 72/99/4 73/101/4 68/97/4
f 68/102/1 74/103/1 67/86/1
f 77/104/10 79/105/10 78/106/10
f 74/103/3 79/105/3 75/89/3
f 76/90/4 77/107/4 73/101/4
f 74/103/8 77/108/8 78/106/8
f 82/109/10 83/110/10 81/111/10
f 87/112/1 92/113/1 88/114/1
f 88/114/9 85/115/9 87/112/9
f 87/116/3 81/117/3 83/118/3
f 88/119/4 82/120/4 86/121/4
f 91/122/9 96/123/9 92/113/9
f 83/118/3 91/122/3 87/116/3
f 88/119/4 89/124/4 84/125/4
f 83/110/5 89/126/5 90/127/5
f 93/128/7 95/129/7 94/130/7
f 90/127/3 95/129/3 91/122/3
f 92/113/4 93/131/4 89/124/4
f 90/127/10 93/132/10 94/130/10
f 106/133/2 100/134/2 102/135/2
f 98/136/6 107/137/6 102/138/6
f 106/139/1 97/140/1 100/141/1
f 99/142/11 102/143/11 101/144/11
f 99/142/12 100/145/12 97/146/12
f 108/147/13 105/148/13 104/149/13
f 108/147/14 103/150/14 106/151/14
f 114/152/5 118/153/5 119/154/5
f 110/155/6 119/156/6 117/157/6
f 109/158/1 118/159/1 112/160/1
f 114/161/15 111/162/15 113/163/15
f 111/162/16 112/164/16 113/163/16
f 117/165/17 120/166/17 116/167/17
f 120/166/18 115/168/18 116/167/18
f 122/169/5 123/170/5 121/171/5
f 124/172/6 127/173/6 123/170/6
f 128/174/2 125/175/2 127/176/2
f 126/177/1 121/171/1 125/175/1
f 124/172/4 126/178/4 128/179/4
f 131/180/2 130/181/2 129/182/2
f 135/183/6 132/184/6 131/180/6
f 133/185/5 136/186/5 135/187/5
f 129/182/1 134/188/1 133/185/1
f 134/189/4 132/184/4 136/190/4
f 2/1/1 4/191/1 3/2/1
f 6/4/2 2/1/2 1/3/2
f 7/6/3 5/5/3 1/3/3
f 4/8/4 2/1/4 6/4/4
f 10/10/5 12/192/5 11/11/5
f 14/13/1 10/10/1 9/12/1
f 15/15/3 13/14/3 9/12/3
f 12/17/4 10/10/4 14/13/4
f 18/19/6 20/193/6 19/20/6
f 22/22/5 18/19/5 17/21/5
f 23/24/3 21/23/3 17/21/3
f 20/26/4 18/19/4 22/22/4
f 26/28/2 28/194/2 27/29/2
f 29/31/6 30/35/6 26/28/6
f 31/32/3 29/31/3 25/30/3
f 28/34/4 26/28/4 30/35/4
f 34/37/7 36/54/7 35/38/7
f 39/40/5 43/50/5 44/41/5
f 40/42/8 38/195/8 37/43/8
f 39/44/3 37/196/3 33/45/3
f 40/47/4 36/53/4 34/48/4
f 43/50/8 47/57/8 48/51/8
f 35/46/3 42/55/3 43/50/3
f 40/47/4 44/41/4 41/52/4
f 36/54/6 41/60/6 42/55/6
f 45/56/9 48/197/9 47/57/9
f 42/55/3 46/58/3 47/57/3
f 44/41/4 48/51/4 45/59/4
f 41/60/7 45/198/7 46/58/7
f 50/61/9 52/78/9 51/62/9
f 55/64/6 59/74/6 60/65/6
f 56/66/10 54/199/10 53/67/10
f 55/68/3 53/200/3 49/69/3
f 56/71/4 52/77/4 50/72/4
f 59/74/10 63/81/10 64/75/10
f 51/70/3 58/79/3 59/74/3
f 56/71/4 60/65/4 57/76/4
f 52/78/2 57/84/2 58/79/2
f 61/80/8 64/201/8 63/81/8
f 59/74/3 58/79/3 62/82/3
f 60/65/4 64/75/4 61/83/4
f 57/84/9 61/202/9 62/82/9
f 66/85/8 68/102/8 67/86/8
f 72/88/2 71/91/2 75/89/2
f 71/91/7 72/88/7 70/92/7
f 71/94/3 69/203/3 65/95/3
f 68/97/4 66/204/4 70/98/4
f 75/89/7 79/105/7 80/100/7
f 67/96/3 74/103/3 75/89/3
f 72/99/4 76/90/4 73/101/4
f 68/102/1 73/205/1 74/103/1
f 77/104/10 80/206/10 79/105/10
f 74/103/3 78/106/3 79/105/3
f 76/90/4 80/100/4 77/107/4
f 74/103/8 73/205/8 77/108/8
f 82/109/10 84/207/10 83/110/10
f 87/112/1 91/122/1 92/113/1
f 88/114/9 86/208/9 85/115/9
f 87/116/3 85/209/3 81/117/3
f 88/119/4 84/125/4 82/120/4
f 91/122/9 95/129/9 96/123/9
f 83/118/3 90/127/3 91/122/3
f 88/119/4 92/113/4 89/124/4
f 83/110/5 84/207/5 89/126/5
f 93/128/7 96/210/7 95/129/7
f 90/127/3 94/130/3 95/129/3
f 92/113/4 96/123/4 93/131/4
f 90/127/10 89/126/10 93/132/10
f 100/134/2 101/211/2 102/135/2
f 102/135/2 107/212/2 106/133/2
f 107/212/2 108/213/2 106/133/2
f 98/136/6 105/214/6 107/137/6
f 106/139/1 103/215/1 97/140/1
f 99/142/11 98/216/11 102/143/11
f 99/142/12 101/144/12 100/145/12
f 108/147/13 107/217/13 105/148/13
f 108/147/14 104/149/14 103/150/14
f 114/152/5 113/218/5 112/219/5
f 112/219/5 118/153/5 114/152/5
f 118/153/5 120/220/5 119/154/5
f 110/155/6 114/221/6 119/156/6
f 109/158/1 115/222/1 118/159/1
f 114/161/15 110/223/15 111/162/15
f 111/162/16 109/224/16 112/164/16
f 117/165/17 119/225/17 120/166/17
f 120/166/18 118/226/18 115/168/18
f 122/169/5 124/172/5 123/170/5
f 124/172/6 128/227/6 127/173/6
f 128/174/2 126/177/2 125/175/2
f 126/177/1 122/169/1 121/171/1
f 124/172/4 122/169/4 126/178/4
f 131/180/2 132/184/2 130/181/2
f 135/183/6 136/228/6 132/184/6
f 133/185/5 134/188/5 136/186/5
f 129/182/1 130/181/1 134/188/1
f 134/189/4 130/181/4 132/184/4
s 1
f 138/229/19 139/230/20 137/231/21
f 140/232/22 141/233/23 139/230/20
f 142/234/24 143/235/25 141/233/23
f 144/236/26 145/237/27 143/238/25
f 146/239/28 147/240/29 145/237/27
f 148/241/30 149/242/31 147/240/29
f 150/243/32 151/244/33 149/242/31
f 152/245/34 153/246/35 151/244/33
f 154/247/36 155/248/37 153/246/35
f 156/249/38 157/250/39 155/248/37
f 144/236/26 189/251/40 146/239/28
f 158/252/41 159/253/42 157/250/39
f 160/254/43 137/231/21 159/253/42
f 141/233/23 162/255/44 139/230/20
f 164/256/45 175/257/46 163/258/47
f 157/250/39 170/259/48 155/248/37
f 155/248/37 169/260/49 153/246/35
f 153/246/35 168/261/50 151/244/33
f 151/244/33 167/262/51 149/242/31
f 149/242/31 166/263/52 147/240/29
f 147/240/29 165/264/53 145/237/27
f 145/237/27 164/265/45 143/238/25
f 137/231/21 172/266/54 159/253/42
f 139/230/20 161/267/55 137/231/21
f 143/235/25 163/268/47 141/233/23
f 159/253/42 171/269/56 157/250/39
f 176/270/57 180/271/58 184/272/59
f 171/273/56 182/274/60 170/275/48
f 168/276/50 179/277/61 167/278/51
f 165/279/53 176/280/57 164/281/45
f 172/282/54 183/283/62 171/273/56
f 162/284/44 173/285/63 161/286/55
f 169/287/49 180/288/58 168/276/50
f 166/289/52 177/290/64 165/279/53
f 161/286/55 184/291/59 172/282/54
f 163/258/47 174/292/65 162/284/44
f 170/275/48 181/293/66 169/287/49
f 167/278/51 178/294/67 166/289/52
f 191/295/68 190/296/69 197/297/4
f 160/254/43 186/298/70 138/229/19
f 138/229/19 185/299/71 140/232/22
f 142/234/24 188/300/72 144/301/26
f 158/252/41 196/302/73 160/254/43
f 140/232/22 187/303/74 142/234/24
f 156/249/38 195/304/75 158/252/41
f 156/249/38 193/305/76 194/306/77
f 152/245/34 193/307/76 154/247/36
f 150/243/32 192/308/78 152/245/34
f 148/241/30 191/295/68 150/243/32
f 146/239/28 190/309/69 148/241/30
f 188/300/72 187/310/74 197/311/4
f 195/304/75 194/312/77 197/313/4
f 192/308/78 191/314/68 197/315/4
f 189/251/40 188/316/72 197/317/4
f 196/302/73 195/318/75 197/319/4
f 185/299/71 186/320/70 197/321/4
f 193/307/76 192/322/78 197/323/4
f 190/309/69 189/324/40 197/325/4
f 186/298/70 196/326/73 197/327/4
f 187/303/74 185/328/71 197/329/4
f 194/306/77 193/305/76 197/330/4
f 138/229/19 140/232/22 139/230/20
f 140/232/22 142/234/24 141/233/23
f 142/234/24 144/301/26 143/235/25
f 144/236/26 146/239/28 145/237/27
f 146/239/28 148/241/30 147/240/29
f 148/241/30 150/243/32 149/242/31
f 150/243/32 152/245/34 151/244/33
f 152/245/34 154/247/36 153/246/35
f 154/247/36 156/249/38 155/248/37
f 156/249/38 158/252/41 157/250/39
f 144/236/26 188/316/72 189/251/40
f 158/252/41 160/254/43 159/253/42
f 160/254/43 138/229/19 137/231/21
f 141/233/23 163/331/47 162/255/44
f 164/256/45 176/332/57 175/257/46
f 157/250/39 171/333/56 170/259/48
f 155/248/37 170/334/48 169/260/49
f 153/246/35 169/335/49 168/261/50
f 151/244/33 168/336/50 167/262/51
f 149/242/31 167/337/51 166/263/52
f 147/240/29 166/338/52 165/264/53
f 145/237/27 165/339/53 164/265/45
f 137/231/21 161/340/55 172/266/54
f 139/230/20 162/341/44 161/267/55
f 143/235/25 164/342/45 163/268/47
f 159/253/42 172/343/54 171/269/56
f 184/272/59 173/344/63 176/270/57
f 173/344/63 174/345/65 176/270/57
f 174/345/65 175/346/46 176/270/57
f 176/270/57 177/347/64 178/348/67
f 178/348/67 179/349/61 176/270/57
f 179/349/61 180/271/58 176/270/57
f 180/271/58 181/350/66 182/351/60
f 182/351/60 183/352/62 184/272/59
f 180/271/58 182/351/60 184/272/59
f 171/273/56 183/283/62 182/274/60
f 168/276/50 180/288/58 179/277/61
f 165/279/53 177/290/64 176/280/57
f 172/282/54 184/291/59 183/283/62
f 162/284/44 174/292/65 173/285/63
f 169/287/49 181/293/66 180/288/58
f 166/289/52 178/294/67 177/290/64
f 161/286/55 173/285/63 184/291/59
f 163/258/47 175/257/46 174/292/65
f 170/275/48 182/274/60 181/293/66
f 167/278/51 179/277/61 178/294/67
f 160/254/43 196/326/73 186/298/70
f 138/229/19 186/320/70 185/299/71
f 142/234/24 187/310/74 188/300/72
f 158/252/41 195/318/75 196/302/73
f 140/232/22 185/328/71 187/303/74
f 156/249/38 194/312/77 195/304/75
f 156/249/38 154/247/36 193/305/76
f 152/245/34 192/322/78 193/307/76
f 150/243/32 191/314/68 192/308/78
f 148/241/30 190/296/69 191/295/68
f 146/239/28 189/324/40 190/309/69

View File

@ -0,0 +1,799 @@
# Blender v2.79 (sub 7) OBJ File: 'flat fuck.blend'
# www.blender.org
mtllib flat_fuck.mtl
o Cube.001_Cube.002
v 0.218750 -0.031250 -3.812500
v 0.218750 0.031250 -3.812500
v 0.218750 -0.031250 -4.187500
v 0.218750 0.031250 -4.187500
v 0.406250 -0.031250 -4.000000
v 0.343750 -0.031250 -3.812500
v 0.343750 0.031250 -3.812500
v 0.406250 0.031250 -4.000000
v 0.343750 -0.031250 -4.187500
v 0.406250 -0.031250 -4.125000
v 0.406250 0.031250 -4.125000
v 0.343750 0.031250 -4.187500
v -0.218750 -0.031250 -3.812500
v -0.218750 0.031250 -3.812500
v -0.218750 -0.031250 -4.187500
v -0.218750 0.031250 -4.187500
v -0.406250 -0.031250 -4.000000
v -0.343750 -0.031250 -3.812500
v -0.343750 0.031250 -3.812500
v -0.406250 0.031250 -4.000000
v -0.343750 -0.031250 -4.187500
v -0.406250 -0.031250 -4.125000
v -0.406250 0.031250 -4.125000
v -0.343750 0.031250 -4.187500
v -0.031250 0.572454 -0.406250
v -0.031250 0.697454 -0.406250
v -0.031250 0.572454 -0.593750
v -0.031250 0.697454 -0.593750
v 0.031250 0.572454 -0.406250
v 0.031250 0.697454 -0.406250
v 0.031250 0.572454 -0.593750
v 0.031250 0.697454 -0.593750
v -0.031250 0.759954 -0.468750
v 0.031250 0.759954 -0.468750
v -0.511384 0.259164 -0.406250
v -0.619638 0.321664 -0.406250
v -0.511385 0.259164 -0.593750
v -0.619638 0.321664 -0.593750
v -0.480135 0.313290 -0.406250
v -0.588388 0.375790 -0.406250
v -0.480135 0.313290 -0.593750
v -0.588388 0.375790 -0.593750
v -0.673764 0.352914 -0.468750
v -0.642514 0.407040 -0.468750
v -0.480134 -0.313290 -0.406250
v -0.588388 -0.375790 -0.406250
v -0.480134 -0.313290 -0.593750
v -0.588388 -0.375790 -0.593750
v -0.511384 -0.259164 -0.406250
v -0.619638 -0.321664 -0.406250
v -0.511384 -0.259164 -0.593750
v -0.619638 -0.321664 -0.593750
v -0.642514 -0.407040 -0.468750
v -0.673764 -0.352914 -0.468750
v 0.031250 -0.572454 -0.406250
v 0.031250 -0.697454 -0.406250
v 0.031250 -0.572454 -0.593750
v 0.031250 -0.697454 -0.593750
v -0.031250 -0.572454 -0.406250
v -0.031250 -0.697454 -0.406250
v -0.031250 -0.572454 -0.593750
v -0.031250 -0.697454 -0.593750
v 0.031250 -0.759954 -0.468750
v -0.031250 -0.759954 -0.468750
v 0.511385 -0.259163 -0.406250
v 0.619638 -0.321663 -0.406250
v 0.511385 -0.259163 -0.593750
v 0.619638 -0.321663 -0.593750
v 0.480135 -0.313290 -0.406250
v 0.588388 -0.375790 -0.406250
v 0.480135 -0.313290 -0.593750
v 0.588388 -0.375790 -0.593750
v 0.673764 -0.352913 -0.468750
v 0.642515 -0.407040 -0.468750
v 0.480134 0.313290 -0.406250
v 0.588388 0.375790 -0.406250
v 0.480134 0.313290 -0.593750
v 0.588388 0.375790 -0.593750
v 0.511384 0.259164 -0.406250
v 0.619638 0.321664 -0.406250
v 0.511384 0.259164 -0.593750
v 0.619638 0.321664 -0.593750
v 0.642514 0.407040 -0.468750
v 0.673764 0.352914 -0.468750
v -0.176777 0.132583 -3.625000
v -0.176777 0.132583 -4.375000
v -0.132583 0.176777 -3.625000
v -0.132583 0.176777 -4.375000
v -0.574524 0.530330 -3.625000
v -0.618719 0.574524 -3.687500
v -0.618719 0.574524 -4.312500
v -0.574524 0.530330 -4.375000
v -0.574524 0.618718 -3.687500
v -0.530330 0.574524 -3.625000
v -0.530330 0.574524 -4.375000
v -0.574524 0.618718 -4.312500
v -0.132583 -0.176777 -3.625000
v -0.132583 -0.176777 -4.375000
v -0.176777 -0.132583 -3.625000
v -0.176777 -0.132583 -4.375000
v -0.530330 -0.574524 -3.625000
v -0.574525 -0.618719 -3.687500
v -0.574525 -0.618719 -4.312500
v -0.530331 -0.574524 -4.375000
v -0.618719 -0.574524 -3.687500
v -0.574525 -0.530330 -3.625000
v -0.574525 -0.530330 -4.375000
v -0.618719 -0.574524 -4.312500
v 0.176776 -0.132583 -3.624999
v 0.176776 -0.132583 -4.374999
v 0.132582 -0.176777 -3.624999
v 0.132582 -0.176777 -4.374999
v 0.574524 -0.530331 -3.624999
v 0.618718 -0.574525 -3.687499
v 0.618718 -0.574525 -4.312499
v 0.574524 -0.530331 -4.374999
v 0.574524 -0.618719 -3.687499
v 0.530330 -0.574525 -3.624999
v 0.530330 -0.574525 -4.374999
v 0.574524 -0.618719 -4.312499
v 0.132583 0.176776 -3.624999
v 0.132583 0.176776 -4.374999
v 0.176777 0.132582 -3.624999
v 0.176777 0.132582 -4.374999
v 0.530330 0.574524 -3.624999
v 0.574524 0.618718 -3.687499
v 0.574524 0.618718 -4.312499
v 0.530330 0.574524 -4.374999
v 0.618719 0.574524 -3.687499
v 0.574524 0.530330 -3.624999
v 0.574524 0.530330 -4.374999
v 0.618719 0.574524 -4.312499
v 0.000000 0.603704 -1.500000
v 0.000000 0.603704 1.500000
v 0.301852 0.522823 -1.500000
v 0.301852 0.522823 1.500000
v 0.522823 0.301852 -1.500000
v 0.522823 0.301852 1.500000
v 0.603704 0.000000 -1.500000
v 0.603704 -0.000000 1.500000
v 0.522823 -0.301852 -1.500000
v 0.522823 -0.301852 1.500000
v 0.301852 -0.522823 -1.500000
v 0.301852 -0.522823 1.500000
v 0.000000 -0.603704 -1.500000
v 0.000000 -0.603704 1.500000
v -0.301852 -0.522823 -1.500000
v -0.301852 -0.522823 1.500000
v -0.522823 -0.301852 -1.500000
v -0.522823 -0.301852 1.500000
v -0.603704 -0.000000 -1.500000
v -0.603704 -0.000000 1.500000
v -0.522823 0.301852 -1.500000
v -0.522823 0.301852 1.500000
v -0.301852 0.522823 -1.500000
v -0.301852 0.522823 1.500000
v -0.000000 0.241482 -4.500000
v 0.120741 0.209129 -4.500000
v 0.209129 0.120741 -4.500000
v 0.241481 0.000000 -4.500000
v 0.209129 -0.120741 -4.500000
v 0.120741 -0.209129 -4.500000
v 0.000000 -0.241481 -4.500000
v -0.120741 -0.209129 -4.500000
v -0.209129 -0.120741 -4.500000
v -0.241481 0.000000 -4.500000
v -0.209129 0.120741 -4.500000
v -0.120741 0.209129 -4.500000
vt 0.731034 0.370968
vt 0.724138 0.338710
vt 0.724138 0.370968
vt 0.731034 0.338710
vt 0.751724 0.387097
vt 0.765517 0.387097
vt 0.751724 0.403226
vt 0.765517 0.403226
vt 0.772414 0.338710
vt 0.779310 0.370968
vt 0.779310 0.338710
vt 0.779310 0.387097
vt 0.772414 0.370968
vt 0.772414 0.387097
vt 0.731034 0.419355
vt 0.703448 0.387097
vt 0.731034 0.435484
vt 0.724138 0.467742
vt 0.731034 0.467742
vt 0.682759 0.435484
vt 0.682759 0.467742
vt 0.703448 0.483871
vt 0.703448 0.500000
vt 0.689655 0.483871
vt 0.689655 0.500000
vt 0.675862 0.467742
vt 0.675862 0.435484
vt 0.675862 0.483871
vt 0.682759 0.483871
vt 0.724138 0.516129
vt 0.751724 0.483871
vt 0.765517 0.483871
vt 0.772414 0.467742
vt 0.724138 0.209677
vt 0.703448 0.177419
vt 0.724138 0.177419
vt 0.703448 0.209677
vt 0.696552 0.177419
vt 0.696552 0.209677
vt 0.675862 0.177419
vt 0.731034 0.209677
vt 0.731034 0.177419
vt 0.717241 0.225806
vt 0.724138 0.225806
vt 0.696552 0.241935
vt 0.675862 0.209677
vt 0.682759 0.225806
vt 0.786207 0.290323
vt 0.765517 0.258065
vt 0.786207 0.258065
vt 0.758621 0.290323
vt 0.758621 0.258065
vt 0.737931 0.258065
vt 0.793103 0.258065
vt 0.765517 0.290323
vt 0.779310 0.306452
vt 0.793103 0.290323
vt 0.786207 0.306452
vt 0.758621 0.322581
vt 0.737931 0.290323
vt 0.744828 0.306452
vt 0.786207 0.209677
vt 0.765517 0.177419
vt 0.786207 0.177419
vt 0.758621 0.209677
vt 0.758621 0.177419
vt 0.737931 0.209677
vt 0.737931 0.177419
vt 0.793103 0.209677
vt 0.793103 0.177419
vt 0.765517 0.209677
vt 0.779310 0.225806
vt 0.786207 0.225806
vt 0.765517 0.241935
vt 0.758621 0.241935
vt 0.744828 0.225806
vt 0.724138 0.129032
vt 0.703448 0.096774
vt 0.724138 0.096774
vt 0.703448 0.129032
vt 0.696552 0.096774
vt 0.675862 0.129032
vt 0.675862 0.096774
vt 0.731034 0.129032
vt 0.731034 0.096774
vt 0.717241 0.145161
vt 0.731034 0.145161
vt 0.724138 0.145161
vt 0.696552 0.161290
vt 0.696552 0.129032
vt 0.682759 0.145161
vt 0.786207 0.129032
vt 0.765517 0.096774
vt 0.786207 0.096774
vt 0.765517 0.129032
vt 0.758621 0.096774
vt 0.758621 0.129032
vt 0.737931 0.096774
vt 0.793103 0.129032
vt 0.793103 0.096774
vt 0.779310 0.145161
vt 0.793103 0.145161
vt 0.786207 0.145161
vt 0.758621 0.161290
vt 0.737931 0.129032
vt 0.744828 0.145161
vt 0.724138 0.258065
vt 0.703448 0.290323
vt 0.703448 0.258065
vt 0.696552 0.258065
vt 0.675862 0.290323
vt 0.675862 0.258065
vt 0.731034 0.290323
vt 0.731034 0.258065
vt 0.724138 0.290323
vt 0.717241 0.306452
vt 0.731034 0.306452
vt 0.724138 0.306452
vt 0.696552 0.322581
vt 0.696552 0.290323
vt 0.682759 0.306452
vt 0.917241 0.774194
vt 0.986207 0.790323
vt 0.917241 0.790323
vt 0.827586 0.774194
vt 0.820690 0.758065
vt 0.820690 0.612903
vt 0.910345 0.758065
vt 0.910345 0.612903
vt 0.903448 0.612903
vt 0.910345 0.774194
vt 0.903448 0.758065
vt 0.813793 0.774194
vt 0.820690 0.774194
vt 0.813793 0.758065
vt 0.813793 0.612903
vt 0.917241 0.580645
vt 0.986207 0.596774
vt 0.917241 0.596774
vt 0.827586 0.580645
vt 0.820690 0.564516
vt 0.820690 0.419355
vt 0.910345 0.564516
vt 0.910345 0.419355
vt 0.903448 0.419355
vt 0.910345 0.580645
vt 0.903448 0.564516
vt 0.813793 0.580645
vt 0.820690 0.580645
vt 0.813793 0.419355
vt 0.917241 0.387097
vt 0.986207 0.403226
vt 0.917241 0.403226
vt 0.827586 0.387097
vt 0.820690 0.370968
vt 0.820690 0.225806
vt 0.910345 0.370968
vt 0.910345 0.225806
vt 0.903448 0.370968
vt 0.903448 0.225806
vt 0.903448 0.387097
vt 0.910345 0.387097
vt 0.820690 0.387097
vt 0.813793 0.370968
vt 0.813793 0.225806
vt 0.917241 0.983871
vt 0.986207 0.967742
vt 0.986207 0.983871
vt 0.827586 0.967742
vt 0.820690 0.951613
vt 0.820690 0.806452
vt 0.917241 0.967742
vt 0.910345 0.951613
vt 0.910345 0.806452
vt 0.903448 0.951613
vt 0.903448 0.806452
vt 0.903448 0.967742
vt 0.910345 0.967742
vt 0.820690 0.967742
vt 0.813793 0.951613
vt 0.813793 0.806452
vt 0.687135 0.905981
vt 0.742256 0.683307
vt 0.797152 0.906284
vt 0.729378 0.596377
vt 0.716764 0.648801
vt 0.677939 0.597702
vt 0.724138 0.419355
vt 0.682759 0.338710
vt 0.682759 0.370968
vt 0.689655 0.387097
vt 0.724138 0.435484
vt 0.731034 0.516129
vt 0.772414 0.435484
vt 0.731034 0.225806
vt 0.703448 0.241935
vt 0.793103 0.306452
vt 0.765517 0.322581
vt 0.793103 0.225806
vt 0.703448 0.161290
vt 0.765517 0.161290
vt 0.703448 0.322581
vt 0.986207 0.774194
vt 0.896552 0.774194
vt 0.993103 0.612903
vt 0.993103 0.758065
vt 0.903448 0.774194
vt 0.986207 0.580645
vt 0.896552 0.580645
vt 0.993103 0.419355
vt 0.993103 0.564516
vt 0.903448 0.580645
vt 0.813793 0.564516
vt 0.986207 0.387097
vt 0.896552 0.387097
vt 0.993103 0.225806
vt 0.993103 0.370968
vt 0.813793 0.387097
vt 0.896552 0.967742
vt 0.993103 0.806452
vt 0.993103 0.951613
vt 0.813793 0.967742
vt 0.773875 0.960593
vt 0.742106 0.980407
vt 0.710357 0.960418
vt 0.678663 0.831683
vt 0.687210 0.757431
vt 0.710486 0.703122
vt 0.774005 0.703296
vt 0.797226 0.757733
vt 0.805699 0.832032
vt 0.703942 0.657191
vt 0.691044 0.649463
vt 0.681527 0.627689
vt 0.681243 0.567538
vt 0.690554 0.545279
vt 0.703375 0.536889
vt 0.716273 0.544617
vt 0.725791 0.566391
vt 0.726074 0.626541
vt 0.006897 0.500000
vt 0.337931 0.419355
vt 0.337931 0.500000
vt 0.006897 0.338710
vt 0.337931 0.338710
vt 0.337931 0.258065
vt 0.006897 0.258065
vt 0.337931 0.177419
vt 0.006897 0.177419
vt 0.337931 0.096774
vt 0.006897 0.096774
vt 0.337931 0.016129
vt 0.006897 0.983871
vt 0.337931 0.903226
vt 0.337931 0.983871
vt 0.006897 0.903226
vt 0.337931 0.822581
vt 0.006897 0.822581
vt 0.337931 0.741935
vt 0.006897 0.741935
vt 0.337931 0.661290
vt 0.006897 0.661290
vt 0.337931 0.580645
vt 0.006897 0.580645
vt 0.668966 0.967742
vt 0.668966 0.048387
vt 0.668966 0.080645
vt 0.668966 0.161290
vt 0.668966 0.241935
vt 0.668966 0.564516
vt 0.668966 0.451613
vt 0.668966 0.483871
vt 0.668966 0.322581
vt 0.668966 0.612903
vt 0.668966 0.645161
vt 0.668966 0.403226
vt 0.668966 0.693548
vt 0.668966 0.725806
vt 0.668966 0.806452
vt 0.668966 0.887097
vt 0.006897 0.419355
vt 0.006897 0.016129
vt 0.668966 0.935484
vt 0.668966 0.129032
vt 0.668966 0.209677
vt 0.668966 0.532258
vt 0.668966 0.290323
vt 0.668966 0.370968
vt 0.668966 0.774194
vt 0.668966 0.854839
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 -0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.7071 0.0000 -0.7071
vn 0.9487 0.0000 0.3162
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.0000 -0.7071
vn -0.9487 0.0000 0.3162
vn 0.0000 0.7071 0.7071
vn 0.0000 0.8944 -0.4472
vn -0.5000 -0.8660 -0.0000
vn 0.5000 0.8660 0.0000
vn -0.6124 0.3536 0.7071
vn -0.7746 0.4472 -0.4472
vn 0.5000 -0.8660 0.0000
vn -0.5000 0.8660 0.0000
vn -0.6124 -0.3536 0.7071
vn -0.7746 -0.4472 -0.4472
vn 0.0000 -0.7071 0.7071
vn 0.0000 -0.8944 -0.4472
vn 0.6124 -0.3536 0.7071
vn 0.7746 -0.4472 -0.4472
vn 0.6124 0.3536 0.7071
vn 0.7746 0.4472 -0.4472
vn -0.7071 0.7071 0.0000
vn 0.7071 0.7071 0.0000
vn -0.7071 -0.7071 0.0000
vn -0.5000 0.5000 -0.7071
vn -0.5000 0.5000 0.7071
vn 0.7071 -0.7071 0.0000
vn -0.5000 -0.5000 -0.7071
vn -0.5000 -0.5000 0.7071
vn 0.5000 -0.5000 -0.7071
vn 0.5000 -0.5000 0.7071
vn 0.5000 0.5000 -0.7071
vn 0.5000 0.5000 0.7071
vn 0.0000 0.7571 0.6532
vn 0.4991 0.8645 -0.0595
vn 0.0000 0.9982 -0.0595
vn 0.6557 0.3786 0.6532
vn 0.8645 0.4991 -0.0595
vn 0.9982 0.0000 -0.0595
vn 0.7571 0.0000 0.6532
vn 0.8645 -0.4991 -0.0595
vn 0.6557 -0.3786 0.6532
vn 0.4991 -0.8645 -0.0595
vn 0.3786 -0.6557 0.6532
vn 0.0000 -0.9982 -0.0595
vn 0.0000 -0.7571 0.6532
vn -0.4991 -0.8645 -0.0595
vn -0.3786 -0.6557 0.6532
vn -0.8645 -0.4991 -0.0595
vn -0.6557 -0.3786 0.6532
vn -0.9982 0.0000 -0.0595
vn -0.7571 0.0000 0.6532
vn -0.8645 0.4991 -0.0595
vn -0.6557 0.3786 0.6532
vn -0.4991 0.8645 -0.0595
vn -0.3786 0.6557 0.6532
vn 0.0000 -0.7169 -0.6972
vn 0.3584 -0.6208 -0.6972
vn 0.6208 -0.3584 -0.6972
vn 0.7169 0.0000 -0.6972
vn -0.3584 0.6208 -0.6972
vn 0.3584 0.6208 -0.6972
vn 0.0000 0.7169 -0.6972
vn 0.6208 0.3584 -0.6972
vn -0.6208 0.3584 -0.6972
vn -0.7169 0.0000 -0.6972
vn -0.6208 -0.3584 -0.6972
vn -0.3584 -0.6208 -0.6972
vn 0.3786 0.6557 0.6532
usemtl None
s off
f 7/1/1 1/2/1 6/3/1
f 2/4/2 7/1/2 8/5/2
f 11/6/3 5/7/3 10/8/3
f 4/9/4 9/10/4 3/11/4
f 10/12/5 12/13/5 11/14/5
f 6/3/6 8/15/6 7/1/6
f 5/16/7 6/3/7 1/2/7
f 13/17/1 19/18/1 18/19/1
f 16/20/2 24/21/2 20/22/2
f 17/23/8 23/24/8 22/25/8
f 21/26/4 16/20/4 15/27/4
f 24/21/9 22/28/9 23/29/9
f 20/30/10 18/19/10 19/18/10
f 17/31/7 22/32/7 21/33/7
f 26/34/8 27/35/8 25/36/8
f 28/37/4 31/38/4 27/35/4
f 32/39/3 29/40/3 31/38/3
f 30/41/1 25/36/1 29/42/1
f 28/37/8 26/34/8 33/43/8
f 30/41/11 33/44/11 26/34/11
f 28/37/12 34/45/12 32/39/12
f 30/46/3 32/39/3 34/47/3
f 36/48/13 37/49/13 35/50/13
f 37/49/4 42/51/4 41/52/4
f 42/51/14 39/53/14 41/52/14
f 39/54/1 36/48/1 35/50/1
f 38/55/13 36/48/13 43/56/13
f 40/57/15 43/58/15 36/48/15
f 38/55/16 44/59/16 42/51/16
f 40/60/14 42/51/14 44/61/14
f 46/62/17 47/63/17 45/64/17
f 47/63/4 52/65/4 51/66/4
f 51/66/18 50/67/18 49/68/18
f 50/69/1 45/64/1 49/70/1
f 48/71/17 46/62/17 53/72/17
f 50/69/19 53/73/19 46/62/19
f 52/65/20 53/74/20 54/75/20
f 50/67/18 52/65/18 54/76/18
f 56/77/3 57/78/3 55/79/3
f 58/80/4 61/81/4 57/78/4
f 61/81/8 60/82/8 59/83/8
f 60/84/1 55/79/1 59/85/1
f 58/80/3 56/77/3 63/86/3
f 56/77/21 64/87/21 63/88/21
f 58/80/22 64/89/22 62/90/22
f 60/82/8 62/90/8 64/91/8
f 66/92/14 67/93/14 65/94/14
f 68/95/4 71/96/4 67/93/4
f 72/97/13 69/98/13 71/96/13
f 70/99/1 65/94/1 69/100/1
f 68/95/14 66/92/14 73/101/14
f 66/92/23 74/102/23 73/103/23
f 68/95/24 74/104/24 72/97/24
f 70/105/13 72/97/13 74/106/13
f 75/107/18 78/108/18 77/109/18
f 78/108/4 81/110/4 77/109/4
f 81/110/17 80/111/17 79/112/17
f 80/113/1 75/107/1 79/114/1
f 78/108/18 76/115/18 83/116/18
f 76/115/25 84/117/25 83/118/25
f 78/108/26 84/119/26 82/120/26
f 80/111/17 82/120/17 84/121/17
f 91/122/27 93/123/27 96/124/27
f 93/125/28 94/126/28 87/127/28
f 91/122/29 92/128/29 86/129/29
f 92/128/4 88/130/4 86/129/4
f 91/131/30 95/132/30 92/128/30
f 90/133/31 94/126/31 93/134/31
f 87/127/1 89/135/1 85/136/1
f 103/137/29 105/138/29 108/139/29
f 105/140/27 106/141/27 99/142/27
f 103/137/32 104/143/32 98/144/32
f 104/143/4 100/145/4 98/144/4
f 103/146/33 107/147/33 104/143/33
f 102/148/34 106/141/34 105/149/34
f 106/141/1 97/150/1 99/142/1
f 115/151/32 117/152/32 120/153/32
f 117/154/29 118/155/29 111/156/29
f 115/151/28 116/157/28 110/158/28
f 110/158/4 119/159/4 112/160/4
f 120/161/35 116/157/35 115/162/35
f 117/163/36 113/164/36 118/155/36
f 111/156/1 113/164/1 109/165/1
f 132/166/28 126/167/28 129/168/28
f 129/169/32 130/170/32 123/171/32
f 127/172/27 128/173/27 122/174/27
f 122/174/4 131/175/4 124/176/4
f 132/177/37 128/173/37 127/178/37
f 129/179/38 125/180/38 130/170/38
f 130/170/1 121/181/1 123/171/1
f 154/182/1 146/183/1 138/184/1
f 166/185/4 168/186/4 160/187/4
f 7/1/1 2/4/1 1/2/1
f 8/5/2 11/6/2 12/13/2
f 12/13/2 4/9/2 8/5/2
f 4/9/2 2/4/2 8/5/2
f 11/6/3 8/5/3 5/7/3
f 4/9/4 12/13/4 9/10/4
f 10/12/5 9/10/5 12/13/5
f 6/3/6 5/188/6 8/15/6
f 1/2/7 3/189/7 5/16/7
f 3/189/7 9/190/7 5/16/7
f 9/190/7 10/191/7 5/16/7
f 13/17/1 14/192/1 19/18/1
f 24/21/2 23/24/2 20/22/2
f 20/22/2 19/18/2 14/192/2
f 14/192/2 16/20/2 20/22/2
f 17/23/8 20/22/8 23/24/8
f 21/26/4 24/21/4 16/20/4
f 24/21/9 21/26/9 22/28/9
f 20/30/10 17/193/10 18/19/10
f 21/33/7 15/194/7 17/31/7
f 15/194/7 13/17/7 17/31/7
f 13/17/7 18/19/7 17/31/7
f 26/34/8 28/37/8 27/35/8
f 28/37/4 32/39/4 31/38/4
f 32/39/3 30/46/3 29/40/3
f 30/41/1 26/34/1 25/36/1
f 30/41/11 34/195/11 33/44/11
f 28/37/12 33/196/12 34/45/12
f 36/48/13 38/55/13 37/49/13
f 37/49/4 38/55/4 42/51/4
f 42/51/14 40/60/14 39/53/14
f 39/54/1 40/57/1 36/48/1
f 40/57/15 44/197/15 43/58/15
f 38/55/16 43/198/16 44/59/16
f 46/62/17 48/71/17 47/63/17
f 47/63/4 48/71/4 52/65/4
f 51/66/18 52/65/18 50/67/18
f 50/69/1 46/62/1 45/64/1
f 50/69/19 54/199/19 53/73/19
f 52/65/20 48/71/20 53/74/20
f 56/77/3 58/80/3 57/78/3
f 58/80/4 62/90/4 61/81/4
f 61/81/8 62/90/8 60/82/8
f 60/84/1 56/77/1 55/79/1
f 56/77/21 60/84/21 64/87/21
f 58/80/22 63/200/22 64/89/22
f 66/92/14 68/95/14 67/93/14
f 68/95/4 72/97/4 71/96/4
f 72/97/13 70/105/13 69/98/13
f 70/99/1 66/92/1 65/94/1
f 66/92/23 70/99/23 74/102/23
f 68/95/24 73/201/24 74/104/24
f 75/107/18 76/115/18 78/108/18
f 78/108/4 82/120/4 81/110/4
f 81/110/17 82/120/17 80/111/17
f 80/113/1 76/115/1 75/107/1
f 76/115/25 80/113/25 84/117/25
f 78/108/26 83/202/26 84/119/26
f 91/122/27 90/203/27 93/123/27
f 87/127/28 88/130/28 96/204/28
f 88/130/28 95/132/28 96/204/28
f 96/204/28 93/125/28 87/127/28
f 86/129/29 85/205/29 90/203/29
f 85/205/29 89/206/29 90/203/29
f 90/203/29 91/122/29 86/129/29
f 92/128/4 95/132/4 88/130/4
f 91/131/30 96/207/30 95/132/30
f 90/133/31 89/135/31 94/126/31
f 87/127/1 94/126/1 89/135/1
f 103/137/29 102/208/29 105/138/29
f 99/142/27 100/145/27 108/209/27
f 100/145/27 107/147/27 108/209/27
f 108/209/27 105/140/27 99/142/27
f 98/144/32 97/210/32 102/208/32
f 97/210/32 101/211/32 102/208/32
f 102/208/32 103/137/32 98/144/32
f 104/143/4 107/147/4 100/145/4
f 103/146/33 108/212/33 107/147/33
f 102/148/34 101/213/34 106/141/34
f 106/141/1 101/213/1 97/150/1
f 115/151/32 114/214/32 117/152/32
f 111/156/29 112/160/29 120/215/29
f 112/160/29 119/159/29 120/215/29
f 120/215/29 117/154/29 111/156/29
f 110/158/28 109/216/28 114/214/28
f 109/216/28 113/217/28 114/214/28
f 114/214/28 115/151/28 110/158/28
f 110/158/4 116/157/4 119/159/4
f 120/161/35 119/159/35 116/157/35
f 117/163/36 114/218/36 113/164/36
f 111/156/1 118/155/1 113/164/1
f 132/166/28 127/172/28 126/167/28
f 123/171/32 124/176/32 132/219/32
f 124/176/32 131/175/32 132/219/32
f 132/219/32 129/169/32 123/171/32
f 122/174/27 121/220/27 126/167/27
f 121/220/27 125/221/27 126/167/27
f 126/167/27 127/172/27 122/174/27
f 122/174/4 128/173/4 131/175/4
f 132/177/37 131/175/37 128/173/37
f 129/179/38 126/222/38 125/180/38
f 130/170/1 125/180/1 121/181/1
f 138/184/1 136/223/1 134/224/1
f 134/224/1 156/225/1 154/182/1
f 154/182/1 152/226/1 146/183/1
f 152/226/1 150/227/1 146/183/1
f 150/227/1 148/228/1 146/183/1
f 146/183/1 144/229/1 142/230/1
f 142/230/1 140/231/1 138/184/1
f 138/184/1 134/224/1 154/182/1
f 146/183/1 142/230/1 138/184/1
f 168/186/4 157/232/4 158/233/4
f 158/233/4 159/234/4 160/187/4
f 160/187/4 161/235/4 162/236/4
f 162/236/4 163/237/4 160/187/4
f 163/237/4 164/238/4 160/187/4
f 164/238/4 165/239/4 166/185/4
f 166/185/4 167/240/4 168/186/4
f 168/186/4 158/233/4 160/187/4
f 164/238/4 166/185/4 160/187/4
s 1
f 134/241/39 135/242/40 133/243/41
f 135/242/40 138/244/42 137/245/43
f 138/244/42 139/246/44 137/245/43
f 140/247/45 141/248/46 139/246/44
f 142/249/47 143/250/48 141/248/46
f 144/251/49 145/252/50 143/250/48
f 146/253/51 147/254/52 145/255/50
f 148/256/53 149/257/54 147/254/52
f 150/258/55 151/259/56 149/257/54
f 152/260/57 153/261/58 151/259/56
f 154/262/59 155/263/60 153/261/58
f 156/264/61 133/243/41 155/263/60
f 147/254/52 163/265/62 145/255/50
f 143/250/48 163/266/62 162/267/63
f 143/250/48 161/268/64 141/248/46
f 141/248/46 160/269/65 139/246/44
f 133/243/41 168/270/66 155/263/60
f 133/243/41 158/271/67 157/272/68
f 139/246/44 159/273/69 137/245/43
f 153/261/58 168/274/66 167/275/70
f 137/245/43 158/276/67 135/242/40
f 151/259/56 167/277/70 166/278/71
f 151/259/56 165/279/72 149/257/54
f 149/257/54 164/280/73 147/254/52
f 134/241/39 136/281/74 135/242/40
f 135/242/40 136/281/74 138/244/42
f 138/244/42 140/247/45 139/246/44
f 140/247/45 142/249/47 141/248/46
f 142/249/47 144/251/49 143/250/48
f 144/251/49 146/282/51 145/252/50
f 146/253/51 148/256/53 147/254/52
f 148/256/53 150/258/55 149/257/54
f 150/258/55 152/260/57 151/259/56
f 152/260/57 154/262/59 153/261/58
f 154/262/59 156/264/61 155/263/60
f 156/264/61 134/241/39 133/243/41
f 147/254/52 164/283/73 163/265/62
f 143/250/48 145/252/50 163/266/62
f 143/250/48 162/284/63 161/268/64
f 141/248/46 161/285/64 160/269/65
f 133/243/41 157/286/68 168/270/66
f 133/243/41 135/242/40 158/271/67
f 139/246/44 160/287/65 159/273/69
f 153/261/58 155/263/60 168/274/66
f 137/245/43 159/288/69 158/276/67
f 151/259/56 153/261/58 167/277/70
f 151/259/56 166/289/71 165/279/72
f 149/257/54 165/290/72 164/280/73

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 821 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B