Started adding 4-phase stuff

This commit is contained in:
malte0811 2018-03-23 16:27:32 +01:00
parent 316cc2ab78
commit 1fb01d9abd
27 changed files with 1223 additions and 436 deletions

View file

@ -28,7 +28,8 @@ public enum MechanicalMBBlockType implements IStringSerializable {
SHAFT_1_PHASE,
SHAFT_COMMUTATOR,
FLYWHEEL,
SPEEDOMETER;
SPEEDOMETER,
SHAFT_COMMUTATOR_4;
public static final MechanicalMBBlockType[] VALUES = values();
@Override

View file

@ -59,7 +59,7 @@ import javax.annotation.Nullable;
import java.util.*;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
import static malte0811.industrialWires.converter.EUCapability.ENERGY_IC2;
import static malte0811.industrialWires.converter.IMBPartElectric.Waveform.*;
import static malte0811.industrialWires.util.MiscUtils.getOffset;
@ -134,7 +134,7 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
}
Set<MechMBPart> failed = new HashSet<>();
for (MechMBPart part:mechanical) {
if (energyState.getSpeed()>part.getSpeedFor15RS()) {
if (energyState.getSpeed()>part.getMaxSpeed()) {
failed.add(part);
}
}
@ -156,7 +156,7 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
availableWf[i - section[0]] = NONE;
continue;
}
if (localWf == AC_ASYNC && Math.abs(energyState.getSpeed() - ASYNC_SPEED) <= SYNC_TOLERANCE * ASYNC_SPEED) {
if (localWf == AC_ASYNC && Math.abs(energyState.getSpeed() - EXTERNAL_SPEED) <= SYNC_TOLERANCE * EXTERNAL_SPEED) {
localWf = AC_SYNC;
}
double availableLocal = electricalComp.getAvailableEEnergy();
@ -169,8 +169,10 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
if (hasEnergy) {
double[][] requested = new double[VALUES.length][sectionLength];
for (int i = 0; i < requested.length; i++) {
for (int j = 0; j < sectionLength; j++) {
requested[i][j] = ((IMBPartElectric) mechanical[j + section[0]]).requestEEnergy(VALUES[i], energyState);
if (VALUES[i].isEnergyWaveform()) {
for (int j = 0; j < sectionLength; j++) {
requested[i][j] = ((IMBPartElectric) mechanical[j + section[0]]).requestEEnergy(VALUES[i], energyState);
}
}
}
Waveform maxWf = NONE;
@ -182,7 +184,9 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
maxWf = VALUES[i];
}
}
transferElectric(section, available, availableWf, maxWf, requested[maxWf.ordinal()], false);
if (maxWf!=NONE) {
transferElectric(section, available, availableWf, maxWf, requested[maxWf.ordinal()], false);
}
}
}
@ -386,7 +390,7 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
}
Set<MechMBPart> failed = new HashSet<>();
for (MechMBPart part : master.mechanical) {
if (master.energyState.getSpeed() > (part == broken ? MIN_BREAK_BROKEN : MIN_BREAK) * part.getSpeedFor15RS()) {
if (master.energyState.getSpeed() > (part == broken ? MIN_BREAK_BROKEN : MIN_BREAK) * part.getMaxSpeed()) {
failed.add(part);
}
}
@ -399,9 +403,9 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
if (!world.isRemote&&formed) {
formed = false;
world.setBlockState(pos,
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, HEAVY_ENGINEERING));
world.setBlockState(pos.down(),
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, HEAVY_ENGINEERING));
for (MechMBPart mech:mechanical) {
mech.disassemble(failed.contains(mech), energyState);
short pattern = mech.getFormPattern();
@ -417,9 +421,9 @@ public class TileEntityMultiblockConverter extends TileEntityIWMultiblock implem
BlockPos otherEnd = offset(pos, facing.getOpposite(), mirrored, 0,
offsets[offsets.length-1]+mechanical[mechanical.length-1].getLength(), 0);
world.setBlockState(otherEnd,
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, HEAVY_ENGINEERING));
world.setBlockState(otherEnd.down(),
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, HEAVY_ENGINEERING));
}
}

View file

@ -31,43 +31,62 @@ public interface IMBPartElectric {
void insertEEnergy(double given, Waveform waveform, MechEnergy energy);
enum Waveform {
NONE(null, 0),
NONE(null, 0, true),
//Sync/async refers to multiblock rotation speed, not to line frequency
AC_SYNC(true, 4),
AC_ASYNC(true, 5) {
AC_SYNC(true, 4, true),
AC_ASYNC(true, 5, 4, true),
AC_4PHASE_SYNC(true, 4, false),
AC_4PHASE_ASYNC(true, 4, false),
DC(false, 1, true) {
@Override
public Waveform getCommutated(double speed) {
if (Math.abs(speed- ASYNC_SPEED)<SYNC_TOLERANCE* ASYNC_SPEED) {
return DC;
public Waveform getCommutated(double speed, boolean fourPhase) {
if (!fourPhase) {
return super.getCommutated(speed, false);
} else {
if (isSyncSpeed(speed)) {
return AC_4PHASE_ASYNC;
} else {
return AC_4PHASE_SYNC;
}
}
return super.getCommutated(speed);
}
},
AC_4PHASE(true, 4),//TODO what should this rectify into? If anything at all
DC(false, 1),
MESS(null, 5);//TODO exclude this from providing power
MESS(null, 5, true);
public static final double ASYNC_SPEED = 10;//TODO is this a good value
public static final double SYNC_TOLERANCE = .1;//TODO is this a good value
public static final double MIN_COMM_SPEED = 4;//TODO is this a good value
public static final double EXTERNAL_SPEED = 20;
public static final double SYNC_TOLERANCE = .1;
public static final double MIN_COMM_SPEED = 4;
public static final Waveform[] VALUES = values();
public static boolean isSyncSpeed(double speed) {
return Math.abs(speed- EXTERNAL_SPEED)<SYNC_TOLERANCE* EXTERNAL_SPEED;
}
@Nullable
private Boolean isAC;
private int dualId;
public Waveform dual;
Waveform(@Nullable Boolean ac, int dualId) {
boolean single;
private int dualId, syncDualId;
public Waveform dual, syncDual;
Waveform(@Nullable Boolean ac, int dualId, boolean singlePhase) {
this(ac, dualId, dualId, singlePhase);
}
Waveform(@Nullable Boolean ac, int dualId, int syncDual, boolean singlePhase) {
isAC = ac;
this.dualId = dualId;
syncDualId = syncDual;
single = singlePhase;
}
public static void init() {
Waveform[] values = values();
for (Waveform f:values) {
f.dual = values[f.dualId];
for (Waveform f:VALUES) {
f.dual = VALUES[f.dualId];
f.syncDual = VALUES[f.syncDualId];
}
}
public Waveform getCommutated(double speed) {
public Waveform getCommutated(double speed, boolean fourPhase) {
if (isSyncSpeed(speed)) {
return syncDual;
}
return speed<MIN_COMM_SPEED?this:dual;
}
@ -78,5 +97,13 @@ public interface IMBPartElectric {
public boolean isDC() {
return isAC==Boolean.FALSE;
}
public boolean isEnergyWaveform() {
return isAC!=null;
}
public boolean isSinglePhase() {
return single;
}
}
}

View file

@ -24,6 +24,7 @@ import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.blocks.converter.TileEntityMultiblockConverter;
import malte0811.industrialWires.client.render.TileRenderMBConverter;
import malte0811.industrialWires.util.LocalSidedWorld;
import malte0811.industrialWires.util.MiscUtils;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.nbt.NBTTagCompound;
@ -36,11 +37,15 @@ import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.NO_MODEL;
import static malte0811.industrialWires.util.NBTKeys.TYPE;
@ -55,7 +60,7 @@ public abstract class MechMBPart {
public abstract void insertMEnergy(double added);
public abstract double getInertia();
public abstract double getSpeedFor15RS();
public abstract double getMaxSpeed();
public abstract void writeToNBT(NBTTagCompound out);
public abstract void readFromNBT(NBTTagCompound in);
@ -70,11 +75,22 @@ public abstract class MechMBPart {
public abstract boolean canForm(LocalSidedWorld w);
protected boolean hasSupportPillars(LocalSidedWorld w) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
IBlockState state = w.getBlockState(new BlockPos(2*i-1, j-1, 0));
if (!isLightEngineering(state)) {
return true;
}
}
}
return false;
}
public abstract short getFormPattern();
/**
* @param failed whether the MB is being disassembled because this part failed
* @param energy
*/
public abstract void disassemble(boolean failed, MechEnergy energy);
@ -88,7 +104,11 @@ public abstract class MechMBPart {
return null;
}
private static final BiMap<String, Class<? extends MechMBPart>> REGISTRY = HashBiMap.create();
public static final BiMap<String, Class<? extends MechMBPart>> REGISTRY = HashBiMap.create();
public static final Comparator<MechMBPart> SORT_BY_COUNT = Comparator.comparingInt(
(c)->-MiscUtils.count1Bits(c.getFormPattern())
);
public static void preInit() {
IMBPartElectric.Waveform.init();
@ -98,6 +118,9 @@ public abstract class MechMBPart {
REGISTRY.put("commutator", MechPartCommutator.class);
REGISTRY.put("shaft", MechPartShaft.class);
REGISTRY.put("speedometer", MechPartSpeedometer.class);
REGISTRY.put("commFour", MechPartCommutator4Phase.class);
REGISTRY.put("fourCoils", MechPartFourCoils.class);
REGISTRY.put("fourElectrodes", MechPartFourElectrodes.class);
for (String key : REGISTRY.keySet()) {
cacheNewInstance(key);
@ -137,10 +160,29 @@ public abstract class MechMBPart {
}
public static boolean isValidDefaultCenter(IBlockState state) {
return state.getBlock()== IEContent.blockMetalDecoration0&&
state.getValue(IEContent.blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
}
public static boolean isHeavyEngineering(IBlockState state) {
return isValidDefaultCenter(state);
}
public static boolean isLightEngineering(IBlockState state) {
return state.getBlock()== IEContent.blockMetalDecoration0&&
state.getValue(IEContent.blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
}
public void setDefaultShaft(BlockPos pos) {
world.setBlockState(pos, blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property,
HEAVY_ENGINEERING));
}
public void setLightEngineering(BlockPos pos) {
world.setBlockState(pos, blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property,
LIGHT_ENGINEERING));
}
public void form(LocalSidedWorld w, Consumer<TileEntityMultiblockConverter> initializer) {
world = w;

View file

@ -20,7 +20,6 @@ import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.converter.EUCapability.IC2EnergyHandler;
import malte0811.industrialWires.util.ConversionUtil;
import malte0811.industrialWires.util.LocalSidedWorld;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
@ -40,8 +39,7 @@ public class MechPartCommutator extends MechMBPart implements IMBPartElectric {
private Waveform wfToWorld = Waveform.NONE;
@Override
public Waveform getProduced(MechEnergy state) {
return wfToMB.getCommutated(state.getSpeed());
return wfToMB.getCommutated(state.getSpeed(), has4Phases());
}
@Override
@ -56,17 +54,19 @@ public class MechPartCommutator extends MechMBPart implements IMBPartElectric {
@Override
public double requestEEnergy(Waveform waveform, MechEnergy energy) {
if (waveform == wfToWorld.getCommutated(energy.getSpeed())) {
return getMaxBuffer() - bufferToWorld;
}
else {
return getMaxBuffer();
if (!has4Phases()^waveform.isSinglePhase()) {
if (waveform == wfToWorld.getCommutated(energy.getSpeed(), has4Phases())) {
return getMaxBuffer() - bufferToWorld;
} else {
return getMaxBuffer();
}
}
return 0;
}
@Override
public void insertEEnergy(double given, Waveform waveform, MechEnergy energy) {
waveform = waveform.getCommutated(energy.getSpeed());
waveform = waveform.getCommutated(energy.getSpeed(), has4Phases());
if (waveform!=wfToWorld) {
wfToWorld = waveform;
bufferToWorld = 0;
@ -208,7 +208,7 @@ public class MechPartCommutator extends MechMBPart implements IMBPartElectric {
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return Double.MAX_VALUE;
}
@ -237,7 +237,6 @@ public class MechPartCommutator extends MechMBPart implements IMBPartElectric {
new ResourceLocation("ic2", "kinetic_generator");
@Override
public boolean canForm(LocalSidedWorld w) {
Minecraft.getMinecraft().mouseHelper.ungrabMouseCursor();
//Center is an IC2 kinetic generator
TileEntity te = w.getTileEntity(BlockPos.ORIGIN);
if (te!=null) {
@ -272,4 +271,8 @@ public class MechPartCommutator extends MechMBPart implements IMBPartElectric {
protected double getMaxBuffer() {
return 2.5e3;
}
protected boolean has4Phases() {
return false;
}
}

View file

@ -0,0 +1,65 @@
/*
* This file is part of Industrial Wires.
* Copyright (C) 2016-2018 malte0811
* Industrial Wires is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Industrial Wires is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Industrial Wires. If not, see <http://www.gnu.org/licenses/>.
*/
package malte0811.industrialWires.converter;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
public class MechPartCommutator4Phase extends MechPartCommutator {
@Override
protected double getMaxBuffer() {
return 8*super.getMaxBuffer();
}
@Override
protected boolean has4Phases() {
return true;
}
@Override
public boolean canForm(LocalSidedWorld w) {
return super.canForm(w)&&hasSupportPillars(w);
}
@Override
public short getFormPattern() {
return 0b000_111_101;
}
@Override
public void disassemble(boolean failed, MechEnergy energy) {
super.disassemble(failed, energy);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
setLightEngineering(new BlockPos(2*i-1, j-1, 0));
}
}
}
@Override
public MechanicalMBBlockType getType() {
return MechanicalMBBlockType.SHAFT_COMMUTATOR_4;
}
@Override
public ResourceLocation getRotatingBaseModel() {
return new ResourceLocation(IndustrialWires.MODID, "block/mech_mb/shaft_comm4.obj");
}
}

View file

@ -64,7 +64,7 @@ public class MechPartFlywheel extends MechMBPart {
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return Math.sqrt(material.tensileStrength /material.density)/RADIUS;
}
@ -154,7 +154,7 @@ public class MechPartFlywheel extends MechMBPart {
Vec3d pos = mat.apply(baseVec);
EntityBrokenPart e = new EntityBrokenPart(world.getWorld(), material.blockTexture);
e.setPosition(pos.x, pos.y, .5);
double speed = (energy.getSpeed()/ getSpeedFor15RS())/1.5;
double speed = (energy.getSpeed()/ getMaxSpeed())/1.5;
e.motionX = pos.y*speed;
e.motionY = -pos.x*speed;
e.motionZ = (Utils.RAND.nextDouble()-.5)*speed/10;

View file

@ -0,0 +1,90 @@
/*
* This file is part of Industrial Wires.
* Copyright (C) 2016-2018 malte0811
* Industrial Wires is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Industrial Wires is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Industrial Wires. If not, see <http://www.gnu.org/licenses/>.
*/
package malte0811.industrialWires.converter;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
public class MechPartFourCoils extends MechPartSingleCoil {
@Override
protected double getMaxBuffer() {
return 8*super.getMaxBuffer();
}
@Override
protected boolean has4Phases() {
return true;
}
@Override
public boolean canForm(LocalSidedWorld w) {
BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(0, 0, 0);
try {
if (!isValidDefaultCenter(w.getBlockState(pos))) {
return false;
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
pos.setPos(2*i-1, 2*j-1, 0);
if (!isLightEngineering(w.getBlockState(pos))) {
return false;
}
pos.setPos((j==0)?2*i-1:0, (j!=0)?2*i-1:0, 0);
if (!isCoil(w.getBlockState(pos))) {
return false;
}
}
}
return true;
} finally {
pos.release();//This will run after every return
}
}
@Override
public short getFormPattern() {
return 0b111_111_111;
}
@Override
public void disassemble(boolean failed, MechEnergy energy) {
BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(0, 0, 0);
setDefaultShaft(pos);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
pos.setPos(2 * i - 1, 2 * j - 1, 0);
setLightEngineering(pos);
pos.setPos((j == 0) ? 2 * i - 1 : 0, (j != 0) ? 2 * i - 1 : 0, 0);
setCoil(pos);
}
}
pos.release();
}
@Override
public MechanicalMBBlockType getType() {
return MechanicalMBBlockType.COIL_4_PHASE;
}
@Override
public ResourceLocation getRotatingBaseModel() {
return new ResourceLocation(IndustrialWires.MODID, "block/mech_mb/four_coil.obj");
}
}

View file

@ -0,0 +1,65 @@
/*
* This file is part of Industrial Wires.
* Copyright (C) 2016-2018 malte0811
* Industrial Wires is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Industrial Wires is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Industrial Wires. If not, see <http://www.gnu.org/licenses/>.
*/
package malte0811.industrialWires.converter;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
public class MechPartFourElectrodes extends MechPartTwoElectrodes {
@Override
protected double getMaxBuffer() {
return 8*super.getMaxBuffer();
}
@Override
protected boolean has4Phases() {
return true;
}
@Override
public boolean canForm(LocalSidedWorld w) {
return super.canForm(w) && hasSupportPillars(w);
}
@Override
public short getFormPattern() {
return 0b000_111_101;
}
@Override
public void disassemble(boolean failed, MechEnergy energy) {
super.disassemble(failed, energy);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
setLightEngineering(new BlockPos(2*i-1, j-1, 0));
}
}
}
@Override
public MechanicalMBBlockType getType() {
return MechanicalMBBlockType.SHAFT_4_PHASE;
}
@Override
public ResourceLocation getRotatingBaseModel() {
return new ResourceLocation(IndustrialWires.MODID, "block/mech_mb/shaft4.obj");
}
}

View file

@ -15,7 +15,6 @@
package malte0811.industrialWires.converter;
import blusunrize.immersiveengineering.common.util.IELogger;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
@ -23,8 +22,6 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.SHAFT_BASIC;
public class MechPartShaft extends MechMBPart {
@ -45,7 +42,7 @@ public class MechPartShaft extends MechMBPart {
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return Double.MAX_VALUE;
}
@ -62,22 +59,7 @@ public class MechPartShaft extends MechMBPart {
@Override
public boolean canForm(LocalSidedWorld world) {
if (!isValidDefaultCenter(world.getBlockState(BlockPos.ORIGIN)))
return false;
BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(0, 0, 0);
for (int i = -1;i<=1;i++) {
for (int j = -1;j<=1;j++) {
if (j!=0||i!=0) {
pos.setPos(i, j, 0);
if (!world.isAir(pos)) {
pos.release();
return false;
}
}
}
}
pos.release();
return true;
return isValidDefaultCenter(world.getBlockState(BlockPos.ORIGIN));
}
@Override
@ -87,9 +69,7 @@ public class MechPartShaft extends MechMBPart {
@Override
public void disassemble(boolean failed, MechEnergy energy) {
IELogger.info(world.getOrigin());
world.setBlockState(BlockPos.ORIGIN,
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
setDefaultShaft(BlockPos.ORIGIN);
}
@Override

View file

@ -24,22 +24,20 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import java.util.function.Predicate;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.COIL_LV;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
import static malte0811.industrialWires.util.NBTKeys.BUFFER_IN;
import static malte0811.industrialWires.util.NBTKeys.BUFFER_OUT;
public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
private static final double MAX_BUFFER = 10e3;
private double bufferToMech;
private double bufferToE;
@Override
public Waveform getProduced(MechEnergy state) {
return Waveform.AC_SYNC;
}
@Override
public double getAvailableEEnergy() {
return bufferToE;
@ -52,7 +50,10 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
@Override
public double requestEEnergy(Waveform waveform, MechEnergy energy) {
return MAX_BUFFER- bufferToMech;
if (has4Phases() ^ waveform.isSinglePhase()) {
return getMaxBuffer() - bufferToMech;
}
return 0;
}
@Override
@ -72,7 +73,7 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
@Override
public double requestMEnergy(MechEnergy e) {
return MAX_BUFFER-bufferToE;
return getMaxBuffer() - bufferToE;
}
@Override
@ -82,11 +83,11 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
@Override
public double getInertia() {
return Material.IRON.density+Material.COPPER.density;
return Material.IRON.density + Material.COPPER.density;
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return Double.MAX_VALUE;//TODO I'm fine with shafts having infinite max speed. Not coils though.
}
@ -107,9 +108,15 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
return new ResourceLocation(IndustrialWires.MODID, "block/mech_mb/single_coil.obj");
}
private static final Predicate<IBlockState> IS_COIL = (b)->
b.getBlock()== blockMetalDecoration0&&
b.getValue(blockMetalDecoration0.property)== BlockTypes_MetalDecoration0.COIL_LV;
protected boolean isCoil(IBlockState state) {
return state.getBlock() == blockMetalDecoration0 &&
state.getValue(blockMetalDecoration0.property) == BlockTypes_MetalDecoration0.COIL_LV;
}
protected void setCoil(BlockPos p) {
world.setBlockState(p, blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, COIL_LV));
}
@Override
public boolean canForm(LocalSidedWorld w) {
BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(0, 0, 0);
@ -118,18 +125,17 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
return false;
}
pos.setPos(0, 1, 0);
if (!IS_COIL.test(w.getBlockState(pos))) {
if (!isCoil(w.getBlockState(pos))) {
return false;
}
pos.setPos(0, -1, 0);
if (!IS_COIL.test(w.getBlockState(pos))) {
if (!isCoil(w.getBlockState(pos))) {
return false;
}
int offset = 1;
for (int i = 0; i < 2; i++) {
for (int i = -1; i <= 1; i+=2) {
for (int y = -1; y <= 1; y++) {
pos.setPos(offset, y, 0);
if (!w.isAir(pos)) {
pos.setPos(i, y, 0);
if (!isLightEngineering(w.getBlockState(pos))) {
return false;
}
}
@ -147,12 +153,15 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
@Override
public void disassemble(boolean failed, MechEnergy energy) {
world.setBlockState(BlockPos.ORIGIN,
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, LIGHT_ENGINEERING));
setDefaultShaft(BlockPos.ORIGIN);
if (!failed) {
for (int i = -1;i<=1;i+=2) {
world.setBlockState(BlockPos.ORIGIN.up(i),
blockMetalDecoration0.getDefaultState().withProperty(blockMetalDecoration0.property, COIL_LV));
setCoil(BlockPos.ORIGIN.up(i));
}
}
for (int i = -1; i <= 1; i+=2) {
for (int y = -1; y <= 1; y++) {
setLightEngineering(new BlockPos(i, y, 0));
}
}
}
@ -161,4 +170,12 @@ public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
public MechanicalMBBlockType getType() {
return MechanicalMBBlockType.COIL_1_PHASE;
}
protected double getMaxBuffer() {
return 10e3;
}
protected boolean has4Phases() {
return false;
}
}

View file

@ -24,7 +24,6 @@ import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
import malte0811.industrialWires.util.NBTKeys;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -39,11 +38,11 @@ import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecorat
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.RS_ENGINEERING;
import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.SPEEDOMETER;
import static net.minecraft.util.EnumFacing.Axis.X;
import static net.minecraft.util.EnumFacing.AxisDirection.NEGATIVE;
import static net.minecraft.util.EnumFacing.AxisDirection.POSITIVE;
import static net.minecraft.util.math.BlockPos.ORIGIN;
public class MechPartSpeedometer extends MechMBPart implements IPlayerInteraction, IRedstoneOutput {
private double speedFor15RS = 2 * IMBPartElectric.Waveform.ASYNC_SPEED;
private double speedFor15RS = 2 * IMBPartElectric.Waveform.EXTERNAL_SPEED;
private int currentOutputLin = -1;
private int currentOutputLog = -1;
private double logFactor = 15 / Math.log(speedFor15RS + 1);
@ -93,7 +92,7 @@ public class MechPartSpeedometer extends MechMBPart implements IPlayerInteractio
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return 2 * speedFor15RS;
}
@ -139,7 +138,6 @@ public class MechPartSpeedometer extends MechMBPart implements IPlayerInteractio
@Override
public boolean interact(@Nonnull EnumFacing side, @Nonnull EntityPlayer player, @Nonnull EnumHand hand,
@Nonnull ItemStack heldItem, float hitX, float hitY, float hitZ) {
Minecraft.getMinecraft().mouseHelper.ungrabMouseCursor();
if (Utils.isHammer(heldItem)) {
if (!world.isRemote) {
if (player.isSneaking()) {
@ -162,7 +160,7 @@ public class MechPartSpeedometer extends MechMBPart implements IPlayerInteractio
@Override
public int getStrongRSOutput(@Nonnull IBlockState state, @Nonnull EnumFacing side) {
if (side.getAxis() == X) {
if (side.getAxisDirection() == NEGATIVE) {
if (side.getAxisDirection() == POSITIVE) {
return currentOutputLog;
} else {
return currentOutputLin;

View file

@ -38,14 +38,26 @@ import static malte0811.industrialWires.util.ConversionUtil.joulesPerIf;
import static malte0811.industrialWires.util.NBTKeys.*;
public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric {
private final static double MAX_BUFFER = 10e3;//200kW
private double bufferToMB;
private boolean isACInMBBuffer;
private double bufferToWorld;
private boolean isACInWBuffer;
@Override
public Waveform getProduced(MechEnergy state) {
return bufferToMB>0?(isACInMBBuffer? AC_ASYNC: DC): NONE;
if (bufferToMB > 0) {
if (isACInMBBuffer)
if (has4Phases()) {
return AC_4PHASE_ASYNC;
} else {
return AC_ASYNC;
}
else {
return DC;
}
} else {
return NONE;
}
}
@Override
@ -60,7 +72,10 @@ public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric
@Override
public double requestEEnergy(Waveform waveform, MechEnergy energy) {
return MAX_BUFFER-bufferToWorld;
if (waveform.isSinglePhase()) {
return getMaxBuffer()-bufferToWorld;
}
return 0;
}
@Override
@ -104,7 +119,7 @@ public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric
}
@Override
public double getSpeedFor15RS() {
public double getMaxSpeed() {
return Double.MAX_VALUE;//TODO
}
@ -158,7 +173,7 @@ public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric
@Override
public int receiveEnergy(int maxReceive, boolean simulate) {
double joules = joulesPerIf()*maxReceive;
double insert = Math.min(joules, MAX_BUFFER-bufferToMB);
double insert = Math.min(joules, getMaxBuffer()-bufferToMB);
if (!simulate) {
if (!isACInMBBuffer) {
bufferToMB = 0;
@ -189,7 +204,7 @@ public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric
@Override
public int getMaxEnergyStored() {
return (int) Math.round(MAX_BUFFER*2* ifPerJoule());
return (int) Math.round(getMaxBuffer()*2* ifPerJoule());
}
@Override
@ -219,4 +234,12 @@ public class MechPartTwoElectrodes extends MechMBPart implements IMBPartElectric
return CapabilityEnergy.ENERGY.cast(energy);
return super.getCapability(cap, side, pos);
}
protected double getMaxBuffer() {
return 10e3;//200kW
}
protected boolean has4Phases() {
return false;
}
}

View file

@ -21,6 +21,7 @@ import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.blocks.converter.TileEntityMultiblockConverter;
import malte0811.industrialWires.util.LocalSidedWorld;
import malte0811.industrialWires.util.MiscUtils;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@ -89,10 +90,19 @@ public class MultiblockConverter implements MultiblockHandler.IMultiblock {
mutPos.setPos(0, 0, lastLength);
w.setOrigin(w.getRealPos(mutPos));
MechMBPart next = null;
for (String key : MechMBPart.INSTANCES.keySet()) {
MechMBPart it = MechMBPart.INSTANCES.get(key);
if (it.canForm(w)) {
next = it;
List<MechMBPart> instances = new ArrayList<>(MechMBPart.INSTANCES.values());
instances.sort(MechMBPart.SORT_BY_COUNT);
int lastCount = 0;
for (MechMBPart part:instances) {
int newCount = MiscUtils.count1Bits(part.getFormPattern());
if (newCount==1&&lastCount>1&&checkEnd(w, mutPos)) {
foundAll = true;
break;
}
lastCount = newCount;
if (part.canForm(w)) {
next = part;
String key = MechMBPart.REGISTRY.inverse().get(part.getClass());
MechMBPart.cacheNewInstance(key);
break;
}
@ -101,12 +111,8 @@ public class MultiblockConverter implements MultiblockHandler.IMultiblock {
parts.add(next);
lastLength = next.getLength();
weight += next.getInertia();
} else {
if (parts.size() > 0 && checkEnd(w, mutPos)) {
foundAll = true;
} else {
return false;
}
} else if (!foundAll) {
return false;
}
}
double finalWeight = weight;

View file

@ -266,4 +266,12 @@ public final class MiscUtils {
public static Vector3f withNewY(Vec2f in, float y) {
return new Vector3f(in.x, y, in.y);
}
public static int count1Bits(int i) {
int ret = 0;
for (int j = 0; j < 32; j++) {
ret += (i>>>j)&1;
}
return ret;
}
}

View file

@ -31,6 +31,18 @@
"shaft_1_phase": {
"model": "industrialwires:mech_mb/two_electrodes.obj"
},
"coil_4_phase": {
"model": "industrialwires:mech_mb/mag_ring.obj"
},
"shaft_commutator_4": {
"model": "industrialwires:mech_mb/four_electrodes.obj"
},
"shaft_4_phase": {
"model": "industrialwires:mech_mb/four_electrodes.obj"
},
"speedometer": {
"model": "industrialwires:mech_mb/speedometer.obj"
},
"shaft_basic": {
}
},

View file

@ -2,9 +2,4 @@
# Material Count: 1
newmtl None
Ns 0
Ka 0.000000 0.000000 0.000000
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2
map_Ka industrialwires:blocks/converter/coils

View file

@ -1,70 +1,34 @@
# Blender v2.78 (sub 0) OBJ File: 'RotaryConverter.blend'
# Blender v2.79 (sub 0) OBJ File: 'RotaryConverter.blend'
# www.blender.org
mtllib four_coil.mtl
o Rotor4Phase_Cylinder.008
v 1.327665 0.998160 0.267005
v 1.062500 0.732995 0.267005
v 0.998160 1.327665 0.267005
v 0.732995 1.062500 0.267005
v 1.327665 0.998160 0.732995
v 1.062500 0.732995 0.732995
v 0.998160 1.327665 0.732995
v 0.732995 1.062500 0.732995
v 1.437500 0.267005 0.267005
v 1.062500 0.267005 0.267005
v 1.437500 0.732995 0.267005
v 1.062500 0.732995 0.267005
v 1.437500 0.267005 0.732995
v 1.062500 0.267005 0.732995
v 1.437500 0.732995 0.732995
v 1.062500 0.732995 0.732995
v 0.998160 -0.327665 0.267005
v 0.732995 -0.062500 0.267005
v 1.327665 0.001840 0.267005
v 1.062500 0.267005 0.267005
v 0.998160 -0.327665 0.732995
v 0.732995 -0.062500 0.732995
v 1.327665 0.001840 0.732995
v 1.062500 0.267005 0.732995
v 0.267005 -0.437500 0.267005
v 0.267005 -0.062500 0.267005
v 0.732995 -0.437500 0.267005
v 0.732995 -0.062500 0.267005
v 0.267005 -0.437500 0.732995
v 0.267005 -0.062500 0.732995
v 0.732995 -0.437500 0.732995
v 0.732995 -0.062500 0.732995
v -0.327665 0.001840 0.267005
v -0.062500 0.267005 0.267005
v 0.001840 -0.327665 0.267005
v 0.267005 -0.062500 0.267005
v -0.327665 0.001840 0.732995
v -0.062500 0.267005 0.732995
v 0.001840 -0.327665 0.732995
v 0.267005 -0.062500 0.732995
v -0.437500 0.732995 0.267005
v -0.062500 0.732995 0.267005
v -0.437500 0.267005 0.267005
v -0.062500 0.267005 0.267005
v -0.437500 0.732995 0.732995
v -0.062500 0.732995 0.732995
v -0.437500 0.267005 0.732995
v -0.062500 0.267005 0.732995
v 0.001840 1.327665 0.267005
v 0.267005 1.062500 0.267005
v -0.327665 0.998160 0.267005
v -0.062500 0.732995 0.267005
v 0.001840 1.327665 0.732995
v 0.267005 1.062500 0.732995
v -0.327665 0.998160 0.732995
v -0.062500 0.732995 0.732995
v 0.732995 1.437500 0.267005
v 0.732995 1.062500 0.267005
v 0.267005 1.437500 0.267005
v 0.267005 1.062500 0.267005
v 0.732995 1.437500 0.732995
v 0.732995 1.062500 0.732995
v 0.267005 1.437500 0.732995
v 0.267005 1.062500 0.732995
v -0.062500 0.732995 1.000000
v -0.062500 0.732995 0.000000
@ -82,73 +46,493 @@ v 0.732995 1.062500 1.000000
v 0.732995 1.062500 0.000000
v 0.267005 1.062500 1.000000
v 0.267005 1.062500 0.000000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.7071 -0.7071 -0.0000
v 0.267005 -0.437500 0.267005
v 0.267005 -0.062500 0.267005
v 0.732995 -0.437500 0.267005
v 0.732995 -0.062500 0.267005
v 0.267005 -0.437500 0.732995
v 0.267005 -0.062500 0.732995
v 0.732995 -0.437500 0.732995
v 0.732995 -0.062500 0.732995
v -0.437500 0.732995 0.267005
v -0.062500 0.732995 0.267005
v -0.437500 0.267005 0.267005
v -0.062500 0.267005 0.267005
v -0.437500 0.732995 0.732995
v -0.062500 0.732995 0.732995
v -0.437500 0.267005 0.732995
v -0.062500 0.267005 0.732995
v -0.437500 0.732995 0.267005
v -0.062500 0.732995 0.267005
v -0.437500 0.267005 0.267005
v -0.062500 0.267005 0.267005
v -0.437500 0.732995 0.732995
v -0.062500 0.732995 0.732995
v -0.437500 0.267005 0.732995
v -0.062500 0.267005 0.732995
v 0.732995 1.437500 0.267005
v 0.732995 1.062500 0.267005
v 0.267005 1.437500 0.267005
v 0.267005 1.062500 0.267005
v 0.732995 1.437500 0.732995
v 0.732995 1.062500 0.732995
v 0.267005 1.437500 0.732995
v 0.267005 1.062500 0.732995
v 1.437500 0.267005 0.267005
v 1.062500 0.267005 0.267005
v 1.437500 0.732995 0.267005
v 1.062500 0.732995 0.267005
v 1.437500 0.267005 0.732995
v 1.062500 0.267005 0.732995
v 1.437500 0.732995 0.732995
v 1.062500 0.732995 0.732995
v 0.998160 -0.327665 0.267005
v 0.732995 -0.062500 0.267005
v 1.327665 0.001840 0.267005
v 1.062500 0.267005 0.267005
v 0.998160 -0.327665 0.732995
v 0.732995 -0.062500 0.732995
v 1.327665 0.001840 0.732995
v 1.062500 0.267005 0.732995
v -0.327665 0.001840 0.267005
v -0.062500 0.267005 0.267005
v 0.001840 -0.327665 0.267005
v 0.267005 -0.062500 0.267005
v -0.327665 0.001840 0.732995
v -0.062500 0.267005 0.732995
v 0.001840 -0.327665 0.732995
v 0.267005 -0.062500 0.732995
v 0.001840 1.327665 0.267005
v 0.267005 1.062500 0.267005
v -0.327665 0.998160 0.267005
v -0.062500 0.732995 0.267005
v 0.001840 1.327665 0.732995
v 0.267005 1.062500 0.732995
v -0.327665 0.998160 0.732995
v -0.062500 0.732995 0.732995
v -0.162912 1.162912 0.267005
v 0.134423 1.195082 0.267005
v 0.102252 0.897747 0.267005
v -0.195082 0.865578 0.267005
v -0.327665 0.998160 0.500000
v -0.062500 0.732995 0.500000
v -0.195083 0.865578 0.732995
v -0.162913 1.162913 0.732995
v 0.102252 0.897747 0.732995
v 0.134422 1.195082 0.732995
v 0.001840 1.327665 0.500000
v 0.267005 1.062500 0.500000
v -0.162912 1.162913 0.500000
v 0.134422 1.195082 0.500000
v -0.030330 1.030330 0.732995
v -0.195083 0.865578 0.500000
v -0.030330 1.030330 0.267005
v 1.327665 0.998160 0.267005
v 1.062500 0.732995 0.267005
v 0.998160 1.327665 0.267005
v 0.732995 1.062500 0.267005
v 1.327665 0.998160 0.732995
v 1.062500 0.732995 0.732995
v 0.998160 1.327665 0.732995
v 0.732995 1.062500 0.732995
v 1.162913 1.162912 0.267005
v 1.195082 0.865577 0.267005
v 0.897747 0.897748 0.267005
v 0.865578 1.195082 0.267005
v 0.998160 1.327665 0.500000
v 0.732995 1.062500 0.500000
v 0.865578 1.195083 0.732995
v 1.162913 1.162913 0.732995
v 0.897747 0.897748 0.732995
v 1.195082 0.865578 0.732995
v 1.327665 0.998160 0.500000
v 1.062500 0.732995 0.500000
v 1.162912 1.162912 0.500000
v 1.195082 0.865578 0.500000
v 1.030330 1.030330 0.732995
v 0.865578 1.195083 0.500000
v 1.030330 1.030330 0.267005
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.041667 0.434000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.520833 0.408000
vt 0.408000 0.520833
vt 0.408000 0.145833
vt 0.520833 0.244333
vt 0.145833 0.244333
vt 0.258667 0.145833
vt 0.258667 0.520833
vt 0.145833 0.408000
vt 0.375000 0.434000
vt 0.375000 0.583333
vt 0.041667 0.583333
vt 0.041667 0.434000
vt 0.258667 0.520833
vt 0.145833 0.408000
vt 0.145833 0.244333
vt 0.258667 0.145833
vt 0.408000 0.520833
vt 0.408000 0.145833
vt 0.520833 0.244333
vt 0.520833 0.408000
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.758667 0.250000
vt 0.908000 0.250000
vt 0.908000 0.375000
vt 0.758667 0.375000
vt 0.758667 0.375000
vt 0.908000 0.375000
vt 0.908000 0.500000
vt 0.758667 0.500000
vt 0.908000 0.250000
vt 0.758667 0.250000
vt 0.758667 0.125000
vt 0.908000 0.125000
vt 0.758667 0.000000
vt 0.908000 0.000000
vt 0.758667 0.125000
vt 0.241333 0.758667
vt 0.241333 0.908000
vt 0.092000 0.908000
vt 0.092000 0.758667
vt 0.833333 0.312500
vt 0.908000 0.312500
vt 0.908000 0.375000
vt 0.833333 0.375000
vt 0.833333 0.437500
vt 0.908000 0.437500
vt 0.908000 0.500000
vt 0.833333 0.500000
vt 0.833333 0.187500
vt 0.758667 0.187500
vt 0.758667 0.125000
vt 0.833333 0.125000
vt 0.833333 0.062500
vt 0.908000 0.062500
vt 0.908000 0.125000
vt 0.833333 0.125000
vt 0.166667 0.833333
vt 0.166667 0.908000
vt 0.092000 0.908000
vt 0.092000 0.833333
vt 0.166667 0.758667
vt 0.092000 0.758667
vt 0.241333 0.758667
vt 0.241333 0.833333
vt 0.241333 0.908000
vt 0.758667 0.062500
vt 0.758667 0.125000
vt 0.758667 0.000000
vt 0.833333 0.000000
vt 0.908000 0.000000
vt 0.908000 0.187500
vt 0.908000 0.250000
vt 0.833333 0.250000
vt 0.758667 0.250000
vt 0.758667 0.437500
vt 0.758667 0.500000
vt 0.758667 0.375000
vt 0.833333 0.375000
vt 0.908000 0.375000
vt 0.758667 0.312500
vt 0.758667 0.375000
vt 0.758667 0.250000
vt 0.833333 0.250000
vt 0.908000 0.250000
vt 0.833333 0.312500
vt 0.908000 0.312500
vt 0.908000 0.375000
vt 0.833333 0.375000
vt 0.833333 0.437500
vt 0.908000 0.437500
vt 0.908000 0.500000
vt 0.833333 0.500000
vt 0.833333 0.187500
vt 0.758667 0.187500
vt 0.758667 0.125000
vt 0.833333 0.125000
vt 0.833333 0.062500
vt 0.908000 0.062500
vt 0.908000 0.125000
vt 0.833333 0.125000
vt 0.166667 0.833333
vt 0.166667 0.908000
vt 0.092000 0.908000
vt 0.092000 0.833333
vt 0.166667 0.758667
vt 0.092000 0.758667
vt 0.241333 0.758667
vt 0.241333 0.833333
vt 0.241333 0.908000
vt 0.758667 0.062500
vt 0.758667 0.125000
vt 0.758667 0.000000
vt 0.833333 0.000000
vt 0.908000 0.000000
vt 0.908000 0.187500
vt 0.908000 0.250000
vt 0.833333 0.250000
vt 0.758667 0.250000
vt 0.758667 0.437500
vt 0.758667 0.500000
vt 0.758667 0.375000
vt 0.833333 0.375000
vt 0.908000 0.375000
vt 0.758667 0.312500
vt 0.758667 0.375000
vt 0.758667 0.250000
vt 0.833333 0.250000
vt 0.908000 0.250000
vn 0.7071 0.7071 0.0000
vn -0.7071 -0.7071 -0.0000
vn -0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vn -0.7071 -0.7071 0.0000
vn -1.0000 0.0000 0.0000
vn 0.7071 -0.7071 -0.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.7071 0.7071 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
usemtl None
s off
f 76//1 74//1 70//1
f 6//2 5//2 7//2 8//2
f 1//3 5//3 6//3 2//3
f 77//4 75//4 76//4 78//4
f 12//1 11//1 9//1 10//1
f 48//5 47//5 43//5 44//5
f 15//6 11//6 12//6 16//6
f 13//2 15//2 16//2 14//2
f 10//5 9//5 13//5 14//5
f 9//7 11//7 15//7 13//7
f 19//1 17//1 18//1 20//1
f 23//4 19//4 20//4 24//4
f 22//2 21//2 23//2 24//2
f 17//8 21//8 22//8 18//8
f 17//3 19//3 23//3 21//3
f 28//1 27//1 25//1 26//1
f 31//7 27//7 28//7 32//7
f 29//2 31//2 32//2 30//2
f 26//9 25//9 29//9 30//9
f 25//5 27//5 31//5 29//5
f 35//1 33//1 34//1 36//1
f 39//3 35//3 36//3 40//3
f 37//2 39//2 40//2 38//2
f 33//10 37//10 38//10 34//10
f 33//8 35//8 39//8 37//8
f 44//1 43//1 41//1 42//1
f 45//2 47//2 48//2 46//2
f 41//6 45//6 46//6 42//6
f 41//9 43//9 47//9 45//9
f 69//8 67//8 68//8 70//8
f 59//1 57//1 58//1 60//1
f 53//2 55//2 56//2 54//2
f 52//1 51//1 49//1 50//1
f 71//5 69//5 70//5 72//5
f 49//10 51//10 55//10 53//10
f 3//1 1//1 2//1 4//1
f 64//9 63//9 59//9 60//9
f 61//2 63//2 64//2 62//2
f 57//7 61//7 62//7 58//7
f 57//6 59//6 63//6 61//6
f 49//4 53//4 54//4 50//4
f 73//3 71//3 72//3 74//3
f 79//6 77//6 78//6 80//6
f 68//9 67//9 65//9 66//9
f 66//10 65//10 79//10 80//10
f 70//1 66//1 78//1 76//1
f 71//2 75//2 79//2 67//2
f 70//1 68//1 66//1
f 66//1 80//1 78//1
f 74//1 72//1 70//1
f 55//8 51//8 52//8 56//8
f 75//7 73//7 74//7 76//7
f 79//2 65//2 67//2
f 67//2 69//2 71//2
f 71//2 73//2 75//2
f 75//2 77//2 79//2
f 1//4 3//4 7//4 5//4
f 8//10 7//10 3//10 4//10
f 41/1/1 39/2/1 40/3/1 42/4/1
f 33/5/2 31/6/2 32/7/2 34/8/2
f 35/9/3 33/10/3 34/11/3 36/12/3
f 37/13/4 35/14/4 36/15/4 38/16/4
f 43/17/5 41/18/5 42/19/5 44/20/5
f 32/21/6 31/22/6 29/23/6 30/24/6
f 30/25/7 29/26/7 43/27/7 44/28/7
f 34/29/8 32/30/8 38/31/8 36/32/8
f 42/33/8 40/34/8 30/35/8 44/36/8
f 32/30/8 30/35/8 40/34/8 38/31/8
f 39/37/9 37/38/9 38/39/9 40/40/9
f 31/41/10 33/42/10 35/43/10 37/44/10
f 29/45/10 31/41/10 37/44/10 39/46/10
f 39/46/10 41/47/10 43/48/10 29/45/10
f 47/49/8 45/50/8 46/51/8 48/52/8
f 51/53/9 47/54/9 48/55/9 52/56/9
f 49/57/10 51/58/10 52/59/10 50/60/10
f 45/61/6 49/62/6 50/60/6 46/63/6
f 45/64/3 47/65/3 51/66/3 49/67/3
f 55/68/8 53/69/8 54/70/8 56/71/8
f 59/72/3 55/73/3 56/74/3 60/75/3
f 57/76/10 59/77/10 60/78/10 58/79/10
f 53/80/5 57/81/5 58/79/5 54/82/5
f 53/83/6 55/84/6 59/85/6 57/86/6
f 63/87/8 61/88/8 62/89/8 64/90/8
f 67/91/3 63/92/3 64/93/3 68/94/3
f 65/95/10 67/96/10 68/97/10 66/98/10
f 61/99/5 65/100/5 66/98/5 62/101/5
f 61/102/6 63/103/6 67/104/6 65/105/6
f 71/106/8 69/107/8 70/108/8 72/109/8
f 75/110/6 71/111/6 72/112/6 76/113/6
f 73/114/10 75/115/10 76/116/10 74/117/10
f 69/118/9 73/119/9 74/117/9 70/120/9
f 69/121/5 71/122/5 75/123/5 73/124/5
f 79/125/8 77/126/8 78/127/8 80/128/8
f 83/129/5 79/130/5 80/131/5 84/132/5
f 81/133/10 83/134/10 84/135/10 82/136/10
f 77/137/3 81/138/3 82/136/3 78/139/3
f 77/140/9 79/141/9 83/142/9 81/143/9
f 87/144/8 85/145/8 86/146/8 88/147/8
f 91/148/1 87/149/1 88/150/1 92/151/1
f 89/152/10 91/153/10 92/154/10 90/155/10
f 85/156/2 89/157/2 90/155/2 86/158/2
f 85/159/4 87/160/4 91/161/4 89/162/4
f 95/163/8 93/164/8 94/165/8 96/166/8
f 99/167/4 95/168/4 96/169/4 100/170/4
f 97/171/10 99/172/10 100/173/10 98/174/10
f 93/175/7 97/176/7 98/174/7 94/177/7
f 93/178/2 95/179/2 99/180/2 97/181/2
f 125/182/8 110/183/8 102/184/8 111/185/8
f 124/186/2 112/187/2 104/188/2 114/189/2
f 123/190/10 115/191/10 108/192/10 117/193/10
f 122/194/1 118/195/1 106/196/1 120/197/1
f 121/198/7 113/199/7 107/200/7 116/201/7
f 119/202/7 121/198/7 116/201/7 105/203/7
f 101/204/7 109/205/7 121/198/7 119/202/7
f 109/205/7 103/206/7 113/199/7 121/198/7
f 110/207/1 122/194/1 120/197/1 102/208/1
f 101/209/1 119/210/1 122/194/1 110/207/1
f 119/210/1 105/211/1 118/195/1 122/194/1
f 118/212/10 123/190/10 117/193/10 106/196/10
f 105/213/10 116/214/10 123/190/10 118/212/10
f 116/214/10 107/215/10 115/191/10 123/190/10
f 115/216/2 124/186/2 114/189/2 108/217/2
f 107/218/2 113/219/2 124/186/2 115/216/2
f 113/219/2 103/220/2 112/187/2 124/186/2
f 112/221/8 125/182/8 111/185/8 104/222/8
f 103/223/8 109/224/8 125/182/8 112/221/8
f 109/224/8 101/225/8 110/183/8 125/182/8
f 150/226/8 135/227/8 127/228/8 136/229/8
f 149/230/7 137/231/7 129/232/7 139/233/7
f 148/234/10 140/235/10 133/236/10 142/237/10
f 147/238/4 143/239/4 131/240/4 145/241/4
f 146/242/1 138/243/1 132/244/1 141/245/1
f 144/246/1 146/242/1 141/245/1 130/247/1
f 126/248/1 134/249/1 146/242/1 144/246/1
f 134/249/1 128/250/1 138/243/1 146/242/1
f 135/251/4 147/238/4 145/241/4 127/252/4
f 126/253/4 144/254/4 147/238/4 135/251/4
f 144/254/4 130/255/4 143/239/4 147/238/4
f 143/256/10 148/234/10 142/237/10 131/240/10
f 130/257/10 141/258/10 148/234/10 143/256/10
f 141/258/10 132/259/10 140/235/10 148/234/10
f 140/260/7 149/230/7 139/233/7 133/261/7
f 132/262/7 138/263/7 149/230/7 140/260/7
f 138/263/7 128/264/7 137/231/7 149/230/7
f 137/265/8 150/226/8 136/229/8 129/266/8
f 128/267/8 134/268/8 150/226/8 137/265/8
f 134/268/8 126/269/8 135/227/8 150/226/8
l 2 4
l 3 1
l 6 8
l 7 5
l 10 12
l 11 9
l 14 16
l 15 13
l 18 20
l 19 17
l 22 24
l 23 21
l 26 28
l 27 25

View file

@ -1,2 +1,5 @@
# Blender MTL File: 'RotaryConverter.blend'
# Material Count: 1
newmtl Material.002
map_Ka industrialwires:blocks/converter/mag_ring

View file

@ -1,4 +1,4 @@
# Blender v2.78 (sub 0) OBJ File: 'RotaryConverter.blend'
# Blender v2.79 (sub 0) OBJ File: 'RotaryConverter.blend'
# www.blender.org
mtllib mag_ring.mtl
o MagRing_Cube.048
@ -25,7 +25,7 @@ v 1.999995 -1.000000 0.062500
v -0.142555 1.999999 0.937500
v -0.142555 2.000000 0.062500
v -0.999999 1.142555 0.937500
v -0.999999 1.142556 0.062500
v -0.999995 -1.000001 0.062500
v -1.000000 -1.000001 0.937500
v -0.999995 -1.000000 0.062500
v 2.000000 1.142555 0.062500
@ -34,144 +34,117 @@ v 1.142555 1.999999 0.937500
v 1.142555 2.000000 0.062500
v -1.000000 0.085789 0.937500
v -1.000000 -0.500001 0.937500
v -0.500000 0.085786 0.062500
v 0.085786 -0.500001 0.062500
v 1.500000 0.085786 0.062500
v 1.500000 0.914213 0.062500
v -0.500000 0.914213 0.062500
v 0.914213 1.500000 0.062500
v 0.085786 1.500000 0.062500
v 0.914213 -0.500001 0.062500
v -1.000000 -0.500000 0.062500
v -1.000000 0.085790 0.062500
v -0.999996 -1.000000 0.062500
v 1.142554 2.000000 0.062500
v 1.999999 1.142555 0.062500
v 2.000000 -1.000000 0.062500
v 2.000000 -0.500001 0.062500
v 1.999999 0.085789 0.062500
v -0.142556 1.999999 0.062500
v -0.999999 1.142556 0.062500
v -0.142556 2.000000 0.062500
v 1.999999 0.085790 0.062500
v 2.000000 -0.500000 0.062500
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.5208 0.3333
vt 0.3542 0.4167
vt 0.6042 0.6667
vt 0.6875 0.5000
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.2708
vt 0.6458 0.7292
vt 0.3750 0.7292
vt 0.3750 0.2708
vt 0.4792 0.5000
vt 0.4792 0.7708
vt 0.6667 0.7708
vt 0.6667 0.4167
vt 0.6667 0.3333
vt 0.4792 0.3333
vt 0.4792 0.4583
vt 0.6667 0.7083
vt 0.5833 1.0000
vt 0.4167 1.0000
vt 0.4167 0.0000
vt 0.5833 0.0000
vt 0.0208 1.0000
vt 0.0208 0.5625
vt 0.3333 0.5625
vt 0.3333 1.0000
vt 0.6458 0.0000
vt 0.6458 1.0000
vt 0.3750 1.0000
vt 0.3750 0.0000
vt 0.0208 0.0000
vt 0.3333 0.0000
vt 0.3333 0.7083
vt 0.0208 0.7083
vt 0.0208 0.5625
vt 0.3333 0.5625
vt 0.3333 1.0000
vt 0.0208 1.0000
vt 0.3542 0.6042
vt 0.3542 0.3333
vt 0.6458 0.3333
vt 0.6458 0.6042
vt 0.5625 0.3542
vt 0.5625 0.6458
vt 0.4167 0.7083
vt 0.4167 0.2917
vt 0.6875 0.5208
vt 0.6042 0.6667
vt 0.3542 0.3958
vt 0.5208 0.3333
vt 0.4792 0.7708
vt 0.4792 0.5000
vt 0.6667 0.4167
vt 0.6667 0.7708
vt 0.6667 0.7083
vt 0.4792 0.4583
vt 0.4792 0.3333
vt 0.6667 0.3333
vt 0.0208 0.0000
vt 0.3333 0.0000
vt 0.3333 0.7083
vt 0.0208 0.7083
vt 0.5208 0.3333
vt 0.3542 0.4167
vt 0.6042 0.6667
vt 0.6875 0.5000
vt 0.4792 0.5000
vt 0.4792 0.7708
vt 0.6667 0.7708
vt 0.6667 0.4167
vt 0.6667 0.3333
vt 0.4792 0.3333
vt 0.4792 0.4583
vt 0.6667 0.7083
vt 0.5833 1.0000
vt 0.4167 1.0000
vt 0.4167 0.0000
vt 0.5833 0.0000
vt 0.5625 0.3542
vt 0.5625 0.6458
vt 0.4167 0.7083
vt 0.4167 0.2917
vt 0.6875 0.5208
vt 0.6042 0.6667
vt 0.3542 0.3958
vt 0.5208 0.3333
vt 0.4792 0.7708
vt 0.4792 0.5000
vt 0.6667 0.4167
vt 0.6667 0.7708
vt 0.6667 0.7083
vt 0.4792 0.4583
vt 0.4792 0.3333
vt 0.6667 0.3333
v 2.000000 -1.000001 0.062500
v 1.999999 1.142555 0.062500
v 1.142555 1.999999 0.062500
v -0.999995 -1.000001 0.062500
v -0.999999 0.085789 0.062500
v -1.000000 -0.500001 0.062500
v 0.914214 -0.500001 0.062500
v 0.085786 1.499999 0.062500
v 0.914213 1.499999 0.062500
v -0.500000 0.914213 0.062500
v 1.500000 0.914213 0.062500
v 1.500000 0.085786 0.062500
v 0.085786 -0.500001 0.062500
v -0.500000 0.085786 0.062500
v -0.999995 -1.000000 0.937500
v -1.000000 1.142555 0.937500
v -0.999999 1.142556 0.062500
v -0.142556 1.999999 0.062500
v -0.142556 2.000000 0.937500
vt 0.093750 0.015625
vt 0.296875 0.015625
vt 0.296875 0.218750
vt 0.093750 0.218750
vt 0.703125 0.015625
vt 0.906250 0.015625
vt 0.906250 0.218750
vt 0.703125 0.218750
vt 0.500000 0.015625
vt 0.703125 0.015625
vt 0.703125 0.218750
vt 0.500000 0.218750
vt 0.500000 0.015625
vt 0.703125 0.015625
vt 0.703125 0.218750
vt 0.500000 0.218750
vt 0.728554 0.375000
vt 0.815162 0.250000
vt 1.000000 0.460455
vt 0.875000 0.517540
vt 0.500000 0.218750
vt 0.296875 0.218750
vt 0.296875 0.015625
vt 0.500000 0.015625
vt 0.093750 0.218750
vt 0.093750 0.015625
vt 0.906250 0.015625
vt 0.906250 0.218750
vt 0.250000 0.015625
vt 0.546875 0.015625
vt 0.546875 0.234375
vt 0.250000 0.234375
vt 0.521447 0.375000
vt 0.521447 0.250000
vt 0.375000 0.250000
vt 0.375000 0.521447
vt 0.250000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.250000
vt 0.250000 0.250000
vt 0.250000 0.250000
vt 0.015625 0.250000
vt 0.015625 0.781250
vt 0.250000 0.781250
vt 0.000000 0.015625
vt 1.000000 0.015625
vt 1.000000 0.234375
vt 0.000000 0.234375
vt 0.250000 1.000000
vt 0.015625 1.000000
vt 0.015625 0.703125
vt 0.250000 0.703125
vt 0.250000 1.000000
vt 0.015625 1.000000
vt 0.015625 0.703125
vt 0.250000 0.703125
vt 0.875000 0.724647
vt 1.000000 0.781732
vt 0.815162 1.000000
vt 0.728554 0.875000
vt 0.521447 0.875000
vt 0.521447 1.000000
vt 0.375000 0.728594
vt 0.375000 1.000000
vt 0.250000 0.250000
vt 0.015625 0.250000
vt 0.015625 0.781250
vt 0.250000 0.781250
vt 0.375000 0.728594
vt 0.521447 0.875000
vt 0.521447 1.000000
vt 0.375000 1.000000
vt 0.728554 0.875000
vt 0.815162 1.000000
vt 0.875000 0.724647
vt 1.000000 0.781732
vt 0.875000 0.517540
vt 1.000000 0.460455
vt 0.250000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.250000
vt 0.250000 0.250000
vt 0.375000 0.250000
vt 0.521447 0.250000
vt 0.521447 0.375000
vt 0.375000 0.521447
vt 0.728554 0.375000
vt 0.815162 0.250000
vn 0.7071 0.7071 0.0000
vn -0.7071 -0.7071 -0.0000
vn -0.7071 0.7071 0.0000
@ -181,7 +154,7 @@ vn 0.7071 -0.7071 -0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.0000 1.0000 0.0000
vn 0.0000 -0.0000 -1.0000
vn -0.0000 -0.0000 -1.0000
usemtl Material.002
s off
f 5/1/1 15/2/1 16/3/1 6/4/1
@ -190,27 +163,27 @@ f 3/9/3 1/10/3 2/11/3 4/12/3
f 13/13/4 11/14/4 12/15/4 14/16/4
f 9/17/5 28/18/5 29/19/5 13/20/5
f 11/21/6 7/22/6 8/23/6 12/24/6
f 7/25/7 5/26/7 6/27/7 8/28/7
f 1/29/8 9/30/8 10/31/8 2/32/8
f 30/33/9 22/34/9 21/35/9 29/36/9
f 9/37/5 1/38/5 18/39/5 28/40/5
f 17/41/5 18/42/5 1/43/5 3/44/5
f 19/45/5 17/46/5 32/47/5 25/48/5
f 22/49/3 24/50/3 23/51/3 21/52/3
f 19/53/4 25/54/4 26/55/4 20/56/4
f 26/57/8 25/58/8 23/59/8 24/60/8
f 28/61/1 27/62/1 30/63/1 29/64/1
f 15/65/9 3/66/9 4/67/9 16/68/9
f 11/69/5 13/70/5 29/71/5 21/72/5
f 11/73/5 21/74/5 23/75/5 7/76/5
f 5/77/5 7/78/5 23/79/5 31/80/5
f 15/81/5 5/82/5 31/83/5 32/84/5
f 19/85/7 20/86/7 27/87/7 28/88/7
f 37/89/10 47/90/10 48/91/10 39/92/10
f 37/93/10 33/94/10 42/95/10 47/96/10
f 41/97/10 42/98/10 33/99/10 34/100/10
f 43/101/10 41/102/10 50/103/10 46/104/10
f 38/105/10 39/106/10 48/107/10 44/108/10
f 38/109/10 44/110/10 45/111/10 36/112/10
f 35/113/10 36/114/10 45/115/10 49/116/10
f 40/117/10 35/118/10 49/119/10 50/120/10
f 7/22/7 5/25/7 6/26/7 8/23/7
f 1/10/8 9/27/8 10/28/8 2/11/8
f 30/29/9 22/30/9 21/31/9 29/32/9
f 9/17/5 1/33/5 18/34/5 28/18/5
f 17/35/5 18/34/5 1/33/5 3/36/5
f 19/37/5 17/38/5 32/39/5 25/40/5
f 24/41/8 51/42/8 52/43/8 53/44/8
f 19/45/4 25/46/4 26/47/4 20/48/4
f 53/49/3 52/50/3 55/51/3 54/52/3
f 28/53/1 27/54/1 30/55/1 29/56/1
f 15/2/9 3/9/9 4/12/9 16/3/9
f 11/57/5 13/20/5 29/19/5 21/58/5
f 11/57/5 21/58/5 23/59/5 7/60/5
f 5/61/5 7/60/5 23/59/5 31/62/5
f 15/63/5 5/61/5 31/62/5 32/64/5
f 19/65/7 20/66/7 27/67/7 28/68/7
f 43/69/10 48/70/10 34/71/10 33/72/10
f 48/70/10 47/73/10 38/74/10 34/71/10
f 45/75/10 39/76/10 38/74/10 47/73/10
f 45/75/10 44/77/10 35/78/10 39/76/10
f 40/79/10 42/80/10 33/81/10 37/82/10
f 42/83/10 41/84/10 50/85/10 49/86/10
f 46/87/10 50/85/10 41/84/10 36/88/10
f 46/87/10 36/88/10 35/78/10 44/77/10

View file

@ -1,2 +1,5 @@
# Blender MTL File: 'RotaryConverter.blend'
# Material Count: 1
newmtl None
map_Ka industrialwires:blocks/converter/coils
map_Ka industrialwires:blocks/converter/coils

View file

@ -1,4 +1,4 @@
# Blender v2.78 (sub 0) OBJ File: 'RotaryConverter.blend'
# Blender v2.79 (sub 0) OBJ File: 'RotaryConverter.blend'
# www.blender.org
mtllib single_coil.mtl
o Rotor1Phase_Cube.058
@ -18,54 +18,54 @@ v 0.937500 0.375000 -0.000000
v 0.937500 0.625000 -0.000000
v 0.062500 0.375000 -0.000000
v 0.062500 0.625000 -0.000000
vt 1.0000 -0.0000
vt 1.0000 1.0000
vt 0.5938 1.0000
vt 0.5938 0.0000
vt 0.5000 1.0000
vt 0.5000 -0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.5938 1.0000
vt 0.5938 0.0000
vt 1.0000 -0.0000
vt 1.0000 1.0000
vt 1.0000 -0.0000
vt 1.0000 1.0000
vt 0.5938 1.0000
vt 0.5938 0.0000
vt 0.0312 0.5312
vt 0.4688 0.5312
vt 0.4688 0.9688
vt 0.0312 0.9688
vt 0.0312 0.5312
vt 0.4688 0.5312
vt 0.4688 0.9688
vt 0.0312 0.9688
vt 0.5000 0.2188
vt 0.5000 0.3438
vt -0.0000 0.3438
vt 0.0000 0.2188
vt 0.5000 0.1250
vt 0.5000 0.2500
vt -0.0000 0.2500
vt 0.0000 0.1250
vt 0.5000 0.1562
vt 0.5000 0.2812
vt -0.0000 0.2812
vt -0.0000 0.1562
vt 0.5000 0.2188
vt 0.5000 0.3438
vt 0.0000 0.3438
vt 0.0000 0.2188
vt 0.0000 0.0000
vt 0.5000 0.0000
vt 0.5000 0.5000
vt -0.0000 0.5000
vt 0.0000 0.0000
vt 0.5000 -0.0000
vt 0.5000 0.5000
vt 0.0000 0.5000
vt 1.000000 -0.000000
vt 1.000000 0.666667
vt 0.791667 0.666667
vt 0.791667 0.000000
vt 0.791667 0.666667
vt 0.791667 0.000000
vt 1.000000 0.000000
vt 1.000000 0.666667
vt 0.791667 0.666667
vt 0.791667 -0.000000
vt 1.000000 0.000000
vt 1.000000 0.666667
vt 1.000000 0.000000
vt 1.000000 0.666667
vt 0.791667 0.666667
vt 0.791667 -0.000000
vt 0.062500 0.729167
vt 0.270833 0.729167
vt 0.270833 0.937500
vt 0.062500 0.937500
vt 0.062500 0.729167
vt 0.270833 0.729167
vt 0.270833 0.937500
vt 0.062500 0.937500
vt 0.333333 0.145833
vt 0.333333 0.229167
vt -0.000000 0.229167
vt -0.000000 0.145833
vt 0.333333 0.083333
vt 0.333333 0.166667
vt -0.000000 0.166667
vt -0.000000 0.083333
vt 0.333333 0.104167
vt 0.333333 0.187500
vt -0.000000 0.187500
vt -0.000000 0.104167
vt 0.333333 0.145833
vt 0.333333 0.229167
vt -0.000000 0.229167
vt -0.000000 0.145833
vt -0.000000 -0.000000
vt 0.333333 -0.000000
vt 0.333333 0.333333
vt -0.000000 0.333333
vt -0.000000 -0.000000
vt 0.333333 -0.000000
vt 0.333333 0.333333
vt -0.000000 0.333333
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
@ -73,6 +73,7 @@ vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3

View file

@ -0,0 +1,2 @@
newmtl None
map_Ka industrialwires:blocks/converter/speedometer

View file

@ -0,0 +1,85 @@
# Blender v2.79 (sub 0) OBJ File: 'RotaryConverter.blend'
# www.blender.org
mtllib speedometer.mtl
o Cube.001_Cube.002
v 0.000000 0.312500 0.687500
v 0.000000 0.687500 0.687500
v 0.000000 0.312500 0.312500
v 0.000000 0.687500 0.312500
v 1.000000 0.312500 0.687500
v 1.000000 0.687500 0.687500
v 1.000000 0.312500 0.312500
v 1.000000 0.687500 0.312500
v 0.187500 0.187500 0.750000
v 0.187500 0.812500 0.750000
v 0.187500 0.187500 0.250000
v 0.187500 0.812500 0.250000
v 0.812500 0.187500 0.750000
v 0.812500 0.812500 0.750000
v 0.812500 0.187500 0.250000
v 0.812500 0.812500 0.250000
vt 0.187500 1.000000
vt -0.000000 1.000000
vt -0.000000 0.812500
vt 0.187500 0.812500
vt 0.000000 0.812500
vt 0.000000 0.625000
vt 0.500000 0.625000
vt 0.500000 0.812500
vt 0.187500 1.000000
vt 0.000000 1.000000
vt 0.000000 0.812500
vt 0.187500 0.812500
vt 0.000000 0.812500
vt 0.000000 0.625000
vt 0.500000 0.625000
vt 0.500000 0.812500
vt 0.500000 0.812500
vt -0.000000 0.812500
vt -0.000000 0.625000
vt 0.500000 0.625000
vt 0.000000 0.625000
vt 0.500000 0.625000
vt 0.500000 0.812500
vt 0.406250 0.687500
vt 0.093750 0.687500
vt 0.093750 0.500000
vt 0.406250 0.500000
vt 0.093750 0.812500
vt 0.406250 0.500000
vt 0.406250 0.812500
vt 0.093750 0.812500
vt 0.093750 0.562500
vt 0.406250 0.562500
vt 0.406250 0.500000
vt 0.406250 0.812500
vt 0.093750 0.812500
vt 0.093750 0.500000
vt 0.093750 0.562500
vt 0.406250 0.562500
vt 0.406250 0.812500
vt 0.093750 0.812500
vt 0.343750 0.156250
vt 0.343750 0.468750
vt 0.093750 0.468750
vt 0.093750 0.156250
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/13/4 6/14/4 2/15/4 1/16/4
f 3/17/5 7/18/5 5/19/5 1/20/5
f 8/21/6 4/22/6 2/23/6 6/11/6
f 9/24/1 10/25/1 12/26/1 11/27/1
f 11/28/2 12/26/2 16/29/2 15/30/2
f 15/30/3 16/31/3 14/32/3 13/33/3
f 13/34/4 14/35/4 10/36/4 9/37/4
f 11/38/5 15/39/5 13/40/5 9/41/5
f 16/42/6 12/43/6 10/44/6 14/45/6

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B