Merge branch 'HbmMods:master' into master

This commit is contained in:
Raaaaaaaaaay 2026-01-22 22:19:03 +02:00 committed by GitHub
commit 17f76d6dc1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
60 changed files with 297 additions and 8593 deletions

View File

@ -7,6 +7,7 @@
# Yes this is a mostly untouched Github actions template # Yes this is a mostly untouched Github actions template
name: Java CI with Gradle name: Java CI with Gradle
on: on:
@ -16,19 +17,36 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up JDK 8 - name: Set up JDK 8
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
java-version: '8' java-version: '8'
distribution: 'temurin' # Temurin because it's default :P distribution: 'temurin' # Temurin because it's default :P
# Calculate days since 10/10/10
- name: Calculate days since 10/10/10
id: calculate_days
run: |
start_date="2010-10-10"
current_date=$(date +%Y-%m-%d)
days_since=$(( ($(date -d "$current_date" +%s) - $(date -d "$start_date" +%s)) / 86400 ))
echo "days=$days_since" >> $GITHUB_OUTPUT
# Update version files with proper sed syntax
- name: Update version files
run: |
days=${{ steps.calculate_days.outputs.days }}
# Use proper sed syntax for Linux runners
sed -i "s/public static final String VERSION = \".*\";/public static final String VERSION = \"1.0.27 BETA ($days)\";/" src/main/java/com/hbm/lib/RefStrings.java
sed -i "s/mod_build_number=.*/mod_build_number=$days/" gradle.properties
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle - name: Setup Gradle
@ -42,5 +60,3 @@ jobs:
with: with:
# A file, directory or wildcard pattern that describes what to upload # A file, directory or wildcard pattern that describes what to upload
path: ./build/libs path: ./build/libs

View File

@ -1,9 +1,24 @@
## Changed ## Changed
* Updated russian localization
* Rad absorbers now use metadata, existing blocks will be converted automatically * Rad absorbers now use metadata, existing blocks will be converted automatically
* Fissure bombs that go off in crater biomes now create fissures with metadata 1 which creates radioactive volcanic lava * Fissure bombs that go off in crater biomes now create fissures with metadata 1 which creates radioactive volcanic lava
* If a crater biome is created on top of an existing fissue, it will keep producing normal volcanic lava * If a crater biome is created on top of an existing fissure, it will keep producing normal volcanic lava
* Simplified the battery socket's client packets, reducing CPU load * Simplified the battery socket's client packets, reducing CPU load
* Muzzle flashes on guns now work in third person mode, including on other players and on NPCs, making it more apparent when you're being fired at
* This includes non-standard special effects like the .44 gap flash and the .35-800 ejector plume
* Removed the old unused satelite deco blocks, freeing up 6 block IDs
* Crucibles that smelt metal with no template set will no place the metal in the recipe stack instead of the waste stack, this should make it easier to get a recipe to work in the many, many cases where people add the template after smelting the material
* Battery sockets and the FENSU now support the copy tool
* Removed unused displaylist support from the model loader
* DLs have been long phased out in favor of VBOs anyway
* Rebranded canned horse slime
* Now with extra bone marrow
# Fixed # Fixed
* Potentially fixed yet another issue regarding crates * Potentially fixed yet another issue regarding crates
* Fixed battery socket `fillpercent` RoR function always assuming a max power of 1 * Fixed battery socket `fillpercent` RoR function always assuming a max power of 1
* Fixed issue where multiblock ports would generate many OpenComputers component entries
* Fixed RBMK automatic control rods having incorrect settings when using the copy tool
* Fixed battery sockets producing junk debug data in the logs
* Fixed an issue where the charging station would crash when trying to charge certain items
* Fixed the DFC's core component not dropping its contents when mined

View File

@ -30,6 +30,8 @@ import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
import com.hbm.util.Compat;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockFalling; import net.minecraft.block.BlockFalling;
@ -615,15 +617,7 @@ public class ModBlocks {
public static Block tesla; public static Block tesla;
public static Block sat_mapper;
public static Block sat_scanner;
public static Block sat_radar;
public static Block sat_laser;
public static Block sat_foeq;
public static Block sat_resonator;
public static Block sat_dock; public static Block sat_dock;
public static Block soyuz_capsule; public static Block soyuz_capsule;
public static Block crate_supply; public static Block crate_supply;
@ -2122,13 +2116,6 @@ public class ModBlocks {
launch_table = new LaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table"); launch_table = new LaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table");
soyuz_launcher = new SoyuzLauncher(Material.iron).setBlockName("soyuz_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_launcher"); soyuz_launcher = new SoyuzLauncher(Material.iron).setBlockName("soyuz_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_launcher");
sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper");
sat_radar = new DecoBlock(Material.iron).setBlockName("sat_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_radar");
sat_scanner = new DecoBlock(Material.iron).setBlockName("sat_scanner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_scanner");
sat_laser = new DecoBlock(Material.iron).setBlockName("sat_laser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_laser");
sat_foeq = new DecoBlock(Material.iron).setBlockName("sat_foeq").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_foeq");
sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator");
sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock"); sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock");
soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule"); soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule");
crate_supply = new BlockSupplyCrate(Material.wood).setBlockName("crate_supply").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":crate_can"); crate_supply = new BlockSupplyCrate(Material.wood).setBlockName("crate_supply").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":crate_can");
@ -3470,14 +3457,6 @@ public class ModBlocks {
//Guide //Guide
GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName());
//Sat Blocks
GameRegistry.registerBlock(sat_mapper, sat_mapper.getUnlocalizedName());
GameRegistry.registerBlock(sat_scanner, sat_scanner.getUnlocalizedName());
GameRegistry.registerBlock(sat_radar, sat_radar.getUnlocalizedName());
GameRegistry.registerBlock(sat_laser, sat_laser.getUnlocalizedName());
GameRegistry.registerBlock(sat_foeq, sat_foeq.getUnlocalizedName());
GameRegistry.registerBlock(sat_resonator, sat_resonator.getUnlocalizedName());
//Rails //Rails
GameRegistry.registerBlock(rail_wood, ItemBlockBase.class, rail_wood.getUnlocalizedName()); GameRegistry.registerBlock(rail_wood, ItemBlockBase.class, rail_wood.getUnlocalizedName());
GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName());
@ -3547,7 +3526,7 @@ public class ModBlocks {
GameRegistry.registerBlock(vacuum, vacuum.getUnlocalizedName()); GameRegistry.registerBlock(vacuum, vacuum.getUnlocalizedName());
// OC Compat Items // OC Compat Items
if (Loader.isModLoaded("OpenComputers")) { if(Loader.isModLoaded(Compat.MOD_OC)) {
register(oc_cable_paintable); register(oc_cable_paintable);
} }

View File

@ -1,12 +1,18 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityCore; import com.hbm.tileentity.machine.TileEntityCore;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -50,5 +56,43 @@ public class CoreCore extends BlockContainer {
return false; return false;
} }
} }
private Random rand = new Random();
// shitty copy pasted crap for the 50th time because i hate this block
@Override
public void breakBlock(World world, int x, int y, int z, Block b, int m) {
TileEntityCore core = (TileEntityCore) world.getTileEntity(x, y, z);
if(core != null) {
for(int i1 = 0; i1 < core.getSizeInventory(); ++i1) {
ItemStack itemstack = core.getStackInSlot(i1);
if(itemstack != null) {
float f = this.rand.nextFloat() * 0.8F + 0.1F;
float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
float f2 = this.rand.nextFloat() * 0.8F + 0.1F;
while(itemstack.stackSize > 0) {
int j1 = this.rand.nextInt(21) + 10;
if(j1 > itemstack.stackSize) j1 = itemstack.stackSize;
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
float f3 = 0.05F;
entityitem.motionX = (float) this.rand.nextGaussian() * f3;
entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float) this.rand.nextGaussian() * f3;
world.spawnEntityInWorld(entityitem);
}
}
}
world.func_147453_f(x, y, z, b);
}
super.breakBlock(world, x, y, z, b, m);
}
} }

View File

@ -149,7 +149,7 @@ public class BobmazonOfferFactory {
special.add(new Offer(ItemKitNBT.create( special.add(new Offer(ItemKitNBT.create(
new ItemStack(ModItems.rod_of_discord).setStackDisplayName("Cock Joke"), new ItemStack(ModItems.rod_of_discord).setStackDisplayName("Cock Joke"),
ModItems.canned_conserve.stackFromEnum(64, EnumFoodType.JIZZ).setStackDisplayName("Class A Horse Semen"), ModItems.canned_conserve.stackFromEnum(64, EnumFoodType.SLIME).setStackDisplayName("Class A Horse Semen"),
new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"), new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"),
new ItemStack(ModItems.gem_alexandrite) new ItemStack(ModItems.gem_alexandrite)
).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64)); ).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64));

View File

@ -67,7 +67,7 @@ public class PedestalRecipes extends SerializableRecipe {
new OreDictStack(STAR.ingot()), new OreDictStack(DURA.plateCast()), new OreDictStack(STAR.ingot()))); new OreDictStack(STAR.ingot()), new OreDictStack(DURA.plateCast()), new OreDictStack(STAR.ingot())));
register(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker), register(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker),
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()), new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.SLIME), new OreDictStack(GOLD.plateCast()),
new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()), new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()),
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast())) new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast()))
.extra(PedestalExtraCondition.SUN)); .extra(PedestalExtraCondition.SUN));

View File

@ -936,33 +936,6 @@ public class ModItems {
public static Item cap_fritz; public static Item cap_fritz;
public static Item ring_pull; public static Item ring_pull;
public static Item bdcl; public static Item bdcl;
//public static Item canned_beef;
//public static Item canned_tuna;
//public static Item canned_mystery;
//public static Item canned_pashtet;
//public static Item canned_cheese;
//public static Item canned_jizz;
//public static Item canned_milk;
//public static Item canned_ass;
//public static Item canned_pizza;
//public static Item canned_tube;
//public static Item canned_tomato;
//public static Item canned_asbestos;
//public static Item canned_bhole;
//public static Item canned_hotdogs;
//public static Item canned_leftovers;
//public static Item canned_yogurt;
//public static Item canned_stew;
//public static Item canned_chinese;
//public static Item canned_oil;
//public static Item canned_fist;
//public static Item canned_spam;
//public static Item canned_fried;
//public static Item canned_napalm;
//public static Item canned_diesel;
//public static Item canned_kerosene;
//public static Item canned_recursion;
//public static Item canned_bark;
public static ItemEnumMulti canned_conserve; public static ItemEnumMulti canned_conserve;
public static Item can_key; public static Item can_key;

View File

@ -113,7 +113,7 @@ public class ItemConserve extends ItemEnumMulti {
MYSTERY(6, 0.5F), MYSTERY(6, 0.5F),
PASHTET(4, 0.5F), PASHTET(4, 0.5F),
CHEESE(3, 1F), CHEESE(3, 1F),
JIZZ(15, 5F), // :3 SLIME(15, 5F),
MILK(5, 0.25F), MILK(5, 0.25F),
ASS(6, 0.75F), // :3 ASS(6, 0.75F), // :3
PIZZA(8, 075F), PIZZA(8, 075F),

View File

@ -459,9 +459,9 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I
for(int i = 0; i < confNo; i++) { for(int i = 0; i < confNo; i++) {
IHUDComponent[] components = gun.getConfig(stack, i).getHUDComponents(stack); IHUDComponent[] components = gun.getConfig(stack, i).getHUDComponents(stack);
int bottomOffset = 0;
if(components != null) for(IHUDComponent component : components) { if(components != null) for(IHUDComponent component : components) {
int bottomOffset = 0;
component.renderHUDComponent(event, type, player, stack, bottomOffset, i); component.renderHUDComponent(event, type, player, stack, bottomOffset, i);
bottomOffset += component.getComponentHeight(player, stack); bottomOffset += component.getComponentHeight(player, stack);
} }

View File

@ -1,5 +1,7 @@
package com.hbm.items.weapon.sedna.factory; package com.hbm.items.weapon.sedna.factory;
import java.util.function.BiConsumer;
import com.hbm.interfaces.IOrderedEnum; import com.hbm.interfaces.IOrderedEnum;
import com.hbm.items.ItemEnumMulti; import com.hbm.items.ItemEnumMulti;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -8,6 +10,8 @@ import com.hbm.items.weapon.sedna.Crosshair;
import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.GunConfig;
import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.Receiver;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
@ -16,10 +20,12 @@ import com.hbm.particle.SpentCasing;
import com.hbm.particle.SpentCasing.CasingType; import com.hbm.particle.SpentCasing.CasingType;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class GunFactory { public class GunFactory {
public static BulletConfig ammo_debug; public static BulletConfig ammo_debug;
public static BulletConfig ammo_debug_shot;
public static SpentCasing CASING44 = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F, 1.0F, 1.5F).setColor(SpentCasing.COLOR_CASE_44); public static SpentCasing CASING44 = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F, 1.0F, 1.5F).setColor(SpentCasing.COLOR_CASE_44);
@ -32,6 +38,7 @@ public class GunFactory {
/// BULLLET CFGS /// /// BULLLET CFGS ///
ammo_debug = new BulletConfig().setItem(ModItems.ammo_debug).setSpread(0.01F).setRicochetAngle(45).setCasing(CASING44.clone().register("DEBUG0")); ammo_debug = new BulletConfig().setItem(ModItems.ammo_debug).setSpread(0.01F).setRicochetAngle(45).setCasing(CASING44.clone().register("DEBUG0"));
ammo_debug_shot = new BulletConfig().setItem(ModItems.ammo_debug).setSpread(0.05F).setProjectiles(6).setRicochetAngle(45).setCasing(CASING44.clone().register("DEBUG1"));
/// GUNS /// /// GUNS ///
ModItems.gun_debug = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig() ModItems.gun_debug = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig()
@ -40,9 +47,15 @@ public class GunFactory {
.dmg(10F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) .dmg(10F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F)
.mag(new MagazineFullReload(0, 12).addConfigs(ammo_debug)) .mag(new MagazineFullReload(0, 12).addConfigs(ammo_debug))
.offset(0.75, -0.0625, -0.3125D) .offset(0.75, -0.0625, -0.3125D)
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE)) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE),
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM) new Receiver(1)
.decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .dmg(5F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F)
.mag(new MagazineFullReload(1, 12).addConfigs(ammo_debug_shot))
.offset(0.75, -0.0625, -0.3125D)
.canFire(Lego.LAMBDA_SECOND_CAN_FIRE).fire(Lego.LAMBDA_SECOND_FIRE))
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).ps((stack, ctx) -> { Lego.clickReceiver(stack, ctx, 1); })
.pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM)
.decider(LAMBDA_DEBUG_DECIDER)
.anim(Lego.LAMBDA_DEBUG_ANIMS) .anim(Lego.LAMBDA_DEBUG_ANIMS)
).setUnlocalizedName("gun_debug"); ).setUnlocalizedName("gun_debug");
@ -79,6 +92,17 @@ public class GunFactory {
MainRegistry.proxy.registerGunCfg(); MainRegistry.proxy.registerGunCfg();
} }
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_DEBUG_DECIDER = (stack, ctx) -> {
int index = ctx.configIndex;
GunState lastState = ItemGunBaseNT.getState(stack, index);
GunStateDecider.deciderStandardFinishDraw(stack, lastState, index);
GunStateDecider.deciderStandardClearJam(stack, lastState, index);
GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index);
GunStateDecider.deciderStandardReload(stack, ctx, lastState, 1, index);
GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getPrimary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; });
GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 1, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; });
};
public static enum EnumAmmo implements IOrderedEnum { public static enum EnumAmmo implements IOrderedEnum {
STONE, STONE_AP, STONE_IRON, STONE_SHOT, STONE, STONE_AP, STONE_IRON, STONE_SHOT,
M357_BP, M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS, M357_BP, M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS,

View File

@ -106,6 +106,7 @@ public class GunFactoryClient {
//PROJECTILES //PROJECTILES
ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET);
ammo_debug_shot.setRenderer(LegoClient.RENDER_STANDARD_BULLET);
stone.setRenderer(LegoClient.RENDER_STANDARD_BULLET); stone.setRenderer(LegoClient.RENDER_STANDARD_BULLET);
flint.setRenderer(LegoClient.RENDER_STANDARD_BULLET); flint.setRenderer(LegoClient.RENDER_STANDARD_BULLET);
@ -238,7 +239,8 @@ public class GunFactoryClient {
setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots
//HUDS //HUDS
((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO, LegoClient.HUD_COMPONENT_AMMO_SECOND);
((ItemGunBaseNT) ModItems.gun_pepperbox) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_pepperbox) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
((ItemGunBaseNT) ModItems.gun_light_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
((ItemGunBaseNT) ModItems.gun_light_revolver_atlas) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver_atlas) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);

View File

@ -20,7 +20,8 @@ public class GunStateDecider {
/** /**
* The meat and bones of the gun system's state machine. * The meat and bones of the gun system's state machine.
* This standard decider can handle guns with an automatic primary receiver, as well as one receiver's reloading state. * This standard decider can handle guns with an automatic primary receiver, as well as one receiver's reloading state.
* It supports draw delays as well as semi and auto fire * It supports draw delays as well as semi and auto fire with a standard left click refire check.
* Only handles single receiver weapons!
*/ */
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_STANDARD_DECIDER = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> LAMBDA_STANDARD_DECIDER = (stack, ctx) -> {
int index = ctx.configIndex; int index = ctx.configIndex;

View File

@ -175,6 +175,7 @@ public class Lego {
/** Returns true if the mag has ammo in it. Used by keybind functions on whether to fire, and deciders on whether to trigger a refire. */ /** Returns true if the mag has ammo in it. Used by keybind functions on whether to fire, and deciders on whether to trigger a refire. */
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_STANDARD_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; }; public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_STANDARD_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; };
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_SECOND_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[1].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; };
/** Returns true if the mag has ammo in it, and the gun is in the locked on state */ /** Returns true if the mag has ammo in it, and the gun is in the locked on state */
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_LOCKON_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0 && ItemGunBaseNT.getIsLockedOn(stack); }; public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_LOCKON_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0 && ItemGunBaseNT.getIsLockedOn(stack); };
@ -187,26 +188,29 @@ public class Lego {
/** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg */ /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg */
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_STANDARD_FIRE = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> LAMBDA_STANDARD_FIRE = (stack, ctx) -> {
doStandardFire(stack, ctx, GunAnimation.CYCLE, true); doStandardFire(stack, ctx, GunAnimation.CYCLE, 0, true);
};
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_SECOND_FIRE = (stack, ctx) -> {
doStandardFire(stack, ctx, GunAnimation.CYCLE, 1, true);
}; };
/** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, ignores wear */ /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, ignores wear */
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_NOWEAR_FIRE = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> LAMBDA_NOWEAR_FIRE = (stack, ctx) -> {
doStandardFire(stack, ctx, GunAnimation.CYCLE, false); doStandardFire(stack, ctx, GunAnimation.CYCLE, 0, false);
}; };
/** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, then resets lockon progress */ /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, then resets lockon progress */
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_LOCKON_FIRE = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> LAMBDA_LOCKON_FIRE = (stack, ctx) -> {
doStandardFire(stack, ctx, GunAnimation.CYCLE, true); doStandardFire(stack, ctx, GunAnimation.CYCLE, 0, true);
ItemGunBaseNT.setIsLockedOn(stack, false); ItemGunBaseNT.setIsLockedOn(stack, false);
}; };
public static void doStandardFire(ItemStack stack, LambdaContext ctx, GunAnimation anim, boolean calcWear) { public static void doStandardFire(ItemStack stack, LambdaContext ctx, GunAnimation anim, int receiver, boolean calcWear) {
EntityLivingBase entity = ctx.entity; EntityLivingBase entity = ctx.entity;
EntityPlayer player = ctx.getPlayer(); EntityPlayer player = ctx.getPlayer();
int index = ctx.configIndex; int index = ctx.configIndex;
if(anim != null) ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex); if(anim != null) ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex);
boolean aim = ItemGunBaseNT.getIsAiming(stack); boolean aim = ItemGunBaseNT.getIsAiming(stack);
Receiver primary = ctx.config.getReceivers(stack)[0]; Receiver primary = ctx.config.getReceivers(stack)[receiver];
IMagazine mag = primary.getMagazine(stack); IMagazine mag = primary.getMagazine(stack);
BulletConfig config = (BulletConfig) mag.getType(stack, ctx.inventory); BulletConfig config = (BulletConfig) mag.getType(stack, ctx.inventory);

View File

@ -35,6 +35,7 @@ public class LegoClient {
public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO = new HUDComponentAmmoCounter(0); public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO = new HUDComponentAmmoCounter(0);
public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_MIRROR = new HUDComponentAmmoCounter(0).mirror(); public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_MIRROR = new HUDComponentAmmoCounter(0).mirror();
public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_NOCOUNTER = new HUDComponentAmmoCounter(0).noCounter(); public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_NOCOUNTER = new HUDComponentAmmoCounter(0).noCounter();
public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_SECOND = new HUDComponentAmmoCounter(1);
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_STANDARD_BULLET = (bullet, interp) -> { public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_STANDARD_BULLET = (bullet, interp) -> {
double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp;

View File

@ -154,7 +154,7 @@ public class XFactory9mm {
ItemGunBaseNT.setTimer(stack, index, primary.getDelayAfterFire(stack)); ItemGunBaseNT.setTimer(stack, index, primary.getDelayAfterFire(stack));
EntityDamageUtil.attackEntityFromNT(player, BulletConfig.getDamage(player, player, DamageClass.PHYSICAL), 1_000F, true, false, 1D, 5F, 0F); EntityDamageUtil.attackEntityFromNT(player, BulletConfig.getDamage(player, player, DamageClass.PHYSICAL), 1_000F, true, false, 1D, 5F, 0F);
} else { } else {
Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, true); Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, 0, true);
} }
}; };

View File

@ -124,7 +124,7 @@ public class XFactoryFolly {
}; };
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_FIRE = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> LAMBDA_FIRE = (stack, ctx) -> {
Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, false); Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, 0, false);
}; };
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_CAN_FIRE = (stack, ctx) -> { public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_CAN_FIRE = (stack, ctx) -> {

View File

@ -41,7 +41,7 @@ public class HUDComponentAmmoCounter implements IHUDComponent {
@Override @Override
public int getComponentHeight(EntityPlayer player, ItemStack stack){ public int getComponentHeight(EntityPlayer player, ItemStack stack){
return 24; return 19;
} }
@Override @Override
@ -52,7 +52,7 @@ public class HUDComponentAmmoCounter implements IHUDComponent {
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = Minecraft.getMinecraft();
int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)) + (noCounter ? 14 : 0); int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)) + (noCounter ? 14 : 0);
int pZ = resolution.getScaledHeight() - bottomOffset - 23; int pZ = resolution.getScaledHeight() - bottomOffset - 18;
ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem();
IMagazine mag = gun.getConfig(stack, gunIndex).getReceivers(stack)[this.receiver].getMagazine(stack); IMagazine mag = gun.getConfig(stack, gunIndex).getReceivers(stack)[this.receiver].getMagazine(stack);

View File

@ -28,7 +28,6 @@ import com.hbm.items.ItemEnums.EnumLegendaryType;
import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPages;
import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemEnums.EnumPlantType;
import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.food.ItemConserve.EnumFoodType;
import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType;
import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBattery;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
@ -616,12 +615,6 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip });
addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() });
addShapelessAuto(new ItemStack(ModItems.sat_mapper), new Object[] { ModBlocks.sat_mapper });
addShapelessAuto(new ItemStack(ModItems.sat_scanner), new Object[] { ModBlocks.sat_scanner });
addShapelessAuto(new ItemStack(ModItems.sat_radar), new Object[] { ModBlocks.sat_radar });
addShapelessAuto(new ItemStack(ModItems.sat_laser), new Object[] { ModBlocks.sat_laser });
addShapelessAuto(new ItemStack(ModItems.sat_resonator), new Object[] { ModBlocks.sat_resonator });
addShapelessAuto(new ItemStack(ModItems.sat_foeq), new Object[] { ModBlocks.sat_foeq });
addShapelessAuto(new ItemStack(ModItems.geiger_counter), new Object[] { ModBlocks.geiger }); addShapelessAuto(new ItemStack(ModItems.geiger_counter), new Object[] { ModBlocks.geiger });
addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
@ -876,7 +869,6 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateCast() });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot });

View File

@ -1471,6 +1471,12 @@ public class MainRegistry {
ignoreMappings.add("hbm:tile.fusion_motor"); ignoreMappings.add("hbm:tile.fusion_motor");
ignoreMappings.add("hbm:tile.machine_spp_bottom"); ignoreMappings.add("hbm:tile.machine_spp_bottom");
ignoreMappings.add("hbm:tile.machine_spp_top"); ignoreMappings.add("hbm:tile.machine_spp_top");
ignoreMappings.add("hbm:tile.sat_mapper");
ignoreMappings.add("hbm:tile.sat_radar");
ignoreMappings.add("hbm:tile.sat_scanner");
ignoreMappings.add("hbm:tile.sat_laser");
ignoreMappings.add("hbm:tile.sat_foeq");
ignoreMappings.add("hbm:tile.sat_resonator");
/// REMAP /// /// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -36,7 +36,6 @@ import com.hbm.handler.threading.PacketThreading;
import com.hbm.items.IEquipReceiver; import com.hbm.items.IEquipReceiver;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.armor.*; import com.hbm.items.armor.*;
import com.hbm.items.food.ItemConserve.EnumFoodType;
import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.tool.ItemGuideBook.BookType;
import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.ItemGunBaseNT;
@ -1125,8 +1124,6 @@ public class ModEventHandler {
@SubscribeEvent @SubscribeEvent
public void onItemPickup(PlayerEvent.ItemPickupEvent event) { public void onItemPickup(PlayerEvent.ItemPickupEvent event) {
if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_conserve && EnumUtil.grabEnumSafely(EnumFoodType.class, event.pickedUp.getEntityItem().getItemDamage()) == EnumFoodType.JIZZ)
event.player.triggerAchievement(MainRegistry.achC20_5);
if(event.pickedUp.getEntityItem().getItem() == Items.slime_ball) if(event.pickedUp.getEntityItem().getItem() == Items.slime_ball)
event.player.triggerAchievement(MainRegistry.achSlimeball); event.player.triggerAchievement(MainRegistry.achSlimeball);
} }

View File

@ -301,13 +301,6 @@ public class ResourceManager {
public static final IModelCustom dud_salted = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_salted.obj")).asVBO(); public static final IModelCustom dud_salted = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_salted.obj")).asVBO();
//Satellites //Satellites
public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj"));
public static final IModelCustom sat_radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_radar.obj"));
public static final IModelCustom sat_resonator = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_resonator.obj"));
public static final IModelCustom sat_scanner = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_scanner.obj"));
public static final IModelCustom sat_mapper = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_mapper.obj"));
public static final IModelCustom sat_laser = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_laser.obj"));
public static final IModelCustom sat_foeq = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq.obj"));
public static final IModelCustom sat_foeq_burning = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_burning.obj")); public static final IModelCustom sat_foeq_burning = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_burning.obj"));
public static final IModelCustom sat_foeq_fire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_fire.obj")); public static final IModelCustom sat_foeq_fire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_fire.obj"));

View File

@ -18,6 +18,7 @@ public class HbmAnimations {
//animation is playing, though this will cancel the animation entirely. //animation is playing, though this will cancel the animation entirely.
public static final Animation[][] hotbar = new Animation[9][8]; //now with 8 parallel rails per slot! time to get railed! public static final Animation[][] hotbar = new Animation[9][8]; //now with 8 parallel rails per slot! time to get railed!
/** Keyframe-based animation system primarily used for guns, not to be confused with Drillgon's animloader system. */
public static class Animation { public static class Animation {
//the "name" of the animation slot. if the item has a different key than //the "name" of the animation slot. if the item has a different key than

View File

@ -495,8 +495,4 @@ public class HFRWavefrontObject implements IModelCustomNamed {
public WavefrontObjVBO asVBO() { public WavefrontObjVBO asVBO() {
return new WavefrontObjVBO(this); return new WavefrontObjVBO(this);
} }
public WavefrontObjDisplayList asDisplayList() {
return new WavefrontObjDisplayList(this);
}
} }

View File

@ -1,106 +0,0 @@
package com.hbm.render.loader;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.Tessellator;
import net.minecraftforge.client.model.obj.GroupObject;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class WavefrontObjDisplayList implements IModelCustomNamed {
public List<Pair<String, Integer>> nameToCallList = new ArrayList<>();
public WavefrontObjDisplayList(WavefrontObject obj) {
Tessellator tes = Tessellator.instance;
for(GroupObject g : obj.groupObjects){
int list = GL11.glGenLists(1);
GL11.glNewList(list, GL11.GL_COMPILE);
tes.startDrawing(g.glDrawingMode);
g.render(tes);
tes.draw();
GL11.glEndList();
nameToCallList.add(Pair.of(g.name, list));
}
}
public WavefrontObjDisplayList(HFRWavefrontObject obj) {
for(S_GroupObject g : obj.groupObjects){
int list = GL11.glGenLists(1);
GL11.glNewList(list, GL11.GL_COMPILE);
g.render();
GL11.glEndList();
nameToCallList.add(Pair.of(g.name, list));
}
}
public int getListForName(String name){
for(Pair<String, Integer> p : nameToCallList){
if(p.getLeft().equalsIgnoreCase(name)){
return p.getRight();
}
}
return 0;
}
@Override
public String getType() {
return "obj_list";
}
@Override
public void renderAll() {
for(Pair<String, Integer> p : nameToCallList)
GL11.glCallList(p.getRight());
}
@Override
public void renderOnly(String... groupNames) {
for(Pair<String, Integer> p : nameToCallList){
for(String name : groupNames){
if(p.getLeft().equalsIgnoreCase(name)){
GL11.glCallList(p.getRight());
break;
}
}
}
}
@Override
public void renderPart(String partName) {
for(Pair<String, Integer> p : nameToCallList){
if(p.getLeft().equalsIgnoreCase(partName)){
GL11.glCallList(p.getRight());
}
}
}
@Override
public void renderAllExcept(String... excludedGroupNames) {
for(Pair<String, Integer> p : nameToCallList){
boolean skip = false;
for(String name : excludedGroupNames){
if(p.getLeft().equalsIgnoreCase(name)){
skip = true;
break;
}
}
if(!skip){
GL11.glCallList(p.getRight());
}
}
}
@Override
public List<String> getPartNames() {
List<String> names = new ArrayList<String>();
for(Pair<String, Integer> data : nameToCallList) {
names.add(data.getLeft());
}
return names;
}
}

View File

@ -446,20 +446,28 @@ public class RenderBobble extends TileEntitySpecialRenderer {
break; break;
case BOB: case BOB:
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
this.bindTexture(ResourceManager.mini_nuke_tex);
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0.75, 1, 0.9); GL11.glTranslatef(0, 0.6875F, 0.625F);
for(int i = 0; i < 3; i++) { GL11.glRotated(-90, 1, 0, 0);
ResourceManager.projectiles.renderPart("MiniNuke"); GL11.glScaled(0.125, 0.125, 0.125);
GL11.glTranslated(-0.75, 0, 0); Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.fatman_mininuke_tex);
GL11.glTranslatef(-6, 0, 0);
for(int i = -1; i <= 1; i++) {
GL11.glTranslatef(3, 0, 0);
ResourceManager.fatman.renderPart("MiniNuke");
} }
GL11.glPopMatrix(); GL11.glPopMatrix();
this.bindTexture(ResourceManager.mini_mirv_tex); GL11.glPushMatrix();
GL11.glTranslated(0, 0.75, -0.9); GL11.glTranslatef(0.25F, 0.3125F, -0.5F);
GL11.glRotated(-90, 1, 0, 0);
GL11.glRotated(90, 0, 1, 0); GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(90, 1, 0, 0); GL11.glScaled(0.1, 0.1, 0.1);
ResourceManager.projectiles.renderPart("MiniMIRV"); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.double_barrel_sacred_dragon_tex);
ResourceManager.double_barrel.renderPart("Stock");
ResourceManager.double_barrel.renderPart("BarrelShort");
ResourceManager.double_barrel.renderPart("Buckle");
ResourceManager.double_barrel.renderPart("Lever");
GL11.glPopMatrix();
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
break; break;
case VAER: case VAER:

View File

@ -118,118 +118,6 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer {
ResourceManager.duchessgambit.renderAll(); ResourceManager.duchessgambit.renderAll();
} }
if(b == ModBlocks.sat_radar) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_base_tex);
ResourceManager.sat_base.renderAll();
bindTexture(ResourceManager.sat_radar_tex);
ResourceManager.sat_radar.renderAll();
}
if(b == ModBlocks.sat_resonator) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_base_tex);
ResourceManager.sat_base.renderAll();
bindTexture(ResourceManager.sat_resonator_tex);
ResourceManager.sat_resonator.renderAll();
}
if(b == ModBlocks.sat_scanner) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_base_tex);
ResourceManager.sat_base.renderAll();
bindTexture(ResourceManager.sat_scanner_tex);
ResourceManager.sat_scanner.renderAll();
}
if(b == ModBlocks.sat_mapper) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_base_tex);
ResourceManager.sat_base.renderAll();
bindTexture(ResourceManager.sat_mapper_tex);
ResourceManager.sat_mapper.renderAll();
}
if(b == ModBlocks.sat_laser) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_base_tex);
ResourceManager.sat_base.renderAll();
bindTexture(ResourceManager.sat_laser_tex);
ResourceManager.sat_laser.renderAll();
}
if(b == ModBlocks.sat_foeq) {
GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0);
GL11.glRotated(90, 0, 1, 0);
switch(tileentity.getBlockMetadata()) {
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glEnable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.sat_foeq_tex);
ResourceManager.sat_foeq.renderAll();
}
if(b == ModBlocks.sat_dock) { if(b == ModBlocks.sat_dock) {
GL11.glRotatef(180, 0F, 0F, 1F); GL11.glRotatef(180, 0F, 0F, 1F);
GL11.glTranslatef(0, -1.5F, 0); GL11.glTranslatef(0, -1.5F, 0);

View File

@ -11,6 +11,7 @@ import com.hbm.animloader.AnimationWrapper.EndResult;
import com.hbm.animloader.AnimationWrapper.EndType; import com.hbm.animloader.AnimationWrapper.EndType;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.render.loader.IModelCustomNamed; import com.hbm.render.loader.IModelCustomNamed;
import com.hbm.render.tileentity.door.IRenderDoors;
import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.TileEntityDoorGeneric;
@ -32,86 +33,96 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer {
TileEntityDoorGeneric te = (TileEntityDoorGeneric) tile; TileEntityDoorGeneric te = (TileEntityDoorGeneric) tile;
if(buf == null){ if(buf == null) buf = GLAllocation.createDirectByteBuffer(8*4).asDoubleBuffer();
buf = GLAllocation.createDirectByteBuffer(8*4).asDoubleBuffer();
}
DoorDecl door = te.getDoorType(); DoorDecl door = te.getDoorType();
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x+0.5, y, z+0.5); GL11.glTranslated(x + 0.5, y, z+0.5);
switch(te.getBlockMetadata() - BlockDummyable.offset) { switch(te.getBlockMetadata() - BlockDummyable.offset) {
case 2: GL11.glRotatef(0+90, 0F, 1F, 0F); break; case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 4: GL11.glRotatef(90+90, 0F, 1F, 0F); break; case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(180+90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(270+90, 0F, 1F, 0F); break; case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
door.doOffsetTransform();
double[][] clip = door.getClippingPlanes();
for(int i = 0; i < clip.length; i ++){
GL11.glEnable(GL11.GL_CLIP_PLANE0+i);
buf.put(clip[i]);
buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0+i, buf);
} }
GL11.glShadeModel(GL11.GL_SMOOTH); IRenderDoors sednaRenderer = door.getSEDNARenderer();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_LIGHTING);
AnimatedModel animModel = door.getAnimatedModel(); if(sednaRenderer != null) {
if(animModel != null){
Animation anim = door.getAnim();
bindTexture(door.getTextureForPart(te.getSkinIndex(), ""));
long time = System.currentTimeMillis();
long startTime = te.state > 1 ? te.animStartTime : time;
boolean reverse = te.state == 1 || te.state == 2;
AnimationWrapper w = new AnimationWrapper(startTime, anim).onEnd(new EndResult(EndType.STAY));
if(reverse)
w.reverse();
animModel.controller.setAnim(w);
animModel.renderAnimated(System.currentTimeMillis());
} else {
IModelCustomNamed model = door.getModel();
long ms = System.currentTimeMillis()-te.animStartTime; GL11.glShadeModel(GL11.GL_SMOOTH);
float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; sednaRenderer.render(te, buf);
GL11.glShadeModel(GL11.GL_FLAT);
for(String partName : model.getPartNames()) {
if(!door.doesRender(partName, false)) } else {
continue; door.doOffsetTransform();
GL11.glPushMatrix(); double[][] clip = door.getClippingPlanes();
{ for(int i = 0; i < clip.length; i ++){
bindTexture(door.getTextureForPart(te.getSkinIndex(), partName)); GL11.glEnable(GL11.GL_CLIP_PLANE0+i);
doPartTransform(door, partName, openTicks, false); buf.put(clip[i]);
model.renderPart(partName); buf.rewind();
GL11.glClipPlane(GL11.GL_CLIP_PLANE0+i, buf);
for(String innerPartName : door.getChildren(partName)) {
if(!door.doesRender(innerPartName, true))
continue;
GL11.glPushMatrix();
{
bindTexture(door.getTextureForPart(te.getSkinIndex(), innerPartName));
doPartTransform(door, innerPartName, openTicks, true);
model.renderPart(innerPartName);
}
GL11.glPopMatrix();
}
}
GL11.glPopMatrix();
} }
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_LIGHTING);
AnimatedModel animModel = door.getAnimatedModel();
if(animModel != null){
Animation anim = door.getAnim();
bindTexture(door.getTextureForPart(te.getSkinIndex(), ""));
long time = System.currentTimeMillis();
long startTime = te.state > 1 ? te.animStartTime : time;
boolean reverse = te.state == 1 || te.state == 2;
AnimationWrapper w = new AnimationWrapper(startTime, anim).onEnd(new EndResult(EndType.STAY));
if(reverse)
w.reverse();
animModel.controller.setAnim(w);
animModel.renderAnimated(System.currentTimeMillis());
} else {
IModelCustomNamed model = door.getModel();
long ms = System.currentTimeMillis()-te.animStartTime;
float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F;
for(String partName : model.getPartNames()) {
if(!door.doesRender(partName, false))
continue;
GL11.glPushMatrix();
{
bindTexture(door.getTextureForPart(te.getSkinIndex(), partName));
doPartTransform(door, partName, openTicks, false);
model.renderPart(partName);
for(String innerPartName : door.getChildren(partName)) {
if(!door.doesRender(innerPartName, true))
continue;
GL11.glPushMatrix();
{
bindTexture(door.getTextureForPart(te.getSkinIndex(), innerPartName));
doPartTransform(door, innerPartName, openTicks, true);
model.renderPart(innerPartName);
}
GL11.glPopMatrix();
}
}
GL11.glPopMatrix();
}
}
for(int i = 0; i < clip.length; i ++){
GL11.glDisable(GL11.GL_CLIP_PLANE0+i);
}
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
} }
for(int i = 0; i < clip.length; i ++){
GL11.glDisable(GL11.GL_CLIP_PLANE0+i);
}
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
@ -120,12 +131,9 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer {
door.getOrigin(name, orig); door.getOrigin(name, orig);
door.getRotation(name, openTicks, rot); door.getRotation(name, openTicks, rot);
GL11.glTranslated(orig[0], orig[1], orig[2]); GL11.glTranslated(orig[0], orig[1], orig[2]);
if(rot[0] != 0) if(rot[0] != 0) GL11.glRotated(rot[0], 1, 0, 0);
GL11.glRotated(rot[0], 1, 0, 0); if(rot[1] != 0) GL11.glRotated(rot[1], 0, 1, 0);
if(rot[1] != 0) if(rot[2] != 0) GL11.glRotated(rot[2], 0, 0, 1);
GL11.glRotated(rot[1], 0, 1, 0);
if(rot[2] != 0)
GL11.glRotated(rot[2], 0, 0, 1);
GL11.glTranslated(-orig[0]+tran[0], -orig[1]+tran[1], -orig[2]+tran[2]); GL11.glTranslated(-orig[0]+tran[0], -orig[1]+tran[1], -orig[2]+tran[2]);
} }
} }

View File

@ -0,0 +1,10 @@
package com.hbm.render.tileentity.door;
import java.nio.DoubleBuffer;
import com.hbm.tileentity.TileEntityDoorGeneric;
public interface IRenderDoors {
public void render(TileEntityDoorGeneric door, DoubleBuffer buf);
}

View File

@ -5,6 +5,7 @@ import com.hbm.animloader.Animation;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.loader.IModelCustomNamed; import com.hbm.render.loader.IModelCustomNamed;
import com.hbm.render.tileentity.door.IRenderDoors;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -1209,4 +1210,8 @@ public abstract class DoorDecl {
f[2] = z; f[2] = z;
return f; return f;
} }
// keyframe animation system sneakily stitched into the door decl
public IRenderDoors getSEDNARenderer() { return null; }
public com.hbm.render.anim.HbmAnimations.Animation getSEDNAAnim(byte state) { return null; }
} }

View File

@ -8,6 +8,7 @@ import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.generic.BlockDoorGeneric; import com.hbm.blocks.generic.BlockDoorGeneric;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.render.anim.HbmAnimations.Animation;
import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.tileentity.machine.TileEntityLockableBase;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
@ -21,7 +22,12 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityDoorGeneric extends TileEntityLockableBase { public class TileEntityDoorGeneric extends TileEntityLockableBase {
public static byte STATE_CLOSED = 0;
public static byte STATE_OPEN = 1;
public static byte STATE_CLOSING = 2;
public static byte STATE_OPENING = 3;
//0: closed, 1: open, 2: closing, 3: opening //0: closed, 1: open, 2: closing, 3: opening
public byte state = 0; public byte state = 0;
@ -36,6 +42,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
private AudioWrapper audio; private AudioWrapper audio;
private AudioWrapper audio2; private AudioWrapper audio2;
public Animation currentAnimation;
@Override @Override
public void updateEntity() { public void updateEntity() {
@ -301,6 +309,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase {
this.state = state; this.state = state;
if(state > 1) animStartTime = System.currentTimeMillis(); if(state > 1) animStartTime = System.currentTimeMillis();
if(state == STATE_OPENING || state == STATE_CLOSING) {
currentAnimation = this.doorType.getSEDNAAnim(state);
}
} }
} }

View File

@ -129,7 +129,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe
if(stack != null && stack.getItem() instanceof IBatteryItem) { if(stack != null && stack.getItem() instanceof IBatteryItem) {
IBatteryItem battery = (IBatteryItem) stack.getItem(); IBatteryItem battery = (IBatteryItem) stack.getItem();
long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate(null)); long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate(stack));
toCharge = Math.min(toCharge, Math.max(power / 5, 1)); toCharge = Math.min(toCharge, Math.max(power / 5, 1));
battery.chargeBattery(stack, toCharge); battery.chargeBattery(stack, toCharge);
power -= toCharge; power -= toCharge;

View File

@ -379,9 +379,9 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
CrucibleRecipe recipe = getLoadedRecipe(); CrucibleRecipe recipe = getLoadedRecipe();
for(MaterialStack material : materials) { for(MaterialStack material : materials) {
boolean mainStack = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0); boolean recipeMaterial = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0);
if(mainStack) { if(recipe == null || recipeMaterial) {
this.addToStack(this.recipeStack, material); this.addToStack(this.recipeStack, material);
} else { } else {
this.addToStack(this.wasteStack, material); this.addToStack(this.wasteStack, material);

View File

@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.storage;
import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.interfaces.ICopiable;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.uninos.UniNodespace; import com.hbm.uninos.UniNodespace;
@ -29,9 +30,10 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
public abstract class TileEntityBatteryBase extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { public abstract class TileEntityBatteryBase extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent, ICopiable {
public byte lastRedstone = 0; public byte lastRedstone = 0;
public long prevPowerState = 0; public long prevPowerState = 0;
@ -77,7 +79,6 @@ public abstract class TileEntityBatteryBase extends TileEntityMachineBase implem
byte comp = this.getComparatorPower(); byte comp = this.getComparatorPower();
if(comp != this.lastRedstone) { if(comp != this.lastRedstone) {
System.out.println(comp);
for(BlockPos port : this.getPortPos()) { for(BlockPos port : this.getPortPos()) {
TileEntity tile = Compat.getTileStandard(worldObj, port.getX(), port.getY(), port.getZ()); TileEntity tile = Compat.getTileStandard(worldObj, port.getX(), port.getY(), port.getZ());
if(tile != null) tile.markDirty(); if(tile != null) tile.markDirty();
@ -254,4 +255,20 @@ public abstract class TileEntityBatteryBase extends TileEntityMachineBase implem
public Object[] getInfo(Context context, Arguments args) { public Object[] getInfo(Context context, Arguments args) {
return new Object[] {getPower(), getMaxPower(), redLow, redHigh, getPriority().ordinal()-1}; return new Object[] {getPower(), getMaxPower(), redLow, redHigh, getPriority().ordinal()-1};
} }
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound data = new NBTTagCompound();
data.setShort("redLow", redLow);
data.setShort("redHigh", redHigh);
data.setByte("priority", (byte) this.priority.ordinal());
return data;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
if(nbt.hasKey("redLow")) this.redLow = nbt.getShort("redLow");
if(nbt.hasKey("redHigh")) this.redHigh = nbt.getShort("redHigh");
if(nbt.hasKey("priority")) this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority"));
}
} }

View File

@ -68,6 +68,8 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR
if(this.slots[0] != null) { if(this.slots[0] != null) {
buf.writeInt(Item.getIdFromItem(slots[0].getItem())); buf.writeInt(Item.getIdFromItem(slots[0].getItem()));
buf.writeShort(slots[0].getItemDamage()); buf.writeShort(slots[0].getItemDamage());
} else {
buf.writeInt(-1);
} }
} }
@ -79,6 +81,7 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR
syncMaxPower = buf.readLong(); syncMaxPower = buf.readLong();
int itemId = buf.readInt(); int itemId = buf.readInt();
if(itemId != -1) this.syncStack = new ItemStack(Item.getItemById(itemId), 1, buf.readShort()); if(itemId != -1) this.syncStack = new ItemStack(Item.getItemById(itemId), 1, buf.readShort());
else this.syncStack = null;
} }
@Override @Override

View File

@ -39,6 +39,7 @@ public class Compat {
public static final String MOD_EIDS = "endlessids"; public static final String MOD_EIDS = "endlessids";
public static final String MOD_ANG = "angelica"; public static final String MOD_ANG = "angelica";
public static final String MOD_TOR = "Torcherino"; public static final String MOD_TOR = "Torcherino";
public static final String MOD_OC = "OpenComputers";
public static Item tryLoadItem(String domain, String name) { public static Item tryLoadItem(String domain, String name) {
return (Item) Item.itemRegistry.getObject(getReg(domain, name)); return (Item) Item.itemRegistry.getObject(getReg(domain, name));

View File

@ -1572,7 +1572,7 @@ item.canned_diesel.name=Konservendose (Diesel)
item.canned_fist.name=Konservendose (Faust) item.canned_fist.name=Konservendose (Faust)
item.canned_fried.name=Konservendose (Fried Chicken) item.canned_fried.name=Konservendose (Fried Chicken)
item.canned_hotdogs.name=Konservendose (Hotdogs) item.canned_hotdogs.name=Konservendose (Hotdogs)
item.canned_jizz.name=Konservendose (FlimFlam Industries Hengstmilch™) item.canned_slime.name=Konservendose (Kondensierter Pferdeschleim)
item.canned_kerosene.name=Konservendose (Kerosin) item.canned_kerosene.name=Konservendose (Kerosin)
item.canned_leftovers.name=Konservendose (Reste) item.canned_leftovers.name=Konservendose (Reste)
item.canned_milk.name=Konservendose (Kondensmilch) item.canned_milk.name=Konservendose (Kondensmilch)

View File

@ -2360,8 +2360,8 @@ item.canned_fried.name=Canned Fried Chicken
item.canned_fried.desc=Even the can is deep fried! item.canned_fried.desc=Even the can is deep fried!
item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.name=Canned Hotdogs
item.canned_hotdogs.desc=Not to be confused with cool cats. item.canned_hotdogs.desc=Not to be confused with cool cats.
item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ item.canned_slime.name=Condensed Horse Slime
item.canned_jizz.desc=Wait wh- item.canned_slime.desc=Now with extra bone marrow.
item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.name=Canned Kerosene
item.canned_kerosene.desc=Just imagine a witty line here. item.canned_kerosene.desc=Just imagine a witty line here.
item.canned_leftovers.name=Leftover Conserve item.canned_leftovers.name=Leftover Conserve

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,409 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'sat_laser.blend'
# www.blender.org
o Circle
v 0.000000 5.250000 -1.250000
v -0.625000 5.250000 -1.082532
v -1.082532 5.250000 -0.625000
v -1.250000 5.250000 0.000000
v -1.082532 5.250000 0.625000
v -0.625000 5.250000 1.082532
v -0.000000 5.250000 1.250000
v 0.625000 5.250000 1.082532
v 1.082531 5.250000 0.625000
v 1.250000 5.250000 0.000001
v 1.082532 5.250000 -0.624999
v 0.625001 5.250000 -1.082531
v -0.312500 5.750000 -0.541266
v 0.000000 5.750000 -0.625000
v -0.541266 5.750000 -0.312500
v -0.625000 5.750000 0.000000
v -0.541266 5.750000 0.312500
v -0.312500 5.750000 0.541266
v -0.000000 5.750000 0.625000
v 0.312500 5.750000 0.541266
v 0.541266 5.750000 0.312500
v 0.625000 5.750000 0.000000
v 0.541266 5.750000 -0.312500
v 0.312500 5.750000 -0.541266
v -0.000000 9.250000 -0.125000
v 0.088388 9.250000 -0.088388
v 0.000000 5.750000 -0.250000
v 0.000000 8.750000 -0.250000
v 0.176777 5.750000 -0.176777
v 0.176777 8.750000 -0.176777
v 0.250000 5.750000 0.000000
v 0.250000 8.750000 0.000000
v 0.176777 5.750000 0.176777
v 0.176777 8.750000 0.176777
v -0.000000 5.750000 0.250000
v -0.000000 8.750000 0.250000
v -0.176777 5.750000 0.176777
v -0.176777 8.750000 0.176777
v -0.250000 5.750000 -0.000000
v -0.250000 8.750000 -0.000000
v -0.176777 5.750000 -0.176777
v -0.176777 8.750000 -0.176777
v 0.125000 9.250000 0.000000
v 0.088388 9.250000 0.088388
v -0.000000 9.250000 0.125000
v -0.088389 9.250000 0.088388
v -0.125000 9.250000 -0.000000
v -0.088389 9.250000 -0.088388
v 0.000001 11.750000 -0.125000
v -0.088387 11.750000 -0.088388
v -0.124999 11.750000 -0.000000
v -0.088387 11.750000 0.088388
v 0.000001 11.750000 0.125000
v 0.088390 11.750000 0.088388
v 0.125001 11.750000 0.000000
v 0.088390 11.750000 -0.088388
v 0.000000 5.750000 -0.250000
v 0.000000 8.750000 -0.250000
v 0.176777 5.750000 -0.176777
v 0.176777 8.750000 -0.176777
v 0.250000 5.750000 0.000000
v 0.250000 8.750000 0.000000
v 0.176777 5.750000 0.176777
v 0.176777 8.750000 0.176777
v -0.000000 5.750000 0.250000
v -0.000000 8.750000 0.250000
v -0.176777 5.750000 0.176777
v -0.176777 8.750000 0.176777
v -0.250000 5.750000 -0.000000
v -0.250000 8.750000 -0.000000
v -0.176777 5.750000 -0.176777
v -0.176777 8.750000 -0.176777
v 0.000000 5.750000 -0.500000
v 0.000000 8.750000 -0.500000
v 0.353553 5.750000 -0.353553
v 0.353553 8.750000 -0.353553
v 0.500000 5.750000 0.000000
v 0.500000 8.750000 0.000000
v 0.353553 5.750000 0.353553
v 0.353553 8.750000 0.353553
v -0.000000 5.750000 0.500000
v -0.000000 8.750000 0.500000
v -0.353553 5.750000 0.353553
v -0.353553 8.750000 0.353553
v -0.500000 5.750000 -0.000000
v -0.500000 8.750000 -0.000000
v -0.353553 5.750000 -0.353553
v -0.353553 8.750000 -0.353553
v 0.000000 5.750000 -0.250000
v 0.000000 8.750000 -0.250000
v 0.176777 5.750000 -0.176777
v 0.176777 8.750000 -0.176777
v 0.250000 5.750000 0.000000
v 0.250000 8.750000 0.000000
v 0.176777 5.750000 0.176777
v 0.176777 8.750000 0.176777
v -0.000000 5.750000 0.250000
v -0.000000 8.750000 0.250000
v -0.176777 5.750000 0.176777
v -0.176777 8.750000 0.176777
v -0.250000 5.750000 -0.000000
v -0.250000 8.750000 -0.000000
v -0.176777 5.750000 -0.176777
v -0.176777 8.750000 -0.176777
v 0.000000 5.750000 -0.500000
v 0.000000 8.750000 -0.500000
v 0.353553 5.750000 -0.353553
v 0.353553 8.750000 -0.353553
v 0.500000 5.750000 0.000000
v 0.500000 8.750000 0.000000
v 0.353553 5.750000 0.353553
v 0.353553 8.750000 0.353553
v -0.000000 5.750000 0.500000
v -0.000000 8.750000 0.500000
v -0.353553 5.750000 0.353553
v -0.353553 8.750000 0.353553
v -0.500000 5.750000 -0.000000
v -0.500000 8.750000 -0.000000
v -0.353553 5.750000 -0.353553
v -0.353553 8.750000 -0.353553
vt 0.165700 0.165700
vt 0.321819 0.207532
vt 0.141549 0.255835
vt 0.076421 0.086267
vt 0.141549 0.207532
vt 0.293437 0.435249
vt 0.255835 0.321818
vt 0.297667 0.297667
vt 0.086267 0.386946
vt 0.165700 0.297667
vt 0.207532 0.321818
vt 0.435249 0.169931
vt 0.297667 0.165700
vt 0.169931 0.028118
vt 0.207532 0.141549
vt 0.183380 0.438853
vt 0.028118 0.293437
vt 0.438853 0.279987
vt 0.321818 0.255835
vt 0.279987 0.024514
vt 0.255835 0.141549
vt 0.024514 0.279987
vt 0.024514 0.183380
vt 0.435249 0.293437
vt 0.386946 0.377100
vt 0.377100 0.076421
vt 0.081650 0.487881
vt 0.081650 0.861139
vt 0.067366 0.861139
vt 0.573585 0.472424
vt 0.602153 0.472424
vt 0.595011 0.549042
vt 0.659289 0.472424
vt 0.630721 0.472424
vt 0.630721 0.024514
vt 0.124502 0.487881
vt 0.124503 0.861139
vt 0.110218 0.861139
vt 0.652147 0.549042
vt 0.602153 0.024514
vt 0.110218 0.487881
vt 0.095934 0.861139
vt 0.516449 0.472424
vt 0.509307 0.549041
vt 0.495023 0.549041
vt 0.573586 0.024514
vt 0.053082 0.487881
vt 0.053083 0.861139
vt 0.038799 0.861139
vt 0.623579 0.549042
vt 0.609295 0.549042
vt 0.545017 0.472424
vt 0.545018 0.024514
vt 0.497981 0.632554
vt 0.487881 0.608170
vt 0.512265 0.598069
vt 0.537875 0.549042
vt 0.516450 0.024514
vt 0.566443 0.549042
vt 0.552159 0.549042
vt 0.138786 0.487881
vt 0.138786 0.861139
vt 0.487881 0.472424
vt 0.487883 0.024514
vt 0.687857 0.472424
vt 0.680715 0.549042
vt 0.659288 0.024514
vt 0.716425 0.472424
vt 0.687856 0.024514
vt 0.067366 0.487881
vt 0.709283 0.549042
vt 0.889132 0.521452
vt 0.851807 0.521452
vt 0.851807 0.969361
vt 0.038798 0.487881
vt 0.024515 0.861139
vt 0.095934 0.487881
vt 0.975486 0.472424
vt 0.938160 0.472424
vt 0.938160 0.024514
vt 0.765453 0.969361
vt 0.765453 0.521452
vt 0.802779 0.521452
vt 0.360521 0.935791
vt 0.360522 0.487881
vt 0.397847 0.487881
vt 0.765453 0.472424
vt 0.765453 0.024514
vt 0.802779 0.024514
vt 0.274168 0.935791
vt 0.274168 0.487881
vt 0.311494 0.487881
vt 0.187814 0.935791
vt 0.187814 0.487881
vt 0.225140 0.487881
vt 0.851807 0.472424
vt 0.851807 0.024514
vt 0.889133 0.024514
vt 0.028118 0.169930
vt 0.377100 0.386946
vt 0.169931 0.435249
vt 0.386946 0.086267
vt 0.086267 0.076421
vt 0.279987 0.438853
vt 0.076421 0.377100
vt 0.438853 0.183381
vt 0.183381 0.024514
vt 0.293437 0.028118
vt 0.580727 0.549042
vt 0.637863 0.549042
vt 0.522366 0.608170
vt 0.522366 0.622454
vt 0.512265 0.632554
vt 0.487881 0.622454
vt 0.497981 0.598069
vt 0.523591 0.549041
vt 0.666431 0.549042
vt 0.716424 0.024514
vt 0.694999 0.549042
vt 0.889132 0.969361
vt 0.024514 0.487881
vt 0.975486 0.024514
vt 0.802779 0.969361
vt 0.397847 0.935791
vt 0.802779 0.472424
vt 0.311494 0.935791
vt 0.225140 0.935791
vt 0.889133 0.472424
vn 0.000000 1.000000 0.000000
vn -0.616100 0.770200 0.165100
vn 0.451000 0.770200 -0.451000
vn -0.165100 0.770200 -0.616100
vn 0.451000 0.770200 0.451000
vn -0.451000 0.770200 0.451000
vn 0.165100 0.770200 -0.616100
vn -0.451000 0.770200 -0.451000
vn 0.616100 0.770200 0.165100
vn -0.165100 0.770200 0.616100
vn -0.616100 0.770200 -0.165100
vn 0.616100 0.770200 -0.165100
vn 0.165100 0.770200 0.616100
vn 0.923900 -0.000000 0.382700
vn 0.900200 0.225000 0.372900
vn 0.382700 0.000000 -0.923900
vn -0.382700 0.000000 -0.923900
vn 0.372900 0.225000 -0.900200
vn 0.923900 0.000000 -0.382700
vn -0.900200 0.225000 0.372900
vn -0.382700 0.000000 0.923900
vn 0.900200 0.225000 -0.372900
vn 0.382700 0.000000 0.923900
vn -0.372900 0.225000 0.900200
vn 0.372900 0.225000 0.900200
vn -0.923900 0.000000 -0.382700
vn -0.923900 0.000000 0.382700
vn -0.372900 0.225000 -0.900200
vn -0.900200 0.225000 -0.372900
vn -0.707100 0.000000 0.707100
vn 0.707100 0.000000 -0.707100
vn 0.000000 0.000000 -1.000000
vn -0.707100 0.000000 -0.707100
vn -1.000000 0.000000 -0.000000
vn -0.000000 0.000000 1.000000
vn 0.707100 0.000000 0.707100
vn 1.000000 0.000000 0.000000
s off
f 17/1/1 21/2/1 15/3/1
f 5/4/2 17/1/2 16/5/2
f 12/6/3 24/7/3 23/8/3
f 2/9/4 13/10/4 14/11/4
f 9/12/5 21/2/5 20/13/5
f 6/14/6 18/15/6 17/1/6
f 1/16/7 14/11/7 24/7/7
f 3/17/8 15/3/8 13/10/8
f 10/18/9 22/19/9 21/2/9
f 7/20/10 19/21/10 18/15/10
f 3/22/11 4/23/11 16/5/11
f 10/24/12 11/25/12 23/8/12
f 8/26/13 20/13/13 19/21/13
f 43/27/14 55/28/14 54/29/14
f 34/30/15 32/31/15 43/32/15
f 28/33/16 30/34/16 29/35/16
f 48/36/17 50/37/17 49/38/17
f 30/34/18 28/33/18 25/39/18
f 30/34/19 32/31/19 31/40/19
f 25/41/16 49/38/16 56/42/16
f 38/43/20 46/44/20 47/45/20
f 32/31/14 34/30/14 33/46/14
f 45/47/21 53/48/21 52/49/21
f 30/34/22 26/50/22 43/51/22
f 34/30/23 36/52/23 35/53/23
f 51/54/1 53/55/1 55/56/1
f 38/43/24 36/52/24 45/57/24
f 36/52/21 38/43/21 37/58/21
f 34/30/25 44/59/25 45/60/25
f 47/61/26 51/62/26 50/37/26
f 38/43/27 40/63/27 39/64/27
f 28/33/28 42/65/28 48/66/28
f 42/65/17 28/33/17 27/67/17
f 40/68/26 42/65/26 41/69/26
f 44/70/23 54/29/23 53/48/23
f 42/65/29 40/68/29 47/71/29
f 119/72/30 103/73/30 104/74/30
f 46/75/27 52/49/27 51/76/27
f 26/77/19 56/42/19 55/28/19
f 72/74/31 71/73/31 87/72/31
f 86/78/32 70/79/32 69/80/32
f 68/81/33 67/82/33 83/83/33
f 66/84/34 65/85/34 81/86/34
f 64/87/30 63/88/30 79/89/30
f 62/90/35 61/91/35 77/92/35
f 74/93/34 73/94/34 57/95/34
f 60/96/36 59/97/36 75/98/36
f 101/80/35 102/79/35 118/78/35
f 115/83/36 99/82/36 100/81/36
f 113/86/37 97/85/37 98/84/37
f 111/89/31 95/88/31 96/87/31
f 109/92/32 93/91/32 94/90/32
f 89/95/37 105/94/37 106/93/37
f 107/98/33 91/97/33 92/96/33
f 14/11/1 13/10/1 15/3/1
f 15/3/1 16/5/1 17/1/1
f 17/1/1 18/15/1 21/2/1
f 19/21/1 20/13/1 21/2/1
f 21/2/1 22/19/1 23/8/1
f 23/8/1 24/7/1 21/2/1
f 14/11/1 15/3/1 21/2/1
f 18/15/1 19/21/1 21/2/1
f 21/2/1 24/7/1 14/11/1
f 4/99/2 5/4/2 16/5/2
f 11/100/3 12/6/3 23/8/3
f 1/101/4 2/9/4 14/11/4
f 8/102/5 9/12/5 20/13/5
f 5/103/6 6/14/6 17/1/6
f 12/104/7 1/16/7 24/7/7
f 2/105/8 3/17/8 13/10/8
f 9/106/9 10/18/9 21/2/9
f 6/107/10 7/20/10 18/15/10
f 15/3/11 3/22/11 16/5/11
f 22/19/12 10/24/12 23/8/12
f 7/108/13 8/26/13 19/21/13
f 44/70/14 43/27/14 54/29/14
f 44/109/15 34/30/15 43/32/15
f 27/67/16 28/33/16 29/35/16
f 25/41/17 48/36/17 49/38/17
f 26/110/18 30/34/18 25/39/18
f 29/35/19 30/34/19 31/40/19
f 26/77/16 25/41/16 56/42/16
f 40/63/20 38/43/20 47/45/20
f 31/40/14 32/31/14 33/46/14
f 46/75/21 45/47/21 52/49/21
f 32/31/22 30/34/22 43/51/22
f 33/46/23 34/30/23 35/53/23
f 55/56/1 56/111/1 49/112/1
f 49/112/1 50/113/1 51/54/1
f 51/54/1 52/114/1 53/55/1
f 53/55/1 54/115/1 55/56/1
f 55/56/1 49/112/1 51/54/1
f 46/116/24 38/43/24 45/57/24
f 35/53/21 36/52/21 37/58/21
f 36/52/25 34/30/25 45/60/25
f 48/36/26 47/61/26 50/37/26
f 37/58/27 38/43/27 39/64/27
f 25/117/28 28/33/28 48/66/28
f 41/69/17 42/65/17 27/67/17
f 39/118/26 40/68/26 41/69/26
f 45/47/23 44/70/23 53/48/23
f 48/119/29 42/65/29 47/71/29
f 120/120/30 119/72/30 104/74/30
f 47/121/27 46/75/27 51/76/27
f 43/27/19 26/77/19 55/28/19
f 88/120/31 72/74/31 87/72/31
f 85/122/32 86/78/32 69/80/32
f 84/123/33 68/81/33 83/83/33
f 82/124/34 66/84/34 81/86/34
f 80/125/30 64/87/30 79/89/30
f 78/126/35 62/90/35 77/92/35
f 58/127/34 74/93/34 57/95/34
f 76/128/36 60/96/36 75/98/36
f 117/122/35 101/80/35 118/78/35
f 116/123/36 115/83/36 100/81/36
f 114/124/37 113/86/37 98/84/37
f 112/125/31 111/89/31 96/87/31
f 110/126/32 109/92/32 94/90/32
f 90/127/37 89/95/37 106/93/37
f 108/128/33 107/98/33 92/96/33

View File

@ -1,433 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'sat_mapper.blend'
# www.blender.org
o Circle
v 0.000000 5.250000 -1.250000
v -0.625000 5.250000 -1.082532
v -1.082532 5.250000 -0.625000
v -1.250000 5.250000 0.000000
v -1.082532 5.250000 0.625000
v -0.625000 5.250000 1.082532
v -0.000000 5.250000 1.250000
v 0.625000 5.250000 1.082532
v 1.082531 5.250000 0.625000
v 1.250000 5.250000 0.000001
v 1.082532 5.250000 -0.624999
v 0.625001 5.250000 -1.082531
v -0.468750 5.750000 -0.811899
v 0.000000 5.750000 -0.937500
v -0.811899 5.750000 -0.468750
v -0.937500 5.750000 0.000000
v -0.811899 5.750000 0.468750
v -0.468750 5.750000 0.811899
v -0.000000 5.750000 0.937500
v 0.468750 5.750000 0.811899
v 0.811899 5.750000 0.468750
v 0.937500 5.750000 0.000000
v 0.811899 5.750000 -0.468749
v 0.468751 5.750000 -0.811899
v 0.329610 5.750000 -0.554328
v -0.329610 5.750000 -0.554328
v -0.654328 5.750000 -0.229610
v -0.654328 5.750000 0.229610
v -0.329610 5.750000 0.554328
v 0.329610 5.750000 0.554328
v 0.654328 5.750000 0.229610
v 0.654328 5.750000 -0.229610
v -0.329610 7.250000 -0.554328
v 0.329610 7.250000 -0.554328
v -0.654328 7.250000 -0.229610
v -0.654328 7.250000 0.229610
v -0.329610 7.250000 0.554328
v 0.329610 7.250000 0.554328
v 0.654328 7.250000 0.229610
v 0.654328 7.250000 -0.229610
v -0.250000 8.250000 -0.150000
v -0.143934 8.250000 -0.106066
v -0.250000 7.250000 -0.200000
v -0.250000 8.250000 -0.200000
v -0.108579 7.250000 -0.141421
v -0.108579 8.250000 -0.141421
v -0.050000 7.250000 0.000000
v -0.050000 8.250000 0.000000
v -0.108579 7.250000 0.141421
v -0.108579 8.250000 0.141421
v -0.250000 7.250000 0.200000
v -0.250000 8.250000 0.200000
v -0.391421 7.250000 0.141421
v -0.391421 8.250000 0.141421
v -0.450000 7.250000 -0.000000
v -0.450000 8.250000 -0.000000
v -0.391421 7.250000 -0.141421
v -0.391421 8.250000 -0.141421
v -0.100000 8.250000 0.000000
v -0.143934 8.250000 0.106066
v -0.250000 8.250000 0.150000
v -0.356066 8.250000 0.106066
v -0.400000 8.250000 -0.000000
v -0.356066 8.250000 -0.106066
v -0.250000 8.200000 -0.150000
v -0.356066 8.200000 -0.106066
v -0.400000 8.200000 -0.000000
v -0.356066 8.200000 0.106066
v -0.250000 8.200000 0.150000
v -0.143934 8.200000 0.106066
v -0.100000 8.200000 0.000000
v -0.143934 8.200000 -0.106066
v -0.250000 8.225000 -0.075000
v -0.303033 8.225000 -0.053033
v -0.325000 8.225000 -0.000000
v -0.303033 8.225000 0.053033
v -0.250000 8.225000 0.075000
v -0.196967 8.225000 0.053033
v -0.175000 8.225000 0.000000
v -0.196967 8.225000 -0.053033
v 0.050000 7.250000 0.400000
v 0.050000 7.400000 0.400000
v 0.050000 7.250000 -0.400000
v 0.050000 7.400000 -0.400000
v 0.300000 7.250000 -0.400000
v 0.550000 7.250000 -0.150000
v 0.550000 7.250000 0.150000
v 0.300000 7.250000 0.400000
v 0.300000 7.400000 0.400000
v 0.550000 7.400000 0.150000
v 0.550000 7.400000 -0.150000
v 0.300000 7.400000 -0.400000
vt 0.133648 0.335860
vt 0.335860 0.133648
vt 0.409875 0.409875
vt 0.491830 0.473640
vt 0.452607 0.335860
vt 0.350104 0.555466
vt 0.236151 0.555466
vt 0.250395 0.452607
vt 0.473640 0.094425
vt 0.409875 0.176381
vt 0.037448 0.211302
vt 0.094425 0.112615
vt 0.176381 0.176380
vt 0.112615 0.491830
vt 0.176380 0.409875
vt 0.548807 0.211302
vt 0.452607 0.250395
vt 0.211302 0.037448
vt 0.250396 0.133648
vt 0.037448 0.374953
vt 0.555465 0.350104
vt 0.473639 0.491831
vt 0.374953 0.548807
vt 0.335860 0.452607
vt 0.350104 0.030790
vt 0.030790 0.236151
vt 0.133648 0.250395
vt 0.790329 0.030790
vt 0.847515 0.087977
vt 0.790329 0.226038
vt 0.551258 0.617045
vt 0.551258 0.881214
vt 0.470384 0.881214
vt 0.389509 0.617045
vt 0.389509 0.881214
vt 0.308635 0.881214
vt 0.111664 0.617045
vt 0.111664 0.881214
vt 0.030790 0.881214
vt 0.667355 0.617045
vt 0.667355 0.881214
vt 0.470384 0.617045
vt 0.308635 0.617045
vt 0.192538 0.881214
vt 0.192538 0.617045
vt 0.748229 0.617045
vt 0.748229 0.881214
vt 0.802382 0.471865
vt 0.802382 0.480671
vt 0.782164 0.480671
vt 0.832710 0.463730
vt 0.829340 0.471865
vt 0.809122 0.471865
vt 0.670961 0.463730
vt 0.644003 0.463730
vt 0.644003 0.287617
vt 0.829340 0.480671
vt 0.809122 0.480671
vt 0.667591 0.471865
vt 0.647373 0.471865
vt 0.617045 0.463730
vt 0.617045 0.287617
vt 0.775424 0.471865
vt 0.775424 0.480671
vt 0.755205 0.480671
vt 0.724877 0.463730
vt 0.751836 0.463730
vt 0.748466 0.471865
vt 0.805752 0.463730
vt 0.805752 0.287617
vt 0.721508 0.471865
vt 0.721508 0.480671
vt 0.701289 0.480671
vt 0.640633 0.471865
vt 0.778794 0.463730
vt 0.778794 0.287617
vt 0.640633 0.480671
vt 0.620415 0.480671
vt 0.755205 0.471865
vt 0.751836 0.287617
vt 0.860161 0.801966
vt 0.847188 0.796912
vt 0.847188 0.786802
vt 0.697919 0.463730
vt 0.694550 0.471865
vt 0.674331 0.471865
vt 0.724877 0.287617
vt 0.670961 0.287617
vt 0.697919 0.287617
vt 0.667591 0.480671
vt 0.647373 0.480671
vt 0.701289 0.471865
vt 0.728247 0.471865
vt 0.748466 0.480671
vt 0.694550 0.480671
vt 0.674331 0.480671
vt 0.822782 0.786802
vt 0.840039 0.779654
vt 0.829930 0.804060
vt 0.824875 0.766681
vt 0.845094 0.766681
vt 0.809809 0.801966
vt 0.809809 0.781748
vt 0.845639 0.816807
vt 0.840039 0.804060
vt 0.845639 0.766906
vt 0.859935 0.781203
vt 0.824331 0.766906
vt 0.829930 0.779654
vt 0.810034 0.802511
vt 0.822782 0.796912
vt 0.824875 0.817033
vt 0.189917 0.969210
vt 0.189917 0.942793
vt 0.330806 0.942793
vt 0.809809 0.705101
vt 0.853837 0.617045
vt 0.950699 0.705101
vt 0.030790 0.969210
vt 0.030790 0.942793
vt 0.083623 0.942793
vt 0.145889 0.942793
vt 0.145889 0.969210
vt 0.083623 0.969210
vt 0.374834 0.942793
vt 0.374834 0.969210
vt 0.330806 0.969210
vt 0.437100 0.969210
vt 0.548807 0.374954
vt 0.374954 0.037448
vt 0.211301 0.548807
vt 0.491831 0.112616
vt 0.112616 0.094424
vt 0.094424 0.473639
vt 0.555465 0.236151
vt 0.236152 0.030790
vt 0.030790 0.350104
vt 0.674232 0.226038
vt 0.674232 0.030790
vt 0.617045 0.168851
vt 0.617045 0.087977
vt 0.847515 0.168851
vt 0.030790 0.617045
vt 0.782164 0.471865
vt 0.832710 0.287617
vt 0.620415 0.471865
vt 0.860161 0.781748
vt 0.728247 0.480671
vt 0.859935 0.802511
vt 0.810034 0.781203
vt 0.824331 0.816807
vt 0.845094 0.817033
vt 0.950699 0.661073
vt 0.906671 0.617045
vt 0.809809 0.661073
vt 0.437100 0.942793
vn 0.000000 1.000000 0.000000
vn 0.221600 0.516800 -0.826900
vn -0.605300 0.516800 -0.605300
vn 0.826900 0.516800 0.221600
vn -0.221600 0.516800 0.826900
vn -0.826900 0.516800 -0.221600
vn 0.826900 0.516800 -0.221600
vn 0.221600 0.516800 0.826900
vn -0.826900 0.516800 0.221600
vn 0.605300 0.516800 -0.605300
vn -0.221600 0.516800 -0.826900
vn 0.605300 0.516800 0.605300
vn -0.605300 0.516800 0.605300
vn -0.707100 0.000000 0.707100
vn -0.707100 0.000000 -0.707100
vn 1.000000 0.000000 -0.000000
vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.707100 0.000000 -0.707100
vn 0.707100 0.000000 0.707100
vn -0.382700 0.000000 -0.923900
vn 0.382700 0.000000 -0.923900
vn -0.923900 0.000000 -0.382700
vn 0.923900 0.000000 -0.382700
vn 0.923900 0.000000 0.382700
vn 0.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn -0.382700 0.000000 0.923900
vn 0.313600 0.940600 0.129900
vn -0.129900 0.940600 0.313600
vn -0.313600 0.940600 -0.129900
vn 0.313600 0.940600 -0.129900
vn 0.129900 0.940600 0.313500
vn -0.313600 0.940600 0.129900
vn -0.129900 0.940600 -0.313600
vn 0.129900 0.940600 -0.313600
vn 0.129900 0.940600 0.313600
vn 0.129900 0.940600 -0.313500
s off
f 17/1/1 21/2/1 14/3/1
f 1/4/2 14/3/2 24/5/2
f 2/6/3 3/7/3 15/8/3
f 10/9/4 22/10/4 21/2/4
f 6/11/5 7/12/5 19/13/5
f 4/14/6 16/15/6 15/8/6
f 11/16/7 23/17/7 22/10/7
f 8/18/8 20/19/8 19/13/8
f 5/20/9 17/1/9 16/15/9
f 12/21/10 24/5/10 23/17/10
f 1/22/11 2/23/11 13/24/11
f 9/25/12 21/2/12 20/19/12
f 6/26/13 18/27/13 17/1/13
f 38/28/1 39/29/1 34/30/1
f 29/31/14 37/32/14 36/33/14
f 27/34/15 35/35/15 33/36/15
f 32/37/16 40/38/16 39/39/16
f 30/40/17 38/41/17 37/32/17
f 28/42/18 36/33/18 35/35/18
f 26/43/19 33/36/19 34/44/19
f 25/45/20 34/44/20 40/38/20
f 31/46/21 39/47/21 38/41/21
f 60/48/22 70/49/22 69/50/22
f 48/51/1 59/52/1 60/53/1
f 44/54/23 46/55/23 45/56/23
f 59/52/24 71/57/24 70/58/24
f 44/54/1 41/59/1 42/60/1
f 46/55/25 48/61/25 47/62/25
f 61/63/23 69/64/23 68/65/23
f 56/66/1 54/67/1 62/68/1
f 48/51/26 50/69/26 49/70/26
f 63/71/26 67/72/26 66/73/26
f 48/61/1 46/55/1 42/74/1
f 50/69/27 52/75/27 51/76/27
f 42/74/28 72/77/28 71/78/28
f 52/75/1 61/63/1 62/79/1
f 52/75/29 54/67/29 53/80/29
f 71/81/30 79/82/30 78/83/30
f 58/84/1 64/85/1 41/86/1
f 54/67/28 56/66/28 55/87/28
f 52/75/1 50/69/1 60/48/1
f 58/84/22 44/54/22 43/88/22
f 56/66/24 58/84/24 57/89/24
f 41/59/29 65/90/29 72/91/29
f 56/66/1 63/71/1 64/92/1
f 63/93/25 62/68/25 68/94/25
f 64/85/27 66/95/27 65/96/27
f 75/97/1 77/98/1 73/99/1
f 68/100/31 69/101/31 77/98/31
f 66/102/32 67/103/32 75/97/32
f 72/104/33 80/105/33 79/82/33
f 69/106/34 70/107/34 78/83/34
f 68/108/35 76/109/35 75/97/35
f 66/110/36 74/111/36 73/99/36
f 65/112/37 73/99/37 80/105/37
f 84/113/18 83/114/18 81/115/18
f 82/116/1 90/117/1 84/118/1
f 90/119/16 87/120/16 86/121/16
f 85/122/20 92/123/20 91/124/20
f 88/125/17 89/126/17 82/127/17
f 90/128/21 89/126/21 88/125/21
f 92/123/19 85/122/19 83/114/19
f 14/3/1 13/24/1 15/8/1
f 15/8/1 16/15/1 17/1/1
f 17/1/1 18/27/1 19/13/1
f 19/13/1 20/19/1 17/1/1
f 21/2/1 22/10/1 23/17/1
f 23/17/1 24/5/1 14/3/1
f 14/3/1 15/8/1 17/1/1
f 17/1/1 20/19/1 21/2/1
f 21/2/1 23/17/1 14/3/1
f 12/129/2 1/4/2 24/5/2
f 13/24/3 2/6/3 15/8/3
f 9/130/4 10/9/4 21/2/4
f 18/27/5 6/11/5 19/13/5
f 3/131/6 4/14/6 15/8/6
f 10/132/7 11/16/7 22/10/7
f 7/133/8 8/18/8 19/13/8
f 4/134/9 5/20/9 16/15/9
f 11/135/10 12/21/10 23/17/10
f 14/3/11 1/22/11 13/24/11
f 8/136/12 9/25/12 20/19/12
f 5/137/13 6/26/13 17/1/13
f 34/30/1 33/138/1 37/139/1
f 35/140/1 36/141/1 37/139/1
f 37/139/1 38/28/1 34/30/1
f 39/29/1 40/142/1 34/30/1
f 33/138/1 35/140/1 37/139/1
f 28/42/14 29/31/14 36/33/14
f 26/43/15 27/34/15 33/36/15
f 31/143/16 32/37/16 39/39/16
f 29/31/17 30/40/17 37/32/17
f 27/34/18 28/42/18 35/35/18
f 25/45/19 26/43/19 34/44/19
f 32/37/20 25/45/20 40/38/20
f 30/40/21 31/46/21 38/41/21
f 61/144/22 60/48/22 69/50/22
f 50/69/1 48/51/1 60/53/1
f 43/88/23 44/54/23 45/56/23
f 60/53/24 59/52/24 70/58/24
f 46/55/1 44/54/1 42/60/1
f 45/56/25 46/55/25 47/62/25
f 62/79/23 61/63/23 68/65/23
f 63/93/1 56/66/1 62/68/1
f 47/145/26 48/51/26 49/70/26
f 64/92/26 63/71/26 66/73/26
f 59/146/1 48/61/1 42/74/1
f 49/70/27 50/69/27 51/76/27
f 59/146/28 42/74/28 71/78/28
f 54/67/1 52/75/1 62/79/1
f 51/76/29 52/75/29 53/80/29
f 70/147/30 71/81/30 78/83/30
f 44/54/1 58/84/1 41/86/1
f 53/80/28 54/67/28 55/87/28
f 61/144/1 52/75/1 60/48/1
f 57/89/22 58/84/22 43/88/22
f 55/87/24 56/66/24 57/89/24
f 42/60/29 41/59/29 72/91/29
f 58/84/1 56/66/1 64/92/1
f 67/148/25 63/93/25 68/94/25
f 41/86/27 64/85/27 65/96/27
f 79/82/1 80/105/1 73/99/1
f 73/99/1 74/111/1 75/97/1
f 75/97/1 76/109/1 77/98/1
f 77/98/1 78/83/1 79/82/1
f 79/82/1 73/99/1 77/98/1
f 76/109/31 68/100/31 77/98/31
f 74/111/32 66/102/32 75/97/32
f 71/149/33 72/104/33 79/82/33
f 77/98/38 69/106/38 78/83/38
f 67/150/35 68/108/35 75/97/35
f 65/151/36 66/110/36 73/99/36
f 72/152/39 65/112/39 80/105/39
f 82/127/18 84/113/18 81/115/18
f 92/153/1 84/118/1 91/154/1
f 82/116/1 89/155/1 90/117/1
f 90/117/1 91/154/1 84/118/1
f 91/124/16 90/119/16 86/121/16
f 86/121/20 85/122/20 91/124/20
f 81/115/17 88/125/17 82/127/17
f 87/156/21 90/128/21 88/125/21
f 84/113/19 92/123/19 83/114/19

View File

@ -1,661 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'sat_radar.blend'
# www.blender.org
o Circle
v 0.000000 5.250000 -1.250000
v -0.625000 5.250000 -1.082532
v -1.082532 5.250000 -0.625000
v -1.250000 5.250000 0.000000
v -1.082532 5.250000 0.625000
v -0.625000 5.250000 1.082532
v -0.000000 5.250000 1.250000
v 0.625000 5.250000 1.082532
v 1.082531 5.250000 0.625000
v 1.250000 5.250000 0.000001
v 1.082532 5.250000 -0.624999
v 0.625001 5.250000 -1.082531
v -0.312500 6.250000 -0.541266
v 0.000000 6.250000 -0.625000
v -0.541266 6.250000 -0.312500
v -0.625000 6.250000 0.000000
v -0.541266 6.250000 0.312500
v -0.312500 6.250000 0.541266
v -0.000000 6.250000 0.625000
v 0.312500 6.250000 0.541266
v 0.541266 6.250000 0.312500
v 0.625000 6.250000 0.000000
v 0.541266 6.250000 -0.312500
v 0.312500 6.250000 -0.541266
v -3.000000 7.750000 0.000000
v -2.598076 7.000000 0.000000
v -1.500000 6.450962 0.000000
v -0.000000 6.250000 0.000000
v -2.598076 7.750000 -1.500000
v -2.250000 7.000000 -1.299038
v -1.299038 6.450962 -0.750000
v -1.500000 7.750000 -2.598076
v -1.299038 7.000000 -2.249999
v -0.750000 6.450962 -1.299038
v -0.000000 7.750000 -2.999999
v -0.000000 7.000000 -2.598075
v -0.000000 6.450962 -1.500000
v 1.499999 7.750000 -2.598076
v 1.299037 7.000000 -2.249999
v 0.749999 6.450962 -1.299038
v 2.598075 7.750000 -1.500000
v 2.249999 7.000000 -1.299038
v 1.299037 6.450962 -0.750000
v 2.999999 7.750000 0.000000
v 2.598075 7.000000 0.000000
v 1.499999 6.450962 -0.000000
v 2.598075 7.750000 1.500000
v 2.249999 7.000000 1.299038
v 1.299037 6.450962 0.750000
v 1.499999 7.750000 2.598076
v 1.299037 7.000000 2.250000
v 0.749999 6.450962 1.299038
v -0.000001 7.750000 3.000000
v -0.000001 7.000000 2.598076
v -0.000001 6.450962 1.500000
v -1.500000 7.750000 2.598076
v -1.299039 7.000000 2.249999
v -0.750000 6.450962 1.299038
v -2.598076 7.750000 1.500000
v -2.250000 7.000000 1.299037
v -1.299038 6.450962 0.750000
v -0.163320 8.676777 0.067649
v -0.230970 8.500000 0.095671
v -0.163320 8.323223 0.067649
v 0.000000 8.250000 -0.000000
v -0.163320 8.676777 -0.067650
v -0.230970 8.500000 -0.095671
v -0.163320 8.323223 -0.067650
v -0.067649 8.676777 -0.163320
v -0.095671 8.500000 -0.230970
v -0.067649 8.323223 -0.163320
v 0.067650 8.676777 -0.163320
v 0.095671 8.500000 -0.230970
v 0.067650 8.323223 -0.163320
v 0.163320 8.676777 -0.067650
v 0.230970 8.500000 -0.095671
v 0.163320 8.323223 -0.067650
v 0.163320 8.676777 0.067650
v 0.230970 8.500000 0.095671
v 0.163320 8.323223 0.067650
v -1.120601 6.450962 0.928437
v 0.067650 8.676777 0.163320
v 0.095671 8.500000 0.230970
v 0.067650 8.323223 0.163320
v -0.928438 6.450962 1.120600
v 0.000000 8.750000 0.000000
v -0.067649 8.676777 0.163320
v -0.095671 8.500000 0.230970
v -0.067649 8.323223 0.163320
v 0.928437 6.450962 1.120600
v 1.120600 6.450962 0.928437
v 1.120600 6.450962 -0.928437
v 0.928437 6.450962 -1.120601
v -0.928438 6.450962 -1.120601
v -1.120601 6.450962 -0.928437
v -0.625000 5.250000 -1.082532
v -1.082532 5.250000 -0.625000
v -1.082532 5.250000 0.625000
v -0.625000 5.250000 1.082532
v 0.625000 5.250000 1.082532
v 1.082531 5.250000 0.625000
v 1.082532 5.250000 -0.624999
v 0.625001 5.250000 -1.082531
v -3.000000 7.750000 0.000000
v -2.598076 7.000000 0.000000
v -1.500000 6.450962 0.000000
v -0.000000 6.250000 0.000000
v -2.598076 7.750000 -1.500000
v -2.250000 7.000000 -1.299038
v -1.299038 6.450962 -0.750000
v -1.500000 7.750000 -2.598076
v -1.299038 7.000000 -2.249999
v -0.750000 6.450962 -1.299038
v -0.000000 7.750000 -2.999999
v -0.000000 7.000000 -2.598075
v -0.000000 6.450962 -1.500000
v 1.499999 7.750000 -2.598076
v 1.299037 7.000000 -2.249999
v 0.749999 6.450962 -1.299038
v 2.598075 7.750000 -1.500000
v 2.249999 7.000000 -1.299038
v 1.299037 6.450962 -0.750000
v 2.999999 7.750000 0.000000
v 2.598075 7.000000 0.000000
v 1.499999 6.450962 -0.000000
v 2.598075 7.750000 1.500000
v 2.249999 7.000000 1.299038
v 1.299037 6.450962 0.750000
v 1.499999 7.750000 2.598076
v 1.299037 7.000000 2.250000
v 0.749999 6.450962 1.299038
v -0.000001 7.750000 3.000000
v -0.000001 7.000000 2.598076
v -0.000001 6.450962 1.500000
v -1.500000 7.750000 2.598076
v -1.299039 7.000000 2.249999
v -0.750000 6.450962 1.299038
v -2.598076 7.750000 1.500000
v -2.250000 7.000000 1.299037
v -1.299038 6.450962 0.750000
v -0.230970 8.500000 0.095671
v -0.230970 8.500000 -0.095671
v -0.095671 8.500000 -0.230970
v 0.095671 8.500000 -0.230970
v 0.230970 8.500000 -0.095671
v 0.230970 8.500000 0.095671
v -1.120601 6.450962 0.928437
v 0.095671 8.500000 0.230970
v -0.928438 6.450962 1.120600
v -0.095671 8.500000 0.230970
v 0.928437 6.450962 1.120600
v 1.120600 6.450962 0.928437
v 1.120600 6.450962 -0.928437
v 0.928437 6.450962 -1.120601
v -0.928438 6.450962 -1.120601
v -1.120601 6.450962 -0.928437
vt 0.091413 0.879362
vt 0.194725 0.776050
vt 0.151061 0.939009
vt 0.401340 0.468733
vt 0.248171 0.425481
vt 0.254160 0.382229
vt 0.366303 0.215732
vt 0.230652 0.298980
vt 0.202924 0.265250
vt 0.069406 0.064942
vt 0.156593 0.069927
vt 0.125797 0.226078
vt 0.366303 0.548726
vt 0.230652 0.465478
vt 0.310847 0.616188
vt 0.239145 0.666040
vt 0.167073 0.524134
vt 0.401340 0.295725
vt 0.248171 0.338977
vt 0.239145 0.098418
vt 0.167073 0.240323
vt 0.202924 0.499208
vt 0.156593 0.694531
vt 0.125798 0.538380
vt 0.413319 0.382229
vt 0.310847 0.148270
vt 0.069406 0.699515
vt 0.082204 0.540872
vt 0.885213 0.663983
vt 0.923571 0.825178
vt 0.742060 0.825178
vt 0.937611 0.939161
vt 0.937604 0.939148
vt 0.728019 0.939168
vt 0.780430 0.663990
vt 0.728022 0.939147
vt 0.832815 0.466560
vt 0.832805 0.466543
vt 0.832749 0.466561
vt 0.552182 0.771532
vt 0.560915 0.936866
vt 0.456120 0.936866
vt 0.464856 0.771544
vt 0.464865 0.771555
vt 0.739345 0.266434
vt 0.721281 0.263760
vt 0.721281 0.237935
vt 0.746828 0.241717
vt 0.728764 0.213218
vt 0.746029 0.133774
vt 0.746029 0.159599
vt 0.720483 0.155817
vt 0.732876 0.331149
vt 0.732876 0.349410
vt 0.707330 0.353192
vt 0.880208 0.146130
vt 0.872725 0.170847
vt 0.854662 0.168172
vt 0.854662 0.142348
vt 0.862144 0.117631
vt 0.752833 0.113487
vt 0.727286 0.109706
vt 0.727286 0.091445
vt 0.677886 0.073834
vt 0.677886 0.099659
vt 0.652340 0.095877
vt 0.816500 0.323958
vt 0.809018 0.348675
vt 0.790954 0.346001
vt 0.790954 0.320176
vt 0.798437 0.295459
vt 0.669006 0.153637
vt 0.650745 0.153637
vt 0.646963 0.128090
vt 0.679832 0.274775
vt 0.654007 0.274775
vt 0.657789 0.249229
vt 0.828127 0.149077
vt 0.820644 0.173794
vt 0.802581 0.171120
vt 0.802581 0.145295
vt 0.810063 0.120578
vt 0.614067 0.618257
vt 0.650746 0.618257
vt 0.645319 0.939971
vt 0.741333 0.190659
vt 0.746828 0.215892
vt 0.726776 0.288993
vt 0.757033 0.340280
vt 0.696326 0.146686
vt 0.720483 0.137556
vt 0.860156 0.193406
vt 0.874714 0.095072
vt 0.880208 0.120305
vt 0.628183 0.086747
vt 0.652340 0.077616
vt 0.703130 0.100575
vt 0.811006 0.272900
vt 0.816500 0.298134
vt 0.796448 0.371234
vt 0.666919 0.225072
vt 0.676050 0.249229
vt 0.659875 0.177793
vt 0.822632 0.098019
vt 0.828127 0.123253
vt 0.808075 0.196353
vt 0.818826 0.224558
vt 0.842982 0.233688
vt 0.818826 0.242819
vt 0.665049 0.309394
vt 0.674179 0.333551
vt 0.655919 0.333551
vt 0.793279 0.220776
vt 0.677961 0.359097
vt 0.652137 0.359097
vt 0.619498 0.939977
vt 0.552195 0.771555
vt 0.232540 0.917177
vt 0.194725 0.939009
vt 0.113246 0.917177
vt 0.091413 0.835697
vt 0.113246 0.797882
vt 0.151061 0.776050
vt 0.232540 0.797882
vt 0.254373 0.835697
vt 0.254373 0.879362
vt 0.082204 0.223586
vt 0.707330 0.327367
vt 0.752833 0.087663
vt 0.672788 0.128090
vt 0.793279 0.246600
vn 0.000000 1.000000 0.000000
vn 0.826900 0.516800 -0.221600
vn 0.221600 0.516800 0.826900
vn -0.826900 0.516800 0.221600
vn 0.605300 0.516800 -0.605300
vn -0.221600 0.516800 -0.826900
vn 0.605300 0.516800 0.605300
vn -0.605300 0.516800 0.605300
vn 0.221600 0.516800 -0.826900
vn -0.605300 0.516800 -0.605300
vn 0.826900 0.516800 0.221600
vn -0.221600 0.516800 0.826900
vn -0.826900 0.516800 -0.221600
vn 0.444000 0.888100 0.119000
vn 0.857800 0.459700 0.229900
vn 0.628000 0.459700 0.628000
vn 0.325100 0.888100 0.325100
vn 0.229900 0.459700 0.857800
vn 0.119000 0.888100 0.444000
vn -0.229900 0.459700 0.857800
vn -0.119000 0.888100 0.444000
vn -0.628000 0.459700 0.628000
vn -0.325100 0.888100 0.325100
vn -0.857800 0.459700 0.229900
vn -0.444000 0.888100 0.119000
vn -0.444000 0.888100 -0.119000
vn -0.857800 0.459700 -0.229900
vn -0.325100 0.888100 -0.325100
vn -0.628000 0.459700 -0.628000
vn -0.119000 0.888100 -0.444000
vn -0.229800 0.459700 -0.857800
vn 0.119000 0.888100 -0.444000
vn 0.229900 0.459700 -0.857800
vn 0.325100 0.888100 -0.325100
vn 0.628000 0.459700 -0.628000
vn 0.132700 0.990500 0.035600
vn 0.097100 0.990500 0.097100
vn 0.035600 0.990500 0.132700
vn -0.035600 0.990500 0.132700
vn -0.097100 0.990500 0.097100
vn -0.132700 0.990500 0.035600
vn -0.132700 0.990500 -0.035600
vn -0.097100 0.990500 -0.097100
vn -0.035600 0.990500 -0.132700
vn 0.035600 0.990500 -0.132700
vn 0.693200 -0.197100 -0.693200
vn 0.097100 0.990500 -0.097100
vn 0.693200 -0.197100 0.693200
vn -0.693200 -0.197100 0.693200
vn 0.132700 0.990500 -0.035600
vn 0.857800 0.459700 -0.229900
vn -0.693200 -0.197100 -0.693200
vn 0.444000 0.888100 -0.119000
vn -0.933900 0.357400 0.000000
vn -0.933900 -0.357400 0.000000
vn -0.660400 -0.357400 -0.660400
vn -0.660400 0.357400 -0.660400
vn 0.000000 0.357400 -0.933900
vn 0.000000 -0.357400 -0.933900
vn 0.660400 0.357400 -0.660400
vn 0.660400 -0.357400 -0.660400
vn 0.933900 0.357400 -0.000000
vn 0.933900 -0.357400 0.000000
vn 0.660400 0.357400 0.660400
vn 0.660400 -0.357400 0.660400
vn -0.000000 0.357400 0.933900
vn -0.000000 -0.357400 0.933900
vn 0.607800 0.510900 -0.607800
vn -0.409100 -0.912500 -0.000000
vn -0.409100 0.912500 0.000000
vn -0.289300 0.912500 -0.289300
vn -0.289300 -0.912500 -0.289300
vn 0.000000 0.912500 -0.409100
vn 0.000000 -0.912500 -0.409100
vn 0.289300 -0.912500 -0.289300
vn 0.289300 0.912500 -0.289300
vn 0.409100 -0.912500 0.000000
vn 0.409100 0.912500 0.000000
vn 0.289300 -0.912500 0.289300
vn 0.289300 0.912500 0.289300
vn -0.000000 -0.912500 0.409100
vn -0.000000 0.912500 0.409100
vn -0.289300 0.912500 0.289300
vn -0.289300 -0.912500 0.289300
vn -0.660400 0.357400 0.660400
vn -0.660400 -0.357400 0.660400
vn -0.607800 0.510900 -0.607800
vn -0.607800 0.510900 0.607800
vn 0.607800 0.510900 0.607800
vn -0.444000 -0.888100 -0.119000
vn -0.857800 -0.459700 -0.229900
vn -0.628000 -0.459700 -0.628000
vn -0.325100 -0.888100 -0.325100
vn -0.229900 -0.459700 -0.857800
vn -0.119000 -0.888100 -0.444000
vn 0.229900 -0.459700 -0.857800
vn 0.119000 -0.888100 -0.444000
vn 0.628000 -0.459700 -0.628000
vn 0.325100 -0.888100 -0.325100
vn 0.857800 -0.459700 -0.229800
vn 0.444000 -0.888100 -0.119000
vn 0.444000 -0.888100 0.119000
vn 0.857800 -0.459700 0.229900
vn 0.325100 -0.888100 0.325100
vn 0.628000 -0.459700 0.628000
vn 0.119000 -0.888100 0.444000
vn 0.229800 -0.459700 0.857800
vn -0.119000 -0.888100 0.444000
vn -0.229900 -0.459700 0.857800
vn -0.325100 -0.888100 0.325100
vn -0.628000 -0.459700 0.628000
vn -0.132700 -0.990500 -0.035600
vn -0.097100 -0.990500 -0.097100
vn -0.035600 -0.990500 -0.132700
vn 0.035600 -0.990500 -0.132700
vn 0.097100 -0.990500 -0.097100
vn 0.132700 -0.990500 -0.035600
vn 0.132700 -0.990500 0.035600
vn 0.097100 -0.990500 0.097100
vn 0.035600 -0.990500 0.132700
vn -0.035600 -0.990500 0.132700
vn -0.693200 0.197100 0.693200
vn -0.097100 -0.990500 0.097100
vn -0.693200 0.197100 -0.693200
vn 0.693200 0.197100 -0.693200
vn -0.132700 -0.990500 0.035600
vn -0.857800 -0.459700 0.229900
vn 0.693200 0.197100 0.693200
vn -0.444000 -0.888100 0.119000
vn -0.607800 -0.510900 0.607800
vn 0.607800 -0.510900 0.607800
vn 0.607800 -0.510900 -0.607800
vn -0.607800 -0.510900 -0.607800
vn -0.229900 0.459700 -0.857800
vn 0.857800 -0.459700 -0.229900
vn 0.229900 -0.459700 0.857800
s off
f 17/1/1 21/2/1 15/3/1
f 11/4/2 23/5/2 22/6/2
f 8/7/3 20/8/3 19/9/3
f 4/10/4 5/11/4 17/12/4
f 12/13/5 24/14/5 23/5/5
f 1/15/6 2/16/6 13/17/6
f 9/18/7 21/19/7 20/8/7
f 5/11/8 6/20/8 18/21/8
f 1/15/9 14/22/9 24/14/9
f 3/23/10 15/24/10 13/17/10
f 10/25/11 22/6/11 21/19/11
f 7/26/12 19/9/12 18/21/12
f 4/27/13 16/28/13 15/24/13
f 31/29/14 30/30/14 26/31/14
f 26/31/15 30/30/15 29/32/15
f 30/31/16 33/30/16 32/33/16
f 34/29/17 33/30/17 30/31/17
f 36/30/18 35/32/18 32/34/18
f 37/29/19 36/30/19 33/31/19
f 39/30/20 38/32/20 35/34/20
f 40/29/21 39/30/21 36/31/21
f 42/30/22 41/32/22 38/34/22
f 43/29/23 42/30/23 39/31/23
f 42/31/24 45/30/24 44/32/24
f 43/35/25 46/29/25 45/30/25
f 49/29/26 48/30/26 45/31/26
f 48/30/27 47/33/27 44/36/27
f 52/29/28 51/30/28 48/31/28
f 48/31/29 51/30/29 50/32/29
f 55/29/30 54/30/30 51/31/30
f 54/30/31 53/32/31 50/34/31
f 58/29/32 57/30/32 54/31/32
f 57/30/33 56/32/33 53/34/33
f 61/29/34 60/30/34 57/31/34
f 60/30/35 59/32/35 56/34/35
f 28/37/36 31/29/36 27/35/36
f 28/38/37 34/29/37 31/35/37
f 28/37/38 37/29/38 34/35/38
f 28/37/39 40/29/39 37/35/39
f 28/39/40 43/29/40 40/35/40
f 28/37/41 46/29/41 43/35/41
f 28/38/42 49/29/42 46/35/42
f 28/37/43 52/29/43 49/35/43
f 28/37/44 55/29/44 52/35/44
f 28/37/45 58/29/45 55/35/45
f 12/40/46 40/41/46 43/42/46
f 28/37/47 61/29/47 58/35/47
f 52/42/48 8/43/48 9/40/48
f 58/41/49 61/42/49 5/44/49
f 28/38/50 27/29/50 61/35/50
f 60/31/51 26/30/51 25/33/51
f 3/40/52 31/41/52 34/42/52
f 27/29/53 26/30/53 60/31/53
f 62/45/54 66/46/54 67/47/54
f 63/48/55 67/47/55 68/49/55
f 67/50/56 70/51/56 71/52/56
f 66/53/57 69/54/57 70/55/57
f 70/56/58 69/57/58 72/58/58
f 70/56/59 73/59/59 74/60/59
f 73/61/60 72/62/60 75/63/60
f 73/64/61 76/65/61 77/66/61
f 76/67/62 75/68/62 78/69/62
f 76/67/63 79/70/63 80/71/63
f 78/72/64 82/73/64 83/74/64
f 79/75/65 83/76/65 84/77/65
f 83/78/66 82/79/66 87/80/66
f 83/78/67 88/81/67 89/82/67
f 92/83/68 93/84/68 73/85/68
f 65/86/69 64/87/69 68/49/69
f 62/45/70 86/88/70 66/46/70
f 66/53/71 86/89/71 69/54/71
f 65/90/72 68/91/72 71/52/72
f 69/57/73 86/92/73 72/58/73
f 65/93/74 71/94/74 74/60/74
f 65/95/75 74/96/75 77/66/75
f 72/62/76 86/97/76 75/63/76
f 65/98/77 77/99/77 80/71/77
f 75/68/78 86/100/78 78/69/78
f 65/101/79 80/102/79 84/77/79
f 78/72/80 86/103/80 82/73/80
f 65/104/81 84/105/81 89/82/81
f 82/79/82 86/106/82 87/80/82
f 87/107/83 86/108/83 62/109/83
f 65/110/84 89/111/84 64/112/84
f 88/113/85 87/107/85 62/109/85
f 89/111/86 88/114/86 63/115/86
f 94/83/87 95/84/87 67/85/87
f 63/116/88 81/83/88 85/84/88
f 83/116/89 90/83/89 91/84/89
f 106/35/90 105/31/90 109/30/90
f 105/31/91 104/34/91 108/32/91
f 108/36/92 111/33/92 112/30/92
f 109/31/93 112/30/93 113/29/93
f 111/34/94 114/32/94 115/30/94
f 112/31/95 115/30/95 116/29/95
f 114/34/96 117/32/96 118/30/96
f 116/35/97 115/31/97 118/30/97
f 117/34/98 120/32/98 121/30/98
f 118/31/99 121/30/99 122/29/99
f 120/34/100 123/32/100 124/30/100
f 122/35/101 121/31/101 124/30/101
f 125/35/102 124/31/102 127/30/102
f 123/36/103 126/33/103 127/30/103
f 127/31/104 130/30/104 131/29/104
f 126/34/105 129/32/105 130/30/105
f 130/31/106 133/30/106 134/29/106
f 129/34/107 132/32/107 133/30/107
f 133/31/108 136/30/108 137/29/108
f 132/34/109 135/32/109 136/30/109
f 136/31/110 139/30/110 140/29/110
f 135/34/111 138/32/111 139/30/111
f 107/37/112 106/35/112 110/29/112
f 107/38/113 110/35/113 113/29/113
f 107/37/114 113/35/114 116/29/114
f 107/37/115 116/35/115 119/29/115
f 107/39/116 119/35/116 122/29/116
f 107/37/117 122/35/117 125/29/117
f 107/38/118 125/35/118 128/29/118
f 107/37/119 128/35/119 131/29/119
f 107/37/120 131/35/120 134/29/120
f 107/37/121 134/35/121 137/29/121
f 122/42/122 119/41/122 103/40/122
f 107/37/123 137/35/123 140/29/123
f 101/40/124 100/43/124 131/42/124
f 137/41/125 99/117/125 98/44/125
f 107/38/126 140/35/126 106/29/126
f 139/31/127 138/36/127 104/33/127
f 113/42/128 110/41/128 97/40/128
f 139/31/129 105/30/129 106/29/129
f 145/116/130 144/85/130 154/84/130
f 143/116/131 142/85/131 156/84/131
f 149/84/132 147/83/132 141/116/132
f 152/84/133 151/83/133 148/116/133
f 14/118/1 13/119/1 15/3/1
f 15/3/1 16/120/1 17/1/1
f 17/1/1 18/121/1 21/2/1
f 19/122/1 20/123/1 21/2/1
f 21/2/1 22/124/1 23/125/1
f 23/125/1 24/126/1 14/118/1
f 14/118/1 15/3/1 21/2/1
f 18/121/1 19/122/1 21/2/1
f 21/2/1 23/125/1 14/118/1
f 10/25/2 11/4/2 22/6/2
f 7/26/3 8/7/3 19/9/3
f 16/127/4 4/10/4 17/12/4
f 11/4/5 12/13/5 23/5/5
f 14/22/6 1/15/6 13/17/6
f 8/7/7 9/18/7 20/8/7
f 17/12/8 5/11/8 18/21/8
f 12/13/9 1/15/9 24/14/9
f 2/16/10 3/23/10 13/17/10
f 9/18/11 10/25/11 21/19/11
f 6/20/12 7/26/12 18/21/12
f 3/23/13 4/27/13 15/24/13
f 27/35/14 31/29/14 26/31/14
f 25/34/15 26/31/15 29/32/15
f 29/36/16 30/31/16 32/33/16
f 31/35/17 34/29/17 30/31/17
f 33/31/18 36/30/18 32/34/18
f 34/35/19 37/29/19 33/31/19
f 36/31/20 39/30/20 35/34/20
f 37/35/21 40/29/21 36/31/21
f 39/31/22 42/30/22 38/34/22
f 40/35/23 43/29/23 39/31/23
f 41/34/24 42/31/24 44/32/24
f 42/31/25 43/35/25 45/30/25
f 46/35/26 49/29/26 45/31/26
f 45/31/27 48/30/27 44/36/27
f 49/35/28 52/29/28 48/31/28
f 47/34/29 48/31/29 50/32/29
f 52/35/30 55/29/30 51/31/30
f 51/31/134 54/30/134 50/34/134
f 55/35/32 58/29/32 54/31/32
f 54/31/33 57/30/33 53/34/33
f 58/35/34 61/29/34 57/31/34
f 57/31/35 60/30/35 56/34/35
f 11/43/46 12/40/46 43/42/46
f 49/41/48 52/42/48 9/40/48
f 6/117/49 58/41/49 5/44/49
f 59/36/51 60/31/51 25/33/51
f 2/43/52 3/40/52 34/42/52
f 61/35/53 27/29/53 60/31/53
f 63/48/54 62/45/54 67/47/54
f 64/87/55 63/48/55 68/49/55
f 68/91/56 67/50/56 71/52/56
f 67/128/57 66/53/57 70/55/57
f 73/59/58 70/56/58 72/58/58
f 71/94/59 70/56/59 74/60/59
f 76/129/60 73/61/60 75/63/60
f 74/96/61 73/64/61 77/66/61
f 79/70/62 76/67/62 78/69/62
f 77/99/63 76/67/63 80/71/63
f 79/130/64 78/72/64 83/74/64
f 80/102/65 79/75/65 84/77/65
f 88/81/66 83/78/66 87/80/66
f 84/105/67 83/78/67 89/82/67
f 76/116/68 92/83/68 73/85/68
f 63/131/85 88/113/85 62/109/85
f 64/112/86 89/111/86 63/115/86
f 70/116/87 94/83/87 67/85/87
f 88/85/88 63/116/88 85/84/88
f 79/85/89 83/116/89 91/84/89
f 110/29/90 106/35/90 109/30/90
f 109/30/91 105/31/91 108/32/91
f 109/31/92 108/36/92 112/30/92
f 110/35/93 109/31/93 113/29/93
f 112/31/94 111/34/94 115/30/94
f 113/35/95 112/31/95 116/29/95
f 115/31/96 114/34/96 118/30/96
f 119/29/97 116/35/97 118/30/97
f 118/31/98 117/34/98 121/30/98
f 119/35/99 118/31/99 122/29/99
f 121/31/135 120/34/135 124/30/135
f 125/29/101 122/35/101 124/30/101
f 128/29/102 125/35/102 127/30/102
f 124/31/103 123/36/103 127/30/103
f 128/35/104 127/31/104 131/29/104
f 127/31/105 126/34/105 130/30/105
f 131/35/106 130/31/106 134/29/106
f 130/31/136 129/34/136 133/30/136
f 134/35/108 133/31/108 137/29/108
f 133/31/109 132/34/109 136/30/109
f 137/35/110 136/31/110 140/29/110
f 136/31/111 135/34/111 139/30/111
f 102/43/122 122/42/122 103/40/122
f 128/41/124 101/40/124 131/42/124
f 140/42/125 137/41/125 98/44/125
f 105/30/127 139/31/127 104/33/127
f 96/43/128 113/42/128 97/40/128
f 140/35/129 139/31/129 106/29/129
f 153/83/130 145/116/130 154/84/130
f 155/83/131 143/116/131 156/84/131
f 150/85/132 149/84/132 141/116/132
f 146/85/133 152/84/133 148/116/133

File diff suppressed because it is too large Load Diff

View File

@ -1,542 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'sat_scanner.blend1'
# www.blender.org
o Circle
v 0.000000 5.250000 -1.250000
v -0.625000 5.250000 -1.082532
v -1.082532 5.250000 -0.625000
v -1.250000 5.250000 0.000000
v -1.082532 5.250000 0.625000
v -0.625000 5.250000 1.082532
v -0.000000 5.250000 1.250000
v 0.625000 5.250000 1.082532
v 1.082531 5.250000 0.625000
v 1.250000 5.250000 0.000001
v 1.082532 5.250000 -0.624999
v 0.625001 5.250000 -1.082531
v -0.406250 5.750000 -0.703646
v 0.000000 5.750000 -0.812500
v -0.703646 5.750000 -0.406250
v -0.812500 5.750000 0.000000
v -0.703646 5.750000 0.406250
v -0.406250 5.750000 0.703646
v -0.000000 5.750000 0.812500
v 0.406250 5.750000 0.703646
v 0.703645 5.750000 0.406250
v 0.812500 5.750000 0.000000
v 0.703646 5.750000 -0.406249
v 0.406250 5.750000 -0.703645
v 0.500000 7.000000 -3.750000
v 0.600000 6.676476 -3.622222
v 0.700000 6.375000 -3.247595
v 0.800000 6.116117 -2.651650
v 0.900000 5.917468 -1.875000
v 1.000000 5.792593 -0.970572
v 1.000000 5.750000 -0.000000
v 1.000000 5.792593 0.970571
v 0.900000 5.917468 1.874999
v 0.800000 6.116117 2.651649
v 0.700000 6.375000 3.247594
v 0.600000 6.676476 3.622221
v 0.500000 7.000000 3.749999
v -0.700000 6.375000 3.247594
v -0.800000 6.116117 2.651649
v -0.900000 5.917468 1.874999
v -1.000000 5.792593 0.970571
v -1.000000 5.750000 -0.000000
v -1.000000 5.792593 -0.970572
v -0.900000 5.917468 -1.875000
v -0.800000 6.116117 -2.651650
v -0.700000 6.375000 -3.247595
v -0.600000 6.676476 -3.622222
v -0.500000 7.000000 -3.750000
v -0.600000 6.676476 3.622221
v -0.500000 7.000000 3.749999
v -1.500000 5.600000 0.650000
v -1.500000 5.900000 0.650000
v -1.500000 5.600000 -0.650000
v -1.500000 5.900000 -0.650000
v -1.000000 5.600000 0.650000
v -1.000000 5.900000 0.650000
v -1.000000 5.600000 -0.650000
v -1.000000 5.900000 -0.650000
v 1.000000 5.600000 0.650000
v 1.000000 5.900000 0.650000
v 1.000000 5.600000 -0.650000
v 1.000000 5.900000 -0.650000
v 1.500000 5.600000 0.650000
v 1.500000 5.900000 0.650000
v 1.500000 5.600000 -0.650000
v 1.500000 5.900000 -0.650000
v -0.500000 7.900000 0.450000
v -0.500000 8.100000 0.450000
v -0.500000 7.900000 -0.450000
v -0.500000 8.100000 -0.450000
v 0.500000 7.900000 0.450000
v 0.500000 8.100000 0.450000
v 0.500000 7.900000 -0.450000
v 0.500000 8.100000 -0.450000
v -0.500000 7.700000 -0.225000
v -0.500000 7.700000 0.225000
v 0.500000 7.700000 -0.225000
v 0.500000 7.700000 0.225000
v -1.000000 7.700000 -0.100000
v 1.000000 7.700000 -0.100000
v -1.000000 7.700000 -0.300000
v 1.000000 7.700000 -0.300000
v -1.000000 7.700000 0.300000
v 1.000000 7.700000 0.300000
v -1.000000 7.700000 0.100000
v 1.000000 7.700000 0.100000
v -1.200000 7.350000 -0.100000
v -1.200000 7.350000 -0.300000
v -1.200000 7.350000 0.300000
v -1.200000 7.350000 0.100000
v -1.200000 5.900000 -0.100000
v -1.200000 5.900000 -0.300000
v -1.200000 5.900000 0.300000
v -1.200000 5.900000 0.100000
v 1.200000 7.350000 -0.100000
v 1.200000 7.350000 -0.300000
v 1.200000 7.350000 0.300000
v 1.200000 7.350000 0.100000
v 1.200000 5.900000 -0.100000
v 1.200000 5.900000 -0.300000
v 1.200000 5.900000 0.300000
v 1.200000 5.900000 0.100000
v 0.500000 8.000000 -0.100000
v 0.500000 8.000000 -0.300000
v 0.500000 8.000000 0.300000
v 0.500000 8.000000 0.100000
v -0.500000 8.000000 -0.100000
v -0.500000 8.000000 -0.300000
v -0.500000 8.000000 0.300000
v -0.500000 8.000000 0.100000
v 0.500000 7.000000 -3.750000
v 0.600000 6.676476 -3.622222
v 0.700000 6.375000 -3.247595
v 0.800000 6.116117 -2.651650
v 0.900000 5.917468 -1.875000
v 1.000000 5.792593 -0.970572
v 1.000000 5.750000 -0.000000
v 1.000000 5.792593 0.970571
v 0.900000 5.917468 1.874999
v 0.800000 6.116117 2.651649
v 0.700000 6.375000 3.247594
v 0.600000 6.676476 3.622221
v 0.500000 7.000000 3.749999
v -0.700000 6.375000 3.247594
v -0.800000 6.116117 2.651649
v -0.900000 5.917468 1.874999
v -1.000000 5.792593 0.970571
v -1.000000 5.750000 -0.000000
v -1.000000 5.792593 -0.970572
v -0.900000 5.917468 -1.875000
v -0.800000 6.116117 -2.651650
v -0.700000 6.375000 -3.247595
v -0.600000 6.676476 -3.622222
v -0.500000 7.000000 -3.750000
v -0.600000 6.676476 3.622221
v -0.500000 7.000000 3.749999
v -1.000000 7.700000 -0.100000
v 1.000000 7.700000 -0.100000
v -1.000000 7.700000 -0.300000
v 1.000000 7.700000 -0.300000
v -1.000000 7.700000 0.300000
v 1.000000 7.700000 0.300000
v -1.000000 7.700000 0.100000
v 1.000000 7.700000 0.100000
v -1.200000 7.350000 -0.100000
v -1.200000 7.350000 -0.300000
v -1.200000 7.350000 0.300000
v -1.200000 7.350000 0.100000
v -1.200000 5.900000 -0.100000
v -1.200000 5.900000 -0.300000
v -1.200000 5.900000 0.300000
v -1.200000 5.900000 0.100000
v 1.200000 7.350000 -0.100000
v 1.200000 7.350000 -0.300000
v 1.200000 7.350000 0.300000
v 1.200000 7.350000 0.100000
v 1.200000 5.900000 -0.100000
v 1.200000 5.900000 -0.300000
v 1.200000 5.900000 0.300000
v 1.200000 5.900000 0.100000
v 0.500000 8.000000 -0.100000
v 0.500000 8.000000 -0.300000
v 0.500000 8.000000 0.300000
v 0.500000 8.000000 0.100000
v -0.500000 8.000000 -0.100000
v -0.500000 8.000000 -0.300000
v -0.500000 8.000000 0.300000
v -0.500000 8.000000 0.100000
vt 0.128357 0.415470
vt 0.281348 0.456464
vt 0.104689 0.503800
vt 0.351530 0.529603
vt 0.315118 0.592671
vt 0.257680 0.544793
vt 0.242490 0.321621
vt 0.305558 0.358033
vt 0.257680 0.415470
vt 0.070919 0.367593
vt 0.104689 0.456464
vt 0.242490 0.638643
vt 0.216686 0.568461
vt 0.143547 0.638643
vt 0.080480 0.602231
vt 0.128357 0.544793
vt 0.315118 0.367593
vt 0.351530 0.430660
vt 0.143547 0.321621
vt 0.169351 0.391803
vt 0.156607 0.642142
vt 0.169351 0.568461
vt 0.034507 0.529603
vt 0.355029 0.443720
vt 0.355029 0.516544
vt 0.281348 0.503800
vt 0.156607 0.318121
vt 0.229431 0.318121
vt 0.216686 0.391803
vt 0.031008 0.443720
vt 0.070157 0.211086
vt 0.031008 0.199832
vt 0.031008 0.087284
vt 0.124278 0.222341
vt 0.070157 0.076029
vt 0.197406 0.233596
vt 0.124278 0.064774
vt 0.287630 0.244850
vt 0.197406 0.053519
vt 0.390388 0.256105
vt 0.287630 0.042264
vt 0.499729 0.256105
vt 0.390387 0.031009
vt 0.609070 0.256104
vt 0.499728 0.031009
vt 0.711827 0.244849
vt 0.609069 0.031008
vt 0.802052 0.233594
vt 0.711827 0.042263
vt 0.875179 0.064772
vt 0.875180 0.222339
vt 0.929300 0.211084
vt 0.968449 0.199829
vt 0.929300 0.076027
vt 0.771687 0.498198
vt 0.737923 0.498198
vt 0.737923 0.351886
vt 0.681648 0.531963
vt 0.681648 0.498198
vt 0.827961 0.351886
vt 0.861725 0.351886
vt 0.861725 0.498198
vt 0.737923 0.318121
vt 0.681649 0.351886
vt 0.827961 0.498198
vt 0.771687 0.351886
vt 0.597123 0.791172
vt 0.597123 0.824937
vt 0.450810 0.824937
vt 0.630887 0.701134
vt 0.597123 0.701134
vt 0.597123 0.644860
vt 0.450810 0.734898
vt 0.450810 0.701134
vt 0.417046 0.644860
vt 0.450810 0.644860
vt 0.597123 0.734898
vt 0.450810 0.791172
vt 0.462065 0.526452
vt 0.439555 0.526452
vt 0.439555 0.425159
vt 0.574613 0.526452
vt 0.574613 0.548962
vt 0.462065 0.548962
vt 0.574613 0.425159
vt 0.597122 0.425159
vt 0.597122 0.526452
vt 0.462065 0.425159
vt 0.462065 0.402649
vt 0.574613 0.402649
vt 0.574613 0.582843
vt 0.462065 0.582843
vt 0.462065 0.318121
vt 0.574613 0.318121
vt 0.574613 0.368768
vt 0.462065 0.368768
vt 0.619632 0.450482
vt 0.619632 0.501129
vt 0.417046 0.501129
vt 0.417046 0.450482
vt 0.777430 0.853424
vt 0.777430 0.808054
vt 0.799939 0.808054
vt 0.692904 0.853424
vt 0.692904 0.808054
vt 0.715413 0.808054
vt 0.692904 0.644860
vt 0.715413 0.644860
vt 0.777430 0.644860
vt 0.799939 0.644860
vt 0.861956 0.853424
vt 0.861956 0.808054
vt 0.884466 0.808054
vt 0.946482 0.853424
vt 0.946482 0.808054
vt 0.968992 0.808054
vt 0.861956 0.644860
vt 0.884466 0.644860
vt 0.946482 0.644860
vt 0.968992 0.644860
vt 0.968992 0.919050
vt 0.946482 0.919050
vt 0.884466 0.919050
vt 0.861956 0.919050
vt 0.799939 0.919050
vt 0.777430 0.919050
vt 0.715413 0.919050
vt 0.692903 0.919050
vt 0.802051 0.053517
vt 0.968449 0.087281
vt 0.034507 0.430660
vt 0.305558 0.602231
vt 0.080480 0.358033
vt 0.229431 0.642142
vt 0.070919 0.592671
vt 0.031008 0.516544
vt 0.737923 0.531963
vt 0.681648 0.318121
vt 0.630887 0.644860
vt 0.417046 0.701134
vt 0.799939 0.853424
vt 0.715413 0.853424
vt 0.884466 0.853424
vt 0.968992 0.853424
vn 0.000000 1.000000 0.000000
vn 0.737700 0.645500 -0.197700
vn 0.197700 0.645500 0.737700
vn -0.737700 0.645500 0.197700
vn 0.540100 0.645500 -0.540100
vn -0.197700 0.645500 -0.737700
vn 0.540100 0.645500 0.540100
vn -0.540100 0.645500 0.540100
vn 0.197700 0.645500 -0.737700
vn -0.540100 0.645500 -0.540100
vn 0.737700 0.645500 0.197700
vn -0.197700 0.645500 0.737700
vn -0.737700 0.645500 -0.197700
vn 0.000000 0.367300 -0.930100
vn 0.000000 0.779100 -0.626900
vn 0.000000 0.917200 -0.398400
vn 0.000000 0.968800 -0.247800
vn 0.000000 0.990600 -0.136800
vn 0.000000 0.999000 -0.043800
vn 0.000000 0.999000 0.043800
vn 0.000000 0.990600 0.136800
vn 0.000000 0.968800 0.247800
vn 0.000000 0.917200 0.398400
vn 0.000000 0.779100 0.626900
vn 0.000000 0.367300 0.930100
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -0.747400 -0.664400
vn 0.000000 -0.747400 0.664400
vn -0.868200 0.496100 0.000000
vn 0.868200 0.496100 0.000000
vn 0.514500 0.857500 0.000000
vn -0.514500 0.857500 0.000000
vn 0.000000 -0.367300 0.930100
vn 0.000000 -0.779100 0.626900
vn 0.000000 -0.917200 0.398400
vn 0.000000 -0.968800 0.247800
vn 0.000000 -0.990600 0.136800
vn 0.000000 -0.999000 0.043800
vn 0.000000 -0.999000 -0.043800
vn 0.000000 -0.990600 -0.136800
vn 0.000000 -0.968800 -0.247800
vn 0.000000 -0.917200 -0.398400
vn 0.000000 -0.779100 -0.626900
vn 0.000000 -0.367300 -0.930100
vn 0.868200 -0.496100 0.000000
vn -0.868200 -0.496100 0.000000
vn -0.514500 -0.857500 0.000000
vn 0.514500 -0.857500 0.000000
s off
f 17/1/1 21/2/1 15/3/1
f 10/4/2 11/5/2 23/6/2
f 7/7/3 8/8/3 20/9/3
f 5/10/4 17/1/4 16/11/4
f 12/12/5 24/13/5 23/6/5
f 1/14/6 2/15/6 13/16/6
f 8/17/7 9/18/7 21/2/7
f 6/19/8 18/20/8 17/1/8
f 1/21/9 14/22/9 24/13/9
f 3/23/10 15/3/10 13/16/10
f 9/24/11 10/25/11 22/26/11
f 6/27/12 7/28/12 19/29/12
f 4/30/13 16/11/13 15/3/13
f 49/31/14 50/32/14 37/33/14
f 38/34/15 49/31/15 36/35/15
f 39/36/16 38/34/16 35/37/16
f 40/38/17 39/36/17 34/39/17
f 41/40/18 40/38/18 33/41/18
f 42/42/19 41/40/19 32/43/19
f 43/44/20 42/42/20 31/45/20
f 44/46/21 43/44/21 30/47/21
f 45/48/22 44/46/22 29/49/22
f 27/50/23 46/51/23 45/48/23
f 47/52/24 46/51/24 27/50/24
f 48/53/25 47/52/25 26/54/25
f 54/55/26 53/56/26 51/57/26
f 58/58/27 57/59/27 53/56/27
f 56/60/28 55/61/28 57/62/28
f 52/63/29 51/57/29 55/64/29
f 53/56/30 57/59/30 55/64/30
f 58/65/1 54/55/1 52/66/1
f 62/67/26 61/68/26 59/69/26
f 66/70/27 65/71/27 61/72/27
f 64/73/28 63/74/28 65/71/28
f 60/75/29 59/76/29 63/74/29
f 61/72/30 65/71/30 63/74/30
f 66/77/1 62/67/1 60/78/1
f 70/79/26 69/80/26 67/81/26
f 74/82/27 73/83/27 69/84/27
f 72/85/28 71/86/28 73/87/28
f 68/88/29 67/89/29 71/90/29
f 73/83/31 77/91/31 75/92/31
f 74/82/1 70/79/1 68/88/1
f 75/93/30 77/94/30 78/95/30
f 67/89/32 76/96/32 78/95/32
f 71/86/28 78/97/28 77/98/28
f 69/80/26 75/99/26 76/100/26
f 81/101/33 88/102/33 87/103/33
f 85/104/33 90/105/33 89/106/33
f 90/105/26 94/107/26 93/108/26
f 88/102/26 92/109/26 91/110/26
f 80/111/34 95/112/34 96/113/34
f 84/114/34 97/115/34 98/116/34
f 95/112/28 99/117/28 100/118/28
f 97/115/28 101/119/28 102/120/28
f 106/121/35 105/122/35 84/114/35
f 104/123/35 103/124/35 80/111/35
f 107/125/36 108/126/36 81/101/36
f 109/127/36 110/128/36 85/104/36
f 123/33/37 136/32/37 135/31/37
f 122/35/38 135/31/38 124/34/38
f 121/37/39 124/34/39 125/36/39
f 119/41/40 120/39/40 125/36/40
f 119/41/41 126/38/41 127/40/41
f 118/43/42 127/40/42 128/42/42
f 117/45/43 128/42/43 129/44/43
f 116/47/44 129/44/44 130/46/44
f 115/49/45 130/46/45 131/48/45
f 113/50/46 114/129/46 131/48/46
f 113/50/47 132/51/47 133/52/47
f 111/130/48 112/54/48 133/52/48
f 145/103/49 146/102/49 139/101/49
f 147/106/49 148/105/49 143/104/49
f 151/108/28 152/107/28 148/105/28
f 149/110/28 150/109/28 146/102/28
f 154/113/50 153/112/50 138/111/50
f 156/116/50 155/115/50 142/114/50
f 158/118/26 157/117/26 153/112/26
f 160/120/26 159/119/26 155/115/26
f 142/114/51 163/122/51 164/121/51
f 138/111/51 161/124/51 162/123/51
f 139/101/52 166/126/52 165/125/52
f 143/104/52 168/128/52 167/127/52
f 14/22/1 13/16/1 15/3/1
f 15/3/1 16/11/1 17/1/1
f 17/1/1 18/20/1 19/29/1
f 19/29/1 20/9/1 17/1/1
f 21/2/1 22/26/1 23/6/1
f 23/6/1 24/13/1 21/2/1
f 14/22/1 15/3/1 21/2/1
f 17/1/1 20/9/1 21/2/1
f 21/2/1 24/13/1 14/22/1
f 22/26/2 10/4/2 23/6/2
f 19/29/3 7/7/3 20/9/3
f 4/131/4 5/10/4 16/11/4
f 11/132/5 12/12/5 23/6/5
f 14/22/6 1/14/6 13/16/6
f 20/9/7 8/17/7 21/2/7
f 5/133/8 6/19/8 17/1/8
f 12/134/9 1/21/9 24/13/9
f 2/135/10 3/23/10 13/16/10
f 21/2/11 9/24/11 22/26/11
f 18/20/12 6/27/12 19/29/12
f 3/136/13 4/30/13 15/3/13
f 36/35/14 49/31/14 37/33/14
f 35/37/15 38/34/15 36/35/15
f 34/39/16 39/36/16 35/37/16
f 33/41/17 40/38/17 34/39/17
f 32/43/18 41/40/18 33/41/18
f 31/45/19 42/42/19 32/43/19
f 30/47/20 43/44/20 31/45/20
f 29/49/21 44/46/21 30/47/21
f 28/129/22 45/48/22 29/49/22
f 28/129/23 27/50/23 45/48/23
f 26/54/24 47/52/24 27/50/24
f 25/130/25 48/53/25 26/54/25
f 52/66/26 54/55/26 51/57/26
f 54/137/27 58/58/27 53/56/27
f 58/65/28 56/60/28 57/62/28
f 56/138/29 52/63/29 55/64/29
f 51/57/30 53/56/30 55/64/30
f 56/60/1 58/65/1 52/66/1
f 60/78/26 62/67/26 59/69/26
f 62/139/27 66/70/27 61/72/27
f 66/77/28 64/73/28 65/71/28
f 64/140/29 60/75/29 63/74/29
f 59/76/30 61/72/30 63/74/30
f 64/73/1 66/77/1 60/78/1
f 68/88/26 70/79/26 67/81/26
f 70/79/27 74/82/27 69/84/27
f 74/82/28 72/85/28 73/87/28
f 72/85/29 68/88/29 71/90/29
f 69/84/31 73/83/31 75/92/31
f 72/85/1 74/82/1 68/88/1
f 76/96/30 75/93/30 78/95/30
f 71/90/32 67/89/32 78/95/32
f 73/87/28 71/86/28 77/98/28
f 67/81/26 69/80/26 76/100/26
f 79/141/33 81/101/33 87/103/33
f 83/142/33 85/104/33 89/106/33
f 89/106/26 90/105/26 93/108/26
f 87/103/26 88/102/26 91/110/26
f 82/143/34 80/111/34 96/113/34
f 86/144/34 84/114/34 98/116/34
f 96/113/28 95/112/28 100/118/28
f 98/116/28 97/115/28 102/120/28
f 86/144/35 106/121/35 84/114/35
f 82/143/35 104/123/35 80/111/35
f 79/141/36 107/125/36 81/101/36
f 83/142/36 109/127/36 85/104/36
f 122/35/37 123/33/37 135/31/37
f 121/37/38 122/35/38 124/34/38
f 120/39/39 121/37/39 125/36/39
f 126/38/40 119/41/40 125/36/40
f 118/43/41 119/41/41 127/40/41
f 117/45/42 118/43/42 128/42/42
f 116/47/43 117/45/43 129/44/43
f 115/49/44 116/47/44 130/46/44
f 114/129/45 115/49/45 131/48/45
f 132/51/46 113/50/46 131/48/46
f 112/54/47 113/50/47 133/52/47
f 134/53/48 111/130/48 133/52/48
f 137/141/49 145/103/49 139/101/49
f 141/142/49 147/106/49 143/104/49
f 147/106/28 151/108/28 148/105/28
f 145/103/28 149/110/28 146/102/28
f 140/143/50 154/113/50 138/111/50
f 144/144/50 156/116/50 142/114/50
f 154/113/26 158/118/26 153/112/26
f 156/116/26 160/120/26 155/115/26
f 144/144/51 142/114/51 164/121/51
f 140/143/51 138/111/51 162/123/51
f 137/141/52 139/101/52 165/125/52
f 141/142/52 143/104/52 167/127/52

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 980 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB