fist of the north star

This commit is contained in:
Boblet 2026-02-24 13:09:16 +01:00
parent 960d28740b
commit ed481dded5
31 changed files with 858 additions and 24 deletions

View File

@ -1,6 +1,30 @@
## Added
* Heavy duty electricity connector
* Upgraded version of the standard model
* Two times as chunky, ten times as powerful
* Ideal for custom pylon designs
* Two new expensive mode items
* Ultra fine gold dust, which can be combined with ferric schrabidate in the particle accelerator to create degenerate matter
* Degenerate matter, which is used instead of regular ferric schrabidate in the exposure chamber to create DNT
## Changed
* Snow golems now use the grey metallic gib particles instead of blood
* The heavy magnetic storage tank now uses BSCCO instead of AA
* Increased the industrial steam turbine's throughput to 150mB/t of UDS exactly
* In addition to being an almost 50% buff, this also fixes the slight issue where turbine chains couldn't reach 100% throughput
* The remants power armor melee ability now has a refire check, meaning the attack will be repeated automatically if the attack button is held down
* ATATATATATATATATATATATATATATA
* Power armor melee attacks now detect entities with a hitbox that's 0.5 blocks larger in all directions, making it substantially easier to hit small targets
* As a side effect, this also increases the maximum range by 0.5 blocks
## Fixed
* Fixed chemical factory internal tank sharing ignoring tank pressure
* Fixed the NCR ranger power armor missing most protection stats
* Fixed the NCR ranger power armor missing most protection stats
* Fixed LPS pipes not properly connecting to the new industrial turbines
* Fixed NCRPA missing radiation resistance stats (it's 97% for the full set)
* Fixed NCRPA chestplate giving night vision even without a full set
* Probably fixed the fused meteorite sword recipe being missing (untested)
* Decreased the fusing difficulty of chlorine and calcium in the ICF which should hopefully make ClCa fuel pellets usable (untested)
* Fixed loot piles only having a single block render AABB, causing armor rewards from red rooms to blink out of existence at certain angles
* Fixed filled crate blocks not dropping crate items with a stack lock in place
* Fixed stack lock not being applied when an item crate is opened, allowing them to be stacked while the item is open

View File

@ -764,6 +764,7 @@ public class ModBlocks {
public static Block red_cable_gauge;
public static Block red_cable_box;
public static Block red_connector;
public static Block red_connector_super;
public static Block red_pylon;
public static Block red_pylon_medium_wood;
public static Block red_pylon_medium_wood_transformer;
@ -1890,6 +1891,7 @@ public class ModBlocks {
red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
red_cable_box = new PowerCableBox(Material.iron).setBlockName("red_cable_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box");
red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector");
red_connector_super = new ConnectorRedWireSuper(Material.iron).setBlockName("red_connector_super").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector");
red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_medium_wood = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_medium_wood_transformer = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
@ -3166,7 +3168,8 @@ public class ModBlocks {
register(red_cable_gauge);
register(red_cable_box);
GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName());
GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName());
register(red_connector);
register(red_connector_super);
GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName());
register(red_pylon_medium_wood);
register(red_pylon_medium_wood_transformer);

View File

@ -155,5 +155,24 @@ public class BlockLoot extends BlockContainer {
nbt.setDouble("z" + i, item.getZ());
}
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 1,
yCoord,
zCoord - 1,
xCoord + 2,
yCoord + 3,
zCoord + 2
);
}
return bb;
}
}
}

View File

@ -163,6 +163,7 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IL
}
if(!nbt.hasNoTags()) {
nbt.setLong("stacklock", world.rand.nextLong());
drop.stackTagCompound = nbt;
}
@ -173,7 +174,7 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IL
}
}
if (drop.hasTagCompound()) {
if(drop.hasTagCompound()) {
try {
byte[] abyte = CompressedStreamTools.compress(drop.stackTagCompound);

View File

@ -0,0 +1,62 @@
package com.hbm.blocks.network;
import java.util.List;
import com.hbm.lib.Library;
import com.hbm.tileentity.network.TileEntityConnectorSuper;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ConnectorRedWireSuper extends PylonBase {
public ConnectorRedWireSuper(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityConnectorSuper();
}
@Override public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { return side; }
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
setBlockBounds(world.getBlockMetadata(x, y, z));
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
@Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { setBlockBounds(world.getBlockMetadata(x, y, z)); }
private void setBlockBounds(int meta) {
float pixel = 0.0625F;
float min = pixel * 5F;
float max = pixel * 11F;
ForgeDirection dir = ForgeDirection.getOrientation(meta).getOpposite();
float minX = dir == Library.NEG_X ? 0F : dir == Library.POS_X ? 0F : min;
float maxX = dir == Library.POS_X ? 1F : dir == Library.NEG_X ? 1F : max;
float minY = dir == Library.NEG_Y ? 0F : dir == Library.POS_Y ? 0F : min;
float maxY = dir == Library.POS_Y ? 1F : dir == Library.NEG_Y ? 1F : max;
float minZ = dir == Library.NEG_Z ? 0F : dir == Library.POS_Z ? 0F : min;
float maxZ = dir == Library.POS_Z ? 1F : dir == Library.NEG_Z ? 1F : max;
this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single");
list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "100m");
}
}

View File

@ -56,6 +56,7 @@ public class HazmatRegistry {
double env = 1.0D; // 99%
double hev = 2.3D; // 99.5%
double rpa = 2D; // 99%
double ncrpa = 1.7D; // 97%
double trench = 1D; // 90%
double fau = 4D; // 99.99%
double dns = 5D; // 99.999%
@ -130,6 +131,11 @@ public class HazmatRegistry {
HazmatRegistry.registerHazmat(ModItems.rpa_legs, rpa * legs);
HazmatRegistry.registerHazmat(ModItems.rpa_boots, rpa * boots);
HazmatRegistry.registerHazmat(ModItems.ncrpa_helmet, ncrpa * helmet);
HazmatRegistry.registerHazmat(ModItems.ncrpa_plate, ncrpa * chest);
HazmatRegistry.registerHazmat(ModItems.ncrpa_legs, ncrpa * legs);
HazmatRegistry.registerHazmat(ModItems.ncrpa_boots, ncrpa * boots);
HazmatRegistry.registerHazmat(ModItems.trenchmaster_helmet, trench * helmet);
HazmatRegistry.registerHazmat(ModItems.trenchmaster_plate, trench * chest);
HazmatRegistry.registerHazmat(ModItems.trenchmaster_legs, trench * legs);

View File

@ -112,6 +112,8 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.explastic").setup(600, 20_000).outputItems(new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.PLASTIC.ordinal()))
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 8))
.inputFluids(new FluidStack(Fluids.SOLVENT, 1_000)));
this.register(new GenericRecipe("ass.exgold").setup(600, 10_000).outputItems(new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.GOLD_DUST.ordinal()))
.inputItems(new OreDictStack(GOLD.dust(), 64), new OreDictStack(GOLD.dust(), 64)));
// cloth
this.register(new GenericRecipe("ass.hazcloth").setup(50, 100).outputItems(new ItemStack(ModItems.hazmat_cloth, 4))
@ -457,7 +459,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16)));
this.register(new GenericRecipe("ass.orbus").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_orbus, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(BSCCO.wireDense(), 8), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210)));
// accelerators

View File

@ -9,11 +9,14 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumExpensiveType;
import net.minecraft.item.ItemStack;
@ -26,7 +29,12 @@ public class ExposureChamberRecipes extends SerializableRecipe {
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_schraranium)));
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_schrabidium)));
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_dark), new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_euphemium)));
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium)));
if(GeneralConfig.enableExpensiveMode) {
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.DEGENERATE_MATTER), new ItemStack(ModItems.ingot_dineutronium)));
} else {
recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium)));
}
}
public static ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack input) {

View File

@ -8,10 +8,13 @@ import java.util.List;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumExpensiveType;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@ -86,6 +89,13 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
new ItemStack(ModItems.particle_digamma),
null
));
recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.GOLD_DUST),
new OreDictStack(SBD.ingot()),
10_000,
new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.DEGENERATE_MATTER.ordinal()),
null
));
recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(Items.chicken),
new ComparableStack(Items.chicken),

View File

@ -92,6 +92,6 @@ public class ItemEnums {
}
public static enum EnumExpensiveType {
STEEL_PLATING, HEAVY_FRAME, CIRCUIT, LEAD_PLATING, FERRO_PLATING, COMPUTER, BRONZE_TUBES, PLASTIC
STEEL_PLATING, HEAVY_FRAME, CIRCUIT, LEAD_PLATING, FERRO_PLATING, COMPUTER, BRONZE_TUBES, PLASTIC, GOLD_DUST, DEGENERATE_MATTER
}
}

View File

@ -64,8 +64,10 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
player.getAttributeMap().applyAttributeModifiers(multimap);
}
if(world.getTotalWorldTime() % 20 != 0) return;
if(HbmPlayerProps.getData(player).enableHUD) player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 300, 0, true));
if(this.hasFSBArmor(player)) {
if(world.getTotalWorldTime() % 20 != 0) return;
if(HbmPlayerProps.getData(player).enableHUD) player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 300, 0, true));
}
}
@Override public Item getItemForRenderer() { return this; }

View File

@ -37,7 +37,7 @@ public class ArmorNCRPAMelee implements IPAMelee {
boolean sweep = type == GunAnimation.ALT_CYCLE && timer == 5;
if((swings || sweep) && ctx.getPlayer() != null) {
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D, 0.5D);
if(mop != null) {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit.isEntityAlive()) {

View File

@ -2,6 +2,7 @@ package com.hbm.items.armor;
import org.lwjgl.opengl.GL11;
import com.hbm.interfaces.NotableComments;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import com.hbm.items.weapon.sedna.factory.ConfettiUtil;
@ -21,6 +22,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MovingObjectPosition;
@NotableComments
public class ArmorRPAMelee implements IPAMelee {
@Override public void clickPrimary(ItemStack stack, LambdaContext ctx) { XFactoryPA.doSwing(stack, ctx, GunAnimation.CYCLE, 14); }
@ -33,11 +35,16 @@ public class ArmorRPAMelee implements IPAMelee {
GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
// refire check so you can just continuously beat the shit out of someone
if(type == GunAnimation.CYCLE && timer == 14 && ItemGunBaseNT.getPrimary(stack, 0)) {
XFactoryPA.doSwing(stack, ctx, GunAnimation.CYCLE, 14);
}
boolean swings = type == GunAnimation.CYCLE && (timer == 3 || timer == 9);
boolean slap = type == GunAnimation.ALT_CYCLE && timer == 8;
if((swings || slap) && ctx.getPlayer() != null) {
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D, 0.5D);
if(mop != null) {
if(mop.typeOfHit == mop.typeOfHit.ENTITY) {

View File

@ -101,6 +101,7 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider
this.slots = new ItemStack[this.getSizeInventory()];
if(target.stackTagCompound == null) {
target.stackTagCompound = new NBTTagCompound();
target.stackTagCompound.setLong("stacklock", rand.nextLong());
}
for(int i = 0; i < slots.length; i++)

View File

@ -43,8 +43,8 @@ public class ItemICFPellet extends Item {
OXYGEN( 0xB4E2FF, 1.25D, 1.50D, 7.50D),
SODIUM( 0xDFE4E7, 3.00D, 0.75D, 8.75D),
//aluminium, silicon, phosphorus
CHLORINE( 0xDAE598, 2.50D, 1.00D, 10.0D),
CALCIUM( 0xD2C7A9, 3.00D, 1.00D, 12.5D),
CHLORINE( 0xDAE598, 2.50D, 1.00D, 9.25D),
CALCIUM( 0xD2C7A9, 3.00D, 1.00D, 9.75D),
//titanium
;

View File

@ -393,6 +393,7 @@ public class ClientProxy extends ServerProxy {
//network
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnectorSuper.class, new RenderConnectorSuper());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation());

View File

@ -253,6 +253,7 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModBlocks.red_cable, 1), new Object[] { ModBlocks.red_cable_classic });
addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) });
addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.red_connector_super, 2), new Object[] { "CCC", "III", " S ", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', ANY_RESISTANTALLOY.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper });

View File

@ -399,12 +399,13 @@ public class ResourceManager {
public static final IModelCustom zirnox_destroyed = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox_destroyed.obj")).asVBO();
//Network
public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj"));
public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj"));
public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj"));
public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")).asVBO();
public static final IModelCustom pipe_anchor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/pipe_anchor.obj")).asVBO();
public static final IModelCustom fluid_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/fluid_diode.obj")).asVBO();
public static final IModelCustom connector = new HFRWavefrontObject("models/network/connector.obj").noSmooth().asVBO();
public static final IModelCustom connector_super = new HFRWavefrontObject("models/network/connector_super.obj").noSmooth().asVBO();
public static final IModelCustom pylon_medium = new HFRWavefrontObject("models/network/pylon_medium.obj").noSmooth().asVBO();
public static final IModelCustom pylon_large = new HFRWavefrontObject("models/network/pylon_large.obj").noSmooth().asVBO();
public static final IModelCustom substation = new HFRWavefrontObject("models/network/substation.obj").asVBO();
public static final IModelCustom pipe_anchor = new HFRWavefrontObject("models/network/pipe_anchor.obj").asVBO();
public static final IModelCustom fluid_pump = new HFRWavefrontObject("models/network/fluid_diode.obj").asVBO();
//Radiolysis
public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj"));
@ -852,6 +853,7 @@ public class ResourceManager {
//Electricity
public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png");
public static final ResourceLocation connector_super_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector_super.png");
public static final ResourceLocation pylon_medium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium.png");
public static final ResourceLocation pylon_medium_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium_steel.png");
public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png");

View File

@ -2,12 +2,16 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.tileentity.network.TileEntityConnector;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderConnector extends RenderPylonBase {
public class RenderConnector extends RenderPylonBase implements IItemRendererProvider {
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
@ -37,4 +41,26 @@ public class RenderConnector extends RenderPylonBase {
this.renderLinesGeneric(con, x, y, z);
GL11.glPopMatrix();
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.red_connector);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -3.5, 0);
double scale = 7;
GL11.glScaled(scale, scale, scale);
}
public void renderCommon() {
GL11.glScaled(2, 2, 2);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.connector_tex);
ResourceManager.connector.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -0,0 +1,66 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.tileentity.network.TileEntityConnectorSuper;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderConnectorSuper extends RenderPylonBase implements IItemRendererProvider {
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
TileEntityConnectorSuper con = (TileEntityConnectorSuper) te;
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
switch(te.getBlockMetadata()) {
case 0: GL11.glRotated(180, 1, 0, 0); break;
case 1: break;
case 2: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(180, 0, 0, 1); break;
case 3: GL11.glRotated(90, 1, 0, 0); break;
case 4: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 0, 1); break;
case 5: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(270, 0, 0, 1); break;
}
GL11.glTranslated(0, -0.5F, 0);
bindTexture(ResourceManager.connector_super_tex);
ResourceManager.connector_super.renderAll();
GL11.glPopMatrix();
GL11.glPushMatrix();
this.renderLinesGeneric(con, x, y, z);
GL11.glPopMatrix();
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.red_connector_super);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -5, 0);
double scale = 7;
GL11.glScaled(scale, scale, scale);
}
public void renderCommon() {
GL11.glScaled(2, 2, 2);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.connector_super_tex);
ResourceManager.connector_super.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -434,6 +434,7 @@ public class TileMappings {
put(TileEntityDiode.class, "tileentity_cable_diode");
put(TileEntityConnector.class, "tileentity_connector_redwire");
put(TileEntityConnectorSuper.class, "tileentity_connector_redwire_super");
put(TileEntityPylon.class, "tileentity_pylon_redwire");
put(TileEntityPylonMedium.class, "tileentity_pylon_medium");
put(TileEntityPylonLarge.class, "tileentity_pylon_large");

View File

@ -23,8 +23,8 @@ import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineIndustrialTurbine extends TileEntityTurbineBase implements IConfigurableMachine {
public static int inputTankSize = 512_000;
public static int outputTankSize = 2_048_000;
public static int inputTankSize = 750_000;
public static int outputTankSize = 3_000_000;
public static double efficiency = 1D;
public float rotor;
@ -39,7 +39,7 @@ public class TileEntityMachineIndustrialTurbine extends TileEntityTurbineBase im
@Override
public String getConfigName() {
return "steamturbineIndustrial";
return "steamturbineIndustrialMk2";
}
@Override
@ -140,7 +140,7 @@ public class TileEntityMachineIndustrialTurbine extends TileEntityTurbineBase im
@Override
public boolean canConnect(FluidType type, ForgeDirection dir) {
if(!type.hasTrait(FT_Coolable.class)) return false;
if(!type.hasTrait(FT_Coolable.class) && type != Fluids.SPENTSTEAM) return false;
ForgeDirection myDir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
return dir != myDir && dir != myDir.getOpposite();
}

View File

@ -9,6 +9,7 @@ import com.hbm.inventory.gui.GUIFusionBreeder;
import com.hbm.inventory.recipes.FluidBreederRecipes;
import com.hbm.inventory.recipes.OutgasserRecipes;
import com.hbm.inventory.recipes.OutgasserRecipes.OutgasserRecipe;
import com.hbm.items.ModItems;
import com.hbm.items.machine.IItemFluidIdentifier;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -104,6 +105,8 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF
public boolean canProcessSolid() {
if(slots[1] == null) return false;
if(slots[1].getItem() == ModItems.meteorite_sword_bred && slots[2] == null) return true;
OutgasserRecipe output = OutgasserRecipes.getOutput(slots[1]);
if(output == null) return false;
@ -138,6 +141,13 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF
}
private void processSolid() {
if(slots[1].getItem() == ModItems.meteorite_sword_bred) {
this.decrStackSize(1, 1);
slots[2] = new ItemStack(ModItems.meteorite_sword_fused);
this.progress = 0;
return;
}
OutgasserRecipe output = OutgasserRecipes.getOutput(slots[1]);
this.decrStackSize(1, 1);

View File

@ -0,0 +1,18 @@
package com.hbm.tileentity.network;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityConnectorSuper extends TileEntityConnector {
@Override
public Vec3[] getMountPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata());
return new Vec3[] {Vec3.createVectorHelper(0.5 + dir.offsetX * 0.375, 0.5 + dir.offsetY * 0.375, 0.5 + dir.offsetZ * 0.375)};
}
@Override
public double getMaxWireLength() {
return 100;
}
}

View File

@ -431,6 +431,10 @@ public class EntityDamageUtil {
}
public static MovingObjectPosition getMouseOver(EntityPlayer attacker, double reach) {
return getMouseOver(attacker, reach, 0D);
}
public static MovingObjectPosition getMouseOver(EntityPlayer attacker, double reach, double threshold) {
World world = attacker.worldObj;
MovingObjectPosition objectMouseOver = null;
@ -452,7 +456,7 @@ public class EntityDamageUtil {
if(entity.canBeCollidedWith()) {
float borderSize = entity.getCollisionBorderSize();
double borderSize = entity.getCollisionBorderSize() + threshold;
AxisAlignedBB axisalignedbb = entity.boundingBox.expand(borderSize, borderSize, borderSize);
MovingObjectPosition movingobjectposition = axisalignedbb.calculateIntercept(pos, end);

View File

@ -2422,7 +2422,9 @@ item.insert_yharonite.name=Yharoniteinlage
item.item_expensive.bronze_tubes.name=Bronze-Strukturelement
item.item_expensive.circuit.name=Umfangreiche Platine
item.item_expensive.computer.name=Großrechner
item.item_expensive.degenerate_matter.name=Entartete Materie
item.item_expensive.ferro_plating.name=Verstärkte Ferrouraniumpanele
item.item_expensive.gold_dust.name=Ultrafeiner Goldstaub
item.item_expensive.heavy_frame.name=Schweres Gestell
item.item_expensive.lead_plating.name=Strahlenresistente Plattierung
item.item_expensive.plastic.name=Kunststoffpanele
@ -4907,6 +4909,7 @@ tile.red_cable_gauge.name=Strommessgerät
tile.red_cable_gauge.desc=Kabel welches anzeight, wie viel Strom$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die über Energiespeicherblöcke$verbunden sind, werden als ein einzelnes gezählt.
tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (Färbbar)
tile.red_connector.name=Stromverbindungsstück
tile.red_connector_super.name=Schwerlast-Stromverbindungsstück
tile.red_pylon.name=Strommasten
tile.red_pylon_large.name=Hochspannungsmasten
tile.red_pylon_medium_steel.name=Stählerner mittelgroßer Strommasten

View File

@ -3281,7 +3281,9 @@ item.insert_yharonite.name=Yharonite Insert
item.item_expensive.bronze_tubes.name=Bronze Structural Elements
item.item_expensive.circuit.name=Extensive Circuit Board
item.item_expensive.computer.name=Mainframe
item.item_expensive.degenerate_matter.name=Degenerate Matter
item.item_expensive.ferro_plating.name=Reinforced Ferrouranium Panels
item.item_expensive.gold_dust.name=Ultra Fine Gold Dust
item.item_expensive.heavy_frame.name=Heavy Framework
item.item_expensive.lead_plating.name=Radiation Resistant Plating
item.item_expensive.plastic.name=Plastic Panels
@ -6237,6 +6239,7 @@ tile.red_cable_gauge.name=Power Gauge
tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network.
tile.red_cable_paintable.name=Paintable Red Copper Cable
tile.red_connector.name=Electricity Connector
tile.red_connector_super.name=Heavy Duty Electricity Connector
tile.red_pylon.name=Electricity Pylon
tile.red_pylon_large.name=Large Electricity Pylon
tile.red_pylon_medium_steel.name=Medium Steel Electricity Pylon

View File

@ -0,0 +1,554 @@
# Blender v2.79 (sub 0) OBJ File: 'connector_super.blend'
# www.blender.org
o Cube_Cube.001
v -0.187500 0.437500 0.187500
v 0.187500 0.437500 -0.187500
v -0.187500 0.437500 -0.187500
v 0.187500 0.437500 0.187500
v -0.187500 0.562500 -0.187500
v 0.187500 0.562500 0.187500
v -0.187500 0.562500 0.187500
v 0.187500 0.562500 -0.187500
v -0.125000 0.437500 -0.125000
v -0.125000 0.437500 0.125000
v 0.125000 0.437500 -0.125000
v 0.125000 0.437500 0.125000
v 0.125000 0.375000 0.125000
v -0.125000 0.375000 -0.125000
v 0.125000 0.375000 -0.125000
v -0.125000 0.375000 0.125000
v 0.187500 0.375000 -0.187500
v -0.187500 0.375000 0.187500
v 0.187500 0.375000 0.187500
v -0.187500 0.375000 -0.187500
v 0.187500 0.250000 0.187500
v -0.187500 0.250000 -0.187500
v 0.187500 0.250000 -0.187500
v -0.187500 0.250000 0.187500
v -0.125000 0.250000 0.125000
v 0.125000 0.187500 0.125000
v 0.125000 0.250000 0.125000
v 0.125000 0.250000 -0.125000
v -0.125000 0.187500 -0.125000
v -0.125000 0.250000 -0.125000
v 0.125000 0.187500 -0.125000
v -0.125000 0.187500 0.125000
v 0.187500 0.187500 -0.187500
v -0.187500 0.187500 0.187500
v 0.187500 0.187500 0.187500
v -0.187500 0.187500 -0.187500
v 0.187500 0.062500 0.187500
v -0.187500 0.062500 -0.187500
v 0.187500 0.062500 -0.187500
v -0.187500 0.062500 0.187500
v -0.125000 0.062500 0.125000
v 0.125000 -0.000000 0.125000
v 0.125000 0.062500 0.125000
v 0.125000 0.062500 -0.125000
v -0.125000 0.000000 -0.125000
v -0.125000 0.062500 -0.125000
v 0.125000 0.000000 -0.125000
v -0.125000 -0.000000 0.125000
v -0.062500 0.937500 0.062500
v -0.062500 0.812500 -0.062500
v -0.062500 0.812500 0.062500
v -0.062500 0.937500 -0.062500
v 0.062500 0.812500 -0.062500
v 0.062500 0.937500 -0.062500
v 0.062500 0.812500 0.062500
v 0.062500 0.937500 0.062500
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
v -0.125000 0.750000 -0.125000
v -0.125000 0.750000 0.125000
v 0.125000 0.750000 -0.125000
v 0.125000 0.750000 0.125000
v -0.187500 0.625000 0.187500
v 0.187500 0.625000 -0.187500
v -0.187500 0.625000 -0.187500
v 0.187500 0.625000 0.187500
v -0.187500 0.750000 -0.187500
v 0.187500 0.750000 0.187500
v -0.187500 0.750000 0.187500
v 0.187500 0.750000 -0.187500
v -0.125000 0.625000 -0.125000
v -0.125000 0.625000 0.125000
v 0.125000 0.625000 -0.125000
v 0.125000 0.625000 0.125000
v 0.125000 0.562500 0.125000
v -0.125000 0.562500 -0.125000
v 0.125000 0.562500 -0.125000
v -0.125000 0.562500 0.125000
v -0.093750 0.812500 0.125000
v 0.093750 0.812500 0.125000
v -0.093750 0.937500 0.125000
v 0.093750 0.937500 0.125000
v 0.093750 0.812500 -0.125000
v -0.093750 0.812500 -0.125000
v 0.093750 0.937500 -0.125000
v -0.093750 0.937500 -0.125000
v 0.125000 0.812500 0.093750
v 0.125000 0.812500 -0.093750
v 0.125000 0.937500 0.093750
v 0.125000 0.937500 -0.093750
v -0.125000 0.812500 -0.093750
v -0.125000 0.812500 0.093750
v -0.125000 0.937500 -0.093750
v -0.125000 0.937500 0.093750
v 0.062500 1.000000 0.093750
v 0.062500 1.000000 -0.093750
v -0.062500 1.000000 -0.093750
v -0.062500 1.000000 0.093750
v -0.093750 1.000000 0.062500
v 0.093750 1.000000 0.062500
v 0.093750 1.000000 -0.062500
v -0.093750 1.000000 -0.062500
v -0.093750 0.812500 0.125000
v 0.093750 0.812500 0.125000
v -0.093750 0.937500 0.125000
v 0.093750 0.937500 0.125000
v 0.093750 0.812500 -0.125000
v -0.093750 0.812500 -0.125000
v 0.093750 0.937500 -0.125000
v -0.093750 0.937500 -0.125000
v 0.125000 0.812500 0.093750
v 0.125000 0.812500 -0.093750
v 0.125000 0.937500 0.093750
v 0.125000 0.937500 -0.093750
v -0.125000 0.812500 -0.093750
v -0.125000 0.812500 0.093750
v -0.125000 0.937500 -0.093750
v -0.125000 0.937500 0.093750
v 0.062500 1.000000 0.093750
v 0.062500 1.000000 -0.093750
v -0.062500 1.000000 -0.093750
v -0.062500 1.000000 0.093750
v -0.093750 1.000000 0.062500
v 0.093750 1.000000 0.062500
v 0.093750 1.000000 -0.062500
v -0.093750 1.000000 -0.062500
vt 0.111111 0.300000
vt 0.555556 0.333333
vt 0.111111 0.333333
vt 0.111111 0.300000
vt 0.555556 0.333333
vt 0.111111 0.333333
vt -0.000000 0.200000
vt 0.666667 0.266667
vt -0.000000 0.266667
vt 0.111111 0.466667
vt 0.555556 0.500000
vt 0.111111 0.500000
vt -0.000000 0.533333
vt 0.666667 0.366667
vt -0.000000 0.366667
vt -0.000000 0.266667
vt 0.555556 0.300000
vt 0.111111 0.300000
vt 0.111111 0.166667
vt 0.666667 0.200000
vt -0.000000 0.533333
vt 0.555556 0.500000
vt 0.666667 0.533333
vt 0.666667 0.533333
vt 0.111111 0.500000
vt 0.555556 0.500000
vt -0.000000 0.366667
vt 0.666667 0.433333
vt -0.000000 0.433333
vt -0.000000 0.200000
vt 0.666667 0.266667
vt -0.000000 0.266667
vt 0.111111 0.166667
vt 0.666667 0.200000
vt 0.555556 0.300000
vt 0.111111 0.333333
vt 0.666667 0.366667
vt -0.000000 0.366667
vt 0.555556 0.466667
vt 0.111111 0.466667
vt 0.111111 0.466667
vt 0.111111 0.466667
vt 0.555556 0.500000
vt 0.111111 0.500000
vt 0.111111 0.133333
vt 0.555556 0.166667
vt 0.111111 0.166667
vt 0.666667 0.533333
vt 0.555556 0.333333
vt 0.111111 0.333333
vt 0.111111 0.166667
vt 0.666667 0.200000
vt -0.000000 0.200000
vt 0.111111 0.133333
vt 0.555556 -0.000000
vt 0.555556 0.133333
vt 0.666667 0.600000
vt -0.000000 0.600000
vt -0.000000 0.266667
vt 0.555556 0.300000
vt 0.111111 0.300000
vt -0.000000 0.433333
vt 0.555556 0.466667
vt -0.000000 0.433333
vt 0.555556 0.466667
vt 0.111111 0.833333
vt 0.444444 0.866667
vt 0.222222 0.866667
vt 0.666667 0.433333
vt 0.666667 0.433333
vt 0.111111 0.500000
vt 0.666667 0.266667
vt -0.000000 0.366667
vt 0.666667 0.433333
vt -0.000000 0.433333
vt -0.000000 0.200000
vt 0.666667 0.266667
vt 0.111111 0.133333
vt 0.555556 0.166667
vt 0.111111 0.133333
vt 0.555556 0.166667
vt 0.555556 0.333333
vt 0.666667 0.200000
vt -0.000000 0.533333
vt 0.666667 0.600000
vt -0.000000 0.600000
vt -0.000000 0.533333
vt 0.666667 0.600000
vt -0.000000 0.600000
vt 0.666667 0.366667
vt 0.666667 0.366667
vt 0.555556 0.466667
vt 0.555556 0.300000
vt 0.666667 0.600000
vt -0.000000 0.600000
vt 0.111111 0.833333
vt 0.444444 0.866667
vt 0.222222 0.866667
vt 0.111111 0.833333
vt 0.444444 0.866667
vt 0.222222 0.866667
vt 0.222222 0.933333
vt 0.444444 0.866667
vt 0.444444 0.933333
vt 0.222222 0.933333
vt 0.444444 0.933333
vt 0.222222 1.000000
vt 0.444444 0.933333
vt 0.444444 1.000000
vt 0.222222 0.933333
vt 0.222222 0.933333
vt 0.444444 0.933333
vt 0.111111 0.833333
vt 0.222222 0.866667
vt 0.555556 0.166667
vt 0.555556 0.800000
vt 0.555556 0.833333
vt 0.555556 0.800000
vt 0.555556 0.833333
vt 0.555556 0.800000
vt 0.555556 0.833333
vt 0.555556 0.800000
vt 0.555556 0.833333
vt 0.111111 0.633333
vt 0.555556 0.666667
vt 0.111111 0.666667
vt -0.000000 0.700000
vt -0.000000 0.700000
vt 0.555556 0.666667
vt 0.666667 0.700000
vt 0.666667 0.700000
vt 0.111111 0.666667
vt 0.555556 0.666667
vt 0.111111 0.633333
vt 0.111111 0.633333
vt 0.555556 0.666667
vt 0.111111 0.666667
vt 0.666667 0.700000
vt 0.666667 0.766667
vt -0.000000 0.766667
vt 0.111111 0.633333
vt 0.111111 0.666667
vt -0.000000 0.700000
vt 0.666667 0.766667
vt -0.000000 0.766667
vt -0.000000 0.700000
vt 0.666667 0.766667
vt -0.000000 0.766667
vt 0.666667 0.766667
vt -0.000000 0.766667
vt 0.555556 0.633333
vt 0.555556 0.633333
vt 0.111111 0.800000
vt 0.111111 0.800000
vt 0.111111 0.800000
vt 0.111111 0.800000
vt 1.000000 0.100000
vt 0.666667 -0.000000
vt 1.000000 -0.000000
vt 0.666667 0.300000
vt 1.000000 0.400000
vt 0.666667 0.400000
vt 0.666667 0.300000
vt 1.000000 0.400000
vt 0.666667 0.400000
vt 1.000000 0.100000
vt 0.666667 -0.000000
vt 1.000000 -0.000000
vt 0.666667 0.166667
vt 0.666667 0.100000
vt 1.000000 0.233333
vt 1.000000 0.300000
vt 1.000000 0.233333
vt 1.000000 0.300000
vt 0.666667 0.166667
vt 0.666667 0.100000
vt 1.000000 0.166667
vt 0.666667 0.233333
vt 0.666667 0.233333
vt 1.000000 0.166667
vt 0.666667 -0.000000
vt 1.000000 0.100000
vt 1.000000 -0.000000
vt 1.000000 0.400000
vt 0.666667 0.300000
vt 0.666667 0.400000
vt 1.000000 0.400000
vt 0.666667 0.300000
vt 0.666667 0.400000
vt 0.666667 -0.000000
vt 1.000000 0.100000
vt 1.000000 -0.000000
vt 0.666667 0.166667
vt 0.666667 0.100000
vt 1.000000 0.233333
vt 1.000000 0.300000
vt 1.000000 0.300000
vt 0.666667 0.233333
vt 0.666667 0.166667
vt 0.666667 0.100000
vt 1.000000 0.166667
vt 1.000000 0.166667
vt 0.666667 0.233333
vt 0.666667 0.533333
vt 0.555556 0.133333
vt 0.111111 -0.000000
vt 0.555556 0.133333
vt 0.555556 0.133333
vt 0.555556 0.633333
vt 0.666667 0.700000
vt 0.555556 0.633333
vt 1.000000 0.233333
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn -0.7071 0.7071 0.0000
vn 0.7071 0.7071 0.0000
vn -0.0000 0.7071 -0.7071
vn 0.0000 0.7071 0.7071
vn 0.7071 -0.7071 -0.0000
vn -0.7071 -0.7071 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 -0.7071 -0.7071
s off
f 32/1/1 27/2/1 25/3/1
f 26/4/2 28/5/2 27/6/2
f 37/7/2 33/8/2 35/9/2
f 16/10/1 12/11/1 10/12/1
f 12/11/3 1/13/3 10/12/3
f 27/6/3 23/14/3 21/15/3
f 36/16/4 32/17/4 29/18/4
f 43/19/3 39/20/3 37/7/3
f 3/21/3 10/22/3 1/23/3
f 3/24/3 11/25/3 9/26/3
f 22/27/5 18/28/5 20/29/5
f 40/30/1 35/31/1 34/32/1
f 41/33/3 37/34/3 40/30/3
f 35/9/4 31/35/4 26/4/4
f 28/36/3 22/37/3 23/38/3
f 20/29/4 16/39/4 14/40/4
f 15/41/6 9/26/6 11/25/6
f 13/42/2 11/43/2 12/44/2
f 45/45/5 41/46/5 46/47/5
f 2/48/3 12/44/3 11/43/3
f 29/18/5 25/49/5 30/50/5
f 44/51/3 38/52/3 39/53/3
f 42/54/3 45/55/3 47/56/3
f 1/13/1 6/57/1 7/58/1
f 33/59/4 29/60/4 31/61/4
f 17/62/4 14/63/4 15/41/4
f 19/64/4 15/65/4 13/42/4
f 60/66/4 53/67/4 55/68/4
f 21/15/2 17/69/2 19/64/2
f 23/38/6 20/70/6 17/62/6
f 14/40/5 10/22/5 9/71/5
f 39/53/6 36/72/6 33/59/6
f 24/73/1 19/74/1 18/75/1
f 38/76/5 34/77/5 36/16/5
f 47/78/6 46/79/6 44/51/6
f 48/80/1 43/81/1 41/33/1
f 31/61/6 30/82/6 28/36/6
f 46/47/3 40/83/3 38/76/3
f 2/84/6 5/85/6 8/86/6
f 4/87/2 8/88/2 6/89/2
f 25/3/3 21/90/3 24/73/3
f 30/50/3 24/91/3 22/27/3
f 18/75/4 13/92/4 16/10/4
f 34/32/4 26/93/4 32/1/4
f 3/21/5 7/94/5 5/95/5
f 58/96/4 55/97/4 51/98/4
f 57/99/4 51/100/4 50/101/4
f 54/102/6 50/103/6 52/104/6
f 49/105/1 55/97/1 56/106/1
f 49/107/4 54/108/4 52/109/4
f 56/110/2 53/67/2 54/108/2
f 52/111/5 51/100/5 49/112/5
f 59/113/4 50/103/4 53/114/4
f 42/54/2 44/115/2 43/19/2
f 57/99/5 62/116/5 58/117/5
f 59/113/6 61/118/6 57/119/6
f 58/96/1 64/120/1 60/121/1
f 60/66/2 63/122/2 59/123/2
f 80/124/1 76/125/1 74/126/1
f 76/125/3 65/127/3 74/126/3
f 67/128/3 74/129/3 65/130/3
f 67/131/3 75/132/3 73/133/3
f 79/134/6 73/133/6 75/132/6
f 77/135/2 75/136/2 76/137/2
f 66/138/3 76/137/3 75/136/3
f 65/127/1 70/139/1 71/140/1
f 78/141/5 74/129/5 73/142/5
f 66/143/6 69/144/6 72/145/6
f 68/146/2 72/147/2 70/148/2
f 67/128/5 71/149/5 69/150/5
f 79/151/4 6/89/4 8/88/4
f 5/85/4 79/134/4 8/86/4
f 80/152/4 5/95/4 7/94/4
f 6/57/4 80/124/4 7/58/4
f 70/148/4 63/122/4 64/153/4
f 63/154/4 69/144/4 61/118/4
f 69/150/4 62/116/4 61/155/4
f 62/156/4 70/139/4 64/120/4
f 84/157/1 81/158/1 82/159/1
f 88/160/6 85/161/6 86/162/6
f 92/163/2 89/164/2 90/165/2
f 96/166/5 93/167/5 94/168/5
f 96/166/7 99/169/7 95/170/7
f 92/163/8 97/171/8 91/172/8
f 88/160/9 103/173/9 87/174/9
f 84/157/10 101/175/10 83/176/10
f 102/177/4 104/178/4 101/175/4
f 98/179/4 100/180/4 97/171/4
f 105/181/6 108/182/6 106/183/6
f 109/184/1 112/185/1 110/186/1
f 113/187/5 116/188/5 114/189/5
f 117/190/2 120/191/2 118/192/2
f 123/193/11 120/191/11 119/194/11
f 121/195/12 116/188/12 115/196/12
f 111/197/13 128/198/13 112/185/13
f 125/199/14 108/182/14 107/200/14
f 128/198/3 126/201/3 125/199/3
f 124/202/3 122/203/3 121/195/3
f 32/1/1 26/93/1 27/2/1
f 26/4/2 31/35/2 28/5/2
f 37/7/2 39/20/2 33/8/2
f 16/10/1 13/92/1 12/11/1
f 12/11/3 4/204/3 1/13/3
f 27/6/3 28/5/3 23/14/3
f 36/16/4 34/77/4 32/17/4
f 43/19/3 44/115/3 39/20/3
f 3/21/3 9/71/3 10/22/3
f 3/24/3 2/84/3 11/25/3
f 22/27/5 24/91/5 18/28/5
f 40/30/1 37/34/1 35/31/1
f 41/33/3 43/81/3 37/34/3
f 35/9/4 33/8/4 31/35/4
f 28/36/3 30/82/3 22/37/3
f 20/29/4 18/28/4 16/39/4
f 15/41/6 14/63/6 9/26/6
f 13/42/2 15/65/2 11/43/2
f 45/45/5 48/205/5 41/46/5
f 2/48/3 4/87/3 12/44/3
f 29/18/5 32/17/5 25/49/5
f 44/51/3 46/79/3 38/52/3
f 42/54/3 48/206/3 45/55/3
f 1/13/1 4/204/1 6/57/1
f 33/59/4 36/72/4 29/60/4
f 17/62/4 20/70/4 14/63/4
f 19/64/4 17/69/4 15/65/4
f 60/66/4 59/123/4 53/67/4
f 21/15/2 23/14/2 17/69/2
f 23/38/6 22/37/6 20/70/6
f 14/40/5 16/39/5 10/22/5
f 39/53/6 38/52/6 36/72/6
f 24/73/1 21/90/1 19/74/1
f 38/76/5 40/83/5 34/77/5
f 47/78/6 45/207/6 46/79/6
f 48/80/1 42/208/1 43/81/1
f 31/61/6 29/60/6 30/82/6
f 46/47/3 41/46/3 40/83/3
f 2/84/6 3/24/6 5/85/6
f 4/87/2 2/48/2 8/88/2
f 25/3/3 27/2/3 21/90/3
f 30/50/3 25/49/3 24/91/3
f 18/75/4 19/74/4 13/92/4
f 34/32/4 35/31/4 26/93/4
f 3/21/5 1/23/5 7/94/5
f 58/96/4 60/121/4 55/97/4
f 57/99/4 58/117/4 51/100/4
f 54/102/6 53/114/6 50/103/6
f 49/105/1 51/98/1 55/97/1
f 49/107/4 56/110/4 54/108/4
f 56/110/2 55/68/2 53/67/2
f 52/111/5 50/101/5 51/100/5
f 59/113/4 57/119/4 50/103/4
f 42/54/2 47/56/2 44/115/2
f 57/99/5 61/155/5 62/116/5
f 59/113/6 63/154/6 61/118/6
f 58/96/1 62/156/1 64/120/1
f 60/66/2 64/153/2 63/122/2
f 80/124/1 77/209/1 76/125/1
f 76/125/3 68/210/3 65/127/3
f 67/128/3 73/142/3 74/129/3
f 67/131/3 66/143/3 75/132/3
f 79/134/6 78/211/6 73/133/6
f 77/135/2 79/151/2 75/136/2
f 66/138/3 68/146/3 76/137/3
f 65/127/1 68/210/1 70/139/1
f 78/141/5 80/152/5 74/129/5
f 66/143/6 67/131/6 69/144/6
f 68/146/2 66/138/2 72/147/2
f 67/128/5 65/130/5 71/149/5
f 79/151/4 77/135/4 6/89/4
f 5/85/4 78/211/4 79/134/4
f 80/152/4 78/141/4 5/95/4
f 6/57/4 77/209/4 80/124/4
f 70/148/4 72/147/4 63/122/4
f 63/154/4 72/145/4 69/144/4
f 69/150/4 71/149/4 62/116/4
f 62/156/4 71/140/4 70/139/4
f 84/157/1 83/176/1 81/158/1
f 88/160/6 87/174/6 85/161/6
f 92/163/2 91/172/2 89/164/2
f 96/166/5 95/170/5 93/167/5
f 96/166/7 100/180/7 99/169/7
f 92/163/8 98/179/8 97/171/8
f 88/160/9 104/178/9 103/173/9
f 84/157/10 102/177/10 101/175/10
f 102/177/4 103/173/4 104/178/4
f 98/179/4 99/169/4 100/180/4
f 105/181/6 107/200/6 108/182/6
f 109/184/1 111/197/1 112/185/1
f 113/187/5 115/196/5 116/188/5
f 117/190/2 119/194/2 120/191/2
f 123/193/11 124/202/11 120/191/11
f 121/195/12 122/203/12 116/188/12
f 111/197/13 127/212/13 128/198/13
f 125/199/14 126/201/14 108/182/14
f 128/198/3 127/212/3 126/201/3
f 124/202/3 123/193/3 122/203/3

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B