Kill off wires for the last time, fix up jetpacks
This commit is contained in:
parent
fb350e43f0
commit
c3a985f273
39 changed files with 76 additions and 3455 deletions
common/mekanism
common
induction
resources/assets/mekanism
|
@ -158,6 +158,8 @@ public class CommonProxy
|
|||
Mekanism.machineBlock2ID = Mekanism.configuration.getBlock("MachineBlock2", 3008).getInt();
|
||||
|
||||
Mekanism.osmiumGenerationEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "OsmiumGenerationEnabled", true).getBoolean(true);
|
||||
Mekanism.copperGenerationEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "CopperGenerationEnabled", true).getBoolean(true);
|
||||
Mekanism.tinGenerationEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "TinGenerationEnabled", true).getBoolean(true);
|
||||
Mekanism.disableBCSteelCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DisableBCSteelCrafting", false).getBoolean(true);
|
||||
Mekanism.disableBCBronzeCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DisableBCBronzeCrafting", false).getBoolean(true);
|
||||
Mekanism.updateNotifications = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "UpdateNotifications", true).getBoolean(true);
|
||||
|
|
|
@ -214,7 +214,7 @@ public class Mekanism
|
|||
public static Item NetworkReader;
|
||||
public static Item WalkieTalkie;
|
||||
public static Item ItemProxy;
|
||||
public static Item Jetpack;
|
||||
public static ItemJetpack Jetpack;
|
||||
|
||||
//Blocks
|
||||
public static Block BasicBlock;
|
||||
|
@ -235,6 +235,8 @@ public class Mekanism
|
|||
|
||||
//General Configuration
|
||||
public static boolean osmiumGenerationEnabled = true;
|
||||
public static boolean copperGenerationEnabled = true;
|
||||
public static boolean tinGenerationEnabled = true;
|
||||
public static boolean disableBCBronzeCrafting = true;
|
||||
public static boolean disableBCSteelCrafting = true;
|
||||
public static boolean updateNotifications = true;
|
||||
|
@ -467,6 +469,9 @@ public class Mekanism
|
|||
"GCG", "tET", "GIG", Character.valueOf('G'), Block.glass, Character.valueOf('C'), "circuitBasic", Character.valueOf('t'), MekanismUtils.getEmptyGasTank(), Character.valueOf('E'), EnergyTablet.getUnchargedItem(),
|
||||
Character.valueOf('T'), new ItemStack(BasicBlock, 1, 9), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(Jetpack.getEmptyItem(), new Object[] {
|
||||
"SCS", "TGT", " T ", Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), "circuitBasic", Character.valueOf('T'), "ingotTin", Character.valueOf('G'), MekanismUtils.getEmptyGasTank()
|
||||
}));
|
||||
|
||||
for(RecipeType type : RecipeType.values())
|
||||
{
|
||||
|
@ -554,15 +559,15 @@ public class Mekanism
|
|||
{
|
||||
//Declarations
|
||||
configuration.load();
|
||||
ElectricBow = (ItemElectricBow) new ItemElectricBow(configuration.getItem("ElectricBow", 11200).getInt()).setUnlocalizedName("ElectricBow");
|
||||
ElectricBow = (ItemElectricBow)new ItemElectricBow(configuration.getItem("ElectricBow", 11200).getInt()).setUnlocalizedName("ElectricBow");
|
||||
//OPEN 11201-11203
|
||||
Dust = new ItemDust(configuration.getItem("Dust", 11204).getInt()-256);
|
||||
Ingot = new ItemIngot(configuration.getItem("Ingot", 11205).getInt()-256);
|
||||
EnergyTablet = (ItemEnergized) new ItemEnergized(configuration.getItem("EnergyTablet", 11206).getInt(), 1000000, 120).setUnlocalizedName("EnergyTablet");
|
||||
EnergyTablet = (ItemEnergized)new ItemEnergized(configuration.getItem("EnergyTablet", 11206).getInt(), 1000000, 120).setUnlocalizedName("EnergyTablet");
|
||||
SpeedUpgrade = new ItemMachineUpgrade(configuration.getItem("SpeedUpgrade", 11207).getInt()).setUnlocalizedName("SpeedUpgrade");
|
||||
EnergyUpgrade = new ItemMachineUpgrade(configuration.getItem("EnergyUpgrade", 11208).getInt()).setUnlocalizedName("EnergyUpgrade");
|
||||
Robit = (ItemRobit) new ItemRobit(configuration.getItem("Robit", 11209).getInt()).setUnlocalizedName("Robit");
|
||||
AtomicDisassembler = (ItemAtomicDisassembler) new ItemAtomicDisassembler(configuration.getItem("AtomicDisassembler", 11210).getInt()).setUnlocalizedName("AtomicDisassembler");
|
||||
Robit = (ItemRobit)new ItemRobit(configuration.getItem("Robit", 11209).getInt()).setUnlocalizedName("Robit");
|
||||
AtomicDisassembler = (ItemAtomicDisassembler)new ItemAtomicDisassembler(configuration.getItem("AtomicDisassembler", 11210).getInt()).setUnlocalizedName("AtomicDisassembler");
|
||||
AtomicCore = new ItemMekanism(configuration.getItem("AtomicCore", 11211).getInt()).setUnlocalizedName("AtomicCore");
|
||||
EnrichedAlloy = new ItemMekanism(configuration.getItem("EnrichedAlloy", 11212).getInt()).setUnlocalizedName("EnrichedAlloy");
|
||||
ItemProxy = new ItemProxy(configuration.getItem("ItemProxy", 11213).getInt()).setUnlocalizedName("ItemProxy");
|
||||
|
@ -575,7 +580,7 @@ public class Mekanism
|
|||
DirtyDust = new ItemDirtyDust(configuration.getItem("DirtyDust", 11220).getInt()-256);
|
||||
Configurator = new ItemConfigurator(configuration.getItem("Configurator", 11221).getInt()).setUnlocalizedName("Configurator");
|
||||
NetworkReader = new ItemNetworkReader(configuration.getItem("NetworkReader", 11222).getInt()).setUnlocalizedName("NetworkReader");
|
||||
Jetpack = new ItemJetpack(configuration.getItem("Jetpack", 11223).getInt()).setUnlocalizedName("Jetpack");
|
||||
Jetpack = (ItemJetpack)new ItemJetpack(configuration.getItem("Jetpack", 11223).getInt()).setUnlocalizedName("Jetpack");
|
||||
WalkieTalkie = new ItemWalkieTalkie(configuration.getItem("WalkieTalkie", 11224).getInt()).setUnlocalizedName("WalkieTalkie");
|
||||
configuration.save();
|
||||
|
||||
|
|
|
@ -18,28 +18,37 @@ public class OreHandler implements IWorldGenerator
|
|||
{
|
||||
if(!(chunkGenerator instanceof ChunkProviderHell) && !(chunkGenerator instanceof ChunkProviderEnd))
|
||||
{
|
||||
for(int i = 0; i < Mekanism.osmiumGenerationAmount; i++)
|
||||
if(Mekanism.osmiumGenerationEnabled)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 0, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
for(int i = 0; i < Mekanism.osmiumGenerationAmount; i++)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 0, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < Mekanism.copperGenerationAmount; i++)
|
||||
if(Mekanism.copperGenerationEnabled)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 1, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
for(int i = 0; i < Mekanism.copperGenerationAmount; i++)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 1, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < Mekanism.tinGenerationAmount; i++)
|
||||
if(Mekanism.tinGenerationEnabled)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 2, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
for(int i = 0; i < Mekanism.tinGenerationAmount; i++)
|
||||
{
|
||||
int randPosX = (chunkX*16) + random.nextInt(16);
|
||||
int randPosY = random.nextInt(60);
|
||||
int randPosZ = (chunkZ*16) + random.nextInt(16);
|
||||
new WorldGenMinable(Mekanism.oreBlockID, 2, 8, Block.stone.blockID).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import mekanism.client.render.ModelCustomArmor.ArmorModel;
|
|||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -31,6 +32,8 @@ public class ItemJetpack extends ItemArmor implements IGasItem
|
|||
{
|
||||
super(id, EnumHelper.addArmorMaterial("JETPACK", 0, new int[] {0, 0, 0, 0}, 0), 0, 1);
|
||||
setCreativeTab(Mekanism.tabMekanism);
|
||||
setMaxDamage(100);
|
||||
setNoRepair();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -224,6 +227,30 @@ public class ItemJetpack extends ItemArmor implements IGasItem
|
|||
}
|
||||
}
|
||||
|
||||
public ItemStack getEmptyItem()
|
||||
{
|
||||
ItemStack empty = new ItemStack(this);
|
||||
setGas(null, empty);
|
||||
empty.setItemDamage(100);
|
||||
return empty;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubItems(int i, CreativeTabs tabs, List list)
|
||||
{
|
||||
ItemStack empty = new ItemStack(this);
|
||||
setGas(null, empty);
|
||||
empty.setItemDamage(100);
|
||||
list.add(empty);
|
||||
|
||||
for(Gas type : GasRegistry.getRegisteredGasses())
|
||||
{
|
||||
ItemStack filled = new ItemStack(this);
|
||||
setGas(new GasStack(type, ((IGasItem)filled.getItem()).getMaxGas(filled)), filled);
|
||||
list.add(filled);
|
||||
}
|
||||
}
|
||||
|
||||
public static enum JetpackMode
|
||||
{
|
||||
NORMAL("tooltip.jetpack.regular", EnumColor.DARK_GREEN),
|
||||
|
|
|
@ -7,18 +7,14 @@ import mekanism.induction.client.render.RenderBattery;
|
|||
import mekanism.induction.client.render.RenderEMContractor;
|
||||
import mekanism.induction.client.render.RenderMultimeter;
|
||||
import mekanism.induction.client.render.RenderTesla;
|
||||
import mekanism.induction.client.render.RenderWire;
|
||||
import mekanism.induction.common.InductionCommonProxy;
|
||||
import mekanism.induction.common.tileentity.TileEntityBattery;
|
||||
import mekanism.induction.common.tileentity.TileEntityEMContractor;
|
||||
import mekanism.induction.common.tileentity.TileEntityMultimeter;
|
||||
import mekanism.induction.common.tileentity.TileEntityTesla;
|
||||
import mekanism.induction.common.tileentity.TileEntityWire;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
|
@ -44,7 +40,6 @@ public class InductionClientProxy extends InductionCommonProxy
|
|||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultimeter.class, new RenderMultimeter());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEMContractor.class, new RenderEMContractor());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBattery.class, new RenderBattery());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWire.class, new RenderWire());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,223 +0,0 @@
|
|||
package mekanism.induction.client.render;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.Map;
|
||||
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.induction.common.MekanismInduction;
|
||||
import mekanism.induction.common.wire.PartConductor;
|
||||
import mekanism.induction.common.wire.PartWire;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
import org.lwjgl.BufferUtils;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import codechicken.lib.colour.Colour;
|
||||
import codechicken.lib.colour.ColourRGBA;
|
||||
import codechicken.lib.lighting.LightModel;
|
||||
import codechicken.lib.render.CCModel;
|
||||
import codechicken.lib.render.CCRenderState;
|
||||
import codechicken.lib.render.ColourMultiplier;
|
||||
import codechicken.lib.render.IconTransformation;
|
||||
import codechicken.lib.render.TextureUtils;
|
||||
import codechicken.lib.vec.Matrix4;
|
||||
import codechicken.lib.vec.Rotation;
|
||||
import codechicken.lib.vec.Transformation;
|
||||
import codechicken.lib.vec.Translation;
|
||||
import codechicken.lib.vec.VariableTransformation;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author unpairedbracket
|
||||
*
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderPartWire
|
||||
{
|
||||
private static final ResourceLocation WIRE_SHINE = MekanismUtils.getResource(ResourceType.RENDER, "white.png");
|
||||
public static final Map<String, CCModel> models;
|
||||
public static final Map<String, CCModel> shinyModels;
|
||||
public static Icon wireIcon;
|
||||
public static Icon insulationIcon;
|
||||
public static Icon breakIcon;
|
||||
public static FloatBuffer location = BufferUtils.createFloatBuffer(4);
|
||||
public static FloatBuffer specular = BufferUtils.createFloatBuffer(4);
|
||||
public static FloatBuffer zero = BufferUtils.createFloatBuffer(4);
|
||||
public static FloatBuffer defaultAmbient = BufferUtils.createFloatBuffer(4);
|
||||
public static final RenderPartWire INSTANCE = new RenderPartWire();
|
||||
|
||||
static
|
||||
{
|
||||
models = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "wire.obj"), 7, new InvertX());
|
||||
|
||||
for(CCModel c : models.values())
|
||||
{
|
||||
c.apply(new Translation(.5, 0, .5));
|
||||
c.computeLighting(LightModel.standardLightModel);
|
||||
c.shrinkUVs(0.0005);
|
||||
}
|
||||
|
||||
shinyModels = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "wireShine.obj"), 7, new InvertX());
|
||||
|
||||
for(CCModel c : shinyModels.values())
|
||||
{
|
||||
c.apply(new Translation(.5, 0, .5));
|
||||
c.computeLighting(LightModel.standardLightModel);
|
||||
c.shrinkUVs(0.0005);
|
||||
}
|
||||
|
||||
loadBuffer(location, 0, 0, 0, 1);
|
||||
loadBuffer(specular, 1, 1, 1, 1);
|
||||
loadBuffer(zero, 0, 0, 0, 0);
|
||||
loadBuffer(defaultAmbient, 0.4F, 0.4F, 0.4F, 1);
|
||||
|
||||
GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, zero);
|
||||
|
||||
GL11.glLight(GL11.GL_LIGHT3, GL11.GL_SPECULAR, specular);
|
||||
|
||||
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_SPECULAR, specular);
|
||||
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT, zero);
|
||||
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, zero);
|
||||
GL11.glMaterialf(GL11.GL_FRONT, GL11.GL_SHININESS, 128F);
|
||||
}
|
||||
|
||||
public static void loadBuffer(FloatBuffer buffer, float... src)
|
||||
{
|
||||
buffer.clear();
|
||||
buffer.put(src);
|
||||
buffer.flip();
|
||||
}
|
||||
|
||||
public void renderShine(PartWire wire, double x, double y, double z, float f)
|
||||
{
|
||||
if(wire != null)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_LIGHT0);
|
||||
GL11.glDisable(GL11.GL_LIGHT1);
|
||||
GL11.glEnable(GL11.GL_LIGHT3);
|
||||
GL11.glLight(GL11.GL_LIGHT3, GL11.GL_POSITION, location);
|
||||
|
||||
GL11.glTranslatef((float)x, (float)y, (float)z);
|
||||
GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, zero);
|
||||
|
||||
CCRenderState.reset();
|
||||
CCRenderState.useNormals(true);
|
||||
CCRenderState.changeTexture(WIRE_SHINE);
|
||||
CCRenderState.startDrawing(7);
|
||||
renderSideShine(ForgeDirection.UNKNOWN, wire);
|
||||
|
||||
byte renderSides = wire.getAllCurrentConnections();
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(PartConductor.connectionMapContainsSide(renderSides, side))
|
||||
{
|
||||
renderSideShine(side, wire);
|
||||
}
|
||||
}
|
||||
|
||||
CCRenderState.draw();
|
||||
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_LIGHT0);
|
||||
GL11.glEnable(GL11.GL_LIGHT1);
|
||||
GL11.glDisable(GL11.GL_LIGHT3);
|
||||
|
||||
GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, defaultAmbient);
|
||||
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerIcons(IconRegister iconReg)
|
||||
{
|
||||
wireIcon = iconReg.registerIcon("mekanism:render/Wire");
|
||||
insulationIcon = iconReg.registerIcon("mekanism:render/" + "Insulation" + (MekanismInduction.LO_FI_INSULATION ? "Tiny" : ""));
|
||||
breakIcon = iconReg.registerIcon("mekanism:Wire");
|
||||
}
|
||||
|
||||
public void renderStatic(PartWire wire)
|
||||
{
|
||||
TextureUtils.bindAtlas(0);
|
||||
CCRenderState.reset();
|
||||
CCRenderState.useModelColours(true);
|
||||
CCRenderState.setBrightness(wire.world(), wire.x(), wire.y(), wire.z());
|
||||
renderSide(ForgeDirection.UNKNOWN, wire);
|
||||
byte renderSides = wire.getAllCurrentConnections();
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(PartConductor.connectionMapContainsSide(renderSides, side))
|
||||
{
|
||||
renderSide(side, wire);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void renderSide(ForgeDirection side, PartWire wire)
|
||||
{
|
||||
String name = side.name().toLowerCase();
|
||||
name = name.equals("unknown") ? "center" : name;
|
||||
Vector3 materialColour = wire.getMaterial().color;
|
||||
Colour colour = new ColourRGBA(materialColour.x, materialColour.y, materialColour.z, 1);
|
||||
renderPart(wireIcon, models.get(name), wire.x(), wire.y(), wire.z(), colour);
|
||||
|
||||
if(wire.isInsulated())
|
||||
{
|
||||
Vector3 vecColour = MekanismInduction.DYE_COLORS[wire.dyeID];
|
||||
Colour insulationColour = new ColourRGBA(vecColour.x, vecColour.y, vecColour.z, 1);
|
||||
renderPart(insulationIcon, models.get(name + "Insulation"), wire.x(), wire.y(), wire.z(), insulationColour);
|
||||
}
|
||||
}
|
||||
|
||||
public void renderSideShine(ForgeDirection side, PartWire wire)
|
||||
{
|
||||
String name = side.name().toLowerCase();
|
||||
name = name.equals("unknown") ? "center" : name;
|
||||
Vector3 materialColour = wire.getMaterial().color;
|
||||
renderPartShine(shinyModels.get(name));
|
||||
}
|
||||
|
||||
public void renderPart(Icon icon, CCModel cc, double x, double y, double z, Colour colour)
|
||||
{
|
||||
cc.render(0, cc.verts.length, Rotation.sideOrientation(0, Rotation.rotationTo(0, 2)).at(codechicken.lib.vec.Vector3.center).with(new Translation(x, y, z)), new IconTransformation(icon), new ColourMultiplier(colour));
|
||||
}
|
||||
|
||||
public void renderPartShine(CCModel cc)
|
||||
{
|
||||
cc.render(null, 0, 0);
|
||||
}
|
||||
|
||||
public static class InvertX extends VariableTransformation
|
||||
{
|
||||
public InvertX()
|
||||
{
|
||||
super(new Matrix4(1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transformation inverse()
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(codechicken.lib.vec.Vector3 vec)
|
||||
{
|
||||
vec.x = -vec.x;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,132 +0,0 @@
|
|||
package mekanism.induction.client.render;
|
||||
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.induction.client.model.ModelInsulation;
|
||||
import mekanism.induction.client.model.ModelWire;
|
||||
import mekanism.induction.common.MekanismInduction;
|
||||
import mekanism.induction.common.tileentity.TileEntityWire;
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderWire extends TileEntitySpecialRenderer
|
||||
{
|
||||
private static final ResourceLocation WIRE_TEXTURE = MekanismUtils.getResource(ResourceType.TEXTURE_BLOCKS, "render/WireSimple.png");
|
||||
private static final ResourceLocation INSULATION_TEXTURE = MekanismUtils.getResource(ResourceType.TEXTURE_BLOCKS, "render/InsulationSimple.png");
|
||||
|
||||
public static final ModelWire WIRE_MODEL = new ModelWire();
|
||||
public static final ModelInsulation INSULATION_MODEL = new ModelInsulation();
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
renderAModelAt((TileEntityWire)tileEntity, x, y, z, partialTick);
|
||||
}
|
||||
|
||||
public void renderAModelAt(TileEntityWire tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
if(tileEntity != null)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||
GL11.glScalef(1, -1, -1);
|
||||
|
||||
EnumWireMaterial material = tileEntity.getMaterial();
|
||||
|
||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(WIRE_TEXTURE);
|
||||
GL11.glColor4d(material.color.x, material.color.y, material.color.z, 1);
|
||||
|
||||
tileEntity.adjacentConnections = null;
|
||||
TileEntity[] adjacentConnections = tileEntity.getAdjacentConnections();
|
||||
|
||||
if(adjacentConnections != null)
|
||||
{
|
||||
if(adjacentConnections[0] != null)
|
||||
{
|
||||
WIRE_MODEL.renderBottom();
|
||||
}
|
||||
|
||||
if(adjacentConnections[1] != null)
|
||||
{
|
||||
WIRE_MODEL.renderTop();
|
||||
}
|
||||
|
||||
if(adjacentConnections[2] != null)
|
||||
{
|
||||
WIRE_MODEL.renderBack();
|
||||
}
|
||||
|
||||
if(adjacentConnections[3] != null)
|
||||
{
|
||||
WIRE_MODEL.renderFront();
|
||||
}
|
||||
|
||||
if(adjacentConnections[4] != null)
|
||||
{
|
||||
WIRE_MODEL.renderLeft();
|
||||
}
|
||||
|
||||
if(adjacentConnections[5] != null)
|
||||
{
|
||||
WIRE_MODEL.renderRight();
|
||||
}
|
||||
}
|
||||
|
||||
WIRE_MODEL.renderMiddle();
|
||||
|
||||
if(tileEntity.isInsulated)
|
||||
{
|
||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(INSULATION_TEXTURE);
|
||||
Vector3 insulationColor = MekanismInduction.DYE_COLORS[tileEntity.dyeID];
|
||||
GL11.glColor4d(insulationColor.x, insulationColor.y, insulationColor.z, 1);
|
||||
|
||||
if(adjacentConnections != null)
|
||||
{
|
||||
if(adjacentConnections[0] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderBottom(0.0625f);
|
||||
}
|
||||
|
||||
if(adjacentConnections[1] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderTop(0.0625f);
|
||||
}
|
||||
|
||||
if(adjacentConnections[2] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderBack(0.0625f);
|
||||
}
|
||||
|
||||
if(adjacentConnections[3] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderFront(0.0625f);
|
||||
}
|
||||
|
||||
if(adjacentConnections[4] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderLeft(0.0625f);
|
||||
}
|
||||
|
||||
if(adjacentConnections[5] != null)
|
||||
{
|
||||
INSULATION_MODEL.renderRight(0.0625f);
|
||||
}
|
||||
}
|
||||
|
||||
INSULATION_MODEL.renderMiddle(0.0625f);
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -26,8 +26,6 @@ public class InductionCommonProxy implements IGuiHandler
|
|||
{
|
||||
Mekanism.configuration.load();
|
||||
MekanismInduction.SOUND_FXS = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Tesla Sound FXs", MekanismInduction.SOUND_FXS).getBoolean(MekanismInduction.SOUND_FXS);
|
||||
MekanismInduction.LO_FI_INSULATION = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Use lo-fi insulation texture", MekanismInduction.LO_FI_INSULATION).getBoolean(MekanismInduction.LO_FI_INSULATION);
|
||||
MekanismInduction.SHINY_SILVER = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Shiny silver wires", MekanismInduction.SHINY_SILVER).getBoolean(MekanismInduction.SHINY_SILVER);
|
||||
MekanismInduction.MAX_CONTRACTOR_DISTANCE = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Max EM Contractor Path", MekanismInduction.MAX_CONTRACTOR_DISTANCE).getInt(MekanismInduction.MAX_CONTRACTOR_DISTANCE);
|
||||
|
||||
TileEntityEMContractor.ACCELERATION = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Contractor Item Acceleration", TileEntityEMContractor.ACCELERATION).getDouble(TileEntityEMContractor.ACCELERATION);
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
package mekanism.induction.common;
|
||||
|
||||
import ic2.api.item.Items;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import mekanism.common.IModule;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismRecipe;
|
||||
|
@ -14,31 +10,20 @@ import mekanism.induction.common.block.BlockBattery;
|
|||
import mekanism.induction.common.block.BlockEMContractor;
|
||||
import mekanism.induction.common.block.BlockMultimeter;
|
||||
import mekanism.induction.common.block.BlockTesla;
|
||||
import mekanism.induction.common.block.BlockWire;
|
||||
import mekanism.induction.common.item.ItemBlockContractor;
|
||||
import mekanism.induction.common.item.ItemBlockMultimeter;
|
||||
import mekanism.induction.common.item.ItemBlockWire;
|
||||
import mekanism.induction.common.tileentity.TileEntityBattery;
|
||||
import mekanism.induction.common.tileentity.TileEntityEMContractor;
|
||||
import mekanism.induction.common.tileentity.TileEntityMultimeter;
|
||||
import mekanism.induction.common.tileentity.TileEntityTesla;
|
||||
import mekanism.induction.common.tileentity.TileEntityWire;
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
import universalelectricity.compatibility.Compatibility;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
import cpw.mods.fml.common.ObfuscationReflectionHelper;
|
||||
import cpw.mods.fml.common.SidedProxy;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
|
@ -64,8 +49,6 @@ public class MekanismInduction implements IModule
|
|||
* Settings
|
||||
*/
|
||||
public static boolean SOUND_FXS = true;
|
||||
public static boolean LO_FI_INSULATION = false;
|
||||
public static boolean SHINY_SILVER = true;
|
||||
|
||||
/** Block ID by Jyzarc */
|
||||
private static final int BLOCK_ID_PREFIX = 3200;
|
||||
|
@ -86,16 +69,11 @@ public class MekanismInduction implements IModule
|
|||
return NEXT_ITEM_ID++;
|
||||
}
|
||||
|
||||
/** With Forge Multipart; Use EnumWireMaterial reference. **/
|
||||
private static Item itemPartWire;
|
||||
|
||||
//Blocks
|
||||
public static Block Tesla;
|
||||
public static Block Multimeter;
|
||||
public static Block ElectromagneticContractor;
|
||||
public static Block Battery;
|
||||
/** Without Forge Multipart **/
|
||||
private static Block blockWire;
|
||||
|
||||
public static final Vector3[] DYE_COLORS = new Vector3[] { new Vector3(), new Vector3(1, 0, 0), new Vector3(0, 0.608, 0.232), new Vector3(0.588, 0.294, 0), new Vector3(0, 0, 1), new Vector3(0.5, 0, 05), new Vector3(0, 1, 1), new Vector3(0.8, 0.8, 0.8), new Vector3(0.3, 0.3, 0.3), new Vector3(1, 0.412, 0.706), new Vector3(0.616, 1, 0), new Vector3(1, 1, 0), new Vector3(0.46f, 0.932, 1), new Vector3(0.5, 0.2, 0.5), new Vector3(0.7, 0.5, 0.1), new Vector3(1, 1, 1) };
|
||||
|
||||
|
@ -105,71 +83,24 @@ public class MekanismInduction implements IModule
|
|||
NetworkRegistry.instance().registerGuiHandler(this, MekanismInduction.proxy);
|
||||
MinecraftForge.EVENT_BUS.register(new MultimeterEventHandler());
|
||||
|
||||
//Register Items
|
||||
if(Loader.isModLoaded("ForgeMultipart"))
|
||||
{
|
||||
try {
|
||||
itemPartWire = ((Item)Class.forName("mekanism.induction.common.wire.ItemPartWire").getDeclaredConstructor(Integer.TYPE).newInstance(getNextItemID())).setUnlocalizedName("Wire");
|
||||
Mekanism.logger.fine("Mekanism Induction multipart loaded.");
|
||||
} catch(Exception e) {
|
||||
Mekanism.logger.severe("Failed to load multipart wire.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else {
|
||||
Mekanism.logger.fine("Mekanism Induction Multipart disabled due to Forge Multipart not found.");
|
||||
}
|
||||
|
||||
//Blocks
|
||||
Tesla = new BlockTesla(Mekanism.configuration.getBlock("Tesla", getNextBlockID()).getInt()).setUnlocalizedName("Tesla");
|
||||
Multimeter = new BlockMultimeter(Mekanism.configuration.getBlock("Multimeter", getNextBlockID()).getInt()).setUnlocalizedName("Multimeter");
|
||||
ElectromagneticContractor = new BlockEMContractor(Mekanism.configuration.getBlock("ElectromagneticContractor", getNextBlockID()).getInt()).setUnlocalizedName("ElectromagneticContractor");
|
||||
Battery = new BlockBattery(Mekanism.configuration.getBlock("Battery", getNextBlockID()).getInt()).setUnlocalizedName("Battery");
|
||||
|
||||
if(itemPartWire == null)
|
||||
{
|
||||
blockWire = new BlockWire(getNextBlockID()).setUnlocalizedName("Wire");
|
||||
}
|
||||
|
||||
Mekanism.configuration.save();
|
||||
|
||||
GameRegistry.registerBlock(Tesla, "Tesla");
|
||||
GameRegistry.registerBlock(Multimeter, ItemBlockMultimeter.class, "Multimeter");
|
||||
GameRegistry.registerBlock(ElectromagneticContractor, ItemBlockContractor.class, "ElectromagneticContractor");
|
||||
GameRegistry.registerBlock(Battery, "Battery");
|
||||
|
||||
//Tiles
|
||||
if(blockWire != null)
|
||||
{
|
||||
GameRegistry.registerBlock(blockWire, ItemBlockWire.class, blockWire.getUnlocalizedName());
|
||||
}
|
||||
|
||||
//Tiles
|
||||
GameRegistry.registerTileEntity(TileEntityTesla.class, "Tesla");
|
||||
GameRegistry.registerTileEntity(TileEntityMultimeter.class, "Multimeter");
|
||||
GameRegistry.registerTileEntity(TileEntityEMContractor.class, "ElectromagneticContractor");
|
||||
GameRegistry.registerTileEntity(TileEntityBattery.class, "Battery");
|
||||
|
||||
if(blockWire != null)
|
||||
{
|
||||
GameRegistry.registerTileEntity(TileEntityWire.class, blockWire.getUnlocalizedName());
|
||||
}
|
||||
|
||||
MekanismInduction.proxy.registerRenderers();
|
||||
|
||||
if(itemPartWire != null)
|
||||
{
|
||||
for(EnumWireMaterial material : EnumWireMaterial.values())
|
||||
{
|
||||
material.setWire(itemPartWire);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(EnumWireMaterial material : EnumWireMaterial.values())
|
||||
{
|
||||
material.setWire(blockWire);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -177,28 +108,11 @@ public class MekanismInduction implements IModule
|
|||
{
|
||||
//Add this module to the core list
|
||||
Mekanism.modulesLoaded.add(this);
|
||||
|
||||
if(itemPartWire != null)
|
||||
{
|
||||
try {
|
||||
Class.forName("mekanism.induction.common.MultipartMI").newInstance();
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
Mekanism.logger.severe("Failed to initiate Mekanism Induction multipart module.");
|
||||
}
|
||||
}
|
||||
|
||||
Compatibility.initiate();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void postInit(FMLPostInitializationEvent evt)
|
||||
{
|
||||
/**
|
||||
* Recipes
|
||||
*/
|
||||
final ItemStack defaultWire = EnumWireMaterial.IRON.getWire();
|
||||
|
||||
/** Tesla - by Jyzarc */
|
||||
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(Tesla), new Object[] { "WEW", " C ", " I ", 'W', Mekanism.EnrichedAlloy, 'E', Item.eyeOfEnder, 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'I', new ItemStack(Mekanism.BasicBlock, 1, 8) }));
|
||||
|
||||
|
@ -210,21 +124,6 @@ public class MekanismInduction implements IModule
|
|||
|
||||
/** EM Contractor */
|
||||
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(ElectromagneticContractor), new Object[] { " I ", "GCG", "WWW", 'W', "ingotSteel", 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'G', "ingotOsmium", 'I', "ingotSteel" }));
|
||||
|
||||
/** Wires **/
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(EnumWireMaterial.COPPER.getWire(3), "MMM", 'M', "ingotCopper"));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(EnumWireMaterial.TIN.getWire(3), "MMM", 'M', "ingotTin"));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(EnumWireMaterial.IRON.getWire(3), "MMM", 'M', Item.ingotIron));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(EnumWireMaterial.ALUMINUM.getWire(3), "MMM", 'M', "ingotAluminum"));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(EnumWireMaterial.SILVER.getWire(), "MMM", 'M', "ingotSilver"));
|
||||
|
||||
/** Wire Compatiblity **/
|
||||
if(Loader.isModLoaded("IC2"))
|
||||
{
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(EnumWireMaterial.COPPER.getWire(), Items.getItem("copperCableItem")));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(EnumWireMaterial.TIN.getWire(), Items.getItem("tinCableItem")));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(EnumWireMaterial.IRON.getWire(), Items.getItem("ironCableItem")));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
package mekanism.induction.common;
|
||||
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import mekanism.induction.common.wire.PartWire;
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.MultiPartRegistry.IPartFactory;
|
||||
import codechicken.multipart.MultipartGenerator;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
|
||||
public class MultipartMI implements IPartFactory
|
||||
{
|
||||
public MultipartMI()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TMultiPart createPart(String name, boolean client)
|
||||
{
|
||||
if(name == "resonant_induction_wire")
|
||||
{
|
||||
return new PartWire(EnumWireMaterial.COPPER.ordinal());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void init()
|
||||
{
|
||||
MultiPartRegistry.registerParts(this, new String[] {"resonant_induction_wire"});
|
||||
|
||||
MultipartGenerator.registerPassThroughInterface("universalelectricity.core.block.IConductor");
|
||||
MultipartGenerator.registerPassThroughInterface("buildcraft.api.power.IPowerReceptor");
|
||||
MultipartGenerator.registerPassThroughInterface("cofh.api.energy.IEnergyHandler");
|
||||
MultipartGenerator.registerPassThroughInterface("mekanism.induction.common.wire.IInsulatedMaterial");
|
||||
MultipartGenerator.registerPassThroughInterface("mekanism.induction.common.wire.IBlockableConnection");
|
||||
MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "mekanism.induction.common.wire.TEnergySink");
|
||||
}
|
||||
}
|
|
@ -1,134 +0,0 @@
|
|||
package mekanism.induction.common.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.induction.common.MekanismInduction;
|
||||
import mekanism.induction.common.tileentity.TileEntityWire;
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockColored;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import universalelectricity.core.block.IConductor;
|
||||
import universalelectricity.prefab.block.BlockConductor;
|
||||
|
||||
/**
|
||||
* A copper wire block that can change its collision bounds based on the connection.
|
||||
*
|
||||
* @author Calclavia, Aidancbrady
|
||||
*/
|
||||
public class BlockWire extends BlockConductor
|
||||
{
|
||||
public BlockWire(int id)
|
||||
{
|
||||
super(Mekanism.configuration.getBlock("wire", id).getInt(id), Material.cloth);
|
||||
|
||||
setStepSound(soundClothFootstep);
|
||||
setResistance(0.2F);
|
||||
setHardness(0.1f);
|
||||
setBlockBounds(0.3f, 0.3f, 0.3f, 0.7f, 0.7f, 0.7f);
|
||||
setCreativeTab(CreativeTabs.tabRedstone);
|
||||
Block.setBurnProperties(blockID, 30, 60);
|
||||
setCreativeTab(Mekanism.tabMekanism);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, int blockID)
|
||||
{
|
||||
super.onNeighborBlockChange(world, x, y, z, blockID);
|
||||
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity instanceof IConductor)
|
||||
{
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9)
|
||||
{
|
||||
TileEntityWire tileEntity = (TileEntityWire)world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(entityPlayer.getCurrentEquippedItem() != null)
|
||||
{
|
||||
if(entityPlayer.getCurrentEquippedItem().itemID == Item.dyePowder.itemID)
|
||||
{
|
||||
tileEntity.setDye(entityPlayer.getCurrentEquippedItem().getItemDamage());
|
||||
return true;
|
||||
}
|
||||
else if(entityPlayer.getCurrentEquippedItem().itemID == Block.cloth.blockID && !tileEntity.isInsulated)
|
||||
{
|
||||
tileEntity.setInsulated();
|
||||
tileEntity.setDye(BlockColored.getDyeFromBlock(entityPlayer.getCurrentEquippedItem().getItemDamage()));
|
||||
entityPlayer.inventory.decrStackSize(entityPlayer.inventory.currentItem, 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1)
|
||||
{
|
||||
return new TileEntityWire();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped(int i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubBlocks(int i, CreativeTabs par2CreativeTabs, List list)
|
||||
{
|
||||
for(EnumWireMaterial material : EnumWireMaterial.values())
|
||||
{
|
||||
list.add(new ItemStack(i, 1, material.ordinal()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, int par5, int par6)
|
||||
{
|
||||
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tile instanceof TileEntityWire)
|
||||
{
|
||||
TileEntityWire tileEntity = (TileEntityWire) tile;
|
||||
|
||||
if(tileEntity.isInsulated)
|
||||
{
|
||||
dropBlockAsItem_do(world, x, y, z, new ItemStack(Block.cloth, 1, BlockColored.getBlockFromDye(tileEntity.dyeID)));
|
||||
}
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, par5, par6);
|
||||
}
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
package mekanism.induction.common.item;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemBlockWire extends ItemBlock
|
||||
{
|
||||
private Icon[] icons = new Icon[EnumWireMaterial.values().length];
|
||||
|
||||
public ItemBlockWire(int id)
|
||||
{
|
||||
super(id);
|
||||
setHasSubtypes(true);
|
||||
setMaxDamage(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata(int damage)
|
||||
{
|
||||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack itemStack)
|
||||
{
|
||||
return getUnlocalizedName() + "." + EnumWireMaterial.values()[itemStack.getItemDamage()].getName().toLowerCase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4)
|
||||
{
|
||||
list.add("Resistance: " + ElectricityDisplay.getDisplay(EnumWireMaterial.values()[itemstack.getItemDamage()].resistance, ElectricUnit.RESISTANCE));
|
||||
list.add("Max Amperage: " + ElectricityDisplay.getDisplay(EnumWireMaterial.values()[itemstack.getItemDamage()].maxAmps, ElectricUnit.AMPERE));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister register)
|
||||
{
|
||||
for(EnumWireMaterial material : EnumWireMaterial.values())
|
||||
{
|
||||
icons[material.ordinal()] = register.registerIcon("mekanism:" + material.getName() + "Wire");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Icon getIconFromDamage(int meta)
|
||||
{
|
||||
return icons[meta];
|
||||
}
|
||||
}
|
|
@ -1,208 +0,0 @@
|
|||
package mekanism.induction.common.tileentity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.common.ITileNetwork;
|
||||
import mekanism.induction.common.wire.EnumWireMaterial;
|
||||
import mekanism.induction.common.wire.IInsulatedMaterial;
|
||||
import mekanism.induction.common.wire.IInsulation;
|
||||
import mekanism.induction.common.wire.IWireMaterial;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import universalelectricity.compatibility.Compatibility;
|
||||
import universalelectricity.compatibility.TileEntityUniversalConductor;
|
||||
import universalelectricity.core.block.INetworkProvider;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.core.vector.VectorHelper;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class TileEntityWire extends TileEntityUniversalConductor implements ITileNetwork, IInsulatedMaterial
|
||||
{
|
||||
public static final int DEFAULT_COLOR = 16;
|
||||
public int dyeID = DEFAULT_COLOR;
|
||||
public boolean isInsulated = false;
|
||||
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection direction)
|
||||
{
|
||||
if(worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector3 connectPos = new Vector3(this).modifyPositionFromSide(direction);
|
||||
TileEntity connectTile = connectPos.getTileEntity(worldObj);
|
||||
|
||||
if(connectTile instanceof IWireMaterial)
|
||||
{
|
||||
IWireMaterial wireTile = (IWireMaterial) connectTile;
|
||||
|
||||
if(wireTile.getMaterial() != getMaterial())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(isInsulated() && connectTile instanceof IInsulation)
|
||||
{
|
||||
IInsulation insulatedTile = (IInsulation) connectTile;
|
||||
|
||||
if((insulatedTile.isInsulated() && insulatedTile.getInsulationColor() != getInsulationColor() && getInsulationColor() != DEFAULT_COLOR && insulatedTile.getInsulationColor() != DEFAULT_COLOR))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refresh()
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
adjacentConnections = null;
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(canConnect(side.getOpposite()))
|
||||
{
|
||||
TileEntity tileEntity = VectorHelper.getConnectorFromSide(worldObj, new Vector3(this), side);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
if(tileEntity instanceof INetworkProvider)
|
||||
{
|
||||
getNetwork().merge(((INetworkProvider)tileEntity).getNetwork());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getNetwork().refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getResistance()
|
||||
{
|
||||
return getMaterial().resistance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCurrentCapacity()
|
||||
{
|
||||
return getMaterial().maxAmps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumWireMaterial getMaterial()
|
||||
{
|
||||
return EnumWireMaterial.values()[getTypeID()];
|
||||
}
|
||||
|
||||
public int getTypeID()
|
||||
{
|
||||
return worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dyeID
|
||||
*/
|
||||
public void setDye(int dye)
|
||||
{
|
||||
dyeID = dye;
|
||||
refresh();
|
||||
|
||||
worldObj.markBlockForRenderUpdate(xCoord, yCoord, zCoord);
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType().blockID);
|
||||
}
|
||||
|
||||
public void setInsulated()
|
||||
{
|
||||
isInsulated = true;
|
||||
refresh();
|
||||
|
||||
worldObj.markBlockForRenderUpdate(xCoord, yCoord, zCoord);
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType().blockID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList getNetworkedData(ArrayList data)
|
||||
{
|
||||
data.add(isInsulated);
|
||||
data.add(dyeID);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||
{
|
||||
try {
|
||||
isInsulated = dataStream.readBoolean();
|
||||
dyeID = dataStream.readInt();
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt)
|
||||
{
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
dyeID = nbt.getInteger("dyeID");
|
||||
isInsulated = nbt.getBoolean("isInsulated");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt)
|
||||
{
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setInteger("dyeID", dyeID);
|
||||
nbt.setBoolean("isInsulated", isInsulated);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doWork(PowerHandler workProvider)
|
||||
{
|
||||
buildcraftBuffer = Compatibility.BC3_RATIO * 25 * getMaterial().maxAmps;
|
||||
powerHandler.configure(0, buildcraftBuffer, buildcraftBuffer, buildcraftBuffer * 2);
|
||||
|
||||
super.doWork(workProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInsulated()
|
||||
{
|
||||
return isInsulated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInsulated(boolean insulated)
|
||||
{
|
||||
if(insulated && !isInsulated())
|
||||
{
|
||||
setInsulated();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInsulationColor()
|
||||
{
|
||||
return dyeID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInsulationColor(int dyeID)
|
||||
{
|
||||
setDye(dyeID);
|
||||
}
|
||||
}
|
|
@ -1,77 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
|
||||
/**
|
||||
* An enumerator for different wire materials. The metadata of the wire determines the type of the
|
||||
* wire.
|
||||
*
|
||||
* @author Calclavia
|
||||
*
|
||||
*/
|
||||
|
||||
public enum EnumWireMaterial
|
||||
{
|
||||
COPPER("Copper", 12.5F, 3, 2, new Vector3(184, 115, 51)),
|
||||
TIN("Tin", 13, 2, 0.5F, new Vector3(132, 132, 130)),
|
||||
IRON("Iron", 0.1F, 2, 4, new Vector3(97, 102, 105)),
|
||||
ALUMINUM("Aluminum", 0.025F, 6, 0.15F, new Vector3(215, 205, 181)),
|
||||
SILVER("Silver", 0.005F, 1, 2, new Vector3(192, 192, 192));
|
||||
|
||||
public final float resistance;
|
||||
public final float damage;
|
||||
public final float maxAmps;
|
||||
public final Vector3 color;
|
||||
private ItemStack wire;
|
||||
private final String name;
|
||||
|
||||
private EnumWireMaterial(String s, float resist, float electrocution, float max, Vector3 vec)
|
||||
{
|
||||
name = s;
|
||||
resistance = resist;
|
||||
damage = electrocution;
|
||||
maxAmps = max;
|
||||
color = vec.scale(1D / 255D);
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public ItemStack getWire()
|
||||
{
|
||||
return getWire(1);
|
||||
}
|
||||
|
||||
public ItemStack getWire(int amount)
|
||||
{
|
||||
ItemStack returnStack = wire.copy();
|
||||
returnStack.stackSize = amount;
|
||||
|
||||
return returnStack;
|
||||
}
|
||||
|
||||
public void setWire(ItemStack item)
|
||||
{
|
||||
if(wire == null)
|
||||
{
|
||||
wire = item;
|
||||
OreDictionary.registerOre(getName().toLowerCase() + "Wire", wire);
|
||||
}
|
||||
}
|
||||
|
||||
public void setWire(Item item)
|
||||
{
|
||||
setWire(new ItemStack(item, 1, ordinal()));
|
||||
}
|
||||
|
||||
public void setWire(Block block)
|
||||
{
|
||||
setWire(new ItemStack(block, 1, ordinal()));
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
public interface IBlockableConnection
|
||||
{
|
||||
public boolean isBlockedOnSide(ForgeDirection side);
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
public interface IInsulatedMaterial extends IInsulation, IWireMaterial
|
||||
{
|
||||
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
public interface IInsulation
|
||||
{
|
||||
public boolean isInsulated();
|
||||
|
||||
public void setInsulated(boolean insulated);
|
||||
|
||||
public int getInsulationColor();
|
||||
|
||||
public void setInsulationColor(int dye);
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
public interface IWireMaterial
|
||||
{
|
||||
public EnumWireMaterial getMaterial();
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.induction.client.render.RenderPartWire;
|
||||
import mekanism.induction.common.MekanismInduction;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.JItemMultiPart;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemPartWire extends JItemMultiPart
|
||||
{
|
||||
private Icon[] icons = new Icon[EnumWireMaterial.values().length];
|
||||
|
||||
public ItemPartWire(int id)
|
||||
{
|
||||
super(Mekanism.configuration.get(Configuration.CATEGORY_ITEM, "wireMultipart", id).getInt(id));
|
||||
setCreativeTab(Mekanism.tabMekanism);
|
||||
setHasSubtypes(true);
|
||||
setMaxDamage(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TMultiPart newPart(ItemStack arg0, EntityPlayer arg1, World arg2, BlockCoord arg3, int arg4, Vector3 arg5)
|
||||
{
|
||||
return new PartWire(getDamage(arg0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata(int damage)
|
||||
{
|
||||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack itemStack)
|
||||
{
|
||||
return "tile.Wire." + EnumWireMaterial.values()[itemStack.getItemDamage()].getName() + "Wire";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4)
|
||||
{
|
||||
list.add("Resistance: " + ElectricityDisplay.getDisplay(EnumWireMaterial.values()[itemstack.getItemDamage()].resistance, ElectricUnit.RESISTANCE));
|
||||
list.add("Max Amperage: " + ElectricityDisplay.getDisplay(EnumWireMaterial.values()[itemstack.getItemDamage()].maxAmps, ElectricUnit.AMPERE));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister register)
|
||||
{
|
||||
for(EnumWireMaterial material : EnumWireMaterial.values())
|
||||
{
|
||||
icons[material.ordinal()] = register.registerIcon("mekanism:" + material.getName() + "Wire");
|
||||
}
|
||||
|
||||
RenderPartWire.registerIcons(register);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Icon getIconFromDamage(int meta)
|
||||
{
|
||||
return icons[meta];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo)
|
||||
{
|
||||
for(EnumWireMaterial mat : EnumWireMaterial.values())
|
||||
{
|
||||
listToAddTo.add(new ItemStack(itemID, 1, mat.ordinal()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getSpriteNumber()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.handler.MultipartProxy;
|
||||
|
||||
public abstract class PartAdvanced extends TMultiPart
|
||||
{
|
||||
protected long ticks = 0;
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
if(ticks == 0)
|
||||
{
|
||||
initiate();
|
||||
}
|
||||
|
||||
if(ticks >= Long.MAX_VALUE)
|
||||
{
|
||||
ticks = 1;
|
||||
}
|
||||
|
||||
ticks++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdded()
|
||||
{
|
||||
world().notifyBlocksOfNeighborChange(x(), y(), z(), ((Block)MultipartProxy.block()).blockID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on the TileEntity's first tick.
|
||||
*/
|
||||
public void initiate() {}
|
||||
}
|
|
@ -1,253 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import universalelectricity.core.block.IConductor;
|
||||
import universalelectricity.core.block.IConnector;
|
||||
import universalelectricity.core.block.INetworkProvider;
|
||||
import universalelectricity.core.electricity.NetworkLoader;
|
||||
import universalelectricity.core.grid.IElectricityNetwork;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.core.vector.VectorHelper;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
||||
public abstract class PartConductor extends PartAdvanced implements IConductor
|
||||
{
|
||||
private IElectricityNetwork network;
|
||||
|
||||
public TileEntity[] adjacentConnections = null;
|
||||
public byte currentWireConnections = 0x00;
|
||||
public byte currentAcceptorConnections = 0x00;
|
||||
|
||||
public byte getAllCurrentConnections()
|
||||
{
|
||||
return (byte) (currentWireConnections | currentAcceptorConnections);
|
||||
}
|
||||
|
||||
public static boolean connectionMapContainsSide(byte connections, ForgeDirection side)
|
||||
{
|
||||
byte tester = (byte) (1 << side.ordinal());
|
||||
return ((connections & tester) > 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(TileMultipart t)
|
||||
{
|
||||
if(tile() != null && network != null)
|
||||
{
|
||||
getNetwork().getConductors().remove(tile());
|
||||
super.bind(t);
|
||||
getNetwork().getConductors().add((IConductor) tile());
|
||||
}
|
||||
else {
|
||||
super.bind(t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preRemove()
|
||||
{
|
||||
if(!world().isRemote && tile() instanceof IConductor)
|
||||
{
|
||||
getNetwork().split((IConductor) tile());
|
||||
}
|
||||
|
||||
super.preRemove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doesTick()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IElectricityNetwork getNetwork()
|
||||
{
|
||||
if(network == null && tile() instanceof IConductor)
|
||||
{
|
||||
setNetwork(NetworkLoader.getNewNetwork((IConductor)tile()));
|
||||
}
|
||||
|
||||
return network;
|
||||
}
|
||||
|
||||
public boolean canConnectBothSides(TileEntity tile, ForgeDirection side)
|
||||
{
|
||||
boolean notPrevented = !isConnectionPrevented(tile, side);
|
||||
|
||||
if(tile instanceof IConnector)
|
||||
{
|
||||
notPrevented &= ((IConnector)tile).canConnect(side.getOpposite());
|
||||
}
|
||||
|
||||
return notPrevented;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNetwork(IElectricityNetwork net)
|
||||
{
|
||||
network = net;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override if there are ways of preventing a connection
|
||||
*
|
||||
* @param tile The TileEntity on the given side
|
||||
* @param side The side we're checking
|
||||
* @return Whether we're preventing connections on given side or to given tileEntity
|
||||
*/
|
||||
public boolean isConnectionPrevented(TileEntity tile, ForgeDirection side)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public byte getPossibleWireConnections()
|
||||
{
|
||||
byte connections = 0x00;
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
TileEntity tileEntity = VectorHelper.getTileEntityFromSide(world(), new Vector3(tile()), side);
|
||||
|
||||
if(tileEntity instanceof INetworkProvider && canConnectBothSides(tileEntity, side))
|
||||
{
|
||||
connections |= 1 << side.ordinal();
|
||||
}
|
||||
}
|
||||
|
||||
return connections;
|
||||
}
|
||||
|
||||
public byte getPossibleAcceptorConnections()
|
||||
{
|
||||
byte connections = 0x00;
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
TileEntity tileEntity = VectorHelper.getTileEntityFromSide(world(), new Vector3(tile()), side);
|
||||
|
||||
if(isValidAcceptor(tileEntity) && canConnectBothSides(tileEntity, side))
|
||||
{
|
||||
connections |= 1 << side.ordinal();
|
||||
}
|
||||
}
|
||||
|
||||
return connections;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override if there are different kinds of acceptor possible
|
||||
*/
|
||||
public boolean isValidAcceptor(TileEntity tile)
|
||||
{
|
||||
return tile instanceof IConnector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refresh()
|
||||
{
|
||||
if(!world().isRemote)
|
||||
{
|
||||
adjacentConnections = null;
|
||||
|
||||
byte possibleWireConnections = getPossibleWireConnections();
|
||||
byte possibleAcceptorConnections = getPossibleAcceptorConnections();
|
||||
|
||||
if(possibleWireConnections != currentWireConnections)
|
||||
{
|
||||
byte or = (byte) (possibleWireConnections | currentWireConnections);
|
||||
|
||||
if(or != possibleWireConnections) // Connections have been removed
|
||||
{
|
||||
getNetwork().split((IConductor) tile());
|
||||
setNetwork(null);
|
||||
}
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(connectionMapContainsSide(possibleWireConnections, side))
|
||||
{
|
||||
TileEntity tileEntity = VectorHelper.getConnectorFromSide(world(), new Vector3(tile()), side);
|
||||
|
||||
if(tileEntity instanceof INetworkProvider)
|
||||
{
|
||||
getNetwork().merge(((INetworkProvider) tileEntity).getNetwork());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentWireConnections = possibleWireConnections;
|
||||
}
|
||||
|
||||
currentAcceptorConnections = possibleAcceptorConnections;
|
||||
|
||||
getNetwork().refresh();
|
||||
sendDescUpdate();
|
||||
}
|
||||
|
||||
tile().markRender();
|
||||
}
|
||||
|
||||
/**
|
||||
* Should include connections that are in the current connection maps even if those connections
|
||||
* aren't allowed any more. This is so that networks split correctly.
|
||||
*/
|
||||
@Override
|
||||
public TileEntity[] getAdjacentConnections()
|
||||
{
|
||||
if(adjacentConnections == null)
|
||||
{
|
||||
adjacentConnections = new TileEntity[6];
|
||||
|
||||
for(byte i = 0; i < 6; i++)
|
||||
{
|
||||
ForgeDirection side = ForgeDirection.getOrientation(i);
|
||||
TileEntity tileEntity = VectorHelper.getTileEntityFromSide(world(), new Vector3(tile()), side);
|
||||
|
||||
if(isCurrentlyConnected(side))
|
||||
{
|
||||
adjacentConnections[i] = tileEntity;
|
||||
}
|
||||
}
|
||||
}
|
||||
return adjacentConnections;
|
||||
}
|
||||
|
||||
public boolean isCurrentlyConnected(ForgeDirection side)
|
||||
{
|
||||
return connectionMapContainsSide(getAllCurrentConnections(), side);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shouldn't need to be overridden. Override connectionPrevented instead
|
||||
*/
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection direction)
|
||||
{
|
||||
Vector3 connectPos = new Vector3(tile()).modifyPositionFromSide(direction);
|
||||
TileEntity connectTile = connectPos.getTileEntity(world());
|
||||
return !isConnectionPrevented(connectTile, direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdded()
|
||||
{
|
||||
super.onAdded();
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkLoad()
|
||||
{
|
||||
super.onChunkLoad();
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborChanged()
|
||||
{
|
||||
super.onNeighborChanged();
|
||||
refresh();
|
||||
}
|
||||
}
|
|
@ -1,264 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import ic2.api.energy.event.EnergyTileLoadEvent;
|
||||
import ic2.api.energy.event.EnergyTileUnloadEvent;
|
||||
import ic2.api.energy.tile.IEnergySink;
|
||||
import ic2.api.energy.tile.IEnergyTile;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import universalelectricity.compatibility.Compatibility;
|
||||
import universalelectricity.core.electricity.ElectricityPack;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.core.vector.VectorHelper;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
import buildcraft.api.power.PowerHandler.PowerReceiver;
|
||||
import buildcraft.api.power.PowerHandler.Type;
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
|
||||
public abstract class PartUniversalConductor extends PartConductor implements IEnergySink, IPowerReceptor, IEnergyHandler
|
||||
{
|
||||
protected boolean isAddedToEnergyNet;
|
||||
public PowerHandler powerHandler;
|
||||
public float buildcraftBuffer = Compatibility.BC3_RATIO * 50;
|
||||
|
||||
public PartUniversalConductor()
|
||||
{
|
||||
powerHandler = new PowerHandler(this, Type.PIPE);
|
||||
powerHandler.configure(0, buildcraftBuffer, buildcraftBuffer, buildcraftBuffer * 2);
|
||||
powerHandler.configurePowerPerdition(0, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidAcceptor(TileEntity tile)
|
||||
{
|
||||
if(tile instanceof IEnergyTile)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if(tile instanceof IPowerReceptor)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if(tile instanceof IEnergyHandler)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.isValidAcceptor(tile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnectionPrevented(TileEntity tile, ForgeDirection side)
|
||||
{
|
||||
if(tile instanceof IEnergyHandler)
|
||||
{
|
||||
return !((IEnergyHandler)tile).canInterface(side);
|
||||
}
|
||||
|
||||
return super.isConnectionPrevented(tile, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWorldJoin()
|
||||
{
|
||||
super.onWorldJoin();
|
||||
|
||||
if(!world().isRemote)
|
||||
{
|
||||
if(!isAddedToEnergyNet)
|
||||
{
|
||||
initIC();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdded()
|
||||
{
|
||||
super.onAdded();
|
||||
|
||||
if(!world().isRemote)
|
||||
{
|
||||
if(!isAddedToEnergyNet)
|
||||
{
|
||||
initIC();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkLoad()
|
||||
{
|
||||
super.onChunkLoad();
|
||||
|
||||
if(!world().isRemote)
|
||||
{
|
||||
if(!isAddedToEnergyNet)
|
||||
{
|
||||
initIC();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWorldSeparate()
|
||||
{
|
||||
unloadTileIC2();
|
||||
super.onWorldSeparate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload()
|
||||
{
|
||||
unloadTileIC2();
|
||||
super.onChunkUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemoved() {}
|
||||
|
||||
@Override
|
||||
public void preRemove()
|
||||
{
|
||||
unloadTileIC2();
|
||||
super.preRemove();
|
||||
}
|
||||
|
||||
protected void initIC()
|
||||
{
|
||||
if(Compatibility.isIndustrialCraft2Loaded())
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent((IEnergyTile) tile()));
|
||||
}
|
||||
|
||||
isAddedToEnergyNet = true;
|
||||
}
|
||||
|
||||
private void unloadTileIC2()
|
||||
{
|
||||
if(isAddedToEnergyNet && world() != null)
|
||||
{
|
||||
if(Compatibility.isIndustrialCraft2Loaded())
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile) tile()));
|
||||
}
|
||||
|
||||
isAddedToEnergyNet = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double demandedEnergyUnits()
|
||||
{
|
||||
if(getNetwork() == null)
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
return getNetwork().getRequest(tile()).getWatts() * Compatibility.TO_IC2_RATIO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double injectEnergyUnits(ForgeDirection directionFrom, double amount)
|
||||
{
|
||||
TileEntity tile = VectorHelper.getTileEntityFromSide(world(), new Vector3(tile()), directionFrom);
|
||||
ElectricityPack pack = ElectricityPack.getFromWatts((float) (amount * Compatibility.IC2_RATIO), 120);
|
||||
return getNetwork().produce(pack, tile(), tile) * Compatibility.TO_IC2_RATIO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxSafeInput()
|
||||
{
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* BuildCraft functions
|
||||
*/
|
||||
@Override
|
||||
public PowerReceiver getPowerReceiver(ForgeDirection side)
|
||||
{
|
||||
return powerHandler.getPowerReceiver();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doWork(PowerHandler workProvider)
|
||||
{
|
||||
Set<TileEntity> ignoreTiles = new HashSet<TileEntity>();
|
||||
ignoreTiles.add(tile());
|
||||
|
||||
for(ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
TileEntity tile = new Vector3(tile()).modifyPositionFromSide(direction).getTileEntity(world());
|
||||
ignoreTiles.add(tile);
|
||||
}
|
||||
|
||||
ElectricityPack pack = ElectricityPack.getFromWatts(workProvider.useEnergy(0, getNetwork().getRequest(tile()).getWatts() * Compatibility.TO_BC_RATIO, true) * Compatibility.BC3_RATIO, 120);
|
||||
getNetwork().produce(pack, ignoreTiles.toArray(new TileEntity[0]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld()
|
||||
{
|
||||
return world();
|
||||
}
|
||||
|
||||
/**
|
||||
* Thermal Expansion Functions
|
||||
*/
|
||||
@Override
|
||||
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate)
|
||||
{
|
||||
ElectricityPack pack = ElectricityPack.getFromWatts(maxReceive * Compatibility.TE_RATIO, 1);
|
||||
float request = getMaxEnergyStored(from);
|
||||
|
||||
if(!simulate)
|
||||
{
|
||||
if(request > 0)
|
||||
{
|
||||
return (int) (maxReceive - (getNetwork().produce(pack, new Vector3(tile()).modifyPositionFromSide(from).getTileEntity(world())) * Compatibility.TO_TE_RATIO));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int)Math.min(maxReceive, request * Compatibility.TO_TE_RATIO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInterface(ForgeDirection from)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ForgeDirection from)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ForgeDirection from)
|
||||
{
|
||||
return (int)Math.round(getNetwork().getRequest(new Vector3(tile()).modifyPositionFromSide(from).getTileEntity(world())).getWatts() * Compatibility.TO_TE_RATIO);
|
||||
}
|
||||
}
|
|
@ -1,481 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import mekanism.induction.client.render.RenderPartWire;
|
||||
import mekanism.induction.common.MekanismInduction;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockColored;
|
||||
import net.minecraft.client.particle.EffectRenderer;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemShears;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import universalelectricity.compatibility.Compatibility;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
import codechicken.lib.data.MCDataInput;
|
||||
import codechicken.lib.data.MCDataOutput;
|
||||
import codechicken.lib.lighting.LazyLightMatrix;
|
||||
import codechicken.lib.raytracer.IndexedCuboid6;
|
||||
import codechicken.lib.render.CCRenderState;
|
||||
import codechicken.lib.render.IconTransformation;
|
||||
import codechicken.lib.render.RenderUtils;
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Translation;
|
||||
import codechicken.microblock.IHollowConnect;
|
||||
import codechicken.multipart.IconHitEffects;
|
||||
import codechicken.multipart.JIconHitEffects;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.NormalOcclusionTest;
|
||||
import codechicken.multipart.PartMap;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TSlottedPart;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class PartWire extends PartUniversalConductor implements TSlottedPart, JNormalOcclusion, IHollowConnect, JIconHitEffects, IInsulatedMaterial, IBlockableConnection
|
||||
{
|
||||
public static final int DEFAULT_COLOR = 16;
|
||||
public int dyeID = DEFAULT_COLOR;
|
||||
public boolean isInsulated = false;
|
||||
|
||||
public static IndexedCuboid6[] sides = new IndexedCuboid6[7];
|
||||
public static IndexedCuboid6[] insulatedSides = new IndexedCuboid6[7];
|
||||
public EnumWireMaterial material = EnumWireMaterial.COPPER;
|
||||
|
||||
/** Client Side Connection Check */
|
||||
private ForgeDirection testingSide;
|
||||
|
||||
static
|
||||
{
|
||||
sides[0] = new IndexedCuboid6(0, new Cuboid6(0.36, 0.000, 0.36, 0.64, 0.36, 0.64));
|
||||
sides[1] = new IndexedCuboid6(1, new Cuboid6(0.36, 0.64, 0.36, 0.64, 1.000, 0.64));
|
||||
sides[2] = new IndexedCuboid6(2, new Cuboid6(0.36, 0.36, 0.000, 0.64, 0.64, 0.36));
|
||||
sides[3] = new IndexedCuboid6(3, new Cuboid6(0.36, 0.36, 0.64, 0.64, 0.64, 1.000));
|
||||
sides[4] = new IndexedCuboid6(4, new Cuboid6(0.000, 0.36, 0.36, 0.36, 0.64, 0.64));
|
||||
sides[5] = new IndexedCuboid6(5, new Cuboid6(0.64, 0.36, 0.36, 1.000, 0.64, 0.64));
|
||||
sides[6] = new IndexedCuboid6(6, new Cuboid6(0.36, 0.36, 0.36, 0.64, 0.64, 0.64));
|
||||
insulatedSides[0] = new IndexedCuboid6(0, new Cuboid6(0.3, 0.0, 0.3, 0.7, 0.3, 0.7));
|
||||
insulatedSides[1] = new IndexedCuboid6(1, new Cuboid6(0.3, 0.7, 0.3, 0.7, 1.0, 0.7));
|
||||
insulatedSides[2] = new IndexedCuboid6(2, new Cuboid6(0.3, 0.3, 0.0, 0.7, 0.7, 0.3));
|
||||
insulatedSides[3] = new IndexedCuboid6(3, new Cuboid6(0.3, 0.3, 0.7, 0.7, 0.7, 1.0));
|
||||
insulatedSides[4] = new IndexedCuboid6(4, new Cuboid6(0.0, 0.3, 0.3, 0.3, 0.7, 0.7));
|
||||
insulatedSides[5] = new IndexedCuboid6(5, new Cuboid6(0.7, 0.3, 0.3, 1.0, 0.7, 0.7));
|
||||
insulatedSides[6] = new IndexedCuboid6(6, new Cuboid6(0.3, 0.3, 0.3, 0.7, 0.7, 0.7));
|
||||
}
|
||||
|
||||
public PartWire(int typeID)
|
||||
{
|
||||
this(EnumWireMaterial.values()[typeID]);
|
||||
}
|
||||
|
||||
public PartWire(EnumWireMaterial type)
|
||||
{
|
||||
super();
|
||||
material = type;
|
||||
}
|
||||
|
||||
public PartWire()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection direction)
|
||||
{
|
||||
if(world().isBlockIndirectlyGettingPowered(x(), y(), z()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.canConnect(direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnectionPrevented(TileEntity tile, ForgeDirection side)
|
||||
{
|
||||
if(tile instanceof IWireMaterial)
|
||||
{
|
||||
IWireMaterial wireTile = (IWireMaterial)tile;
|
||||
|
||||
if(wireTile.getMaterial() != getMaterial())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if(isInsulated() && tile instanceof IInsulation)
|
||||
{
|
||||
IInsulation insulatedTile = (IInsulation)tile;
|
||||
|
||||
if((insulatedTile.isInsulated() && insulatedTile.getInsulationColor() != getInsulationColor() && getInsulationColor() != DEFAULT_COLOR && insulatedTile.getInsulationColor() != DEFAULT_COLOR))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return (isBlockedOnSide(side) || tile instanceof IBlockableConnection && ((IBlockableConnection)tile).isBlockedOnSide(side.getOpposite()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte getPossibleWireConnections()
|
||||
{
|
||||
if(world().isBlockIndirectlyGettingPowered(x(), y(), z()))
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
return super.getPossibleWireConnections();
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte getPossibleAcceptorConnections()
|
||||
{
|
||||
if(world().isBlockIndirectlyGettingPowered(x(), y(), z()))
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
return super.getPossibleAcceptorConnections();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getResistance()
|
||||
{
|
||||
return getMaterial().resistance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCurrentCapacity()
|
||||
{
|
||||
return getMaterial().maxAmps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumWireMaterial getMaterial()
|
||||
{
|
||||
return material;
|
||||
}
|
||||
|
||||
public int getTypeID()
|
||||
{
|
||||
return material.ordinal();
|
||||
}
|
||||
|
||||
public void setDye(int dye)
|
||||
{
|
||||
dyeID = dye;
|
||||
refresh();
|
||||
world().markBlockForUpdate(x(), y(), z());
|
||||
tile().notifyPartChange(this);
|
||||
}
|
||||
|
||||
public void setMaterialFromID(int id)
|
||||
{
|
||||
material = EnumWireMaterial.values()[id];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doWork(PowerHandler workProvider)
|
||||
{
|
||||
buildcraftBuffer = Compatibility.BC3_RATIO * 25 * Math.min(getMaterial().maxAmps, 100);
|
||||
powerHandler.configure(0, buildcraftBuffer, buildcraftBuffer, buildcraftBuffer * 2);
|
||||
|
||||
super.doWork(workProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return "resonant_induction_wire";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean occlusionTest(TMultiPart other)
|
||||
{
|
||||
return NormalOcclusionTest.apply(this, other);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<IndexedCuboid6> getSubParts()
|
||||
{
|
||||
Set<IndexedCuboid6> subParts = new HashSet<IndexedCuboid6>();
|
||||
IndexedCuboid6[] currentSides = isInsulated() ? insulatedSides : sides;
|
||||
|
||||
if(tile() != null)
|
||||
{
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
int ord = side.ordinal();
|
||||
if(connectionMapContainsSide(getAllCurrentConnections(), side) || side == testingSide)
|
||||
subParts.add(currentSides[ord]);
|
||||
}
|
||||
}
|
||||
|
||||
subParts.add(currentSides[6]);
|
||||
return subParts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Cuboid6> getCollisionBoxes()
|
||||
{
|
||||
Set<Cuboid6> collisionBoxes = new HashSet<Cuboid6>();
|
||||
collisionBoxes.addAll((Collection<? extends Cuboid6>)getSubParts());
|
||||
|
||||
return collisionBoxes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<ItemStack> getDrops()
|
||||
{
|
||||
List<ItemStack> drops = new ArrayList<ItemStack>();
|
||||
drops.add(pickItem(null));
|
||||
|
||||
if(isInsulated)
|
||||
{
|
||||
drops.add(new ItemStack(Block.cloth, 1, BlockColored.getBlockFromDye(dyeID)));
|
||||
}
|
||||
|
||||
return drops;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getStrength(MovingObjectPosition hit, EntityPlayer player)
|
||||
{
|
||||
return 10F;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void renderStatic(codechicken.lib.vec.Vector3 pos, LazyLightMatrix olm, int pass)
|
||||
{
|
||||
if(pass == 0)
|
||||
{
|
||||
RenderPartWire.INSTANCE.renderStatic(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void renderDynamic(codechicken.lib.vec.Vector3 pos, float frame, int pass)
|
||||
{
|
||||
if(MekanismInduction.SHINY_SILVER && getMaterial() == EnumWireMaterial.SILVER)
|
||||
{
|
||||
RenderPartWire.INSTANCE.renderShine(this, pos.x, pos.y, pos.z, frame);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawBreaking(RenderBlocks renderBlocks)
|
||||
{
|
||||
CCRenderState.reset();
|
||||
RenderUtils.renderBlock(sides[6], 0, new Translation(x(), y(), z()), new IconTransformation(renderBlocks.overrideBlockTexture), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readDesc(MCDataInput packet)
|
||||
{
|
||||
setMaterialFromID(packet.readInt());
|
||||
dyeID = packet.readInt();
|
||||
isInsulated = packet.readBoolean();
|
||||
currentWireConnections = packet.readByte();
|
||||
currentAcceptorConnections = packet.readByte();
|
||||
|
||||
if(tile() != null)
|
||||
{
|
||||
tile().markRender();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDesc(MCDataOutput packet)
|
||||
{
|
||||
packet.writeInt(getTypeID());
|
||||
packet.writeInt(dyeID);
|
||||
packet.writeBoolean(isInsulated);
|
||||
packet.writeByte(currentWireConnections);
|
||||
packet.writeByte(currentAcceptorConnections);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(NBTTagCompound nbt)
|
||||
{
|
||||
super.save(nbt);
|
||||
nbt.setInteger("typeID", getTypeID());
|
||||
nbt.setInteger("dyeID", dyeID);
|
||||
nbt.setBoolean("isInsulated", isInsulated);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(NBTTagCompound nbt)
|
||||
{
|
||||
super.load(nbt);
|
||||
setMaterialFromID(nbt.getInteger("typeID"));
|
||||
dyeID = nbt.getInteger("dyeID");
|
||||
isInsulated = nbt.getBoolean("isInsulated");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack pickItem(MovingObjectPosition hit)
|
||||
{
|
||||
return EnumWireMaterial.values()[getTypeID()].getWire();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean activate(EntityPlayer player, MovingObjectPosition part, ItemStack item)
|
||||
{
|
||||
if(item != null)
|
||||
{
|
||||
if(item.itemID == Item.dyePowder.itemID && isInsulated())
|
||||
{
|
||||
setDye(item.getItemDamage());
|
||||
return true;
|
||||
}
|
||||
else if(item.itemID == Block.cloth.blockID)
|
||||
{
|
||||
if(isInsulated() && !world().isRemote)
|
||||
{
|
||||
tile().dropItems(Collections.singletonList(new ItemStack(Block.cloth, 1, BlockColored.getBlockFromDye(dyeID))));
|
||||
}
|
||||
|
||||
setInsulated(BlockColored.getDyeFromBlock(item.getItemDamage()));
|
||||
player.inventory.decrStackSize(player.inventory.currentItem, 1);
|
||||
return true;
|
||||
}
|
||||
else if((item.itemID == Item.shears.itemID || item.getItem() instanceof ItemShears) && isInsulated())
|
||||
{
|
||||
if(!world().isRemote)
|
||||
{
|
||||
tile().dropItems(Collections.singletonList(new ItemStack(Block.cloth, 1, BlockColored.getBlockFromDye(dyeID))));
|
||||
}
|
||||
|
||||
setInsulated(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Cuboid6> getOcclusionBoxes()
|
||||
{
|
||||
return getCollisionBoxes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotMask()
|
||||
{
|
||||
return PartMap.CENTER.mask;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHollowSize()
|
||||
{
|
||||
return isInsulated ? 8 : 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInsulated()
|
||||
{
|
||||
return isInsulated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInsulationColor()
|
||||
{
|
||||
return isInsulated ? dyeID : -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInsulationColor(int dye)
|
||||
{
|
||||
dyeID = dye;
|
||||
|
||||
refresh();
|
||||
world().markBlockForUpdate(x(), y(), z());
|
||||
tile().notifyPartChange(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInsulated(boolean insulated)
|
||||
{
|
||||
isInsulated = insulated;
|
||||
dyeID = DEFAULT_COLOR;
|
||||
|
||||
refresh();
|
||||
world().markBlockForUpdate(x(), y(), z());
|
||||
tile().notifyPartChange(this);
|
||||
}
|
||||
|
||||
public void setInsulated(int dyeColour)
|
||||
{
|
||||
isInsulated = true;
|
||||
dyeID = dyeColour;
|
||||
|
||||
refresh();
|
||||
world().markBlockForUpdate(x(), y(), z());
|
||||
tile().notifyPartChange(this);
|
||||
}
|
||||
|
||||
public void setInsulated()
|
||||
{
|
||||
setInsulated(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cuboid6 getBounds()
|
||||
{
|
||||
return new Cuboid6(0.375, 0.375, 0.375, 0.625, 0.625, 0.625);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getBreakingIcon(Object subPart, int side)
|
||||
{
|
||||
return RenderPartWire.breakIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getBrokenIcon(int side)
|
||||
{
|
||||
return RenderPartWire.breakIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHitEffects(MovingObjectPosition hit, EffectRenderer effectRenderer)
|
||||
{
|
||||
IconHitEffects.addHitEffects(this, hit, effectRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDestroyEffects(EffectRenderer effectRenderer)
|
||||
{
|
||||
IconHitEffects.addDestroyEffects(this, effectRenderer, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBlockedOnSide(ForgeDirection side)
|
||||
{
|
||||
TMultiPart blocker = tile().partMap(side.ordinal());
|
||||
testingSide = side;
|
||||
boolean expandable = NormalOcclusionTest.apply(this, blocker);
|
||||
testingSide = null;
|
||||
return !expandable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPartChanged(TMultiPart part)
|
||||
{
|
||||
refresh();
|
||||
}
|
||||
}
|
|
@ -1,109 +0,0 @@
|
|||
package mekanism.induction.common.wire;
|
||||
|
||||
import ic2.api.energy.tile.IEnergySink;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
||||
public class TEnergySink extends TileMultipart implements IEnergySink
|
||||
{
|
||||
public Set<IEnergySink> ic2Sinks = new HashSet<IEnergySink>();
|
||||
|
||||
@Override
|
||||
public void copyFrom(TileMultipart that)
|
||||
{
|
||||
super.copyFrom(that);
|
||||
|
||||
if(that instanceof TEnergySink)
|
||||
{
|
||||
ic2Sinks = ((TEnergySink)that).ic2Sinks;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindPart(TMultiPart part)
|
||||
{
|
||||
super.bindPart(part);
|
||||
|
||||
if(part instanceof IEnergySink)
|
||||
{
|
||||
ic2Sinks.add((IEnergySink) part);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void partRemoved(TMultiPart part, int p)
|
||||
{
|
||||
super.partRemoved(part, p);
|
||||
|
||||
if(part instanceof IEnergySink)
|
||||
{
|
||||
ic2Sinks.remove(part);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearParts()
|
||||
{
|
||||
super.clearParts();
|
||||
|
||||
ic2Sinks.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction)
|
||||
{
|
||||
for(IEnergySink sink : ic2Sinks)
|
||||
{
|
||||
if(sink.acceptsEnergyFrom(emitter, direction))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double demandedEnergyUnits()
|
||||
{
|
||||
double demanded = 0;
|
||||
|
||||
for(IEnergySink sink : ic2Sinks)
|
||||
{
|
||||
demanded += sink.demandedEnergyUnits();
|
||||
}
|
||||
|
||||
return demanded;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double injectEnergyUnits(ForgeDirection directionFrom, double amount)
|
||||
{
|
||||
for(IEnergySink sink : ic2Sinks)
|
||||
{
|
||||
amount = sink.injectEnergyUnits(directionFrom, Math.min(amount, sink.demandedEnergyUnits()));
|
||||
}
|
||||
|
||||
return amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxSafeInput()
|
||||
{
|
||||
int safe = 0;
|
||||
|
||||
for(IEnergySink sink : ic2Sinks)
|
||||
{
|
||||
safe += sink.getMaxSafeInput();
|
||||
}
|
||||
|
||||
return safe;
|
||||
}
|
||||
|
||||
}
|
|
@ -372,9 +372,9 @@ item.SteelShovel.name=Stahlschaufel
|
|||
item.SteelHoe.name=Stahlhacke
|
||||
item.SteelSword.name=Stahlschwert
|
||||
|
||||
//*****//
|
||||
//TOOLS//
|
||||
//*****//
|
||||
//*********//
|
||||
//INDUCTION//
|
||||
//*********//
|
||||
|
||||
//Blocks
|
||||
tile.Tesla.name=Teslaspule
|
||||
|
@ -382,13 +382,6 @@ tile.Multimeter.name=Multimeter
|
|||
tile.ElectromagneticContractor.name=Elektromagnetischer Kontraktor
|
||||
tile.Battery.name=Modulare Batterie
|
||||
|
||||
//Wires
|
||||
tile.Wire.CopperWire.name=Kupferkabel
|
||||
tile.Wire.TinWire.name=Zinnkabel
|
||||
tile.Wire.IronWire.name=Eisenkabel
|
||||
tile.Wire.AluminumWire.name=Aluminiumkabel
|
||||
tile.Wire.SilverWire.name=Silberkabel
|
||||
|
||||
//General text
|
||||
text.contractor.success=Kontraktor erfolgreich verbunden
|
||||
text.tesla.success=Teslaspule erfolgreich verbunden
|
||||
|
|
|
@ -294,6 +294,12 @@ tile.Generator.BioGenerator.name=Bio-Generator
|
|||
tile.Generator.AdvancedSolarGenerator.name=Advanced Solar Generator
|
||||
tile.Generator.WindTurbine.name=Wind Turbine
|
||||
|
||||
//Gui text
|
||||
gui.heatGenerator.fuel=Fuel
|
||||
gui.solarGenerator.sun=Sun
|
||||
gui.bioGenerator.bioFuel=BioFuel
|
||||
gui.electrolyticSeparator.dump=Dump
|
||||
|
||||
//*****//
|
||||
//TOOLS//
|
||||
//*****//
|
||||
|
@ -377,9 +383,9 @@ item.SteelShovel.name=Steel Shovel
|
|||
item.SteelHoe.name=Steel Hoe
|
||||
item.SteelSword.name=Steel Sword
|
||||
|
||||
//*****//
|
||||
//TOOLS//
|
||||
//*****//
|
||||
//*********//
|
||||
//INDUCTION//
|
||||
//*********//
|
||||
|
||||
//Blocks
|
||||
tile.Tesla.name=Tesla Coil
|
||||
|
@ -387,19 +393,6 @@ tile.Multimeter.name=Multimeter
|
|||
tile.ElectromagneticContractor.name=Electromagnetic Contractor
|
||||
tile.Battery.name=Modular Battery
|
||||
|
||||
//Wires
|
||||
tile.Wire.CopperWire.name=Copper Wire
|
||||
tile.Wire.TinWire.name=Tin Wire
|
||||
tile.Wire.IronWire.name=Iron Wire
|
||||
tile.Wire.AluminumWire.name=Aluminum Wire
|
||||
tile.Wire.SilverWire.name=Silver Wire
|
||||
|
||||
//General text
|
||||
text.contractor.success=Linked contractor successfully
|
||||
text.tesla.success=Linked tesla successfully
|
||||
|
||||
//Gui text
|
||||
gui.heatGenerator.fuel=Fuel
|
||||
gui.solarGenerator.sun=Sun
|
||||
gui.bioGenerator.bioFuel=BioFuel
|
||||
gui.electrolyticSeparator.dump=Dump
|
||||
|
|
|
@ -1,632 +0,0 @@
|
|||
# Blender v2.66 (sub 1) OBJ File: 'wire.blend'
|
||||
# www.blender.org
|
||||
mtllib wire.mtl
|
||||
g southInsulation
|
||||
v -0.187500 0.687500 -0.187500
|
||||
v -0.187500 0.312500 -0.187500
|
||||
v 0.187500 0.312500 -0.187500
|
||||
v 0.187500 0.687500 -0.187500
|
||||
v -0.187500 0.687500 -0.500000
|
||||
v -0.187500 0.312500 -0.500000
|
||||
v 0.187500 0.312500 -0.500000
|
||||
v 0.187500 0.687500 -0.500000
|
||||
v -0.187500 0.312500 -0.375000
|
||||
v -0.187500 0.687500 -0.375000
|
||||
v 0.187500 0.312500 -0.375000
|
||||
v 0.187500 0.687500 -0.375000
|
||||
v -0.187500 0.687500 -0.312500
|
||||
v 0.187500 0.687500 -0.312500
|
||||
v 0.187500 0.312500 -0.312500
|
||||
v -0.187500 0.312500 -0.312500
|
||||
v 0.125000 0.312500 -0.500000
|
||||
v -0.125000 0.687500 -0.500000
|
||||
v -0.125000 0.312500 -0.500000
|
||||
v 0.125000 0.687500 -0.500000
|
||||
v -0.125000 0.375000 -0.500000
|
||||
v -0.125000 0.625000 -0.500000
|
||||
v 0.125000 0.625000 -0.500000
|
||||
v 0.125000 0.375000 -0.500000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 13/1/1 16/2/1 2/3/1 1/4/1
|
||||
f 16/1/2 15/2/2 3/3/2 2/4/2
|
||||
f 15/1/3 14/2/3 4/3/3 3/4/3
|
||||
f 14/1/4 13/2/4 1/3/4 4/4/4
|
||||
f 1/5/5 2/6/5 3/7/5 4/8/5
|
||||
f 6/5/6 5/6/6 18/9/6 22/10/6 21/11/6 19/12/6
|
||||
f 17/13/6 19/12/6 21/11/6 24/14/6
|
||||
f 22/10/6 18/9/6 20/15/6 23/16/6
|
||||
f 8/7/6 7/8/6 17/13/6 24/14/6 23/16/6 20/15/6
|
||||
f 5/17/4 10/18/4 12/19/4 8/20/4 20/21/4 18/22/4
|
||||
f 7/17/2 11/18/2 9/19/2 6/20/2 19/21/2 17/22/2
|
||||
f 9/8/5 11/5/5 12/6/5 10/7/5
|
||||
f 6/17/1 9/18/1 10/19/1 5/20/1
|
||||
f 11/18/3 7/17/3 8/20/3 12/19/3
|
||||
f 14/7/6 15/8/6 16/5/6 13/6/6
|
||||
g eastInsulation
|
||||
v 0.187500 0.687500 0.187500
|
||||
v 0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.312500 -0.187500
|
||||
v 0.187500 0.312500 0.187500
|
||||
v 0.500000 0.687500 0.187500
|
||||
v 0.500000 0.687500 -0.187500
|
||||
v 0.500000 0.312500 -0.187500
|
||||
v 0.500000 0.312500 0.187500
|
||||
v 0.375000 0.687500 -0.187500
|
||||
v 0.375000 0.687500 0.187500
|
||||
v 0.375000 0.312500 -0.187500
|
||||
v 0.375000 0.312500 0.187500
|
||||
v 0.312500 0.687500 0.187500
|
||||
v 0.312500 0.312500 0.187500
|
||||
v 0.312500 0.312500 -0.187500
|
||||
v 0.312500 0.687500 -0.187500
|
||||
v 0.500000 0.375000 -0.187500
|
||||
v 0.500000 0.625000 0.187500
|
||||
v 0.500000 0.625000 -0.187500
|
||||
v 0.500000 0.375000 0.187500
|
||||
v 0.500000 0.625000 -0.125000
|
||||
v 0.500000 0.625000 0.125000
|
||||
v 0.500000 0.375000 0.125000
|
||||
v 0.500000 0.375000 -0.125000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.937500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.437500 0.562500
|
||||
vt 0.437500 0.937500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
usemtl None
|
||||
s off
|
||||
f 37/23/4 40/24/4 26/25/4 25/26/4
|
||||
f 40/23/6 39/24/6 27/25/6 26/26/6
|
||||
f 39/23/2 38/24/2 28/25/2 27/26/2
|
||||
f 38/23/5 37/24/5 25/25/5 28/26/5
|
||||
f 25/27/1 26/28/1 27/29/1 28/30/1
|
||||
f 30/31/3 29/32/3 42/33/3 46/34/3 45/35/3 43/36/3
|
||||
f 41/37/3 43/36/3 45/35/3 48/38/3
|
||||
f 46/34/3 42/33/3 44/39/3 47/40/3
|
||||
f 32/41/3 31/42/3 41/37/3 48/38/3 47/40/3 44/39/3
|
||||
f 29/43/5 34/44/5 36/45/5 32/46/5 44/47/5 42/48/5
|
||||
f 31/43/6 35/44/6 33/45/6 30/46/6 43/47/6 41/48/6
|
||||
f 33/30/1 35/27/1 36/28/1 34/29/1
|
||||
f 30/43/4 33/44/4 34/45/4 29/46/4
|
||||
f 35/44/2 31/43/2 32/46/2 36/45/2
|
||||
f 38/29/3 39/30/3 40/27/3 37/28/3
|
||||
g westInsulation
|
||||
v -0.187500 0.312500 0.187500
|
||||
v -0.187500 0.312500 -0.187500
|
||||
v -0.187500 0.687500 -0.187500
|
||||
v -0.187500 0.687500 0.187500
|
||||
v -0.500000 0.312500 0.187500
|
||||
v -0.500000 0.312500 -0.187500
|
||||
v -0.500000 0.687500 -0.187500
|
||||
v -0.500000 0.687500 0.187500
|
||||
v -0.375000 0.312500 -0.187500
|
||||
v -0.375000 0.312500 0.187500
|
||||
v -0.375000 0.687500 -0.187500
|
||||
v -0.375000 0.687500 0.187500
|
||||
v -0.312500 0.312500 0.187500
|
||||
v -0.312500 0.687500 0.187500
|
||||
v -0.312500 0.687500 -0.187500
|
||||
v -0.312500 0.312500 -0.187500
|
||||
v -0.500000 0.625000 -0.187500
|
||||
v -0.500000 0.375000 0.187500
|
||||
v -0.500000 0.375000 -0.187500
|
||||
v -0.500000 0.625000 0.187500
|
||||
v -0.500000 0.375000 -0.125000
|
||||
v -0.500000 0.375000 0.125000
|
||||
v -0.500000 0.625000 0.125000
|
||||
v -0.500000 0.625000 -0.125000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
usemtl None
|
||||
s off
|
||||
f 61/49/2 64/50/2 50/51/2 49/52/2
|
||||
f 64/49/6 63/50/6 51/51/6 50/52/6
|
||||
f 63/49/4 62/50/4 52/51/4 51/52/4
|
||||
f 62/49/5 61/50/5 49/51/5 52/52/5
|
||||
f 49/53/3 50/54/3 51/55/3 52/56/3
|
||||
f 54/53/1 53/54/1 66/57/1 70/58/1 69/59/1 67/60/1
|
||||
f 65/61/1 67/60/1 69/59/1 72/62/1
|
||||
f 70/58/1 66/57/1 68/63/1 71/64/1
|
||||
f 56/55/1 55/56/1 65/61/1 72/62/1 71/64/1 68/63/1
|
||||
f 53/65/5 58/66/5 60/67/5 56/68/5 68/69/5 66/70/5
|
||||
f 55/65/6 59/66/6 57/67/6 54/68/6 67/69/6 65/70/6
|
||||
f 57/56/3 59/53/3 60/54/3 58/55/3
|
||||
f 54/65/2 57/66/2 58/67/2 53/68/2
|
||||
f 59/66/4 55/65/4 56/68/4 60/67/4
|
||||
f 62/55/1 63/56/1 64/53/1 61/54/1
|
||||
g downInsulation
|
||||
v -0.187500 0.312500 -0.187500
|
||||
v -0.187500 0.312500 0.187500
|
||||
v 0.187500 0.312500 0.187500
|
||||
v 0.187500 0.312500 -0.187500
|
||||
v -0.187500 0.000000 -0.187500
|
||||
v -0.187500 0.000000 0.187500
|
||||
v 0.187500 0.000000 0.187500
|
||||
v 0.187500 0.000000 -0.187500
|
||||
v -0.187500 0.125000 0.187500
|
||||
v -0.187500 0.125000 -0.187500
|
||||
v 0.187500 0.125000 0.187500
|
||||
v 0.187500 0.125000 -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.187500 0.187500
|
||||
v 0.125000 0.000000 0.187500
|
||||
v -0.125000 0.000000 -0.187500
|
||||
v -0.125000 0.000000 0.187500
|
||||
v 0.125000 0.000000 -0.187500
|
||||
v -0.125000 0.000000 0.125000
|
||||
v -0.125000 0.000000 -0.125000
|
||||
v 0.125000 0.000000 -0.125000
|
||||
v 0.125000 0.000000 0.125000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
usemtl None
|
||||
s off
|
||||
f 85/71/1 88/72/1 74/73/1 73/74/1
|
||||
f 88/71/5 87/72/5 75/73/5 74/74/5
|
||||
f 87/71/3 86/72/3 76/73/3 75/74/3
|
||||
f 86/71/6 85/72/6 73/73/6 76/74/6
|
||||
f 73/75/4 74/76/4 75/77/4 76/78/4
|
||||
f 78/75/2 77/76/2 90/79/2 94/80/2 93/81/2 91/82/2
|
||||
f 89/83/2 91/82/2 93/81/2 96/84/2
|
||||
f 94/80/2 90/79/2 92/85/2 95/86/2
|
||||
f 80/77/2 79/78/2 89/83/2 96/84/2 95/86/2 92/85/2
|
||||
f 77/87/6 82/88/6 84/89/6 80/90/6 92/91/6 90/92/6
|
||||
f 79/87/5 83/88/5 81/89/5 78/90/5 91/91/5 89/92/5
|
||||
f 81/78/4 83/75/4 84/76/4 82/77/4
|
||||
f 78/87/1 81/88/1 82/89/1 77/90/1
|
||||
f 83/88/3 79/87/3 80/90/3 84/89/3
|
||||
f 86/77/2 87/78/2 88/75/2 85/76/2
|
||||
g northInsulation
|
||||
v -0.187500 0.312500 0.187500
|
||||
v -0.187500 0.687500 0.187500
|
||||
v 0.187500 0.687500 0.187500
|
||||
v 0.187500 0.312500 0.187500
|
||||
v -0.187500 0.312500 0.500000
|
||||
v -0.187500 0.687500 0.500000
|
||||
v 0.187500 0.687500 0.500000
|
||||
v 0.187500 0.312500 0.500000
|
||||
v -0.187500 0.687500 0.375000
|
||||
v -0.187500 0.312500 0.375000
|
||||
v 0.187500 0.687500 0.375000
|
||||
v 0.187500 0.312500 0.375000
|
||||
v -0.187500 0.312500 0.312500
|
||||
v 0.187500 0.312500 0.312500
|
||||
v 0.187500 0.687500 0.312500
|
||||
v -0.187500 0.687500 0.312500
|
||||
v 0.125000 0.687500 0.500000
|
||||
v -0.125000 0.312500 0.500000
|
||||
v -0.125000 0.687500 0.500000
|
||||
v 0.125000 0.312500 0.500000
|
||||
v -0.125000 0.625000 0.500000
|
||||
v -0.125000 0.375000 0.500000
|
||||
v 0.125000 0.375000 0.500000
|
||||
v 0.125000 0.625000 0.500000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.937500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.437500 0.562500
|
||||
vt 0.437500 0.937500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
usemtl None
|
||||
s off
|
||||
f 109/93/1 112/94/1 98/95/1 97/96/1
|
||||
f 112/93/4 111/94/4 99/95/4 98/96/4
|
||||
f 111/93/3 110/94/3 100/95/3 99/96/3
|
||||
f 110/93/2 109/94/2 97/95/2 100/96/2
|
||||
f 97/97/6 98/98/6 99/99/6 100/100/6
|
||||
f 102/101/5 101/102/5 114/103/5 118/104/5 117/105/5 115/106/5
|
||||
f 113/107/5 115/106/5 117/105/5 120/108/5
|
||||
f 118/104/5 114/103/5 116/109/5 119/110/5
|
||||
f 104/111/5 103/112/5 113/107/5 120/108/5 119/110/5 116/109/5
|
||||
f 101/113/2 106/114/2 108/115/2 104/116/2 116/117/2 114/118/2
|
||||
f 103/113/4 107/114/4 105/115/4 102/116/4 115/117/4 113/118/4
|
||||
f 105/100/6 107/97/6 108/98/6 106/99/6
|
||||
f 102/113/1 105/114/1 106/115/1 101/116/1
|
||||
f 107/114/3 103/113/3 104/116/3 108/115/3
|
||||
f 110/99/5 111/100/5 112/97/5 109/98/5
|
||||
g upInsulation
|
||||
v -0.187500 0.687500 0.187500
|
||||
v -0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.687500 0.187500
|
||||
v -0.187500 1.000000 0.187500
|
||||
v -0.187500 1.000000 -0.187500
|
||||
v 0.187500 1.000000 -0.187500
|
||||
v 0.187500 1.000000 0.187500
|
||||
v -0.187500 0.875000 -0.187500
|
||||
v -0.187500 0.875000 0.187500
|
||||
v 0.187500 0.875000 -0.187500
|
||||
v 0.187500 0.875000 0.187500
|
||||
v -0.187500 0.812500 0.187500
|
||||
v 0.187500 0.812500 0.187500
|
||||
v 0.187500 0.812500 -0.187500
|
||||
v -0.187500 0.812500 -0.187500
|
||||
v 0.125000 1.000000 -0.187500
|
||||
v -0.125000 1.000000 0.187500
|
||||
v -0.125000 1.000000 -0.187500
|
||||
v 0.125000 1.000000 0.187500
|
||||
v -0.125000 1.000000 -0.125000
|
||||
v -0.125000 1.000000 0.125000
|
||||
v 0.125000 1.000000 0.125000
|
||||
v 0.125000 1.000000 -0.125000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.562500 0.562500
|
||||
vt 0.062500 0.437500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.437500 0.062500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.125000 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.437500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.750000 0.937500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.875000
|
||||
usemtl None
|
||||
s off
|
||||
f 133/119/1 136/120/1 122/121/1 121/122/1
|
||||
f 136/119/6 135/120/6 123/121/6 122/122/6
|
||||
f 135/119/3 134/120/3 124/121/3 123/122/3
|
||||
f 134/119/5 133/120/5 121/121/5 124/122/5
|
||||
f 121/123/2 122/124/2 123/125/2 124/126/2
|
||||
f 126/123/4 125/124/4 138/127/4 142/128/4 141/129/4 139/130/4
|
||||
f 137/131/4 139/130/4 141/129/4 144/132/4
|
||||
f 142/128/4 138/127/4 140/133/4 143/134/4
|
||||
f 128/125/4 127/126/4 137/131/4 144/132/4 143/134/4 140/133/4
|
||||
f 125/135/5 130/136/5 132/137/5 128/138/5 140/139/5 138/140/5
|
||||
f 127/135/6 131/136/6 129/137/6 126/138/6 139/139/6 137/140/6
|
||||
f 129/126/2 131/123/2 132/124/2 130/125/2
|
||||
f 126/135/1 129/136/1 130/137/1 125/138/1
|
||||
f 131/136/3 127/135/3 128/138/3 132/137/3
|
||||
f 134/125/4 135/126/4 136/123/4 133/124/4
|
||||
g centerInsulation
|
||||
v -0.187500 0.312500 0.187500
|
||||
v -0.187500 0.312500 -0.187500
|
||||
v 0.187500 0.312500 -0.187500
|
||||
v 0.187500 0.312500 0.187500
|
||||
v -0.187500 0.687500 0.187500
|
||||
v -0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.687500 -0.187500
|
||||
v 0.187500 0.687500 0.187500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.437500 0.562500
|
||||
vt 0.437500 0.937500
|
||||
vt 0.062500 0.937500
|
||||
usemtl None
|
||||
s off
|
||||
f 149/141/1 150/142/1 146/143/1 145/144/1
|
||||
f 150/141/6 151/142/6 147/143/6 146/144/6
|
||||
f 151/141/3 152/142/3 148/143/3 147/144/3
|
||||
f 152/143/5 149/144/5 145/141/5 148/142/5
|
||||
f 145/144/2 146/141/2 147/142/2 148/143/2
|
||||
f 152/142/4 151/143/4 150/144/4 149/141/4
|
||||
g down
|
||||
v -0.125000 0.000000 0.125000
|
||||
v 0.125000 0.000000 0.125000
|
||||
v 0.125000 0.375000 0.125000
|
||||
v -0.125000 0.375000 0.125000
|
||||
v -0.125000 0.000000 -0.125000
|
||||
v 0.125000 0.000000 -0.125000
|
||||
v 0.125000 0.375000 -0.125000
|
||||
v -0.125000 0.375000 -0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 157/145/2 158/146/2 154/147/2 153/148/2
|
||||
f 158/148/3 159/149/3 155/150/3 154/151/3
|
||||
f 159/152/4 160/145/4 156/148/4 155/151/4
|
||||
f 160/151/1 157/150/1 153/153/1 156/154/1
|
||||
f 153/148/5 154/147/5 155/155/5 156/149/5
|
||||
f 160/156/6 159/155/6 158/147/6 157/157/6
|
||||
g up
|
||||
v -0.125000 1.000000 -0.125000
|
||||
v 0.125000 1.000000 -0.125000
|
||||
v 0.125000 0.625000 -0.125000
|
||||
v -0.125000 0.625000 -0.125000
|
||||
v -0.125000 1.000000 0.125000
|
||||
v 0.125000 1.000000 0.125000
|
||||
v 0.125000 0.625000 0.125000
|
||||
v -0.125000 0.625000 0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 165/158/4 166/159/4 162/160/4 161/161/4
|
||||
f 166/161/3 167/162/3 163/163/3 162/164/3
|
||||
f 167/165/2 168/158/2 164/161/2 163/164/2
|
||||
f 168/164/1 165/163/1 161/166/1 164/167/1
|
||||
f 161/161/6 162/160/6 163/168/6 164/162/6
|
||||
f 168/169/5 167/168/5 166/160/5 165/170/5
|
||||
g west
|
||||
v -0.500000 0.375000 0.125000
|
||||
v -0.500000 0.375000 -0.125000
|
||||
v -0.125000 0.375000 -0.125000
|
||||
v -0.125000 0.375000 0.125000
|
||||
v -0.500000 0.625000 0.125000
|
||||
v -0.500000 0.625000 -0.125000
|
||||
v -0.125000 0.625000 -0.125000
|
||||
v -0.125000 0.625000 0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 173/171/1 174/172/1 170/173/1 169/174/1
|
||||
f 174/174/6 175/175/6 171/176/6 170/177/6
|
||||
f 175/178/3 176/171/3 172/174/3 171/177/3
|
||||
f 176/177/5 173/176/5 169/179/5 172/180/5
|
||||
f 169/174/2 170/173/2 171/181/2 172/175/2
|
||||
f 176/182/4 175/181/4 174/173/4 173/183/4
|
||||
g east
|
||||
v 0.500000 0.375000 -0.125000
|
||||
v 0.500000 0.375000 0.125000
|
||||
v 0.125000 0.375000 0.125000
|
||||
v 0.125000 0.375000 -0.125000
|
||||
v 0.500000 0.625000 -0.125000
|
||||
v 0.500000 0.625000 0.125000
|
||||
v 0.125000 0.625000 0.125000
|
||||
v 0.125000 0.625000 -0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 181/184/3 182/185/3 178/186/3 177/187/3
|
||||
f 182/187/5 183/188/5 179/189/5 178/190/5
|
||||
f 183/191/1 184/184/1 180/187/1 179/190/1
|
||||
f 184/190/6 181/189/6 177/192/6 180/193/6
|
||||
f 177/187/2 178/186/2 179/194/2 180/188/2
|
||||
f 184/195/4 183/194/4 182/186/4 181/196/4
|
||||
g north
|
||||
v 0.125000 0.375000 0.500000
|
||||
v -0.125000 0.375000 0.500000
|
||||
v -0.125000 0.375000 0.125000
|
||||
v 0.125000 0.375000 0.125000
|
||||
v 0.125000 0.625000 0.500000
|
||||
v -0.125000 0.625000 0.500000
|
||||
v -0.125000 0.625000 0.125000
|
||||
v 0.125000 0.625000 0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 189/197/5 190/198/5 186/199/5 185/200/5
|
||||
f 190/200/1 191/201/1 187/202/1 186/203/1
|
||||
f 191/204/6 192/197/6 188/200/6 187/203/6
|
||||
f 192/203/3 189/202/3 185/205/3 188/206/3
|
||||
f 185/200/2 186/199/2 187/207/2 188/201/2
|
||||
f 192/208/4 191/207/4 190/199/4 189/209/4
|
||||
g south
|
||||
v -0.125000 0.375000 -0.500000
|
||||
v 0.125000 0.375000 -0.500000
|
||||
v 0.125000 0.375000 -0.125000
|
||||
v -0.125000 0.375000 -0.125000
|
||||
v -0.125000 0.625000 -0.500000
|
||||
v 0.125000 0.625000 -0.500000
|
||||
v 0.125000 0.625000 -0.125000
|
||||
v -0.125000 0.625000 -0.125000
|
||||
vt 0.281250 0.687500
|
||||
vt 0.156250 0.687500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.406250 0.687500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 197/210/6 198/211/6 194/212/6 193/213/6
|
||||
f 198/213/3 199/214/3 195/215/3 194/216/3
|
||||
f 199/217/5 200/210/5 196/213/5 195/216/5
|
||||
f 200/216/1 197/215/1 193/218/1 196/219/1
|
||||
f 193/213/2 194/212/2 195/220/2 196/214/2
|
||||
f 200/221/4 199/220/4 198/212/4 197/222/4
|
||||
g center
|
||||
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.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
|
||||
vt 0.281250 0.843750
|
||||
vt 0.156250 0.843750
|
||||
vt 0.156250 0.718750
|
||||
vt 0.281250 0.718750
|
||||
vt 0.406250 0.843750
|
||||
vt 0.406250 0.718750
|
||||
vt 0.531250 0.718750
|
||||
vt 0.531250 0.843750
|
||||
vt 0.031250 0.843750
|
||||
vt 0.031250 0.718750
|
||||
vt 0.406250 0.968750
|
||||
vt 0.281250 0.968750
|
||||
vt 0.156250 0.968750
|
||||
usemtl None_ 1
|
||||
s off
|
||||
f 205/223/1 206/224/1 202/225/1 201/226/1
|
||||
f 206/227/6 207/228/6 203/229/6 202/230/6
|
||||
f 207/224/3 208/231/3 204/232/3 203/225/3
|
||||
f 208/223/5 205/226/5 201/228/5 204/227/5
|
||||
f 201/233/2 202/234/2 203/223/2 204/227/2
|
||||
f 208/224/4 207/223/4 206/234/4 205/235/4
|
|
@ -1,522 +0,0 @@
|
|||
# Blender v2.66 (sub 1) OBJ File: 'wireShine.blend'
|
||||
# www.blender.org
|
||||
mtllib wireShine.mtl
|
||||
g down
|
||||
v -0.126250 0.000000 0.126250
|
||||
v 0.126250 0.000000 0.126250
|
||||
v 0.126250 0.374464 0.126250
|
||||
v -0.126250 0.374464 0.126250
|
||||
v -0.126250 0.000000 -0.126250
|
||||
v 0.126250 0.000000 -0.126250
|
||||
v 0.126250 0.374464 -0.126250
|
||||
v -0.126250 0.374464 -0.126250
|
||||
v 0.126250 0.187232 -0.126250
|
||||
v -0.126250 0.000000 -0.000000
|
||||
v -0.000000 0.187232 0.126250
|
||||
v -0.126250 0.187232 0.126250
|
||||
v -0.000000 0.000000 0.126250
|
||||
v -0.126250 0.187232 -0.126250
|
||||
v -0.000000 0.374464 0.126250
|
||||
v 0.126250 0.000000 -0.000000
|
||||
v 0.126250 0.187232 0.126250
|
||||
v -0.126250 0.374464 -0.000000
|
||||
v -0.000000 0.000000 -0.126250
|
||||
v 0.126250 0.374464 -0.000000
|
||||
v -0.126250 0.187232 -0.000000
|
||||
v 0.126250 0.187232 -0.000000
|
||||
v -0.000000 0.187232 -0.126250
|
||||
v -0.000000 0.374464 -0.126250
|
||||
vt 0.218750 0.468750
|
||||
vt 0.218750 0.375000
|
||||
vt 0.281250 0.375000
|
||||
vt 0.281250 0.468750
|
||||
vt 0.343750 0.468750
|
||||
vt 0.343750 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.093750 0.468750
|
||||
vt 0.031250 0.468750
|
||||
vt 0.031250 0.375000
|
||||
vt 0.093750 0.375000
|
||||
vt 0.406250 0.468750
|
||||
vt 0.406250 0.562500
|
||||
vt 0.531250 0.468750
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.375000
|
||||
vt 0.218750 0.562500
|
||||
vt 0.343750 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.468750 0.562500
|
||||
vt 0.156250 0.468750
|
||||
vt 0.156250 0.375000
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.093750 0.562500
|
||||
vt 0.031250 0.562500
|
||||
vn -0.000000 -0.000000 1.000000
|
||||
vn 1.000000 -0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 11/1/1 15/2/1 4/3/1 12/4/1
|
||||
f 9/4/2 22/5/2 16/6/2 6/7/2
|
||||
f 23/8/3 14/9/3 8/10/3 24/11/3
|
||||
f 22/5/2 17/12/2 2/13/2 16/6/2
|
||||
f 12/14/4 21/15/4 10/16/4 1/17/4
|
||||
f 13/18/1 11/1/1 12/4/1 1/7/1
|
||||
f 20/19/2 3/20/2 17/12/2 22/5/2
|
||||
f 18/21/4 8/13/4 14/12/4 21/15/4
|
||||
f 17/22/1 3/23/1 15/2/1 11/1/1
|
||||
f 4/24/4 18/21/4 21/15/4 12/14/4
|
||||
f 21/15/4 14/12/4 5/20/4 10/16/4
|
||||
f 6/25/3 19/26/3 23/8/3 9/22/3
|
||||
f 9/22/3 23/8/3 24/11/3 7/23/3
|
||||
f 2/25/1 17/22/1 11/1/1 13/18/1
|
||||
f 19/26/3 5/27/3 14/9/3 23/8/3
|
||||
f 7/3/2 20/19/2 22/5/2 9/4/2
|
||||
g up
|
||||
v -0.126250 1.000000 -0.126250
|
||||
v 0.126250 1.000000 -0.126250
|
||||
v 0.126250 0.626964 -0.126250
|
||||
v -0.126250 0.626964 -0.126250
|
||||
v -0.126250 1.000000 0.126250
|
||||
v 0.126250 1.000000 0.126250
|
||||
v 0.126250 0.626964 0.126250
|
||||
v -0.126250 0.626964 0.126250
|
||||
v -0.126250 0.813482 -0.126250
|
||||
v -0.126250 1.000000 -0.000000
|
||||
v -0.126250 0.813482 0.126250
|
||||
v 0.000000 0.626964 -0.126250
|
||||
v -0.000000 1.000000 -0.126250
|
||||
v -0.126250 0.626964 -0.000000
|
||||
v -0.000000 0.626964 0.126250
|
||||
v 0.126250 0.813482 -0.126250
|
||||
v 0.126250 0.813482 -0.000000
|
||||
v -0.126250 0.813482 -0.000000
|
||||
v 0.126250 1.000000 -0.000000
|
||||
v 0.126250 0.626964 -0.000000
|
||||
v 0.126250 0.813482 0.126250
|
||||
v -0.000000 0.813482 0.126250
|
||||
v -0.000000 0.813482 -0.126250
|
||||
v -0.000000 1.000000 0.126250
|
||||
vt 0.406250 0.468750
|
||||
vt 0.406250 0.562500
|
||||
vt 0.343750 0.562500
|
||||
vt 0.343750 0.468750
|
||||
vt 0.156250 0.468750
|
||||
vt 0.156250 0.562500
|
||||
vt 0.093750 0.562500
|
||||
vt 0.093750 0.468750
|
||||
vt 0.406250 0.375000
|
||||
vt 0.343750 0.375000
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.562500
|
||||
vt 0.218750 0.468750
|
||||
vt 0.218750 0.375000
|
||||
vt 0.281250 0.375000
|
||||
vt 0.281250 0.468750
|
||||
vt 0.031250 0.562500
|
||||
vt 0.031250 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.468750
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.218750 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.531250 0.375000
|
||||
vt 0.093750 0.375000
|
||||
vt 0.031250 0.375000
|
||||
usemtl None
|
||||
s off
|
||||
f 40/28/2 26/29/2 43/30/2 41/31/2
|
||||
f 45/32/1 30/33/1 48/34/1 46/35/1
|
||||
f 27/36/2 40/28/2 41/31/2 44/37/2
|
||||
f 35/28/4 42/38/4 38/39/4 32/29/4
|
||||
f 47/40/3 36/41/3 28/42/3 33/43/3
|
||||
f 46/35/1 48/34/1 29/44/1 35/45/1
|
||||
f 29/36/4 34/46/4 42/38/4 35/28/4
|
||||
f 42/38/4 33/47/4 28/48/4 38/39/4
|
||||
f 40/32/3 27/49/3 36/41/3 47/40/3
|
||||
f 37/50/3 47/40/3 33/43/3 25/51/3
|
||||
f 44/37/2 41/31/2 45/43/2 31/42/2
|
||||
f 34/46/4 25/52/4 33/47/4 42/38/4
|
||||
f 26/33/3 40/32/3 47/40/3 37/50/3
|
||||
f 39/53/1 46/35/1 35/45/1 32/54/1
|
||||
f 31/49/1 45/32/1 46/35/1 39/53/1
|
||||
f 41/31/2 43/30/2 30/51/2 45/43/2
|
||||
g west
|
||||
v 0.500000 0.374464 -0.126250
|
||||
v 0.500000 0.374464 0.126250
|
||||
v 0.126250 0.374464 0.126250
|
||||
v 0.126250 0.374464 -0.126250
|
||||
v 0.500000 0.626964 -0.126250
|
||||
v 0.500000 0.626964 0.126250
|
||||
v 0.126250 0.626964 0.126250
|
||||
v 0.126250 0.626964 -0.126250
|
||||
v 0.126250 0.626964 0.000000
|
||||
v 0.313125 0.374464 0.126250
|
||||
v 0.126250 0.500714 0.126250
|
||||
v 0.313125 0.374464 0.000000
|
||||
v 0.313125 0.626964 0.126250
|
||||
v 0.500000 0.500714 -0.126250
|
||||
v 0.313125 0.626964 0.000000
|
||||
v 0.313125 0.500714 -0.126250
|
||||
v 0.500000 0.374464 0.000000
|
||||
v 0.500000 0.500714 0.126250
|
||||
v 0.313125 0.500714 0.126250
|
||||
v 0.313125 0.626964 -0.126250
|
||||
v 0.500000 0.626964 0.000000
|
||||
v 0.313125 0.374464 -0.126250
|
||||
v 0.126250 0.374464 0.000000
|
||||
v 0.126250 0.500714 -0.126250
|
||||
vt 0.406250 0.468750
|
||||
vt 0.343750 0.468750
|
||||
vt 0.343750 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.218750 0.562500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.156250 0.468750
|
||||
vt 0.218750 0.468750
|
||||
vt 0.406250 0.562500
|
||||
vt 0.343750 0.562500
|
||||
vt 0.281250 0.468750
|
||||
vt 0.281250 0.375000
|
||||
vt 0.281250 0.562500
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.468750
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.562500
|
||||
vt 0.093750 0.562500
|
||||
vt 0.093750 0.468750
|
||||
vt 0.531250 0.562500
|
||||
vt 0.093750 0.375000
|
||||
vt 0.031250 0.468750
|
||||
vt 0.031250 0.375000
|
||||
vt 0.031250 0.562500
|
||||
vt 0.218750 0.375000
|
||||
vt 0.156250 0.375000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 58/55/1 67/56/1 59/57/1 51/58/1
|
||||
f 65/59/5 50/60/5 58/61/5 60/62/5
|
||||
f 50/63/1 66/64/1 67/56/1 58/55/1
|
||||
f 67/56/1 61/65/1 55/66/1 59/57/1
|
||||
f 66/64/1 54/67/1 61/65/1 67/56/1
|
||||
f 62/68/3 49/69/3 70/70/3 64/71/3
|
||||
f 68/55/3 64/71/3 72/72/3 56/63/3
|
||||
f 53/58/3 62/68/3 64/71/3 68/55/3
|
||||
f 61/61/6 54/60/6 69/73/6 63/74/6
|
||||
f 49/67/5 65/59/5 60/62/5 70/65/5
|
||||
f 64/71/3 70/70/3 52/75/3 72/72/3
|
||||
f 57/76/6 63/74/6 68/77/6 56/78/6
|
||||
f 63/74/6 69/73/6 53/79/6 68/77/6
|
||||
f 70/65/5 60/62/5 71/80/5 52/66/5
|
||||
f 60/62/5 58/61/5 51/81/5 71/80/5
|
||||
f 55/81/6 61/61/6 63/74/6 57/76/6
|
||||
g east
|
||||
v -0.500000 0.374460 0.126250
|
||||
v -0.500000 0.374460 -0.126250
|
||||
v -0.126250 0.374464 -0.126250
|
||||
v -0.126250 0.374464 0.126250
|
||||
v -0.500000 0.626960 0.126250
|
||||
v -0.500000 0.626960 -0.126250
|
||||
v -0.126250 0.626964 -0.126250
|
||||
v -0.126250 0.626964 0.126250
|
||||
v -0.313125 0.374462 0.126250
|
||||
v -0.126250 0.500714 -0.126250
|
||||
v -0.313125 0.626962 0.126250
|
||||
v -0.313125 0.626962 -0.126250
|
||||
v -0.500000 0.500710 0.126250
|
||||
v -0.126250 0.374464 -0.000000
|
||||
v -0.126250 0.500714 0.126250
|
||||
v -0.500000 0.374460 -0.000000
|
||||
v -0.500000 0.500710 -0.126250
|
||||
v -0.313125 0.626962 -0.000000
|
||||
v -0.126250 0.626964 -0.000000
|
||||
v -0.313125 0.374462 -0.000000
|
||||
v -0.313125 0.500712 0.126250
|
||||
v -0.313125 0.500712 -0.126250
|
||||
v -0.313125 0.374462 -0.126250
|
||||
v -0.500000 0.626960 -0.000000
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.468750
|
||||
vt 0.343750 0.468750
|
||||
vt 0.343750 0.562500
|
||||
vt 0.031250 0.468750
|
||||
vt 0.093750 0.468750
|
||||
vt 0.093750 0.562500
|
||||
vt 0.031250 0.562500
|
||||
vt 0.218750 0.562500
|
||||
vt 0.156250 0.562500
|
||||
vt 0.156250 0.468750
|
||||
vt 0.218750 0.468750
|
||||
vt 0.343750 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.468750
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.468750
|
||||
vt 0.218750 0.375000
|
||||
vt 0.281250 0.375000
|
||||
vt 0.468750 0.562500
|
||||
vt 0.531250 0.562500
|
||||
vt 0.156250 0.375000
|
||||
vt 0.406250 0.562500
|
||||
vt 0.093750 0.375000
|
||||
vt 0.031250 0.375000
|
||||
vn -0.000011 1.000000 -0.000000
|
||||
vn 0.000011 -1.000000 0.000000
|
||||
vn 0.000012 -1.000000 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 78/82/3 84/83/3 94/84/3 89/85/3
|
||||
f 83/86/7 90/87/7 96/88/7 77/89/7
|
||||
f 88/90/8 74/91/8 95/92/8 92/93/8
|
||||
f 94/84/3 82/94/3 75/95/3 95/96/3
|
||||
f 93/97/1 85/98/1 73/99/1 81/100/1
|
||||
f 81/83/9 92/93/9 86/101/9 76/102/9
|
||||
f 84/83/3 79/102/3 82/94/3 94/84/3
|
||||
f 87/103/1 93/97/1 81/100/1 76/104/1
|
||||
f 83/96/1 77/95/1 85/98/1 93/97/1
|
||||
f 92/93/9 95/92/9 75/105/9 86/101/9
|
||||
f 80/106/1 83/96/1 93/97/1 87/103/1
|
||||
f 73/82/8 88/90/8 92/93/8 81/83/8
|
||||
f 90/87/7 84/92/7 78/91/7 96/88/7
|
||||
f 91/107/7 79/105/7 84/92/7 90/87/7
|
||||
f 80/108/7 91/107/7 90/87/7 83/86/7
|
||||
f 89/85/3 94/84/3 95/96/3 74/106/3
|
||||
g north
|
||||
v -0.126250 0.374464 -0.500000
|
||||
v 0.126250 0.374464 -0.500000
|
||||
v 0.126250 0.374464 -0.126250
|
||||
v -0.126250 0.374464 -0.126250
|
||||
v -0.126250 0.626964 -0.500000
|
||||
v 0.126250 0.626964 -0.500000
|
||||
v 0.126250 0.626964 -0.126250
|
||||
v -0.126250 0.626964 -0.126250
|
||||
v 0.000000 0.626964 -0.500000
|
||||
v 0.126250 0.500714 -0.500000
|
||||
v 0.000000 0.374464 -0.500000
|
||||
v -0.126250 0.500714 -0.500000
|
||||
v 0.126250 0.626964 -0.313125
|
||||
v 0.126250 0.500714 -0.126250
|
||||
v 0.126250 0.374464 -0.313125
|
||||
v 0.000000 0.626964 -0.126250
|
||||
v -0.126250 0.500714 -0.126250
|
||||
v 0.000000 0.374464 -0.126250
|
||||
v -0.126250 0.626964 -0.313125
|
||||
v -0.126250 0.374464 -0.313125
|
||||
v 0.126250 0.500714 -0.313125
|
||||
v -0.126250 0.500714 -0.313125
|
||||
v 0.000000 0.374464 -0.313125
|
||||
v 0.000000 0.626964 -0.313125
|
||||
vt 0.343750 0.468750
|
||||
vt 0.343750 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.468750
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.468750
|
||||
vt 0.218750 0.468750
|
||||
vt 0.156250 0.468750
|
||||
vt 0.156250 0.375000
|
||||
vt 0.218750 0.375000
|
||||
vt 0.093750 0.468750
|
||||
vt 0.156250 0.562500
|
||||
vt 0.093750 0.562500
|
||||
vt 0.343750 0.562500
|
||||
vt 0.406250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.468750
|
||||
vt 0.281250 0.375000
|
||||
vt 0.468750 0.562500
|
||||
vt 0.531250 0.562500
|
||||
vt 0.218750 0.562500
|
||||
vt 0.031250 0.468750
|
||||
vt 0.031250 0.562500
|
||||
vt 0.031250 0.375000
|
||||
vt 0.093750 0.375000
|
||||
usemtl None
|
||||
s off
|
||||
f 117/109/2 110/110/2 99/111/2 111/112/2
|
||||
f 118/113/4 108/114/4 97/115/4 116/116/4
|
||||
f 119/117/5 111/118/5 99/119/5 114/120/5
|
||||
f 120/121/6 109/118/6 102/122/6 105/123/6
|
||||
f 106/124/2 117/109/2 111/112/2 98/125/2
|
||||
f 102/126/2 109/127/2 117/109/2 106/124/2
|
||||
f 109/127/2 103/128/2 110/110/2 117/109/2
|
||||
f 113/129/4 118/113/4 116/116/4 100/130/4
|
||||
f 104/125/4 115/112/4 118/113/4 113/129/4
|
||||
f 115/112/4 101/111/4 108/114/4 118/113/4
|
||||
f 116/127/5 119/117/5 114/120/5 100/128/5
|
||||
f 97/126/5 107/131/5 119/117/5 116/127/5
|
||||
f 107/131/5 98/122/5 111/118/5 119/117/5
|
||||
f 115/132/6 120/121/6 105/123/6 101/133/6
|
||||
f 104/134/6 112/135/6 120/121/6 115/132/6
|
||||
f 112/135/6 103/119/6 109/118/6 120/121/6
|
||||
g south
|
||||
v 0.126250 0.374464 0.500000
|
||||
v -0.126250 0.374464 0.500000
|
||||
v -0.126250 0.374464 0.126250
|
||||
v 0.126250 0.374464 0.126250
|
||||
v 0.126250 0.626964 0.500000
|
||||
v -0.126250 0.626964 0.500000
|
||||
v -0.126250 0.626964 0.126250
|
||||
v 0.126250 0.626964 0.126250
|
||||
v -0.000000 0.626964 0.500000
|
||||
v -0.126250 0.500714 0.500000
|
||||
v -0.000000 0.374464 0.500000
|
||||
v 0.126250 0.500714 0.500000
|
||||
v -0.126250 0.626964 0.313125
|
||||
v -0.126250 0.500714 0.126250
|
||||
v -0.126250 0.374464 0.313125
|
||||
v -0.000000 0.626964 0.126250
|
||||
v 0.126250 0.500714 0.126250
|
||||
v -0.000000 0.374464 0.126250
|
||||
v 0.126250 0.626964 0.313125
|
||||
v 0.126250 0.374464 0.313125
|
||||
v -0.126250 0.500714 0.313125
|
||||
v 0.126250 0.500714 0.313125
|
||||
v -0.000000 0.374464 0.313125
|
||||
v -0.000000 0.626964 0.313125
|
||||
vt 0.343750 0.468750
|
||||
vt 0.343750 0.375000
|
||||
vt 0.406250 0.375000
|
||||
vt 0.406250 0.468750
|
||||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.531250 0.375000
|
||||
vt 0.531250 0.468750
|
||||
vt 0.218750 0.468750
|
||||
vt 0.156250 0.468750
|
||||
vt 0.156250 0.375000
|
||||
vt 0.218750 0.375000
|
||||
vt 0.093750 0.468750
|
||||
vt 0.156250 0.562500
|
||||
vt 0.093750 0.562500
|
||||
vt 0.343750 0.562500
|
||||
vt 0.406250 0.562500
|
||||
vt 0.281250 0.562500
|
||||
vt 0.281250 0.468750
|
||||
vt 0.281250 0.375000
|
||||
vt 0.468750 0.562500
|
||||
vt 0.531250 0.562500
|
||||
vt 0.218750 0.562500
|
||||
vt 0.031250 0.468750
|
||||
vt 0.031250 0.562500
|
||||
vt 0.031250 0.375000
|
||||
vt 0.093750 0.375000
|
||||
usemtl None
|
||||
s off
|
||||
f 141/136/4 134/137/4 123/138/4 135/139/4
|
||||
f 142/140/2 132/141/2 121/142/2 140/143/2
|
||||
f 143/144/5 135/145/5 123/146/5 138/147/5
|
||||
f 144/148/6 133/145/6 126/149/6 129/150/6
|
||||
f 130/151/4 141/136/4 135/139/4 122/152/4
|
||||
f 126/153/4 133/154/4 141/136/4 130/151/4
|
||||
f 133/154/4 127/155/4 134/137/4 141/136/4
|
||||
f 137/156/2 142/140/2 140/143/2 124/157/2
|
||||
f 128/152/2 139/139/2 142/140/2 137/156/2
|
||||
f 139/139/2 125/138/2 132/141/2 142/140/2
|
||||
f 140/154/5 143/144/5 138/147/5 124/155/5
|
||||
f 121/153/5 131/158/5 143/144/5 140/154/5
|
||||
f 131/158/5 122/149/5 135/145/5 143/144/5
|
||||
f 139/159/6 144/148/6 129/150/6 125/160/6
|
||||
f 128/161/6 136/162/6 144/148/6 139/159/6
|
||||
f 136/162/6 127/146/6 133/145/6 144/148/6
|
||||
g center
|
||||
v -0.126250 0.374464 0.126250
|
||||
v -0.126250 0.374464 -0.126250
|
||||
v 0.126250 0.374464 -0.126250
|
||||
v 0.126250 0.374464 0.126250
|
||||
v -0.126250 0.626964 0.126250
|
||||
v -0.126250 0.626964 -0.126250
|
||||
v 0.126250 0.626964 -0.126250
|
||||
v 0.126250 0.626964 0.126250
|
||||
v -0.126250 0.626964 0.000000
|
||||
v -0.126250 0.500714 -0.126250
|
||||
v -0.126250 0.374464 0.000000
|
||||
v -0.126250 0.500714 0.126250
|
||||
v 0.000000 0.626964 -0.126250
|
||||
v 0.126250 0.500714 -0.126250
|
||||
v 0.000000 0.374464 -0.126250
|
||||
v 0.126250 0.626964 0.000000
|
||||
v 0.126250 0.500714 0.126250
|
||||
v 0.126250 0.374464 0.000000
|
||||
v 0.000000 0.626964 0.126250
|
||||
v 0.000000 0.374464 0.126250
|
||||
v -0.126250 0.500714 0.000000
|
||||
v 0.000000 0.500714 -0.126250
|
||||
v 0.126250 0.500714 0.000000
|
||||
v 0.000000 0.500714 0.126250
|
||||
v 0.000000 0.374464 0.000000
|
||||
v 0.000000 0.626964 0.000000
|
||||
vt 0.218750 0.781250
|
||||
vt 0.156250 0.781250
|
||||
vt 0.156250 0.718750
|
||||
vt 0.218750 0.718750
|
||||
vt 0.468750 0.781250
|
||||
vt 0.468750 0.718750
|
||||
vt 0.531250 0.718750
|
||||
vt 0.531250 0.781250
|
||||
vt 0.093750 0.781250
|
||||
vt 0.031250 0.781250
|
||||
vt 0.031250 0.718750
|
||||
vt 0.093750 0.718750
|
||||
vt 0.343750 0.781250
|
||||
vt 0.343750 0.718750
|
||||
vt 0.406250 0.718750
|
||||
vt 0.406250 0.781250
|
||||
vt 0.343750 0.906250
|
||||
vt 0.281250 0.906250
|
||||
vt 0.281250 0.843750
|
||||
vt 0.343750 0.843750
|
||||
vt 0.218750 0.906250
|
||||
vt 0.281250 0.968750
|
||||
vt 0.218750 0.968750
|
||||
vt 0.281250 0.781250
|
||||
vt 0.281250 0.718750
|
||||
vt 0.218750 0.843750
|
||||
vt 0.156250 0.843750
|
||||
vt 0.468750 0.843750
|
||||
vt 0.531250 0.843750
|
||||
vt 0.406250 0.843750
|
||||
vt 0.093750 0.843750
|
||||
vt 0.031250 0.843750
|
||||
vt 0.406250 0.906250
|
||||
vt 0.406250 0.968750
|
||||
vt 0.343750 0.968750
|
||||
vt 0.156250 0.906250
|
||||
vt 0.156250 0.968750
|
||||
usemtl None_Wire
|
||||
s off
|
||||
f 165/163/4 154/164/4 146/165/4 155/166/4
|
||||
f 166/167/3 158/168/3 147/169/3 159/170/3
|
||||
f 167/171/2 161/172/2 148/173/2 162/174/2
|
||||
f 168/175/1 156/176/1 145/177/1 164/178/1
|
||||
f 169/179/5 159/180/5 147/181/5 162/182/5
|
||||
f 170/183/6 157/180/6 150/184/6 153/185/6
|
||||
f 156/186/4 165/163/4 155/166/4 145/187/4
|
||||
f 149/181/4 153/188/4 165/163/4 156/186/4
|
||||
f 153/188/4 150/189/4 154/164/4 165/163/4
|
||||
f 154/190/3 166/167/3 159/170/3 146/191/3
|
||||
f 150/192/3 157/178/3 166/167/3 154/190/3
|
||||
f 157/178/3 151/177/3 158/168/3 166/167/3
|
||||
f 158/164/2 167/171/2 162/174/2 147/165/2
|
||||
f 151/189/2 160/193/2 167/171/2 158/164/2
|
||||
f 160/193/2 152/194/2 161/172/2 167/171/2
|
||||
f 161/182/1 168/175/1 164/178/1 148/192/1
|
||||
f 152/181/1 163/186/1 168/175/1 161/182/1
|
||||
f 163/186/1 149/187/1 156/176/1 168/175/1
|
||||
f 164/195/5 169/179/5 162/182/5 148/192/5
|
||||
f 145/196/5 155/197/5 169/179/5 164/195/5
|
||||
f 155/197/5 146/184/5 159/180/5 169/179/5
|
||||
f 163/198/6 170/183/6 153/185/6 149/199/6
|
||||
f 152/189/6 160/188/6 170/183/6 163/198/6
|
||||
f 160/188/6 151/181/6 157/180/6 170/183/6
|
Binary file not shown.
Before ![]() (image error) Size: 269 B |
Binary file not shown.
Before ![]() (image error) Size: 224 B |
Binary file not shown.
Before ![]() (image error) Size: 2.8 KiB |
Binary file not shown.
Before ![]() (image error) Size: 269 B |
Binary file not shown.
Before ![]() (image error) Size: 224 B |
Binary file not shown.
Before ![]() (image error) Size: 5 KiB |
Binary file not shown.
Before ![]() (image error) Size: 9.8 KiB |
Binary file not shown.
Before ![]() (image error) Size: 1.1 KiB |
Binary file not shown.
Before ![]() (image error) Size: 702 B |
Binary file not shown.
Before ![]() (image error) Size: 933 B |
Binary file not shown.
Before ![]() (image error) Size: 3.7 KiB |
Loading…
Add table
Reference in a new issue