rotten grussy

This commit is contained in:
Boblet 2025-07-07 16:56:23 +02:00
parent ba220420fe
commit 6b1d61166f
8 changed files with 337 additions and 1790 deletions

View File

@ -1002,7 +1002,8 @@ public class ModBlocks {
public static Block machine_mining_laser;
public static Block barricade; // a sand bag that drops nothing, for automated walling purposes
public static Block machine_assembler;
@Deprecated public static Block machine_assembler;
public static Block machine_assembly_machine;
public static Block machine_assemfac;
public static Block machine_arc_welder;
public static Block machine_soldering_station;
@ -2228,6 +2229,7 @@ public class ModBlocks {
machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser");
barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade");
machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler");
machine_assembly_machine = new MachineAssemblyMachine(Material.iron).setBlockName("machine_assembly_machine").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_soldering_station = new MachineSolderingStation(Material.iron).setBlockName("machine_soldering_station").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -3273,6 +3275,7 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_arc_furnace_on, machine_arc_furnace_on.getUnlocalizedName());
GameRegistry.registerBlock(machine_microwave, machine_microwave.getUnlocalizedName());
GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName());
register(machine_assembly_machine);
GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName());
GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName());
register(machine_chemical_plant);

View File

@ -0,0 +1,45 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityMachineAssemblyMachine;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineAssemblyMachine extends BlockDummyable {
public MachineAssemblyMachine(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityMachineAssemblyMachine();
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid();
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return this.standardOpenBehavior(world, x, y, z, player, 0);
}
@Override public int[] getDimensions() { return new int[] {2, 0, 1, 1, 1, 1}; }
@Override public int getOffset() { return 1; }
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
x -= dir.offsetX;
z -= dir.offsetZ;
for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) {
if(i != 0 || j != 0) this.makeExtra(world, x + i, y, z + j);
}
}
}

View File

@ -21,7 +21,7 @@ public class ModuleMachineAssembler extends ModuleMachineBase {
return null;
}
public ModuleMachineAssembler itemInput(int... a) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = a[i]; return this; }
public ModuleMachineAssembler itemInput(int from) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = from + i; return this; }
public ModuleMachineAssembler itemOutput(int a) { outputSlots[0] = a; return this; }
public ModuleMachineAssembler fluidInput(FluidTank a) { inputTanks[0] = a; return this; }
public ModuleMachineAssembler fluidOutput(FluidTank a) { outputTanks[0] = a; return this; }

View File

@ -0,0 +1,286 @@
package com.hbm.tileentity.machine;
import java.util.HashMap;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IControlReceiver;
import com.hbm.inventory.UpgradeManagerNT;
import com.hbm.inventory.container.ContainerMachineChemicalPlant;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIMachineChemicalPlant;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.module.machine.ModuleMachineAssembler;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BobMathUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.util.i18n.I18nUtil;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluidmk2.IFluidStandardTransceiverMK2;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class TileEntityMachineAssemblyMachine extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider {
public FluidTank inputTank;
public FluidTank outputTank;
public long power;
public long maxPower = 1_000_000;
public boolean didProcess = false;
public boolean frame = false;
private AudioWrapper audio;
public ModuleMachineAssembler assemblerModule;
public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this);
public TileEntityMachineAssemblyMachine() {
super(17);
this.inputTank = new FluidTank(Fluids.NONE, 32_000);
this.outputTank = new FluidTank(Fluids.NONE, 32_000);
this.assemblerModule = new ModuleMachineAssembler(0, this, slots)
.itemInput(4).itemOutput(16)
.fluidInput(inputTank).fluidOutput(outputTank);
}
@Override
public String getName() {
return "container.machineAssemblyMachine";
}
@Override
public void updateEntity() {
if(maxPower <= 0) this.maxPower = 1_000_000;
if(!worldObj.isRemote) {
this.power = Library.chargeTEFromItems(slots, 0, power, maxPower);
upgradeManager.checkSlots(slots, 2, 3);
for(DirPos pos : getConPos()) {
this.trySubscribe(worldObj, pos);
if(inputTank.getTankType() != Fluids.NONE) this.trySubscribe(inputTank.getTankType(), worldObj, pos);
if(outputTank.getFill() > 0) this.tryProvide(outputTank, worldObj, pos);
}
double speed = 1D;
double pow = 1D;
speed += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) / 3D;
speed += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3);
pow -= Math.min(upgradeManager.getLevel(UpgradeType.POWER), 3) * 0.25D;
pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D;
pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D;
this.assemblerModule.update(speed, pow, true);
this.didProcess = this.assemblerModule.didProcess;
if(this.assemblerModule.markDirty) this.markDirty();
if(didProcess) {
if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed)
slots[0] = new ItemStack(ModItems.meteorite_sword_machined);
}
this.networkPackNT(100);
} else {
if(worldObj.getTotalWorldTime() % 20 == 0) {
frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord);
}
if(this.didProcess && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) {
if(audio == null) {
audio = createAudioLoop();
audio.startSound();
} else if(!audio.isPlaying()) {
audio = rebootAudio(audio);
}
audio.keepAlive();
audio.updateVolume(this.getVolume(1F));
} else {
if(audio != null) {
audio.stopSound();
audio = null;
}
}
}
}
@Override public AudioWrapper createAudioLoop() {
return MainRegistry.proxy.getLoopedSound("hbm:block.assembler", xCoord, yCoord, zCoord, 1F, 15F, 1.0F, 20);
}
@Override public void onChunkUnload() {
if(audio != null) { audio.stopSound(); audio = null; }
}
@Override public void invalidate() {
super.invalidate();
if(audio != null) { audio.stopSound(); audio = null; }
}
public DirPos[] getConPos() {
return new DirPos[] {
new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X),
new DirPos(xCoord + 2, yCoord, zCoord + 0, Library.POS_X),
new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X),
new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X),
new DirPos(xCoord - 2, yCoord, zCoord + 0, Library.NEG_X),
new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X),
new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z),
new DirPos(xCoord + 0, yCoord, zCoord + 2, Library.POS_Z),
new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z),
new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z),
new DirPos(xCoord + 0, yCoord, zCoord - 2, Library.NEG_Z),
new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z),
};
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
this.inputTank.serialize(buf);
this.outputTank.serialize(buf);
buf.writeLong(power);
buf.writeLong(maxPower);
buf.writeBoolean(didProcess);
this.assemblerModule.serialize(buf);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
this.inputTank.deserialize(buf);
this.outputTank.deserialize(buf);
this.power = buf.readLong();
this.maxPower = buf.readLong();
this.didProcess = buf.readBoolean();
this.assemblerModule.deserialize(buf);
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.inputTank.readFromNBT(nbt, "i");
this.outputTank.readFromNBT(nbt, "o");
this.power = nbt.getLong("power");
this.maxPower = nbt.getLong("maxPower");
this.assemblerModule.readFromNBT(nbt);
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
this.inputTank.writeToNBT(nbt, "i");
this.outputTank.writeToNBT(nbt, "o");
nbt.setLong("power", power);
nbt.setLong("maxPower", maxPower);
this.assemblerModule.writeToNBT(nbt);
}
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
if(slot == 0) return true; // battery
if(slot >= 2 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgrades
if(this.assemblerModule.isItemValid(slot, stack)) return true; // recipe input crap
return false;
}
@Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
return i == 16;
}
@Override public long getPower() { return power; }
@Override public void setPower(long power) { this.power = power; }
@Override public long getMaxPower() { return maxPower; }
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {inputTank}; }
@Override public FluidTank[] getSendingTanks() { return new FluidTank[] {outputTank}; }
@Override public FluidTank[] getAllTanks() { return new FluidTank[] {inputTank, outputTank}; }
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineAssemblyMachine(player.inventory, this); }
@Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAssemblyMachine(player.inventory, this); }
@Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); }
@Override
public void receiveControl(NBTTagCompound data) {
if(data.hasKey("index") && data.hasKey("selection")) {
int index = data.getInteger("index");
String selection = data.getString("selection");
if(index == 0) {
this.assemblerModule.recipe = selection;
this.markChanged();
}
}
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord, zCoord - 1, xCoord + 2, yCoord + 3, zCoord + 2);
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) {
return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE;
}
@Override
public void provideInfo(UpgradeType type, int level, List<String> info, boolean extendedInfo) {
info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembly_machine));
if(type == UpgradeType.SPEED) {
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_SPEED, "+" + (level * 100 / 3) + "%"));
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 50) + "%"));
}
if(type == UpgradeType.POWER) {
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 25) + "%"));
}
if(type == UpgradeType.OVERDRIVE) {
info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES");
}
}
@Override
public HashMap<UpgradeType, Integer> getValidUpgrades() {
HashMap<UpgradeType, Integer> upgrades = new HashMap<>();
upgrades.put(UpgradeType.SPEED, 3);
upgrades.put(UpgradeType.POWER, 3);
upgrades.put(UpgradeType.OVERDRIVE, 3);
return upgrades;
}
}

View File

@ -383,7 +383,7 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl
@Override
public void provideInfo(UpgradeType type, int level, List<String> info, boolean extendedInfo) {
info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemical_plant));
info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemical_factory));
if(type == UpgradeType.SPEED) {
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_SPEED, "+" + (level * 100 / 3) + "%"));
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 50) + "%"));

File diff suppressed because it is too large Load Diff

View File

@ -1,645 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'assembler_wheel.blend'
# www.blender.org
o Cylinder
v 0.000000 1.162500 -0.750000
v 0.000000 1.537500 -0.750000
v 0.194114 1.162500 -0.724444
v 0.194114 1.537500 -0.724444
v 0.375000 1.162500 -0.649519
v 0.375000 1.537500 -0.649519
v 0.530330 1.162500 -0.530330
v 0.530330 1.537500 -0.530330
v 0.649519 1.162500 -0.375000
v 0.649519 1.537500 -0.375000
v 0.724444 1.162500 -0.194114
v 0.724444 1.537500 -0.194114
v 0.750000 1.162500 -0.000000
v 0.750000 1.537500 -0.000000
v 0.724444 1.162500 0.194114
v 0.724444 1.537500 0.194114
v 0.649519 1.162500 0.375000
v 0.649519 1.537500 0.375000
v 0.530330 1.162500 0.530330
v 0.530330 1.537500 0.530330
v 0.375000 1.162500 0.649519
v 0.375000 1.537500 0.649519
v 0.194115 1.162500 0.724444
v 0.194115 1.537500 0.724444
v 0.000000 1.162500 0.750000
v 0.000000 1.537500 0.750000
v -0.194114 1.162500 0.724444
v -0.194114 1.537500 0.724444
v -0.375000 1.162500 0.649519
v -0.375000 1.537500 0.649519
v -0.530330 1.162500 0.530330
v -0.530330 1.537500 0.530330
v -0.649519 1.162500 0.375000
v -0.649519 1.537500 0.375000
v -0.724444 1.162500 0.194115
v -0.724444 1.537500 0.194115
v -0.750000 1.162500 0.000000
v -0.750000 1.537500 0.000000
v -0.724444 1.162500 -0.194114
v -0.724444 1.537500 -0.194114
v -0.649519 1.162500 -0.375000
v -0.649519 1.537500 -0.375000
v -0.530330 1.162500 -0.530330
v -0.530330 1.537500 -0.530330
v -0.375000 1.162500 -0.649519
v -0.375000 1.537500 -0.649519
v -0.194115 1.162500 -0.724444
v -0.194115 1.537500 -0.724444
v 0.000000 1.162500 -0.562500
v 0.000000 1.537500 -0.562500
v 0.145586 1.162500 -0.543333
v 0.145586 1.537500 -0.543333
v 0.281250 1.162500 -0.487139
v 0.281250 1.537500 -0.487139
v 0.397748 1.162500 -0.397748
v 0.397748 1.537500 -0.397748
v 0.487139 1.162500 -0.281250
v 0.487139 1.537500 -0.281250
v 0.543333 1.162500 -0.145586
v 0.543333 1.537500 -0.145586
v 0.562500 1.162500 -0.000000
v 0.562500 1.537500 -0.000000
v 0.543333 1.162500 0.145586
v 0.543333 1.537500 0.145586
v 0.487139 1.162500 0.281250
v 0.487139 1.537500 0.281250
v 0.397748 1.162500 0.397747
v 0.397748 1.537500 0.397747
v 0.281250 1.162500 0.487139
v 0.281250 1.537500 0.487139
v 0.145586 1.162500 0.543333
v 0.145586 1.537500 0.543333
v 0.000000 1.162500 0.562500
v 0.000000 1.537500 0.562500
v -0.145585 1.162500 0.543333
v -0.145585 1.537500 0.543333
v -0.281250 1.162500 0.487139
v -0.281250 1.537500 0.487139
v -0.397747 1.162500 0.397748
v -0.397747 1.537500 0.397748
v -0.487139 1.162500 0.281250
v -0.487139 1.537500 0.281250
v -0.543333 1.162500 0.145586
v -0.543333 1.537500 0.145586
v -0.562500 1.162500 0.000000
v -0.562500 1.537500 0.000000
v -0.543333 1.162500 -0.145585
v -0.543333 1.537500 -0.145585
v -0.487139 1.162500 -0.281250
v -0.487139 1.537500 -0.281250
v -0.397748 1.162500 -0.397747
v -0.397748 1.537500 -0.397747
v -0.281250 1.162500 -0.487139
v -0.281250 1.537500 -0.487139
v -0.145586 1.162500 -0.543333
v -0.145586 1.537500 -0.543333
v 0.000000 1.537500 -0.281250
v 0.072793 1.537500 -0.271667
v 0.140625 1.537500 -0.243570
v 0.198874 1.537500 -0.198874
v 0.243570 1.537500 -0.140625
v 0.271667 1.537500 -0.072793
v 0.281250 1.537500 0.000000
v 0.271667 1.537500 0.072793
v 0.243570 1.537500 0.140625
v 0.198874 1.537500 0.198874
v 0.140625 1.537500 0.243570
v 0.072793 1.537500 0.271667
v 0.000000 1.537500 0.281250
v -0.072793 1.537500 0.271667
v -0.140625 1.537500 0.243570
v -0.198874 1.537500 0.198874
v -0.243570 1.537500 0.140625
v -0.271667 1.537500 0.072793
v -0.281250 1.537500 0.000000
v -0.271667 1.537500 -0.072793
v -0.243570 1.537500 -0.140625
v -0.198874 1.537500 -0.198874
v -0.140625 1.537500 -0.243569
v -0.072793 1.537500 -0.271667
v 0.000000 1.287500 0.281250
v 0.072793 1.287500 0.271667
v 0.140625 1.287500 0.243570
v 0.198874 1.287500 0.198874
v 0.243570 1.287500 0.140625
v 0.271667 1.287500 0.072793
v 0.281250 1.287500 0.000000
v 0.271667 1.287500 -0.072793
v 0.243570 1.287500 -0.140625
v 0.198874 1.287500 -0.198874
v 0.140625 1.287500 -0.243570
v 0.072793 1.287500 -0.271667
v 0.000000 1.287500 -0.281250
v -0.072793 1.287500 0.271667
v -0.140625 1.287500 0.243570
v -0.198874 1.287500 0.198874
v -0.243570 1.287500 0.140625
v -0.271667 1.287500 0.072793
v -0.281250 1.287500 0.000000
v -0.271667 1.287500 -0.072793
v -0.243570 1.287500 -0.140625
v -0.198874 1.287500 -0.198874
v -0.140625 1.287500 -0.243569
v -0.072793 1.287500 -0.271667
vt 0.190885 0.497428
vt 0.190885 0.622697
vt 0.128251 0.622697
vt 0.607699 0.748393
vt 0.542295 0.748393
vt 0.542295 0.623125
vt 0.062848 0.622697
vt 0.000214 0.622697
vt 0.000214 0.497429
vt 0.367975 0.748393
vt 0.302572 0.748393
vt 0.302572 0.623125
vt 0.670333 0.748821
vt 0.670333 0.874089
vt 0.607699 0.874089
vt 0.128251 0.748393
vt 0.062848 0.748393
vt 0.062848 0.623125
vt 0.542296 0.874090
vt 0.479662 0.874090
vt 0.479662 0.748821
vt 0.607699 0.999786
vt 0.542296 0.999786
vt 0.542296 0.874518
vt 0.430609 0.748821
vt 0.430609 0.874090
vt 0.367975 0.874090
vt 0.367975 0.999786
vt 0.302572 0.999786
vt 0.302572 0.874518
vt 0.302572 0.874090
vt 0.239938 0.874090
vt 0.239938 0.748821
vt 0.128251 0.999786
vt 0.062848 0.999786
vt 0.062848 0.874518
vt 0.190886 0.748821
vt 0.190886 0.874090
vt 0.128251 0.874089
vt 0.607699 0.622697
vt 0.542295 0.622697
vt 0.542295 0.497428
vt 0.000214 0.874089
vt 0.000214 0.748821
vt 0.062848 0.748821
vt 0.367975 0.622697
vt 0.302572 0.622697
vt 0.302572 0.497428
vt 0.670333 0.623125
vt 0.670333 0.748393
vt 0.062848 0.497429
vt 0.479661 0.748393
vt 0.479661 0.623125
vt 0.542296 0.748821
vt 0.430609 0.623125
vt 0.430609 0.748393
vt 0.302572 0.748821
vt 0.176700 0.075008
vt 0.134220 0.099534
vt 0.096090 0.049843
vt 0.062848 0.874089
vt 0.239938 0.748393
vt 0.049843 0.096090
vt 0.099534 0.134219
vt 0.075008 0.176700
vt 0.719385 0.748393
vt 0.190885 0.748393
vt 0.128251 0.623125
vt 0.000214 0.748393
vt 0.190885 0.623125
vt 0.670333 0.999786
vt 0.607699 0.874518
vt 0.719385 0.999786
vt 0.670333 0.874518
vt 0.479661 0.999786
vt 0.479661 0.874518
vt 0.430609 0.999786
vt 0.430609 0.874518
vt 0.239938 0.999786
vt 0.190885 0.999786
vt 0.190885 0.874518
vt 0.239938 0.874518
vt 0.719385 0.622697
vt 0.670333 0.622697
vt 0.670333 0.497428
vt 0.239938 0.622697
vt 0.239938 0.497428
vt 0.479661 0.622697
vt 0.430609 0.622697
vt 0.430609 0.497428
vt 0.000214 0.999786
vt 0.000214 0.874518
vt 0.719385 0.874089
vt 0.479661 0.497428
vt 0.323144 0.191413
vt 0.397680 0.134219
vt 0.422206 0.176700
vt 0.273133 0.062312
vt 0.224081 0.062312
vt 0.215906 0.000214
vt 0.362995 0.099534
vt 0.320514 0.075008
vt 0.344483 0.017142
vt 0.480073 0.152731
vt 0.434902 0.224081
vt 0.497000 0.215905
vt 0.497000 0.281309
vt 0.397680 0.362995
vt 0.422206 0.320514
vt 0.480073 0.344483
vt 0.362995 0.397680
vt 0.401124 0.447371
vt 0.344484 0.480073
vt 0.224081 0.434902
vt 0.273133 0.434902
vt 0.281309 0.497000
vt 0.134219 0.397680
vt 0.176700 0.422206
vt 0.152731 0.480073
vt 0.017142 0.344483
vt 0.075008 0.320514
vt 0.099534 0.362995
vt 0.062312 0.224081
vt 0.062312 0.273133
vt 0.000214 0.281309
vt 0.305801 0.174071
vt 0.521955 0.167717
vt 0.521955 0.084205
vt 0.546481 0.084205
vt 0.546481 0.335598
vt 0.546481 0.252086
vt 0.571007 0.252086
vt 0.497428 0.251658
vt 0.497428 0.168145
vt 0.521955 0.168145
vt 0.571007 0.083752
vt 0.571036 0.000239
vt 0.595562 0.000248
vt 0.546481 0.167717
vt 0.571007 0.084205
vt 0.521955 0.251658
vt 0.546481 0.168145
vt 0.571007 0.335598
vt 0.595533 0.252086
vt 0.571007 0.167717
vt 0.595533 0.084205
vt 0.595533 0.083760
vt 0.620088 0.000256
vt 0.546481 0.251658
vt 0.571007 0.168145
vt 0.595533 0.167717
vt 0.620059 0.084205
vt 0.595533 0.335598
vt 0.620059 0.252086
vt 0.571007 0.251658
vt 0.595533 0.168145
vt 0.620059 0.083769
vt 0.644614 0.000265
vt 0.620059 0.167717
vt 0.644585 0.084205
vt 0.497428 0.083726
vt 0.497457 0.000214
vt 0.521983 0.000223
vt 0.595533 0.251658
vt 0.620059 0.168145
vt 0.620059 0.335598
vt 0.644585 0.252086
vt 0.497428 0.335598
vt 0.497428 0.252086
vt 0.521955 0.252086
vt 0.620059 0.251658
vt 0.644585 0.168145
vt 0.521955 0.083735
vt 0.546510 0.000231
vt 0.497428 0.167717
vt 0.497428 0.084205
vt 0.521955 0.335598
vt 0.546481 0.083743
vt 0.341755 0.236344
vt 0.335407 0.212654
vt 0.434902 0.273133
vt 0.341755 0.260870
vt 0.335407 0.284561
vt 0.323144 0.305801
vt 0.305801 0.323144
vt 0.284561 0.335407
vt 0.260870 0.341754
vt 0.320514 0.422206
vt 0.236344 0.341754
vt 0.212654 0.335407
vt 0.191413 0.323144
vt 0.174071 0.305801
vt 0.161808 0.284561
vt 0.155460 0.260870
vt 0.155460 0.236344
vt 0.161808 0.212653
vt 0.174071 0.191413
vt 0.191413 0.174071
vt 0.212654 0.161807
vt 0.236344 0.155460
vt 0.260870 0.155460
vt 0.284561 0.161808
vt 0.128251 0.497428
vt 0.607699 0.623125
vt 0.367975 0.623125
vt 0.607699 0.748821
vt 0.367975 0.748821
vt 0.367975 0.874518
vt 0.128251 0.874518
vt 0.128251 0.748821
vt 0.607699 0.497428
vt 0.367975 0.497428
vt 0.152731 0.017142
vt 0.239938 0.623125
vt 0.017142 0.152731
vt 0.719385 0.623125
vt 0.000214 0.623125
vt 0.719385 0.874518
vt 0.719385 0.497428
vt 0.719385 0.748821
vt 0.281309 0.000214
vt 0.401124 0.049843
vt 0.447371 0.096090
vt 0.447371 0.401124
vt 0.215906 0.497000
vt 0.096090 0.447371
vt 0.049843 0.401124
vt 0.000214 0.215905
vt 0.644585 0.083777
vt 0.644585 0.167717
vt 0.644585 0.335598
vt 0.644585 0.251658
vn 0.258800 0.000000 0.965900
vn 0.382700 0.000000 -0.923900
vn -0.000000 0.000000 -1.000000
vn 0.793400 0.000000 -0.608800
vn -0.258800 0.000000 0.965900
vn 0.991400 0.000000 -0.130500
vn 0.500000 0.000000 -0.866000
vn 0.923900 0.000000 0.382700
vn -0.707100 0.000000 0.707100
vn 0.608800 0.000000 0.793400
vn 0.866000 0.000000 -0.500000
vn 0.130500 0.000000 0.991400
vn -0.965900 0.000000 0.258800
vn -0.382700 0.000000 0.923900
vn 1.000000 0.000000 -0.000000
vn -0.793400 0.000000 0.608800
vn -0.965900 0.000000 -0.258800
vn -0.991400 0.000000 0.130500
vn 0.866000 0.000000 0.500000
vn -0.923900 0.000000 -0.382700
vn -0.707100 0.000000 -0.707100
vn -0.608800 0.000000 -0.793400
vn 0.000000 1.000000 -0.000000
vn -0.130500 0.000000 -0.991400
vn 0.500000 0.000000 0.866000
vn 0.130500 0.000000 -0.991400
vn -0.258800 0.000000 -0.965900
vn 0.608800 0.000000 -0.793400
vn 0.000000 0.000000 1.000000
vn 0.923900 0.000000 -0.382700
vn 0.258800 0.000000 -0.965900
vn 0.991400 0.000000 0.130500
vn -0.500000 0.000000 0.866000
vn 0.793400 0.000000 0.608800
vn 0.707100 0.000000 -0.707100
vn 0.382700 0.000000 0.923900
vn -0.866000 0.000000 0.500000
vn -0.130500 0.000000 0.991400
vn -0.500000 0.000000 -0.866000
vn -0.608800 0.000000 0.793400
vn 0.965900 0.000000 -0.258800
vn -0.923900 0.000000 0.382700
vn -1.000000 0.000000 0.000000
vn -0.991400 0.000000 -0.130500
vn 0.965900 0.000000 0.258800
vn -0.793400 0.000000 -0.608800
vn -0.866000 0.000000 -0.500000
vn 0.707100 0.000000 0.707100
vn -0.382700 0.000000 -0.923900
s off
f 83/1/1 84/2/1 36/3/1
f 4/4/2 6/5/2 5/6/2
f 38/7/3 86/8/3 85/9/3
f 8/10/4 10/11/4 9/12/4
f 87/13/5 88/14/5 40/15/5
f 12/16/6 14/17/6 13/18/6
f 42/19/7 90/20/7 89/21/7
f 16/22/8 18/23/8 17/24/8
f 91/25/9 92/26/9 44/27/9
f 20/28/10 22/29/10 21/30/10
f 46/31/11 94/32/11 93/33/11
f 24/34/12 26/35/12 25/36/12
f 95/37/13 96/38/13 48/39/13
f 28/40/14 30/41/14 29/42/14
f 50/43/15 49/44/15 1/45/15
f 32/46/16 34/47/16 33/48/16
f 51/49/17 52/50/17 4/4/17
f 36/3/18 38/7/18 37/51/18
f 6/5/19 54/52/19 53/53/19
f 40/15/20 42/19/20 41/54/20
f 55/55/21 56/56/21 8/10/21
f 44/27/22 46/31/22 45/57/22
f 80/58/23 82/59/23 34/60/23
f 48/39/24 2/61/24 1/45/24
f 9/12/25 10/11/25 58/62/25
f 36/63/23 84/64/23 86/65/23
f 50/66/26 52/50/26 51/49/26
f 60/67/27 12/16/27 11/68/27
f 54/52/28 56/56/28 55/55/28
f 13/18/29 14/17/29 62/69/29
f 58/62/30 60/67/30 59/70/30
f 64/71/31 16/22/31 15/72/31
f 62/73/32 64/71/32 63/74/32
f 18/23/33 66/75/33 65/76/33
f 66/75/34 68/77/34 67/78/34
f 67/78/35 68/77/35 20/28/35
f 70/79/36 72/80/36 71/81/36
f 22/29/37 70/79/37 69/82/37
f 74/83/38 76/84/38 75/85/38
f 34/47/39 82/86/39 81/87/39
f 78/88/40 80/89/40 79/90/40
f 71/81/41 72/80/41 24/34/41
f 82/86/42 84/2/42 83/1/42
f 26/35/43 74/91/43 73/92/43
f 86/93/44 88/14/44 87/13/44
f 75/85/45 76/84/45 28/40/45
f 90/20/46 92/26/46 91/25/46
f 30/41/47 78/88/47 77/94/47
f 79/90/48 80/89/48 32/46/48
f 94/32/49 96/38/49 95/37/49
f 107/95/23 70/96/23 68/97/23
f 76/98/23 78/99/23 30/100/23
f 72/101/23 74/102/23 26/103/23
f 20/104/23 68/97/23 70/96/23
f 66/105/23 18/106/23 16/107/23
f 60/108/23 62/109/23 14/110/23
f 58/111/23 10/112/23 8/113/23
f 52/114/23 54/115/23 6/116/23
f 96/117/23 50/118/23 2/119/23
f 44/120/23 92/121/23 94/122/23
f 88/123/23 90/124/23 42/125/23
f 108/126/23 72/101/23 70/96/23
f 116/127/8 140/128/8 141/129/8
f 105/130/46 125/131/46 124/132/46
f 109/133/26 121/134/26 134/135/26
f 100/136/16 130/137/16 129/138/16
f 117/139/34 141/129/34 142/140/34
f 110/141/2 134/135/2 135/142/2
f 106/143/22 124/132/22 123/144/22
f 118/145/10 142/140/10 143/146/10
f 101/147/42 129/138/42 128/148/42
f 111/149/28 135/142/28 136/150/28
f 119/151/36 143/146/36 144/152/36
f 107/153/49 123/144/49 122/154/49
f 112/155/4 136/150/4 137/156/4
f 102/157/18 128/148/18 127/158/18
f 120/159/12 144/152/12 133/160/12
f 97/161/38 133/162/38 132/163/38
f 113/164/30 137/156/30 138/165/30
f 108/166/24 122/154/24 121/167/24
f 103/168/44 127/169/44 126/170/44
f 114/171/6 138/165/6 139/172/6
f 98/173/14 132/163/14 131/174/14
f 115/175/32 139/176/32 140/128/32
f 104/177/20 126/170/20 125/131/20
f 99/178/40 131/174/40 130/137/40
f 105/179/23 106/180/23 68/97/23
f 64/181/23 104/182/23 105/179/23
f 103/183/23 104/182/23 64/181/23
f 102/184/23 103/183/23 62/109/23
f 101/185/23 102/184/23 60/108/23
f 100/186/23 101/185/23 58/111/23
f 99/187/23 100/186/23 56/188/23
f 52/114/23 98/189/23 99/187/23
f 97/190/23 98/189/23 52/114/23
f 120/191/23 97/190/23 50/118/23
f 119/192/23 120/191/23 96/117/23
f 118/193/23 119/192/23 94/122/23
f 117/194/23 118/193/23 92/121/23
f 116/195/23 117/194/23 90/124/23
f 115/196/23 116/195/23 88/123/23
f 84/64/23 114/197/23 115/196/23
f 82/59/23 113/198/23 114/197/23
f 112/199/23 113/198/23 82/59/23
f 78/99/23 111/200/23 112/199/23
f 110/201/23 111/200/23 78/99/23
f 74/102/23 109/202/23 110/201/23
f 108/126/23 109/202/23 74/102/23
f 35/203/1 83/1/1 36/3/1
f 3/204/2 4/4/2 5/6/2
f 37/51/3 38/7/3 85/9/3
f 7/205/4 8/10/4 9/12/4
f 39/206/5 87/13/5 40/15/5
f 11/68/6 12/16/6 13/18/6
f 41/54/7 42/19/7 89/21/7
f 15/72/8 16/22/8 17/24/8
f 43/207/9 91/25/9 44/27/9
f 19/208/10 20/28/10 21/30/10
f 45/57/11 46/31/11 93/33/11
f 23/209/12 24/34/12 25/36/12
f 47/210/13 95/37/13 48/39/13
f 27/211/14 28/40/14 29/42/14
f 2/61/15 50/43/15 1/45/15
f 31/212/16 32/46/16 33/48/16
f 3/204/17 51/49/17 4/4/17
f 35/203/18 36/3/18 37/51/18
f 5/6/19 6/5/19 53/53/19
f 39/206/20 40/15/20 41/54/20
f 7/205/21 55/55/21 8/10/21
f 43/207/22 44/27/22 45/57/22
f 32/213/23 80/58/23 34/60/23
f 47/210/24 48/39/24 1/45/24
f 57/214/25 9/12/25 58/62/25
f 38/215/23 36/63/23 86/65/23
f 49/216/26 50/66/26 51/49/26
f 59/70/27 60/67/27 11/68/27
f 53/53/28 54/52/28 55/55/28
f 61/217/29 13/18/29 62/69/29
f 57/214/30 58/62/30 59/70/30
f 63/74/31 64/71/31 15/72/31
f 61/218/32 62/73/32 63/74/32
f 17/24/33 18/23/33 65/76/33
f 65/76/34 66/75/34 67/78/34
f 19/208/35 67/78/35 20/28/35
f 69/82/36 70/79/36 71/81/36
f 21/30/37 22/29/37 69/82/37
f 73/219/38 74/83/38 75/85/38
f 33/48/39 34/47/39 81/87/39
f 77/94/40 78/88/40 79/90/40
f 23/209/41 71/81/41 24/34/41
f 81/87/42 82/86/42 83/1/42
f 25/36/43 26/35/43 73/92/43
f 85/220/44 86/93/44 87/13/44
f 27/211/45 75/85/45 28/40/45
f 89/21/46 90/20/46 91/25/46
f 29/42/47 30/41/47 77/94/47
f 31/212/48 79/90/48 32/46/48
f 93/33/49 94/32/49 95/37/49
f 106/180/23 107/95/23 68/97/23
f 28/221/23 76/98/23 30/100/23
f 24/222/23 72/101/23 26/103/23
f 22/223/23 20/104/23 70/96/23
f 64/181/23 66/105/23 16/107/23
f 12/224/23 60/108/23 14/110/23
f 56/188/23 58/111/23 8/113/23
f 4/225/23 52/114/23 6/116/23
f 48/226/23 96/117/23 2/119/23
f 46/227/23 44/120/23 94/122/23
f 40/228/23 88/123/23 42/125/23
f 107/95/23 108/126/23 70/96/23
f 117/139/8 116/127/8 141/129/8
f 106/143/46 105/130/46 124/132/46
f 110/141/26 109/133/26 134/135/26
f 101/147/16 100/136/16 129/138/16
f 118/145/34 117/139/34 142/140/34
f 111/149/2 110/141/2 135/142/2
f 107/153/22 106/143/22 123/144/22
f 119/151/10 118/145/10 143/146/10
f 102/157/42 101/147/42 128/148/42
f 112/155/28 111/149/28 136/150/28
f 120/159/36 119/151/36 144/152/36
f 108/166/49 107/153/49 122/154/49
f 113/164/4 112/155/4 137/156/4
f 103/229/18 102/157/18 127/158/18
f 97/230/12 120/159/12 133/160/12
f 98/173/38 97/161/38 132/163/38
f 114/171/30 113/164/30 138/165/30
f 109/231/24 108/166/24 121/167/24
f 104/177/44 103/168/44 126/170/44
f 115/232/6 114/171/6 139/172/6
f 99/178/14 98/173/14 131/174/14
f 116/127/32 115/175/32 140/128/32
f 105/130/20 104/177/20 125/131/20
f 100/136/40 99/178/40 130/137/40
f 66/105/23 105/179/23 68/97/23
f 66/105/23 64/181/23 105/179/23
f 62/109/23 103/183/23 64/181/23
f 60/108/23 102/184/23 62/109/23
f 58/111/23 101/185/23 60/108/23
f 56/188/23 100/186/23 58/111/23
f 54/115/23 99/187/23 56/188/23
f 54/115/23 52/114/23 99/187/23
f 50/118/23 97/190/23 52/114/23
f 96/117/23 120/191/23 50/118/23
f 94/122/23 119/192/23 96/117/23
f 92/121/23 118/193/23 94/122/23
f 90/124/23 117/194/23 92/121/23
f 88/123/23 116/195/23 90/124/23
f 86/65/23 115/196/23 88/123/23
f 86/65/23 84/64/23 115/196/23
f 84/64/23 82/59/23 114/197/23
f 80/58/23 112/199/23 82/59/23
f 80/58/23 78/99/23 112/199/23
f 76/98/23 110/201/23 78/99/23
f 76/98/23 74/102/23 110/201/23
f 72/101/23 108/126/23 74/102/23

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB