From 1fb01d9abd6fb075df7449936949b76d2b164162 Mon Sep 17 00:00:00 2001 From: malte0811 Date: Fri, 23 Mar 2018 16:27:32 +0100 Subject: [PATCH] Started adding 4-phase stuff --- .../converter/MechanicalMBBlockType.java | 3 +- .../TileEntityMultiblockConverter.java | 26 +- .../converter/IMBPartElectric.java | 67 +- .../industrialWires/converter/MechMBPart.java | 48 +- .../converter/MechPartCommutator.java | 25 +- .../converter/MechPartCommutator4Phase.java | 65 ++ .../converter/MechPartFlywheel.java | 4 +- .../converter/MechPartFourCoils.java | 90 +++ .../converter/MechPartFourElectrodes.java | 65 ++ .../converter/MechPartShaft.java | 26 +- .../converter/MechPartSingleCoil.java | 59 +- .../converter/MechPartSpeedometer.java | 10 +- .../converter/MechPartTwoElectrodes.java | 35 +- .../converter/MultiblockConverter.java | 26 +- .../industrialWires/util/MiscUtils.java | 8 + .../industrialwires/blockstates/mech_mb.json | 12 + .../models/block/mech_mb/four_coil.mtl | 7 +- .../models/block/mech_mb/four_coil.obj | 588 +++++++++++++++--- .../models/block/mech_mb/mag_ring.mtl | 3 + .../models/block/mech_mb/mag_ring.obj | 301 ++++----- .../models/block/mech_mb/single_coil.mtl | 5 +- .../models/block/mech_mb/single_coil.obj | 99 +-- .../models/block/mech_mb/speedometer.mtl | 2 + .../models/block/mech_mb/speedometer.obj | 85 +++ .../textures/blocks/converter/coils.png | Bin 1228 -> 1430 bytes .../textures/blocks/converter/mag_ring.png | Bin 2265 -> 3902 bytes .../textures/blocks/converter/speedometer.png | Bin 0 -> 524 bytes 27 files changed, 1223 insertions(+), 436 deletions(-) create mode 100644 src/main/java/malte0811/industrialWires/converter/MechPartCommutator4Phase.java create mode 100644 src/main/java/malte0811/industrialWires/converter/MechPartFourCoils.java create mode 100644 src/main/java/malte0811/industrialWires/converter/MechPartFourElectrodes.java create mode 100644 src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.mtl create mode 100644 src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.obj create mode 100644 src/main/resources/assets/industrialwires/textures/blocks/converter/speedometer.png diff --git a/src/main/java/malte0811/industrialWires/blocks/converter/MechanicalMBBlockType.java b/src/main/java/malte0811/industrialWires/blocks/converter/MechanicalMBBlockType.java index 49de1e5..0176c50 100644 --- a/src/main/java/malte0811/industrialWires/blocks/converter/MechanicalMBBlockType.java +++ b/src/main/java/malte0811/industrialWires/blocks/converter/MechanicalMBBlockType.java @@ -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 diff --git a/src/main/java/malte0811/industrialWires/blocks/converter/TileEntityMultiblockConverter.java b/src/main/java/malte0811/industrialWires/blocks/converter/TileEntityMultiblockConverter.java index e5bcb45..111c58c 100644 --- a/src/main/java/malte0811/industrialWires/blocks/converter/TileEntityMultiblockConverter.java +++ b/src/main/java/malte0811/industrialWires/blocks/converter/TileEntityMultiblockConverter.java @@ -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 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 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)); } } diff --git a/src/main/java/malte0811/industrialWires/converter/IMBPartElectric.java b/src/main/java/malte0811/industrialWires/converter/IMBPartElectric.java index c083675..abfa4f3 100644 --- a/src/main/java/malte0811/industrialWires/converter/IMBPartElectric.java +++ b/src/main/java/malte0811/industrialWires/converter/IMBPartElectric.java @@ -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)> REGISTRY = HashBiMap.create(); + public static final BiMap> REGISTRY = HashBiMap.create(); + + public static final Comparator 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 initializer) { world = w; diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartCommutator.java b/src/main/java/malte0811/industrialWires/converter/MechPartCommutator.java index 3f4b03e..f11308e 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartCommutator.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartCommutator.java @@ -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; + } } diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartCommutator4Phase.java b/src/main/java/malte0811/industrialWires/converter/MechPartCommutator4Phase.java new file mode 100644 index 0000000..8a34db0 --- /dev/null +++ b/src/main/java/malte0811/industrialWires/converter/MechPartCommutator4Phase.java @@ -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 . + */ + +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"); + } +} diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartFlywheel.java b/src/main/java/malte0811/industrialWires/converter/MechPartFlywheel.java index 782415d..7393378 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartFlywheel.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartFlywheel.java @@ -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; diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartFourCoils.java b/src/main/java/malte0811/industrialWires/converter/MechPartFourCoils.java new file mode 100644 index 0000000..b67510d --- /dev/null +++ b/src/main/java/malte0811/industrialWires/converter/MechPartFourCoils.java @@ -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 . + */ + +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"); + } +} diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartFourElectrodes.java b/src/main/java/malte0811/industrialWires/converter/MechPartFourElectrodes.java new file mode 100644 index 0000000..9e0cc60 --- /dev/null +++ b/src/main/java/malte0811/industrialWires/converter/MechPartFourElectrodes.java @@ -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 . + */ + +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"); + } +} diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartShaft.java b/src/main/java/malte0811/industrialWires/converter/MechPartShaft.java index ccb78b9..ca59e69 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartShaft.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartShaft.java @@ -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 diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartSingleCoil.java b/src/main/java/malte0811/industrialWires/converter/MechPartSingleCoil.java index a91dec4..5747431 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartSingleCoil.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartSingleCoil.java @@ -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 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; + } } diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartSpeedometer.java b/src/main/java/malte0811/industrialWires/converter/MechPartSpeedometer.java index 86d9540..3dded28 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartSpeedometer.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartSpeedometer.java @@ -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; diff --git a/src/main/java/malte0811/industrialWires/converter/MechPartTwoElectrodes.java b/src/main/java/malte0811/industrialWires/converter/MechPartTwoElectrodes.java index 4daff7c..43a2195 100644 --- a/src/main/java/malte0811/industrialWires/converter/MechPartTwoElectrodes.java +++ b/src/main/java/malte0811/industrialWires/converter/MechPartTwoElectrodes.java @@ -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; + } } diff --git a/src/main/java/malte0811/industrialWires/converter/MultiblockConverter.java b/src/main/java/malte0811/industrialWires/converter/MultiblockConverter.java index 4a3e6d8..f19e4dd 100644 --- a/src/main/java/malte0811/industrialWires/converter/MultiblockConverter.java +++ b/src/main/java/malte0811/industrialWires/converter/MultiblockConverter.java @@ -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 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; diff --git a/src/main/java/malte0811/industrialWires/util/MiscUtils.java b/src/main/java/malte0811/industrialWires/util/MiscUtils.java index 398577c..f508e69 100644 --- a/src/main/java/malte0811/industrialWires/util/MiscUtils.java +++ b/src/main/java/malte0811/industrialWires/util/MiscUtils.java @@ -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; + } } \ No newline at end of file diff --git a/src/main/resources/assets/industrialwires/blockstates/mech_mb.json b/src/main/resources/assets/industrialwires/blockstates/mech_mb.json index 12a7789..f2d1743 100644 --- a/src/main/resources/assets/industrialwires/blockstates/mech_mb.json +++ b/src/main/resources/assets/industrialwires/blockstates/mech_mb.json @@ -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": { } }, diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.mtl b/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.mtl index a0a4180..58c50bb 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.mtl +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.mtl @@ -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 diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.obj b/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.obj index 1125bd7..b2610a3 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.obj +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/four_coil.obj @@ -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 diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.mtl b/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.mtl index 2d86490..17380fb 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.mtl +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.mtl @@ -1,2 +1,5 @@ +# Blender MTL File: 'RotaryConverter.blend' +# Material Count: 1 + newmtl Material.002 map_Ka industrialwires:blocks/converter/mag_ring diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.obj b/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.obj index 8d6b7b5..d0b6864 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.obj +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/mag_ring.obj @@ -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 diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.mtl b/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.mtl index 1943eeb..58c50bb 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.mtl +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.mtl @@ -1,2 +1,5 @@ +# Blender MTL File: 'RotaryConverter.blend' +# Material Count: 1 + newmtl None -map_Ka industrialwires:blocks/converter/coils \ No newline at end of file +map_Ka industrialwires:blocks/converter/coils diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.obj b/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.obj index f06fe06..a789aa1 100644 --- a/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.obj +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/single_coil.obj @@ -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 diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.mtl b/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.mtl new file mode 100644 index 0000000..983883b --- /dev/null +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.mtl @@ -0,0 +1,2 @@ +newmtl None +map_Ka industrialwires:blocks/converter/speedometer diff --git a/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.obj b/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.obj new file mode 100644 index 0000000..8a878a8 --- /dev/null +++ b/src/main/resources/assets/industrialwires/models/block/mech_mb/speedometer.obj @@ -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 diff --git a/src/main/resources/assets/industrialwires/textures/blocks/converter/coils.png b/src/main/resources/assets/industrialwires/textures/blocks/converter/coils.png index 4e7ed44f827ae9f92c288b99ca37b1788092b1e0..dd39ca394efb55abe0015c70eb426e90984bb7ce 100644 GIT binary patch delta 1379 zcmV-p1)TcK36={XiBL{Q4GJ0x0000DNk~Le0000m0000m2m$~A0N7w|(2*e@2?G=q z83c&I%$$))D}MzHNklo)yL&S2WM-V$Fh~g)jADqLfJ782d;(iO z0g0br#b2;vf%uCEWfebygDn)WRQC*EY7k`1VIq<@5d5 zUoI^)BQ0M!fA=hpq!dTLy*S?M4i9$%p%B7xf2cW+wEzf=(HSLVs<`4dx7XilAMbTZ z#n1Zo)6v;Uti&tl?{r2pN{ISwl4UcWeSUjwV{5Vb4lZIgiEss%8ZpxU<=O98S(VW0 zhwoKWNPl0h%S571`QZ*OVm8(QA&I2iS6uP8XRjUabysiIWg@4pkjn?Y^sO87&9j3$ zpM2E+qX!-=_y8fBtBE9C-(1JLSUGitOxM^!i4O}w{`BbQM9afoJ{xOz5>{`15M02! zSUGitjP;|^jcGL(E`7Z8zUi7|{>s{;HA2Xk3V&8kT_NxuAdHGKFKp+iU!0CQNB!^i zf$l!PI~>sl?YzuKSIfMxSUGitD5H$g@ii|jWt4MHDa{LemKW#mGDfGaP+{EAxWc%z zp^=O;MkV8)_I^F=--TwlNyy!&q}SbtgW_B+Gj|BypF`!9A5PUEdtzwIrHcMeXc ztq{F;?_Lx|LI@#*bAJhd15Bd{aBD5+yeJA|%vZPGuBH%UOerO$6hd&$8Dq{lr4%6q z0Hl=oq)NC_%6spebIw)nA*;yk{m*7AQh!l zyJE>=_s32Cj-6k6-^V{2`eWrM+>67Idv^Bg<9 zvO?n~$g+%c-tYHA2;*^@rh~yCP18!aF(ye8l(2FSg%Hrd{eGVi5=Bu_6yq@=LEV0wO-LBS}F;)pzN&x^8n#5(^dw&3M&Y{l6 z7|uBoMPo}TE8%5XGRD03leml!!Wau72q8iUN-0b{j9}+n6h&3>^R~YbIRpS>+h2$r zs?};^+gDa-8aZ@wax%94g~%av>x3?wMh=~~{e{RO0Px<25GHilf1X3$`y@#&P!5F< zhQpz?_M+s_oBhz6{m`5J(0{aZ=zK6v(nBGHMx)Vgw;w-#jLaydN-1kC?zYfAuaCD{ zt#-Tp@Zm!MSiMa+@x#Nzxw*MsuV;)|A-$z* zm#Zn{z0a}?H7A5vYZ+sN5Im0p0DgUaywPYFV{jL{x?Hh`Fz>CkMJ!QBDV=jj5&eP` l@r?ZX`1r360I1qSe*#by)!B`$1|$Fg002ovPDHLkV1jsalNkU2 delta 1175 zcmV;I1Zew~3(N^2iBL{Q4GJ0x0000DNk~Le0000W0000W2m$~A0Q?y3qmdyW2?7Wd z7%v*h#R`#0D}Mw+Nkls>qEq_$}sYEXenMGb1x@<7!Geh&Nv z-uOBE3sj*>NaTyOu}~o>Es4{#`LNe(@9xap;o(YFk&vqO%WC9%Jm;Ky&mDO6(~sM` z2Y0#y#sEE@XL&=)$jE?!3t^NnZ6lLrc{z@5#M`?Ed4DGFZgeA~K8PP*<&jeI&7W`2 zkH@pKVPJqEoM$s5L~JBt;2auSs-_lN*xcU!cyN9^{^RU&esvLR`9b{k^}L~_Y_BG1 z+W6+%hugacce8UH8%J>G_;C44XP4y=kM3`9F*42E4QHOZmj%VZDf!! z#wL@=5BK^-r7KEzH7gYtoWt7M+Ue=(Y&Kh8U%#2Q zPK3D13&PAw_oA+YxpSrWt%m8fVlKFm^1Itn_;kGy>7;+--O-2x^jgVDYzSG~L9dn2 z)qfmd_vnN%_I&u#dXE^=P9n6}IeznC^Dfc!T5;_e(AA8Ed1W7OZlGUZY;q&grfnWR zdid^W1S}A;wgbiju&{e{Ivia#4*s*roWsgmOmeo5&+l*E1s1mJIw(pztK8$w{)5{a zr0DbiQ}keSoL$dmOYFh$AsNQP|Po6x9qDV?9rF70Q#u#IC z5JCWel+s!&geZ!lEX(ij->T<;bFQ^kN=Ye&5S(-8oYtB#hKNcj#+cUHd+(fc&ecwl z5CReV{r+Gu*xTEaQhM*LwE)05r*E33gTdhG)2FaRib&?+;o-%_h4-Fw&N**3n}5zZ zYpwSl0H{iQ_4j~t0O)qR01(G<2mt`9s#;7%Yu)K|=yzCZ4;TPY_vz{+NkRySXpBKb zYppTHdoP4wj4d+*l2%of*1FwpPbL#1mn@A+jtBA%85+&1Q2tot9;pBuP;e%gi8zz&S_6EXx>UQ4|$L zu{blvq?EK`Aq4MzZ3h%bA%qYjgiw}c9LH5v(d5VDu`xz#jfh0BOp3hsi0GW7K9prC zgdk$26eY@gA3|6rMInR`LZ{Oi3^~V{{Q?jP@B3JDpBhmYj3%{nlnp2lPx@ pYe}+mjwmTVM7elM5wWg=e*x?mOkl4$Dg*!k002ovPDHLkV1oXJIvD@} diff --git a/src/main/resources/assets/industrialwires/textures/blocks/converter/mag_ring.png b/src/main/resources/assets/industrialwires/textures/blocks/converter/mag_ring.png index 47824622df5146923d8db3757d86b09d52f92183..f8c11b1b57c72f6578590ebe92ecb6e0edf46a1d 100644 GIT binary patch literal 3902 zcmV-E55e$>P)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-*o6crjEo-Gl%000i%NklmSdmPWw)k}5vJN(Q? zYbJq=xo~)Wh&)|O*SGz?t)hMQ*=L;dJkJfoh~qfV^E}Tj%VLZrNs{NerfH^WCP|`c zT9#!&5IByL=Q-z`F{bN!nx>2~ETos%6OX28nx>^`nq`@;>q3Yu%QQ_(l0*oRrYYuN zEqyV|vM>yFUB_D5HVi}G_c1D^6uPcEj)QL)hG7^6V@xT<7&A@NFpMNgbX~VBE6;N& zrQ&8oRr@j^jWGrBdnm_;_`7 z6*7bzG);qq4a3kh?eOq$b#+xKrD<9a1mNS18#lJMw|(D-UXVx`W0gu}X=!PDdppl_ zePw0EFpT5lSnR;$1M`s-jYP)aGKgb+fABuU!s zcC}h%e>}Rb>$;w0*>E^)x7(FUg-&eS_Uh{DXfz_71lf=_MA2+Ed%a$kWzeYKe*0}S z8ZpL%5F`OmE~V^rIv5SZP`h{Up5r*pX7ljy(D(hXzWRz7k1uU)ZG~aj>2zwfnv^n* z$;kzt*@_JmIWIy3`0tpWf_Jr)3$BT^B~ZRi;Ex#FjLbsrBs@x zu#F%HU>ji=;=?#MxCm6h!m%O1N%0Mc2al9el}ZJ~K+grvie*t0H5v_YmodgUryVs- zvu%4g95TkDC~{pFXB9#~kstwl&oB&K*P|%noP(+;il8t+k|aqu=kzj7Q_Hf*kn%h) z4wHC~korgb+~_0e_9Hk_V@AVVk!353i*kaTR@j^p^7Z@vLZWd2)QTb}3Tc|IDA@E%SIn5dM3lX4tK zDRpsi5yx@S6Q7=*j(OsKzyH^s7z`%2U8z*yVPH-;06ZG!{7M307>-6G%d*zj*8vXL z1*!%o0D96ijpO+I{G3dDj6-j|_0~W1#6Sg2)1oN){rBIYO8^XtdX|@$`~Civ4dBGB zR_p20r|-Z2K0z4tERN&Z+1XaBHR*{-uZkS9EbD_0KG@yeg^pgs69e&2|x0 z{v0@=>pC3~p97i! zDooRypPz@;T&WPEiztdZolY^BgRqh$saC6D7-D7|$CsCvuInx?E)E8RNe;ooudJ+` zpPy@*=KH=7;+J23`3p~M+xFwfkI56CpPw%+EkUGEQFuw9Gyb+L3;sbc#t>KhZ8!}A z#{9q}hoqFG?ovva{#2g0R;y7+OM!`$(y}aYp*VU)fa5rE97j<^_ye=U)=?C}cftlN z%fe421CHb15K>A_)9@KELMiqA_usQ=p3Tio-}ix`gTWxrbIf=1VY78p_HoE z>o~FNx=JZZUmVAQ5+_Mw+cpphhNzV4cDvjOzP$bhdzx?t`fIY?NS(Z7D z69fSaW^D8tr=MznaddQqqaz*$$`a`aZV_1sArRidLsPazQ3Tz ztkr5k1(i|&UDGt1sVrFIrDnv;z1%XMAk zav&6n1bTuXK;elZc*v2mnaR;>81Yp5bHgx%5Lab7A)Y*W^5c&`K6>=%@#DvaVeIYg zVHqMN;3;EFN_lvANO>H^(vzdt@B>rrFDQEi*FXLA(|*5Cf&1;-w-HAKK~SsJ27>{# zaD9Ef-EMa}9hzwv213BG(d*g3o9{1@Btf(zrIb=WdGbU`dH3$!`}gldb2c|Ol~TQ4 z5Ai7?!RODPQ+`cwiQ?JV=rvSms{IAv(sfoO6Ej=1tG@P+IEu`#})sx=vwP7>3YAczCKV6+w_j0dx26-J7aE zfGoUPts=b!a3i6?=0Ol3^;Jp@1_O>{YBU;!VHk$t{{FsF>d~V|S(feW?CkIFd!9!D zA5tv{2U!Kq3JQy9G_pa*aeUu*U02t2&-2RVvhVwjFLVK3Xts@Rf&UxgJ!ddGIh}t14%obPP5rG3?m2vPTmTokuVHR(}Y_nm&-3- zzQnn)1r->jlY|}g|sYdetv#=c^NTfF&}^_ z*X#AArKPL<7>P@gBp_V~vCjXie3fT8OBi$5gV7oc9sMb2$gNwqj*gB_PEO)D9^;Uv zY0sWLgZYMGXj#^@RSAeb)967_c^x|vhfLEP>k=UUn5sVjl`gKr zgh^SYY5HeIc5rYoH#gVmbd*xmV?@k7H#c{7c19T)DGwza6st^j3CP2|d4B++o18#S z4FC#z_%kCrIy&n2`}KMqB}>AJgM)*9zyI#L?-m=9Me<;gP|(RPf#W#S_6Japj)@wU0htm z`)hb&Aw;{~zH#FQah(X$G_BokH=E7N%S+$)IRtH47TPdU%3iNG7!11IZm-v)ejCic zR4QSwn>TMZn@y+_yadh!)Way=U(XY3ng(YK9iv_-h=C^tKxv;JU>dQIa5K zOOiw&A}1FM$AgbSH3>$5QP3QqDh^GxAjC+t!&svdZhH)ceBUQeLa8v~MM#pm zX3(h9(^KI%&R8Rn{vCq|$_HMFDzAhT!jLyyf{YJ3_TGE%?d{p}K5(xD+JC#BaA8rcRgMxZ27DwPOcib*lrZZQ_e#}G<@&f#zf2#cbK zy{u_1c0I#h3o=q1{PDOOJ^2j6F5DT?3J;2FPyA0kv6S-U0!S(U2bRHJf_2avQvd(} M07*qoM6N<$f*lV_2><{9 delta 2260 zcmV;_2rKu#9@!BgiBL{Q4GJ0x0000DNk~Le0000m0000m2m$~A0N7w|(2*e@e*zj6 z2m7y5X zlAn(;W+5R#V)P+mqK2$9lS$9?^sTCTAHHnaJ1kj8$giJf=6q9q>Ri8bjJ35jN@!QA*``&KS${9MWd9*=RI2Ha5tAo|ToAqoboFNu-p75FqnBf2Wi(#_rs? zb98j{?c29M02_}UJ#t+)2!iS9Y2WwZ6s44uk}*apRZ1Nl9ZgS9M^U6LFMn3 zEY5{%@L$6)q9{5&J*`wKu+Z;=-@JKqVWFj^rLSMV5<;Fof36J!Q?IYD*X#8kKYomj zjcE(nwmma5lOzeHG)+?}f2C=fhG8(qlv14YMx)W~cK-m(^}9XKGYn&Xe%`ii#E@y4 zQ4}eqAR>ha2SriTYPH}9JdCliu`$cCia(A7=6E*}AxV-(qd^D(f>LT221JHoIF8fr z_X#16<8aP}5OEv}Au5#$4&j{ldOchZrwbuQ0$*4NDK{7lD5Wo6f4qRFbo4!a`gAZD z7=}S9#Xk`N8m5%0R4RlJs5>Mb34EbYp66MX!3+xv3pxu};n87;Ln);~h+?!A9aNN# z1pZ|qXkZvdqtVdGX;~JGr|Oe+*sMMX*Ov6a;}TzPN+VAWG>-;9nMs<2VdM+qUQD=aFBOQYmGg z=TgdEuP21imq0vGN;{oSsZ<&&zWsi`UaxDzj|Bde_NHkzo6S$3KHa{38!kg_g!BOzHG)*1Hf!C8H$+8StV4CLC)Rbje zd7k%rz4P<)fAR5gyd%r9PN!3^*Nf8W>FM7GU$l;?sVQjSd7cnLGbYz{Ip<2LEXy3n zfy>i0WsKo+h=wf7EX&gNACis)CWLUtn3S?yE>BEMbh}+CrDa*RZF`<4r9_c{@3SmR zk_0LunRU%Xl`9rH{b3|9A%rGL!Wav~u;1@nmgP8(e{LpF)OB6QaXimU(-iKbl!D_a zrI0K_2$X+#wkRD5ObDUnav5ccG3Gc_5 zscSz@9FmR%CWP=OPo5-662~!e3YWNc?V7G&U|5VX&-1`t-oJmpx3|}7wV*oZ97vtX zMd{Gjf6Kvy5Pp1o3{^Pi$TD;Z-QYk3D5acp%d!yEl+u}*nIH&+5T|64i| z_!pU1lCt&bsG#Z^w2Qi`P6%HMejs)gemZ4i= zFg-Xph@xn9b#-H71D<;P_^}Y8)9IjWe;~_H&{2pr|A%RZq$7a|Asp%Ld7kh4hGE>j zdl&N|xU6Mah#Stil(JH(Kzq;g&_gWC0;en1x}tO>@CC_7bHNDr?%lg0cV1dr%ChXs zmoM7usF2`pob!Ia5AvkP%ONR(<2S(PwPLwb0t?5w7$Ns8ROa6nd3Nzf0ci@t_uqZ zA!HbG&gbUlH2v7z+`Pj5kY|e@bEAQg4x+weahADhcshcU0u~I6MYU^FE1|-k^Ik}KVRW~=-IPp zlarISZDVA?3I^2(Ty8KJe_&u0LMWxW-EO^Jzry{HZQEeljIkt15Hxxw1oO3R8?~y} z>!CYd-G0beTU)a%t5&OF3!A2C6h#PUN@=}bM>e8$NlK;C74C;z*OgMjDp{ywN~s@Gwv>Y7 ip^(mD*LAOSKlE>3`)Q=vRMQUt0000 diff --git a/src/main/resources/assets/industrialwires/textures/blocks/converter/speedometer.png b/src/main/resources/assets/industrialwires/textures/blocks/converter/speedometer.png new file mode 100644 index 0000000000000000000000000000000000000000..3b873a17a8a8c7d14794ca3914d23a6b2a6d46d3 GIT binary patch literal 524 zcmV+n0`vWeP)pF2XskIMF-*o2M;7xV6ot>VO+d5* z;sL_ip(|OtN1gftdA5+f6ED!MA}`RY6B#-&AQ1sVv2TYMN|RLlnNGb^WF7gte?Flw z42j6|JY$U3nwiJrG2DfcQhJ`(?REi3DQB}8oQ7cLJkRfwPRE2We@U_fk1VoL(5vf}~mcAJQbqOb=9 zXqz?kwg{jqJHADm&8FAuRhMVKQ2>Bu*)afP%wn;q9@kc>S$0IwZZB_#1Dm)c7zO}A z&|LEJbb6*$)QGUR12DXs!TImtU~}97=;!*Q_8`s*a_$YkR?z4W0P@N75`bvv1_3~n zW>K15Wyn#Q0f+-10?-6#&h{_D2NoKQVH)Ggy(_qkO6=(bCA6bRKmE#|9FunlnXU46{IcKo| O0000