Change the structure of the Marx generator to not include IC2 blocks
Finish up the texture/model Fix some bugs where the energy storage goes negative and starts charging the marx to -Infinity V
This commit is contained in:
parent
5667768420
commit
c18d94899a
|
@ -30,7 +30,7 @@ sourceCompatibility = 1.8
|
|||
targetCompatibility = 1.8
|
||||
|
||||
minecraft {
|
||||
version = "14.21.1.2404"
|
||||
version = "14.21.1.2443"
|
||||
runDir = "run"
|
||||
|
||||
replace '${version}', project.version
|
||||
|
|
|
@ -22,6 +22,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
|
@ -33,7 +34,8 @@ public class IWPotions {
|
|||
static class PotionTinnitus extends Potion {
|
||||
protected PotionTinnitus() {
|
||||
super(true, 0xffff0000);
|
||||
REGISTRY.register(-1, new ResourceLocation(IndustrialWires.MODID, "tinnitus"), this);
|
||||
this.setRegistryName(new ResourceLocation(IndustrialWires.MODID, "tinnitus"));
|
||||
ForgeRegistries.POTIONS.register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -37,9 +37,14 @@ public class IWSaveData extends WorldSavedData {
|
|||
super(IndustrialWires.MODID);
|
||||
}
|
||||
|
||||
public IWSaveData(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(@Nonnull NBTTagCompound nbt) {
|
||||
NBTTagCompound ores = nbt.getCompoundTag(MARX_ORES);
|
||||
MarxOreHandler.reset();
|
||||
MarxOreHandler.load(ores);
|
||||
}
|
||||
|
||||
|
@ -54,12 +59,13 @@ public class IWSaveData extends WorldSavedData {
|
|||
public static void onWorldLoad(WorldEvent.Load event) {
|
||||
World w = event.getWorld();
|
||||
if (!w.isRemote) {
|
||||
MarxOreHandler.reset();
|
||||
INSTANCE = (IWSaveData) w.loadData(IWSaveData.class, IndustrialWires.MODID);
|
||||
if (INSTANCE==null) {
|
||||
INSTANCE = new IWSaveData();
|
||||
w.setData(IndustrialWires.MODID, INSTANCE);
|
||||
MarxOreHandler.reset();
|
||||
MarxOreHandler.load(new NBTTagCompound());
|
||||
w.setData(IndustrialWires.MODID, INSTANCE);
|
||||
INSTANCE.setDirty(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import net.minecraft.creativetab.CreativeTabs;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.Mod.EventHandler;
|
||||
|
@ -162,6 +163,7 @@ public class IndustrialWires {
|
|||
packetHandler.registerMessage(MessageItemSync.HandlerServer.class, MessageItemSync.class, 3, Side.SERVER);
|
||||
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy);
|
||||
IWPotions.init();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -18,10 +18,17 @@
|
|||
|
||||
package malte0811.industrialWires.blocks;
|
||||
|
||||
import malte0811.industrialWires.util.MiscUtils;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.RayTraceResult;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
@ -33,11 +40,16 @@ public abstract class BlockIWMultiblock extends BlockIWBase {
|
|||
@Override
|
||||
public void breakBlock(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull IBlockState state) {
|
||||
TileEntity te = world.getTileEntity(pos);
|
||||
if(te instanceof TileEntityIWMultiblock)
|
||||
if(te instanceof TileEntityIWMultiblock) {
|
||||
((TileEntityIWMultiblock)te).disassemble();
|
||||
}
|
||||
super.breakBlock(world, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDrops(@Nonnull NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, @Nonnull IBlockState state, int fortune) {
|
||||
//NOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTopSolid(IBlockState state) {
|
||||
|
@ -58,4 +70,14 @@ public abstract class BlockIWMultiblock extends BlockIWBase {
|
|||
public boolean isFullCube(IBlockState state) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public ItemStack getPickBlock(@Nonnull IBlockState state, RayTraceResult target, @Nonnull World world, @Nonnull BlockPos pos, EntityPlayer player) {
|
||||
TileEntity te = world.getTileEntity(pos);
|
||||
if (te instanceof TileEntityIWMultiblock) {
|
||||
return MiscUtils.getItemStack(((TileEntityIWMultiblock) te).getOriginalBlock(), world, pos);
|
||||
}
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ package malte0811.industrialWires.blocks;
|
|||
|
||||
import malte0811.industrialWires.util.MiscUtils;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
@ -65,31 +67,33 @@ public abstract class TileEntityIWMultiblock extends TileEntityIWBase {
|
|||
T master = master(here);
|
||||
return master!=null?master:def;
|
||||
}
|
||||
public void disassemble()
|
||||
{
|
||||
if(formed && !world.isRemote)
|
||||
{
|
||||
public void disassemble() {
|
||||
if (formed && !world.isRemote) {
|
||||
BlockPos startPos = getOrigin();
|
||||
BlockPos masterPos = getPos().subtract(offset);
|
||||
long time = world.getTotalWorldTime();
|
||||
Vec3i size = getSize();
|
||||
for(int up=0;up<size.getX();up++)
|
||||
for(int forward=0;forward<size.getY();forward++)
|
||||
for(int right=0;right<size.getZ();right++)
|
||||
{
|
||||
for (int up = 0; up < size.getX(); up++) {
|
||||
for (int forward = 0; forward < size.getY(); forward++) {
|
||||
for (int right = 0; right < size.getZ(); right++) {
|
||||
BlockPos pos = MiscUtils.offset(startPos, facing, mirrored, right, forward, up);
|
||||
TileEntity te = world.getTileEntity(pos);
|
||||
if(te instanceof TileEntityIWMultiblock)
|
||||
{
|
||||
if (te instanceof TileEntityIWMultiblock) {
|
||||
TileEntityIWMultiblock part = (TileEntityIWMultiblock) te;
|
||||
Vec3i diff = pos.subtract(masterPos);
|
||||
if (part.offset.equals(diff)&&time!=part.onlyLocalDissassembly)
|
||||
{
|
||||
if (part.offset.equals(diff) && time != part.onlyLocalDissassembly) {
|
||||
part.formed = false;
|
||||
part.getOriginalBlockPlacer().accept(world, pos);
|
||||
if (!pos.equals(this.pos)) {
|
||||
part.getOriginalBlockPlacer().accept(world, pos);
|
||||
} else if (part.getOriginalBlock()!=null) {
|
||||
ItemStack drop = MiscUtils.getItemStack(part.getOriginalBlock(), world, pos);
|
||||
world.spawnEntity(new EntityItem(world, pos.getX()+.5,pos.getY()+.5,pos.getZ()+.5, drop));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler.Conn
|
|||
import blusunrize.immersiveengineering.common.IEContent;
|
||||
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_Connector;
|
||||
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0;
|
||||
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration2;
|
||||
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDevice0;
|
||||
import ic2.api.item.IC2Items;
|
||||
import malte0811.industrialWires.IndustrialWires;
|
||||
import malte0811.industrialWires.blocks.IWProperties;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
|
@ -68,7 +68,6 @@ public class MultiblockMarx implements IMultiblock {
|
|||
@Override
|
||||
public boolean createStructure(World world, BlockPos pos, EnumFacing side, EntityPlayer player) {
|
||||
facing = side.rotateY();
|
||||
ItemStack hvCableStack = IC2Items.getItem("cable", "type:iron,insulation:0");
|
||||
boolean mirrored = false;
|
||||
Predicate<BlockPos> hvCap = (local) -> {
|
||||
IBlockState b = world.getBlockState(local);
|
||||
|
@ -85,9 +84,22 @@ public class MultiblockMarx implements IMultiblock {
|
|||
ItemStack stack = new ItemStack(b.getBlock(), 1, b.getBlock().getMetaFromState(b));
|
||||
return ApiUtils.compareToOreName(stack, "blockSteel");
|
||||
};
|
||||
Predicate<BlockPos> uninsHCCable = (local) -> {
|
||||
BiPredicate<BlockPos, Boolean> wallmount = (local, up) -> {
|
||||
IBlockState b = world.getBlockState(local);
|
||||
return ItemStack.areItemStacksEqual(b.getBlock().getPickBlock(b, null, world, local, player), hvCableStack);
|
||||
if (b.getBlock()==IEContent.blockMetalDecoration2) {
|
||||
b = b.getBlock().getActualState(b, world, local);
|
||||
if (b.getValue(IEContent.blockMetalDecoration2.property)== BlockTypes_MetalDecoration2.STEEL_WALLMOUNT) {
|
||||
int int_4_wanted = up ? 0 : 1;
|
||||
return b.getValue(IEProperties.INT_4)==int_4_wanted;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
Predicate<BlockPos> steelFence = (local) -> {
|
||||
IBlockState b = world.getBlockState(local);
|
||||
b = b.getBlock().getActualState(b, world, local);
|
||||
ItemStack stack = new ItemStack(b.getBlock(), 1, b.getBlock().getMetaFromState(b));
|
||||
return ApiUtils.compareToOreName(stack, "fenceSteel");
|
||||
};
|
||||
Function<BlockPos, Byte> hvRelayWith = (local) -> {
|
||||
IBlockState state = world.getBlockState(local);
|
||||
|
@ -148,8 +160,8 @@ public class MultiblockMarx implements IMultiblock {
|
|||
}
|
||||
}
|
||||
//Ground discharge electrode
|
||||
for (int i = 0;i<3;i++) {
|
||||
if (!uninsHCCable.test(offset(pos, facing, mirrored, 0, i+2, 0))) {
|
||||
for (int i = 0;i<4;i++) {
|
||||
if (!steelFence.test(offset(pos, facing, mirrored, 0, i+1, 0))) {
|
||||
continue mirrorLoop;
|
||||
}
|
||||
}
|
||||
|
@ -161,15 +173,21 @@ public class MultiblockMarx implements IMultiblock {
|
|||
while (pos.getY()+stages<=255) {
|
||||
boolean end = false;
|
||||
byte other = -1;
|
||||
for (int i = 0;i<2;i++) {
|
||||
if (!hvCap.test(offset(pos, facing, mirrored, i, 0, stages))) {
|
||||
for (int right = 0;right<2;right++) {
|
||||
if (!hvCap.test(offset(pos, facing, mirrored, right, 0, stages))) {
|
||||
continue mirrorLoop;
|
||||
}
|
||||
if (!uninsHCCable.test(offset(pos, facing, mirrored, i, 1, stages))) {
|
||||
continue mirrorLoop;
|
||||
if (!wallmount.test(offset(pos, facing, mirrored, right, 1, stages), right!=0)) {
|
||||
if (right==0) {
|
||||
if (stages!=0) {
|
||||
continue mirrorLoop;
|
||||
}
|
||||
} else {
|
||||
end = true;
|
||||
}
|
||||
}
|
||||
byte here = hvRelayWith.apply(offset(pos, facing, mirrored, i, -1, stages));
|
||||
if (i==1&&here!=other) {
|
||||
byte here = hvRelayWith.apply(offset(pos, facing, mirrored, right, -1, stages));
|
||||
if (right==1&&here!=other) {
|
||||
continue mirrorLoop;
|
||||
}
|
||||
if (stages!=0&&(here&2)==0) {
|
||||
|
@ -193,8 +211,8 @@ public class MultiblockMarx implements IMultiblock {
|
|||
}
|
||||
}
|
||||
// Top electrode
|
||||
for (int i = 0;i<3;i++) {
|
||||
if (!uninsHCCable.test(offset(pos, facing, mirrored, 1, i+2, stages-1))) {
|
||||
for (int i = 0;i<4;i++) {
|
||||
if (!steelFence.test(offset(pos, facing, mirrored, 1, i+1, stages-1))) {
|
||||
continue mirrorLoop;
|
||||
}
|
||||
}
|
||||
|
@ -223,7 +241,7 @@ public class MultiblockMarx implements IMultiblock {
|
|||
}
|
||||
}
|
||||
//conns
|
||||
for (int i = 0;i<2;i++) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
set(world, offset(pos, facing, mirrored, i, -3, 0), connModel, stages, pos);
|
||||
}
|
||||
//bottom electrode
|
||||
|
@ -253,9 +271,9 @@ public class MultiblockMarx implements IMultiblock {
|
|||
TileEntity te = world.getTileEntity(p);
|
||||
if (te instanceof TileEntityMarx) {
|
||||
TileEntityMarx marx = (TileEntityMarx) te;
|
||||
marx.setStageCount(stages);
|
||||
marx.offset = p.subtract(origin);
|
||||
marx.formed = true;
|
||||
marx.setStageCount(stages);
|
||||
marx.markDirty();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,11 @@ import blusunrize.immersiveengineering.api.energy.wires.redstone.IRedstoneConnec
|
|||
import blusunrize.immersiveengineering.api.energy.wires.redstone.RedstoneWireNetwork;
|
||||
import blusunrize.immersiveengineering.common.IEContent;
|
||||
import blusunrize.immersiveengineering.common.blocks.BlockTypes_MetalsIE;
|
||||
import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces;
|
||||
import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IDirectionalTile;
|
||||
import blusunrize.immersiveengineering.common.blocks.metal.*;
|
||||
import blusunrize.immersiveengineering.common.blocks.wooden.TileEntityWallmount;
|
||||
import blusunrize.immersiveengineering.common.util.Utils;
|
||||
import blusunrize.immersiveengineering.common.util.chickenbones.Matrix4;
|
||||
import ic2.api.item.IC2Items;
|
||||
import malte0811.industrialWires.*;
|
||||
|
@ -46,7 +50,6 @@ import net.minecraft.block.state.IBlockState;
|
|||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagDouble;
|
||||
|
@ -56,19 +59,19 @@ import net.minecraft.potion.PotionEffect;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.ITickable;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
import net.minecraft.util.math.*;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
import static malte0811.industrialWires.util.MiscUtils.getOffset;
|
||||
import static malte0811.industrialWires.util.MiscUtils.offset;
|
||||
|
||||
public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable, ISyncReceiver, IBlockBoundsIW, IImmersiveConnectable, IIC2Connector,
|
||||
IRedstoneConnector{
|
||||
|
||||
|
@ -79,8 +82,8 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
private double rcTimeConst;
|
||||
private double timeFactor;
|
||||
private double timeFactorBottom;
|
||||
private double cReciproke = 1_000_000;
|
||||
private double maxVoltage = 250_000;
|
||||
private final static double CAPACITANCE = 0.00_000_5;
|
||||
private final static double MAX_VOLTAGE = 250_000;
|
||||
private boolean allowSlowDischarge = true;
|
||||
|
||||
public IWProperties.MarxType type = IWProperties.MarxType.NO_MODEL;
|
||||
|
@ -89,12 +92,13 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
@SideOnly(Side.CLIENT)
|
||||
public TileRenderMarx.Discharge dischargeData;
|
||||
// Voltage=100*storedEU
|
||||
private DualEnergyStorage storage = new DualEnergyStorage(50_000, 50_000);
|
||||
private DualEnergyStorage storage = new DualEnergyStorage(50_000, 32_000);
|
||||
private boolean hasConnection;
|
||||
private double[] capVoltages;
|
||||
//RS channel 1/white
|
||||
private int voltageControl = 0;
|
||||
private boolean loaded = false;
|
||||
private double leftover;
|
||||
|
||||
public TileEntityMarx(EnumFacing facing, IWProperties.MarxType type, boolean mirrored) {
|
||||
this.facing = facing;
|
||||
|
@ -131,7 +135,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
}
|
||||
storage.readFromNBT(in.getCompoundTag(ENERGY_TAG));
|
||||
hasConnection = in.getBoolean(HAS_CONN);
|
||||
boundingAabb = null;
|
||||
collisionAabb = null;
|
||||
renderAabb = null;
|
||||
}
|
||||
|
||||
|
@ -156,7 +160,12 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
} else if (forward==4&&up==0&&right==1) {
|
||||
return IEContent.blockStorage.getDefaultState().withProperty(IEContent.blockStorage.property, BlockTypes_MetalsIE.STEEL);
|
||||
} else if (forward>0) {
|
||||
//NOP. handled by getOriginalBlockPlacer
|
||||
if ((right==0&&up==0)||(right==1&&up==stageCount-1)) {
|
||||
return IEContent.blockMetalDecoration1.getDefaultState().withProperty(IEContent.blockMetalDecoration1.property, BlockTypes_MetalDecoration1.STEEL_FENCE);
|
||||
} else {
|
||||
return IEContent.blockMetalDecoration2.getDefaultState().withProperty(IEContent.blockMetalDecoration2.property, BlockTypes_MetalDecoration2.STEEL_WALLMOUNT)
|
||||
.withProperty(IEProperties.INT_4, 1-right).withProperty(IEProperties.FACING_ALL, facing.getOpposite());
|
||||
}
|
||||
} else if (forward==-2) {
|
||||
return IEContent.blockMetalDecoration0.getDefaultState().withProperty(IEContent.blockMetalDecoration0.property, BlockTypes_MetalDecoration0.HEAVY_ENGINEERING);
|
||||
} else if (right==0) {
|
||||
|
@ -166,36 +175,25 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
return IEContent.blockConnectors.getDefaultState().withProperty(IEContent.blockConnectors.property, BlockTypes_Connector.CONNECTOR_HV)
|
||||
.withProperty(IEProperties.FACING_ALL, facing);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiConsumer<World, BlockPos> getOriginalBlockPlacer() {
|
||||
IBlockState original = getOriginalBlock();
|
||||
if (original!=null) {
|
||||
if (original.getBlock()==IEContent.blockConnectors) {
|
||||
return (w, p)->{
|
||||
w.setBlockState(p, original);
|
||||
TileEntity te = w.getTileEntity(p);
|
||||
if (te instanceof TileEntityConnectorLV) {
|
||||
((TileEntityConnectorLV) te).facing = original.getValue(IEProperties.FACING_ALL);
|
||||
te.markDirty();
|
||||
} else if (te instanceof TileEntityConnectorRedstone) {
|
||||
((TileEntityConnectorRedstone) te).facing = original.getValue(IEProperties.FACING_ALL);
|
||||
te.markDirty();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
return (w, p)->w.setBlockState(p, original);
|
||||
}
|
||||
} else {
|
||||
ItemStack hv = IC2Items.getItem("cable", "type:iron,insulation:0");
|
||||
return (w, p)->{
|
||||
w.setBlockToAir(p);
|
||||
EntityItem item = new EntityItem(w, p.getX(), p.getY(), p.getZ(), hv.copy());
|
||||
w.spawnEntity(item);
|
||||
return (w, p) -> {
|
||||
w.setBlockState(p, original);
|
||||
TileEntity te = w.getTileEntity(p);
|
||||
if (te instanceof IDirectionalTile&&original.getProperties().containsKey(IEProperties.FACING_ALL)) {
|
||||
((IDirectionalTile) te).setFacing(original.getValue(IEProperties.FACING_ALL));
|
||||
te.markDirty();
|
||||
}
|
||||
if (te instanceof TileEntityWallmount) {
|
||||
((TileEntityWallmount) te).orientation = original.getValue(IEProperties.INT_4);
|
||||
}
|
||||
};
|
||||
}
|
||||
return (a, b)->IndustrialWires.logger.warn(a+", "+b+" wasn't found");//NOP
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -205,16 +203,17 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
} else if (state==FiringState.NEXT_TICK) {
|
||||
state = FiringState.FIRE;
|
||||
if (world.isRemote) {
|
||||
IndustrialWires.proxy.playMarxBang(this, getMiddle(), dischargeData.energy/(stageCount*250*250));
|
||||
IndustrialWires.proxy.playMarxBang(this, getMiddle(), (float) getNormedEnergy(dischargeData.energy));
|
||||
} else {
|
||||
fire();
|
||||
}
|
||||
}
|
||||
if (!world.isRemote&&type== IWProperties.MarxType.BOTTOM) {
|
||||
if (capVoltages==null||capVoltages.length!=stageCount) {
|
||||
capVoltages = new double[stageCount];//TODO save to NBT
|
||||
capVoltages = new double[stageCount];
|
||||
}
|
||||
double oldTopVoltage = capVoltages[stageCount-1];
|
||||
double oldBottomVoltage = capVoltages[0];
|
||||
for (int i = stageCount-1;i>0;i--) {
|
||||
double oldVoltage = capVoltages[i];
|
||||
double u0 = capVoltages[i-1];
|
||||
|
@ -222,93 +221,154 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
capVoltages[i-1] -= capVoltages[i]-oldVoltage;
|
||||
}
|
||||
//charge bottom cap from storage
|
||||
double setVoltage = 250_000 * voltageControl / 15D;
|
||||
double setVoltage = MAX_VOLTAGE * voltageControl / 15D;
|
||||
double u0 = Math.min(setVoltage, 100 * storage.getEnergyStoredEU());
|
||||
if (u0<0) {
|
||||
u0 = 0;
|
||||
}
|
||||
if (u0 < capVoltages[0] && setVoltage > capVoltages[0]) {
|
||||
u0 = capVoltages[0];
|
||||
}
|
||||
if (u0 > 0 && (allowSlowDischarge || setVoltage > capVoltages[0])) {
|
||||
double oldVoltage = capVoltages[0];
|
||||
capVoltages[0] = u0 - (u0 - oldVoltage) * timeFactor / 2;
|
||||
double energyUsed = (capVoltages[0] * capVoltages[0] - oldVoltage * oldVoltage)/cReciproke;
|
||||
if (energyUsed > 0) {// energyUsed can be negative when discharging the caps
|
||||
storage.extractEURaw(energyUsed);
|
||||
if (allowSlowDischarge || u0 > capVoltages[0]) {
|
||||
if (u0<0) {
|
||||
IndustrialWires.logger.info("VOLTAGE: "+u0+", "+voltageControl);
|
||||
}
|
||||
double vMax = 250_000;
|
||||
if (Math.round(15*oldVoltage/vMax)!=Math.round(15*capVoltages[0]/vMax)) {
|
||||
double tmp = u0 - (u0 - oldBottomVoltage) * timeFactorBottom;
|
||||
double energyUsed = .5*(tmp * tmp - oldBottomVoltage * oldBottomVoltage)*CAPACITANCE;
|
||||
if (energyUsed > 0 && storage.extractEU(energyUsed, false)==energyUsed) {// energyUsed can be negative when discharging the caps
|
||||
storage.extractEU(energyUsed, true);
|
||||
capVoltages[0] = tmp;
|
||||
}
|
||||
if (Math.round(15*oldBottomVoltage/MAX_VOLTAGE)!=Math.round(15*capVoltages[0]/MAX_VOLTAGE)) {
|
||||
net.updateValues();
|
||||
} else if (Math.round(15*oldTopVoltage/vMax)!=Math.round(15*capVoltages[stageCount-1]/vMax)) {
|
||||
} else if (Math.round(15*oldTopVoltage/MAX_VOLTAGE)!=Math.round(15*capVoltages[stageCount-1]/MAX_VOLTAGE)) {
|
||||
net.updateValues();
|
||||
}
|
||||
if (capVoltages[0] > 250_000 * 14 / 15) {
|
||||
if (capVoltages[0] > MAX_VOLTAGE * 14 / 15) {
|
||||
state = FiringState.NEXT_TICK;
|
||||
}
|
||||
}
|
||||
}
|
||||
leftover = storage.getMaxInputIF();
|
||||
}
|
||||
|
||||
private void fire() {
|
||||
IndustrialWires.logger.info(MarxOreHandler.getYield(new ItemStack(Blocks.IRON_ORE), 37_500));
|
||||
if (!world.isRemote) {
|
||||
//calculate energy
|
||||
double energyStored = 0;
|
||||
for (int i = 0;i<stageCount;i++) {
|
||||
energyStored += capVoltages[i]*capVoltages[i]/cReciproke;
|
||||
energyStored += .5*capVoltages[i]*capVoltages[i]*CAPACITANCE;
|
||||
capVoltages[i] = 0;
|
||||
}
|
||||
net.updateValues();
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setDouble("energy", energyStored);
|
||||
IndustrialWires.packetHandler.sendToDimension(new MessageTileSyncIW(this, data), world.provider.getDimension());
|
||||
Vec3d v0 = getMiddle();
|
||||
AxisAlignedBB aabb = new AxisAlignedBB(v0, v0);
|
||||
aabb = aabb.expand(0, stageCount/2-1,0);
|
||||
final double sqrtStages = Math.sqrt(stageCount);
|
||||
aabb = aabb.grow(5*sqrtStages);
|
||||
List<Entity> fools = world.getEntitiesWithinAABB(Entity.class, aabb);
|
||||
double energyNormed = energyStored/(stageCount*250*250);
|
||||
double damageDistSqu = energyNormed * sqrtStages;
|
||||
double tinnitusDistSqu = 5 * energyNormed * sqrtStages;
|
||||
damageDistSqu *= damageDistSqu;
|
||||
tinnitusDistSqu *= tinnitusDistSqu;
|
||||
if (IWConfig.HVStuff.marxSoundDamage == 2) {
|
||||
damageDistSqu = tinnitusDistSqu;
|
||||
tinnitusDistSqu = -1;
|
||||
handleEntities(energyStored);
|
||||
handleOreProcessing(energyStored);//After entities to prevent killing the newly dropped items
|
||||
}
|
||||
}
|
||||
|
||||
public void handleOreProcessing(double energyStored) {
|
||||
BlockPos bottom = getBottomElectrode();
|
||||
List<BlockPos> toBreak = new ArrayList<>(2*stageCount-2);
|
||||
int ores = 0;
|
||||
for (int i = 1;i<stageCount-1;i++) {
|
||||
BlockPos here = bottom.up(i);
|
||||
if (!world.isAirBlock(here)) {
|
||||
toBreak.add(here);
|
||||
ores++;
|
||||
}
|
||||
for (Entity entity : fools) {
|
||||
double y;
|
||||
if (entity.posY<pos.getY()+1) {
|
||||
y = pos.getY()+1;
|
||||
} else if (entity.posY>pos.getY()+stageCount-2) {
|
||||
y = pos.getY()+stageCount-2;
|
||||
} else {
|
||||
y = entity.posY;
|
||||
double radius = Utils.RAND.nextDouble()*Math.abs(.5-i/(double)stageCount)*Math.sqrt(stageCount)*.5;
|
||||
double angle = Utils.RAND.nextDouble()*Math.PI*2;
|
||||
Vec3d offset = new Vec3d(Math.cos(angle)*radius, 0, Math.sin(angle)*radius);
|
||||
BlockPos outside = here.add(new BlockPos(offset));
|
||||
if (!outside.equals(here)&&canBreak(outside)) {
|
||||
toBreak.add(outside);
|
||||
}
|
||||
}
|
||||
if (ores>0) {
|
||||
double energyPerOre = energyStored / ores;
|
||||
for (BlockPos here:toBreak) {
|
||||
IBlockState state = world.getBlockState(here);
|
||||
if (state.getBlockHardness(world, here) < 0) {
|
||||
continue;
|
||||
}
|
||||
double distSqu = entity.getDistanceSq(v0.x, y, v0.z);
|
||||
if (distSqu<=damageDistSqu) {
|
||||
float dmg = (float) (10*stageCount*(1-distSqu/damageDistSqu));
|
||||
entity.attackEntityFrom(IWDamageSources.dmg_marx, dmg);
|
||||
}
|
||||
if (distSqu<=tinnitusDistSqu && entity instanceof EntityPlayer) {
|
||||
ItemStack helmet = ((EntityPlayer) entity).inventory.armorInventory.get(3);
|
||||
boolean earMuff = helmet.getItem()==IEContent.itemEarmuffs;
|
||||
if (!earMuff&&helmet.hasTagCompound()) {
|
||||
earMuff = helmet.getTagCompound().hasKey("IE:Earmuffs");
|
||||
}
|
||||
if (!earMuff) {
|
||||
double multipl = Math.min(5, Math.sqrt(stageCount));
|
||||
int duration = (int) (20*20*(1+multipl*(1-distSqu/tinnitusDistSqu)));
|
||||
if (IWConfig.HVStuff.marxSoundDamage == 0) {
|
||||
((EntityPlayer) entity).addPotionEffect(new PotionEffect(IWPotions.tinnitus, duration));
|
||||
} else {
|
||||
((EntityPlayer) entity).addPotionEffect(new PotionEffect(Potion.getPotionFromResourceLocation("nausea"), duration));
|
||||
if (!world.isAirBlock(here)) {
|
||||
ItemStack input = state.getBlock().getPickBlock(state, null, world, here, null);
|
||||
if (!input.isEmpty()) {
|
||||
ItemStack[] out = MarxOreHandler.getYield(input, energyPerOre);
|
||||
for (ItemStack stack : out) {
|
||||
EntityItem item = new EntityItem(world, here.getX() + .5, here.getY() + .5, here.getZ() + .5, stack);
|
||||
final double maxMotion = .3;
|
||||
item.motionX = 2*maxMotion*(Utils.RAND.nextDouble()-.5);
|
||||
item.motionY = 2*maxMotion*(Utils.RAND.nextDouble()-.5);
|
||||
item.motionZ = 2*maxMotion*(Utils.RAND.nextDouble()-.5);
|
||||
world.spawnEntity(item);
|
||||
}
|
||||
}
|
||||
world.setBlockToAir(here);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleEntities(double energyStored) {
|
||||
Vec3d v0 = getMiddle();
|
||||
AxisAlignedBB aabb = new AxisAlignedBB(v0, v0);
|
||||
aabb = aabb.expand(0, stageCount/2-1,0);
|
||||
final double sqrtStages = Math.sqrt(stageCount);
|
||||
aabb = aabb.grow(5*sqrtStages);
|
||||
List<Entity> fools = world.getEntitiesWithinAABB(Entity.class, aabb);
|
||||
double energyNormed = getNormedEnergy(energyStored);
|
||||
double damageDistSqu = energyNormed * sqrtStages;
|
||||
double tinnitusDistSqu = 5 * energyNormed * sqrtStages;
|
||||
damageDistSqu *= damageDistSqu;
|
||||
tinnitusDistSqu *= tinnitusDistSqu;
|
||||
if (IWConfig.HVStuff.marxSoundDamage == 2) {
|
||||
damageDistSqu = tinnitusDistSqu;
|
||||
tinnitusDistSqu = -1;
|
||||
}
|
||||
for (Entity entity : fools) {
|
||||
double y;
|
||||
if (entity.posY<pos.getY()+1) {
|
||||
y = pos.getY()+1;
|
||||
} else if (entity.posY>pos.getY()+stageCount-2) {
|
||||
y = pos.getY()+stageCount-2;
|
||||
} else {
|
||||
y = entity.posY;
|
||||
}
|
||||
double distSqu = entity.getDistanceSq(v0.x, y, v0.z);
|
||||
if (distSqu<=damageDistSqu) {
|
||||
float dmg = (float) (10*stageCount*(1-distSqu/damageDistSqu));
|
||||
entity.attackEntityFrom(IWDamageSources.dmg_marx, dmg);
|
||||
}
|
||||
if (distSqu<=tinnitusDistSqu && entity instanceof EntityPlayer) {
|
||||
ItemStack helmet = ((EntityPlayer) entity).inventory.armorInventory.get(3);
|
||||
boolean earMuff = helmet.getItem()==IEContent.itemEarmuffs;
|
||||
if (!earMuff&&helmet.hasTagCompound()) {
|
||||
earMuff = helmet.getTagCompound().hasKey("IE:Earmuffs");
|
||||
}
|
||||
if (!earMuff) {
|
||||
double multipl = Math.min(5, Math.sqrt(stageCount));
|
||||
int duration = (int) (20*20*(1+multipl*(1-distSqu/tinnitusDistSqu)));
|
||||
if (IWConfig.HVStuff.marxSoundDamage == 0) {
|
||||
((EntityPlayer) entity).addPotionEffect(new PotionEffect(IWPotions.tinnitus, duration));
|
||||
} else {
|
||||
((EntityPlayer) entity).addPotionEffect(new PotionEffect(Potion.getPotionFromResourceLocation("nausea"), duration));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//checks whether the given pos can't be broken because it is part of the generator
|
||||
public boolean canBreak(BlockPos pos) {
|
||||
BlockPos dischargePos = offset(pos, facing, mirrored, 1, 3, 0);
|
||||
Vec3i offset = getOffset(dischargePos, facing, mirrored, pos);
|
||||
return Math.abs(offset.getX())>Math.abs(offset.getY());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3i getSize() {
|
||||
return new Vec3i(stageCount, 8, 2);
|
||||
|
@ -321,28 +381,32 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
dischargeData = new TileRenderMarx.Discharge(stageCount);
|
||||
}
|
||||
dischargeData.energy = nbt.getFloat("energy");
|
||||
dischargeData.diameter = dischargeData.energy/(stageCount*250*250);
|
||||
dischargeData.diameter = (float) getNormedEnergy(dischargeData.energy);
|
||||
dischargeData.genMarxPoint(0, dischargeData.vertices.length-1);
|
||||
}
|
||||
|
||||
private AxisAlignedBB renderAabb = null;
|
||||
public double getNormedEnergy(double total) {
|
||||
return total*2/(stageCount*MAX_VOLTAGE*MAX_VOLTAGE*CAPACITANCE);
|
||||
}
|
||||
|
||||
AxisAlignedBB renderAabb = null;
|
||||
@Nonnull
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
if (renderAabb ==null) {
|
||||
if (type== IWProperties.MarxType.BOTTOM) {
|
||||
renderAabb = new AxisAlignedBB(pos,
|
||||
MiscUtils.offset(pos, facing, mirrored, 2, 4, stageCount));
|
||||
offset(pos, facing, mirrored, 2, 4, stageCount));
|
||||
} else {
|
||||
renderAabb = new AxisAlignedBB(pos, pos);
|
||||
}
|
||||
}
|
||||
return renderAabb;
|
||||
}
|
||||
private AxisAlignedBB boundingAabb = null;
|
||||
AxisAlignedBB collisionAabb = null;
|
||||
@Override
|
||||
public AxisAlignedBB getBoundingBox() {
|
||||
if (boundingAabb==null) {
|
||||
if (collisionAabb ==null) {
|
||||
int forward = getForward();
|
||||
int right = getRight();
|
||||
int up = offset.getY();
|
||||
|
@ -403,9 +467,9 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
}
|
||||
}
|
||||
}
|
||||
boundingAabb = MiscUtils.apply(getBaseTransform(), ret);
|
||||
collisionAabb = MiscUtils.apply(getBaseTransform(), ret);
|
||||
}
|
||||
return boundingAabb;
|
||||
return collisionAabb;
|
||||
}
|
||||
|
||||
private Matrix4 getBaseTransform() {
|
||||
|
@ -432,8 +496,10 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
@Override
|
||||
public int outputEnergy(int amount, boolean simulate, int energyType) {
|
||||
TileEntityMarx master = master(this);
|
||||
if (master!=null) {
|
||||
return (int) master.storage.insertIF(amount, !simulate);
|
||||
if (master!=null && amount>0) {
|
||||
double ret = master.storage.insertIF(amount, leftover, !simulate);
|
||||
leftover -= ret;
|
||||
return (int) ret;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
@ -443,7 +509,9 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
public double insertEnergy(double eu, boolean simulate) {
|
||||
TileEntityMarx master = master(this);
|
||||
if (master!=null) {
|
||||
return eu-master.storage.insertEU(eu, !simulate);
|
||||
double ret = master.storage.insertEU(eu, leftover, !simulate);
|
||||
leftover -= ret;
|
||||
return eu-ret;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
@ -533,7 +601,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
master.allowSlowDischarge = master.net.channelValues[4] == 0;
|
||||
}
|
||||
public void tryTriggeredDischarge() {
|
||||
if (capVoltages[0]>=8/15D*maxVoltage) {
|
||||
if (capVoltages[0]>=8/15D* MAX_VOLTAGE) {
|
||||
state = FiringState.NEXT_TICK;
|
||||
} else {
|
||||
for (int i = 0;i<stageCount;i++) {
|
||||
|
@ -554,8 +622,10 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
if (master.capVoltages!=null&&master.capVoltages.length==stageCount) {
|
||||
//1/orange is voltage measurement from the top cap
|
||||
//2/magenta is for the bottom one
|
||||
signals[1] = (byte)(Math.round(15*master.capVoltages[stageCount-1]/maxVoltage));
|
||||
signals[2] = (byte)(Math.round(15*master.capVoltages[0]/maxVoltage));
|
||||
byte signal1 = (byte)(Math.round(15*master.capVoltages[stageCount-1]/ MAX_VOLTAGE));
|
||||
byte signal2 = (byte)(Math.round(15*master.capVoltages[0]/ MAX_VOLTAGE));
|
||||
signals[1] = (byte) Math.max(signals[1], signal1);
|
||||
signals[2] = (byte) Math.max(signals[2], signal2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -564,6 +634,8 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
rcTimeConst = 5D/stageCount;
|
||||
timeFactor = Math.exp(-1/(20*rcTimeConst));
|
||||
timeFactorBottom = Math.exp(-1 / (20 * rcTimeConst * 2 / 3));
|
||||
collisionAabb = null;
|
||||
renderAabb = null;
|
||||
}
|
||||
|
||||
public int getStageCount() {
|
||||
|
@ -572,10 +644,14 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
|
|||
|
||||
public Vec3d getMiddle() {
|
||||
double middleY = pos.getY()+(stageCount)/2D;
|
||||
Vec3i electrodXZ = MiscUtils.offset(pos, facing, mirrored, 1, 4, 0);
|
||||
Vec3i electrodXZ = getBottomElectrode();
|
||||
return new Vec3d(electrodXZ.getX()+.5, middleY, electrodXZ.getZ()+.5);
|
||||
}
|
||||
|
||||
public BlockPos getBottomElectrode() {
|
||||
return offset(pos, facing, mirrored, 1, 4, 0);
|
||||
}
|
||||
|
||||
public enum FiringState {
|
||||
CHARGING,
|
||||
NEXT_TICK,
|
||||
|
|
|
@ -30,7 +30,6 @@ import malte0811.industrialWires.CommonProxy;
|
|||
import malte0811.industrialWires.IWConfig;
|
||||
import malte0811.industrialWires.IWPotions;
|
||||
import malte0811.industrialWires.IndustrialWires;
|
||||
import malte0811.industrialWires.blocks.IMetaEnum;
|
||||
import malte0811.industrialWires.blocks.controlpanel.BlockTypes_Panel;
|
||||
import malte0811.industrialWires.blocks.controlpanel.TileEntityPanelCreator;
|
||||
import malte0811.industrialWires.blocks.controlpanel.TileEntityRSPanelConn;
|
||||
|
@ -45,18 +44,13 @@ import malte0811.industrialWires.client.render.TileRenderJacobsLadder;
|
|||
import malte0811.industrialWires.client.render.TileRenderMarx;
|
||||
import malte0811.industrialWires.controlpanel.PanelComponent;
|
||||
import malte0811.industrialWires.items.ItemIC2Coil;
|
||||
import malte0811.industrialWires.items.ItemKey;
|
||||
import malte0811.industrialWires.items.ItemPanelComponent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.ISound;
|
||||
import net.minecraft.client.audio.MovingSound;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumHand;
|
||||
|
@ -66,16 +60,11 @@ import net.minecraft.util.SoundEvent;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
||||
import net.minecraftforge.client.model.obj.OBJLoader;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
|
@ -117,6 +106,9 @@ public class ClientProxy extends CommonProxy {
|
|||
IndustrialWires.MODID + ":blocks/ic2_relay_glass"));
|
||||
|
||||
ConnLoader.baseModels.put("rs_panel_conn", new ResourceLocation("industrialwires:block/rs_panel_conn.obj"));
|
||||
|
||||
ConnLoader.baseModels.put("empty", new ResourceLocation("builtin/generated"));
|
||||
|
||||
OBJLoader.INSTANCE.addDomain(IndustrialWires.MODID);
|
||||
ModelLoaderRegistry.registerLoader(new PanelModelLoader());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJacobsLadder.class, new TileRenderJacobsLadder());
|
||||
|
@ -172,6 +164,11 @@ public class ClientProxy extends CommonProxy {
|
|||
return ~0;
|
||||
}, IndustrialWires.panelComponent);
|
||||
|
||||
int oldLength = Config.IEConfig.Tools.earDefenders_SoundBlacklist.length;
|
||||
Config.IEConfig.Tools.earDefenders_SoundBlacklist =
|
||||
Arrays.copyOf(Config.IEConfig.Tools.earDefenders_SoundBlacklist, oldLength+1);
|
||||
Config.IEConfig.Tools.earDefenders_SoundBlacklist[oldLength] = TINNITUS_LOC.toString();
|
||||
|
||||
m.addEntry("industrialwires.wires", "industrialwires",
|
||||
new ManualPages.CraftingMulti(m, "industrialwires.wires0", new ItemStack(IndustrialWires.ic2conn, 1, 0), new ItemStack(IndustrialWires.ic2conn, 1, 1), new ItemStack(IndustrialWires.ic2conn, 1, 2), new ItemStack(IndustrialWires.ic2conn, 1, 3),
|
||||
new ItemStack(IndustrialWires.ic2conn, 1, 4), new ItemStack(IndustrialWires.ic2conn, 1, 5), new ItemStack(IndustrialWires.ic2conn, 1, 6), new ItemStack(IndustrialWires.ic2conn, 1, 7)),
|
||||
|
@ -224,54 +221,55 @@ public class ClientProxy extends CommonProxy {
|
|||
);
|
||||
}
|
||||
|
||||
private static ISound tinnitus;
|
||||
private static final ResourceLocation TINNITUS_LOC = new ResourceLocation(IndustrialWires.MODID, "tinnitus");
|
||||
private static ISound playingTinnitus = null;
|
||||
@Override
|
||||
public void startTinnitus() {
|
||||
final Minecraft mc = Minecraft.getMinecraft();
|
||||
if (tinnitus==null) {
|
||||
tinnitus = new MovingSound(new SoundEvent(new ResourceLocation(IndustrialWires.MODID, "tinnitus")), SoundCategory.PLAYERS) {
|
||||
@Override
|
||||
public void update() {
|
||||
if (mc.player.getActivePotionEffect(IWPotions.tinnitus)==null) {
|
||||
donePlaying = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getVolume() {
|
||||
return .25F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getXPosF() {
|
||||
return (float) mc.player.posX;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getYPosF() {
|
||||
return (float) mc.player.posY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getZPosF() {
|
||||
return (float) mc.player.posZ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRepeat() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
int oldLength = Config.IEConfig.Tools.earDefenders_SoundBlacklist.length;
|
||||
Config.IEConfig.Tools.earDefenders_SoundBlacklist =
|
||||
Arrays.copyOf(Config.IEConfig.Tools.earDefenders_SoundBlacklist, oldLength+1);
|
||||
Config.IEConfig.Tools.earDefenders_SoundBlacklist[oldLength] = tinnitus.getSoundLocation().toString();
|
||||
}
|
||||
if (!mc.getSoundHandler().isSoundPlaying(tinnitus)) {
|
||||
mc.getSoundHandler().playSound(tinnitus);
|
||||
if (playingTinnitus==null) {
|
||||
playingTinnitus = getTinnitus();
|
||||
mc.getSoundHandler().playSound(playingTinnitus);
|
||||
}
|
||||
}
|
||||
|
||||
private ISound getTinnitus() {
|
||||
final Minecraft mc = Minecraft.getMinecraft();
|
||||
return new MovingSound(new SoundEvent(TINNITUS_LOC), SoundCategory.PLAYERS) {
|
||||
@Override
|
||||
public void update() {
|
||||
if (mc.player.getActivePotionEffect(IWPotions.tinnitus)==null) {
|
||||
donePlaying = true;
|
||||
playingTinnitus = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getVolume() {
|
||||
return .25F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getXPosF() {
|
||||
return (float) mc.player.posX;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getYPosF() {
|
||||
return (float) mc.player.posY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getZPosF() {
|
||||
return (float) mc.player.posZ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRepeat() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getClientWorld() {
|
||||
return Minecraft.getMinecraft().world;
|
||||
|
|
|
@ -18,7 +18,9 @@
|
|||
|
||||
package malte0811.industrialWires.hv;
|
||||
|
||||
import blusunrize.immersiveengineering.api.ApiUtils;
|
||||
import blusunrize.immersiveengineering.api.crafting.IngredientStack;
|
||||
import malte0811.industrialWires.IndustrialWires;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -35,16 +37,16 @@ import java.util.Random;
|
|||
public class MarxOreHandler {
|
||||
private static final Map<String, Double> oreEnergies = new HashMap<>();
|
||||
private static final Map<String, OreInfo> defaultOreData = new HashMap<>();
|
||||
private static double defaultEnergy = 75_000;
|
||||
private static double defaultEnergy = 100_000;
|
||||
|
||||
private static void init() {
|
||||
// Vanilla ores
|
||||
defaultOreData.put("oreIron", new OreInfo(.5, 5, "dustIron", "nuggetIron"));
|
||||
defaultOreData.put("oreGold", new OreInfo(1, 5, "dustGold", "nuggetGold"));
|
||||
defaultOreData.put("oreDiamond", new OreInfo(3, 6, "gemDiamond"));
|
||||
defaultOreData.put("oreEmerald", new OreInfo(3, 6, "gemEmerald"));
|
||||
defaultOreData.put("oreDiamond", new OreInfo(2, 5, "gemDiamond"));
|
||||
defaultOreData.put("oreEmerald", new OreInfo(3, 5, "gemEmerald"));
|
||||
defaultOreData.put("oreLapis", new OreInfo(.75, 10, "gemLapis"));
|
||||
defaultOreData.put("oreCoal", new OreInfo(.75, 10, Items.COAL, 0));
|
||||
defaultOreData.put("oreCoal", new OreInfo(.75, 6, Items.COAL, 0));
|
||||
defaultOreData.put("oreRedstone", new OreInfo(1, 10, "dustRedstone"));
|
||||
defaultOreData.put("oreQuartz", new OreInfo(1, 5, "gemQuartz"));
|
||||
// IE ores
|
||||
|
@ -78,7 +80,7 @@ public class MarxOreHandler {
|
|||
}
|
||||
//TODO auto-add other ores?
|
||||
if (energy > 0) {
|
||||
double sigma = defaultEnergy * energy / 4;
|
||||
double sigma = defaultEnergy * energy / 20;
|
||||
double mu = defaultEnergy * energy;
|
||||
double avg = new Random().nextGaussian();
|
||||
avg *= sigma;
|
||||
|
@ -89,34 +91,50 @@ public class MarxOreHandler {
|
|||
}
|
||||
}
|
||||
|
||||
public static ItemStack getYield(ItemStack in, double energy) {
|
||||
public static ItemStack[] getYield(ItemStack in, double energy) {
|
||||
if (oreEnergies.isEmpty()) {
|
||||
IndustrialWires.logger.error("The energy-ore map for Marx generators wasn't loaded correctly. The energy values will be reset.");
|
||||
load(new NBTTagCompound());
|
||||
}
|
||||
int[] ores = OreDictionary.getOreIDs(in);
|
||||
for (int id : ores) {
|
||||
String name = OreDictionary.getOreName(id);
|
||||
if (oreEnergies.containsKey(name) && energy <= .75 * oreEnergies.get(name)) {
|
||||
if (oreEnergies.containsKey(name) && energy >= .75 * oreEnergies.get(name)) {
|
||||
OreInfo info = defaultOreData.get(name);
|
||||
double idealE = oreEnergies.get(name);
|
||||
double ln = Math.log(energy);
|
||||
double sigma = idealE / 6;
|
||||
double dist = getNormalizedNormalDist(ln, sigma, idealE);
|
||||
int yield = (int) Math.round(dist * info.maxYield);
|
||||
//TODO
|
||||
double sigma = idealE / 18;
|
||||
double dist = getNormalizedNormalDist(energy, sigma, idealE);
|
||||
double out = dist * info.maxYield;
|
||||
int yield = (int) Math.floor(out);
|
||||
out -= yield;
|
||||
int yieldNuggets = (int) Math.round(out*9);
|
||||
if (yieldNuggets>=9||(info.outputSmall==null&&yieldNuggets>=5)) {
|
||||
yield++;
|
||||
yieldNuggets = 0;
|
||||
}
|
||||
if (yield>0&&yieldNuggets>0&&info.outputSmall!=null) {
|
||||
return new ItemStack[] {
|
||||
ApiUtils.copyStackWithAmount(info.output.getExampleStack(), yield),
|
||||
ApiUtils.copyStackWithAmount(info.outputSmall.getExampleStack(), yieldNuggets)
|
||||
};
|
||||
} else if (yield>0) {
|
||||
return new ItemStack[] {
|
||||
ApiUtils.copyStackWithAmount(info.output.getExampleStack(), yield)
|
||||
};
|
||||
} else if (yieldNuggets>0&&info.outputSmall!=null) {
|
||||
return new ItemStack[] {
|
||||
ApiUtils.copyStackWithAmount(info.outputSmall.getExampleStack(), yieldNuggets)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
return ItemStack.EMPTY;
|
||||
return new ItemStack[0];
|
||||
}
|
||||
|
||||
private static double getNormalizedNormalDist(double x, double sigma, double mu) {
|
||||
return Math.exp(-(x - mu) * (x - mu) / (2 * sigma * sigma));
|
||||
}
|
||||
/*
|
||||
|
||||
for (String ore : nbt.getKeySet()) {
|
||||
if (defaultOreData.containsKey(ore)) {
|
||||
oreEnergies.put(ore, nbt.getDouble(ore));
|
||||
}
|
||||
}
|
||||
*/
|
||||
public static NBTBase save() {
|
||||
NBTTagCompound ret = new NBTTagCompound();
|
||||
if (oreEnergies.isEmpty()) {
|
||||
|
|
|
@ -75,7 +75,10 @@ public class DualEnergyStorage {
|
|||
}
|
||||
|
||||
public double insertEU(double insertMax, boolean doInsert) {
|
||||
double ins = Math.min(insertMax, maxEU - storedEU);
|
||||
return insertEU(insertMax, maxInEU, doInsert);
|
||||
}
|
||||
public double insertEU(double insertMax, double leftover, boolean doInsert) {
|
||||
double ins = Math.min(Math.min(insertMax, maxEU - storedEU), leftover);
|
||||
if (doInsert) {
|
||||
storedEU += ins;
|
||||
}
|
||||
|
@ -83,8 +86,12 @@ public class DualEnergyStorage {
|
|||
}
|
||||
|
||||
public double insertIF(int insertMax, boolean doInsert) {
|
||||
return insertIF(insertMax, ConversionUtil.ifPerEuIdeal()*maxInEU, doInsert);
|
||||
}
|
||||
public double insertIF(int insertMax, double leftover, boolean doInsert) {
|
||||
double eu = insertMax * ConversionUtil.euPerIfIdeal();
|
||||
return ConversionUtil.ifPerEuIdeal() * insertEU(eu, doInsert);
|
||||
double euMax = leftover* ConversionUtil.euPerIfIdeal();
|
||||
return ConversionUtil.ifPerEuIdeal() * insertEU(eu, euMax, doInsert);
|
||||
}
|
||||
|
||||
public double getEnergyStoredEU() {
|
||||
|
@ -121,4 +128,8 @@ public class DualEnergyStorage {
|
|||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
storedEU = nbt.getDouble("stored");
|
||||
}
|
||||
|
||||
public double getMaxInputIF() {
|
||||
return maxInEU*ConversionUtil.ifPerEuIdeal();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,8 +21,13 @@ package malte0811.industrialWires.util;
|
|||
import blusunrize.immersiveengineering.api.ApiUtils;
|
||||
import blusunrize.immersiveengineering.api.energy.wires.IImmersiveConnectable;
|
||||
import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler;
|
||||
import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces;
|
||||
import blusunrize.immersiveengineering.common.util.chickenbones.Matrix4;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import malte0811.industrialWires.blocks.TileEntityIWMultiblock;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -98,6 +103,40 @@ public final class MiscUtils {
|
|||
}
|
||||
return p.offset(f, forward).offset(f.rotateY(), right).add(0, up, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the parameters for offset to generate here from origin
|
||||
* @return right, forward, up
|
||||
*/
|
||||
public static BlockPos getOffset(BlockPos origin, EnumFacing f, boolean mirror, BlockPos here) {
|
||||
int dX = origin.getZ()-here.getZ();
|
||||
int dZ = origin.getX()-here.getX();
|
||||
int forward = 0;
|
||||
int right = 0;
|
||||
int up = here.getY()-origin.getY();
|
||||
switch (f) {
|
||||
case NORTH:
|
||||
forward = dZ;
|
||||
right = -dX;
|
||||
break;
|
||||
case SOUTH:
|
||||
forward = -dZ;
|
||||
right = dX;
|
||||
break;
|
||||
case WEST:
|
||||
right = dZ;
|
||||
forward = dX;
|
||||
break;
|
||||
case EAST:
|
||||
right = -dZ;
|
||||
forward = -dX;
|
||||
break;
|
||||
}
|
||||
if (mirror) {
|
||||
right *= -1;
|
||||
}
|
||||
return new BlockPos(right, forward, up);
|
||||
}
|
||||
@Nonnull
|
||||
public static AxisAlignedBB apply(@Nonnull Matrix4 mat, @Nonnull AxisAlignedBB in) {
|
||||
Vec3d min = new Vec3d(in.minX, in.minY, in.minZ);
|
||||
|
@ -106,4 +145,12 @@ public final class MiscUtils {
|
|||
max = mat.apply(max);
|
||||
return new AxisAlignedBB(min.x, min.y, min.z, max.x, max.y, max.z);
|
||||
}
|
||||
|
||||
public static ItemStack getItemStack(IBlockState origState, World w, BlockPos pos) {
|
||||
if (origState.getBlock() instanceof IEBlockInterfaces.IIEMetaBlock) {
|
||||
int meta = origState.getBlock().getMetaFromState(origState);
|
||||
return new ItemStack(origState.getBlock(), 1, meta);
|
||||
}
|
||||
return origState.getBlock().getPickBlock(origState, null, w, pos, null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,23 +15,6 @@
|
|||
|
||||
}
|
||||
},
|
||||
"marx_type": {
|
||||
"bottom": {
|
||||
"model": "industrialwires:marx_bottom.obj"
|
||||
},
|
||||
"stage": {
|
||||
"model": "industrialwires:marx_stage.obj"
|
||||
},
|
||||
"top": {
|
||||
"model": "industrialwires:marx_top.obj"
|
||||
},
|
||||
"no_model": {
|
||||
"model": "builtin/generated"
|
||||
},
|
||||
"connector": {
|
||||
"model": "immersiveengineering:smartmodel/conn_empty"
|
||||
}
|
||||
},
|
||||
"facing": {
|
||||
"north": {
|
||||
"transform": {
|
||||
|
@ -62,6 +45,23 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"marx_type": {
|
||||
"bottom": {
|
||||
"model": "industrialwires:marx_bottom.obj"
|
||||
},
|
||||
"stage": {
|
||||
"model": "industrialwires:marx_stage.obj"
|
||||
},
|
||||
"top": {
|
||||
"model": "industrialwires:marx_top.obj"
|
||||
},
|
||||
"no_model": {
|
||||
"model": "builtin/generated"
|
||||
},
|
||||
"connector": {
|
||||
"model": "immersiveengineering:smartmodel/conn_empty"
|
||||
}
|
||||
},
|
||||
"boolean0": //Mirror
|
||||
{
|
||||
"false": {},
|
||||
|
|
|
@ -43,6 +43,10 @@ item.industrialwires.key.key_named.name=Key for
|
|||
item.industrialwires.key.blank_key.name=Blank Key
|
||||
item.industrialwires.key.key_ring.name=Key Ring
|
||||
|
||||
industrialwires.subtitle.tinnitus=You have a tinnitus
|
||||
industrialwires.subtitle.jacobs_ladder=Jacob's ladder hums
|
||||
industrialwires.subtitle.marx_bang=Marx generator discharges
|
||||
|
||||
|
||||
industrialwires.desc.wireLength=Wire length: %1s block(s)
|
||||
industrialwires.desc.recipe=Please check the Engineer's manual for recipe details
|
||||
|
|
|
@ -1,20 +1,8 @@
|
|||
# Blender MTL File: 'NewMarx.blend'
|
||||
# Material Count: 2
|
||||
newmtl marx
|
||||
map_Ka industrialwires:blocks/marx
|
||||
|
||||
newmtl Material.003
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
newmtl connectorHV
|
||||
map_Ka immersiveengineering:blocks/connector_connector_hv
|
||||
|
||||
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
|
||||
newmtl connectorRedstone
|
||||
map_Ka immersiveengineering:blocks/connector_connector_redstone
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,20 +1,5 @@
|
|||
# Blender MTL File: 'NewMarx.blend'
|
||||
# Material Count: 2
|
||||
# Material Count: 3
|
||||
|
||||
newmtl Material.007
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
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
|
||||
newmtl marx
|
||||
map_Kd industrialwires:blocks/marx
|
||||
|
|
|
@ -1,7 +1,47 @@
|
|||
# Blender v2.78 (sub 0) OBJ File: 'NewMarx.blend'
|
||||
# www.blender.org
|
||||
mtllib marx_stage.mtl
|
||||
o Cube.003_Cube.085
|
||||
o Cube.021_Cube.003
|
||||
v 0.437498 0.187500 1.375000
|
||||
v 0.437498 0.312500 1.375000
|
||||
v 0.437498 0.187500 1.000000
|
||||
v 0.437498 0.312500 1.000000
|
||||
v 0.562498 0.187500 1.375000
|
||||
v 0.562498 0.312500 1.375000
|
||||
v 0.562498 0.187500 1.000000
|
||||
v 0.562498 0.312500 1.000000
|
||||
vt 0.4219 0.2031
|
||||
vt 0.4062 0.2031
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4062 0.2031
|
||||
vt 0.3906 0.2031
|
||||
vt 0.4297 0.2031
|
||||
vt 0.4297 0.2188
|
||||
vt 0.4141 0.2188
|
||||
vt 0.4141 0.2031
|
||||
vt 0.4531 0.2031
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4531 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4219 0.2031
|
||||
vn -1.0000 0.0000 0.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 marx
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
f 7/5/2 8/6/2 6/7/2 5/8/2
|
||||
f 5/9/3 6/10/3 2/11/3 1/12/3
|
||||
f 3/13/4 7/14/4 5/15/4 1/16/4
|
||||
f 8/17/5 4/18/5 2/19/5 6/20/5
|
||||
o Cube.003_Cube.013
|
||||
v 1.999999 -0.000001 0.000001
|
||||
v 1.999999 -0.000001 1.000000
|
||||
v 0.000000 0.000000 1.000000
|
||||
|
@ -10,44 +50,44 @@ v 2.000000 0.499999 0.000001
|
|||
v 1.999999 0.499999 1.000000
|
||||
v -0.000000 0.500000 1.000000
|
||||
v 0.000000 0.500000 0.000001
|
||||
vt 0.1250 0.5000
|
||||
vt 0.0000 0.5000
|
||||
vt 0.0000 0.2500
|
||||
vt 0.1250 0.2500
|
||||
vt 0.0000 0.2500
|
||||
vt 0.0000 -0.0000
|
||||
vt 0.1250 -0.0000
|
||||
vt 0.1250 0.2500
|
||||
vt -0.0000 0.5000
|
||||
vt 0.0625 0.5000
|
||||
vt 0.0625 0.6250
|
||||
vt -0.0000 0.6250
|
||||
vt 0.1250 0.1250
|
||||
vt 0.1250 0.0625
|
||||
vt 0.3750 0.0625
|
||||
vt 0.3750 0.1250
|
||||
vt 0.1250 0.6250
|
||||
vt 0.0625 0.6250
|
||||
vt 0.0625 0.5000
|
||||
vt 0.1250 0.5000
|
||||
vt 0.3750 -0.0000
|
||||
vt 0.3750 0.0625
|
||||
vt 0.1250 0.0625
|
||||
vt 0.1250 -0.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
usemtl Material.007
|
||||
s off
|
||||
f 1//1 2//1 3//1 4//1
|
||||
f 5//2 8//2 7//2 6//2
|
||||
f 1//3 5//3 6//3 2//3
|
||||
f 2//4 6//4 7//4 3//4
|
||||
f 3//5 7//5 8//5 4//5
|
||||
f 5//6 1//6 4//6 8//6
|
||||
o Cube.013_Cube.086
|
||||
v 0.374998 0.500000 0.625000
|
||||
v 0.374998 1.000000 0.625000
|
||||
v 0.374998 0.500000 0.375000
|
||||
v 0.374998 1.000000 0.375000
|
||||
v 0.624998 0.500000 0.625000
|
||||
v 0.624998 1.000000 0.625000
|
||||
v 0.624998 0.500000 0.375000
|
||||
v 0.624998 1.000000 0.375000
|
||||
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 9//7 10//7 12//7 11//7
|
||||
f 11//8 12//8 16//8 15//8
|
||||
f 15//9 16//9 14//9 13//9
|
||||
f 13//10 14//10 10//10 9//10
|
||||
f 11//11 15//11 13//11 9//11
|
||||
f 16//12 12//12 10//12 14//12
|
||||
o Cube.014_Cube.087
|
||||
usemtl marx
|
||||
f 9/21/6 10/22/6 11/23/6 12/24/6
|
||||
f 13/25/7 16/26/7 15/27/7 14/28/7
|
||||
f 9/29/8 13/30/8 14/31/8 10/32/8
|
||||
f 10/33/9 14/34/9 15/35/9 11/36/9
|
||||
f 11/37/10 15/38/10 16/39/10 12/40/10
|
||||
f 13/41/11 9/42/11 12/43/11 16/44/11
|
||||
o Cube.011_Cube.026
|
||||
v 1.374998 0.500000 0.625000
|
||||
v 1.374998 1.000000 0.625000
|
||||
v 1.374998 0.500000 0.375000
|
||||
|
@ -56,44 +96,6 @@ v 1.624998 0.500000 0.625000
|
|||
v 1.624998 1.000000 0.625000
|
||||
v 1.624998 0.500000 0.375000
|
||||
v 1.624998 1.000000 0.375000
|
||||
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 17//13 18//13 20//13 19//13
|
||||
f 19//14 20//14 24//14 23//14
|
||||
f 23//15 24//15 22//15 21//15
|
||||
f 21//16 22//16 18//16 17//16
|
||||
f 19//17 23//17 21//17 17//17
|
||||
f 24//18 20//18 18//18 22//18
|
||||
o Cube.016_Cube.088
|
||||
v 0.250000 0.687500 0.750000
|
||||
v 0.250000 0.812500 0.750000
|
||||
v 0.250000 0.687500 0.250000
|
||||
v 0.250000 0.812500 0.250000
|
||||
v 0.750000 0.687500 0.750000
|
||||
v 0.750000 0.812500 0.750000
|
||||
v 0.750000 0.687500 0.250000
|
||||
v 0.750000 0.812500 0.250000
|
||||
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 25//19 26//19 28//19 27//19
|
||||
f 27//20 28//20 32//20 31//20
|
||||
f 31//21 32//21 30//21 29//21
|
||||
f 29//22 30//22 26//22 25//22
|
||||
f 27//23 31//23 29//23 25//23
|
||||
f 32//24 28//24 26//24 30//24
|
||||
o Cube.017_Cube.089
|
||||
v 1.250000 0.687500 0.750000
|
||||
v 1.250000 0.812500 0.750000
|
||||
v 1.250000 0.687500 0.250000
|
||||
|
@ -102,90 +104,57 @@ v 1.750000 0.687500 0.750000
|
|||
v 1.750000 0.812500 0.750000
|
||||
v 1.750000 0.687500 0.250000
|
||||
v 1.750000 0.812500 0.250000
|
||||
vt 0.2266 0.4609
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2578 0.3984
|
||||
vt 0.2578 0.4609
|
||||
vt 0.2578 0.3359
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2266 0.3359
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1953 0.3359
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2266 0.4609
|
||||
vt 0.1953 0.4609
|
||||
vt 0.1953 0.3984
|
||||
vt 0.2578 0.3984
|
||||
vt 0.2734 0.3984
|
||||
vt 0.2734 0.4609
|
||||
vt 0.2578 0.4609
|
||||
vt 0.2734 0.3359
|
||||
vt 0.2891 0.3359
|
||||
vt 0.2891 0.3984
|
||||
vt 0.2734 0.3984
|
||||
vt 0.2891 0.4609
|
||||
vt 0.2734 0.4609
|
||||
vt 0.2578 0.3359
|
||||
vt 0.2734 0.3359
|
||||
vt 0.1328 0.3984
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1953 0.4609
|
||||
vt 0.1328 0.4609
|
||||
vt 0.1328 0.3359
|
||||
vt 0.1953 0.3359
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1328 0.3984
|
||||
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 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 33//25 34//25 36//25 35//25
|
||||
f 35//26 36//26 40//26 39//26
|
||||
f 39//27 40//27 38//27 37//27
|
||||
f 37//28 38//28 34//28 33//28
|
||||
f 35//29 39//29 37//29 33//29
|
||||
f 40//30 36//30 34//30 38//30
|
||||
o Cube.018_Cube.090
|
||||
v 1.437498 0.312500 1.375000
|
||||
v 1.437498 1.187500 1.375000
|
||||
v 1.437498 0.312500 1.250000
|
||||
v 1.437498 1.187500 1.250000
|
||||
v 1.562498 0.312500 1.375000
|
||||
v 1.562498 1.187500 1.375000
|
||||
v 1.562498 0.312500 1.250000
|
||||
v 1.562498 1.187500 1.250000
|
||||
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 41//31 42//31 44//31 43//31
|
||||
f 43//32 44//32 48//32 47//32
|
||||
f 47//33 48//33 46//33 45//33
|
||||
f 45//34 46//34 42//34 41//34
|
||||
f 43//35 47//35 45//35 41//35
|
||||
f 48//36 44//36 42//36 46//36
|
||||
o Cube.019_Cube.091
|
||||
v 1.437498 0.187500 1.375000
|
||||
v 1.437498 0.312500 1.375000
|
||||
v 1.437498 0.187500 1.000000
|
||||
v 1.437498 0.312500 1.000000
|
||||
v 1.562498 0.187500 1.375000
|
||||
v 1.562498 0.312500 1.375000
|
||||
v 1.562498 0.187500 1.000000
|
||||
v 1.562498 0.312500 1.000000
|
||||
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 49//37 50//37 52//37 51//37
|
||||
f 51//38 52//38 56//38 55//38
|
||||
f 55//39 56//39 54//39 53//39
|
||||
f 53//40 54//40 50//40 49//40
|
||||
f 51//41 55//41 53//41 49//41
|
||||
f 56//42 52//42 50//42 54//42
|
||||
o Cube.020_Cube.092
|
||||
v 1.374998 0.375000 1.437500
|
||||
v 1.374998 1.125000 1.437500
|
||||
v 1.374998 0.375000 1.187500
|
||||
v 1.374998 1.125000 1.187500
|
||||
v 1.624998 0.375000 1.437500
|
||||
v 1.624998 1.125000 1.437500
|
||||
v 1.624998 0.375000 1.187500
|
||||
v 1.624998 1.125000 1.187500
|
||||
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 57//43 58//43 60//43 59//43
|
||||
f 59//44 60//44 64//44 63//44
|
||||
f 63//45 64//45 62//45 61//45
|
||||
f 61//46 62//46 58//46 57//46
|
||||
f 59//47 63//47 61//47 57//47
|
||||
f 64//48 60//48 58//48 62//48
|
||||
o Cube.021_Cube.093
|
||||
usemtl marx
|
||||
f 17/45/12 18/46/12 20/47/12 19/48/12
|
||||
f 19/49/13 20/47/13 24/50/13 23/51/13
|
||||
f 23/51/14 24/50/14 22/52/14 21/53/14
|
||||
f 21/54/15 22/55/15 18/56/15 17/57/15
|
||||
f 25/58/12 26/59/12 28/60/12 27/61/12
|
||||
f 27/62/13 28/63/13 32/64/13 31/65/13
|
||||
f 31/65/14 32/64/14 30/66/14 29/67/14
|
||||
f 29/68/15 30/69/15 26/59/15 25/58/15
|
||||
f 27/70/16 31/71/16 29/72/16 25/73/16
|
||||
f 32/74/17 28/75/17 26/76/17 30/77/17
|
||||
o Cube.014_Cube.027
|
||||
v 1.187498 0.385723 -0.187500
|
||||
v 1.010721 0.562500 -0.187500
|
||||
v 1.187498 0.385723 -0.437500
|
||||
|
@ -196,12 +165,12 @@ v 1.364275 0.562500 -0.437500
|
|||
v 1.187498 0.739277 -0.437500
|
||||
v 1.455804 0.205806 -0.250000
|
||||
v 1.102251 0.559359 -0.250000
|
||||
v 1.455804 0.205806 -0.375000
|
||||
v 1.102250 0.559359 -0.375000
|
||||
v 1.455804 0.205806 -0.373125
|
||||
v 1.102251 0.559359 -0.373125
|
||||
v 1.544192 0.294194 -0.250000
|
||||
v 1.190639 0.647748 -0.250000
|
||||
v 1.544192 0.294194 -0.375000
|
||||
v 1.190639 0.647748 -0.375000
|
||||
v 1.544192 0.294194 -0.373125
|
||||
v 1.190639 0.647748 -0.373125
|
||||
v 1.562498 0.312500 -0.375000
|
||||
v 1.437498 0.312500 -0.375000
|
||||
v 1.562498 0.312500 -0.000000
|
||||
|
@ -210,9 +179,64 @@ v 1.562498 0.187500 -0.375000
|
|||
v 1.437498 0.187500 -0.375000
|
||||
v 1.562498 0.187500 -0.000000
|
||||
v 1.437498 0.187500 0.000000
|
||||
vn -0.7071 -0.7071 0.0000
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3750 0.0625
|
||||
vt 0.4062 0.0625
|
||||
vt 0.4062 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.1562
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4688 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4375 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.0938
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3438 0.1562
|
||||
vt 0.3438 0.1250
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4375 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.5000 0.0625
|
||||
vt 0.5000 0.1250
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4688 0.1719
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4375 0.1719
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.3906 0.1719
|
||||
vt 0.3750 0.1719
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4062 0.1719
|
||||
vt 0.5000 0.1719
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4844 0.1250
|
||||
vt 0.5000 0.1250
|
||||
vn -0.7071 -0.7071 -0.0000
|
||||
vn -0.0000 0.0000 -1.0000
|
||||
vn 0.7071 0.7071 -0.0000
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.7071 -0.7071 -0.0000
|
||||
vn -0.7071 0.7071 0.0000
|
||||
|
@ -220,27 +244,170 @@ vn 0.0000 1.0000 0.0000
|
|||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 -0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
usemtl None
|
||||
s off
|
||||
f 65//49 66//49 68//49 67//49
|
||||
f 67//50 68//50 72//50 71//50
|
||||
f 71//51 72//51 70//51 69//51
|
||||
f 69//52 70//52 66//52 65//52
|
||||
f 67//53 71//53 69//53 65//53
|
||||
f 72//54 68//54 66//54 70//54
|
||||
f 73//49 74//49 76//49 75//49
|
||||
f 75//50 76//50 80//50 79//50
|
||||
f 79//51 80//51 78//51 77//51
|
||||
f 77//52 78//52 74//52 73//52
|
||||
f 75//53 79//53 77//53 73//53
|
||||
f 80//54 76//54 74//54 78//54
|
||||
f 81//55 82//55 84//55 83//55
|
||||
f 83//52 84//52 88//52 87//52
|
||||
f 87//56 88//56 86//56 85//56
|
||||
f 85//50 86//50 82//50 81//50
|
||||
f 83//57 87//57 85//57 81//57
|
||||
f 88//58 84//58 82//58 86//58
|
||||
o Cube.022_Cube.094
|
||||
usemtl marx
|
||||
f 33/78/18 34/79/18 36/80/18 35/81/18
|
||||
f 35/82/19 36/83/19 40/84/19 39/85/19
|
||||
f 39/86/20 40/87/20 38/88/20 37/89/20
|
||||
f 37/90/21 38/88/21 34/91/21 33/92/21
|
||||
f 35/82/22 39/85/22 37/93/22 33/92/22
|
||||
f 40/84/23 36/94/23 34/95/23 38/96/23
|
||||
f 41/97/18 42/98/18 44/99/18 43/100/18
|
||||
f 43/101/19 44/102/19 48/103/19 47/104/19
|
||||
f 47/105/20 48/106/20 46/107/20 45/108/20
|
||||
f 45/109/21 46/110/21 42/111/21 41/112/21
|
||||
f 49/113/24 50/114/24 52/115/24 51/116/24
|
||||
f 55/117/25 56/118/25 54/119/25 53/120/25
|
||||
f 53/121/19 54/122/19 50/123/19 49/124/19
|
||||
f 51/125/26 55/126/26 53/127/26 49/128/26
|
||||
f 56/129/27 52/130/27 50/131/27 54/132/27
|
||||
o Cube.015_Cube.028
|
||||
v 0.374998 0.500000 0.625000
|
||||
v 0.374998 1.000000 0.625000
|
||||
v 0.374998 0.500000 0.375000
|
||||
v 0.374998 1.000000 0.375000
|
||||
v 0.624998 0.500000 0.625000
|
||||
v 0.624998 1.000000 0.625000
|
||||
v 0.624998 0.500000 0.375000
|
||||
v 0.624998 1.000000 0.375000
|
||||
v 0.250000 0.687500 0.750000
|
||||
v 0.250000 0.812500 0.750000
|
||||
v 0.250000 0.687500 0.250000
|
||||
v 0.250000 0.812500 0.250000
|
||||
v 0.750000 0.687500 0.750000
|
||||
v 0.750000 0.812500 0.750000
|
||||
v 0.750000 0.687500 0.250000
|
||||
v 0.750000 0.812500 0.250000
|
||||
vt 0.2266 0.4609
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2578 0.3984
|
||||
vt 0.2578 0.4609
|
||||
vt 0.2578 0.3359
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2266 0.3359
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1953 0.3359
|
||||
vt 0.2266 0.3984
|
||||
vt 0.2266 0.4609
|
||||
vt 0.1953 0.4609
|
||||
vt 0.1953 0.3984
|
||||
vt 0.2578 0.3984
|
||||
vt 0.2734 0.3984
|
||||
vt 0.2734 0.4609
|
||||
vt 0.2578 0.4609
|
||||
vt 0.2734 0.3359
|
||||
vt 0.2891 0.3359
|
||||
vt 0.2891 0.3984
|
||||
vt 0.2734 0.3984
|
||||
vt 0.2891 0.4609
|
||||
vt 0.2734 0.4609
|
||||
vt 0.2578 0.3359
|
||||
vt 0.2734 0.3359
|
||||
vt 0.1328 0.3984
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1953 0.4609
|
||||
vt 0.1328 0.4609
|
||||
vt 0.1328 0.3359
|
||||
vt 0.1953 0.3359
|
||||
vt 0.1953 0.3984
|
||||
vt 0.1328 0.3984
|
||||
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 marx
|
||||
f 57/133/28 58/134/28 60/135/28 59/136/28
|
||||
f 59/137/29 60/135/29 64/138/29 63/139/29
|
||||
f 63/139/30 64/138/30 62/140/30 61/141/30
|
||||
f 61/142/31 62/143/31 58/144/31 57/145/31
|
||||
f 65/146/28 66/147/28 68/148/28 67/149/28
|
||||
f 67/150/29 68/151/29 72/152/29 71/153/29
|
||||
f 71/153/30 72/152/30 70/154/30 69/155/30
|
||||
f 69/156/31 70/157/31 66/147/31 65/146/31
|
||||
f 67/158/32 71/159/32 69/160/32 65/161/32
|
||||
f 72/162/33 68/163/33 66/164/33 70/165/33
|
||||
o Cube.016_Cube.029
|
||||
v 1.437498 0.312500 1.375000
|
||||
v 1.437498 1.187500 1.375000
|
||||
v 1.437498 0.312500 1.250000
|
||||
v 1.437498 1.187500 1.250000
|
||||
v 1.562498 0.312500 1.375000
|
||||
v 1.562498 1.187500 1.375000
|
||||
v 1.562498 0.312500 1.250000
|
||||
v 1.562498 1.187500 1.250000
|
||||
vt 0.4219 0.1172
|
||||
vt 0.4219 0.0078
|
||||
vt 0.4375 0.0078
|
||||
vt 0.4375 0.1172
|
||||
vt 0.3906 0.3984
|
||||
vt 0.3906 0.2891
|
||||
vt 0.4062 0.2891
|
||||
vt 0.4062 0.3984
|
||||
vt 0.4688 0.0703
|
||||
vt 0.4688 0.1797
|
||||
vt 0.4531 0.1797
|
||||
vt 0.4531 0.0703
|
||||
vt 0.4141 0.0938
|
||||
vt 0.4141 0.2031
|
||||
vt 0.3984 0.2031
|
||||
vt 0.3984 0.0938
|
||||
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
|
||||
usemtl marx
|
||||
f 73/166/34 74/167/34 76/168/34 75/169/34
|
||||
f 75/170/35 76/171/35 80/172/35 79/173/35
|
||||
f 79/174/36 80/175/36 78/176/36 77/177/36
|
||||
f 77/178/37 78/179/37 74/180/37 73/181/37
|
||||
o Cube.017_Cube.030
|
||||
v 1.374998 0.375000 1.437500
|
||||
v 1.374998 1.125000 1.437500
|
||||
v 1.374998 0.375000 1.187500
|
||||
v 1.374998 1.125000 1.187500
|
||||
v 1.624998 0.375000 1.437500
|
||||
v 1.624998 1.125000 1.437500
|
||||
v 1.624998 0.375000 1.187500
|
||||
v 1.624998 1.125000 1.187500
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1953 0.1328
|
||||
vt 0.2266 0.1328
|
||||
vt 0.2266 0.2266
|
||||
vt 0.1641 0.1328
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1328 0.2266
|
||||
vt 0.1328 0.1328
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1641 0.3203
|
||||
vt 0.1328 0.3203
|
||||
vt 0.1328 0.2266
|
||||
vt 0.1953 0.1328
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1641 0.1328
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1953 0.2578
|
||||
vt 0.1641 0.2578
|
||||
vt 0.1641 0.2266
|
||||
vt 0.2266 0.2578
|
||||
vt 0.1953 0.2578
|
||||
vt 0.1953 0.2266
|
||||
vt 0.2266 0.2266
|
||||
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 marx
|
||||
f 81/182/38 82/183/38 84/184/38 83/185/38
|
||||
f 83/186/39 84/187/39 88/188/39 87/189/39
|
||||
f 87/190/40 88/191/40 86/192/40 85/193/40
|
||||
f 85/194/41 86/195/41 82/196/41 81/197/41
|
||||
f 83/198/42 87/199/42 85/200/42 81/201/42
|
||||
f 88/202/43 84/203/43 82/204/43 86/205/43
|
||||
o Cube.018_Cube.031
|
||||
v 0.437498 0.312500 1.375000
|
||||
v 0.437499 1.187500 1.375000
|
||||
v 0.437498 0.312500 1.250000
|
||||
|
@ -249,44 +416,32 @@ v 0.562498 0.312500 1.375000
|
|||
v 0.562499 1.187500 1.375000
|
||||
v 0.562498 0.312500 1.250000
|
||||
v 0.562499 1.187500 1.250000
|
||||
vt 0.4219 0.1172
|
||||
vt 0.4219 0.0078
|
||||
vt 0.4375 0.0078
|
||||
vt 0.4375 0.1172
|
||||
vt 0.3906 0.3984
|
||||
vt 0.3906 0.2891
|
||||
vt 0.4062 0.2891
|
||||
vt 0.4062 0.3984
|
||||
vt 0.4688 0.0703
|
||||
vt 0.4688 0.1797
|
||||
vt 0.4531 0.1797
|
||||
vt 0.4531 0.0703
|
||||
vt 0.4141 0.0938
|
||||
vt 0.4141 0.2031
|
||||
vt 0.3984 0.2031
|
||||
vt 0.3984 0.0938
|
||||
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 89//59 90//59 92//59 91//59
|
||||
f 91//60 92//60 96//60 95//60
|
||||
f 95//61 96//61 94//61 93//61
|
||||
f 93//62 94//62 90//62 89//62
|
||||
f 91//63 95//63 93//63 89//63
|
||||
f 96//64 92//64 90//64 94//64
|
||||
o Cube.023_Cube.095
|
||||
v 0.437498 0.187500 1.375000
|
||||
v 0.437498 0.312500 1.375000
|
||||
v 0.437498 0.187500 1.000000
|
||||
v 0.437498 0.312500 1.000000
|
||||
v 0.562498 0.187500 1.375000
|
||||
v 0.562498 0.312500 1.375000
|
||||
v 0.562498 0.187500 1.000000
|
||||
v 0.562498 0.312500 1.000000
|
||||
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 97//65 98//65 100//65 99//65
|
||||
f 99//66 100//66 104//66 103//66
|
||||
f 103//67 104//67 102//67 101//67
|
||||
f 101//68 102//68 98//68 97//68
|
||||
f 99//69 103//69 101//69 97//69
|
||||
f 104//70 100//70 98//70 102//70
|
||||
o Cube.024_Cube.096
|
||||
usemtl marx
|
||||
f 89/206/44 90/207/44 92/208/44 91/209/44
|
||||
f 91/210/45 92/211/45 96/212/45 95/213/45
|
||||
f 95/214/46 96/215/46 94/216/46 93/217/46
|
||||
f 93/218/47 94/219/47 90/220/47 89/221/47
|
||||
o Cube.020_Cube.032
|
||||
v 0.374998 0.375000 1.437500
|
||||
v 0.374998 1.125000 1.437500
|
||||
v 0.374998 0.375000 1.187500
|
||||
|
@ -295,37 +450,60 @@ v 0.624998 0.375000 1.437500
|
|||
v 0.624998 1.125000 1.437500
|
||||
v 0.624998 0.375000 1.187500
|
||||
v 0.624998 1.125000 1.187500
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1953 0.1328
|
||||
vt 0.2266 0.1328
|
||||
vt 0.2266 0.2266
|
||||
vt 0.1641 0.1328
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1328 0.2266
|
||||
vt 0.1328 0.1328
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1641 0.3203
|
||||
vt 0.1328 0.3203
|
||||
vt 0.1328 0.2266
|
||||
vt 0.1953 0.1328
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1641 0.2266
|
||||
vt 0.1641 0.1328
|
||||
vt 0.1953 0.2266
|
||||
vt 0.1953 0.2578
|
||||
vt 0.1641 0.2578
|
||||
vt 0.1641 0.2266
|
||||
vt 0.2266 0.2578
|
||||
vt 0.1953 0.2578
|
||||
vt 0.1953 0.2266
|
||||
vt 0.2266 0.2266
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn -0.0000 0.0000 -1.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 105//71 106//71 108//71 107//71
|
||||
f 107//72 108//72 112//72 111//72
|
||||
f 111//73 112//73 110//73 109//73
|
||||
f 109//74 110//74 106//74 105//74
|
||||
f 107//75 111//75 109//75 105//75
|
||||
f 112//76 108//76 106//76 110//76
|
||||
o Cube.025_Cube.097
|
||||
usemtl marx
|
||||
f 97/222/48 98/223/48 100/224/48 99/225/48
|
||||
f 99/226/49 100/227/49 104/228/49 103/229/49
|
||||
f 103/230/50 104/231/50 102/232/50 101/233/50
|
||||
f 101/234/51 102/235/51 98/236/51 97/237/51
|
||||
f 99/238/52 103/239/52 101/240/52 97/241/52
|
||||
f 104/242/53 100/243/53 98/244/53 102/245/53
|
||||
o Cube.022_Cube.033
|
||||
v 0.812498 0.114277 -0.187500
|
||||
v 0.989275 -0.062500 -0.187500
|
||||
v 0.812498 0.114277 -0.437500
|
||||
v 0.812498 0.114276 -0.437500
|
||||
v 0.989275 -0.062500 -0.437500
|
||||
v 0.635722 -0.062500 -0.187500
|
||||
v 0.635721 -0.062500 -0.187500
|
||||
v 0.812498 -0.239277 -0.187500
|
||||
v 0.635722 -0.062500 -0.437500
|
||||
v 0.812498 -0.239277 -0.437500
|
||||
v 0.544192 0.294194 -0.250000
|
||||
v 0.897746 -0.059359 -0.250000
|
||||
v 0.544193 0.294194 -0.375000
|
||||
v 0.897746 -0.059359 -0.375000
|
||||
v 0.544193 0.294194 -0.373125
|
||||
v 0.897746 -0.059359 -0.373125
|
||||
v 0.455804 0.205806 -0.250000
|
||||
v 0.809358 -0.147748 -0.250000
|
||||
v 0.455804 0.205806 -0.375000
|
||||
v 0.809358 -0.147748 -0.375000
|
||||
v 0.809357 -0.147748 -0.250000
|
||||
v 0.455804 0.205806 -0.373125
|
||||
v 0.809357 -0.147748 -0.373125
|
||||
v 0.437498 0.187500 -0.375000
|
||||
v 0.562498 0.187500 -0.375000
|
||||
v 0.437498 0.187500 -0.000000
|
||||
|
@ -334,33 +512,124 @@ v 0.437498 0.312500 -0.375000
|
|||
v 0.562498 0.312500 -0.375000
|
||||
v 0.437498 0.312500 -0.000000
|
||||
v 0.562498 0.312500 0.000000
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3750 0.0625
|
||||
vt 0.4062 0.0625
|
||||
vt 0.4062 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.1562
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4688 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4375 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.0938
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3438 0.1562
|
||||
vt 0.3438 0.1250
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4375 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.5000 0.0625
|
||||
vt 0.5000 0.1250
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4688 0.1719
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4375 0.1719
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.3906 0.1719
|
||||
vt 0.3750 0.1719
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4062 0.1719
|
||||
vt 0.5000 0.1719
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4844 0.1250
|
||||
vt 0.5000 0.1250
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.0000 -0.0000 -1.0000
|
||||
vn -0.7071 -0.7071 -0.0000
|
||||
vn -0.0000 0.0000 1.0000
|
||||
vn -0.7071 0.7071 -0.0000
|
||||
vn 0.7071 -0.7071 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -1.0000 0.0000 -0.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
usemtl marx
|
||||
f 105/246/54 106/247/54 108/248/54 107/249/54
|
||||
f 107/250/55 108/251/55 112/252/55 111/253/55
|
||||
f 111/254/56 112/255/56 110/256/56 109/257/56
|
||||
f 109/258/57 110/256/57 106/259/57 105/260/57
|
||||
f 107/250/58 111/253/58 109/261/58 105/260/58
|
||||
f 112/252/59 108/262/59 106/263/59 110/264/59
|
||||
f 113/265/54 114/266/54 116/267/54 115/268/54
|
||||
f 115/269/55 116/270/55 120/271/55 119/272/55
|
||||
f 119/273/56 120/274/56 118/275/56 117/276/56
|
||||
f 117/277/57 118/278/57 114/279/57 113/280/57
|
||||
f 121/281/60 122/282/60 124/283/60 123/284/60
|
||||
f 127/285/61 128/286/61 126/287/61 125/288/61
|
||||
f 125/289/55 126/290/55 122/291/55 121/292/55
|
||||
f 123/293/62 127/294/62 125/295/62 121/296/62
|
||||
f 128/297/63 124/298/63 122/299/63 126/300/63
|
||||
o Cube.012_Cube.034
|
||||
v 1.437498 0.187500 1.375000
|
||||
v 1.437498 0.312500 1.375000
|
||||
v 1.437498 0.187500 1.000000
|
||||
v 1.437498 0.312500 1.000000
|
||||
v 1.562498 0.187500 1.375000
|
||||
v 1.562498 0.312500 1.375000
|
||||
v 1.562498 0.187500 1.000000
|
||||
v 1.562498 0.312500 1.000000
|
||||
vt 0.4219 0.2031
|
||||
vt 0.4062 0.2031
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4062 0.2031
|
||||
vt 0.3906 0.2031
|
||||
vt 0.4297 0.2031
|
||||
vt 0.4297 0.2188
|
||||
vt 0.4141 0.2188
|
||||
vt 0.4141 0.2031
|
||||
vt 0.4531 0.2031
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4531 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4219 0.2031
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
usemtl None
|
||||
s off
|
||||
f 113//77 114//77 116//77 115//77
|
||||
f 115//78 116//78 120//78 119//78
|
||||
f 119//79 120//79 118//79 117//79
|
||||
f 117//80 118//80 114//80 113//80
|
||||
f 115//81 119//81 117//81 113//81
|
||||
f 120//82 116//82 114//82 118//82
|
||||
f 121//77 122//77 124//77 123//77
|
||||
f 123//78 124//78 128//78 127//78
|
||||
f 127//79 128//79 126//79 125//79
|
||||
f 125//80 126//80 122//80 121//80
|
||||
f 123//81 127//81 125//81 121//81
|
||||
f 128//82 124//82 122//82 126//82
|
||||
f 129//83 130//83 132//83 131//83
|
||||
f 131//80 132//80 136//80 135//80
|
||||
f 135//84 136//84 134//84 133//84
|
||||
f 133//78 134//78 130//78 129//78
|
||||
f 131//85 135//85 133//85 129//85
|
||||
f 136//86 132//86 130//86 134//86
|
||||
vn -0.0000 0.0000 1.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
usemtl marx
|
||||
f 129/301/64 130/302/64 132/303/64 131/304/64
|
||||
f 135/305/65 136/306/65 134/307/65 133/308/65
|
||||
f 133/309/66 134/310/66 130/311/66 129/312/66
|
||||
f 131/313/67 135/314/67 133/315/67 129/316/67
|
||||
f 136/317/68 132/318/68 130/319/68 134/320/68
|
||||
|
|
|
@ -1,20 +1,2 @@
|
|||
# Blender MTL File: 'NewMarx.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl Material.004
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
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
|
||||
newmtl marx
|
||||
map_Ka industrialwires:blocks/marx
|
||||
|
|
|
@ -10,20 +10,38 @@ v 1.593750 0.062500 -3.406250
|
|||
v 1.593750 0.187500 -3.406250
|
||||
v 1.593750 0.062500 -3.593750
|
||||
v 1.593750 0.187500 -3.593750
|
||||
vt 0.4531 0.1641
|
||||
vt 0.4375 0.1641
|
||||
vt 0.4375 0.1406
|
||||
vt 0.4531 0.1406
|
||||
vt 0.4375 0.1172
|
||||
vt 0.4531 0.1172
|
||||
vt 0.4375 0.1406
|
||||
vt 0.4219 0.1406
|
||||
vt 0.4219 0.1172
|
||||
vt 0.4375 0.1172
|
||||
vt 0.4219 0.1406
|
||||
vt 0.4375 0.1406
|
||||
vt 0.4219 0.1641
|
||||
vt 0.3984 0.1641
|
||||
vt 0.3984 0.1406
|
||||
vt 0.4219 0.1172
|
||||
vt 0.4219 0.1406
|
||||
vt 0.3984 0.1406
|
||||
vt 0.3984 0.1172
|
||||
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 2//1 4//1 3//1
|
||||
f 3//2 4//2 8//2 7//2
|
||||
f 7//3 8//3 6//3 5//3
|
||||
f 5//4 6//4 2//4 1//4
|
||||
f 3//5 7//5 5//5 1//5
|
||||
f 8//6 4//6 2//6 6//6
|
||||
usemtl marx
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
f 3/4/2 4/3/2 8/5/2 7/6/2
|
||||
f 7/7/3 8/8/3 6/9/3 5/10/3
|
||||
f 5/11/4 6/12/4 2/2/4 1/13/4
|
||||
f 3/14/5 7/15/5 5/11/5 1/13/5
|
||||
f 8/16/6 4/17/6 2/18/6 6/19/6
|
||||
o Cube.027_Cube.115
|
||||
v 1.437500 0.187500 0.000000
|
||||
v 1.437500 0.312500 0.000000
|
||||
|
@ -33,21 +51,38 @@ v 1.562500 0.187500 0.000000
|
|||
v 1.562500 0.312500 0.000000
|
||||
v 1.562500 0.187500 -3.562500
|
||||
v 1.562500 0.312500 -3.562500
|
||||
vt 0.4219 0.4453
|
||||
vt 0.4062 0.4453
|
||||
vt 0.4062 -0.0000
|
||||
vt 0.4219 -0.0000
|
||||
vt 0.4375 0.0156
|
||||
vt 0.4375 -0.0000
|
||||
vt 0.4531 -0.0000
|
||||
vt 0.4531 0.0156
|
||||
vt 0.3906 0.4453
|
||||
vt 0.3750 0.4453
|
||||
vt 0.3750 -0.0000
|
||||
vt 0.3906 -0.0000
|
||||
vt 0.3906 -0.0000
|
||||
vt 0.4062 -0.0000
|
||||
vt 0.4062 0.4453
|
||||
vt 0.3906 0.4453
|
||||
vt 0.4375 0.4453
|
||||
vt 0.4219 0.4453
|
||||
vt 0.4219 -0.0000
|
||||
vt 0.4375 -0.0000
|
||||
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 9//7 10//7 12//7 11//7
|
||||
f 11//8 12//8 16//8 15//8
|
||||
f 15//9 16//9 14//9 13//9
|
||||
f 13//10 14//10 10//10 9//10
|
||||
f 11//11 15//11 13//11 9//11
|
||||
f 16//12 12//12 10//12 14//12
|
||||
o Cube.015_Cube.058
|
||||
usemtl marx
|
||||
f 9/20/7 10/21/7 12/22/7 11/23/7
|
||||
f 11/24/8 12/25/8 16/26/8 15/27/8
|
||||
f 15/28/9 16/29/9 14/30/9 13/31/9
|
||||
f 11/32/10 15/33/10 13/34/10 9/35/10
|
||||
f 16/36/11 12/37/11 10/38/11 14/39/11
|
||||
o Cube.013_Cube.035
|
||||
v 1.999999 -0.000001 0.000001
|
||||
v 1.999999 -0.000001 1.000000
|
||||
v 0.000000 0.000000 1.000000
|
||||
|
@ -56,21 +91,44 @@ v 2.000000 0.499999 0.000001
|
|||
v 1.999999 0.499999 1.000000
|
||||
v -0.000000 0.500000 1.000000
|
||||
v 0.000000 0.500000 0.000001
|
||||
vt 0.1250 0.5000
|
||||
vt 0.0000 0.5000
|
||||
vt 0.0000 0.2500
|
||||
vt 0.1250 0.2500
|
||||
vt 0.0000 0.2500
|
||||
vt 0.0000 -0.0000
|
||||
vt 0.1250 -0.0000
|
||||
vt 0.1250 0.2500
|
||||
vt -0.0000 0.5000
|
||||
vt 0.0625 0.5000
|
||||
vt 0.0625 0.6250
|
||||
vt -0.0000 0.6250
|
||||
vt 0.1250 0.1250
|
||||
vt 0.1250 0.0625
|
||||
vt 0.3750 0.0625
|
||||
vt 0.3750 0.1250
|
||||
vt 0.1250 0.6250
|
||||
vt 0.0625 0.6250
|
||||
vt 0.0625 0.5000
|
||||
vt 0.1250 0.5000
|
||||
vt 0.3750 -0.0000
|
||||
vt 0.3750 0.0625
|
||||
vt 0.1250 0.0625
|
||||
vt 0.1250 -0.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
usemtl Material.004
|
||||
s off
|
||||
f 17//13 18//13 19//13 20//13
|
||||
f 21//14 24//14 23//14 22//14
|
||||
f 17//15 21//15 22//15 18//15
|
||||
f 18//16 22//16 23//16 19//16
|
||||
f 19//17 23//17 24//17 20//17
|
||||
f 21//18 17//18 20//18 24//18
|
||||
o Cube.026_Cube.059
|
||||
usemtl marx
|
||||
f 17/40/12 18/41/12 19/42/12 20/43/12
|
||||
f 21/44/13 24/45/13 23/46/13 22/47/13
|
||||
f 17/48/14 21/49/14 22/50/14 18/51/14
|
||||
f 18/52/15 22/53/15 23/54/15 19/55/15
|
||||
f 19/56/16 23/57/16 24/58/16 20/59/16
|
||||
f 21/60/17 17/61/17 20/62/17 24/63/17
|
||||
o Cube.019_Cube.036
|
||||
v 1.437498 0.187500 1.375000
|
||||
v 1.437498 0.312500 1.375000
|
||||
v 1.437498 0.187500 1.000000
|
||||
|
@ -79,21 +137,38 @@ v 1.562498 0.187500 1.375000
|
|||
v 1.562498 0.312500 1.375000
|
||||
v 1.562498 0.187500 1.000000
|
||||
v 1.562498 0.312500 1.000000
|
||||
vt 0.4219 0.2031
|
||||
vt 0.4062 0.2031
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4062 0.2031
|
||||
vt 0.3906 0.2031
|
||||
vt 0.4297 0.2031
|
||||
vt 0.4297 0.2188
|
||||
vt 0.4141 0.2188
|
||||
vt 0.4141 0.2031
|
||||
vt 0.4531 0.2031
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4531 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4219 0.2031
|
||||
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 25//19 26//19 28//19 27//19
|
||||
f 27//20 28//20 32//20 31//20
|
||||
f 31//21 32//21 30//21 29//21
|
||||
f 29//22 30//22 26//22 25//22
|
||||
f 27//23 31//23 29//23 25//23
|
||||
f 32//24 28//24 26//24 30//24
|
||||
o Cube.034_Cube.060
|
||||
usemtl marx
|
||||
f 25/64/18 26/65/18 28/66/18 27/67/18
|
||||
f 31/68/19 32/69/19 30/70/19 29/71/19
|
||||
f 29/72/20 30/73/20 26/74/20 25/75/20
|
||||
f 27/76/21 31/77/21 29/78/21 25/79/21
|
||||
f 32/80/22 28/81/22 26/82/22 30/83/22
|
||||
o Cube.023_Cube.037
|
||||
v 0.437498 0.187500 1.375000
|
||||
v 0.437498 0.312500 1.375000
|
||||
v 0.437498 0.187500 1.000000
|
||||
|
@ -102,37 +177,54 @@ v 0.562498 0.187500 1.375000
|
|||
v 0.562498 0.312500 1.375000
|
||||
v 0.562498 0.187500 1.000000
|
||||
v 0.562498 0.312500 1.000000
|
||||
vt 0.4219 0.2031
|
||||
vt 0.4062 0.2031
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1562
|
||||
vt 0.4062 0.2031
|
||||
vt 0.3906 0.2031
|
||||
vt 0.4297 0.2031
|
||||
vt 0.4297 0.2188
|
||||
vt 0.4141 0.2188
|
||||
vt 0.4141 0.2031
|
||||
vt 0.4531 0.2031
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4531 0.1562
|
||||
vt 0.4219 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.2031
|
||||
vt 0.4219 0.2031
|
||||
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 33//25 34//25 36//25 35//25
|
||||
f 35//26 36//26 40//26 39//26
|
||||
f 39//27 40//27 38//27 37//27
|
||||
f 37//28 38//28 34//28 33//28
|
||||
f 35//29 39//29 37//29 33//29
|
||||
f 40//30 36//30 34//30 38//30
|
||||
o Cube.038_Cube.061
|
||||
usemtl marx
|
||||
f 33/84/23 34/85/23 36/86/23 35/87/23
|
||||
f 39/88/24 40/89/24 38/90/24 37/91/24
|
||||
f 37/92/25 38/93/25 34/94/25 33/95/25
|
||||
f 35/96/26 39/97/26 37/98/26 33/99/26
|
||||
f 40/100/27 36/101/27 34/102/27 38/103/27
|
||||
o Cube.024_Cube.038
|
||||
v 0.812498 0.114277 -0.187500
|
||||
v 0.989275 -0.062500 -0.187500
|
||||
v 0.812498 0.114277 -0.437500
|
||||
v 0.812498 0.114276 -0.437500
|
||||
v 0.989275 -0.062500 -0.437500
|
||||
v 0.635722 -0.062500 -0.187500
|
||||
v 0.635721 -0.062500 -0.187500
|
||||
v 0.812498 -0.239277 -0.187500
|
||||
v 0.635722 -0.062500 -0.437500
|
||||
v 0.812498 -0.239277 -0.437500
|
||||
v 0.544192 0.294194 -0.250000
|
||||
v 0.897746 -0.059359 -0.250000
|
||||
v 0.544193 0.294194 -0.375000
|
||||
v 0.897746 -0.059359 -0.375000
|
||||
v 0.544193 0.294194 -0.373125
|
||||
v 0.897746 -0.059359 -0.373125
|
||||
v 0.455804 0.205806 -0.250000
|
||||
v 0.809358 -0.147748 -0.250000
|
||||
v 0.455804 0.205806 -0.375000
|
||||
v 0.809358 -0.147748 -0.375000
|
||||
v 0.809357 -0.147748 -0.250000
|
||||
v 0.455804 0.205806 -0.373125
|
||||
v 0.809357 -0.147748 -0.373125
|
||||
v 0.437498 0.187500 -0.375000
|
||||
v 0.562498 0.187500 -0.375000
|
||||
v 0.437498 0.187500 -0.000000
|
||||
|
@ -141,33 +233,84 @@ v 0.437498 0.312500 -0.375000
|
|||
v 0.562498 0.312500 -0.375000
|
||||
v 0.437498 0.312500 -0.000000
|
||||
v 0.562498 0.312500 0.000000
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3750 0.0625
|
||||
vt 0.4062 0.0625
|
||||
vt 0.4062 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.1562
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4688 0.1562
|
||||
vt 0.4375 0.1562
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4375 0.0938
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4062 0.0938
|
||||
vt 0.3750 0.0938
|
||||
vt 0.3438 0.1562
|
||||
vt 0.3438 0.1250
|
||||
vt 0.3750 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.4375 0.0625
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4844 0.0625
|
||||
vt 0.5000 0.0625
|
||||
vt 0.5000 0.1250
|
||||
vt 0.4531 0.1250
|
||||
vt 0.4531 0.0625
|
||||
vt 0.4688 0.0625
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4688 0.1719
|
||||
vt 0.4688 0.1250
|
||||
vt 0.4844 0.1250
|
||||
vt 0.4375 0.1719
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4375 0.1250
|
||||
vt 0.3906 0.1719
|
||||
vt 0.3750 0.1719
|
||||
vt 0.3750 0.1562
|
||||
vt 0.3906 0.1562
|
||||
vt 0.4062 0.1250
|
||||
vt 0.4219 0.1250
|
||||
vt 0.4219 0.1719
|
||||
vt 0.4062 0.1719
|
||||
vt 0.5000 0.1719
|
||||
vt 0.4844 0.1719
|
||||
vt 0.4844 0.1250
|
||||
vt 0.5000 0.1250
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.0000 -0.0000 -1.0000
|
||||
vn -0.7071 -0.7071 -0.0000
|
||||
vn -0.0000 0.0000 1.0000
|
||||
vn -0.7071 0.7071 -0.0000
|
||||
vn 0.7071 -0.7071 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -1.0000 0.0000 -0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
usemtl None
|
||||
s off
|
||||
f 41//31 42//31 44//31 43//31
|
||||
f 43//32 44//32 48//32 47//32
|
||||
f 47//33 48//33 46//33 45//33
|
||||
f 45//34 46//34 42//34 41//34
|
||||
f 43//35 47//35 45//35 41//35
|
||||
f 48//36 44//36 42//36 46//36
|
||||
f 49//31 50//31 52//31 51//31
|
||||
f 51//32 52//32 56//32 55//32
|
||||
f 55//33 56//33 54//33 53//33
|
||||
f 53//34 54//34 50//34 49//34
|
||||
f 51//35 55//35 53//35 49//35
|
||||
f 56//36 52//36 50//36 54//36
|
||||
f 57//37 58//37 60//37 59//37
|
||||
f 59//34 60//34 64//34 63//34
|
||||
f 63//38 64//38 62//38 61//38
|
||||
f 61//32 62//32 58//32 57//32
|
||||
f 59//39 63//39 61//39 57//39
|
||||
f 64//40 60//40 58//40 62//40
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
usemtl marx
|
||||
f 41/104/28 42/105/28 44/106/28 43/107/28
|
||||
f 43/108/29 44/109/29 48/110/29 47/111/29
|
||||
f 47/112/30 48/113/30 46/114/30 45/115/30
|
||||
f 45/116/31 46/114/31 42/117/31 41/118/31
|
||||
f 43/108/32 47/111/32 45/119/32 41/118/32
|
||||
f 48/110/33 44/120/33 42/121/33 46/122/33
|
||||
f 49/123/28 50/124/28 52/125/28 51/126/28
|
||||
f 51/127/29 52/128/29 56/129/29 55/130/29
|
||||
f 55/131/30 56/132/30 54/133/30 53/134/30
|
||||
f 53/135/31 54/136/31 50/137/31 49/138/31
|
||||
f 57/139/34 58/140/34 60/141/34 59/142/34
|
||||
f 63/143/35 64/144/35 62/145/35 61/146/35
|
||||
f 61/147/29 62/148/29 58/149/29 57/150/29
|
||||
f 59/151/36 63/152/36 61/153/36 57/154/36
|
||||
f 64/155/37 60/156/37 58/157/37 62/158/37
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Loading…
Reference in a new issue