power net fixes, new cable designs

This commit is contained in:
Bob 2021-08-12 22:13:53 +02:00
parent a0237c9a40
commit e5fb7c5a35
15 changed files with 1188 additions and 110 deletions

View File

@ -9,7 +9,7 @@ import java.util.List;
*/
public interface IPowerNet {
public void join(IPowerNet network);
public void joinNetworks(IPowerNet network);
public IPowerNet joinLink(IEnergyConductor conductor);
public void leaveLink(IEnergyConductor conductor);
@ -21,8 +21,9 @@ public interface IPowerNet {
public void destroy();
public boolean isValid();
public List<IEnergyConductor> getLinks();
public List<IEnergyConnector> getSubscribers();
public long transferPower(long power);
}

View File

@ -17,7 +17,23 @@ public class PowerNet implements IPowerNet {
private List<IEnergyConnector> subscribers = new ArrayList();
@Override
public void join(IPowerNet network) { }
public void joinNetworks(IPowerNet network) {
if(network == this)
return; //wtf?!
for(IEnergyConductor conductor : network.getLinks()) {
conductor.setPowerNet(this);
this.getLinks().add(conductor);
}
network.getLinks().clear();
for(IEnergyConnector connector : network.getSubscribers()) {
this.subscribe(connector);
}
network.destroy();
}
@Override
public IPowerNet joinLink(IEnergyConductor conductor) {
@ -55,17 +71,23 @@ public class PowerNet implements IPowerNet {
public List<IEnergyConductor> getLinks() {
return this.links;
}
@Override
public List<IEnergyConnector> getSubscribers() {
return this.subscribers;
}
@Override
public void destroy() {
this.valid = false;
this.subscribers.clear();
for(IEnergyConductor link : this.links) {
link.setPowerNet(null);
}
this.links.clear();
this.subscribers.clear();
}
@Override

View File

@ -1149,7 +1149,7 @@ public class ModBlocks {
test_missile = new TestMissile(Material.iron).setBlockName("test_missile").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_missile");
test_core = new TestCore(Material.iron).setBlockName("test_core").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_core");
test_charge = new TestCharge(Material.iron).setBlockName("test_charge").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F);
test_conductor = new TestConductor(Material.iron).setBlockName("test_conductor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_conductor");
test_conductor = new TestConductor(Material.iron).setBlockName("test_conductor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cable_neo");
ore_uranium = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium");
ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched");

View File

@ -3,6 +3,7 @@ package com.hbm.blocks.test;
import com.hbm.interfaces.Untested;
import com.hbm.tileentity.network.TileEntityCableBaseNT;
import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
@ -23,4 +24,21 @@ public class TestConductor extends BlockContainer {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityCableBaseNT();
}
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
@Override
public int getRenderType() {
return renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
}

View File

@ -7,6 +7,7 @@ import com.hbm.items.ModItems;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemMachineUpgrade extends Item {
@ -32,150 +33,124 @@ public class ItemMachineUpgrade extends Item {
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(this.type == UpgradeType.SPEED) {
list.add("Mining Drill:");
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t");
list.add("");
list.add("Laser Miner:");
list.add(EnumChatFormatting.RED + "Laser Miner:");
list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t");
list.add("");
list.add("Assembly Machine:");
list.add(EnumChatFormatting.RED + "Assembly Machine:");
list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t");
list.add("");
list.add("Chemical Plant:");
list.add(EnumChatFormatting.RED + "Chemical Plant:");
list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t");
list.add("");
list.add("Crystallizer:");
list.add(EnumChatFormatting.RED + "Crystallizer:");
list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t");
list.add("");
list.add("Cyclotron:");
list.add(EnumChatFormatting.RED + "Cyclotron:");
list.add("Speed x" + (1 + this.tier));
list.add("");
list.add("Maxwell:");
list.add("Damage +" + (0.25 * (double)this.tier) + "/t");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t");
}
if(this.type == UpgradeType.EFFECT) {
list.add("Mining Drill:");
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t");
list.add("");
list.add("Crystallizer:");
list.add(EnumChatFormatting.RED + "Crystallizer:");
list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB");
list.add("");
list.add("Cyclotron:");
list.add("-" + (100 - 100 / this.tier) + "% chance of incrementing overheat counter");
list.add("");
list.add("Maxwell:");
list.add(EnumChatFormatting.RED + "Cyclotron:");
list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Range +" + (3 * this.tier) + "m");
}
if(this.type == UpgradeType.POWER) {
list.add("Mining Drill:");
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%");
list.add("");
list.add("Assembly Machine:");
list.add(EnumChatFormatting.RED + "Assembly Machine:");
list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%");
list.add("");
list.add("Chemical Plant:");
list.add(EnumChatFormatting.RED + "Chemical Plant:");
list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%");
list.add("");
list.add("Cyclotron:");
list.add(EnumChatFormatting.RED + "Cyclotron:");
list.add("Consumption -" + (100 * this.tier) + "kHE/t");
list.add("");
list.add("Maxwell:");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Consumption -" + (150 * this.tier) + "HE/t");
list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t");
}
if(this == ModItems.upgrade_fortune_1)
{
list.add("Mining Drill:");
if(this == ModItems.upgrade_fortune_1) {
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Fortune +1 / Delay +15");
}
if(this == ModItems.upgrade_fortune_2)
{
list.add("Mining Drill:");
if(this == ModItems.upgrade_fortune_2) {
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Fortune +2 / Delay +30");
}
if(this == ModItems.upgrade_fortune_3)
{
list.add("Mining Drill:");
if(this == ModItems.upgrade_fortune_3) {
list.add(EnumChatFormatting.RED + "Mining Drill:");
list.add("Fortune +3 / Delay +45");
}
if(this == ModItems.upgrade_afterburn_1)
{
list.add("Turbofan:");
if(this == ModItems.upgrade_afterburn_1) {
list.add(EnumChatFormatting.RED + "Turbofan:");
list.add("Production x2 / Consumption x2.5");
list.add("");
list.add("Maxwell:");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Afterburn +3s");
}
if(this == ModItems.upgrade_afterburn_2)
{
list.add("Turbofan:");
if(this == ModItems.upgrade_afterburn_2) {
list.add(EnumChatFormatting.RED + "Turbofan:");
list.add("Production x3 / Consumption x5");
list.add("");
list.add("Maxwell:");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Afterburn +6s");
}
if(this == ModItems.upgrade_afterburn_3)
{
list.add("Turbofan:");
if(this == ModItems.upgrade_afterburn_3) {
list.add(EnumChatFormatting.RED + "Turbofan:");
list.add("Production x4 / Consumption x7.5");
list.add("");
list.add("Maxwell:");
list.add(EnumChatFormatting.RED + "Maxwell:");
list.add("Afterburn +9s");
}
if(this == ModItems.upgrade_radius)
{
list.add("Forcefield Range Upgrade");
if(this == ModItems.upgrade_radius) {
list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade");
list.add("Radius +16 / Consumption +500");
list.add("");
list.add("Stacks to 16");
}
if(this == ModItems.upgrade_health)
{
list.add("Forcefield Health Upgrade");
if(this == ModItems.upgrade_health) {
list.add(EnumChatFormatting.RED + "Forcefield Health Upgrade");
list.add("Max. Health +50 / Consumption +250");
list.add("");
list.add("Stacks to 16");
}
if(this == ModItems.upgrade_smelter) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Smelts blocks. Easy enough.");
}
if(this == ModItems.upgrade_shredder) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Crunches ores");
}
if(this == ModItems.upgrade_centrifuge) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Hopefully self-explanatory");
}
if(this == ModItems.upgrade_crystallizer) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Your new best friend");
}
if(this == ModItems.upgrade_screm) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("It's like in Super Mario where all blocks are");
list.add("actually Toads, but here it's Half-Life scientists");
list.add("and they scream. A lot.");
}
if(this == ModItems.upgrade_nullifier) {
list.add("Mining Laser Upgrade");
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("50% chance to override worthless items with /dev/zero");
list.add("50% chance to move worthless items to /dev/null");
}

View File

@ -566,6 +566,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerBlockHandler(new RenderBattery());
RenderingRegistry.registerBlockHandler(new RenderAnvil());
RenderingRegistry.registerBlockHandler(new RenderCrystal());
RenderingRegistry.registerBlockHandler(new RenderTestCable());
RenderingRegistry.registerBlockHandler(new RenderRBMKRod());
RenderingRegistry.registerBlockHandler(new RenderRBMKReflector());

View File

@ -1062,6 +1062,7 @@ public class ResourceManager {
public static final IModelCustom crystal_energy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_energy.obj"));
public static final IModelCustom crystal_robust = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_robust.obj"));
public static final IModelCustom crystal_trixite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_trixite.obj"));
public static final IModelCustom cable_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/cable_neo.obj"));
//RBMK DEBRIS
public static final IModelCustom deb_blank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/projectiles/deb_blank.obj"));

View File

@ -0,0 +1,99 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.test.TestConductor;
import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil;
import api.hbm.energy.IEnergyConnector;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class RenderTestCable implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, 0);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
GL11.glRotated(180, 0, 1, 0);
GL11.glScaled(1.25D, 1.25D, 1.25D);
tessellator.startDrawingQuads();
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, false);
tessellator.draw();
GL11.glPopMatrix();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, 0);
tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture;
}
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
boolean pX = world.getTileEntity(x + 1, y, z) instanceof IEnergyConnector;
boolean nX = world.getTileEntity(x - 1, y, z) instanceof IEnergyConnector;
boolean pY = world.getTileEntity(x, y + 1, z) instanceof IEnergyConnector;
boolean nY = world.getTileEntity(x, y - 1, z) instanceof IEnergyConnector;
boolean pZ = world.getTileEntity(x, y, z + 1) instanceof IEnergyConnector;
boolean nZ = world.getTileEntity(x, y, z - 1) instanceof IEnergyConnector;
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);
if(pX && nX && !pY && !nY && !pZ && !nZ)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true);
else if(!pX && !nX && pY && nY && !pZ && !nZ)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true);
else if(!pX && !nX && !pY && !nY && pZ && nZ)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true);
else {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, true);
if(pX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, true);
if(nX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, true);
if(pY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posY", iicon, tessellator, 0, true);
if(nY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iicon, tessellator, 0, true);
if(nZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, true);
if(pZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, true);
}
tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return TestConductor.renderID;
}
}

View File

@ -107,12 +107,12 @@ public class ObjUtil {
float z = (float) vec.zCoord;
TextureCoordinate t = f.textureCoordinates[i];
tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16), icon.getInterpolatedV(t.v * 16));
tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16D), icon.getInterpolatedV(t.v * 16D));
// The shoddy way of rendering a tringulated model with a quad
// tessellator
if(i % 3 == 2)
tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16), icon.getInterpolatedV(t.v * 16));
tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16D), icon.getInterpolatedV(t.v * 16D));
}
}
}

View File

@ -2,6 +2,8 @@ package com.hbm.render.world;
import org.lwjgl.opengl.GL11;
import com.hbm.extprop.HbmLivingProps;
import cpw.mods.fml.client.FMLClientHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient;
@ -20,8 +22,9 @@ public class RenderNTMSkybox extends IRenderHandler { //why an abstract class us
* If somebody does the exact same thing as we do we might be screwed due to increasingly long recursive loops but we can fix that too, no worries.
*/
private IRenderHandler parent;
private static final ResourceLocation digammaStar = new ResourceLocation("hbm:textures/misc/star_digamma.png");
private static final ResourceLocation bobmazonSat = new ResourceLocation("hbm:textures/misc/sat_bobmazon.png");
/*
* If the skybox was rendered successfully in the last tick (even from other mods' skyboxes chainloading this one) then we don't need to add it again
@ -35,14 +38,30 @@ public class RenderNTMSkybox extends IRenderHandler { //why an abstract class us
@Override
public void render(float partialTicks, WorldClient world, Minecraft mc) {
if(parent != null) {
parent.render(partialTicks, world, mc);
} else{
RenderGlobal rg = Minecraft.getMinecraft().renderGlobal;
world.provider.setSkyRenderer(null);
rg.renderSky(partialTicks);
world.provider.setSkyRenderer(this);
}
GL11.glPushMatrix();
GL11.glDepthMask(false);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_FOG);
OpenGlHelper.glBlendFunc(770, 1, 1, 0);
float brightness = (float) Math.sin(world.getCelestialAngle(partialTicks) * Math.PI);
brightness *= brightness;
GL11.glColor4f(brightness, brightness, brightness, 1.0F);
GL11.glPushMatrix();
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(140.0F, 1.0F, 0.0F, 0.0F);
@ -50,8 +69,9 @@ public class RenderNTMSkybox extends IRenderHandler { //why an abstract class us
FMLClientHandler.instance().getClient().renderEngine.bindTexture(digammaStar);
float var12 = 2.5F;
double dist = 150D;
float digamma = HbmLivingProps.getDigamma(Minecraft.getMinecraft().thePlayer);
float var12 = 1F * (1 + digamma * 0.25F);
double dist = 100D - digamma * 2.5;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
@ -60,24 +80,36 @@ public class RenderNTMSkybox extends IRenderHandler { //why an abstract class us
tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D);
tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D);
tessellator.draw();
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glRotatef(-40.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef((System.currentTimeMillis() % (360 * 1000) / 1000F), 0.0F, 1.0F, 0.0F);
GL11.glRotatef((System.currentTimeMillis() % (360 * 100) / 100F), 1.0F, 0.0F, 0.0F);
FMLClientHandler.instance().getClient().renderEngine.bindTexture(bobmazonSat);
var12 = 0.5F;
dist = 100D;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D);
tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D);
tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D);
tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D);
tessellator.draw();
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_FOG);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
didLastRender = true;
if(parent != null) {
parent.render(partialTicks, world, mc);
} else{
RenderGlobal rg = Minecraft.getMinecraft().renderGlobal;
world.provider.setSkyRenderer(null);
//rg.renderSky(partialTicks);
world.provider.setSkyRenderer(this);
}
}
}

View File

@ -174,19 +174,31 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
// first we make sure we're not subscribed to the network that we'll be supplying
if(te instanceof IEnergyConductor) {
IEnergyConductor con = (IEnergyConductor) te;
if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this))
con.getPowerNet().unsubscribe(this);
}
//then we add energy
if(mode == 1 || mode == 2) {
if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te;
long oldPower = this.power;
long transfer = this.power - con.transferPower(this.power);
this.power = oldPower - transfer;
}
}
//then we subscribe if possible
if(te instanceof IEnergyConductor) {
IEnergyConductor con = (IEnergyConductor) te;
if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this))
con.getPowerNet().subscribe(this);
}
if(mode == 1 || mode == 2) {
if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te;
this.power = con.transferPower(this.power);
}
}
}
//////////////////////////////////////////////////////////////////////
@ -274,7 +286,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
public long getMaxPower() {
if(!worldObj.isRemote && getRelevantMode() >= 2)
return 0;
return this.getPower();
return maxPower;
}
@ -307,10 +319,10 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
this.power += power;
if(this.power > this.maxPower) {
if(this.power > this.getMaxPower()) {
long overshoot = this.power - this.maxPower;
this.power = this.maxPower;
long overshoot = this.power - this.getMaxPower();
this.power = this.getMaxPower();
return overshoot;
}

View File

@ -13,7 +13,7 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
if(!worldObj.isRemote && canUpdate()) {
//we got here either because the net doesn't exist or because it's not valid, so that's safe to assume
this.setPowerNet(null);
@ -26,18 +26,18 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
IEnergyConductor conductor = (IEnergyConductor) te;
if(this.getPowerNet() == null) {
this.setPowerNet(conductor.getPowerNet());
if(this.getPowerNet() == null && conductor.getPowerNet() != null) {
conductor.getPowerNet().joinLink(this);
}
if(conductor.getPowerNet() != null) {
conductor.getPowerNet().join(this.getPowerNet());
if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) {
conductor.getPowerNet().joinNetworks(this.getPowerNet());
}
}
}
if(this.getPowerNet() == null) {
this.setPowerNet(new PowerNet().joinLink(this));
new PowerNet().joinLink(this);
}
}
}
@ -45,10 +45,11 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
@Override
public void invalidate() {
super.invalidate();
//TODO: find out why sometimes the power net doesn't dissolve when it definitely should
if(this.network != null) {
this.network.destroy();
if(!worldObj.isRemote) {
if(this.network != null) {
this.network.destroy();
}
}
}

View File

@ -0,0 +1,916 @@
# Blender v2.79 (sub 0) OBJ File: 'cable_neo.blend'
# www.blender.org
o negY
v 0.156250 -0.500000 -0.093750
v 0.156250 -0.500000 0.093750
v -0.156250 -0.500000 0.093750
v -0.156250 -0.500000 -0.093750
v 0.093750 -0.500000 0.156250
v -0.093750 -0.500000 0.156250
v -0.093750 -0.500000 -0.156250
v 0.093750 -0.500000 -0.156250
v -0.156250 -0.156250 0.093750
v -0.156250 -0.156250 -0.093750
v 0.156250 -0.156250 0.093750
v 0.156250 -0.156250 -0.093750
v -0.093750 -0.156250 -0.156250
v 0.093750 -0.156250 -0.156250
v 0.093750 -0.156250 0.156250
v -0.093750 -0.156250 0.156250
vt 0.250000 0.062500
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.250000 -0.000000
vt 0.062500 0.343750
vt 0.062500 -0.000000
vt 0.000000 0.343750
vt -0.000000 -0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt -0.000000 0.000000
vt 0.250000 0.343750
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt -0.000000 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt 0.000000 0.343750
vt -0.000000 0.000000
vt 0.312500 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.312500 0.312500
vt 0.250000 0.250000
vt 0.250000 0.343750
vt 0.250000 0.343750
vt 0.000000 0.343750
vt 0.000000 0.343750
vt 0.250000 0.343750
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.0000 -1.0000
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 -0.7071 0.0000 0.7071
s off
f 6/1/1 4/2/1 8/3/1
f 3/4/2 10/5/2 4/6/2
f 4/6/3 13/7/3 7/8/3
f 7/9/4 14/10/4 8/11/4
f 14/10/5 1/12/5 8/11/5
f 12/13/6 2/14/6 1/15/6
f 11/16/7 5/17/7 2/14/7
f 5/18/8 16/19/8 6/20/8
f 6/20/9 9/21/9 3/22/9
f 6/1/1 3/23/1 4/2/1
f 4/2/1 7/24/1 8/3/1
f 8/3/1 1/25/1 2/26/1
f 2/26/1 5/27/1 8/3/1
f 5/27/1 6/1/1 8/3/1
f 3/4/2 9/28/2 10/5/2
f 4/6/3 10/5/3 13/7/3
f 7/9/4 13/29/4 14/10/4
f 14/10/5 12/30/5 1/12/5
f 12/13/6 11/16/6 2/14/6
f 11/16/7 15/31/7 5/17/7
f 5/18/8 15/32/8 16/19/8
f 6/20/9 16/19/9 9/21/9
o negX
v -0.500000 -0.156250 -0.093750
v -0.500000 -0.156250 0.093750
v -0.500000 0.156250 0.093750
v -0.500000 0.156250 -0.093750
v -0.500000 -0.093750 0.156250
v -0.500000 0.093750 0.156250
v -0.500000 0.093750 -0.156250
v -0.500000 -0.093750 -0.156250
v -0.156250 0.156250 0.093750
v -0.156250 0.156250 -0.093750
v -0.156250 -0.156250 0.093750
v -0.156250 -0.156250 -0.093750
v -0.156250 0.093750 -0.156250
v -0.156250 -0.093750 -0.156250
v -0.156250 -0.093750 0.156250
v -0.156250 0.093750 0.156250
vt 0.250000 0.250000
vt 0.250000 0.062500
vt 0.562500 0.250000
vt 0.250000 -0.000000
vt 0.062500 0.343750
vt 0.062500 -0.000000
vt 0.000000 0.343750
vt -0.000000 -0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt 0.000000 0.343750
vt -0.000000 0.000000
vt 0.250000 0.343750
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt -0.000000 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt 0.000000 0.343750
vt -0.000000 0.000000
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.312500 0.312500
vt 0.250000 0.343750
vt 0.250000 0.343750
vt 0.000000 0.343750
vt 0.250000 0.343750
vn -1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn 0.0000 0.0000 -1.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.0000 1.0000
vn 0.0000 0.7071 0.7071
s off
f 21/33/10 22/34/10 24/35/10
f 19/36/11 26/37/11 20/38/11
f 20/38/12 29/39/12 23/40/12
f 23/41/13 30/42/13 24/43/13
f 24/43/14 28/44/14 17/45/14
f 28/46/15 18/47/15 17/48/15
f 27/49/16 21/50/16 18/47/16
f 21/51/17 32/52/17 22/53/17
f 22/53/18 25/54/18 19/55/18
f 22/34/10 19/56/10 24/35/10
f 19/56/10 20/57/10 24/35/10
f 20/57/10 23/58/10 24/35/10
f 24/35/10 17/59/10 18/60/10
f 18/60/10 21/33/10 24/35/10
f 19/36/11 25/61/11 26/37/11
f 20/38/12 26/37/12 29/39/12
f 23/41/13 29/62/13 30/42/13
f 24/43/14 30/42/14 28/44/14
f 28/46/15 27/49/15 18/47/15
f 27/49/16 31/63/16 21/50/16
f 21/51/17 31/64/17 32/52/17
f 22/53/18 32/52/18 25/54/18
o negZ
v 0.093750 0.156250 0.500000
v -0.093750 0.156250 0.500000
v -0.093750 -0.156250 0.500000
v 0.093750 -0.156250 0.500000
v -0.156250 0.093750 0.500000
v -0.156250 -0.093750 0.500000
v 0.156250 -0.093750 0.500000
v 0.156250 0.093750 0.500000
v -0.156250 0.093750 0.156250
v -0.156250 -0.093750 0.156250
v 0.156250 0.093750 0.156250
v 0.156250 -0.093750 0.156250
v -0.093750 -0.156250 0.156250
v 0.093750 -0.156250 0.156250
v 0.093750 0.156250 0.156250
v -0.093750 0.156250 0.156250
vt 0.312500 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 0.656250
vt 0.000000 1.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt -0.000000 1.000000
vt 0.062500 0.656250
vt 0.062500 0.656250
vt 0.250000 1.000000
vt 0.062500 1.000000
vt 0.000000 0.656250
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 1.000000
vt 0.062500 0.656250
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.250000
vt 0.250000 0.062500
vt 0.062500 0.656250
vt 0.000000 0.656250
vt 0.250000 0.656250
vt 0.000000 0.656250
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.7071 0.0000
vn 0.0000 1.0000 -0.0000
vn 0.7071 0.7071 0.0000
vn 1.0000 0.0000 0.0000
vn 0.7071 -0.7071 0.0000
vn 0.0000 -1.0000 0.0000
vn -0.7071 -0.7071 0.0000
s off
f 33/65/19 37/66/19 35/67/19
f 37/68/20 42/69/20 38/70/20
f 48/71/21 37/68/21 34/72/21
f 33/73/22 48/74/22 34/75/22
f 40/76/23 47/77/23 33/73/23
f 44/78/24 40/79/24 39/80/24
f 46/81/25 39/80/25 36/82/25
f 35/83/26 46/84/26 36/85/26
f 38/86/27 45/87/27 35/83/27
f 33/65/19 34/88/19 37/66/19
f 37/66/19 38/89/19 35/67/19
f 35/67/19 36/90/19 39/91/19
f 39/91/19 40/92/19 35/67/19
f 40/92/19 33/65/19 35/67/19
f 37/68/20 41/93/20 42/69/20
f 48/71/21 41/93/21 37/68/21
f 33/73/22 47/77/22 48/74/22
f 40/76/23 43/94/23 47/77/23
f 44/78/24 43/95/24 40/79/24
f 46/81/25 44/78/25 39/80/25
f 35/83/26 45/87/26 46/84/26
f 38/86/27 42/96/27 45/87/27
o posX
v 0.500000 -0.093750 -0.156250
v 0.500000 0.093750 -0.156250
v 0.500000 0.093750 0.156250
v 0.500000 -0.093750 0.156250
v 0.500000 0.156250 -0.093750
v 0.500000 0.156250 0.093750
v 0.500000 -0.156250 0.093750
v 0.500000 -0.156250 -0.093750
v 0.156250 0.156250 -0.093750
v 0.156250 0.156250 0.093750
v 0.156250 -0.156250 -0.093750
v 0.156250 -0.156250 0.093750
v 0.156250 0.093750 0.156250
v 0.156250 -0.093750 0.156250
v 0.156250 -0.093750 -0.156250
v 0.156250 0.093750 -0.156250
vt 0.250000 0.062500
vt 0.312500 0.000000
vt 0.500000 0.312500
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 1.000000
vt 0.062500 0.656250
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt -0.000000 1.000000
vt 0.062500 0.656250
vt 0.062500 0.656250
vt 0.250000 1.000000
vt 0.062500 1.000000
vt 0.000000 0.656250
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 0.656250
vt 0.062500 0.656250
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.250000
vt 0.000000 0.656250
vt 0.000000 0.656250
vt 0.250000 0.656250
vt 0.000000 1.000000
vn 1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn -0.0000 0.0000 -1.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.0000 1.0000
vn 0.0000 0.7071 0.7071
s off
f 56/97/28 49/98/28 51/99/28
f 53/100/29 58/101/29 54/102/29
f 50/103/30 57/104/30 53/100/30
f 49/105/31 64/106/31 50/107/31
f 56/108/32 63/109/32 49/105/32
f 60/110/33 56/111/33 55/112/33
f 62/113/34 55/112/34 52/114/34
f 51/115/35 62/116/35 52/117/35
f 51/115/36 58/118/36 61/119/36
f 49/98/28 50/120/28 51/99/28
f 50/120/28 53/121/28 51/99/28
f 53/121/28 54/122/28 51/99/28
f 51/99/28 52/123/28 55/124/28
f 55/124/28 56/97/28 51/99/28
f 53/100/29 57/104/29 58/101/29
f 50/103/30 64/125/30 57/104/30
f 49/105/31 63/109/31 64/106/31
f 56/108/32 59/126/32 63/109/32
f 60/110/33 59/127/33 56/111/33
f 62/113/34 60/110/34 55/112/34
f 51/115/35 61/119/35 62/116/35
f 51/115/36 54/128/36 58/118/36
o posY
v 0.093750 0.500000 -0.156250
v -0.093750 0.500000 -0.156250
v -0.093750 0.500000 0.156250
v 0.093750 0.500000 0.156250
v -0.156250 0.500000 -0.093750
v -0.156250 0.500000 0.093750
v 0.156250 0.500000 0.093750
v 0.156250 0.500000 -0.093750
v -0.156250 0.156250 -0.093750
v -0.156250 0.156250 0.093750
v 0.156250 0.156250 -0.093750
v 0.156250 0.156250 0.093750
v -0.093750 0.156250 0.156250
v 0.093750 0.156250 0.156250
v 0.093750 0.156250 -0.156250
v -0.093750 0.156250 -0.156250
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.312500 0.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 0.656250
vt 0.000000 1.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt -0.000000 1.000000
vt 0.062500 0.656250
vt 0.062500 0.656250
vt 0.250000 1.000000
vt 0.062500 1.000000
vt 0.000000 0.656250
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.250000 0.656250
vt 0.250000 1.000000
vt 0.000000 1.000000
vt 0.062500 0.656250
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.062500 0.656250
vt 0.000000 0.656250
vt 0.250000 0.656250
vt 0.000000 0.656250
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.0000 -1.0000
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 -0.7071 0.0000 0.7071
s off
f 67/129/37 71/130/37 65/131/37
f 69/132/38 74/133/38 70/134/38
f 80/135/39 69/132/39 66/136/39
f 65/137/40 80/138/40 66/139/40
f 72/140/41 79/141/41 65/137/41
f 76/142/42 72/143/42 71/144/42
f 78/145/43 71/144/43 68/146/43
f 67/147/44 78/148/44 68/149/44
f 70/150/45 77/151/45 67/147/45
f 65/131/37 66/152/37 67/129/37
f 66/152/37 69/153/37 67/129/37
f 69/153/37 70/154/37 67/129/37
f 67/129/37 68/155/37 71/130/37
f 71/130/37 72/156/37 65/131/37
f 69/132/38 73/157/38 74/133/38
f 80/135/39 73/157/39 69/132/39
f 65/137/40 79/141/40 80/138/40
f 72/140/41 75/158/41 79/141/41
f 76/142/42 75/159/42 72/143/42
f 78/145/43 76/142/43 71/144/43
f 67/147/44 77/151/44 78/148/44
f 70/150/45 74/160/45 77/151/45
o Core
v -0.156250 -0.156250 -0.093750
v -0.156250 -0.156250 0.093750
v -0.093750 -0.156250 0.156250
v 0.093750 -0.156250 0.156250
v 0.156250 -0.156250 0.093750
v 0.156250 -0.156250 -0.093750
v 0.093750 -0.156250 -0.156250
v -0.093750 -0.156250 -0.156250
v -0.156250 0.156250 -0.093750
v -0.156250 0.156250 0.093750
v -0.093750 0.156250 0.156250
v 0.093750 0.156250 0.156250
v 0.156250 0.156250 0.093750
v 0.156250 0.156250 -0.093750
v 0.093750 0.156250 -0.156250
v -0.093750 0.156250 -0.156250
v 0.156250 -0.093750 -0.156250
v 0.156250 0.093750 -0.156250
v 0.156250 0.093750 0.156250
v 0.156250 -0.093750 0.156250
v -0.156250 -0.093750 0.156250
v -0.156250 0.093750 0.156250
v -0.156250 0.093750 -0.156250
v -0.156250 -0.093750 -0.156250
vt 0.250000 0.062500
vt 0.250000 -0.000000
vt 0.312500 0.000000
vt 0.312500 0.312500
vt 0.250000 0.312500
vt 0.250000 0.250000
vt 0.312500 0.000000
vt 0.250000 0.062500
vt 0.250000 -0.000000
vt 0.562500 0.062500
vt 0.500000 0.000000
vt 0.562500 -0.000000
vt 0.562500 0.062500
vt 0.500000 0.000000
vt 0.562500 -0.000000
vt 0.562500 0.250000
vt 0.562500 0.312500
vt 0.500000 0.312500
vt 0.500000 0.312500
vt 0.562500 0.250000
vt 0.562500 0.312500
vt 0.312500 0.312500
vt 0.250000 0.312500
vt 0.250000 0.250000
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.500000 0.000000
vt 0.250000 0.250000
vt 0.312500 0.000000
vt 0.562500 0.062500
vt 0.250000 0.250000
vt 0.312500 0.000000
vt 0.562500 0.062500
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.562500 0.062500
vt 0.562500 0.250000
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.312500 0.000000
vt 0.562500 0.250000
vt 0.500000 0.312500
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.500000 0.312500
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.500000 0.000000
vn -0.5774 -0.5774 0.5774
vn 0.5774 -0.5774 0.5774
vn -0.5774 0.5774 0.5774
vn 0.5774 0.5774 0.5774
vn -0.5774 -0.5774 -0.5774
vn 0.5774 -0.5774 -0.5774
vn 0.5774 0.5774 -0.5774
vn -0.5774 0.5774 -0.5774
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 1.0000
s off
f 83/161/46 101/162/46 82/163/46
f 85/164/47 100/165/47 84/166/47
f 91/167/48 90/168/48 102/169/48
f 93/170/49 92/171/49 99/172/49
f 88/173/50 81/174/50 104/175/50
f 87/176/51 97/177/51 86/178/51
f 95/179/52 94/180/52 98/181/52
f 96/182/53 103/183/53 89/184/53
f 81/174/54 87/176/54 85/164/54
f 88/185/55 103/186/55 95/187/55
f 102/188/56 89/189/56 104/190/56
f 85/191/57 97/192/57 94/193/57
f 94/180/58 96/182/58 90/168/58
f 83/194/59 100/195/59 92/196/59
f 85/164/54 84/166/54 83/161/54
f 83/161/54 82/163/54 81/174/54
f 81/174/54 88/173/54 87/176/54
f 87/176/54 86/178/54 85/164/54
f 85/164/54 83/161/54 81/174/54
f 95/187/55 98/197/55 97/198/55
f 97/198/55 87/199/55 88/185/55
f 88/185/55 104/200/55 103/186/55
f 103/186/55 96/201/55 95/187/55
f 95/187/55 97/198/55 88/185/55
f 104/190/56 81/202/56 82/203/56
f 82/203/56 101/204/56 102/188/56
f 102/188/56 90/205/56 89/189/56
f 89/189/56 103/206/56 104/190/56
f 104/190/56 82/203/56 102/188/56
f 94/193/57 93/207/57 99/208/57
f 99/208/57 100/209/57 85/191/57
f 85/191/57 86/210/57 97/192/57
f 97/192/57 98/211/57 94/193/57
f 94/193/57 99/208/57 85/191/57
f 90/168/58 91/167/58 92/171/58
f 92/171/58 93/170/58 94/180/58
f 94/180/58 95/179/58 96/182/58
f 96/182/58 89/184/58 90/168/58
f 90/168/58 92/171/58 94/180/58
f 92/196/59 91/212/59 102/213/59
f 102/213/59 101/214/59 83/194/59
f 83/194/59 84/215/59 100/195/59
f 100/195/59 99/216/59 92/196/59
f 92/196/59 102/213/59 83/194/59
o posZ
v 0.156250 0.093750 -0.500000
v 0.156250 -0.093750 -0.500000
v -0.156250 -0.093750 -0.500000
v -0.156250 0.093750 -0.500000
v 0.093750 -0.156250 -0.500000
v -0.093750 -0.156250 -0.500000
v -0.093750 0.156250 -0.500000
v 0.093750 0.156250 -0.500000
v -0.156250 -0.093750 -0.156250
v -0.156250 0.093750 -0.156250
v 0.156250 -0.093750 -0.156250
v 0.156250 0.093750 -0.156250
v -0.093750 0.156250 -0.156250
v 0.093750 0.156250 -0.156250
v 0.093750 -0.156250 -0.156250
v -0.093750 -0.156250 -0.156250
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.250000 -0.000000
vt 0.062500 0.343750
vt 0.062500 -0.000000
vt 0.000000 0.343750
vt -0.000000 -0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt -0.000000 0.000000
vt 0.250000 0.343750
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt -0.000000 0.000000
vt 0.250000 0.000000
vt 0.062500 0.343750
vt 0.062500 0.000000
vt 0.000000 0.343750
vt -0.000000 0.000000
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.250000 0.343750
vt 0.250000 0.343750
vt 0.000000 0.343750
vt 0.000000 0.343750
vt 0.250000 0.343750
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.7071 0.0000
vn 0.0000 1.0000 0.0000
vn 0.7071 0.7071 -0.0000
vn 1.0000 0.0000 0.0000
vn 0.7071 -0.7071 -0.0000
vn 0.0000 -1.0000 0.0000
vn -0.7071 -0.7071 -0.0000
s off
f 112/217/60 106/218/60 110/219/60
f 107/220/61 114/221/61 108/222/61
f 108/222/62 117/223/62 111/224/62
f 111/225/63 118/226/63 112/227/63
f 118/226/64 105/228/64 112/227/64
f 116/229/65 106/230/65 105/231/65
f 115/232/66 109/233/66 106/230/66
f 109/234/67 120/235/67 110/236/67
f 110/236/68 113/237/68 107/238/68
f 110/219/60 107/239/60 112/217/60
f 107/239/60 108/240/60 112/217/60
f 108/240/60 111/241/60 112/217/60
f 112/217/60 105/242/60 106/218/60
f 106/218/60 109/243/60 110/219/60
f 107/220/61 113/244/61 114/221/61
f 108/222/62 114/221/62 117/223/62
f 111/225/63 117/245/63 118/226/63
f 118/226/64 116/246/64 105/228/64
f 116/229/65 115/232/65 106/230/65
f 115/232/66 119/247/66 109/233/66
f 109/234/67 119/248/67 120/235/67
f 110/236/68 120/235/68 113/237/68
o CZ
v -0.156250 0.093750 0.500000
v -0.093750 0.156250 -0.500000
v 0.093750 0.156250 -0.500000
v -0.156250 -0.093750 0.500000
v 0.156250 -0.093750 0.500000
v 0.093750 -0.156250 -0.500000
v -0.093750 -0.156250 -0.500000
v 0.156250 0.093750 0.500000
v -0.093750 -0.156250 0.500000
v 0.156250 0.093750 -0.500000
v 0.156250 -0.093750 -0.500000
v 0.093750 -0.156250 0.500000
v 0.093750 0.156250 0.500000
v -0.156250 -0.093750 -0.500000
v -0.156250 0.093750 -0.500000
v -0.093750 0.156250 0.500000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt -0.000000 0.000000
vt -0.000000 1.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 1.000000
vt -0.000000 0.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt -0.000000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt -0.000000 0.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.250000 0.062500
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vn 0.0000 1.0000 0.0000
vn 0.7071 0.7071 0.0000
vn 1.0000 0.0000 0.0000
vn 0.7071 -0.7071 -0.0000
vn 0.0000 -1.0000 -0.0000
vn -0.7071 -0.7071 -0.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.7071 0.0000
vn -0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
s off
f 136/249/69 123/250/69 122/251/69
f 128/252/70 123/250/70 133/253/70
f 125/254/71 130/255/71 128/256/71
f 126/257/72 125/254/72 132/258/72
f 132/259/73 127/260/73 126/261/73
f 129/262/74 134/263/74 127/260/74
f 121/264/75 134/265/75 124/266/75
f 135/267/76 136/268/76 122/269/76
f 136/270/77 124/271/77 132/272/77
f 126/273/78 134/274/78 122/275/78
f 136/249/69 133/253/69 123/250/69
f 128/252/70 130/276/70 123/250/70
f 125/254/71 131/277/71 130/255/71
f 126/257/72 131/277/72 125/254/72
f 132/259/73 129/262/73 127/260/73
f 129/262/74 124/278/74 134/263/74
f 121/264/75 135/267/75 134/265/75
f 135/267/76 121/264/76 136/268/76
f 132/272/77 125/279/77 128/280/77
f 128/280/77 133/281/77 136/270/77
f 136/270/77 121/282/77 124/271/77
f 124/271/77 129/283/77 132/272/77
f 132/272/77 128/280/77 136/270/77
f 122/275/78 123/284/78 130/285/78
f 130/285/78 131/286/78 126/273/78
f 126/273/78 127/287/78 134/274/78
f 134/274/78 135/288/78 122/275/78
f 122/275/78 130/285/78 126/273/78
o CX
v 0.500000 0.156250 -0.093750
v -0.500000 0.093750 -0.156250
v -0.500000 -0.093750 -0.156250
v 0.500000 0.156250 0.093750
v 0.500000 -0.156250 0.093750
v -0.500000 -0.093750 0.156250
v -0.500000 0.093750 0.156250
v 0.500000 -0.156250 -0.093750
v 0.500000 0.093750 0.156250
v -0.500000 -0.156250 -0.093750
v -0.500000 -0.156250 0.093750
v 0.500000 -0.093750 0.156250
v 0.500000 -0.093750 -0.156250
v -0.500000 0.156250 0.093750
v -0.500000 0.156250 -0.093750
v 0.500000 0.093750 -0.156250
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt -0.000000 0.000000
vt -0.000000 1.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 1.000000
vt -0.000000 0.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt -0.000000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt -0.000000 0.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.250000 0.062500
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vn 0.0000 0.0000 -1.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.0000 1.0000
vn -0.0000 0.7071 0.7071
vn -0.0000 1.0000 0.0000
vn -0.0000 0.7071 -0.7071
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 152/289/79 139/290/79 138/291/79
f 144/292/80 139/290/80 149/293/80
f 141/294/81 146/295/81 144/296/81
f 142/297/82 141/294/82 148/298/82
f 148/299/83 143/300/83 142/301/83
f 145/302/84 150/303/84 143/300/84
f 137/304/85 150/305/85 140/306/85
f 151/307/86 152/308/86 138/309/86
f 152/310/87 140/311/87 148/312/87
f 142/313/88 150/314/88 138/315/88
f 152/289/79 149/293/79 139/290/79
f 144/292/80 146/316/80 139/290/80
f 141/294/81 147/317/81 146/295/81
f 142/297/82 147/317/82 141/294/82
f 148/299/83 145/302/83 143/300/83
f 145/302/84 140/318/84 150/303/84
f 137/304/85 151/307/85 150/305/85
f 151/307/86 137/304/86 152/308/86
f 148/312/87 141/319/87 144/320/87
f 144/320/87 149/321/87 152/310/87
f 152/310/87 137/322/87 140/311/87
f 140/311/87 145/323/87 148/312/87
f 148/312/87 144/320/87 152/310/87
f 138/315/88 139/324/88 146/325/88
f 146/325/88 147/326/88 142/313/88
f 142/313/88 143/327/88 150/314/88
f 150/314/88 151/328/88 138/315/88
f 138/315/88 146/325/88 142/313/88
o CY
v -0.156250 0.500000 -0.093750
v -0.093750 -0.500000 -0.156250
v 0.093750 -0.500000 -0.156250
v -0.156250 0.500000 0.093750
v 0.156250 0.500000 0.093750
v 0.093750 -0.500000 0.156250
v -0.093750 -0.500000 0.156250
v 0.156250 0.500000 -0.093750
v -0.093750 0.500000 0.156250
v 0.156250 -0.500000 -0.093750
v 0.156250 -0.500000 0.093750
v 0.093750 0.500000 0.156250
v 0.093750 0.500000 -0.156250
v -0.156250 -0.500000 0.093750
v -0.156250 -0.500000 -0.093750
v -0.093750 0.500000 -0.156250
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt -0.000000 1.000000
vt 0.062500 1.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt -0.000000 0.000000
vt -0.000000 1.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt 0.250000 0.000000
vt 0.062500 1.000000
vt -0.000000 0.000000
vt 0.062500 1.000000
vt 0.250000 0.000000
vt 0.250000 1.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt -0.000000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vt 0.250000 0.062500
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt -0.000000 0.000000
vt 0.062500 0.000000
vt -0.000000 1.000000
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.062500
vt 0.500000 0.312500
vt 0.250000 0.250000
vt 0.250000 0.062500
vt 0.312500 0.000000
vt 0.500000 0.000000
vt 0.562500 0.250000
vt 0.312500 0.312500
vn 0.0000 0.0000 -1.0000
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 -0.7071 0.0000 0.7071
vn -1.0000 0.0000 0.0000
vn -0.7071 0.0000 -0.7071
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
s off
f 168/329/89 155/330/89 154/331/89
f 160/332/90 155/330/90 165/333/90
f 157/334/91 162/335/91 160/336/91
f 158/337/92 157/334/92 164/338/92
f 164/339/93 159/340/93 158/341/93
f 161/342/94 166/343/94 159/340/94
f 153/344/95 166/345/95 156/346/95
f 167/347/96 168/348/96 154/349/96
f 168/350/97 156/351/97 164/352/97
f 158/353/98 166/354/98 154/355/98
f 168/329/89 165/333/89 155/330/89
f 160/332/90 162/356/90 155/330/90
f 157/334/91 163/357/91 162/335/91
f 158/337/92 163/357/92 157/334/92
f 164/339/93 161/342/93 159/340/93
f 161/342/94 156/358/94 166/343/94
f 153/344/95 167/347/95 166/345/95
f 167/347/96 153/344/96 168/348/96
f 164/352/97 157/359/97 160/360/97
f 160/360/97 165/361/97 168/350/97
f 168/350/97 153/362/97 156/351/97
f 156/351/97 161/363/97 164/352/97
f 164/352/97 160/360/97 168/350/97
f 154/355/98 155/364/98 162/365/98
f 162/365/98 163/366/98 158/353/98
f 158/353/98 159/367/98 166/354/98
f 166/354/98 167/368/98 154/355/98
f 154/355/98 162/365/98 158/353/98

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B