Merge branch 'HbmMods:master' into rulang121

This commit is contained in:
Raaaaaaaaaay 2026-07-12 18:05:58 +03:00 committed by GitHub
commit a5e5378553
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
48 changed files with 1293 additions and 136 deletions

109
changelog
View File

@ -1,105 +1,10 @@
## Added
* Pneumatic Storage System
* Mass storage logistics system that can perform various automation tasks
* Items can be stored in clutter storages (steel crate equivalent) or mono type storages (ironically supports three types set using filters holding several thousand items)
* In order to be accessible, all storages need a supply of compressed air with the compression level dictating range
* Access points allow items to be retrieved and inserted manually
* Access points have a search function as well as several sorting options
* Importers allow hopper IO to add items to the network
* Exporters allow items to be retrieved and then taken using hopper IO, things like filters and request rules can be defined in several ways
* Allows continuous request and request on demand (redstone or RoR command)
* Filters can be set using items or RoR commands
* Requests can be configured to take as much as possible, to only take full stacks, or to only take full requests
* In combination with assembler recipe switching, using RoR logic, this means that on-demand recipe automation is now possible
* Still in testing, there's no recipes for any of the parts yet
* Cargo door
* Steel grate door which goes well with the cargo elevators
## Changed ## Changed
* Updated chinese localization * Updated the trinitite ore textures
* Watz powerplant now has OC and RoR integration * The ore spots are now smaller and more shard-like
* The automatic thresher now has a fluid port on the bottom as well * Each trinitite ore block now has four randomized texture variants
* The foundry basins and outlet filters now use the properly translated name instead of the internal name for the material * Trinitite ores now spawn fewer particles
* Removed config for new bedrock ores * The radiation effect caused by walking on trinitite ore is now much shorter but more intense to compensate
* New ores are the default anyway and old bedrock ores are now properly deprecated
* Existing setups will continue to work for now
* Old bedrock ore items still exist but are no longer listed in the creative tab
* Removed recipe for the small single block steam turbine
* We have steam engines and industrial turbines are really not that expensive
* "oh no, i have to build an actually good looking setup now if i want to build a zirnox!" yeah you do
* Updated light brick texture
* The maximum character limit on RoR channels is now the same for all RoR devices, being 15
* This does not include special RoR interactive devices that don't use GUI text fields like the RoR terminal or the AUTOCAL units
* Pile output rods like the bred uranium and the plutonium rods can no longer be dismantled using the anvil, the PUREX is now mandatory
* If too many conveyor item entities intersect with one another, they explode
* The conveyor belt the items were on is broken, preventing further item buildup
* Items that leave the covneyor belt, usually by trying to enter a full inserter, now have a shortened lifespan of 1 minute instead of 5
* Base steam production per consumed heat has been increased by 50% on the ZIRNOX
* Both radioisotope cell variants have been finally removed after being deprecated for a while
* Selfchargers now have a tooltip explaining the hazards of using them in a battery socket
* The alternate recipe for the assembler in the assembler now uses integrated circuits instead of analog ones
* Added an alternate chemical plant recipe that uses a smaller selection of items and ICs instead of ACs
* Flashgold and flashlead are now made in the PUREX instead of the crafting table
* The flashgold recipe now yields two billets instead of one
* Slightly changed the HSS ingot and plate textures to not look identical to steel except slightly greenish
* The AUTOCAL's buffer is now limited to 256 characters instead of being infinite
* Increased the blast furnace's fuel buffer by 50%, allowing coke blocks to be used
* If an RoR controller tries to parse an integer, but the supplied string represents a decimal, instead of canceling the operation, the system will now interpret decimals and round them to be integers
* This means that the AUTOCAL can now send RoR commands using calculated values directly without the use of `round` or `evalr`
* Assembly machines and chemical plants now support Redstone-over-Radio
* Active state (0 or 1), progress (0-100) and current recipe (internal name) can now be read
* The recipe can be set using a controller
* Do note that setting a recipe that needs a blueprint without that blueprint will not work
* RoR set recipes cause the assembler to go into low power mode, making it run at only 25% speed (visible through the blue progress bar)
* The speed penalty is removed as soon as a recipe is assigned manually again
* Assembly factories, chemical factories, PUREX and plasma forges can now be read (but not configured) using Redstone-over-Radio
* Fusion reactor vessels can now be read and configured using RoR
* Unlike assemblers and chemplants, remote recipe configuration does not cause a speed penalty
* The AUTOCAL's script interpreter now runs MS-ES v1.1 (First Extended Instruction Set)
* Allows the use of a global stack, similar to the buffer which can hold 256 values
* Allows splitting of strings and counting of string fragments
* Adds substring operations
* Polling for receiving only fresh RoR signals
* A command for writing the world time to the buffer, allowing for more precise timers
* All RoR values/commands are now case-insensitive
* Changed mask man spawning rules
* Instead of random checks and chances, if a player meets the requirements, a timer starts (timer exists per player)
* Once this timer runs out, mask man spawns
* Should the timer run out but the spawn be unsuccessful (spawn restrictions) then a different message appears
* If the requirements are no longer met, the timer immediately resets, making it easier to avoid him deliberately
* The default spawn timer is now 20 minutes, making it easier to spawn him deliberately
* One minute before the timer ends, a warning message appears
* Changed normal mode control unit recipes
* Standard control units now use rubber instead of speed I upgrades
* Advanced control units now use hardplastics instead of speed III upgrades
* Quantum computers now use speed III upgrades instead of overdrive I
* Updated electric furnace, burner press and electric press GUIs
* The RoR terminal can now accept RoR controller input, allowing the terminal screen to be written directly and RoR terminal commands to be executed via incoming RoR signals
* The last part seems redundant, why would you need to send RoR by sending RoR? The answer being, the terminal can be toggled to send polling signals, which will run independently of the source
* For AUTOCALs, this means that they can now send polling signals "in parallel", i.e. independently of the code that actually runs on said AUTOCAL, by simply toggling polling on a terminal
* Since AUTOCALs now have a proper screen to output things with, it is now theoretically possible to program a functioning arcade machine (with terminal graphics)
* Glyphids will now try to target new players every 5 seconds if their current target is farther away than any other potential target
* 1/3 of glyphids do not have this behavior, this means that larger groups of glyphids cannot be trapped indefinitely by triggering target changes on purpose
* Pedestal blocks fitted with charms now have a 200x200 block square area around them where the charm effect of repelling meteors applies to all players
* Pedestal blocks fitted with golden defusers now have a 50x50 block area around them where creepers are automatically defused
* Disabled GTNH-NEI filter drag functionality because GTNH-NEI breaks the pattern slots of the new pneumatics stuff and the person who added it originally was too bald to fix it despite being told multiple times
* 70k it's 70k and he's bald bald haha bald head
* baldie baldie hahaha he bald he has the no of hair
* follically challenged baldie bald head
* Increased flue gas burn value from 10kTU to 25kTU
## Fixed ## Fixed
* Fixed AUTOCAL's number comparison functions not working with variable substitution as advertised * Fixed burner press GUI offsets being incorrect
* Fixed broken thorium ore centrifuging recipe shown in NEI * Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap
* Fixed industrial turbine not properly saving its energy values, causing the flywheel to stop on relog
* Fixed lapis dust to cobalt shredder recipe not using oredict
* Fixed AUTOCAL's file opening buttons not working on some systems, it will fall back to opening the folder instead
* Fixed some recipes not using ore dict when they should
* Fixed `anyBismoid` group not being a proper group, causing other mods' bismuth and arsenic to not be included
* Fixed RoR gauge not using SI suffixes on values below 0
* Fixed AUTOCAL units not closing their GUI when the unit is destroyed
* Fixed AUTOCAL's $buffer$ substitution not working
* Fixed meteorite sword localization still being broken
* Fixed missing localization on the FM radio
* Fixed mufflers not working on large doors
* Fixed the electric press not displaying the currently pressed item in the model

View File

@ -851,6 +851,9 @@ public class ModBlocks {
public static Block custom_machine; public static Block custom_machine;
public static Block cm_anchor; public static Block cm_anchor;
public static Block pile_brick;
public static Block pile_block;
public static Block pwr_fuel; public static Block pwr_fuel;
public static Block pwr_control; public static Block pwr_control;
public static Block pwr_channel; public static Block pwr_channel;
@ -1646,8 +1649,8 @@ public class ModBlocks {
waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth");
waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side");
waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); waste_trinitite = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite");
waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_trinitite_red = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red");
waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F);
waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves");
waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks");
@ -1958,16 +1961,19 @@ public class ModBlocks {
cm_heat = new BlockCMHeat(Material.iron, RefStrings.MODID +":cm_heat_top").setBlockName("cm_heat").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_heat_side"); cm_heat = new BlockCMHeat(Material.iron, RefStrings.MODID +":cm_heat_top").setBlockName("cm_heat").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_heat_side");
custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F);
cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F);
pile_brick = new BlockPileBrick().setBlockName("pile_brick").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_brick");
pile_block = new BlockPile().setBlockName("pile_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_block");
pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side");
pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side");
pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side");
pwr_heatex = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); pwr_heatex = new BlockGenericTooltip(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex");
pwr_heatsink = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatsink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatsink"); pwr_heatsink = new BlockGenericTooltip(Material.iron).setBlockName("pwr_heatsink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatsink");
pwr_neutron_source = new BlockGenericPWR(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); pwr_neutron_source = new BlockGenericTooltip(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source");
pwr_reflector = new BlockGenericPWR(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); pwr_reflector = new BlockGenericTooltip(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector");
pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); pwr_casing = new BlockGenericTooltip(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing");
pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_port = new BlockGenericTooltip(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port");
pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank");
pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block");
@ -3317,6 +3323,10 @@ public class ModBlocks {
register(cm_flux); register(cm_flux);
register(cm_heat); register(cm_heat);
register(cm_anchor); register(cm_anchor);
//Chicago Pile
register(pile_brick);
register(pile_block);
//PWR //PWR
register(pwr_fuel); register(pwr_fuel);

View File

@ -34,7 +34,7 @@ public class BlockDecoCT extends BlockOre implements IBlockCT {
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
return rec.fragCache; return rec.fragCache;
} }

View File

@ -36,7 +36,7 @@ public class BlockNTMGlassCT extends BlockNTMGlass implements IBlockCT {
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
return rec.fragCache; return rec.fragCache;
} }
} }

View File

@ -159,7 +159,7 @@ public class BlockOre extends Block {
living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2));
} }
if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) {
living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 0)); living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 2));
} }
if(this == ModBlocks.brick_jungle_ooze) { if(this == ModBlocks.brick_jungle_ooze) {
living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 9)); living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 9));
@ -178,8 +178,12 @@ public class BlockOre extends Block {
public void randomDisplayTick(World world, int x, int y, int z, Random rand) { public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
super.randomDisplayTick(world, x, y, z, rand); super.randomDisplayTick(world, x, y, z, rand);
if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red || this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) { if(this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) {
world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0);
}
if((this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) && rand.nextInt(5) == 0) {
world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0);
} }
} }

View File

@ -41,7 +41,7 @@ public class BlockSellafieldSlaked extends Block {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) { public void registerBlockIcons(IIconRegister reg) {
icons = new IIcon[4]; icons = new IIcon[4];
icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); this.blockIcon = icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked");
icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1"); icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1");
icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2"); icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2");
icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3"); icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3");

View File

@ -0,0 +1,41 @@
package com.hbm.blocks.generic;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class BlockTrinitite extends BlockOre {
public IIcon[] icons;
public BlockTrinitite(Material mat) {
super(mat);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return icons[0];
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
icons = new IIcon[4];
for(int i = 0; i < 4; i++) icons[i] = reg.registerIcon(this.getTextureName() + "." + i);
this.blockIcon = icons[0];
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z;
l = l * l * 42317861L + l * 11L;
int i = (int)(l >> 16 & 3L);
return icons[(int)(Math.abs(i) % icons.length)];
}
}

View File

@ -9,9 +9,9 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class BlockGenericPWR extends BlockGeneric implements ITooltipProvider { public class BlockGenericTooltip extends BlockGeneric implements ITooltipProvider {
public BlockGenericPWR(Material material) { public BlockGenericTooltip(Material material) {
super(material); super(material);
} }

View File

@ -43,7 +43,7 @@ public class BlockHadronCoil extends Block implements IBlockCT, ITooltipProvider
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
return rec.fragCache; return rec.fragCache;
} }

View File

@ -55,7 +55,7 @@ public class BlockICF extends BlockContainer implements IBlockCT {
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
int meta = world.getBlockMetadata(x, y, z); int meta = world.getBlockMetadata(x, y, z);
if(meta == 1) return recPort.fragCache; if(meta == 1) return recPort.fragCache;
return rec.fragCache; return rec.fragCache;

View File

@ -62,7 +62,7 @@ public class BlockPWR extends BlockContainer implements IBlockCT {
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
int meta = world.getBlockMetadata(x, y, z); int meta = world.getBlockMetadata(x, y, z);
if(meta == 1) return recPort.fragCache; if(meta == 1) return recPort.fragCache;
return rec.fragCache; return rec.fragCache;

View File

@ -187,7 +187,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv
errored = true; errored = true;
} }
private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { public static void sendError(World world, int x, int y, int z, String message, EntityPlayer player) {
if(player instanceof EntityPlayerMP) { if(player instanceof EntityPlayerMP) {
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();

View File

@ -0,0 +1,58 @@
package com.hbm.blocks.machine.pile;
import java.util.Random;
import com.hbm.lib.RefStrings;
import com.hbm.render.block.ct.CT;
import com.hbm.render.block.ct.CTStitchReceiver;
import com.hbm.render.block.ct.IBlockCT;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockPile extends BlockContainer implements IBlockCT {
@SideOnly(Side.CLIENT) protected IIcon iconTop;
public BlockPile() {
super(Material.iron);
}
@Override public int getRenderType() { return CT.renderID; }
@Override
public Item getItemDropped(int i, Random rand, int j) {
return null;
}
@SideOnly(Side.CLIENT) public CTStitchReceiver rec;
@SideOnly(Side.CLIENT) public CTStitchReceiver recTop;
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.iconTop = reg.registerIcon(RefStrings.MODID + ":pile_block_top");
this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon);
this.recTop = IBlockCT.primeReceiver(reg, this.iconTop.getIconName(), this.iconTop);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return null;
}
@Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
if(side == 0 || side == 1) return recTop.fragCache;
return rec.fragCache;
}
}

View File

@ -0,0 +1,117 @@
package com.hbm.blocks.machine.pile;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.MachinePWRController;
import com.hbm.lib.RefStrings;
import api.hbm.block.IToolable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockPileBrick extends Block implements IToolable {
@SideOnly(Side.CLIENT) protected IIcon iconTop;
@SideOnly(Side.CLIENT) protected IIcon iconSide;
public static int MAX_SIZE = 15;
public BlockPileBrick() {
super(Material.rock);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.iconTop = reg.registerIcon(RefStrings.MODID + ":pile_brick_top");
this.iconSide = reg.registerIcon(RefStrings.MODID + ":pile_brick_side");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
if(side == 0 || side == 1) return this.iconTop;
if(side == 4 || side == 5) return this.iconSide;
return this.blockIcon;
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool == tool.HAND_DRILL) {
if(side == 0 || side == 1) return false;
if(world.isRemote) return true;
ForgeDirection dir = ForgeDirection.getOrientation(side).getOpposite();
int negHeight = 0;
int posHeight = 0;
int left = 0;
int right = 0;
int depth = 0;
for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x, y + i, z) != this) break; posHeight = i; }
for(int i = 1; i <= MAX_SIZE - posHeight - 1; i++) { if(world.getBlock(x, y - i, z) != this) break; negHeight = i; }
ForgeDirection dirLeft = dir.getRotation(ForgeDirection.DOWN);
for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dirLeft.offsetX * i, y, z + dirLeft.offsetZ * i) != this) break; left = i; }
for(int i = 1; i <= MAX_SIZE - left - 1; i++) { if(world.getBlock(x - dirLeft.offsetX * i, y, z - dirLeft.offsetZ * i) != this) break; right = i; }
for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dir.offsetX * i, y, z + dir.offsetZ * i) != this) break; depth = i; }
if(posHeight + negHeight + 1 < 5) {
MachinePWRController.sendError(world, x, y + posHeight, z, "Height too low (<5)", player);
MachinePWRController.sendError(world, x, y - negHeight, z, "Height too low (<5)", player);
return true;
}
if(left + right + 1 < 5) {
MachinePWRController.sendError(world, x + dirLeft.offsetX * left, y, z + dirLeft.offsetZ * right, "Width too low (<5)", player);
MachinePWRController.sendError(world, x - dirLeft.offsetX * right, y, z - dirLeft.offsetZ * right, "Width too low (<5)", player);
return true;
}
if(depth + 1 < 5) {
MachinePWRController.sendError(world, x + dir.offsetX * depth, y, z + dir.offsetZ * depth, "Depth too low (<5)", player);
return true;
}
for(int h = -negHeight; h <= posHeight; h++) {
for(int v = -left; v <= right; v++) {
for(int d = 0; d <= depth; d++) {
int iX = x - dirLeft.offsetX * v + dir.offsetX * d;
int iY = y + h;
int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d;
if(world.getBlock(iX, iY, iZ) != this) {
MachinePWRController.sendError(world, iX, iY, iZ, "Graphite block missing", player);
return true;
}
}
}
}
for(int h = -negHeight; h <= posHeight; h++) {
for(int v = -left; v <= right; v++) {
for(int d = 0; d <= depth; d++) {
int iX = x - dirLeft.offsetX * v + dir.offsetX * d;
int iY = y + h;
int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d;
world.setBlock(iX, iY, iZ, ModBlocks.pile_block);
}
}
}
return true;
}
return false;
}
}

View File

@ -40,7 +40,7 @@ public class WireCoated extends BlockContainer implements IBlockCT {
} }
@Override @Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side) {
return rec.fragCache; return rec.fragCache;
} }
} }

View File

@ -33,12 +33,12 @@ public class ContainerMachinePress extends Container {
for(int i = 0; i < 3; i++) { for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) { for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 120 + i * 18)); this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 132 + i * 18));
} }
} }
for(int i = 0; i < 9; i++) { for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 178)); this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 190));
} }
} }

View File

@ -22,7 +22,7 @@ public class GUIMachinePress extends GuiInfoContainer {
press = tedf; press = tedf;
this.xSize = 176; this.xSize = 176;
this.ySize = 202; this.ySize = 214;
} }
@Override @Override
@ -37,7 +37,7 @@ public class GUIMachinePress extends GuiInfoContainer {
protected void drawGuiContainerForegroundLayer( int i, int j) { protected void drawGuiContainerForegroundLayer( int i, int j) {
String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName()); String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 5, 0xffffff);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
} }
@ -48,11 +48,11 @@ public class GUIMachinePress extends GuiInfoContainer {
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(press.burnTime >= 20) { if(press.burnTime >= 20) {
this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 0, 202, 14, 14); this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 0, 214, 14, 14);
} }
int k = (int) (press.renderPress * 16 / press.maxPress); int k = (int) (press.renderPress * 16 / press.maxPress);
this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 14, 202, 18, k); this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 15, 214, 18, k);
double i = (double) press.speed / (double) press.maxSpeed; double i = (double) press.speed / (double) press.maxSpeed;
GUIElements.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000); GUIElements.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000);

View File

@ -96,7 +96,7 @@ public class CTContext {
int ibl = b | l | cornerType(cons[3], cons[5], cons[6]); int ibl = b | l | cornerType(cons[3], cons[5], cons[6]);
int ibr = b | r | cornerType(cons[4], cons[7], cons[6]); int ibr = b | r | cornerType(cons[4], cons[7], cons[6]);
faces[i] = new CTFace(world, x, y, z, (IBlockCT)block, itl, itr, ibl, ibr); faces[i] = new CTFace(world, x, y, z, i, (IBlockCT)block, itl, itr, ibl, ibr);
} }
} }
@ -152,6 +152,7 @@ public class CTContext {
int x; int x;
int y; int y;
int z; int z;
int side;
IBlockCT ct; IBlockCT ct;
int index_tl; int index_tl;
int index_tr; int index_tr;
@ -160,11 +161,12 @@ public class CTContext {
public CTFace() { } public CTFace() { }
public CTFace(IBlockAccess world, int x, int y, int z, IBlockCT block, int i, int j, int k, int l) { public CTFace(IBlockAccess world, int x, int y, int z, int side, IBlockCT block, int i, int j, int k, int l) {
this.world = world; this.world = world;
this.x = x; this.x = x;
this.y = y; this.y = y;
this.z = z; this.z = z;
this.side = side;
this.ct = block; this.ct = block;
this.index_tl = i; this.index_tl = i;
this.index_tr = j; this.index_tr = j;
@ -172,9 +174,9 @@ public class CTContext {
this.index_br = l; this.index_br = l;
} }
public IIcon getTopLeft() { return ct.getFragments(world, x, y, z)[index_tl]; } public IIcon getTopLeft() { return ct.getFragments(world, x, y, z, side)[index_tl]; }
public IIcon getTopRight() { return ct.getFragments(world, x, y, z)[index_tr]; } public IIcon getTopRight() { return ct.getFragments(world, x, y, z, side)[index_tr]; }
public IIcon getBottomLeft() { return ct.getFragments(world, x, y, z)[index_bl]; } public IIcon getBottomLeft() { return ct.getFragments(world, x, y, z, side)[index_bl]; }
public IIcon getBottomRight() { return ct.getFragments(world, x, y, z)[index_br]; } public IIcon getBottomRight() { return ct.getFragments(world, x, y, z, side)[index_br]; }
} }
} }

View File

@ -7,7 +7,7 @@ import net.minecraft.world.IBlockAccess;
public interface IBlockCT { public interface IBlockCT {
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z); public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side);
public default boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { public default boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) {
return this == block; return this == block;

View File

@ -0,0 +1,318 @@
# Blender v2.79 (sub 0) OBJ File: 'pile_control.blend'
# www.blender.org
o Rod
v 0.187500 0.750000 -0.250000
v 0.250000 0.750000 -0.187500
v -0.250000 0.750000 -0.187500
v -0.187500 0.750000 -0.250000
v -0.187500 0.750000 0.250000
v -0.250000 0.750000 0.187500
v 0.250000 0.750000 0.187500
v 0.187500 0.750000 0.250000
v 0.250000 1.000000 -0.187500
v 0.187500 1.000000 -0.250000
v -0.187500 1.000000 -0.250000
v -0.250000 1.000000 -0.187500
v -0.250000 1.000000 0.187500
v -0.187500 1.000000 0.250000
v 0.187500 1.000000 0.250000
v 0.250000 1.000000 0.187500
v 0.187500 0.750000 -0.125000
v 0.125000 0.750000 -0.187500
v -0.125000 0.750000 -0.187500
v -0.187500 0.750000 -0.125000
v -0.187500 0.750000 0.125000
v -0.125000 0.750000 0.187500
v 0.125000 0.750000 0.187500
v 0.187500 0.750000 0.125000
v 0.125000 0.000000 -0.187500
v 0.187500 0.000000 -0.125000
v -0.187500 0.000000 -0.125000
v -0.125000 0.000000 -0.187500
v -0.125000 0.000000 0.187500
v -0.187500 0.000000 0.125000
v 0.187500 0.000000 0.125000
v 0.125000 0.000000 0.187500
vt 0.618182 0.600000
vt 0.509091 0.700000
vt 0.509091 0.600000
vt 0.872727 0.600000
vt 0.763636 0.700000
vt 0.763636 0.600000
vt 0.490909 0.600000
vt 0.381818 0.700000
vt 0.381818 0.600000
vt 0.618182 0.700000
vt 0.636364 0.725000
vt 0.490909 0.875000
vt 0.490909 0.575000
vt 0.509091 0.400000
vt 0.745455 1.000000
vt 0.818182 0.700000
vt 0.818182 1.000000
vt 0.927273 1.000000
vt 1.000000 0.700000
vt 1.000000 1.000000
vt 0.654545 1.000000
vt 0.727273 0.700000
vt 0.727273 1.000000
vt 0.636364 0.700000
vt 0.636364 0.600000
vt 0.490909 0.700000
vt 0.363636 0.600000
vt 0.745455 0.600000
vt 0.745455 0.700000
vt 0.745455 0.700000
vt 0.636364 0.700000
vt 0.636364 1.000000
vt 0.909091 0.700000
vt 0.927273 0.700000
vt 0.836364 1.000000
vt 0.909091 1.000000
vt 0.872727 0.700000
vt 0.636364 0.875000
vt 0.618182 0.900000
vt 0.509091 0.900000
vt 0.490909 0.725000
vt 0.618182 0.400000
vt 0.636364 0.425000
vt 0.636364 0.575000
vt 0.490909 0.425000
vt 0.654545 0.700000
vt 0.363636 0.700000
vt 0.836364 0.700000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
vn -0.7071 0.0000 0.7071
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.0000 -1.0000
s off
f 2/1/1 16/2/1 7/3/1
f 6/4/2 12/5/2 3/6/2
f 8/7/3 14/8/3 5/9/3
f 9/10/4 10/11/4 14/12/4
f 2/1/5 8/13/5 6/14/5
f 24/15/1 26/16/1 17/17/1
f 20/18/2 30/19/2 21/20/2
f 22/21/3 32/22/3 23/23/3
f 10/24/6 2/1/6 1/25/6
f 8/7/7 16/2/7 15/26/7
f 14/8/8 6/27/8 5/9/8
f 4/28/9 12/5/9 11/29/9
f 4/28/10 10/24/10 1/25/10
f 24/15/7 32/22/7 31/30/7
f 30/31/8 22/21/8 21/32/8
f 20/18/9 28/33/9 27/34/9
f 26/16/6 18/35/6 17/17/6
f 18/35/10 28/33/10 19/36/10
f 2/1/1 9/10/1 16/2/1
f 6/4/2 13/37/2 12/5/2
f 8/7/3 15/26/3 14/8/3
f 10/11/4 11/38/4 12/39/4
f 12/39/4 13/40/4 10/11/4
f 13/40/4 14/12/4 10/11/4
f 14/12/4 15/41/4 16/2/4
f 16/2/4 9/10/4 14/12/4
f 6/14/5 3/42/5 4/43/5
f 4/43/5 1/44/5 2/1/5
f 2/1/5 7/3/5 8/13/5
f 8/13/5 5/45/5 6/14/5
f 6/14/5 4/43/5 2/1/5
f 24/15/1 31/30/1 26/16/1
f 20/18/2 27/34/2 30/19/2
f 22/21/3 29/46/3 32/22/3
f 10/24/6 9/10/6 2/1/6
f 8/7/7 7/3/7 16/2/7
f 14/8/8 13/47/8 6/27/8
f 4/28/9 3/6/9 12/5/9
f 4/28/10 11/29/10 10/24/10
f 24/15/7 23/23/7 32/22/7
f 30/31/8 29/46/8 22/21/8
f 20/18/9 19/36/9 28/33/9
f 26/16/6 25/48/6 18/35/6
f 18/35/10 25/48/10 28/33/10
o Base
v -0.375000 0.000000 -0.375000
v -0.375000 0.000000 0.375000
v 0.375000 0.000000 -0.375000
v 0.375000 0.000000 0.375000
v -0.375000 0.250000 -0.375000
v -0.375000 0.250000 0.375000
v 0.375000 0.250000 -0.375000
v 0.375000 0.250000 0.375000
v 0.500000 0.375000 0.125000
v 0.500000 0.375000 -0.125000
v 0.500000 0.625000 -0.125000
v 0.500000 0.625000 0.125000
v 0.375000 0.625000 0.125000
v 0.375000 0.625000 -0.125000
v 0.375000 0.375000 0.125000
v 0.375000 0.375000 -0.125000
v -0.250000 0.250000 -0.187500
v -0.187500 0.250000 -0.250000
v -0.187500 0.250000 0.250000
v -0.250000 0.250000 0.187500
v 0.187500 0.250000 -0.250000
v 0.250000 0.250000 -0.187500
v 0.250000 0.250000 0.187500
v 0.187500 0.250000 0.250000
v 0.250000 0.750000 -0.187500
v 0.187500 0.750000 -0.250000
v -0.187500 0.750000 -0.250000
v -0.250000 0.750000 -0.187500
v -0.250000 0.750000 0.187500
v -0.187500 0.750000 0.250000
v 0.187500 0.750000 0.250000
v 0.250000 0.750000 0.187500
v 0.312500 0.687500 0.187500
v 0.312500 0.687500 -0.187500
v 0.312500 0.312500 0.187500
v 0.312500 0.312500 -0.187500
v 0.250000 0.687500 0.187500
v 0.250000 0.687500 -0.187500
v 0.250000 0.312500 0.187500
v 0.250000 0.312500 -0.187500
vt 0.290909 0.800000
vt 0.072727 0.500000
vt 0.290909 0.500000
vt 0.072727 0.400000
vt 0.290909 0.100000
vt 0.290909 0.400000
vt 0.290909 -0.000000
vt 0.072727 0.100000
vt 0.072727 -0.000000
vt 0.000000 0.100000
vt 0.000000 0.400000
vt 0.363636 0.400000
vt 0.363636 0.100000
vt 0.618182 0.000000
vt 0.509091 0.200000
vt 0.509091 -0.000000
vt 0.872727 0.000000
vt 0.763636 0.200000
vt 0.763636 0.000000
vt 0.618182 0.200000
vt 0.636364 0.225000
vt 0.490909 0.375000
vt 0.490909 -0.000000
vt 0.381818 0.200000
vt 0.381818 0.000000
vt 0.909091 0.325000
vt 0.927273 0.450000
vt 0.909091 0.425000
vt 0.363636 0.000000
vt 0.363636 0.200000
vt 0.745455 0.000000
vt 0.636364 0.200000
vt 0.636364 0.000000
vt 0.872727 0.325000
vt 0.800000 0.425000
vt 0.800000 0.325000
vt 0.909091 0.575000
vt 0.872727 0.475000
vt 0.909091 0.475000
vt 0.909091 0.125000
vt 0.872727 0.025000
vt 0.909091 0.025000
vt 0.909091 0.275000
vt 0.872727 0.175000
vt 0.909091 0.175000
vt 0.927273 0.600000
vt 0.927273 0.150000
vt 0.927273 0.300000
vt 0.945455 0.300000
vt 0.945455 0.450000
vt 0.945455 0.600000
vt 0.927273 -0.000000
vt 0.945455 0.150000
vt 0.072727 0.800000
vt 0.872727 0.200000
vt 0.636364 0.375000
vt 0.618182 0.400000
vt 0.509091 0.400000
vt 0.490909 0.225000
vt 0.490909 0.200000
vt 0.745455 0.200000
vt 0.872727 0.425000
vt 0.872727 0.575000
vt 0.872727 0.125000
vt 0.872727 0.275000
vt 0.945455 -0.000000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.7071 0.7071 0.0000
vn 0.7071 0.0000 0.7071
vn -0.7071 0.0000 0.7071
vn -0.7071 0.0000 -0.7071
vn 0.7071 0.0000 -0.7071
vn 0.7071 -0.7071 0.0000
s off
f 35/49/11 34/50/11 33/51/11
f 38/52/12 39/53/12 37/54/12
f 35/55/13 40/56/13 36/57/13
f 34/50/14 37/54/14 33/51/14
f 36/58/15 38/52/15 34/59/15
f 33/60/16 39/53/16 35/61/16
f 54/62/13 64/63/13 55/64/13
f 52/65/14 60/66/14 49/67/14
f 57/68/12 58/69/12 62/70/12
f 56/71/15 62/72/15 51/73/15
f 46/74/17 65/75/17 45/76/17
f 64/63/18 56/71/18 55/64/18
f 52/77/19 62/72/19 61/78/19
f 60/66/20 50/79/20 49/67/20
f 54/62/21 58/80/21 57/68/21
f 50/79/16 58/80/16 53/81/16
f 43/82/13 41/83/13 42/84/13
f 45/76/12 43/82/12 46/74/12
f 47/85/15 44/86/15 45/87/15
f 48/88/11 41/89/11 47/90/11
f 46/91/16 42/92/16 48/93/16
f 45/87/18 67/94/18 47/85/18
f 47/90/22 68/95/22 48/88/22
f 46/91/21 68/95/21 66/96/21
f 68/95/16 70/97/16 66/96/16
f 66/96/12 69/98/12 65/75/12
f 65/75/15 71/99/15 67/94/15
f 67/100/11 72/101/11 68/95/11
f 35/49/11 36/102/11 34/50/11
f 38/52/12 40/56/12 39/53/12
f 35/55/13 39/53/13 40/56/13
f 34/50/14 38/52/14 37/54/14
f 36/58/15 40/56/15 38/52/15
f 33/60/16 37/54/16 39/53/16
f 54/62/13 57/68/13 64/63/13
f 52/65/14 61/103/14 60/66/14
f 58/69/12 59/104/12 60/105/12
f 60/105/12 61/106/12 58/69/12
f 61/106/12 62/70/12 58/69/12
f 62/70/12 63/107/12 64/63/12
f 64/63/12 57/68/12 62/70/12
f 56/71/15 63/108/15 62/72/15
f 46/74/17 66/96/17 65/75/17
f 64/63/18 63/108/18 56/71/18
f 52/77/19 51/73/19 62/72/19
f 60/66/20 59/109/20 50/79/20
f 54/62/21 53/81/21 58/80/21
f 50/79/16 59/109/16 58/80/16
f 43/82/13 44/110/13 41/83/13
f 45/76/12 44/110/12 43/82/12
f 47/85/15 41/111/15 44/86/15
f 48/88/11 42/112/11 41/89/11
f 46/91/16 43/113/16 42/92/16
f 45/87/18 65/75/18 67/94/18
f 47/90/22 67/100/22 68/95/22
f 46/91/21 48/93/21 68/95/21
f 68/95/16 72/101/16 70/97/16
f 66/96/12 70/97/12 69/98/12
f 65/75/15 69/98/15 71/99/15
f 67/100/11 71/114/11 72/101/11

View File

@ -0,0 +1,324 @@
# Blender v2.79 (sub 0) OBJ File: 'pile_loader.blend'
# www.blender.org
o Lever
v -0.093750 0.468750 -0.312500
v -0.093750 0.468750 -0.375000
v -0.093750 0.531250 -0.375000
v -0.093750 0.531250 -0.312500
v -0.218750 0.531250 -0.375000
v -0.218750 0.468750 -0.375000
v -0.156250 0.531250 -0.312500
v -0.156250 0.468750 -0.312500
v -0.156250 0.468750 -0.250000
v -0.156250 0.531250 -0.250000
v -0.218750 0.468750 -0.250000
v -0.218750 0.531250 -0.250000
v -0.093750 0.562500 -0.406250
v -0.093750 0.437500 -0.406250
v -0.093750 0.562500 -0.281250
v -0.093750 0.437500 -0.281250
v 0.531250 0.562500 -0.281250
v 0.531250 0.562500 -0.406250
v 0.531250 0.437500 -0.406250
v 0.531250 0.437500 -0.281250
vt 0.979167 0.642857
vt 0.958333 0.666667
vt 0.958333 0.619048
vt 0.937500 0.666667
vt 0.937500 0.619048
vt 0.937500 0.571429
vt 0.916667 0.595238
vt 0.916667 0.571429
vt 0.958333 0.571429
vt 0.979167 0.595238
vt 1.000000 0.571429
vt 0.979167 0.571429
vt 0.916667 0.642857
vt 0.916667 0.666667
vt 1.000000 0.642857
vt 0.979167 0.666667
vt 0.958333 0.571429
vt 0.916667 0.333333
vt 0.958333 0.333333
vt 0.833333 0.333333
vt 0.875000 0.285714
vt 0.875000 0.333333
vt 0.875000 0.619048
vt 0.833333 0.571429
vt 0.875000 0.571429
vt 1.000000 0.571429
vt 1.000000 0.333333
vt 0.916667 0.571429
vt 1.000000 0.595238
vt 1.000000 0.666667
vt 0.833333 0.285714
vt 0.833333 0.619048
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
s off
f 7/1/1 3/2/1 5/3/1
f 5/3/2 2/4/2 6/5/2
f 11/6/3 8/7/3 9/8/3
f 12/9/1 7/10/1 5/3/1
f 9/11/4 7/10/4 10/12/4
f 12/9/5 6/5/5 11/6/5
f 8/13/3 2/4/3 1/14/3
f 8/15/6 4/16/6 7/1/6
f 16/17/3 19/18/3 20/19/3
f 17/20/4 19/21/4 18/22/4
f 14/23/5 15/24/5 13/25/5
f 15/26/6 20/19/6 17/27/6
f 13/25/1 17/20/1 18/22/1
f 13/25/2 19/18/2 14/28/2
f 7/1/1 4/16/1 3/2/1
f 5/3/2 3/2/2 2/4/2
f 11/6/3 6/5/3 8/7/3
f 12/9/1 10/12/1 7/10/1
f 9/11/4 8/29/4 7/10/4
f 12/9/5 5/3/5 6/5/5
f 8/13/3 6/5/3 2/4/3
f 8/15/6 1/30/6 4/16/6
f 16/17/3 14/28/3 19/18/3
f 17/20/4 20/31/4 19/21/4
f 14/23/5 16/32/5 15/24/5
f 15/26/6 16/17/6 20/19/6
f 13/25/1 15/24/1 17/20/1
f 13/25/2 18/22/2 19/18/2
o Slider
v 0.437500 0.437500 0.125000
v 0.437500 0.437500 -0.125000
v 0.312500 0.437500 0.125000
v 0.312500 0.437500 -0.125000
v 0.437500 0.687500 0.125000
v 0.437500 0.687500 -0.125000
v 0.312500 0.687500 0.125000
v 0.312500 0.687500 -0.125000
vt 0.625000 0.761905
vt 0.583333 0.857143
vt 0.583333 0.761905
vt 0.500000 0.761905
vt 0.500000 0.857143
vt 0.708333 0.857143
vt 0.708333 0.761905
vt 0.625000 0.857143
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 28/33/7 25/34/7 26/35/7
f 22/36/8 25/34/8 21/37/8
f 23/38/9 28/33/9 24/39/9
f 28/33/7 27/40/7 25/34/7
f 22/36/8 26/35/8 25/34/8
f 23/38/9 27/40/9 28/33/9
o Loader
v -0.500000 0.875000 0.375000
v -0.500000 0.125000 0.375000
v -0.500000 0.875000 -0.375000
v -0.500000 0.125000 -0.375000
v -0.250000 0.875000 -0.375000
v -0.250000 0.875000 0.375000
v -0.250000 0.125000 0.375000
v -0.250000 0.125000 -0.375000
v -0.250000 0.687500 0.250000
v -0.250000 0.750000 0.187500
v -0.250000 0.250000 0.187500
v -0.250000 0.312500 0.250000
v -0.250000 0.750000 -0.187500
v -0.250000 0.687500 -0.250000
v -0.250000 0.312500 -0.250000
v -0.250000 0.250000 -0.187500
v 0.500000 0.687500 -0.250000
v 0.437500 0.750000 -0.125000
v 0.437500 0.750000 0.125000
v 0.500000 0.687500 0.250000
v 0.500000 0.312500 0.250000
v 0.500000 0.250000 0.187500
v 0.500000 0.250000 -0.187500
v 0.500000 0.312500 -0.250000
v 0.500000 0.750000 0.187500
v 0.500000 0.750000 -0.187500
v -0.187500 0.750000 0.125000
v -0.187500 0.750000 -0.125000
v -0.187500 0.437500 -0.125000
v -0.187500 0.437500 0.125000
v 0.437500 0.437500 0.125000
v 0.437500 0.437500 -0.125000
v 0.312500 0.500000 0.125000
v 0.312500 0.437500 0.062500
v 0.312500 0.437500 -0.062500
v 0.312500 0.500000 -0.125000
v 0.312500 0.687500 0.062500
v 0.312500 0.625000 0.125000
v 0.312500 0.625000 -0.125000
v 0.312500 0.687500 -0.062500
v -0.187500 0.625000 0.125000
v -0.187500 0.687500 0.062500
v -0.187500 0.687500 -0.062500
v -0.187500 0.625000 -0.125000
v -0.187500 0.437500 0.062500
v -0.187500 0.500000 0.125000
v -0.187500 0.500000 -0.125000
v -0.187500 0.437500 -0.062500
vt 0.750000 0.476190
vt 0.500000 0.761905
vt 0.500000 0.476190
vt 0.500000 0.095238
vt 0.750000 0.380952
vt 0.500000 0.380952
vt 0.750000 -0.000000
vt 0.500000 -0.000000
vt 0.833333 0.380952
vt 0.750000 0.095238
vt 0.833333 0.095238
vt 0.416667 0.095238
vt 0.416667 0.380952
vt 0.416667 0.642857
vt 0.166667 0.500000
vt 0.416667 0.500000
vt 0.416667 0.142857
vt 0.166667 0.000000
vt 0.416667 0.000000
vt 0.416667 0.309524
vt 0.166667 0.166667
vt 0.416667 0.166667
vt -0.000000 0.476190
vt 0.020833 0.309524
vt 0.166667 0.333333
vt 0.166667 0.666667
vt 0.416667 0.666667
vt 0.416667 0.476190
vt 0.166667 0.476190
vt 0.166667 0.309524
vt 0.187500 1.000000
vt 0.395833 0.880952
vt 0.395833 1.000000
vt 0.395833 0.452381
vt 0.187500 0.452381
vt 0.187500 0.357143
vt 0.416667 0.333333
vt 0.395833 0.357143
vt 0.187500 0.785714
vt 0.395833 0.785714
vt 0.500000 0.880952
vt 0.500000 0.785714
vt 0.083333 0.785714
vt 0.187500 0.880952
vt 0.083333 0.880952
vt 0.395833 0.666667
vt 0.187500 0.666667
vt 0.750000 0.761905
vt 0.166667 0.642857
vt 0.166667 0.142857
vt 0.145833 0.500000
vt 0.020833 0.500000
vt -0.000000 0.333333
vt 0.145833 0.309524
vt 0.833333 0.071429
vt 1.000000 0.119048
vt 0.833333 0.119048
vt 0.833333 0.214286
vt 1.000000 0.261905
vt 0.833333 0.261905
vt 0.833333 0.142857
vt 1.000000 0.190476
vt 0.833333 0.190476
vt 0.833333 -0.000000
vt 1.000000 0.047619
vt 0.833333 0.047619
vt 0.833333 0.285714
vt 1.000000 0.071429
vt 1.000000 0.142857
vt 1.000000 0.214286
vt 1.000000 -0.000000
vt 1.000000 0.285714
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.7071 0.7071
vn 0.0000 -0.7071 -0.7071
vn 0.0000 0.7071 -0.7071
vn 0.0000 -0.3827 -0.9239
vn 0.0000 0.3827 -0.9239
vn 0.0000 0.3827 0.9239
vn 0.0000 -0.3827 0.9239
vn 0.0000 0.9239 -0.3827
vn 0.0000 0.9239 0.3827
vn 0.0000 -0.9239 0.3827
vn 0.0000 -0.9239 -0.3827
s off
f 31/41/10 30/42/10 29/43/10
f 35/44/11 33/45/11 34/46/11
f 32/47/12 35/44/12 30/48/12
f 29/43/13 33/45/13 31/41/13
f 31/49/14 36/50/14 32/51/14
f 30/52/15 34/46/15 29/53/15
f 40/54/15 48/55/15 37/56/15
f 44/57/12 50/58/12 39/59/12
f 42/60/14 52/61/14 43/62/14
f 50/63/11 52/64/11 54/65/11
f 50/66/16 40/54/16 39/67/16
f 38/68/17 48/55/17 53/69/17
f 52/61/18 44/57/18 43/62/18
f 42/60/19 54/65/19 45/70/19
f 47/71/14 58/72/14 55/73/14
f 55/74/13 53/69/13 47/75/13
f 46/76/13 41/77/13 56/78/13
f 56/78/13 38/68/13 55/74/13
f 47/75/13 54/65/13 46/76/13
f 58/72/13 60/79/13 57/80/13
f 55/81/11 57/80/11 56/82/11
f 46/83/10 59/84/10 47/85/10
f 56/86/15 60/79/15 46/87/15
f 31/41/10 32/88/10 30/42/10
f 35/44/11 36/50/11 33/45/11
f 32/47/12 36/50/12 35/44/12
f 29/43/13 34/46/13 33/45/13
f 31/49/14 33/45/14 36/50/14
f 30/52/15 35/44/15 34/46/15
f 40/54/15 49/89/15 48/55/15
f 44/57/12 51/90/12 50/58/12
f 42/60/14 45/70/14 52/61/14
f 54/65/11 53/69/11 48/91/11
f 48/91/11 49/92/11 50/63/11
f 50/63/11 51/93/11 52/64/11
f 52/64/11 45/94/11 54/65/11
f 54/65/11 48/91/11 50/63/11
f 50/66/16 49/89/16 40/54/16
f 38/68/17 37/56/17 48/55/17
f 52/61/18 51/90/18 44/57/18
f 42/60/19 41/77/19 54/65/19
f 47/71/14 59/84/14 58/72/14
f 55/74/13 38/68/13 53/69/13
f 46/76/13 54/65/13 41/77/13
f 56/78/13 41/77/13 38/68/13
f 47/75/13 53/69/13 54/65/13
f 58/72/13 59/84/13 60/79/13
f 55/81/11 58/72/11 57/80/11
f 46/83/10 60/79/10 59/84/10
f 56/86/15 57/80/15 60/79/15
s 1
f 64/95/20 72/96/21 67/97/21
f 66/98/22 74/99/23 61/100/23
f 68/101/24 70/102/25 65/103/25
f 62/104/26 76/105/27 63/106/27
f 74/99/23 62/107/26 61/100/23
f 64/95/20 76/105/27 75/108/20
f 68/101/24 72/96/21 71/109/24
f 66/98/22 70/102/25 69/110/22
f 64/95/20 75/108/20 72/96/21
f 66/98/22 69/110/22 74/99/23
f 68/101/24 71/109/24 70/102/25
f 62/104/26 73/111/26 76/105/27
f 74/99/23 73/112/26 62/107/26
f 64/95/20 63/106/27 76/105/27
f 68/101/24 67/97/21 72/96/21
f 66/98/22 65/103/25 70/102/25

View File

@ -0,0 +1,378 @@
# Blender v2.79 (sub 0) OBJ File: 'pile_vent.blend'
# www.blender.org
o Fan
v 0.000000 0.812500 -0.031250
v -0.022097 0.812500 -0.022097
v -0.031250 0.812500 0.000000
v -0.022097 0.812500 0.022097
v 0.000000 0.812500 0.031250
v 0.022097 0.812500 0.022097
v 0.031250 0.812500 -0.000000
v 0.022097 0.812500 -0.022097
v -0.022097 0.875000 -0.022097
v -0.000000 0.875000 -0.031250
v -0.031250 0.875000 0.000000
v -0.022097 0.875000 0.022097
v -0.000000 0.875000 0.031250
v 0.022097 0.875000 0.022097
v 0.031250 0.875000 -0.000000
v 0.022097 0.875000 -0.022097
v -0.027063 0.859375 0.109375
v 0.027063 0.828125 0.109375
v -0.027063 0.859375 0.000000
v 0.027063 0.828125 0.000000
v -0.027063 0.828125 0.000000
v 0.027063 0.859375 0.000000
v -0.027063 0.828125 -0.109375
v 0.027063 0.859375 -0.109375
v 0.109375 0.859375 0.027063
v 0.109375 0.828125 -0.027063
v -0.000000 0.859375 0.027063
v -0.000000 0.828125 -0.027063
v -0.000000 0.828125 0.027063
v -0.000000 0.859375 -0.027063
v -0.109375 0.828125 0.027063
v -0.109375 0.859375 -0.027063
vt 0.048780 0.775000
vt 0.146341 0.825000
vt 0.048780 0.825000
vt 0.012195 0.775314
vt 0.020602 0.778883
vt 0.024084 0.787500
vt 0.146341 0.825000
vt 0.048780 0.775000
vt 0.146341 0.775000
vt 0.048780 0.775000
vt 0.146341 0.825000
vt 0.048780 0.825000
vt 0.146341 0.825000
vt 0.048780 0.775000
vt 0.146341 0.775000
vt 0.146341 0.775000
vt 0.020602 0.796117
vt 0.012195 0.799686
vt 0.003788 0.796117
vt 0.000306 0.787500
vt 0.003788 0.778883
vt 0.048780 0.825000
vt 0.146341 0.775000
vt 0.048780 0.825000
vt 0.146341 0.750000
vt 0.121951 0.775000
vt 0.121951 0.750000
vt 0.073171 0.750000
vt 0.097561 0.775000
vt 0.073171 0.775000
vt 0.024390 0.750000
vt 0.048780 0.775000
vt 0.024390 0.775000
vt 0.195122 0.750000
vt 0.170732 0.775000
vt 0.170732 0.750000
vt 0.097561 0.750000
vt 0.048780 0.750000
vt 0.000000 0.750000
vt 0.000000 0.775000
vt 0.146341 0.775000
vt 0.195122 0.775000
vn 0.5000 0.8660 0.0000
vn 0.0000 1.0000 0.0000
vn -0.5000 0.8660 0.0000
vn -0.0000 0.8660 -0.5000
vn 0.0000 0.8660 0.5000
vn 0.0000 -0.0000 -1.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
vn 1.0000 0.0000 0.0000
vn -0.7071 -0.0000 0.7071
vn -0.0000 0.0000 1.0000
vn -1.0000 -0.0000 0.0000
vn -0.7071 -0.0000 -0.7071
s off
f 18/1/1 19/2/1 17/3/1
f 15/4/2 16/5/2 10/6/2
f 22/7/3 23/8/3 21/9/3
f 26/10/4 27/11/4 25/12/4
f 30/13/5 31/14/5 29/15/5
f 18/1/1 20/16/1 19/2/1
f 10/6/2 9/17/2 11/18/2
f 11/18/2 12/19/2 10/6/2
f 12/19/2 13/20/2 10/6/2
f 13/20/2 14/21/2 10/6/2
f 14/21/2 15/4/2 10/6/2
f 22/7/3 24/22/3 23/8/3
f 26/10/4 28/23/4 27/11/4
f 30/13/5 32/24/5 31/14/5
s 1
f 1/25/6 16/26/7 8/27/7
f 6/28/8 15/29/9 14/30/8
f 4/31/10 13/32/11 12/33/10
f 3/34/12 9/35/13 2/36/13
f 8/27/7 15/29/9 7/37/9
f 5/38/11 14/30/8 13/32/11
f 3/39/12 12/33/10 11/40/12
f 2/36/13 10/41/6 1/25/6
f 1/25/6 10/41/6 16/26/7
f 6/28/8 7/37/9 15/29/9
f 4/31/10 5/38/11 13/32/11
f 3/34/12 11/42/12 9/35/13
f 8/27/7 16/26/7 15/29/9
f 5/38/11 6/28/8 14/30/8
f 3/39/12 4/31/10 12/33/10
f 2/36/13 9/35/13 10/41/6
o Pipe
v -0.500000 0.875000 0.375000
v -0.500000 0.125000 0.375000
v -0.500000 0.875000 -0.375000
v -0.500000 0.125000 -0.375000
v -0.375000 0.875000 -0.375000
v -0.375000 0.875000 0.375000
v -0.375000 0.125000 0.375000
v -0.375000 0.125000 -0.375000
v 0.500000 0.750000 0.250000
v 0.500000 0.250000 0.250000
v 0.500000 0.750000 -0.250000
v 0.500000 0.250000 -0.250000
v 0.375000 0.750000 -0.250000
v 0.375000 0.750000 0.250000
v 0.375000 0.250000 0.250000
v 0.375000 0.250000 -0.250000
v 0.375000 0.687500 0.187500
v 0.375000 0.312500 0.187500
v 0.375000 0.687500 -0.187500
v 0.375000 0.312500 -0.187500
v 0.125000 0.687500 -0.187500
v 0.125000 0.687500 0.187500
v 0.125000 0.312500 0.187500
v 0.125000 0.312500 -0.187500
v 0.125000 0.750000 0.250000
v 0.125000 0.250000 0.250000
v 0.125000 0.750000 -0.250000
v 0.125000 0.250000 -0.250000
v -0.125000 0.750000 -0.250000
v -0.125000 0.750000 0.250000
v -0.125000 0.250000 0.250000
v -0.125000 0.250000 -0.250000
v -0.125000 0.687500 0.187500
v -0.125000 0.312500 0.187500
v -0.125000 0.687500 -0.187500
v -0.125000 0.312500 -0.187500
v -0.375000 0.687500 -0.187500
v -0.375000 0.687500 0.187500
v -0.375000 0.312500 0.187500
v -0.375000 0.312500 -0.187500
v -0.187500 0.687500 0.187500
v 0.187500 0.687500 0.187500
v -0.187500 0.687500 -0.187500
v 0.187500 0.687500 -0.187500
v -0.125000 0.875000 -0.125000
v -0.125000 0.875000 0.125000
v 0.125000 0.875000 0.125000
v 0.125000 0.875000 -0.125000
v -0.187500 0.875000 -0.187500
v -0.187500 0.875000 0.187500
v 0.187500 0.875000 0.187500
v 0.187500 0.875000 -0.187500
v -0.125000 0.812500 -0.125000
v -0.125000 0.812500 0.125000
v 0.125000 0.812500 0.125000
v 0.125000 0.812500 -0.125000
vt 0.487805 0.600000
vt 0.512195 0.425000
vt 0.512195 0.575000
vt 0.951219 0.400000
vt 0.658537 0.700000
vt 0.658537 0.400000
vt 0.658537 0.050000
vt 0.951219 0.350000
vt 0.658537 0.350000
vt 1.000000 0.350000
vt 0.951219 0.050000
vt 1.000000 0.050000
vt 0.609756 0.050000
vt 0.609756 0.350000
vt 0.951219 -0.000000
vt 0.658537 0.000000
vt 0.000000 0.600000
vt 0.195122 0.400000
vt 0.195122 0.600000
vt 0.512195 0.775000
vt 0.512195 0.625000
vt 0.195122 -0.000000
vt 0.243902 0.200000
vt 0.195122 0.200000
vt 0.243902 0.600000
vt 0.243902 0.400000
vt 0.243902 0.800000
vt 0.195122 0.800000
vt 0.512195 0.175000
vt 0.487805 -0.000000
vt 0.512195 0.025000
vt 0.487805 0.400000
vt 0.512195 0.225000
vt 0.512195 0.375000
vt 0.365854 0.625000
vt 0.268293 0.775000
vt 0.268293 0.625000
vt 0.365854 0.025000
vt 0.268293 0.175000
vt 0.268293 0.025000
vt 0.365854 0.425000
vt 0.268293 0.575000
vt 0.268293 0.425000
vt 0.365854 0.225000
vt 0.268293 0.375000
vt 0.268293 0.225000
vt 0.390244 -0.000000
vt 0.487805 0.200000
vt 0.390244 0.200000
vt 0.390244 0.400000
vt 0.390244 0.600000
vt 0.487805 0.800000
vt 0.390244 0.800000
vt 0.609756 0.625000
vt 0.609756 0.025000
vt 0.609756 0.425000
vt 0.609756 0.225000
vt 0.024390 0.750000
vt 0.121951 0.725000
vt 0.121951 0.750000
vt 0.829268 0.700000
vt 0.682927 0.775000
vt 0.682927 0.700000
vt 0.682927 1.000000
vt 0.829268 0.925000
vt 0.829268 1.000000
vt 0.609756 0.775000
vt 0.682927 0.925000
vt 0.609756 0.925000
vt 0.902439 0.925000
vt 0.829268 0.775000
vt 0.902439 0.775000
vt 0.804878 0.800000
vt 0.804878 0.900000
vt 0.707317 0.900000
vt 0.707317 0.800000
vt 0.024390 0.725000
vt 0.121951 0.625000
vt 0.000000 0.625000
vt 0.000000 0.725000
vt 0.146341 0.725000
vt 0.146341 0.625000
vt 0.121951 0.600000
vt 0.024390 0.625000
vt 0.024390 0.600000
vt 0.365854 0.375000
vt 0.365854 0.575000
vt 0.365854 0.775000
vt 0.365854 0.175000
vt 0.951219 0.700000
vt -0.000000 0.400000
vt 0.243902 0.000000
vt 0.609756 0.775000
vt 0.609756 0.175000
vt 0.609756 0.575000
vt 0.609756 0.375000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 62/43/14 67/44/14 65/45/14
f 35/46/14 34/47/14 33/48/14
f 39/49/15 37/50/15 38/51/15
f 35/52/16 40/53/16 36/54/16
f 34/55/17 38/51/17 33/56/17
f 36/57/18 39/49/18 34/58/18
f 33/48/19 37/50/19 35/46/19
f 42/59/15 43/60/15 41/61/15
f 66/62/14 62/43/14 65/63/14
f 42/64/18 48/65/18 44/66/18
f 43/60/19 46/67/19 41/61/19
f 44/66/16 45/68/16 43/60/16
f 41/61/17 47/69/17 42/70/17
f 68/71/14 63/72/14 66/73/14
f 61/74/14 68/75/14 67/76/14
f 54/77/17 50/78/17 49/79/17
f 55/80/18 52/81/18 50/82/18
f 53/83/19 49/84/19 51/85/19
f 56/86/16 51/87/16 52/88/16
f 58/89/18 64/90/18 60/91/18
f 59/92/19 62/43/19 57/93/19
f 60/91/16 61/74/16 59/92/16
f 57/93/17 63/94/17 58/95/17
f 70/96/17 66/62/17 65/63/17
f 71/97/18 68/71/18 66/73/18
f 69/98/19 65/45/19 67/44/19
f 72/99/16 67/76/16 68/75/16
f 79/100/16 86/101/16 78/102/16
f 75/103/16 84/104/16 76/105/16
f 74/106/17 82/107/17 73/108/17
f 76/109/15 83/110/15 74/111/15
f 73/112/14 81/113/14 75/114/14
f 77/115/19 82/107/19 78/116/19
f 78/116/19 83/110/19 79/117/19
f 79/117/19 84/104/19 80/118/19
f 80/118/19 81/113/19 77/115/19
f 87/119/19 85/120/19 86/101/19
f 80/121/14 87/119/14 79/122/14
f 78/123/15 85/120/15 77/124/15
f 77/125/17 88/126/17 80/127/17
f 56/86/15 59/92/15 53/128/15
f 53/83/15 57/93/15 54/129/15
f 54/77/15 58/95/15 55/130/15
f 55/80/15 60/91/15 56/131/15
f 48/65/14 51/87/14 45/68/14
f 46/67/14 51/85/14 49/84/14
f 46/67/14 50/78/14 47/69/14
f 48/65/14 50/82/14 52/81/14
f 62/43/14 61/74/14 67/44/14
f 35/46/14 36/132/14 34/47/14
f 39/49/15 40/53/15 37/50/15
f 35/52/16 37/50/16 40/53/16
f 34/55/17 39/49/17 38/51/17
f 36/57/18 40/53/18 39/49/18
f 33/48/19 38/51/19 37/50/19
f 42/59/15 44/133/15 43/60/15
f 66/62/14 63/94/14 62/43/14
f 42/64/18 47/134/18 48/65/18
f 43/60/19 45/68/19 46/67/19
f 44/66/16 48/65/16 45/68/16
f 41/61/17 46/67/17 47/69/17
f 68/71/14 64/90/14 63/72/14
f 61/74/14 64/90/14 68/75/14
f 54/77/17 55/130/17 50/78/17
f 55/80/18 56/131/18 52/81/18
f 53/83/19 54/129/19 49/84/19
f 56/86/16 53/128/16 51/87/16
f 58/89/18 63/72/18 64/90/18
f 59/92/19 61/74/19 62/43/19
f 60/91/16 64/90/16 61/74/16
f 57/93/17 62/43/17 63/94/17
f 70/96/17 71/135/17 66/62/17
f 71/97/18 72/136/18 68/71/18
f 69/98/19 70/137/19 65/45/19
f 72/99/16 69/138/16 67/76/16
f 79/100/16 87/119/16 86/101/16
f 75/103/16 81/113/16 84/104/16
f 74/106/17 83/110/17 82/107/17
f 76/109/15 84/104/15 83/110/15
f 73/112/14 82/107/14 81/113/14
f 77/115/19 81/113/19 82/107/19
f 78/116/19 82/107/19 83/110/19
f 79/117/19 83/110/19 84/104/19
f 80/118/19 84/104/19 81/113/19
f 87/119/19 88/126/19 85/120/19
f 80/121/14 88/126/14 87/119/14
f 78/123/15 86/101/15 85/120/15
f 77/125/17 85/120/17 88/126/17
f 56/86/15 60/91/15 59/92/15
f 53/83/15 59/92/15 57/93/15
f 54/77/15 57/93/15 58/95/15
f 55/80/15 58/89/15 60/91/15
f 48/65/14 52/88/14 51/87/14
f 46/67/14 45/68/14 51/85/14
f 46/67/14 49/79/14 50/78/14
f 48/65/14 47/134/14 50/82/14

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B