From 6ce3ff1a5c57da63ee764e87d24a406088239cf0 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 11 Jun 2024 11:24:57 +1000 Subject: [PATCH 01/17] guraeto daze --- src/main/java/com/hbm/blocks/generic/BlockGrate.java | 8 ++++---- src/main/java/com/hbm/blocks/machine/FoundryBasin.java | 6 ++++++ src/main/java/com/hbm/blocks/machine/FoundryChannel.java | 6 ++++++ src/main/java/com/hbm/blocks/machine/FoundryMold.java | 5 +++++ src/main/java/com/hbm/blocks/machine/FoundryOutlet.java | 6 ++++++ src/main/java/com/hbm/blocks/network/FluidDuctBox.java | 6 ++++++ .../java/com/hbm/blocks/network/FluidDuctStandard.java | 6 ++++++ 7 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockGrate.java b/src/main/java/com/hbm/blocks/generic/BlockGrate.java index e7240b485..892f9f929 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGrate.java @@ -110,13 +110,13 @@ public class BlockGrate extends Block implements ITooltipProvider { if(meta == 0) { // Check that the block below can fit a grate above it Block block = world.getBlock(x, y - 1, z); - AxisAlignedBB otherBB = block.getSelectedBoundingBoxFromPool(world, x, y - 1, z); + AxisAlignedBB otherBB = block.getCollisionBoundingBoxFromPool(world, x, y - 1, z); if(!block.isAir(world, x, y + 1, z) && (otherBB == null || otherBB.maxY - (double)y < -0.05)) { world.setBlockMetadataWithNotify(x, y, z, 9, 3); } } else if(meta == 7) { Block block = world.getBlock(x, y + 1, z); - AxisAlignedBB otherBB = block.getSelectedBoundingBoxFromPool(world, x, y + 1, z); + AxisAlignedBB otherBB = block.getCollisionBoundingBoxFromPool(world, x, y + 1, z); if(!block.isAir(world, x, y + 1, z) && (otherBB == null || otherBB.minY - (double)(y + 1) > 0.05)) { world.setBlockMetadataWithNotify(x, y, z, 8, 3); } @@ -133,10 +133,10 @@ public class BlockGrate extends Block implements ITooltipProvider { boolean breakIt = false; if(meta == 9) { - AxisAlignedBB otherBB = world.getBlock(x, y - 1, z).getSelectedBoundingBoxFromPool(world, x, y - 1, z); + AxisAlignedBB otherBB = world.getBlock(x, y - 1, z).getCollisionBoundingBoxFromPool(world, x, y - 1, z); breakIt = !(otherBB == null || otherBB.maxY - (double)y < -0.05); } else if(meta == 8) { - AxisAlignedBB otherBB = world.getBlock(x, y + 1, z).getSelectedBoundingBoxFromPool(world, x, y + 1, z); + AxisAlignedBB otherBB = world.getBlock(x, y + 1, z).getCollisionBoundingBoxFromPool(world, x, y + 1, z); breakIt = !(otherBB == null || otherBB.minY - (double)(y + 1) > 0.05); } diff --git a/src/main/java/com/hbm/blocks/machine/FoundryBasin.java b/src/main/java/com/hbm/blocks/machine/FoundryBasin.java index 59014be8e..d3d014d45 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryBasin.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryBasin.java @@ -67,6 +67,12 @@ public class FoundryBasin extends FoundryCastingBase { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java index ae43ea2d9..8866bfd0f 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java @@ -82,6 +82,12 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundryMold.java b/src/main/java/com/hbm/blocks/machine/FoundryMold.java index 1c3182d49..03712d0a2 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryMold.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryMold.java @@ -66,6 +66,11 @@ public class FoundryMold extends FoundryCastingBase { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.5D, z + 1D); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java index d62f01cb0..dfa51cf3b 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java @@ -96,6 +96,12 @@ public class FoundryOutlet extends BlockContainer implements ICrucibleAcceptor, } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index f05d3733a..ab63cb957 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -220,6 +220,12 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 8bf891a05..e482398c9 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -183,6 +183,12 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { From 872f2beb55e5e64592e6b76cce9c0e4ad8b891a4 Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 12 Jun 2024 15:43:19 -0700 Subject: [PATCH 02/17] mass byte bufferization --- .../machine/TileEntityCrucible.java | 58 ++++++++------- .../hbm/tileentity/machine/TileEntityFEL.java | 37 +++++----- .../machine/TileEntityFireboxBase.java | 44 ++++++------ .../machine/TileEntityFurnaceCombination.java | 36 +++++----- .../machine/TileEntityHeaterOilburner.java | 32 +++++---- .../machine/TileEntityMachineArcWelder.java | 71 +++++++++++-------- .../machine/TileEntityMachineAssembler.java | 40 +++++++---- .../machine/TileEntityMachineAssemfac.java | 40 ++++++++--- .../machine/TileEntityMachineAutocrafter.java | 43 ++++++----- .../machine/TileEntityMachineCentrifuge.java | 28 ++++---- .../machine/TileEntityMachineChemfac.java | 59 ++++++++------- .../TileEntityMachineCrystallizer.java | 35 +++++---- .../TileEntityMachineElectricFurnace.java | 36 +++++----- .../machine/TileEntityMachineExcavator.java | 55 +++++++------- .../machine/TileEntityMachineGasCent.java | 56 +++++++++------ .../machine/TileEntityMachineMixer.java | 27 ++++++- .../machine/TileEntityMachineWoodBurner.java | 52 ++++++++------ .../tileentity/machine/TileEntitySILEX.java | 58 ++++++++------- 18 files changed, 476 insertions(+), 331 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index 23cdbd0ab..1fb87fc69 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -30,6 +30,7 @@ import api.hbm.tile.IHeatSource; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; @@ -220,38 +221,47 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro this.wasteStack.removeIf(x -> x.amount <= 0); /* sync */ - NBTTagCompound data = new NBTTagCompound(); - int[] rec = new int[recipeStack.size() * 2]; - int[] was = new int[wasteStack.size() * 2]; - for(int i = 0; i < recipeStack.size(); i++) { MaterialStack sta = recipeStack.get(i); rec[i * 2] = sta.material.id; rec[i * 2 + 1] = sta.amount; } - for(int i = 0; i < wasteStack.size(); i++) { MaterialStack sta = wasteStack.get(i); was[i * 2] = sta.material.id; was[i * 2 + 1] = sta.amount; } - data.setIntArray("rec", rec); - data.setIntArray("was", was); - data.setInteger("progress", progress); - data.setInteger("heat", heat); - this.networkPack(data, 25); + this.networkPackNT(25); } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.recipeStack.clear(); - this.wasteStack.clear(); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(progress); + buf.writeInt(heat); - int[] rec = nbt.getIntArray("rec"); - for(int i = 0; i < rec.length / 2; i++) { - recipeStack.add(new MaterialStack(Mats.matById.get(rec[i * 2]), rec[i * 2 + 1])); + buf.writeShort(recipeStack.size()); + for(MaterialStack sta : recipeStack) { + buf.writeInt(sta.material.id); + buf.writeInt(sta.amount); } - int[] was = nbt.getIntArray("was"); - for(int i = 0; i < was.length / 2; i++) { - wasteStack.add(new MaterialStack(Mats.matById.get(was[i * 2]), was[i * 2 + 1])); + buf.writeShort(wasteStack.size()); + for(MaterialStack sta : wasteStack) { + buf.writeInt(sta.material.id); + buf.writeInt(sta.amount); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + progress = buf.readInt(); + heat = buf.readInt(); + + recipeStack.clear(); + wasteStack.clear(); + + int mats = buf.readShort(); + for(int i = 0; i < mats; i++) { + recipeStack.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt())); } - this.progress = nbt.getInteger("progress"); - this.heat = nbt.getInteger("heat"); + mats = buf.readShort(); + for(int i = 0; i < mats; i++) { + wasteStack.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt())); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index e48dfd33a..5867f36d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -16,6 +16,7 @@ import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -23,6 +24,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; @@ -176,13 +178,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyRecei } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setString("mode", mode.toString()); - data.setBoolean("isOn", isOn); - data.setBoolean("valid", missingValidSilex); - data.setInteger("distance", distance); - this.networkPack(data, 250); + this.networkPackNT(250); } else { if(power > powerReq * Math.pow(2, mode.ordinal()) && isOn && !(mode == EnumWavelengths.NULL) && distance - 3 > 0) { @@ -224,16 +220,25 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyRecei return false; } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.power = nbt.getLong("power"); - this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); - this.isOn = nbt.getBoolean("isOn"); - this.distance = nbt.getInteger("distance"); - this.missingValidSilex = nbt.getBoolean("valid"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + BufferUtil.writeString(buf, mode.toString()); + buf.writeBoolean(isOn); + buf.writeBoolean(missingValidSilex); + buf.writeInt(distance); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + mode = EnumWavelengths.valueOf(BufferUtil.readString(buf)); + isOn = buf.readBoolean(); + missingValidSilex = buf.readBoolean(); + distance = buf.readInt(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index c52d0270d..9f49f439e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -17,6 +17,7 @@ import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -121,14 +122,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i this.burnHeat = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("maxBurnTime", this.maxBurnTime); - data.setInteger("burnTime", this.burnTime); - data.setInteger("burnHeat", this.burnHeat); - data.setInteger("heatEnergy", this.heatEnergy); - data.setInteger("playersUsing", this.playersUsing); - data.setBoolean("wasOn", this.wasOn); - this.networkPack(data, 50); + this.networkPackNT(50); } else { this.prevDoorAngle = this.doorAngle; float swingSpeed = (doorAngle / 10F) + 3; @@ -151,6 +145,28 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(maxBurnTime); + buf.writeInt(burnTime); + buf.writeInt(burnHeat); + buf.writeInt(heatEnergy); + buf.writeInt(playersUsing); + buf.writeBoolean(wasOn); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + maxBurnTime = buf.readInt(); + burnTime = buf.readInt(); + burnHeat = buf.readInt(); + heatEnergy = buf.readInt(); + playersUsing = buf.readInt(); + wasOn = buf.readBoolean(); + } + public static EnumAshType getAshFromFuel(ItemStack stack) { List names = ItemStackUtil.getOreDictNames(stack); @@ -181,18 +197,6 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i public boolean isItemValidForSlot(int i, ItemStack itemStack) { return getModule().getBurnTime(itemStack) > 0; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.maxBurnTime = nbt.getInteger("maxBurnTime"); - this.burnTime = nbt.getInteger("burnTime"); - this.burnHeat = nbt.getInteger("burnHeat"); - this.heatEnergy = nbt.getInteger("heatEnergy"); - this.playersUsing = nbt.getInteger("playersUsing"); - this.wasOn = nbt.getBoolean("wasOn"); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index 81fb4c1c3..2ef8e189e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -18,6 +18,7 @@ import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -128,12 +129,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp this.progress = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("wasOn", this.wasOn); - data.setInteger("heat", this.heat); - data.setInteger("progress", this.progress); - tank.writeToNBT(data, "t"); - this.networkPack(data, 50); + this.networkPackNT(50); } else { if(this.wasOn && worldObj.rand.nextInt(15) == 0) { @@ -142,6 +138,24 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(wasOn); + buf.writeInt(heat); + buf.writeInt(progress); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + wasOn = buf.readBoolean(); + heat = buf.readInt(); + progress = buf.readInt(); + tank.deserialize(buf); + } + public boolean canSmelt() { if(slots[0] == null) return false; Pair pair = CombinationRecipes.getOutput(slots[0]); @@ -165,16 +179,6 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp return true; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.wasOn = nbt.getBoolean("wasOn"); - this.heat = nbt.getInteger("heat"); - this.progress = nbt.getInteger("progress"); - this.tank.readFromNBT(nbt, "t"); - } protected void tryPullHeat() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index c68190025..0d19a14bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -16,6 +16,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -94,23 +95,28 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem if(shouldCool) this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0); - NBTTagCompound data = new NBTTagCompound(); - tank.writeToNBT(data, "tank"); - data.setBoolean("isOn", isOn); - data.setInteger("h", heatEnergy); - data.setByte("s", (byte) this.setting); - this.networkPack(data, 25); + this.networkPackNT(25); } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); + public void serialize(ByteBuf buf) { + super.serialize(buf); + tank.serialize(buf); - tank.readFromNBT(nbt, "tank"); - isOn = nbt.getBoolean("isOn"); - heatEnergy = nbt.getInteger("h"); - setting = nbt.getByte("s"); + buf.writeBoolean(isOn); + buf.writeInt(heatEnergy); + buf.writeByte((byte) this.setting); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tank.deserialize(buf); + + isOn = buf.readBoolean(); + heatEnergy = buf.readInt(); + setting = buf.readByte(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 1f899b27c..6a3132006 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -29,6 +29,7 @@ import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -135,21 +136,48 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements this.maxPower = Math.max(intendedMaxPower, power); - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setLong("maxPower", maxPower); - data.setLong("consumption", consumption); - data.setInteger("progress", progress); - data.setInteger("processTime", processTime); - if(recipe != null) { - data.setInteger("display", Item.getIdFromItem(recipe.output.getItem())); - data.setInteger("displayMeta", recipe.output.getItemDamage()); - } - this.tank.writeToNBT(data, "t"); - this.networkPack(data, 25); + this.networkPackNT(25); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeLong(consumption); + buf.writeInt(progress); + buf.writeInt(processTime); + + tank.serialize(buf); + + ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]); + + if(recipe != null) { + buf.writeBoolean(true); + buf.writeInt(Item.getIdFromItem(recipe.output.getItem())); + buf.writeInt(recipe.output.getItemDamage()); + } else + buf.writeBoolean(false); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + maxPower = buf.readLong(); + consumption = buf.readLong(); + progress = buf.readInt(); + processTime = buf.readInt(); + + tank.deserialize(buf); + + if(buf.readBoolean()) { + this.display = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readInt()); + } else + this.display = null; + } + public boolean canProcess(ArcWelderRecipe recipe) { if(this.power < this.consumption) return false; @@ -204,25 +232,6 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite()) }; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.power = nbt.getLong("power"); - this.maxPower = nbt.getLong("maxPower"); - this.consumption = nbt.getLong("consumption"); - this.progress = nbt.getInteger("progress"); - this.processTime = nbt.getInteger("processTime"); - - if(nbt.hasKey("display")) { - this.display = new ItemStack(Item.getItemById(nbt.getInteger("display")), 1, nbt.getInteger("displayMeta")); - } else { - this.display = null; - } - - this.tank.readFromNBT(nbt, "t"); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 89a674740..b83c19787 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -23,6 +23,7 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -111,13 +112,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i rec = AssemblerRecipes.recipeList.indexOf(comp); } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", rec); - this.networkPack(data, 150); + this.networkPackNT(150); } else { float volume = this.getVolume(2F); @@ -142,16 +137,31 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i } } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); + } - this.power = nbt.getLong("power"); - this.progress = nbt.getIntArray("progress"); - this.maxProgress = nbt.getIntArray("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - this.recipe = nbt.getInteger("recipe"); + buf.writeBoolean(isProgressing); + buf.writeInt(recipe); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + + isProgressing = buf.readBoolean(); + recipe = buf.readInt(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index a44f0e996..948022a43 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -20,6 +20,7 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -93,16 +94,7 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); + this.networkPackNT(150); } else { @@ -114,7 +106,33 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im } } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); + } + buf.writeBoolean(isProgressing); + water.serialize(buf); + steam.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + isProgressing = buf.readBoolean(); + water.deserialize(buf); + steam.deserialize(buf); + } + @Override public void networkUnpack(NBTTagCompound nbt) { super.networkUnpack(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 9f1834c63..a15e82e8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -8,11 +8,13 @@ import com.hbm.inventory.gui.GUIAutocrafter; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.ItemStackUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -193,33 +195,38 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - for(int i = 0; i < 9; i++) { - if(modes[i] != null) { - data.setString("mode" + i, modes[i]); - } - } - data.setInteger("count", this.recipeCount); - data.setInteger("rec", this.recipeIndex); - this.networkPack(data, 15); + this.networkPackNT(15); } } @Override - public void networkUnpack(NBTTagCompound data) { - super.networkUnpack(data); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < 9; i++) { + if(modes[i] != null) { + buf.writeBoolean(true); + BufferUtil.writeString(buf, modes[i]); + } else + buf.writeBoolean(false); + } - this.power = data.getLong("power"); + buf.writeInt(recipeCount); + buf.writeInt(recipeIndex); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); modes = new String[9]; for(int i = 0; i < 9; i++) { - if(data.hasKey("mode" + i)) { - modes[i] = data.getString("mode" + i); - } + if(buf.readBoolean()) modes[i] = BufferUtil.readString(buf); } - this.recipeCount = data.getInteger("count"); - this.recipeIndex = data.getInteger("rec"); + + recipeCount = buf.readInt(); + recipeIndex = buf.readInt(); } public void updateTemplateGrid() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index a8e271bf5..ed7993281 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -22,6 +22,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -198,11 +199,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement progress = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isProgressing", isProgressing); - this.networkPack(data, 50); + this.networkPackNT(50); } else { if(isProgressing) { @@ -234,14 +231,21 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } } } - + @Override - public void networkUnpack(NBTTagCompound data) { - super.networkUnpack(data); - - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.isProgressing = data.getBoolean("isProgressing"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeBoolean(isProgressing); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + isProgressing = buf.readBoolean(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 4fbfdfab9..53c90a9c0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -21,6 +21,7 @@ import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -101,19 +102,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp this.speed = 1; } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].writeToNBT(data, "t" + i); - } - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); + this.networkPackNT(150); } else { float maxSpeed = 30F; @@ -156,21 +145,39 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp } } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.power = nbt.getLong("power"); - this.progress = nbt.getIntArray("progress"); - this.maxProgress = nbt.getIntArray("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].readFromNBT(nbt, "t" + i); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); } - water.readFromNBT(nbt, "w"); - steam.readFromNBT(nbt, "s"); + + buf.writeBoolean(isProgressing); + + for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf); + + water.serialize(buf); + steam.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + + isProgressing = buf.readBoolean(); + + for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf); + + water.deserialize(buf); + steam.deserialize(buf); } private int getWaterRequired() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 0f1197c2b..1482376ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -27,6 +27,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -97,13 +98,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } } - NBTTagCompound data = new NBTTagCompound(); - data.setShort("progress", progress); - data.setShort("duration", getDuration()); - data.setLong("power", power); - data.setBoolean("isOn", isOn); - tank.writeToNBT(data, "t"); - this.networkPack(data, 25); + this.networkPackNT(25); } else { prevAngle = angle; @@ -154,14 +149,24 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme }; } - public void networkUnpack(NBTTagCompound data) { - super.networkUnpack(data); - - this.power = data.getLong("power"); - this.progress = data.getShort("progress"); - this.duration = data.getShort("duration"); - this.isOn = data.getBoolean("isOn"); - this.tank.readFromNBT(data, "t"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(progress); + buf.writeShort(getDuration()); + buf.writeLong(power); + buf.writeBoolean(isOn); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + progress = buf.readShort(); + duration = buf.readShort(); + power = buf.readLong(); + isOn = buf.readBoolean(); + tank.deserialize(buf); } private void processItem() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 87b0a777f..26c2630f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -20,6 +20,7 @@ import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -219,12 +220,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl markDirty = true; MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("MaxProgress", this.maxProgress); - data.setInteger("progress", this.progress); - this.networkPack(data, 50); + + this.networkPackNT(50); if(markDirty) { @@ -232,22 +229,29 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(maxProgress); + buf.writeInt(progress); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + maxProgress = buf.readInt(); + progress = buf.readInt(); + } + private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.power = nbt.getLong("power"); - this.maxProgress = nbt.getInteger("MaxProgress"); - this.progress = nbt.getInteger("progress"); - - } - @Override public void setPower(long i) { power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 2dbbcb63b..b1768c1ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -40,6 +40,7 @@ import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.item.EntityItem; @@ -150,18 +151,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements this.targetDepth = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("d", enableDrill); - data.setBoolean("c", enableCrusher); - data.setBoolean("w", enableWalling); - data.setBoolean("v", enableVeinMiner); - data.setBoolean("s", enableSilkTouch); - data.setBoolean("o", operational); - data.setInteger("t", targetDepth); - data.setInteger("g", chuteTimer); - data.setLong("p", power); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 150); + this.networkPackNT(150); } else { @@ -214,19 +204,34 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements }; } - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.enableDrill = nbt.getBoolean("d"); - this.enableCrusher = nbt.getBoolean("c"); - this.enableWalling = nbt.getBoolean("w"); - this.enableVeinMiner = nbt.getBoolean("v"); - this.enableSilkTouch = nbt.getBoolean("s"); - this.operational = nbt.getBoolean("o"); - this.targetDepth = nbt.getInteger("t"); - this.chuteTimer = nbt.getInteger("g"); - this.power = nbt.getLong("p"); - this.tank.readFromNBT(nbt, "tank"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(enableDrill); + buf.writeBoolean(enableCrusher); + buf.writeBoolean(enableWalling); + buf.writeBoolean(enableVeinMiner); + buf.writeBoolean(enableSilkTouch); + buf.writeBoolean(operational); + buf.writeInt(targetDepth); + buf.writeInt(chuteTimer); + buf.writeLong(power); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + enableDrill = buf.readBoolean(); + enableCrusher = buf.readBoolean(); + enableWalling = buf.readBoolean(); + enableVeinMiner = buf.readBoolean(); + enableSilkTouch = buf.readBoolean(); + operational = buf.readBoolean(); + targetDepth = buf.readInt(); + chuteTimer = buf.readInt(); + power = buf.readLong(); + tank.deserialize(buf); } protected int getY() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index cf0ad2b1c..b3179241c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -15,6 +15,7 @@ import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -25,6 +26,7 @@ import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -168,19 +170,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I return false; } - public void networkUnpack(NBTTagCompound data) { - super.networkUnpack(data); - - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.isProgressing = data.getBoolean("isProgressing"); - this.inputTank.setTankType(PseudoFluidType.types.get(data.getString("inputType"))); - this.outputTank.setTankType(PseudoFluidType.types.get(data.getString("outputType"))); - this.inputTank.setFill(data.getInteger("inputFill")); - this.outputTank.setFill(data.getInteger("outputFill")); - this.tank.readFromNBT(data, "t"); - } - @Override public void updateEntity() { @@ -234,21 +223,42 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isProgressing", isProgressing); - data.setInteger("inputFill", inputTank.getFill()); - data.setInteger("outputFill", outputTank.getFill()); - data.setString("inputType", inputTank.getTankType().name); - data.setString("outputType", outputTank.getTankType().name); - tank.writeToNBT(data, "t"); - this.networkPack(data, 50); + this.networkPackNT(50); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeBoolean(isProgressing); + //pseudofluids can be refactored another day + buf.writeInt(inputTank.getFill()); + buf.writeInt(outputTank.getFill()); + BufferUtil.writeString(buf, inputTank.getTankType().name); //cough cough + BufferUtil.writeString(buf, outputTank.getTankType().name); + + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + isProgressing = buf.readBoolean(); + + inputTank.setFill(buf.readInt()); + outputTank.setFill(buf.readInt()); + inputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf))); + outputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf))); + + tank.deserialize(buf); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 34e2b1498..e9751c820 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -25,6 +25,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -121,7 +122,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB for(int i = 0; i < 3; i++) { tanks[i].writeToNBT(data, i + ""); } - this.networkPack(data, 50); + this.networkPackNT(50); } else { @@ -137,6 +138,30 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB } } } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(processTime); + buf.writeInt(progress); + buf.writeInt(recipeIndex); + buf.writeBoolean(wasOn); + + for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + processTime = buf.readInt(); + progress = buf.readInt(); + recipeIndex = buf.readInt(); + wasOn = buf.readBoolean(); + + for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf); + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 72306abf9..46de4e4e1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -24,6 +24,7 @@ import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -126,15 +127,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.power += this.powerGen; if(this.power > this.maxPower) this.power = this.maxPower; - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("burnTime", burnTime); - data.setInteger("powerGen", powerGen); - data.setInteger("maxBurnTime", maxBurnTime); - data.setBoolean("isOn", isOn); - data.setBoolean("liquidBurn", liquidBurn); - tank.writeToNBT(data, "t"); - this.networkPack(data, 25); + this.networkPackNT(25); } else { if(powerGen > 0) { @@ -145,6 +138,32 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(burnTime); + buf.writeInt(powerGen); + buf.writeInt(maxBurnTime); + buf.writeBoolean(isOn); + buf.writeBoolean(liquidBurn); + + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + burnTime = buf.readInt(); + powerGen = buf.readInt(); + maxBurnTime = buf.readInt(); + isOn = buf.readBoolean(); + liquidBurn = buf.readBoolean(); + + tank.deserialize(buf); + } + private DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -153,20 +172,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) }; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.power = nbt.getLong("power"); - this.powerGen = nbt.getInteger("powerGen"); - this.burnTime = nbt.getInteger("burnTime"); - this.maxBurnTime = nbt.getInteger("maxBurnTime"); - this.isOn = nbt.getBoolean("isOn"); - this.liquidBurn = nbt.getBoolean("liquidBurn"); - tank.readFromNBT(nbt, "t"); - } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 3be37d486..21acbc542 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -15,6 +15,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.WeightedRandomObject; @@ -23,6 +24,7 @@ import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -84,38 +86,42 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(currentFill <= 0) { current = null; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("fill", currentFill); - data.setInteger("progress", progress); - data.setString("mode", mode.toString()); - - if(this.current != null) { - data.setInteger("item", Item.getIdFromItem(this.current.item)); - data.setInteger("meta", this.current.meta); - } - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - this.networkPack(data, 50); + + this.networkPackNT(50); this.mode = EnumWavelengths.NULL; } } - - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - - this.currentFill = nbt.getInteger("fill"); - this.progress = nbt.getInteger("progress"); - this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); - - if(this.currentFill > 0) { - this.current = new ComparableStack(Item.getItemById(nbt.getInteger("item")), 1, nbt.getInteger("meta")); - - } else { - this.current = null; + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(currentFill); + buf.writeInt(progress); + BufferUtil.writeString(buf, mode.toString()); + + tank.serialize(buf); + + if(this.current != null) { + buf.writeInt(Item.getIdFromItem(this.current.item)); + buf.writeInt(this.current.meta); } } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + currentFill = buf.readInt(); + progress = buf.readInt(); + mode = EnumWavelengths.valueOf(BufferUtil.readString(buf)); + + tank.deserialize(buf); + + if(currentFill > 0) { + current = new ComparableStack(Item.getItemById(buf.readInt()), 1, buf.readInt()); + } else + current = null; + } public void handleButtonPacket(int value, int meta) { From 7cc50e8ce3b5b039824d201799f44efda2136ac7 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sat, 15 Jun 2024 13:54:16 +1000 Subject: [PATCH 03/17] Deglobalize the NodeWorld nodes, dimensions were all sharing the same nodespace! --- src/main/java/api/hbm/energymk2/Nodespace.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 3f0888859..cdc618f51 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -19,8 +19,8 @@ import net.minecraft.world.World; public class Nodespace { /** Contains all "NodeWorld" instances, i.e. lists of nodes existing per world */ - public static HashMap worlds = new HashMap(); - public static Set activePowerNets = new HashSet(); + public static HashMap worlds = new HashMap<>(); + public static Set activePowerNets = new HashSet<>(); public static PowerNode getNode(World world, int x, int y, int z) { NodeWorld nodeWorld = worlds.get(world); @@ -49,6 +49,9 @@ public class Nodespace { for(World world : MinecraftServer.getServer().worldServers) { NodeWorld nodes = worlds.get(world); + + if(nodes == null) + continue; for(Entry entry : nodes.nodes.entrySet()) { PowerNode node = entry.getValue(); @@ -120,7 +123,7 @@ public class Nodespace { /** Contains a map showing where each node is, a node is every spot that a cable exists at. * Instead of the old proxy system, things like substation now create multiple nodes at their connection points */ - public static HashMap nodes = new HashMap(); + public HashMap nodes = new HashMap<>(); /** Adds a node at all its positions to the nodespace */ public void pushNode(PowerNode node) { From b1b0ba0a93acdc422104061e93d6fa111acdb669 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 15 Jun 2024 21:35:25 -0700 Subject: [PATCH 04/17] flixes --- .../handler/nei/CyclotronRecipeHandler.java | 2 +- .../container/ContainerMachineCyclotron.java | 48 +-- .../hbm/inventory/fluid/tank/FluidTank.java | 6 +- .../inventory/gui/GUIMachineCyclotron.java | 55 ++- .../hbm/tileentity/IUpgradeInfoProvider.java | 1 - .../machine/TileEntityMachineCyclotron.java | 351 +++++------------- .../textures/gui/machine/gui_cyclotron.png | Bin 5276 -> 3417 bytes 7 files changed, 127 insertions(+), 336 deletions(-) diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index 51b0a6b6f..bdc9a3954 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -120,7 +120,7 @@ public class CyclotronRecipeHandler extends TemplateRecipeHandler implements ICo guiGui = new LinkedList>(); transferRects.add(new RecipeTransferRect(new Rectangle(83 - 3 + 16 - 52, 5 + 18 + 1, 24, 18), "cyclotronProcessing")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(47, 15, 36, 36), "cyclotronProcessing")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(48 - 5, 27 - 11, 34, 34), "cyclotronProcessing")); guiGui.add(GUIMachineCyclotron.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java index 7251c9623..cc720bc10 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java @@ -25,42 +25,34 @@ public class ContainerMachineCyclotron extends Container { cyclotron = tile; //Input - this.addSlotToContainer(new Slot(tile, 0, 17, 18)); - this.addSlotToContainer(new Slot(tile, 1, 17, 36)); - this.addSlotToContainer(new Slot(tile, 2, 17, 54)); + this.addSlotToContainer(new Slot(tile, 0, 11, 18)); + this.addSlotToContainer(new Slot(tile, 1, 11, 36)); + this.addSlotToContainer(new Slot(tile, 2, 11, 54)); //Targets - this.addSlotToContainer(new Slot(tile, 3, 107, 18)); - this.addSlotToContainer(new Slot(tile, 4, 107, 36)); - this.addSlotToContainer(new Slot(tile, 5, 107, 54)); + this.addSlotToContainer(new Slot(tile, 3, 101, 18)); + this.addSlotToContainer(new Slot(tile, 4, 101, 36)); + this.addSlotToContainer(new Slot(tile, 5, 101, 54)); //Output - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 6, 143, 18)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 7, 143, 36)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 8, 143, 54)); - //AMAT In - this.addSlotToContainer(new Slot(tile, 9, 143, 90)); - //AMAT Out - this.addSlotToContainer(new SlotTakeOnly(tile, 10, 143, 108)); - //Coolant In - this.addSlotToContainer(new Slot(tile, 11, 62, 72)); - //Coolant Out - this.addSlotToContainer(new SlotTakeOnly(tile, 12, 62, 90)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 6, 131, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 7, 131, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 8, 131, 54)); //Battery - this.addSlotToContainer(new Slot(tile, 13, 62, 108)); + this.addSlotToContainer(new Slot(tile, 9, 168, 83)); //Upgrades - this.addSlotToContainer(new SlotUpgrade(tile, 14, 17, 90)); - this.addSlotToContainer(new SlotUpgrade(tile, 15, 17, 108)); + this.addSlotToContainer(new SlotUpgrade(tile, 10, 60, 81)); + this.addSlotToContainer(new SlotUpgrade(tile, 11, 78, 81)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 15 + j * 18, 133 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + this.addSlotToContainer(new Slot(invPlayer, i, 15 + i * 18, 191)); } } @@ -82,20 +74,12 @@ public class ContainerMachineCyclotron extends Container { } else { if(stack.getItem() instanceof IBatteryItem || stack.getItem() == ModItems.battery_creative) { - if(!this.mergeItemStack(stack, 13, 14, true)) - return null; - - } else if(FluidContainerRegistry.getFluidContent(stack, Fluids.COOLANT) > 0) { - if(!this.mergeItemStack(stack, 11, 12, true)) - return null; - - } else if(FluidContainerRegistry.getFullContainer(stack, Fluids.AMAT) != null) { if(!this.mergeItemStack(stack, 9, 10, true)) return null; } else if(stack.getItem() instanceof ItemMachineUpgrade) { - if(!this.mergeItemStack(stack, 14, 15, true)) - if(!this.mergeItemStack(stack, 15, 16, true)) + if(!this.mergeItemStack(stack, 10, 11, true)) + if(!this.mergeItemStack(stack, 11, 12, true)) return null; } else { diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index d30374713..641769b1c 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -250,10 +250,10 @@ public class FluidTank { maxX += i; maxY += height; - minV = 0; + minV = 0D; maxV = height / 16D; - minU = 0D; - maxU = width / 16D; + minU = 1D; + maxU = 1D - i / 16D; } Tessellator tessellator = Tessellator.instance; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java index c0ad1c777..57d35ef3b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java @@ -24,25 +24,26 @@ public class GUIMachineCyclotron extends GuiInfoContainer { super(new ContainerMachineCyclotron(invPlayer, tile)); cyclotron = tile; - this.xSize = 176; - this.ySize = 222; + this.xSize = 190; + this.ySize = 215; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 72, 7, 52, cyclotron.power, cyclotron.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 168, guiTop + 18, 16, 63, cyclotron.power, cyclotron.maxPower); - cyclotron.coolant.renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 72, 7, 52); - cyclotron.amat.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 90, 7, 34); + cyclotron.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 11, guiTop + 81, 34, 7); + cyclotron.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 11, guiTop + 90, 34, 7); + cyclotron.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 81, 34, 16); String[] upgradeText = new String[4]; upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.effectiveness"); upgradeText[3] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 21, guiTop + 75, 8, 8, mouseX, mouseY, upgradeText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 49, guiTop + 85, 8, 8, mouseX, mouseY, upgradeText); } @Override @@ -50,38 +51,28 @@ public class GUIMachineCyclotron extends GuiInfoContainer { String name = this.cyclotron.hasCustomInventoryName() ? this.cyclotron.getInventoryName() : I18n.format(this.cyclotron.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 15, this.ySize - 96 + 2, 4210752); } @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 97 <= x && guiLeft + 97 + 18 > x && guiTop + 107 < y && guiTop + 107 + 18 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(cyclotron.xCoord, cyclotron.yCoord, cyclotron.zCoord, 0, 0)); - } - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int k = (int) cyclotron.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 80, guiTop + 124 - k, 212, 52 - k, 7, k); - - int l = cyclotron.getProgressScaled(36); - drawTexturedModalRect(guiLeft + 52, guiTop + 26, 176, 0, l, 36); - - if(cyclotron.isOn) - drawTexturedModalRect(guiLeft + 97, guiTop + 107, 219, 0, 18, 18); - - this.drawInfoPanel(guiLeft + 21, guiTop + 75, 8, 8, 8); - - cyclotron.coolant.renderTank(guiLeft + 53, guiTop + 124, this.zLevel, 7, 52); - cyclotron.amat.renderTank(guiLeft + 134, guiTop + 124, this.zLevel, 7, 34); + int k = (int) cyclotron.getPowerScaled(63); + drawTexturedModalRect(guiLeft + 168, guiTop + 80 - k, 190, 62 - k, 16, k); + + int l = cyclotron.getProgressScaled(34); + drawTexturedModalRect(guiLeft + 48, guiTop + 27, 206, 0, l, 34); + + if(l > 0) + drawTexturedModalRect(guiLeft + 172, guiTop + 4, 190, 63, 9, 12); + + this.drawInfoPanel(guiLeft + 49, guiTop + 85, 8, 8, 8); + + cyclotron.tanks[0].renderTank(guiLeft + 11, guiTop + 88, this.zLevel, 34, 7, 1); + cyclotron.tanks[1].renderTank(guiLeft + 11, guiTop + 97, this.zLevel, 34, 7, 1); + cyclotron.tanks[2].renderTank(guiLeft + 107, guiTop + 97, this.zLevel, 34, 16, 1); } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index 90a348e1c..0fd4f7dab 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -26,6 +26,5 @@ public interface IUpgradeInfoProvider { public static final String KEY_DELAY = "upgrade.delay"; public static final String KEY_EFFICIENCY = "upgrade.efficiency"; public static final String KEY_FORTUNE = "upgrade.fortune"; - public static final String KEY_OVERHEAT_CHANCE = "upgrade.overheatChance"; public static final String KEY_RANGE = "upgrade.range"; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 87660cb63..e43f45631 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -4,14 +4,11 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.entity.logic.EntityBalefire; -import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionThermo; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineCyclotron; @@ -24,8 +21,6 @@ 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.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; @@ -38,9 +33,9 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -52,30 +47,26 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000000; - public int consumption = 1_000_000; - - public boolean isOn; - - private int age; - private int countdown; + public static int consumption = 1_000_000; private byte plugs; public int progress; public static final int duration = 690; - public FluidTank coolant; - public FluidTank amat; + public FluidTank[] tanks; public TileEntityMachineCyclotron() { - super(16); - - coolant = new FluidTank(Fluids.COOLANT, 32000, 0); - amat = new FluidTank(Fluids.AMAT, 8000, 1); + super(12); + + this.tanks = new FluidTank[3]; + this.tanks[0] = new FluidTank(Fluids.WATER, 32000); + this.tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 32000); + this.tanks[2] = new FluidTank(Fluids.AMAT, 8000); } @Override @@ -90,72 +81,22 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.updateConnections(); - age++; - if(age >= 20) - { - age = 0; - } + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); - if(age == 9 || age == 19) - fillFluidInit(amat.getTankType()); - - this.power = Library.chargeTEFromItems(slots, 13, power, maxPower); - this.coolant.loadTank(11, 12, slots); - this.amat.unloadTank(9, 10, slots); + UpgradeManager.eval(slots, 10, 11); - if(isOn) { + if(canProcess()) { + progress += getSpeed(); + power -= getConsumption(); - int defConsumption = consumption - 100_000 * getConsumption(); + int convert = getCoolantConsumption(); + tanks[0].setFill(tanks[0].getFill() - convert); + tanks[1].setFill(tanks[1].getFill() + convert); - if(canProcess() && power >= defConsumption) { - - progress += this.getSpeed(); - power -= defConsumption; - - if(progress >= duration) { - process(); - progress = 0; - this.markDirty(); - } - - int safety = this.getSafety(); - - if(coolant.getFill() > 0) { - - countdown = 0; - - if(worldObj.rand.nextInt(3 * safety) == 0) - coolant.setFill(coolant.getFill() - 1); - - } else if(worldObj.rand.nextInt(safety) == 0) { - - countdown++; - - int chance = 7 - Math.min((int) Math.ceil(countdown / 200D), 6); - - if(worldObj.rand.nextInt(chance) == 0) - ExplosionLarge.spawnTracers(worldObj, xCoord + 0.5, yCoord + 3.25, zCoord + 0.5, 1); - - if(countdown > 1000) { - ExplosionThermo.setEntitiesOnFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 25); - ExplosionThermo.scorchLight(worldObj, xCoord, yCoord, zCoord, 7); - - if(countdown % 4 == 0) - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord + 3.25, zCoord + 0.5, 18, 1); - - } else if(countdown > 600) { - ExplosionThermo.setEntitiesOnFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 10); - } - - if(countdown == 1140) - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:block.shutdown", 10.0F, 1.0F); - - if(countdown > 1200) - explode(); - } - - } else { + if(progress >= duration) { + process(); progress = 0; + this.markDirty(); } } else { @@ -163,29 +104,46 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } this.sendFluid(); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isOn", isOn); - data.setByte("plugs", plugs); - this.networkPack(data, 25); - - coolant.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - amat.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.networkPackNT(25); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeByte(plugs); + + for(int i = 0; i < 3; i++) + tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + plugs = buf.readByte(); + + for(int i = 0; i < 3; i++) + tanks[i].deserialize(buf); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(coolant.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } private void sendFluid() { - for(DirPos pos : getConPos()) { - this.sendFluid(amat, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for(int i = 1; i < 3; i++) { + if(tanks[i].getFill() > 0) { + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } } } @@ -202,62 +160,19 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements }; } - public void networkUnpack(NBTTagCompound data) { - super.networkUnpack(data); - - this.isOn = data.getBoolean("isOn"); - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.plugs = data.getByte("plugs"); - } - - public void handleButtonPacket(int value, int meta) { - - this.isOn = !this.isOn; - } - - private void explode() { - - ExplosionLarge.explodeFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 25, true, false, true); - - int rand = worldObj.rand.nextInt(10); - - if(rand < 2) { - - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5)); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250)); - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - } else if(rand < 4) { - - EntityBalefire bf = new EntityBalefire(worldObj); - bf.posX = xCoord + 0.5; - bf.posY = yCoord + 1.5; - bf.posZ = zCoord + 0.5; - bf.destructionRange = (int)(BombConfig.fatmanRadius * 1.5); - worldObj.spawnEntityInWorld(bf); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250)); - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - } else if(rand < 5) { - - EntityBlackHole bl = new EntityBlackHole(worldObj, 1.5F + worldObj.rand.nextFloat()); - bl.posX = xCoord + 0.5F; - bl.posY = yCoord + 1.5F; - bl.posZ = zCoord + 0.5F; - worldObj.spawnEntityInWorld(bl); - } - } - public boolean canProcess() { + if(power < getConsumption()) + return false; + + int convert = getCoolantConsumption(); + + if(tanks[0].getFill() < convert) + return false; + + if(tanks[1].getFill() + convert > tanks[1].getMaxFill()) + return false; + for(int i = 0; i < 3; i++) { Object[] res = CyclotronRecipes.getOutput(slots[i + 3], slots[i]); @@ -300,7 +215,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.decrStackSize(i + 3, 1); slots[i + 6] = out; - this.amat.setFill(this.amat.getFill() + (Integer)res[1]); + this.tanks[2].setFill(this.tanks[2].getFill() + (Integer)res[1]); continue; } @@ -311,72 +226,28 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.decrStackSize(i + 3, 1); slots[i + 6].stackSize++; - this.amat.setFill(this.amat.getFill() + (Integer)res[1]); + this.tanks[2].setFill(this.tanks[2].getFill() + (Integer)res[1]); } } - if(this.amat.getFill() > this.amat.getMaxFill()) - this.amat.setFill(this.amat.getMaxFill()); + if(this.tanks[2].getFill() > this.tanks[2].getMaxFill()) + this.tanks[2].setFill(this.tanks[2].getMaxFill()); } public int getSpeed() { - - int speed = 1; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_speed_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_speed_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_speed_3) - speed += 3; - } - } - - return Math.min(speed, 4); + return Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) + 1; } public int getConsumption() { + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int speed = 0; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_power_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_power_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_power_3) - speed += 3; - } - } - - return Math.min(speed, 3); + return consumption - 100_000 * efficiency; } - public int getSafety() { - - int speed = 1; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_effect_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_effect_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_effect_3) - speed += 3; - } - } - - return Math.min(speed, 4); + public int getCoolantConsumption() { + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + //half a small tower's worth + return 500 / (efficiency + 1) * getSpeed(); } public long getPowerScaled(long i) { @@ -386,56 +257,6 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public int getProgressScaled(int i) { return (progress * i) / duration; } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - coolant.setFill(fill); - else if(index == 1) - amat.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.COOLANT) - coolant.setFill(fill); - else if(type == Fluids.AMAT) - amat.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - coolant.setTankType(type); - else if(index == 1) - amat.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.COOLANT) - return coolant.getFill(); - else if(type == Fluids.AMAT) - return amat.getFill(); - - return 0; - } - - @Override public void fillFluidInit(FluidType type) { } - @Override public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { } - @Override public boolean getTact() { return false; } - @Override public List getFluidList(FluidType type) { return null; } - @Override public void clearFluidList(FluidType type) { } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == Fluids.COOLANT) - return coolant.getMaxFill(); - - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { @@ -452,11 +273,9 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - coolant.readFromNBT(nbt, "coolant"); - amat.readFromNBT(nbt, "amat"); + for(int i = 0; i < 3; i++) + tanks[i].readFromNBT(nbt, "t" + i); - this.isOn = nbt.getBoolean("isOn"); - this.countdown = nbt.getInteger("countdown"); this.progress = nbt.getInteger("progress"); this.power = nbt.getLong("power"); this.plugs = nbt.getByte("plugs"); @@ -466,11 +285,9 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - coolant.writeToNBT(nbt, "coolant"); - amat.writeToNBT(nbt, "amat"); + for(int i = 0; i < 3; i++) + tanks[i].writeToNBT(nbt, "t" + i); - nbt.setBoolean("isOn", isOn); - nbt.setInteger("countdown", countdown); nbt.setInteger("progress", progress); nbt.setLong("power", power); nbt.setByte("plugs", plugs); @@ -522,17 +339,17 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { amat }; + return new FluidTank[] { tanks[1], tanks[2] }; } @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] { coolant }; + return new FluidTank[] { tanks[0] }; } @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { amat, coolant }; + return tanks; } @Override @@ -598,13 +415,13 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_cyclotron)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_COOLANT_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 10) + "%")); } if(type == UpgradeType.EFFECT) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_COOLANT_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_OVERHEAT_CHANCE, "-" + (100 - 100 / (level + 1)) + "%")); } } @@ -618,7 +435,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements @Override public void provideExtraInfo(NBTTagCompound data) { - data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && this.progress > 0); - data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? consumption - 100_000 * getConsumption() : 0); + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? getConsumption() : 0); } } diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png index 13a5d33bbfbdfcd374da643dd003c563e74334de..9da387278a9f2911f526dbe8981a4acace6736a0 100644 GIT binary patch literal 3417 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 YyD>B5QVOQ%^lwg6V@sp*Gj6y42aB}2LI3~& From 10002e0c41ee3521512500da3a19203cd9abfdd0 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 16 Jun 2024 19:39:59 +0200 Subject: [PATCH 05/17] PRISM complete --- changelog | 15 ++++ .../java/com/hbm/config/RadiationConfig.java | 6 ++ .../radiation/ChunkRadiationHandlerPRISM.java | 78 ++++++++++++++---- .../radiation/ChunkRadiationManager.java | 2 +- .../ContainerMachineSolderingStation.java | 3 +- .../java/com/hbm/main/ModEventHandler.java | 45 ++++++++++ .../{tank_HOTBLOOD.png => tank_BLOOD_HOT.png} | Bin 7 files changed, 131 insertions(+), 18 deletions(-) rename src/main/resources/assets/hbm/textures/models/tank/{tank_HOTBLOOD.png => tank_BLOOD_HOT.png} (100%) diff --git a/changelog b/changelog index 853a298c4..6eceec130 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,21 @@ +## Added +* PRISM + * A new 3D radiation system which makes use of block explosion resistance to determine spreading + * Unlike the 1.12.2 "pocket" system, radiation isn't perfectly sealed, blocks in a 16x16x16 area are simply summed up and used as a divisor + * Using enough high-resistance blocks (or a ton of lesser resistant blocks), radiation can still be effectively blocked (either thick concrete walls or a mountain) + * Radiation is still (sub) chunk based, so the radiation on both sides of a wall in the middle of a chunk will still be the same, the wall will however affect spreading to neighboring chunks + * For TPT players: radiation can be compared to pressure, where pressure also uses 4x4 pixel regions and is affected by pixels within those regions + ## Changed * Centrifuges and refineries now use analog circuits +* Updated the cyclotron, the GUI is now much cleaner and it uses water as coolant (produces LPS) instead of regular coolant +* Due to some people's inability to put a square peg into a square hole rather than a round one, it is now impossible to manually click soldering station ingredients into the wrong slot (you could have just shift-clicked, you know?) ## Fixed * Fixed hopper IO ignoring the stack limit on arc furnaces under certain circumstances * Fixed the watz powerplant not dropping as many HSS bolts as it should +* Fixed grates crashing servers when placed using shift click onto blocks +* Many machines now use the much more efficient byte buffer for sending information to the client which heavily reduces lag (NBT packing is a major contributor to TPS lg) +* Fixed issue where the power system would constantly disconnect when multiple dimensions are loaded +* Fixed the rare sideways-rendering tank not using the correct UV +* Fixed incorrect resource path for the hot blood tank, causing a missing texture diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 83cf7a10d..0129c534f 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -1,5 +1,8 @@ package com.hbm.config; +import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM; +import com.hbm.handler.radiation.ChunkRadiationManager; + import net.minecraftforge.common.config.Configuration; public class RadiationConfig { @@ -14,6 +17,7 @@ public class RadiationConfig { public static boolean enableContamination = true; public static boolean enableChunkRads = true; + public static boolean enablePRISM = false; public static boolean disableAsbestos = false; public static boolean disableCoal = false; @@ -47,6 +51,8 @@ public class RadiationConfig { enableContamination = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_00_enableContamination", "Toggles player contamination (and negative effects from radiation poisoning)", true); enableChunkRads = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_01_enableChunkRads", "Toggles the world radiation system (chunk radiation only, some blocks use an AoE!)", true); + enablePRISM = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_99_enablePRISM", "Enables the new 3D resistance-aware PRISM radiation system", false); + if(enablePRISM) ChunkRadiationManager.proxy = new ChunkRadiationHandlerPRISM(); fogCh = CommonConfig.setDef(fogCh, 20); diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java index 96a1bc9fa..9f6910472 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java @@ -42,7 +42,8 @@ import net.minecraftforge.event.world.WorldEvent; */ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { - private HashMap perWorld = new HashMap(); + public HashMap perWorld = new HashMap(); + public static int cycles = 0; public static final float MAX_RADIATION = 1_000_000; private static final String NBT_KEY_CHUNK_RADIATION = "hfr_prism_radiation_"; @@ -169,15 +170,53 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { @Override public void updateSystem() { + cycles++; + for(Entry entries : perWorld.entrySet()) { World world = entries.getKey(); RadPerWorld system = entries.getValue(); + int rebuildAllowance = 25; + //it would be way to expensive to replace the sub-chunks entirely like with the old system //(that only used floats anyway...) so instead we shift the radiation into the prev value - for(Entry chunk : system.radiation.entrySet()) for(SubChunk sub : chunk.getValue()) if(sub != null) { - sub.prevRadiation = sub.radiation; - sub.radiation = 0; + for(Entry chunk : system.radiation.entrySet()) { + for(int i = 0; i < 16; i++) { + + SubChunk sub = chunk.getValue()[i]; + + boolean hasTriedRebuild = false; + + if(sub != null) { + sub.prevRadiation = sub.radiation; + sub.radiation = 0; + + //process some chunks that need extra rebuilding + if(rebuildAllowance > 0 && sub.needsRebuild) { + sub.rebuild(world, chunk.getKey().chunkXPos << 4, i << 4, chunk.getKey().chunkZPos << 4); + if(!sub.needsRebuild) { + rebuildAllowance--; + hasTriedRebuild = true; + } + } + + if(!hasTriedRebuild && Math.abs(chunk.getKey().chunkXPos * chunk.getKey().chunkZPos) % 5 == cycles % 5 && world.getChunkProvider().chunkExists(chunk.getKey().chunkXPos, chunk.getKey().chunkZPos)) { + + Chunk c = world.getChunkFromChunkCoords(chunk.getKey().chunkXPos, chunk.getKey().chunkZPos); + ExtendedBlockStorage[] xbs = c.getBlockStorageArray(); + ExtendedBlockStorage subChunk = xbs[i]; + int checksum = 0; + + if(subChunk != null) { + for(int iX = 0; iX < 16; iX++) for(int iY = 0; iY < 16; iY ++) for(int iZ = 0; iZ < 16; iZ ++) checksum += subChunk.getBlockLSBArray()[MathHelper.clamp_int(iY << 8 | iZ << 4 | iX, 0, 4095)]; + } + + if(checksum != sub.checksum) { + sub.rebuild(world, chunk.getKey().chunkXPos << 4, i << 4, chunk.getKey().chunkZPos << 4); + } + } + } + } } //has to support additions while iterating @@ -190,10 +229,12 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { SubChunk sub = chunk.getValue()[i]; if(sub != null) { - if(sub.prevRadiation <= 0 || Float.isNaN(sub.prevRadiation)) continue; + if(sub.prevRadiation <= 0 || Float.isNaN(sub.prevRadiation) || Float.isInfinite(sub.prevRadiation)) continue; float radSpread = 0; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) radSpread += spreadRadiation(world, sub, i, chunk.getKey(), chunk.getValue(), system.radiation, dir); sub.radiation += (sub.prevRadiation - radSpread) * 0.95F; + sub.radiation -= 1F; + sub.radiation = MathHelper.clamp_float(sub.radiation, 0, MAX_RADIATION); } } } @@ -262,8 +303,9 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { public float[] yResist = new float[16]; public float[] zResist = new float[16]; public boolean needsRebuild = false; + public int checksum = 0; - public void updateBlock(World world, int x, int y, int z) { + @Deprecated public void updateBlock(World world, int x, int y, int z) { int cX = x >> 4; int cY = MathHelper.clamp_int(y >> 4, 0, 15); int cZ = z >> 4; @@ -319,17 +361,21 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { Chunk chunk = world.getChunkFromChunkCoords(cX, cZ); ExtendedBlockStorage[] xbs = chunk.getBlockStorageArray(); ExtendedBlockStorage subChunk = xbs[cY]; + checksum = 0; - for(int iX = 0; iX < 16; iX++) { - for(int iY = 0; iY < 16; iY ++) { - for(int iZ = 0; iZ < 16; iZ ++) { - - Block b = subChunk.getBlockByExtId(iX, iY, iZ); - if(b.getMaterial() == Material.air) continue; - float resistance = b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z); - xResist[iX] += resistance; - yResist[iY] += resistance; - zResist[iZ] += resistance; + if(subChunk != null) { + for(int iX = 0; iX < 16; iX++) { + for(int iY = 0; iY < 16; iY ++) { + for(int iZ = 0; iZ < 16; iZ ++) { + + Block b = subChunk.getBlockByExtId(iX, iY, iZ); + if(b.getMaterial() == Material.air) continue; + float resistance = b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z); + xResist[iX] += resistance; + yResist[iY] += resistance; + zResist[iZ] += resistance; + checksum += subChunk.getBlockLSBArray()[MathHelper.clamp_int(iY << 8 | iZ << 4 | iX, 0, 4095)]; // the "good enough" approach + } } } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java index 1c5c8121c..9cc989370 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java @@ -12,7 +12,7 @@ import net.minecraftforge.event.world.WorldEvent; public class ChunkRadiationManager { - public static ChunkRadiationHandler proxy = /*new ChunkRadiationHandlerNT();*/ new ChunkRadiationHandlerSimple(); /*new ChunkRadiationHandlerPRISM();*/ + public static ChunkRadiationHandler proxy = new ChunkRadiationHandlerSimple(); @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java index abb9cba02..d1ce587b2 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java @@ -2,6 +2,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; import com.hbm.inventory.SlotUpgrade; import com.hbm.inventory.recipes.SolderingRecipes; import com.hbm.items.ModItems; @@ -24,7 +25,7 @@ public class ContainerMachineSolderingStation extends Container { solderer = tile; //Inputs - for(int i = 0; i < 2; i++) for(int j = 0; j < 3; j++) this.addSlotToContainer(new Slot(tile, i * 3 + j, 17 + j * 18, 18 + i * 18)); + for(int i = 0; i < 2; i++) for(int j = 0; j < 3; j++) this.addSlotToContainer(new SlotNonRetarded(tile, i * 3 + j, 17 + j * 18, 18 + i * 18)); //Output this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 6, 107, 27)); //Battery diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 1ceb0ada5..572aeb47d 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; import java.util.Random; import org.apache.commons.lang3.math.NumberUtils; @@ -40,6 +41,10 @@ import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM; +import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM.RadPerWorld; +import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM.SubChunk; +import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -118,6 +123,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; @@ -1088,6 +1094,45 @@ public class ModEventHandler { player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + vec.yCoord, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); } } + + // PRISMDBG + /*if(!event.player.worldObj.isRemote) { + ChunkRadiationHandlerPRISM prism = (ChunkRadiationHandlerPRISM) ChunkRadiationManager.proxy; + + RadPerWorld perWorld = prism.perWorld.get(player.worldObj); + + if(perWorld != null) { + SubChunk[] chunk = perWorld.radiation.get(new ChunkCoordIntPair(((int) Math.floor(player.posX)) >> 4, ((int) Math.floor(player.posZ)) >> 4)); + + if(chunk != null) { + + int y = ((int) Math.floor(player.posY)) >> 4; + + if(y >= 0 && y <= 15) { + SubChunk sub = chunk[y]; + + if(sub != null) { + float xSum = 0, ySum = 0, zSum = 0; + for(int i = 0; i < 16; i++) { + xSum += sub.xResist[i]; ySum += sub.yResist[i]; zSum += sub.zResist[i]; + } + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "FREE SPACE", 1), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "FREE SPACE", 2), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "" + sub.checksum + " - " + ((int) sub.radiation) + "RAD/s - " + sub.needsRebuild + + " - " + (int) xSum+ " - " + (int) ySum + " - " + (int) zSum, 3), (EntityPlayerMP) player); + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "SUB IS NULL", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "OUTSIDE OF WORLD", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "CHUNK IS NULL", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "PERWORLD IS NULL", 1), (EntityPlayerMP) player); + } + }*/ } @SubscribeEvent diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTBLOOD.png b/src/main/resources/assets/hbm/textures/models/tank/tank_BLOOD_HOT.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tank/tank_HOTBLOOD.png rename to src/main/resources/assets/hbm/textures/models/tank/tank_BLOOD_HOT.png From dda1025fe261a480dbc7835b6085c305cf0dfa0a Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 16 Jun 2024 23:37:10 +0200 Subject: [PATCH 06/17] fixes and tweaks --- changelog | 3 +++ gradle.properties | 2 +- .../com/hbm/inventory/recipes/ArcWelderRecipes.java | 2 ++ .../com/hbm/inventory/recipes/AssemblerRecipes.java | 12 +++++------- .../hbm/inventory/recipes/anvil/AnvilRecipes.java | 5 ++--- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/CraftingManager.java | 1 - .../hbm/tileentity/machine/TileEntityICFPress.java | 5 +++++ 8 files changed, 19 insertions(+), 13 deletions(-) diff --git a/changelog b/changelog index 6eceec130..a2b553919 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,7 @@ * Centrifuges and refineries now use analog circuits * Updated the cyclotron, the GUI is now much cleaner and it uses water as coolant (produces LPS) instead of regular coolant * Due to some people's inability to put a square peg into a square hole rather than a round one, it is now impossible to manually click soldering station ingredients into the wrong slot (you could have just shift-clicked, you know?) +* Slightly simplified a few crafting recipes, steel tanks and steel shells take the same role so the steel tanks were dropped from a few recipes ## Fixed * Fixed hopper IO ignoring the stack limit on arc furnaces under certain circumstances @@ -19,3 +20,5 @@ * Fixed issue where the power system would constantly disconnect when multiple dimensions are loaded * Fixed the rare sideways-rendering tank not using the correct UV * Fixed incorrect resource path for the hot blood tank, causing a missing texture +* Fixed welded CMB plates being unobtainable +* Fixed the ICF pellet maker not being able to eject the output diff --git a/gradle.properties b/gradle.properties index aeb2affff..62c5bcf75 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4991 +mod_build_number=4998 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 611997149..c4aa555c5 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -68,6 +68,8 @@ public class ArcWelderRecipes extends SerializableRecipe { new OreDictStack(CDALLOY.plateCast(), 2))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TUNGSTEN.id), 1_200, 250_000L, new FluidStack(Fluids.OXYGEN, 1_000), new OreDictStack(W.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CMB.id), 1_200, 10_000_000L, new FluidStack(Fluids.REFORMGAS, 1_000), + new OreDictStack(CMB.plateCast(), 2))); //pre-DFC recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), new OreDictStack(OSMIRIDIUM.plateCast(), 2))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 599cd0f0d..05eaf87f3 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -140,7 +140,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new OreDictStack(SA326.wireFine(), 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new OreDictStack(MINGRADE.wireFine(), 6), },250); + makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new OreDictStack(MINGRADE.wireFine(), 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); @@ -1121,8 +1121,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 16), - !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp()), - new ComparableStack(ModItems.tank_steel, 3), + !exp ? new OreDictStack(STEEL.shell(), 6) : new OreDictStack(STEEL.heavyComp()), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), new ComparableStack(ModItems.catalyst_clay, 12), @@ -1132,10 +1131,10 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 12), new OreDictStack(ANY_TAR.any(), 8), + new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), - new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.tank_steel, 2) + new ComparableStack(ModItems.coil_tungsten, 8) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { @@ -1145,8 +1144,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), - new ComparableStack(ModItems.coil_copper, 4), - new ComparableStack(ModItems.tank_steel, 2) + new ComparableStack(ModItems.coil_copper, 4) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 0c1815206..a556e80a4 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -439,10 +439,9 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(ModItems.deuterium_filter, 2), new OreDictStack(STEEL.shell(), 5), - new ComparableStack(ModBlocks.concrete_smooth, 8), - new ComparableStack(ModBlocks.concrete_asbestos, 4), - new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(STEEL.pipe(), 12), + new ComparableStack(ModBlocks.concrete_asbestos, 8), + new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8), }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 17155d5a6..e5d3168f4 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4991)"; + public static final String VERSION = "1.0.27 BETA (4998)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 553cc2b58..545f798ce 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1008,7 +1008,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); - addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java index 60df455b8..9c6eef7ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java @@ -153,6 +153,11 @@ public class TileEntityICFPress extends TileEntityMachineBase implements IFluidS public int[] getAccessibleSlotsFromSide(int side) { return side == 0 || side == 1 ? topBottom : sides; } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } @Override public void readFromNBT(NBTTagCompound nbt) { From a016dd906acd8bc82c5674e2bf637c60f5697677 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 18 Jun 2024 20:45:16 +0200 Subject: [PATCH 07/17] fixes --- changelog | 28 +++------- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 15 ------ .../hbm/blocks/generic/BlockSpeedyStairs.java | 38 +++++++------- .../radiation/ChunkRadiationHandlerPRISM.java | 51 +++++++++++-------- .../com/hbm/inventory/OreDictManager.java | 10 ++-- .../container/ContainerMachineCyclotron.java | 3 -- .../inventory/gui/GUIMachineCyclotron.java | 3 -- .../inventory/recipes/AssemblerRecipes.java | 22 ++++---- .../com/hbm/items/special/ItemOreBlock.java | 30 ----------- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 5 ++ .../machine/TileEntityMachineAssembler.java | 7 +-- .../machine/TileEntityMachineCyclotron.java | 5 -- 14 files changed, 77 insertions(+), 144 deletions(-) diff --git a/changelog b/changelog index a2b553919..cdd12bb6a 100644 --- a/changelog +++ b/changelog @@ -1,24 +1,10 @@ -## Added -* PRISM - * A new 3D radiation system which makes use of block explosion resistance to determine spreading - * Unlike the 1.12.2 "pocket" system, radiation isn't perfectly sealed, blocks in a 16x16x16 area are simply summed up and used as a divisor - * Using enough high-resistance blocks (or a ton of lesser resistant blocks), radiation can still be effectively blocked (either thick concrete walls or a mountain) - * Radiation is still (sub) chunk based, so the radiation on both sides of a wall in the middle of a chunk will still be the same, the wall will however affect spreading to neighboring chunks - * For TPT players: radiation can be compared to pressure, where pressure also uses 4x4 pixel regions and is affected by pixels within those regions - ## Changed -* Centrifuges and refineries now use analog circuits -* Updated the cyclotron, the GUI is now much cleaner and it uses water as coolant (produces LPS) instead of regular coolant -* Due to some people's inability to put a square peg into a square hole rather than a round one, it is now impossible to manually click soldering station ingredients into the wrong slot (you could have just shift-clicked, you know?) -* Slightly simplified a few crafting recipes, steel tanks and steel shells take the same role so the steel tanks were dropped from a few recipes +* Changed PRISM's resistance function to work more like armor resistance instead of a straight divider +* Capped PRISM's resistance value per block to 100 (bit over concrete) +* Removed the unused rare metal ores, freeing up 5 block IDs +* Changed the .75 bolt recipes ## Fixed -* Fixed hopper IO ignoring the stack limit on arc furnaces under certain circumstances -* Fixed the watz powerplant not dropping as many HSS bolts as it should -* Fixed grates crashing servers when placed using shift click onto blocks -* Many machines now use the much more efficient byte buffer for sending information to the client which heavily reduces lag (NBT packing is a major contributor to TPS lg) -* Fixed issue where the power system would constantly disconnect when multiple dimensions are loaded -* Fixed the rare sideways-rendering tank not using the correct UV -* Fixed incorrect resource path for the hot blood tank, causing a missing texture -* Fixed welded CMB plates being unobtainable -* Fixed the ICF pellet maker not being able to eject the output +* Fixed PRISM crashing instantly +* Fixed PRISM's resistance check being on backwards +* Fixed PRISM's resistance check omitting the wrong layers \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 62c5bcf75..0219489fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4998 +mod_build_number=5000 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 88e2f7e82..4d4cf4afa 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -61,11 +61,6 @@ public class ModBlocks { public static Block ore_schrabidium; public static Block ore_beryllium; public static Block ore_australium; - public static Block ore_weidanium; - public static Block ore_reiium; - public static Block ore_unobtainium; - public static Block ore_daffergon; - public static Block ore_verticium; public static Block ore_rare; public static Block ore_cobalt; public static Block ore_cinnebar; @@ -1327,11 +1322,6 @@ public class ModBlocks { basalt_tiles = new BlockGeneric(Material.rock).setBlockName("basalt_tiles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_tiles"); ore_australium = new BlockGeneric(Material.rock).setBlockName("ore_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_australium"); - ore_weidanium = new BlockGeneric(Material.rock).setBlockName("ore_weidanium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_weidanium"); - ore_reiium = new BlockGeneric(Material.rock).setBlockName("ore_reiium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_reiium"); - ore_unobtainium = new BlockGeneric(Material.rock).setBlockName("ore_unobtainium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_unobtainium"); - ore_daffergon = new BlockGeneric(Material.rock).setBlockName("ore_daffergon").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_daffergon"); - ore_verticium = new BlockGeneric(Material.rock).setBlockName("ore_verticium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_verticium"); ore_rare = new BlockOre(Material.rock).setBlockName("ore_rare").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_rare"); ore_cobalt = new BlockOre(Material.rock).setBlockName("ore_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cobalt"); ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); @@ -2394,11 +2384,6 @@ public class ModBlocks { //Rare Minerals GameRegistry.registerBlock(ore_australium, ItemOreBlock.class, ore_australium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_weidanium, ItemOreBlock.class, ore_weidanium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_reiium, ItemOreBlock.class, ore_reiium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_unobtainium, ItemOreBlock.class, ore_unobtainium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_daffergon, ItemOreBlock.class, ore_daffergon.getUnlocalizedName()); - GameRegistry.registerBlock(ore_verticium, ItemOreBlock.class, ore_verticium.getUnlocalizedName()); GameRegistry.registerBlock(ore_rare, ItemOreBlock.class, ore_rare.getUnlocalizedName()); GameRegistry.registerBlock(ore_cobalt, ore_cobalt.getUnlocalizedName()); GameRegistry.registerBlock(ore_cinnebar, ore_cinnebar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java b/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java index 609c66d5b..2a9bfb8d8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java @@ -3,7 +3,6 @@ package com.hbm.blocks.generic; import com.hbm.blocks.IStepTickReceiver; import com.hbm.blocks.ITooltipProvider; import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -14,28 +13,27 @@ import java.util.List; public class BlockSpeedyStairs extends BlockGenericStairs implements IStepTickReceiver, ITooltipProvider { - double speed; + double speed; - public BlockSpeedyStairs(Block block, int meta, double speed) { - super(block, meta); - this.speed = speed; - } + public BlockSpeedyStairs(Block block, int meta, double speed) { + super(block, meta); + this.speed = speed; + } - @Override - public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player) { + @Override + public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player) { - if(!world.isRemote) - return; + if(!world.isRemote) + return; - if(player.moveForward != 0 || player.moveStrafing != 0) { - player.motionX *= speed; - player.motionZ *= speed; - } - } + if(player.moveForward != 0 || player.moveStrafing != 0) { + player.motionX *= speed; + player.motionZ *= speed; + } + } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.BLUE + "Increases speed by " + (MathHelper.floor_double((speed - 1) * 100)) + "%"); - } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.BLUE + "Increases speed by " + (MathHelper.floor_double((speed - 1) * 100)) + "%"); + } } - diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java index 9f6910472..87a1f6cd7 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java @@ -142,15 +142,17 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { RadPerWorld radWorld = perWorld.get(event.world); if(radWorld != null) { SubChunk[] chunk = radWorld.radiation.get(event.getChunk().getChunkCoordIntPair()); - for(int i = 0; i < 16; i++) { - SubChunk sub = chunk[i]; - if(sub != null) { - float rad = sub.radiation; - event.getData().setFloat(NBT_KEY_CHUNK_RADIATION + i, rad); - for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "x_" + j + "_" + i, sub.xResist[j]); - for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "y_" + j + "_" + i, sub.yResist[j]); - for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "z_" + j + "_" + i, sub.zResist[j]); - event.getData().setBoolean(NBT_KEY_CHUNK_EXISTS + i, true); + if(chunk != null) { + for(int i = 0; i < 16; i++) { + SubChunk sub = chunk[i]; + if(sub != null) { + float rad = sub.radiation; + event.getData().setFloat(NBT_KEY_CHUNK_RADIATION + i, rad); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "x_" + j + "_" + i, sub.xResist[j]); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "y_" + j + "_" + i, sub.yResist[j]); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "z_" + j + "_" + i, sub.zResist[j]); + event.getData().setBoolean(NBT_KEY_CHUNK_EXISTS + i, true); + } } } } @@ -162,10 +164,12 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { if(!event.world.isRemote) { RadPerWorld radWorld = perWorld.get(event.world); if(radWorld != null) { - radWorld.radiation.remove(event.getChunk()); + radWorld.radiation.remove(event.getChunk().getChunkCoordIntPair()); } } } + + public static final HashMap newAdditions = new HashMap(); @Override public void updateSystem() { @@ -239,6 +243,9 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { } } + system.radiation.putAll(newAdditions); + newAdditions.clear(); + /* //reap chunks with no radiation at all system.radiation.entrySet().removeIf(x -> getTotalChunkRadiation(x.getValue()) <= 0F); @@ -266,7 +273,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { SubChunk[] newChunk = map.get(newPos); if(newChunk == null) { newChunk = new SubChunk[16]; - map.put(newPos, newChunk); + newAdditions.put(newPos, newChunk); } if(newChunk[y] == null) newChunk[y] = new SubChunk().rebuild(world, newPos.chunkXPos << 4, y << 4, newPos.chunkZPos << 4); SubChunk to = newChunk[y]; @@ -276,8 +283,8 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { private static float spreadRadiationTo(SubChunk from, SubChunk to, float amount, ForgeDirection movement) { float resistance = from.getResistanceValue(movement.getOpposite()) + to.getResistanceValue(movement); - resistance /= 1_000F; - float toMove = Math.min(amount / Math.max(resistance, 1F), amount); + double fun = Math.pow(Math.E, -resistance / 10_000D); + float toMove = (float) Math.min(amount * fun, amount); to.radiation += toMove; return toMove; } @@ -334,7 +341,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { Block b = subChunk.getBlockByExtId(iX, iY, iZ); if(b.getMaterial() == Material.air) continue; - float resistance = b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z); + float resistance = Math.min(b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z), 100); if(iX == sX) xResist[iX] += resistance; if(iY == sY) yResist[iY] += resistance; if(iZ == sZ) zResist[iZ] += resistance; @@ -370,7 +377,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { Block b = subChunk.getBlockByExtId(iX, iY, iZ); if(b.getMaterial() == Material.air) continue; - float resistance = b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z); + float resistance = Math.min(b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z), 100); xResist[iX] += resistance; yResist[iY] += resistance; zResist[iZ] += resistance; @@ -385,18 +392,18 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { } public float getResistanceValue(ForgeDirection movement) { - if(movement == Library.POS_X) return getResistanceFromArray(xResist, false); - if(movement == Library.NEG_X) return getResistanceFromArray(xResist, true); - if(movement == Library.POS_Y) return getResistanceFromArray(yResist, false); - if(movement == Library.NEG_Y) return getResistanceFromArray(yResist, true); - if(movement == Library.POS_Z) return getResistanceFromArray(zResist, false); - if(movement == Library.NEG_Z) return getResistanceFromArray(zResist, true); + if(movement == Library.POS_X) return getResistanceFromArray(xResist, true); + if(movement == Library.NEG_X) return getResistanceFromArray(xResist, false); + if(movement == Library.POS_Y) return getResistanceFromArray(yResist, true); + if(movement == Library.NEG_Y) return getResistanceFromArray(yResist, false); + if(movement == Library.POS_Z) return getResistanceFromArray(zResist, true); + if(movement == Library.NEG_Z) return getResistanceFromArray(zResist, false); return 0; } private float getResistanceFromArray(float[] resist, boolean reverse) { float res = 0F; - for(int i = 0; i < 15; i++) { + for(int i = 1; i < 16; i++) { int index = reverse ? 15 - i : i; res += resist[index] / 15F * i; } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index edae916e5..c4035c989 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -445,11 +445,11 @@ public class OreDictManager { * RARE METALS */ AUSTRALIUM .nugget(nugget_australium) .billet(billet_australium) .ingot(ingot_australium) .dust(powder_australium) .block(block_australium) .ore(ore_australium); - REIIUM .nugget(nugget_reiium) .ingot(ingot_reiium) .dust(powder_reiium) .block(block_reiium) .ore(ore_reiium); - WEIDANIUM .nugget(nugget_weidanium) .ingot(ingot_weidanium) .dust(powder_weidanium) .block(block_weidanium) .ore(ore_weidanium); - UNOBTAINIUM .nugget(nugget_unobtainium) .ingot(ingot_unobtainium) .dust(powder_unobtainium) .block(block_unobtainium) .ore(ore_unobtainium); - VERTICIUM .nugget(nugget_verticium) .ingot(ingot_verticium) .dust(powder_verticium) .block(block_verticium) .ore(ore_verticium); - DAFFERGON .nugget(nugget_daffergon) .ingot(ingot_daffergon) .dust(powder_daffergon) .block(block_daffergon) .ore(ore_daffergon); + REIIUM .nugget(nugget_reiium) .ingot(ingot_reiium) .dust(powder_reiium) .block(block_reiium); + WEIDANIUM .nugget(nugget_weidanium) .ingot(ingot_weidanium) .dust(powder_weidanium) .block(block_weidanium); + UNOBTAINIUM .nugget(nugget_unobtainium) .ingot(ingot_unobtainium) .dust(powder_unobtainium) .block(block_unobtainium); + VERTICIUM .nugget(nugget_verticium) .ingot(ingot_verticium) .dust(powder_verticium) .block(block_verticium); + DAFFERGON .nugget(nugget_daffergon) .ingot(ingot_daffergon) .dust(powder_daffergon) .block(block_daffergon); /* * RARE EARTHS diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java index cc720bc10..784f5275e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java @@ -1,10 +1,7 @@ package com.hbm.inventory.container; -import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.inventory.SlotTakeOnly; import com.hbm.inventory.SlotUpgrade; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java index 57d35ef3b..5f5cfc339 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java @@ -4,13 +4,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCyclotron; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 05eaf87f3..7da831ef7 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -510,30 +510,26 @@ public class AssemblerRecipes extends SerializableRecipe { }, 200); makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.STOCK.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.casing_50, 5), + new OreDictStack(STEEL.plate(), 4), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 2), new ComparableStack(ModItems.cordite, 3), new OreDictStack(U238.ingot(), 1) }, 60); makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.INCENDIARY.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.casing_50, 5), - new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 3), + new OreDictStack(STEEL.plate(), 4), + new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 2), new ComparableStack(ModItems.cordite, 3), new OreDictStack(P_WHITE.ingot(), 3) }, 60); makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.HE.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.casing_50, 5), - new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 5), - new ComparableStack(ModItems.cordite, 5), - new OreDictStack(REDSTONE.dust(), 3) + new OreDictStack(STEEL.plate(), 4), + new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 5), + new ComparableStack(ModItems.cordite, 5) }, 60); makeRecipe(new ComparableStack(ModItems.spawn_worm, 1), new AStack[] { diff --git a/src/main/java/com/hbm/items/special/ItemOreBlock.java b/src/main/java/com/hbm/items/special/ItemOreBlock.java index 9b0596fa4..b58585514 100644 --- a/src/main/java/com/hbm/items/special/ItemOreBlock.java +++ b/src/main/java/com/hbm/items/special/ItemOreBlock.java @@ -30,36 +30,6 @@ public class ItemOreBlock extends ItemBlock { list.add("Deposit location: X:-400; Z:-400"); list.add("Estimated quantity: 490"); } - - if(this.field_150939_a == ModBlocks.ore_weidanium) { - list.add("Weidanium ore"); - list.add("Deposit location: X:0; Z:300"); - list.add("Estimated quantity: 2800"); - } - - if(this.field_150939_a == ModBlocks.ore_reiium) { - list.add("Reiium ore"); - list.add("Deposit location: X:0; Z:0"); - list.add("Estimated quantity: 2800"); - } - - if(this.field_150939_a == ModBlocks.ore_unobtainium) { - list.add("Unobtainium ore"); - list.add("Deposit location: X:200; Z:200"); - list.add("Estimated quantity: 12480"); - } - - if(this.field_150939_a == ModBlocks.ore_daffergon) { - list.add("Daffergon ore"); - list.add("Deposit location: X:400; Z:-200"); - list.add("Estimated quantity: 14980"); - } - - if(this.field_150939_a == ModBlocks.ore_verticium) { - list.add("Verticium ore"); - list.add("Deposit location: X:-300; Z:200"); - list.add("Estimated quantity: 4680"); - } } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index e5d3168f4..1a5c1bf6d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4998)"; + public static final String VERSION = "1.0.27 BETA (5000)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 23a24261c..8043c2b04 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1332,6 +1332,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.arc_electrode_desh"); ignoreMappings.add("hbm:tile.sand_gold"); ignoreMappings.add("hbm:tile.sand_gold198"); + ignoreMappings.add("hbm:tile.ore_weidanium"); + ignoreMappings.add("hbm:tile.ore_reiium"); + ignoreMappings.add("hbm:tile.ore_unobtainium"); + ignoreMappings.add("hbm:tile.ore_daffergon"); + ignoreMappings.add("hbm:tile.ore_verticium"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index b83c19787..c16320387 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -6,12 +6,9 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineAssembler; import com.hbm.inventory.gui.GUIMachineAssembler; -import com.hbm.inventory.recipes.AssemblerRecipes; -import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; @@ -106,11 +103,11 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i speed /= (overLevel + 1); consumption *= (overLevel + 1); - int rec = -1; + /*int rec = -1; if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null) { ComparableStack comp = ItemAssemblyTemplate.readType(slots[4]); rec = AssemblerRecipes.recipeList.indexOf(comp); - } + }*/ this.networkPackNT(150); } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index e43f45631..effd7bf2e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -4,15 +4,10 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionThermo; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineCyclotron; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCyclotron; From 79cfe0b6c4a72058d7963806f5b68708e6852d94 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 19 Jun 2024 15:58:12 +0200 Subject: [PATCH 08/17] yippie --- changelog | 14 ++++++-------- .../com/hbm/blocks/network/FluidDuctBox.java | 13 +++++++------ .../blocks/network/FluidDuctBoxExhaust.java | 4 ++-- .../radiation/ChunkRadiationHandlerPRISM.java | 9 ++++++--- .../hbm/textures/blocks/boxduct_copper.png | Bin 1672 -> 2534 bytes .../blocks/boxduct_copper_curve_bl.png | Bin 462 -> 389 bytes .../blocks/boxduct_copper_curve_br.png | Bin 438 -> 376 bytes .../blocks/boxduct_copper_curve_tl.png | Bin 414 -> 317 bytes .../blocks/boxduct_copper_curve_tr.png | Bin 480 -> 388 bytes .../textures/blocks/boxduct_copper_end.png | Bin 615 -> 535 bytes .../blocks/boxduct_copper_junction.png | Bin 347 -> 0 bytes .../blocks/boxduct_copper_junction_0.png | Bin 0 -> 511 bytes .../blocks/boxduct_copper_junction_1.png | Bin 0 -> 621 bytes .../blocks/boxduct_copper_junction_2.png | Bin 0 -> 618 bytes .../blocks/boxduct_copper_junction_3.png | Bin 0 -> 509 bytes .../blocks/boxduct_copper_junction_4.png | Bin 0 -> 412 bytes .../blocks/boxduct_copper_straight.png | Bin 350 -> 208 bytes .../hbm/textures/blocks/boxduct_exhaust.png | Bin 1426 -> 4010 bytes .../blocks/boxduct_exhaust_curve_bl.png | Bin 395 -> 459 bytes .../blocks/boxduct_exhaust_curve_br.png | Bin 389 -> 431 bytes .../blocks/boxduct_exhaust_curve_tl.png | Bin 362 -> 442 bytes .../blocks/boxduct_exhaust_curve_tr.png | Bin 423 -> 446 bytes .../textures/blocks/boxduct_exhaust_end.png | Bin 517 -> 689 bytes .../blocks/boxduct_exhaust_junction_0.png | Bin 0 -> 598 bytes .../blocks/boxduct_exhaust_junction_1.png | Bin 0 -> 697 bytes .../blocks/boxduct_exhaust_junction_2.png | Bin 0 -> 673 bytes .../blocks/boxduct_exhaust_junction_3.png | Bin 0 -> 553 bytes .../blocks/boxduct_exhaust_junction_4.png | Bin 0 -> 463 bytes .../blocks/boxduct_exhaust_straight.png | Bin 309 -> 279 bytes .../hbm/textures/blocks/boxduct_silver.png | Bin 1394 -> 2189 bytes .../blocks/boxduct_silver_curve_bl.png | Bin 380 -> 311 bytes .../blocks/boxduct_silver_curve_br.png | Bin 372 -> 314 bytes .../blocks/boxduct_silver_curve_tl.png | Bin 355 -> 282 bytes .../blocks/boxduct_silver_curve_tr.png | Bin 395 -> 331 bytes .../textures/blocks/boxduct_silver_end.png | Bin 495 -> 452 bytes .../blocks/boxduct_silver_junction.png | Bin 280 -> 0 bytes .../blocks/boxduct_silver_junction_0.png | Bin 0 -> 401 bytes .../blocks/boxduct_silver_junction_1.png | Bin 0 -> 502 bytes .../blocks/boxduct_silver_junction_2.png | Bin 0 -> 520 bytes .../blocks/boxduct_silver_junction_3.png | Bin 0 -> 436 bytes .../blocks/boxduct_silver_junction_4.png | Bin 0 -> 354 bytes .../blocks/boxduct_silver_straight.png | Bin 293 -> 189 bytes .../hbm/textures/blocks/boxduct_white.png | Bin 0 -> 2224 bytes .../blocks/boxduct_white_curve_bl.png | Bin 377 -> 314 bytes .../blocks/boxduct_white_curve_br.png | Bin 364 -> 312 bytes .../blocks/boxduct_white_curve_tl.png | Bin 347 -> 285 bytes .../blocks/boxduct_white_curve_tr.png | Bin 395 -> 329 bytes .../hbm/textures/blocks/boxduct_white_end.png | Bin 489 -> 466 bytes .../blocks/boxduct_white_junction.png | Bin 274 -> 0 bytes .../blocks/boxduct_white_junction_0.png | Bin 0 -> 406 bytes .../blocks/boxduct_white_junction_1.png | Bin 0 -> 507 bytes .../blocks/boxduct_white_junction_2.png | Bin 0 -> 539 bytes .../blocks/boxduct_white_junction_3.png | Bin 0 -> 432 bytes .../blocks/boxduct_white_junction_4.png | Bin 0 -> 338 bytes .../blocks/boxduct_white_straight.png | Bin 294 -> 191 bytes 55 files changed, 21 insertions(+), 19 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_4.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_4.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_4.png diff --git a/changelog b/changelog index cdd12bb6a..c4aad0278 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,8 @@ ## Changed -* Changed PRISM's resistance function to work more like armor resistance instead of a straight divider -* Capped PRISM's resistance value per block to 100 (bit over concrete) -* Removed the unused rare metal ores, freeing up 5 block IDs -* Changed the .75 bolt recipes +* Updated boxducts + * All boxducts are now way cleaner, only having bolts on intersections, with straight parts only having very light seams + * Intersections now have unique textures for each size + * Copper boxducts now have a much nicer color gradient + * Exhaust pipes now have a more rusted appearance -## Fixed -* Fixed PRISM crashing instantly -* Fixed PRISM's resistance check being on backwards -* Fixed PRISM's resistance check omitting the wrong layers \ No newline at end of file +## Fixed crash caused by PRISM updating unloaded worlds \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index ab63cb957..fb759fb93 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -35,7 +35,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @SideOnly(Side.CLIENT) public IIcon[] iconCurveTR; @SideOnly(Side.CLIENT) public IIcon[] iconCurveBL; @SideOnly(Side.CLIENT) public IIcon[] iconCurveBR; - @SideOnly(Side.CLIENT) public IIcon[] iconJunction; + @SideOnly(Side.CLIENT) public IIcon[][] iconJunction; private static final String[] materials = new String[] { "silver", "copper", "white" }; @@ -55,7 +55,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve iconCurveTR = new IIcon[count]; iconCurveBL = new IIcon[count]; iconCurveBR = new IIcon[count]; - iconJunction = new IIcon[count]; + iconJunction = new IIcon[count][5]; for(int i = 0; i < count; i++) { iconStraight[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_straight"); @@ -64,7 +64,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve iconCurveTR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_tr"); iconCurveBL[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_bl"); iconCurveBR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_br"); - iconJunction[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_junction"); + for(int j = 0; j < 5; j++) iconJunction[i][j] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_junction_" + j); } } @@ -83,7 +83,8 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); - int m = rectify(world.getBlockMetadata(x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + int m = rectify(meta); if((mask & 0b001111) == 0 && mask > 0) { return (side == 4 || side == 5) ? iconEnd[m] : iconStraight[m]; @@ -112,10 +113,10 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve if(nX && nZ) return side == 0 ? iconCurveTL[m] : iconCurveTL[m]; if(nX && pZ) return side == 0 ? iconCurveBL[m] : iconCurveBL[m]; - return iconJunction[m]; + return iconJunction[m][meta / 3]; } - return iconJunction[m]; + return iconJunction[m][meta / 3]; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java index 42a24fe85..41a081993 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -46,7 +46,7 @@ public class FluidDuctBoxExhaust extends FluidDuctBox { iconCurveTR = new IIcon[1]; iconCurveBL = new IIcon[1]; iconCurveBR = new IIcon[1]; - iconJunction = new IIcon[1]; + iconJunction = new IIcon[1][5]; iconStraight[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_straight"); iconEnd[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_end"); @@ -54,7 +54,7 @@ public class FluidDuctBoxExhaust extends FluidDuctBox { iconCurveTR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_tr"); iconCurveBL[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_bl"); iconCurveBR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_br"); - iconJunction[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_junction"); + for(int i = 0; i < 5; i++) iconJunction[0][i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_junction_" + i); } public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, TileEntity tile) { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java index 87a1f6cd7..bed495862 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java @@ -11,8 +11,10 @@ import net.minecraft.block.material.Material; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.world.ChunkDataEvent; import net.minecraftforge.event.world.ChunkEvent; @@ -176,9 +178,10 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { cycles++; - for(Entry entries : perWorld.entrySet()) { - World world = entries.getKey(); - RadPerWorld system = entries.getValue(); + for(WorldServer world : DimensionManager.getWorlds()) { //only updates loaded worlds + + RadPerWorld system = perWorld.get(world); + if(system == null) continue; int rebuildAllowance = 25; diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png index 258a60867593a8bb5b8286f8cb9f639e68fd43d1..7c5cd06f89ec19d51b905a68f9ed55a84ed180f2 100644 GIT binary patch literal 2534 zcmV;Keo!j%kP@0ouv8&PyhN2kKvh&B z0Y!o;FHsaxXdm)Y0a{9*C=#Fm4}C!jqKFECswi0yY91B|DnVCWMIb0dZD^G2G@BjY z?E2q3=HdE!?Xf-f>`am#X*3?&=bq2U_nz;&_f7+`Eu4Kk(hMD%-iBrvP;~>E(S~Jq zVN(;9X~LpiSSE!{O?>fJ|7jp)+x2hq2Ewq1Fz6u&LIi&N@%*jhAVe7S5QaT$hCTG# zcKsU*XCIHkum?qxbBzwN!1EEt4GBUML=tQJ+U6P>M1>$UA!vq16bWI06^1q2&4%?)7uDw5F2+sU>A(3dH@^;K@b7}2oXROr8>B|mK>|P z4nhP7nqeUDw*UZu)~*H-NEQM=1|SL`sx~-ycP;Z<(+v<&fS~F|(op7xicI)~WB`cT zWO;CNEq6}k05qeG!1D_o2W5f~A@L)U2ytRZaqwj5H(AhHaiC?Ki^ zQJaJ~v4f>F2tYg!#B)F-2l~tm7S0+`zaFUTPecJ1PtQd;Jy6H^P}{B^NZKjW0|T8> zMP@sCAZ-KnKwk)YSu}?bgu)Wm*8Jrw0aE zr5-5K0BNhz164Lq4-9(p1i%12P{&I3K-H5c07~>gT`SZBoa<`=D9{7LSWXW_LH(%} zfSev6qA-*{*8>TsUpze*X}S(o*P-e0>{i!dQ8t^ks0o`=Sd_w{X2R#A`af_sOpaQu zCYr4l`v?MB0zr!qv;=~tASBmXttMK{Mh?Kpf}|-3ETAZ&B}!;XGFpPF3P;O4+1A!En@<8`e) z&4${b;4c5T;5uXs8DPB5ii}(t+>b{A*CAu+156J{sd3IaTIjjSJ5Pc;E_}~JZ!^GH zDk0}}QI=uRy9hilo`$>0kW0?FEO_9#@GT#k;{d>UeL=sJSuNLhP8Y70_cjCgmY-iO z?}Z^Yg8-Ypk4@jhrsrbQbJ(}A$&g%;K^6s%8P`GtN}3{zxL$=kwZ;ZASeZuI&o>;qEt;cV9d-W=T^Qd zN3$pAGePU>fwVO)o}P;wYC_gj5Lt#ONwq0;`Hep%PyV}SJ{}P%_U{AF{rEXimchX{ zuADm-nICkZXe#FBFQL=vz+ZT=kXV{W&Y;ujVEVtW!Cv3M^{dOtlhf7iPs@E>#3vj zHZ>t>3Uu?IIH+_>DRm~ifx~SV&iY+=whd8cPbOT@r1J*7a1AL z%geZY`Et&mpHJ%no6@)sq@0(Qmhj9WukgwF^~YjLwP;*|Q+nXhjYS;X?_%RlRu4?x z`U#E}=>dnDmCiiv&CB0o!Ce<&{Ncp1a{LR?FnZw0SN_3DF#xQ*J|D50>p6$6n`1Qq zSbX7$sLt;BiJ$*1%Z9Tj=NtVC492e6k_852o;+=J^+1L}`2lCOH(z=x>Tfu0gLwbg z%U2ozaP|DD!Z!HzwB?pMs`$K)mH8K0?rhb1e=Ptd{*?g!`0Qt*)%S0J-d@d#3C(y2 z#;!eBdHqv4B{YgP-hAn)h_CmrzJCMigjy*k%+AeZrS#L^{(T0_pTG0@sE!g!09-wP zD&p(?H{W>&>V$@mocb9$oeuPWy;`V*(1>zt#eBcu_Vw#fCnie42R<9Z++X1Hdr_NA z(!Ny@iaLaU7Z|(t44ftN3~>L(m2<};zVEm9;G@v=9f@)&nqu1P#E9_Wrz5H}kM@)oT!?%c1(-wDeutXzCCO4I3qul@M` wmg4(m4;(-#7x>nChR^Snm1dxy&+nD}AFYqz_xv2M?EnA(07*qoM6N<$g1rp1a{vGU delta 1668 zcmV-~27CGD6Nn9v7k@wq1^@s6dyaLk00004b3#c}2nYxWd=hRZ6D^3q?I%y zYfM9F4-C?1?z!K&-`sn@Gou0#)=!<-Uu!hj-rS&9sUfTiMx}~$+9=mSI&F>}zmM(B z4R+tZ##evyw*mv0m9NJgwAx)>dF>5^X(5!2-VHFiKGJpZyDrLgdF8b?P#qW5@i>TC z`GxgUC-z(IE`Rqf9~$X24K2GvtK9{lUNx!Dm8a%P$7cJcPrYiQHy(b3-=6y!07i9g zst!K=&8Kj#G!x#*Gtc5&X>$3Gzt0ZdwgC`ji<4)bMSttUI>NMo0Dw{@TSV*9dA2t< zB3}P|VWF1F^Bg<*E=-HorSs^$N)4fG==CpVW#Z$#J%17&aQWRGmR66Za^jIE0xXNm z@9v-rtAgGQz#VR2WMo2ky^sgdjGx?II`+tKx@jS-3c69LVsw3QM~S7BOc-7`%R{l% ziEX|1Xm9|-vM?%Dbm_E_?wIHq9SriMspFNjTN;3LU8Jd_E7!sAP8JXb8x=9gQ?7N_c=21*8}VKE-lYu8R}}iff<$0xBZ|F+9h{b8PPY z%45Vl)pco{ev-Q%Xbdg0OaT#3f9t|Js^h{!X)2;@+sV3DoltmuUKYmm0y-|OOXtxZ zT%CW~cDpPen&FGa=Bm?!TnN+oZ{P|D)6qwiY& z)aCIDZx8u_S^1xQHT-`D;xBJL`nmmEspp?Pcd-zUyk0fg{pcn|VNld{wD?muD2o1h zQ8&<{^I+#4TJ7$zCA*b+9z&EZ)*20p!eHs}9Lu!@mJi>-O6?FUiwoSfSYu`JFn87O zWc5gm)ulRtlAJtq7E!kPw_sKX(|=-nb0ZpgiIv(ySO0mPK>0XV znh4X%Z%Tz_(W}(LK)Of`?n{qADSEz)=E-fyKwQ`3d!HISazj1eC-xz^1;lk-(+xC3 zqz9KCJ*5bgB=#Y>1;lkdobBns10@NRM^E{QpU5pBuIrjGC<>7tTzUjj5r6nH@e{cP zBz1jY4onW-p98U<$h`_w*X7vp`=U)oqz3n;N8pEZpmF+1)NRQ?#|^!Jc_&)3&ch(# zgp1OyWE9+^=ZE`%>KqUdzX84W_Fu;ai?46|{P`gPyYFAayk~_Ec3T9>r{{-h4n_C` zgXg|aPf1>V;TcrN8+bgoJAa9@=~Ze7uZQ6UL(lj1==zOze>;w=+WM(V|NTJqzv%ry z?l}v*sWF}#7C%hd3KJj97+aAwn#lHdV@bq=XZ(~yc O00008MLXsiB}wgAg6F4U{J9L+1DpE!GQH;q_tj;i5%EID2t!9JEAAc9T+5YAM2p4dj=Ires zB146=2_o;~=RJ(p^m2{Wn!Wu)Y)4}|UB~b?UoYR*;*eUU%(!K;gx2pKwKzn`vSRJy z7qagsoF42vj?)AH=Y$Lu*I##OH5*J%S4ZM*mJG(u38@sPXKkL(%#PK05KuTFLRFl2 z6}moUM^-3}wR1mK*o zT4SV#k^kWlon1LMVRKFW{Rie&>UXZ`(SX7U+tGt}P?rAq0fj5QnyY@gX`eF{1}v?A zCYr2}TwPG|1B4&YH-^47^o?Qh-3HHIyyWNc5tqMGZXMd^crNkDe&b*4Z{hzzE#Nx< O0000xT?l^&%E+DUz0*Z8v`i>Qfx>e(#F8+ z+xrCIX#}ViR0<-B>q35#{^y0|4h2_W`zBL=@w^NAd{(;Og5DnI!iqwFc=kCWYp#gHfs3oOh7E1_x~nR{;Pi{Dnw+=s^krk?VkSPL98jVuMP#P#91wrL_;i?wFxcAJLt ft~(CczfI#0OqLKgD;uw|00000NkvXXu0mjfmdu#6 delta 396 zcmV;70dxNN0=5H?G=FVLL_t(Ijm49(N<%Rig}+L2Tkox)bn+ck1gDOLZZ7T$I_W4l z`vN|IPvBHXp#>K=2c^(DxO5VsAk{%gZf@>PTOHa6YHfA$K$hfuCkOH;$5^$!%3HZw zrPFRQj7rEbB8ZA)vBsI0EY_^8uhMBZd3x-!bAFox5I&%%Eq{&6D`X)=I)$(U0^27u zhQ2j8V`yAn;Sz&OQjd|V?N#1-+Oo2|#9!1?2|aC@tL`2k=R*L3;=-?1`RD}CiB`Ra zEQG)SfPAzt`}XS#I_)O15F&M z2%;i^?SuJl%70I35~QP75?QRt%mjL@RI7>mo)gZ*^zF|9BlGtV&xz5b87NH6Ap6q9 zb93d*E!>O-UTLgIW5vq$A)XVhdJUHtSj_(_B-83+4qRdoPmkU4Y%j5~e@y&vPxtO- qBJ9tbXQw>t6qlsr{Nca-#&_bC_`}XmB8C6}002ovP6b4+LSTaJO1-uK diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png index 9ce5b34667712fba6b56f244a82145e6d104f073..2424e7f1547203299aabf8d32d35cb2c5f6afd54 100644 GIT binary patch delta 275 zcmV+u0qp*s1HA%}Gk*Z|Nkl-*;f0Imy2 z2a1CTA^w(^eVlT^(pmU76wmXJ6n4obCN8#gjFu@^+s*uUUUv7g58pmt~@kFh! zAwlQ3SvmxDNYFWEOYId(8BEYPZf30y%08H&am;3Doj4}w9Cu4N(?L9k1f4teg@5~v ZA3Yy!%@UyrgA4!w002ovPDHLkV1jnjeOmwk delta 372 zcmV-)0gL{<0-ghqGk*b9NklAcdC6UxyFx)c96D6|0FF{z-5gx} zB#tg_jv{pMV+eu>#lgj`LKO<-94t5~;$Us;q~0Kis)TWs>|=->4Y40XlExZox5M=9 zmGpf=5-WtP==sV0_8GO>GQZ7J?;bzPm;%lTsWdM)=cL`vpZMoEC#2T&A0An)Hx|YK z&IzG(@nF?b0d3BSKx=|1CXCAkI47(zSS83pzf^#8;=3e1He4zd;GD>f!AcJ+OL?3V z`Pj@G)^DFJ9#A-uf0}s@{485Mpm5&t&c-Z>LRR9i)D?Qq?<7%(=QjTBH+}(#2fi1s SyBI?0AwT+w%L~Xl&0o=;7{q@4RQ_JarKU`&Cr1=bpDc^LEZYi>h-s^%oEZpX5|OK)Z|gUwFAIaHPZEylSf%=kgmt1(44FwHLoYZeR>-z z*v9Z9AcfOr08-f=dXPdu)KDJPo&q*r#DnT;F&_8UI|wIa$hcpZlP00000NkvXXu0mjfdL^VJ delta 438 zcmV;n0ZIOZ1KtdUwHVvW)oZwxbQ2*wbsAymI=fAA#&5P!8nH;uXb^d;r-n9m>I zBXxpGQhY23W)m+XcAq?>JRbA*^@|!K>OZ`FJ}oReSFdp6<}D_pA>C`+s3fD6X1F59 zmpQ)3>26~H2^2$Lpq%;nshQgq%9S_{pZx2I2iPiu?FUi zV69e?0WkgahJVRuh>SI2k!&GD4vTy(tkUdv|Kse8niEnd2s;PUY@m{CWhUJMVdn^y zq$oQB(-1pdg#nbCqwEaf%K~ryPP?KxRn3WDN@jM|z?bXaq~?S#3xY8aFTrazFDD4b zu+h77kFb=$mHDN$v-g;q69AHMDYn$rN022l-4394PIYtL&Xh-wgNxPOujV|RCZ^CZ$Rg%Q`jmAHEpL+y037rk!M5Nz9;wx%wQ>b zLH5?7lra4oQN6|thYIVSwqM`RzJGuJMotN159C}BV+T|#_#Z#dfBpwNPZK#sa*UW^ zAkPKauLJ72|9=C=i8)4cir5#|b%3$9s(ljdB0N!2WR4Lt9LQ-#g7>RsRj^BNjuZ1# zcM#mM?qKu|)e5aXseK7vHAsokyE-6vhf;z$Tvw|u!SPg);9PZK^d3Bj2AAM@ zbs_j;y$8X2M4EcTHlM3dCB^N`8$3nklvo~fy@``|TxUr`t2MztkW(VBR-G){da=Se zMdmQ`SQd7tP<(p#`pFCyV-J{NP2+GNxMNMDa|C}RxSGy4@4x(=#!?naUdXwS=e5#& kUgtu|3#BYPmSs!hA7E>4``Kjeq5uE@07*qoM6N<$f_J&31m^^hGk*deNklIHCf8Ze zP+HjAS!zLNNsJW!4cdz#F~r)O$ys1=jYMNa8WX)8cIU^Q#qNO=-XxRBOWtSZ&G)@; zi)QWb^rvz`BNL6(8j)y})>vckg~1tvD-7GO(YeO5X7@nC?a_oM?w)darp9? zvq?cD7c~9BfJiD-pV5DD;d3&CDyykY~0M)SnU#=WqbDpazP_x zq8X2d&C6|i*?%HJwTYD?R&8S0oJt{7n{PjU5}YSLIYuU$NNP=$W_6;Fb75~wf^$^f zHacm9NHkKX7k{4%TT5`3%6p_v5k){Ktx;)*SSVs8=fk$7a*p6ED(#>OkFdsI6Va$W z9}dnETuJ3THlJXPLDWMM*R7IrK5R>Zbp&s5CdU^B;eU+5%GMPP{tsVjVDkyi7$R2~ zZf|WiLn7zG-j)PkYcP296jvC8J2#9+L*ita_@d8sQY~0hwzCafQu%rg+_|B(cmK|` zo3=@A-EBnjRK6~=zQhy$jlHLGmaH9fmY1|P zWQteCXNpg&*}HuT00MyR^|g`)I=_1kf?=;)zJ4T}#1|y9DQAPzxu*UoCYen+JUV7| zc?s(}0wlcOU-R<#z>3(pfchPP>j>6G0>Jokvd|20HM!wUiwY14#)3b7>s{e3I_0sg5KLIa0jV+5%{FVR!002ovPDHLkV1l7SlQjSU diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1fc103ccc09a631828e966418c0bd7424f5a39 GIT binary patch literal 511 zcmVL5I3GbHLGaGhU`N1&XGGu;pXIS zPT?Gt2(^?{Qc{ahiO@*N>E(3<5CN>ujyr&vF(jEG%`y^W`pB~WY{-pgsWB{`tfJ`Z zeAzWpVv3x^46rq%nISQ@hpl1u*Cna7RPvMU#}CX3=LlX&jA6NY$8NWyegCS5jU~0i zZY=T11-spj2Vd6&?;AZh?FT8mEn)LBY zLZh_aQ;Q553==l_yr=S*Z@njYr4k`ppB;A(pFX2-_a}i`)!wQ>?Wygda!^I9n&~rr zd%Nmd?UfCx(_wuScnKVDO04eP{Awg1g+Eq!|iDHc4lY2vzWcRoJtlRJ3RQjdGmeW*W<)@ zu(LJo8$)gi`lcW^hRRyTwxqHpV{56b<<8Uhy&037EFffplmeM{k)?~X6bP9h#1g{1 z(yRMdrZQ8cS%y?9MwTHnMXD4sTjWxuSiig11Lz&>Y)yqsus=rhbB)xBG*d{WBditT zM3Gc$D*KZ!gLkxHg6JEAl!E%#7^xMP9zJI{93tL4Ce<3LG^x@g8`}(rL)JdMAb3x1 zRtcdc$xT6C6i5|s9t;NT@9!_cQt5d!KyeP;`f#{neilk!O=RUvW!r5gw)tc+| z2d-WA93MG?cbGG4gr-I0#zeJeg6V(ZrmhLDrg1f`cQnqC7pnx{AS!FSkww8ygM+JS z>exY5j$#L6TOw0Is%C1R2G>yo?-|>Y(6l6#Evd?KKJR2>o3HD){()C+?$T~PAh?>~ z990?JnM8YzI+HA>@b}HLeA7*#vLnXUMh%2WqQkW2>hU2L&pVEfTokN(^UAkJY4e-6#nj*H#@VFWcOB!fLKR@X>5X)LC{XpS}1ncSlUX8 zbask=!NN|EfK5tC6^xaFof2G(mmSUA&g@%q7JIjs%Q`U3o5y_L``(-PdbqR>cDE-c zNf9S0Op?G^i?J=>Y=N=0*m|+wyZF9;nSe-uO9r4=yO zU}jJVpip)Q7UX<*dS^mPfs_J85hzlSN`a!ePb!7g2RkjUcd)xXArc_1aq|5K;-wg* zbOY83;sS}(8qWSfkspK063jJ(Nzx|A*uefe0V$2^PhKO>bHrcXKq`&?<`8+Fn>5887ADhi1ES`761SM07*qoM6N<$ Ef@xzKasU7T literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png new file mode 100644 index 0000000000000000000000000000000000000000..02c08f0fc9f1c1e5f48c8fba65441fefa3ab2243 GIT binary patch literal 509 zcmV>lX$rj`%jr25se)GL~^9JXCNl&Mrv+iN&2?ZJ1cpCDRwc#Jycs%6$zo&pqJo2x|7q7 z4=z@-43k;%@dJ#_5SwALjK3E%Gz5zMF#u7dGbqXuNeyPW2Y|8b zn=^Kvz2Wz4#=-PE8a(R#wSh>2hDhS-8Zil~ZMU$-wi%PtQznxMuMY#!do+05<-8+s zR~^Bku2u%x8EoYIwE4;7!$9;6ZSX|zan*eL4P0Fzl3dq$^zdLK=k8D&Jh9m((56AP zy<5iV*W+b}8_*T@8ec=;#m8^kW$gPLzdpZP7Nar6{up;T$5nIO<(wyPKmA`X+(*5= zpbJM7K_uy3d*RTg={4vj(Aah(#G80k=G*!Q3mo9^a1^;q00000NkvXXu0mjfJsjbQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6d74263eceedabc92162a31da9f695473454d291 GIT binary patch literal 412 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 QWB>pF07*qoM6N<$g5|652LJ#7 delta 1421 zcmV;81#Lnk>%LG2r0-0Ua7BB^^Bkv}MkeAtXx&hivUqn!g|&I%nu$L6>YH zoeoUEV@U`EYbl8@woaD89s0fZNwR*~%18M4z6S&nzUS_F-+$BH`2&bw)vJk4({Ouxi%zEl0I1b!SX^Ap z%@so6;^G3eT7M19vMhZ3_z?i`^y$-F9W)vZIF6%uJ3BjY90xys{K(|?dOZMuuIt#@ z*#Wa{8@jHm2Bv9dcG7OQ!8unvdVcZZMJi7Sq3(5EN4wnyt5&PHzP=7M%*urC`v~%G zZf;Po*HbwZIl(Xt+}zxNRVo!|nl?em%EVwWP&|6$lYbD5oS+7*QTO5QC5JKS1n>QeyloFO@ zVQp*uHXRF~{)?EG5P#LJzYO1Pn&SO((Sr#0}!SV4iTCG;7 zqgnYOKk)M9OK{Fnuh-S~+UxZogg~#?!}9VnIDhA0jK%taynNSnl^>Y1EK8Nu%gf8u zl6rZ0iKV3_Y;A3UcvROnHa2qc8T*s;L_d%Q+Fob%13{$vfj9)W*IE2P6q$Y?h`7Qs zjUR|ZEhb4-< zR;z(?4gi>+p9fY z6nlGn*xlVl{)L+WUDv@m$Nc;}G)=?G%8D8=_)gIM)zuYz--qKk&~?4IDK!iO)oK-t zu~4*emy{Bo=fU@VaL!>EM)3?#T`!l*69R&f2Umda`yd}uSOC@asDS9;!DZ*aDecFv>G(>p+Z;=wXN0x0^p!Gi)GECW(Xtgf!A zWf+|E=-|OAuq+Ew%Hl7flu~&CP1A67bp_A!LIXyx;cy7YaV7!044u|l4AHMHnG=Ca}?uWx60O0ueI4t1y_EtHYYPE{NV1U735Gp40 z``z8063}Y3O08B4&1Q4__U+q$-}iyS?*QTCa@84${G$dei zb8~!ue~+(Uzrt}GeE9Gom2h-)1jli(zrT+sPoB&iIf3cAj{E!j+@IR09e;q_$NEeG z0Py9@mt5cZzJ2?KU%!4mn1H#olW`V`aFu{*&vZc);VJ=-o`GqOWKk61Dgjyl6{MjE zR|$CZ3{3N>K8hmT2?0k(N7&xp&LkWh9N_)?_YWq3ML#moCXXD)-xHq)c zNGaLvc1ZP*kyI6BS>7eC>l%QMk2%TIA{V*hL8-d{#{9LOWhG_dk*du3P$n!^t2f0> z)4cjG)0kzJBa0$uk)%{rbyKXhzRDG4#W+pKSSG|t%Ib!L|2tm*dCoKq$ityyjPu#T zTTp;u>@n6MoqunM|5?sUyfqSlHJZ*jWamBU&nH3%vz^7E0mKzx>yK=oe<7WBES4$# z*@aT-RbdE$sIyl9V+|DGV}91dkz=^dYpv1ymZ)nzPqo9H(pf+dg6R~^ zI_P|h{QB*?fIrtLr9=op6rBaWX6!vv-_mP~^#jg1yc+lKca6URU~c6~9y&_u00000 LNkvXXu0mjfqRGXJ delta 352 zcmV-m0iXWM1B(NYG=D-#L_t(Ijm48OiUKhdhCi1;5+$Nmc9y~nUcu6K3c*`=1kd1Y z<_cN`rm?gUL|Y${Oyw548D!PPt@f`%lJEat9xpAvwOXxi)9DoNJ;ULUPN#!&4iVvc zy&@uv$78(roK7d!>vao2C4=2=$9})Z7{lRkKx>V)mJkAUU4IioV6)i}V8Dprb3hzCm(dbuL zM4ENtl(m-Q@yKK{c`G?7aY}35bo`yshxa0VJ-eKx_S0^3MuBVvH;n3-UaF+N@VfoQg3vb1)bT{$x;9)mH^& yS)!DpC<^jCe+d;u!E82b49c>kl@9;yH+}-v($;i@{IH||0000)L0M{B zQYFQfReK-mWLw*q40c}xr+Z$#;_f1*D9duZ%NN`%Q;H%Z&oiqia~C(^8- z4}oT{|0*hq;=DppQ2+Qw9|9sx5<>9sMqti~ZyxazCw$+bv^o1&(=_jLgE1UAp_Sxd z&I@htutO8uTdtu@2o5mHLpXUFYj z?WeA5;B^w)XE!;p?o_ZC9MK_$nKnu(vDPwJhd6FkdH*nGSAi#=QoM{r@%K})QVOj# iT5F6kSZn{^HvR%GSOA2uV)NSo00000e$L|>34$BG<@E;rx~6d-W{Iy#P$GjI~x zT!GFKjZ2y|p#!YMjwsk-*GMdgu+@&_#(!q~itmIUm1TLG&1M*5D2jqC%g|cmoTF`9 zoO4Vj6O1u5O~YohNdQDFu-0-o97xlYx~`E@qLjjWPv7@=?|<3tc7zZJA;cI-S(Z0z zEz{|gzvy&2VXbAfTCGUa6o5R>KRWC6nwS$+Rox2!wAO>K@ArF*G2aD6QBc?QgCWoJ zw*}Yhm6#J*mLa8lG7XV*U5Atsp|wUS_0sf?r0Y7AQV8c9-h0O5@k`_7a(Q_lbE0iq z`o4dQ>zsSKi&MEf!H|BF#N22;pFeEY5Q%e+#bQCsiK?nTE{G&?4?+ltrfKd4%jJ^e s@%XeCQE|TAZaJUNgb+yL@ZWyp7Y%si|Nbzgng9R*07*qoM6N<$f@HO*;s5{u diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png index 6a7379597d9b302c5f402eef52eb910710d8fc38..f309e8de54da7dda2d0a8b03fefe915250710ce9 100644 GIT binary patch delta 400 zcmV;B0dM~50=ff`G=FhPL_t(Ijm4AAZks?9g+Igqh5=^4R@zNp$X#{YXY97iK1`%; z+5|k9nc>I8bkQVIqPlTcJ-d6a&Zl#wdjlTz`P0W$W|Bf?$RZ~!cI+}iZym$n@y=mw zj~_?8vwZpbEdUTtfH1GwXicURN^6u-Xst<%!QX#p6Gu#8%73~V=5c+p5$yN-b-Ue? z=Q(veQ%++kX2U!JQ3Z|BCPXdav+fP z@5yYg0(4!+U@c;Bj;@WE!tCn!0LB>Ze%>Rjvz(HGvg_V^)-e4l@TxxxVdsoxpjX@AJQX<1eMsz(HoU`s@Gz00{s|MNUMnLSTZpT*%%4 delta 319 zcmV-F0l@yc1L^{hG=CvUL_t(Ijm48eio+lng};EHrq~v8fb50zGJ)QrSL!X&Gh`)% zT%fB$wvnJ&wTq4}24-kxGY{Md-}CwVEcjB}woj!LN-4C~NGZ`;6GC8JS3(HH81w47 zt^g3pz*@`Ya$%Y#oOA4UJB%@S?^%`w?>*=9nQ5B1Uaxdr2Y*1(w(Zke%kg;RbUNXj zqiGt9G3@ty=6S|@&pgjmRfTho5CY>kVy#6erSi#r-&5B$Kk0tIBg8v&;)GI)VHj}E z{R)3q;)K?k$KyfMG#|qNi4#)FJg_ZFoX}e5fo)A-j6sAD@ZM9F-DaU#Z;dyq=0G=FtTL_t(Ijm48oa+^RDMGv^ad;~PeRd!Vd+K=|2)oLS2Mu{cF zr$54&pbR8zISS>>a%X+3&h7i^bvs zz#lB)F%2oZi0%q_70HKyyE~T`Hz3Ob0Q^A{a^^&M?-52ZUC*orKPC6Cot$68SHdVp zEKm4D_m98Os9J$PBcx! zQQrpCbv-*0z{H8VuGu~Bag+Bs=Wl*j+qUeU_vZ%V*fVXuX_`;rDPSD?bAwJ<9x~ou y*}q6@O{eUofw7;?{HKgDjK<bzX2KI)9sekv<=k&0000U9VRXWw%-msqto3Jyz2ar zV6j+`W!cNl0L$eP=NwsGk*eTNklxeui$&% z6lgE%q9~d;aTD!|`k^RNyPFH!Lfi~6IN-%Mn1kU-c&goQcP@&8qA1vGHf%N<%Cf{- z%V{{^hJn8CaNhIx$2~VUHwl1v9&*kO$86(;4 zcIWMO%XD}^sFXBSXeALB7f6*7WR6k_r4(tJlBOwHmT`M~OI_E9pD#74s<30j4{zU+ zDTz{&AU33Fiq;yX6k6-$eRp?9RaL0jA+o$=Q!KpgGeQbQ_3l@)-~U=XE^EJegE5Bv$A1a?nh*oY*m8;! zuipK_JO@_Zk2Fp5J^anuC#eY`5W+;9BXOQ-ng-kUh<|=?m@gleQ~lqwbBSjcAU55~YEX#QR=WoOi@IDY?r0WNc#}i>b!ZGr>pOzukTDq=7 zJg2HG%kvVV*RT1hEUDy)Ca$p7K3?ict+iZVU%yOaUDw1Ik)bDc2N)~n+|Um_ZPT*f kx9rDA+qQIFx1{ka+ly>J9|fz>00000NkvXXt^-0~f>>8Q+yDRo delta 476 zcmV<20VDpg1%(8VGk*cRNklM!9yUOvNNj-(P)1@G6o{HN zumg6HmX^+C3JRo%hSXLRJ4WIb?bgd2O&rH0NrEwkrfD$7uzy~!sq32K@kmh=00eoS zKeH@DYYo6;G9e5@q9`JYqL+G%AP6YSl2A&?a=Aon&0?`Y2=ReFT7N&CPV9C&w%hF= z0j)KY$pj$;v)ODQjC<18RaN1=r><+Hl>8{Am`a$YX)w1=d>9G#$n`&iqauM_8}dSZfKb zwP>w}9#mC@bMA%kj;`yd>l$kpHym!+l(LT?fE?KId|| z5cJEm-|wIOm!3|iUzaIOQ?%CH?{^M|!|OJdWy$q=MM}x-cKf={=ks}p)}LRmc5sLx S1#`*(0000)Q diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png new file mode 100644 index 0000000000000000000000000000000000000000..62714bdbba21e231d03061c2232a712c6b00b148 GIT binary patch literal 598 zcmV-c0;&CpP)rrGa|Xi#O4NiNVsAn0=YqG1>J{vsP#!1H)LPT;_Zg4JeEs~9#d1Nft?^aVt}mRPo^pJAd@FqOyp%0$ zu_SJW`0Y5VpL}+9#?H>pt*}yxZnw++{yxSS<_>fi;WwNA1n$bLl)_qzF$QA{&N-ZO z#O*eI&=9rT>%c`()N3n_@vSxgxxFrIt>xD|#ZR-GuJYH0t+iNdan51V6yIbSJ|04d zwcu4;6b0w!7x-zGqC<%;4gG$fD2ncc4-O94+uN%J%F?m%@X52Ir(2J>*Xi*6=LN&z zknQd5TQes~!f-gmTFY!UBVSZBk|d$wZy=Op;pV)2@to;&dR^lU!-}F{GMUubS6}G? zynFkmT9!-FG$S_-s*Hq)$07*qoM6N<$f+7(b*8l(j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png new file mode 100644 index 0000000000000000000000000000000000000000..718ff2d9ec1078794eb40202524f2fafab3d00fe GIT binary patch literal 697 zcmV;q0!ICbP)loD z8Vm-E$78OquW`5HO{pqRWUaw_*P!RHF^01AJU*6`RY_S@_|lQjmjugV#k>leQ9Xx^F}P4+ ztzosYIPaOQ9+?%Mz!U{pmNj@V7?7qZ)>>?K^8-7_-rgQ>{(6gZ9;jK|T(i8L5KQKl zJkOgY`Sshz80=4MjA`nb17|G{Zq0h_iRSY;aU9d{_fbk=jA1w&a`*KgidBgVBAj!K zMkAC`IOq8HyJ0)Xm}TboDjy#o*VbB`a|CvdFUuc6sw1qmc<*t}HTV4dytR=9fWyPX zT5HV<6{2;Q?yEn^vWz^>G56oF&M>-PaB_0;d>W_IDY0Kt$~NnDh4+?avE(N6n1?&O fTQSSbMjHPE`A1vbK8y{J00000NkvXXu0mjf&kahZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5422296f6648bd20de405bf520d70f8f977f0314 GIT binary patch literal 673 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 P00000NkvXXu0mjf7^?*1 delta 1388 zcmV-y1(W)X5%LO<7k@wq1^@s6dyaLk00004b3#c}2nYxWd}7=9|DX>+W#6>2J4aS#Woe}aNT9lLdN7QqgJi-Y3kBsw_PL05;n6a-hnDbQJm zT2UGlYa7xZQRp4K@A=Z0q_OdG`M&QyaA?}*Ip=+!oO9kMCx3un*xA|XE-o%YQ549s z48|BDkq9(RgRbk)G!1ieb5Ilo)oK-ohlc@}FeqQ34r;X;E-x=3NfMr(o}lYGZ_Q>C zx~}8$@{)hIVo-iyXJ@BdtJN?wGxMoaH@v>SqE@Q`0AjHiMn^|Ib2UxF^Yb%eu^5D0 zE{C(TGXTKI$bX2Z4zk%SR8{4?d_E6VRdIcN-Iv>FGynjMG34`k2*qL%k|gmPB9Tbn zPD-T`6h+}Y`aV59?aI?MjbBTWgi@&lL6&7aJw5f@*iVVKw>Ox1kB^T?r_-(+%ACL$ z!{g&41jZP2T}P|c>baqx5;U=>Gq?NAnG+;Q0%Ht9B!3dI4FGUg!W=*(5^=oOnmK`j z7HFM1!Kni?Pt&xXdE_Ml+8YE~mw`aQ@n$;-&Fh&uGsEj6AS16DK| z4ZiM)M}Obr@wn%HbX`ZORKifTTIC94vsui~&pVQ`*(@@d46d%OK)hzNiDIz`K@dFi z0dO9ldH>sLIMnZ1{cdmtVzC&nYKo$Kk}wnsVSRlas;Z(;D17Q@P=1deSXfwqq9{nG z(|mhvG#bz}4UI+vV`F1b6a|7H*!lsl{8p>Q{eQqvE|&vi3;<9rmt9M0xm-p(9>?nH zDu_pQJ(J0J;tRru=#GBC4Ya)u>Ickl^#gV=Z?A*+0W13Y0W<6h%UAq>9X$B~z`3w^ z^#e}uMw8?l?pj0X$u(`R}t=H>FrBa^B08p>jQLonl0MTd^(P;Eb{7R*QXf*nd zAK2K~=rYFm`lL^DIW>P43Wc6oJ1GCpSHr&w(8a;QLH8^5d~a_rK$*v4F+4mx002Z$ zL@*fq)aZBmyuH0etyb%`WM8T01jZN^7k?K40Et8bi9`b9mBuP*d1)?ZI6h$PHNrXb7o)!*=`Sso19Xg#3R8@r} zN&ZbKV+^t^b9t?Un_IixMyJz(VHkX#_zr+(yIla`aF}P`Znt^sbUJ*c_m?cx$jee&IUwL_Z%P`A0IoP^SK}Z04pmi-9g9~7Z(E!+7rOW#zyz%<_4#yr%+WD`}_N@grlP) zsH%#stu4&X&JLV8L7=k%uSack9{_%?;41)nr#m@0@pR7jTaCrcK6`(ARj*hUlw$_)hySt0+?QH?yLWW}00000 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png index cbfc0f89779f381ef29dd409f6b202002c9f0ab4..3f9efab8e592bb716b9fb417ea68ee7d294356b2 100644 GIT binary patch delta 269 zcmV+o0rLL*0=EK?Gk*Z?NklYZ!(zgaBqnj1kO?5CZ0ThKL~N3=w(H$8qccfD|xI6Si%`x~^E3 z1+`YxS|K7Rr96hJ>-+vpDdF{cp;g*NN(tn>M+gDl`zCYF8GitvKJwm!nZe9W$tv}c z_x^ooEy;I4jPa*~5JFS(qXRX^7@Lw+>LU^PcmtoH0H8i9r9ea;3x3-Y0H}{jDR9o= zIF6>|JHR=20j#w+&$B7{4zSi<03yP^?@h^f01;gPW6YnPvI2}T=(O-}zwrx#%D!eN Th1hZc0000VG0{jAyGk*ayNklJdDH zx9O?}a24n!iejN)NVd+xNhvdvjkOl% z9M)Pkn+?VoE|&|Z(m~gQBu5A8DGhSS*+- zYb{;Zk)|m^DaGM%;Cj7sKA%6D@Ao?Z!6&4YG);pshV^>=F*zvsgi?yOZP{+Olahmi zPe>_;8=sOqCQwQ}3AEPC=krO)V*;%;BD}Gb^4F$UMS-C=M0n$$nD34R480+ob0kSZ z9LJNA#{@}|FiZ2^QxpYRmi>8I?+A*bcoKv@ST2{73k2WHdrwtW2qDPxoGi;;n({nn kzuyl8RaFs%#ee&aU(r$AswS?o2><{907*qoM6N<$g8O!!>Hq)$ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png index a18dd32fce395c6c5f0aad1b6a093601924356a6..ecb91be52e86ae5daab36cc8cbbd61eb956da387 100644 GIT binary patch delta 272 zcmV+r0q_3w0=fc_Gk*Z_Nkl&2^<>ZI;fxodqNa-QPO5!$k zP8|secG=OVT~PRz_x>g#u-3vk2Wu@v1SuutoDpM0&iObm%c20l41*8?dhckhq1FnL zAc>qaN-3u`q`ddH5CZ0T#wQ|)5CV*dp!W^{aL!#e&|0JS4u4~$;vU{6#_%X3X_B#Tb8#k2*8v{7xyQ zQ*6|k7$Zt4&|1GWc_ldv#^y@rA4$fGG%2Oa29G2pp9wxuN(tMxp_BqOg8%j#zW_I! W`b)yHGQt1=00{s|MNUMnLSTZN4tgB` delta 330 zcmV-Q0k!_R0`vlqGk*aqNklk44ge}wPaHwTB`g4BtDQA?Hlq5T3RaJ zuoB7>Xh0MTv78hsa>bpIq9ft1x{+M0?HP@1ufjK+bB`>`;JrtZB#5F2)>;q|m>EQb z!{Gq$J^H@K>2y*6phX~rfTn3+jKMgLVCE&R*DIJAP17uIfq!z&Jwgab(-eQfG))L0 zK%LL$M_HDL;~4w>{#WGV@rYp@MYstWTwf6Y#c c|MnX{0WOgTClB6iNdN!<07*qoM6N<$f>S1!>i_@% diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png index 304d273edacb2239ba07b4a853c3ab4b8362491c..9136999aa2550eeb2e41c19936e342fe67f0413b 100644 GIT binary patch delta 239 zcmV1pw7)GB#U?U+bA_vF`oI_udvSEh?o%j1jGM)&Sv@lq1HNH9$BeB`M1?+n}nd-9Q>P zj$@WV+qS!b^fEw7@~*)&O%#{Q<>{QmIhS>X+wF#PjzTv6?Ki#vo3X;bA7%_Y00000 LNkvXXu0mjf&zzB5 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png index 2db7357582442b8c68ebf2766d0fac8e38fe0fa3..704acd60ca54374d1820054c6a2c7f1529cfc02f 100644 GIT binary patch delta 288 zcmV+*0pI?M1Iq%CG=Bm~L_t(Ijm48ej)O1^MIR+9Qi;R5_v8jWL{G^AlDGvSbrv1Z z6oD9a^Q6d8WdH9(PQf>A+rH|$=5u-PNhy(YUakB6UH~`~XqpBQ!Fx{#0q;E`!sT)y zr9@R#oX=;RbChLiWfZsD?bY`^*XxxK0wS`A!!QtITtom>rGM{xoQN>bGe-#_08o}C z^E~6c_e|4ts8~dPTQ3TxX~KmN7{`(4^LfbGIGs+6av5Q m&c@^MAm>bB2O0nN8@~WlILuqv;U^RT00000eyMqiK%WXF+!h7NH6xB?P~pyL2Ya0ITB zW8?<3mbgJmB8mh@HU&s*v1>NVf484xjb;1IjAq6WKUyxA7o`+ZN}AR=hxh)@rfC`h zh~S{p>9AU@D2f7O3`!}q*3@;4bB=bq&0?{jC<@Xv4H(gSy??%xWyx?jWIP^YjA1ky zp|vJS60EhrWHP~f|L5Y}nog$#PGnhzbB^=*{8421 yodf3_Vz=Ajy?@!pTWvNQ4u`{c?ZV-|{l+hmR1C8forypI0000bl0IWVbAR0LcPOR6+O~z15=toy z!?3#~gn$qNbzNr#LI_OL1Suu9ZF>O_QD!(EkH6w{I_2{`&j=xah!8?}0d!rLS>FMq zaLyrwfDi)C=QF(b|0^h&opW%`!F!JwBZvsrTCmjZ^uE7}ACCu|bBHk_#t13p3qWg) zrfGHn@0d#kA%6s{>k6$kK8!KYT4$?%zPV&C0n!I!#+aQ|iTz!1YGRBL%d)^2^R1wC zAr<~CE?w9uV2oiH1_&Xt&#Bwq`z$*}j1lX)egjlh17l~UNYEz7so!dm<1IH&aq+!M=jB=Q4oK>z>%07*qoM6N<$ Ef`v-Hn*aa+ delta 453 zcmV;$0XqJ~1MdTnG=HW^L_t(IjdfE&&ayBNeHcQa4GUagG0K)(a18HY0!Q!+-hh*E zhMvHUCMGm4Sdb#^#&7Ze?T6^sH-c0Asc=&&+s(LZTKqYxqG=jSgI876D}PB6-0yb)03ifH5PZOX zxAAhhpznLE7-J~Q5&)2X0rk399foOyWL{9+hM=oBhPc>c@AR?>beGF3_hh4 zLI@B-KnOvWWeCIY4N(-i=j-(ftu>^Spp^crfOGE3TaxFPrU_bW7-L+YR<_&U1fnQ% z*{5l8&{{jEe1F^RrNF%GX`1kSKAnIu25}riDTS3%3d1nG2`tIW?8X>p@5&BG5CmWE zyv%L|>_GW;NS4{Zk^iiqC<IhXMEf8ImO#M64pK~Jth%&HNJS38gl}}tYte-Uf7m<%;NdG&o+_MS_POMTkJEf ze9x(Pp;WdsHn@v};dtSO_tv4IdwD&|8I+td*Rm$ed)}YcP#U{)9XCU^uB+0Ci5&qd zO)|CZ3dd&13M4NHxcY`6^shh5z3N-r{$@zEHST*~&vD9Sg48sxPt)UOuUHjdv24qe aeV>`dV|v1$Uv38Zox#)9&t;ucLK6T_V{fJa diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b519a48da1497327baf679e020a433b2261df794 GIT binary patch literal 401 zcmV;C0dD?@P)?N!{Mqtk%2m#Ba z*qLH~;ZNLM{|7%mFieIw@8yL_48B)g*S)nC!*I?a#)y>CTQp5$0Kfpi`F!pHpsFem z(Ob^@VNFCh9*@SIX*4c>dqt+fyl5D`wN6G8~^ z-WTGKwApMBLO=)sA_8kIX4cx$(6%kE*XxhuAub|gfqb|7{f_l|{Ue!~v0N^(-|x|N z9aMGfVA?#byRIvtsxJZOTygLTSwu>9&S4f~{4+W4V~m)klt$zGl&q>qDLn=9Bl(1! zYY`a>82+Ty6VoA=WyjAyn*xrF2r-V_8#ut zDM&>qw39-UMZd*I@><{Hy}&R@$nQUsOvb}#lw~;xAz)2P31)^;YGQ}O!Ly7%7D&?+ zQc5IA0x2cpI7SpjU}g{z!Z3vIPY^hz-EKF8VTd3IF!pvnUWZ|b&1T~PfLE5~kftdf zj|Z|Wn;aq{5D|hPa2XI0?)N)huNUgNhHvj`BW$-@R8@uB?KXk(JV#YksHzHDYe*@f zwZ=>cfh0*>)a&(%%jGhGiOB71t)aC>k|Yp9{1+H!z|1I$VgeHp7K;Ve>oxkmhcO0H zN(dp~+t(fgpK#yz&WtfI#vqPkbX^CZnGr>igMNdx*3P$W3ueYlDFtSBrTPoDbNj(& zN+~o=8@%jFVUYZznDG|iU)Gk>eXXXMW+*bIE76nx)DmSryOqA2iw zzhR7VLeJ+DMC3AP+ZIZxudjSQp9iaM4;f=7>#;wbPTr&!0N{8$4xi0rU%P1JeP^0v@8PUZIERva5n8>7wf%qu{Cs z=t?LqG!c@3eyhyiTKEToc{1;1=4BFK5p`Y9LI?;UAf<#-3R-Jg=kq!E%#W4=d7dN7 zGDs;bb1=r1>AwO}N+M@jM*pX2!aUDE0$=5vPN$hMhB%JF7=zz`V#XK_ zhXe6~x~}Iu&mpD6^Z7(k6kv>ja}Lfq;y9-AIp=u2UI@bwN-1<*he!xPJ^PdP`#svW zMccOEoTDsD!q!@Bw_Ai^2xAOF?{=D|bV}1SxZm$og~!%fSZk4{DWsGTLLmAy%nJlT zfU2rUV7*?Wsw%wSZ#d`3+;JQcDW#Ak2>_5`p2#_eF@~0N4$e9BeUD)npp-(WwT4m( z!!QuJEK96bDeUr^*U!+ zMmOUP^WWp~`2WYGltLJWguP+D=Vkl|bX^By490Q9IF3Khc^Q9;1t^)r^Tav;0000< KMNUMnLSTZY8Ri%O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7916c63a64acfb454e032530cda7ceb53c514c6b GIT binary patch literal 436 zcmV;l0ZaagP)Y-5JiulP72y?6~Tcka1XA-fh%$3&@J>X9J>rba0iYg zv+g9)X|Vs`lkoc4@Ob=!3{u>CQ+2B{VI-=m>Zj8wMNwd_#W{y_j>F+F`Hs!T1XimR zMNv?eC3&7>twlt}pyL9OJe$o@?)`p`3j7(({vtklI-O3v)*7ufN-305#Jkp--EKGF zOscBtW6uEh`LPXG7BO*K=4;G6B0M=TJF=Wy0vMd1-c)466BIy`o2q7dK zfcKv4yJ4|x5n;30@O(aby<;>9M;+-5X}-1=JWZ0+;tsI(WHB+WUJW6zP?wk;uqR6!K@7~}bT z?qk0pg!FQ}ACJf37{`|5a=G-;*t)K1nufZr+3)us`2XI-(ZBH3)adrt+>Zjr7`*p* e?+4#`EdBz>chW@1m#L%x0000&7ss)7&#LI@aR9#D_tK&Z7w6h$8guJSz3n5GG3S;82DZQDK? zXsr?M`~G-mSNl9qlx2zYJYlVcQtI}&1$%`!48vuNfg5WrthMO6?g{ZN0072uywWtq zwrx;Kp|0y!@Bc57_b)hLj`ptuq?9<007*qoM6N<$f=+3Y A0ssI2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png index d8a5699bffe768d019e13de63bf108aff606fcc3..d051e9354cc8aa1d3c691e2a5d3f222029663a49 100644 GIT binary patch delta 145 zcmV;C0B--K0=)r{G=FqSL_t(IjqQ^$4g(MCiTmZr#i|x8Mb`%RK|JZNoqS015yANkvXXu0mjf-ts?v delta 249 zcmVKonHye=;S`lpHvmWuK~+_lrU}kD z7-PUWhY$ip1n)hvEWj4==q(lm|rq9~%^ zjt{K0XqpCBSZk3a$ye@v(fc!h!C!C^NGZ{_?Par+5`Eu)<>Fp$+ZK1du4{x45JHH@ zL`1Q^@B3M>t}C?GV2oi|7I^RDJI+{Z9sdVUTJL+U!@`og00000NkvXXu0mjfk)m*< diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white.png new file mode 100644 index 0000000000000000000000000000000000000000..391bc0a0df61a58ffc6c588eff585966feeddb9e GIT binary patch literal 2224 zcmV;h2v7HkP)4G}IP^nTob*MU2mDs!W zKkCwnr4s{8Oblfz5~vbV2NsINj{-{KGqDZ$JMew)bGFZp6VgvVuVjT_zjx2Q_ul(F zzDouFx3#sk*l`@#whh;HVcRww$3eH-h39$bbUN@nPkjII;X?(I4eM`E1MPMjS65dE z!w^9b!1sOlz7Nmyz&X!cX&ctRvbMGsx7%&Z%*x z+pulBuTQtz6@N3vVB0nf*L4vD0eZcjxLGC=nx-KL0`Yu505ozLfa|)q5%7IK0RSi$ z3E%etKxBNL$s?Bm*tUI}1HSL$?CdP_P`|_?0FLA2K1qo z&qK9Zg+c4I$W$Se{Zs?!H-(&Yc%BEN)9HY74qev^9nwi81F$R$H#axpUYR83oWruL zeE)Kw1A>Jy6DIsST?K$a3{Sk;z477(I{%kgEq&mM$`b>H!siLOmc`UU@C62l4>) z)dN5=rIyhHc~(jf4AP$s0Y&A-w!}q50nL<)C2uSE;pdk z1A_p_=z%gLCsXNxK>;N6K-rO#rS-rt0CZi4;PjQ1m6$OG`Lb<0mrjY#@9O{8*-!v5 z3EJ834ly648=rnlMchmSw@RER2tj!!QhtkB=jYB3PD%FboB# zkw;)yTUl9&Yqc6qPfyWqw-b@0K~ePT^*Wl(CQQ==>5w}EAYN~`+oJJwG{?rqL-EIwWdKy5?i>N)by{i@6BD_e_j)~qVTdS-Kssb(5ujBd z&w09Y0x0pnvkA+x#5$*J4}w61ovtW~Kssb30CZi4X_`1VI7oC7MN#6r{5i4+ z5Ulqd>gsAK zWh$#F0{}jM{v3185r!c+=SoUtjGR$Mp2H zsAgp;b$fdo%gf6Z0QmCdODuy{=>fT20&g(JgwlEb{5g(~j{!h*EO*K|$Kl~29zJ}C zFbu&M!|Lj4JUKauU%!40qz5)PH{*+o3uufnabss^2kYzW%FgBcl#H_ar4c@U{1}We zOifK;YHA9NMg!B+)6g^xhlhtEnQhw!W9$|HIX`&t0Po(tQ+BTFI$pkfiBF$Ci6TP) zWIZ4cq6oa}x?qgmPC+_ks?M*kuf=ktB2%x|0U!~9xw$#a&(ABtFD)(M_wV0HJs>-m z>73R%g%LnP50nKj^Z*gbAf3yU3Lv2e%7UkgXwX~gpq)oil-M7jr8Wq7&N(zHJY}8b zl1x>x)9DC*&N=q>_A>sOrlHg6Wc2_6C~~I1De2@0r1b!0d)hy}3IrR{6qu%o@87>; zdwUzLR!ceZot+(QZ*Sx2)2E5OMOhClEG%GteqLld`8tk+#l^*}9*}b&&zVqHDizT= zWit`W{{DVEh#q+J=1m0vgmYT46gd+er}qdpH#g%lr{~nUV8d3cRY`9!kf=!0F@VI# zWs~Jtkse5}VY-oxjg7cyhvV(rw;7+bZEbDED*sonUS)hUlC05a6!Li)yLa!N(qCm6 z0JQU+-hREgxhcIBm*?LXz}K%|*lA^yE~BLX<<;UiPNEG`LetaJn4Fvx1&y8~e?v|f zxgsttE#-;{N-ouTflO?ibL{W$!|net#Y-5(~b5{Tg8yin^{kFQ92u zy(N=x1_15%GscvxI6FIwsi~<9m8wc}KUSQZn@c>OaW2D(@87>KEJQ~~N3rVUG~GFn zs)VgptMc>b&$!ua<{rH+EG&$y3T6NRw{uf;{$IxAq?G+j0XRQDFXZzwc6xfM^jBGK zICpn+c-;$C5000003aOYoMDW? zzVFv$2;mhLfidP3XsvM^M^*A&ptU{)M1*bIs*>*lB02?1sXtw15h$h5$iTn-jbFDI WzVP+E4T=B&00{s|MNUMnLSTZK*?NNj delta 335 zcmV-V0kHnM0{H@vGk*avNkl#N7_45Yqg4lD;Cobv~c(`~4nc40)cTltOEbwHD_b z)>?|9z!<|gjx2$iMY074^VX3UO zTrL;VG({+-I3AAx^nL%)e7oHM2tFaDWE@9~F>JTnkI6y7CzMhQ!@zF0Ta+9Wd_qb& z-}sW`X9A_vgFtJ|dc9th{7j&=Muaz(QvTZXswgn`h6r!`6Z74XfVnq>bB-iQh~s!s z@-sn_B&@vm)JSzrS(blZ);of_t{()U53(#GvRg`7<(o|Iyhr?ke hXxo-3EdJYX`~pv*+362U>hk~q002ovPDHLkV1lmFpK$;H diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png index 1883702b0b8a79a4f87a1036b1a4e3102a7b7579..b2c75f8531a4d6140b8c5b148a7914373b034086 100644 GIT binary patch delta 270 zcmV+p0rCFq0=NQ@Gk*Z@Nklp)2-aFS=U}Y`5rLVJQbLRoDW&tguB!q7(*Yp_wAN5-MJWX$ z0uez<2|4G>>QdhOM+gDSvfvwu2to)jM1^*7_C_WBd&0n~}-CI_WRcF!M0r)rp9_JNQP-jD6pcbB5}{fBTI;fX4da UpM8p<00000Ne4wvM6N<$f-^sSEC2ui delta 322 zcmV-I0logX0_*~iGk*aiNklBy_OcRX380*q+hIb`-u*Rn<}y1)Ot8k_1r{!CDI<0yBe%kYyR1 zbMW5d@pvcz&>|2*K-;!3#-Q(eF!LJIG=Z7Xw(a^BsH&=#5Pt&FG{s*q3(GzFvdV9NrJxbHw|Y_UauE~r=utW zGh?3TP1BhZ8LYO}?h2eaSp{UzM|eJ;yLsVh*{f3OP=ttn{AQ#qk-7Z<`bzNf|$FJE*@!x*qCzezH UWo?~Bv;Y7A07*qoM6N<$f*WFzRR910 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png index e79b0a583991ecddc6bba42fe02b7b4ac78968a4..2684f86772dfa5de97059004bcc34ab3651d431d 100644 GIT binary patch delta 242 zcmV3`JkCu)&t>Q|4+pU`C!@k}guWQ@ZkO z=7SIz-a`_2;XB*5U8NLWOI2}qdhh>gUDpLbhM={EnW3uGT2WQZjGQy>PD+UwBO*cw zVPGuVwq30?a?aFRF|(hZbLRPc@_0Ph_x(?IcUo&mDFrj5lxxCF1}9@zRh<^7>Ma;M z&kAa-zZ00*dlS4~dnSVucb|p<1}D9D+1pw7)GB#5FsHa!UxC+?89itL2?>TIY!Rl zNoUApJb1E@Jtl+um(tP_P5l;u;Qe|MpDI4m_x;mai!p|;YtET$L(ihobz2|f~(RCd$Mt|D2#W_b^*DT9IN{MAz zXqtu?Bipty&okb8l(qKr%pU?c3$K!!gyR>l17{fG8#2EjCzehM_tz{fX+O~Zg z7K3pdcLRB_k_e{+uIswkz&VG?Ig?Vt7*jMrI3?vsDHRP6PDx1)heNS})_OOPh7H3| zWDr8w4WtKBk}7u%rfJ#@?)N*#rv{=e`zvgLHxx<*MKg(g|xVy!WT&u-4v+PX=_MDgTvB&`OJO9Cw2!$wUa@+`-di kVwxs+@4@Kd-xq%48^$EZz0;{Wg#Z8m07*qoM6N<$g4$+-f&c&j delta 352 zcmV-m0iXWK0*eEXG=D-#L_t(Ijm48Oj>0eyMW0tLkc}e&5~7PZ0Mwj-15o53oQ8@j z4Hw`Bv_3=1NE87_4h2Y|V9iEAfNozimgPTx>=_GwS*=#J)*7W0&FH2z2u767c*>mWmHHk-OA3V+7qG1KW3Yb}$>1Y-C@@-(YZx~|hSWjGwR-uIE&Yz9D@rnfop-gCKJzH)}Y yIq=>i^E{`js<&-?WVhRKJRWav7dHRxH(mizGw847L;_g=0000i&|1S7^XBLC`2YYc0rY(jr4*!;=(-M4 zN+_k!G!3-Y5JG@+4#pUYqDW~tjN|z1`yRL34V-h7Ww|@keSaHs&T+k7G0!tt+qO_j zVV-9U!?1fKgn$qNWm#qgLI_OL1f>*Wj4uEwWoD?V>douAMpac{jNyL2gNPud1QERe zx~|Ktp8!&Fj1fcxBEs=_g!lgc3bxEKMmXo-y+;TEQc75B!BV$VeczHFj|ZG{2q7SZ z0HxFmKx>VrX@7PApO}+-??FUZ*A-f8{4vHrYn?~+yJqKHX5Rv&55|l!yHVA3{WaM+ z2O>fU0n4($81thbO<`N}@8ksVrhqYqVHhBU$a7BJ_TFdN$wLTO*YyXWC<<`SF-_C% zQ3zodZ_lLQke1?dxja8DQ|k7zEYMo#_;fn$w{f25{2|l4_psK&TKjdKll=uV7;(l< Smv`|10000~HkM_5K!4Zq za=Fm9Elc0`$@3h5D2j-ph|Ok09LFR{!gjl5x7)Gb?@7~?G)+-TQ4|Hf@3Zne4wg+oLcE_&wmA`We>x^^Z7IaN-2UMKuXC{N=essZvu1jJiAiL*t^ujVOiGKJI}Lg z0XjiJk(IQ*+X2*G;2#s~3%Y7v!>&5I@%Irc~3XL_LD;nK08rV8cyqUuNF6`H(>xGwIv72|Mo;0pH zXz^jO#N)NAIylx}K2z|0`^{~+3>*xx*YBoe%zG}7)bqVi#^*B20gJx=Wr-3DFMiM4 zwN5iswBfVO&F^zpt&(HDB-^kmsEdQ)^{#)JY&W*`zTU+kAlT(HK{<4(2aDw|p2nG} z>@y@=cc-)O_-(JCA?%oSW0Ow*vSpbK@6~2WrYd>xdaM5QUGH1+o!=%ns_6bt?wk4T V@6>r6Y*7FJ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png new file mode 100644 index 0000000000000000000000000000000000000000..35019f1d85fb640c96c1ac202e3b00b8c01d284c GIT binary patch literal 406 zcmV;H0crk;P)CP&3J(r%&x@BMA;VIi*v3s%d!*z0${yfw*W;^Af@cs zxXyhkC9~N~h^neu=N#kl7%3%6si!2R6iO+IqDV2N6sOaP-EPM~YmN6FDJ84birei5 zkiZ;r&T+Y1m`dRlYfJorXhqt2;p%AV@$f;cVO>*vc?#C*4jVAac!-o=bU?L-@9-K z0q5MKKzt4<#x^d^m z53mTuG$}Me`c~;{^?d|}nS}giCNmiet(B%}9RvZ4P)Z?$fRwT$i^ak+jMH`y$1y0S zV2puMiZBe}`#yvaAcVm4JUC7VLE~w)TGgKC!F64~!uvJ8%?b{qH&uBr-JYiO+zh9Szbgd>E2@B0n(7p#Oa`n=7ZT%N^s5_SW1cG@%RDTwhhiXlv2=IgLD4vKnU^Ch4;wsT`(C~>-D;h zq6pLJ6r<6o18J>0j*MhkhA4{gd_KRw^67M{+m}qW+xxa&E|*qk764$o-PZ5JWU9?M xhY$iqQD8ow|2&O(o;T^2Wr?yZe;nub`U1cEafK4fLB9Y1002ovPDHLkV1fl;;y?fZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac37ec44b867715005c577be13ad33b9ceae1be GIT binary patch literal 539 zcmV+$0_6RPP)*AI9X4l*z^yEoYz;G^<9XQdRBQqWq%7y}{-XT4qzUiqU>gEUQ%BnhzJ9j>pCVPzFx03to*=!1k+hrS){QEq!7%` zLN?%Dact1Pf#bN>&G6paoj1EPCQwyXSS%Lgd5*OfRYg@f91gRe+;qxdy9TP?qI~W>!^Ih%*CR zuU9sk4I)C8WrzsI7(|5o{myc^1i)HL+qR@J?V>0EM)GR4LPQV|k|g2rc;LMsc>vBi z(w~9FYl{e~N?q4%w_CjTc<(=gbBm(Ny2`=XSdsp;$ax*x^B!sRsR@>$hha2L7X{?`@Y9}&-3~GF!)+yUDqMb z>%AXOj`i_){L*}(X_}y_A%qZAH8f2VZns;Q;{Nwbocs&#p~ke|dw(@(+ZN{>&bg28 aJcZv5-Q0kF`PTse0000UtP)^qKEOr?`rt z4Iafz(-atEV2putepTDHH$GQNg(xgWDTTVOA%pk1+Yko+rHb&{|(iT(C!p%d&)ct8)(CdwB0L48tS;7$OQGgg``L-}jK>{(q5@e<2Es kwtwB=I1X5AFWaen03F$(Wbr5SFaQ7m07*qoM6N<$f|KiuRR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png index 636913932e460ee4c37a8e5e3a141b981a1f4f52..a76af87a18d6af737b34718e8d583149f9efbe7a 100644 GIT binary patch delta 147 zcmV;E0BrxJ0>1%}G=FwUL_t(IjqQ^$4g(s&TI&|P05xkmA#a6|E(`zw002ovPDHLkV1n4p BJ&XVV delta 250 zcmV{(O$Z@a*A;86Kj#`x)8y|bUo}E`mRW~5H~;_u07*qoM6N<$f{0Xe AA^-pY From 6c96d88541299480cf85c131b0ab98831f8520c1 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 21 Jun 2024 10:57:44 +0200 Subject: [PATCH 09/17] mh yes --- changelog | 11 +- .../inventory/recipes/ArcWelderRecipes.java | 11 ++ .../inventory/recipes/AssemblerRecipes.java | 110 ++++++++++++++++-- .../recipes/CrystallizerRecipes.java | 2 +- .../java/com/hbm/items/ItemGenericPart.java | 3 +- .../java/com/hbm/main/CraftingManager.java | 12 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../textures/items/low_density_element.png | Bin 0 -> 268 bytes 9 files changed, 126 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/low_density_element.png diff --git a/changelog b/changelog index c4aad0278..773ee6c81 100644 --- a/changelog +++ b/changelog @@ -4,5 +4,14 @@ * Intersections now have unique textures for each size * Copper boxducts now have a much nicer color gradient * Exhaust pipes now have a more rusted appearance +* Added an alternate recipe for blank upgrades using integrated circuits and polymer instead of analog circuits +* Update the soyuz and orbital module recipes + * Simplified the recipes, fewer microcrafting parts + * Both now use low-density elements which are made from aluminium/titanium, fiberglass and hard plastic + * Both now make use of more advanced electronics, although in smaller numbers +* Removed the recipes for the satellite deco blocks, those will be phased out soon. Existing deco blocks can still be crafted back into functional satellites +* Moved the satellite recipes to the welder, the attachment is now welded onto the common satellite body +* Simplified the satellite recipes, adjusted cost based on utility (depth scanner, death ray and resonator are more expensive than the mapper/radar) -## Fixed crash caused by PRISM updating unloaded worlds \ No newline at end of file +## Fixed +* Crash caused by PRISM updating unloaded worlds \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index c4aa555c5..7bc108bfa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -20,6 +20,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -37,6 +38,10 @@ public class ArcWelderRecipes extends SerializableRecipe { new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.LDE), 200, 5_000L, + new OreDictStack(AL.plate(), 4), new OreDictStack(FIBER.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot()))); + recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.LDE), 200, 10_000L, + new OreDictStack(TI.plate(), 2), new OreDictStack(FIBER.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot()))); //Dense Wires recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, @@ -105,6 +110,12 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_mapper), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_mapper))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_scanner), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_scanner))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_radar), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_radar))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_laser), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_laser))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_resonator), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_resonator))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 7da831ef7..a1d19543e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -98,15 +98,6 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.CAPACITOR_BOARD.ordinal()) }, 600); makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(STEEL.bolt(), 32) },1200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel) },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new OreDictStack(CU.plateCast(), 12), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); - makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(RUBBER.ingot(), 6), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(MINGRADE.wireFine(), 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(CU.plateCast(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); - makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); - makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new OreDictStack(CMB.ingot(), 22), new OreDictStack(MAGTUNG.wireFine(), 4), },300); makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new OreDictStack(W.wireFine(), 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); @@ -264,12 +255,109 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), },500); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), },400); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), }, 60, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.ADVANCED), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new OreDictStack(ANY_RUBBER.ingot(), 32), new OreDictStack(AL.shell(), 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); + + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] { + new OreDictStack(TI.shell(), 32), + new OreDictStack(RUBBER.ingot(), 64), + new ComparableStack(ModItems.rocket_fuel, 64), + new ComparableStack(ModItems.thruster_small, 12), + new ComparableStack(ModItems.thruster_medium, 12), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER), + new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE) + },600); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] { + new OreDictStack(AL.shell(), 4), + new OreDictStack(RUBBER.ingot(), 16), + new ComparableStack(ModItems.rocket_fuel, 16), + new ComparableStack(ModItems.thruster_small, 3), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED), + new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE) + },600, ModItems.journal_bj); + + makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] { + new OreDictStack(RUBBER.ingot(), 12), + new OreDictStack(TI.shell(), 3), + new ComparableStack(ModItems.thruster_large, 1), + new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.photo_panel, 24), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },500); + makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), + new ComparableStack(ModBlocks.glass_quartz, 8), + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(TI.plateCast(), 8), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.magnetron, 8), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED.ordinal()) + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(TI.plateCast(), 12), + new ComparableStack(ModItems.magnetron, 12), + new ComparableStack(ModItems.coil_gold, 16), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()) + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 6), + new OreDictStack(CU.plateCast(), 24), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD), + new ComparableStack(ModItems.crystal_diamond, 8), + new ComparableStack(ModBlocks.glass_quartz, 8) + },450); + makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(STAR.ingot(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 48), + new ComparableStack(ModItems.crystal_xen, 1), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) + },1000); + makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] { + new OreDictStack(TI.shell(), 3), + new ComparableStack(ModItems.plate_desh, 8), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), + new ComparableStack(ModItems.photo_panel, 16), + new ComparableStack(ModItems.thruster_nuclear, 1), + new ComparableStack(ModItems.ingot_uranium_fuel, 6), + new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), + new ComparableStack(ModItems.magnetron, 3), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },1200); + makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] { + new OreDictStack(BIGMT.plate(), 24), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.drill_titanium, 2), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.thruster_small, 1), + new ComparableStack(ModItems.photo_panel, 12), + new ComparableStack(ModItems.centrifuge_element, 4), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },600); + makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] { + new ComparableStack(ModItems.ingot_meteorite, 4), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.drill_titanium, 2), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.thruster_small, 1), + new ComparableStack(ModItems.photo_panel, 12), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },600); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] { new ComparableStack(ModItems.upgrade_speed_3, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index e4095c351..c18e36ace 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -83,7 +83,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModBlocks.gravel_diamond), new CrystallizerRecipe(ModItems.crystal_diamond, baseTime)); registerRecipe(SRN.ingot(), new CrystallizerRecipe(ModItems.crystal_schraranium, baseTime)); - registerRecipe("sand", new CrystallizerRecipe(ModItems.ingot_fiberglass, utilityTime)); + registerRecipe(KEY_SAND, new CrystallizerRecipe(ModItems.ingot_fiberglass, utilityTime)); registerRecipe(SI.ingot(), new CrystallizerRecipe(new ItemStack(Items.quartz, 2), utilityTime), new FluidStack(Fluids.OXYGEN, 250)); registerRecipe(REDSTONE.block(), new CrystallizerRecipe(ModItems.ingot_mercury, baseTime)); registerRecipe(CINNABAR.crystal(), new CrystallizerRecipe(new ItemStack(ModItems.ingot_mercury, 3), baseTime)); diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java index 67e129cfd..f77155547 100644 --- a/src/main/java/com/hbm/items/ItemGenericPart.java +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -12,7 +12,8 @@ public class ItemGenericPart extends ItemEnumMulti { public static enum EnumPartType { PISTON_PNEUMATIC("piston_pneumatic"), PISTON_HYDRAULIC("piston_hydraulic"), - PISTON_ELECTRIC("piston_electric"); + PISTON_ELECTRIC("piston_electric"), + LDE("low_density_element"); private String texName; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 545f798ce..5e7868f28 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -309,6 +309,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "PCP", "WIW", 'W', CU.wireFine(), 'I', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "PCP", "WIW", 'W', CU.wireFine(), 'I', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); @@ -655,11 +656,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_scanner), new Object[] { "H", "B", 'H', ModItems.sat_head_scanner, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_radar), new Object[] { "H", "B", 'H', ModItems.sat_head_radar, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_laser), new Object[] { "H", "B", 'H', ModItems.sat_head_laser, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_resonator), new Object[] { "H", "B", 'H', ModItems.sat_head_resonator, 'B', ModItems.sat_base }); addShapelessAuto(new ItemStack(ModItems.sat_mapper), new Object[] { ModBlocks.sat_mapper }); addShapelessAuto(new ItemStack(ModItems.sat_scanner), new Object[] { ModBlocks.sat_scanner }); addShapelessAuto(new ItemStack(ModItems.sat_radar), new Object[] { ModBlocks.sat_radar }); @@ -667,12 +663,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.sat_resonator), new Object[] { ModBlocks.sat_resonator }); addShapelessAuto(new ItemStack(ModItems.sat_foeq), new Object[] { ModBlocks.sat_foeq }); addShapelessAuto(new ItemStack(ModItems.geiger_counter), new Object[] { ModBlocks.geiger }); - addShapelessAuto(new ItemStack(ModBlocks.sat_mapper), new Object[] { ModItems.sat_mapper }); - addShapelessAuto(new ItemStack(ModBlocks.sat_scanner), new Object[] { ModItems.sat_scanner }); - addShapelessAuto(new ItemStack(ModBlocks.sat_radar), new Object[] { ModItems.sat_radar }); - addShapelessAuto(new ItemStack(ModBlocks.sat_laser), new Object[] { ModItems.sat_laser }); - addShapelessAuto(new ItemStack(ModBlocks.sat_resonator), new Object[] { ModItems.sat_resonator }); - addShapelessAuto(new ItemStack(ModBlocks.sat_foeq), new Object[] { ModItems.sat_foeq }); addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SCS", "MDM", "SCS", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR) }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0bef59215..cf2fcd61d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2713,6 +2713,7 @@ item.part_copper.name=Kupferstaubkiste item.part_generic.piston_electric.name=Electrischer Kolben item.part_generic.piston_hydraulic.name=Hydraulischer Kolben item.part_generic.piston_pneumatic.name=Pneumatischer Kolben +item.part_generic.lde.name=Leichtbauteil item.part_lithium.name=Lithiumstaubkiste item.part_plutonium.name=Plutoniumstaubkiste item.particle_aelectron.name=Positronenkapsel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f4e888f9e..31de7f94a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3532,6 +3532,7 @@ item.part_copper.name=Box of Copper Dust item.part_generic.piston_electric.name=Electric Piston item.part_generic.piston_hydraulic.name=Hydraulic Piston item.part_generic.piston_pneumatic.name=Pneumatic Piston +item.part_generic.lde.name=Low-Density Element item.part_lithium.name=Box of Lithium Dust item.part_plutonium.name=Box of Plutonium Dust item.particle_aelectron.name=Positron Capsule diff --git a/src/main/resources/assets/hbm/textures/items/low_density_element.png b/src/main/resources/assets/hbm/textures/items/low_density_element.png new file mode 100644 index 0000000000000000000000000000000000000000..5894636f01dfb7a5596e5f81033bd43eee5bd2fd GIT binary patch literal 268 zcmV+n0rUQeP)ST5JewRiWKfnspt@502WAWWxdJ_>%SIv;Y4->tJsrTCr{0@0KvjvIO9uiH$K)%@{K-fV!^7vx6q~-bdmA z-g~UIk@<1@>`*-2TWb*!oO5%7zVDSzV~EJC7PTO!H?QYiWq_{h)(rrzm$S-ChzxFz z4@I7;{8tN0=>vzKry4A!7kN6~an4ayRiYZKr4I4% S<*bST0000 Date: Fri, 21 Jun 2024 14:36:37 +0200 Subject: [PATCH 10/17] *deletes half the mod* --- .../java/com/hbm/entity/EntityMappings.java | 2 - .../com/hbm/entity/missile/EntityBooster.java | 100 - .../com/hbm/entity/missile/EntityCarrier.java | 178 - src/main/java/com/hbm/items/ModItems.java | 3 - src/main/java/com/hbm/main/ClientProxy.java | 2 - src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/main/ResourceManager.java | 11 - .../entity/rocket/RenderBoosterMissile.java | 39 - .../entity/rocket/RenderCarrierMissile.java | 50 - .../render/item/ItemRenderMissileGeneric.java | 18 - .../render/tileentity/RendererObjTester.java | 2 - .../com/hbm/render/util/ErrorPronter.java | 24 - .../resources/assets/hbm/models/LaunchPad.obj | 302 -- .../resources/assets/hbm/models/cwis_base.obj | 44 - .../resources/assets/hbm/models/cwis_gun.obj | 438 --- .../resources/assets/hbm/models/cwis_head.obj | 613 ---- .../assets/hbm/models/cwis_rotor.obj | 202 -- .../resources/assets/hbm/models/cyclotron.obj | 2212 ------------- .../resources/assets/hbm/models/error.obj | 2909 ----------------- .../assets/hbm/models/missileBooster.obj | 416 --- .../assets/hbm/models/missileCarrier.obj | 1148 ------- .../assets/hbm/models/radar_head.obj | 404 --- .../assets/hbm/models/weapons/pch.obj | 245 -- .../assets/hbm/shaders/test_shader.frag | 25 - .../assets/hbm/shaders/test_shader.vert | 26 - src/main/resources/assets/hbm/sounds/clap.ogg | Bin 9290 -> 0 bytes src/main/resources/assets/hbm/sounds/jeff.ogg | Bin 11082 -> 0 bytes src/main/resources/assets/hbm/sounds/mug.ogg | Bin 9970 -> 0 bytes .../resources/assets/hbm/sounds/sample.ogg | Bin 119976 -> 0 bytes .../textures/items/neutron_reflector_old.png | Bin 311 -> 0 bytes .../assets/hbm/textures/items/oil_canola.png | Bin 220 -> 0 bytes .../assets/hbm/textures/items/oil_crude.png | Bin 191 -> 0 bytes .../hbm/textures/items/oilcan_bitumen.png | Bin 238 -> 0 bytes .../hbm/textures/items/oilcan_diesel.png | Bin 204 -> 0 bytes .../hbm/textures/items/oilcan_heatingoil.png | Bin 234 -> 0 bytes .../hbm/textures/items/oilcan_heavyoil.png | Bin 235 -> 0 bytes .../hbm/textures/items/oilcan_kerosene.png | Bin 230 -> 0 bytes .../hbm/textures/items/oilcan_lightoil.png | Bin 237 -> 0 bytes .../hbm/textures/items/oilcan_lubricant.png | Bin 221 -> 0 bytes .../hbm/textures/items/oilcan_naphtha.png | Bin 236 -> 0 bytes .../assets/hbm/textures/items/oilcan_oil.png | Bin 208 -> 0 bytes .../hbm/textures/items/oilcan_petroil.png | Bin 246 -> 0 bytes .../hbm/textures/items/oilcan_reclaimed.png | Bin 238 -> 0 bytes .../hbm/textures/items/oilcan_smear.png | Bin 228 -> 0 bytes .../hbm/textures/items/powder_template.png | Bin 256 -> 0 bytes .../hbm/textures/items/rubber_gloves.png | Bin 422 -> 0 bytes .../hbm/textures/items/turret_cwis_ammo.png | Bin 179 -> 0 bytes .../hbm/textures/items/turret_flamer_ammo.png | Bin 241 -> 0 bytes .../hbm/textures/items/turret_heavy_ammo.png | Bin 197 -> 0 bytes .../hbm/textures/items/turret_light_ammo.png | Bin 291 -> 0 bytes .../hbm/textures/items/turret_rocket_ammo.png | Bin 335 -> 0 bytes .../textures/items/turret_spitfire_ammo.png | Bin 203 -> 0 bytes .../hbm/textures/items/turret_tau_ammo.png | Bin 456 -> 0 bytes .../hbm/textures/items/warhead_mirv_alt.png | Bin 187 -> 0 bytes .../hbm/textures/items/warhead_mirvlet.png | Bin 233 -> 0 bytes .../items/warhead_thermo_endo_alt.png | Bin 231 -> 0 bytes .../textures/items/warhead_thermo_exo_alt.png | Bin 231 -> 0 bytes .../assets/hbm/textures/models/At4New.png | Bin 643 -> 0 bytes .../assets/hbm/textures/models/LilBoy2.png | Bin 16756 -> 0 bytes .../assets/hbm/textures/models/TestObj.png | Bin 1148 -> 0 bytes .../hbm/textures/models/mining_drill.png | Bin 14089 -> 0 bytes .../hbm/textures/models/press_body_2.png | Bin 560 -> 0 bytes .../hbm/textures/models/press_body_alt.png | Bin 3068 -> 0 bytes .../hbm/textures/models/press_head_2.png | Bin 237 -> 0 bytes .../hbm/textures/models/press_head_new.png | Bin 229 -> 0 bytes .../assets/hbm/textures/models/radar_base.png | Bin 4992 -> 0 bytes .../assets/hbm/textures/models/radar_head.png | Bin 4658 -> 0 bytes .../hbm/textures/models/textureIGenRotor.png | Bin 229 -> 0 bytes 68 files changed, 1 insertion(+), 9413 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/missile/EntityBooster.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityCarrier.java delete mode 100644 src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java delete mode 100644 src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java delete mode 100644 src/main/java/com/hbm/render/util/ErrorPronter.java delete mode 100644 src/main/resources/assets/hbm/models/LaunchPad.obj delete mode 100644 src/main/resources/assets/hbm/models/cwis_base.obj delete mode 100644 src/main/resources/assets/hbm/models/cwis_gun.obj delete mode 100644 src/main/resources/assets/hbm/models/cwis_head.obj delete mode 100644 src/main/resources/assets/hbm/models/cwis_rotor.obj delete mode 100644 src/main/resources/assets/hbm/models/cyclotron.obj delete mode 100644 src/main/resources/assets/hbm/models/error.obj delete mode 100644 src/main/resources/assets/hbm/models/missileBooster.obj delete mode 100644 src/main/resources/assets/hbm/models/missileCarrier.obj delete mode 100644 src/main/resources/assets/hbm/models/radar_head.obj delete mode 100644 src/main/resources/assets/hbm/models/weapons/pch.obj delete mode 100644 src/main/resources/assets/hbm/shaders/test_shader.frag delete mode 100644 src/main/resources/assets/hbm/shaders/test_shader.vert delete mode 100644 src/main/resources/assets/hbm/sounds/clap.ogg delete mode 100644 src/main/resources/assets/hbm/sounds/jeff.ogg delete mode 100644 src/main/resources/assets/hbm/sounds/mug.ogg delete mode 100644 src/main/resources/assets/hbm/sounds/sample.ogg delete mode 100644 src/main/resources/assets/hbm/textures/items/neutron_reflector_old.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oil_canola.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oil_crude.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_diesel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_oil.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_petroil.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png delete mode 100644 src/main/resources/assets/hbm/textures/items/oilcan_smear.png delete mode 100644 src/main/resources/assets/hbm/textures/items/powder_template.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rubber_gloves.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_heavy_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_light_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_spitfire_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/warhead_mirv_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/warhead_mirvlet.png delete mode 100644 src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/models/At4New.png delete mode 100644 src/main/resources/assets/hbm/textures/models/LilBoy2.png delete mode 100644 src/main/resources/assets/hbm/textures/models/TestObj.png delete mode 100755 src/main/resources/assets/hbm/textures/models/mining_drill.png delete mode 100644 src/main/resources/assets/hbm/textures/models/press_body_2.png delete mode 100644 src/main/resources/assets/hbm/textures/models/press_body_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/models/press_head_2.png delete mode 100644 src/main/resources/assets/hbm/textures/models/press_head_new.png delete mode 100644 src/main/resources/assets/hbm/textures/models/radar_base.png delete mode 100644 src/main/resources/assets/hbm/textures/models/radar_head.png delete mode 100644 src/main/resources/assets/hbm/textures/models/textureIGenRotor.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 28832b449..6654eb051 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -126,8 +126,6 @@ public class EntityMappings { addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000); addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000); addEntity(EntityRagingVortex.class, "entity_raging_vortex", 250); - addEntity(EntityCarrier.class, "entity_missile_carrier", 1000); - addEntity(EntityBooster.class, "entity_missile_booster", 1000); addEntity(EntityModBeam.class, "entity_beam_bang", 1000); addEntity(EntityMissileBHole.class, "entity_missile_blackhole", 1000); addEntity(EntityMissileSchrabidium.class, "entity_missile_schrabidium", 1000); diff --git a/src/main/java/com/hbm/entity/missile/EntityBooster.java b/src/main/java/com/hbm/entity/missile/EntityBooster.java deleted file mode 100644 index 5ddb30ae8..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBooster.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityBooster extends EntityThrowable { - - public EntityBooster(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.motionY -= 0.015; - - if(motionY < -1.5F) - motionY = -1.5F; - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 10F, true, false, true); - } - this.setDead(); - } - - if(!worldObj.isRemote) { - for(int i = 0; i < 2; i++) { - EntityTSmokeFX fx1 = new EntityTSmokeFX(worldObj); - fx1.posY = posY - 0.25D; - fx1.posX = posX + rand.nextGaussian() * 0.25D; - fx1.posZ = posZ + rand.nextGaussian() * 0.25D; - fx1.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx1); - } - } - - this.motionX *= 0.995; - this.motionZ *= 0.995; - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityCarrier.java b/src/main/java/com/hbm/entity/missile/EntityCarrier.java deleted file mode 100644 index 89ec901d8..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityCarrier.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ISatChip; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.saveddata.satellites.Satellite; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityCarrier extends EntityThrowable { - - double acceleration = 0.00D; - - private ItemStack payload; - - public EntityCarrier(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - this.setSize(3.0F, 26.0F); - } - - @Override - public void onUpdate() { - - //this.setDead(); - - if(motionY < 3.0D) { - acceleration += 0.0005D; - motionY += acceleration; - } - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - - if(!worldObj.isRemote) { - for(int i = 0; i < 10; i++) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "gasfire"); - data.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - } - - if(this.dataWatcher.getWatchableObjectInt(8) == 1) - for(int i = 0; i < 2; i++) { - NBTTagCompound d1 = new NBTTagCompound(); - d1.setString("type", "gasfire"); - d1.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d1, posX + rand.nextGaussian() * 0.75D + 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d2 = new NBTTagCompound(); - d2.setString("type", "gasfire"); - d2.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d2, posX + rand.nextGaussian() * 0.75D - 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d3 = new NBTTagCompound(); - d3.setString("type", "gasfire"); - d3.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d3, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D + 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d4 = new NBTTagCompound(); - d4.setString("type", "gasfire"); - d4.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d4, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D - 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - } - - - if(this.ticksExisted < 20) { - ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 13 + rand.nextInt(3), 4 + rand.nextGaussian() * 2); - } - } - - if(this.posY > 300 && this.dataWatcher.getWatchableObjectInt(8) == 1) - this.disengageBoosters(); - //this.setDead(); - - if(this.posY > 600) { - deployPayload(); - } - } - - private void deployPayload() { - - if(payload != null) { - - if(payload.getItem() == ModItems.flame_pony) { - ExplosionLarge.spawnTracers(worldObj, posX, posY, posZ, 25); - for(Object p : worldObj.playerEntities) - ((EntityPlayer)p).triggerAchievement(MainRegistry.achSpace); - } - - if(payload.getItem() == ModItems.sat_foeq) { - for(Object p : worldObj.playerEntities) - ((EntityPlayer)p).triggerAchievement(MainRegistry.achFOEQ); - } - - if(payload.getItem() instanceof ISatChip) { - - int freq = ISatChip.getFreqS(payload); - - Satellite.orbit(worldObj, Satellite.getIDFromItem(payload.getItem()), freq, posX, posY, posZ); - } - } - - this.setDead(); - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(8, 1); - } - - public void setPayload(ItemStack stack) { - this.payload = stack.copy(); - } - - private void disengageBoosters() { - this.dataWatcher.updateObject(8, 0); - - if(!worldObj.isRemote) { - EntityBooster boost1 = new EntityBooster(worldObj); - boost1.posX = posX + 1.5D; - boost1.posY = posY; - boost1.posZ = posZ; - boost1.motionX = 0.45D + rand.nextDouble() * 0.2D; - boost1.motionY = motionY; - boost1.motionZ = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost1); - - EntityBooster boost2 = new EntityBooster(worldObj); - boost2.posX = posX - 1.5D; - boost2.posY = posY; - boost2.posZ = posZ; - boost2.motionX = -0.45D - rand.nextDouble() * 0.2D; - boost2.motionY = motionY; - boost2.motionZ = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost2); - - EntityBooster boost3 = new EntityBooster(worldObj); - boost3.posX = posX; - boost3.posY = posY; - boost3.posZ = posZ + 1.5D; - boost3.motionZ = 0.45D + rand.nextDouble() * 0.2D; - boost3.motionY = motionY; - boost3.motionX = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost3); - - EntityBooster boost4 = new EntityBooster(worldObj); - boost4.posX = posX; - boost4.posY = posY; - boost4.posZ = posZ - 1.5D; - boost4.motionZ = -0.45D - rand.nextDouble() * 0.2D; - boost4.motionY = motionY; - boost4.motionX = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost4); - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } -} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1c501b89d..aaa4508e1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -702,7 +702,6 @@ public class ModItems { public static Item warhead_buster_medium; public static Item warhead_buster_large; public static Item warhead_nuclear; - public static Item warhead_mirvlet; public static Item warhead_mirv; public static Item warhead_volcano; @@ -3051,7 +3050,6 @@ public class ModItems { warhead_buster_medium = new Item().setUnlocalizedName("warhead_buster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_medium"); warhead_buster_large = new Item().setUnlocalizedName("warhead_buster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_large"); warhead_nuclear = new Item().setUnlocalizedName("warhead_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_nuclear"); - warhead_mirvlet = new Item().setUnlocalizedName("warhead_mirvlet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":warhead_mirvlet"); warhead_mirv = new Item().setUnlocalizedName("warhead_mirv").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_mirv"); warhead_volcano = new Item().setUnlocalizedName("warhead_volcano").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_volcano"); @@ -6200,7 +6198,6 @@ public class ModItems { GameRegistry.registerItem(warhead_buster_medium, warhead_buster_medium.getUnlocalizedName()); GameRegistry.registerItem(warhead_buster_large, warhead_buster_large.getUnlocalizedName()); GameRegistry.registerItem(warhead_nuclear, warhead_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(warhead_mirvlet, warhead_mirvlet.getUnlocalizedName()); GameRegistry.registerItem(warhead_mirv, warhead_mirv.getUnlocalizedName()); GameRegistry.registerItem(warhead_volcano, warhead_volcano.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_small, fuel_tank_small.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4718a6332..4b0bea738 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -734,8 +734,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear()); - RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); - RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuzCapsule.class, new RenderSoyuzCapsule()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileTaint.class, new RenderMissileTaint()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8043c2b04..5d21de386 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1337,6 +1337,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.ore_unobtainium"); ignoreMappings.add("hbm:tile.ore_daffergon"); ignoreMappings.add("hbm:tile.ore_verticium"); + ignoreMappings.add("hbm:item.warhead_mirvlet"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b1f7f9d0b..ad553a3cd 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -17,11 +17,6 @@ import net.minecraftforge.client.model.IModelCustom; public class ResourceManager { - //public static final Shader test_shader = ShaderManager.loadShader(new ResourceLocation(RefStrings.MODID, "shaders/test_shader")); - - //God - public static final IModelCustom error = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/error.obj")); - ////Obj TEs //Turrets @@ -246,7 +241,6 @@ public class ResourceManager { //Radar public static final IModelCustom radar_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"), false).asVBO(); - public static final IModelCustom radar_head = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj"), false).asVBO(); public static final IModelCustom radar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj"), false).asVBO(); public static final IModelCustom radar_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj"), false).asVBO(); public static final IModelCustom radar_screen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj"), false).asVBO(); @@ -581,8 +575,6 @@ public class ResourceManager { public static final ResourceLocation autosaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/autosaw.png"); //Mining Drill - public static final ResourceLocation drill_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mining_drill.png"); - public static final ResourceLocation drill_bolt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png"); public static final ResourceLocation mining_drill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_drill.png"); //Laser Miner @@ -796,7 +788,6 @@ public class ResourceManager { public static final IModelCustom shimmer_sledge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_sledge.obj")); public static final IModelCustom shimmer_axe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_axe.obj")); public static final IModelCustom stopsign = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/stopsign.obj")); - public static final IModelCustom pch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/pch.obj")); public static final IModelCustom gavel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/gavel.obj")); public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj")); public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false); @@ -1074,8 +1065,6 @@ public class ResourceManager { public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asVBO(); public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asVBO(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); - public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); - public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); public static final IModelCustom minerRocket = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/minerRocket.obj")); public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asVBO(); public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asVBO(); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java b/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java deleted file mode 100644 index c586ec6d5..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBoosterMissile extends Render { - - public RenderBoosterMissile() { } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(2F, 2F, 2F); - - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileBooster_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java b/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java deleted file mode 100644 index ad6391fe6..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderCarrierMissile extends Render { - - public RenderCarrierMissile() { } - - @Override - public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glScalef(1.0F, 1.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - - if(rocket.getDataWatcher().getWatchableObjectInt(8) == 1) { - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileCarrier_tex; - } -} diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index 08bbe24d0..9985a4c4c 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -167,24 +167,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_doomsday_rusted), generateStandard(ResourceManager.missileDoomsdayRusted_tex, ResourceManager.missileNuclear)); - renderers.put(new ComparableStack(ModItems.missile_carrier), x -> { - GL11.glScalef(2F, 2F, 2F); - x.bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - x.bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - }); - renderers.put(new ComparableStack(ModItems.missile_shuttle), generateStandard(ResourceManager.missileShuttle_tex, ResourceManager.missileShuttle)); } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index d6311b241..e6bcf7f06 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -23,8 +23,6 @@ import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { - //private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); - private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); @Override diff --git a/src/main/java/com/hbm/render/util/ErrorPronter.java b/src/main/java/com/hbm/render/util/ErrorPronter.java deleted file mode 100644 index 421e83c08..000000000 --- a/src/main/java/com/hbm/render/util/ErrorPronter.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.render.util; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; - -public class ErrorPronter { - - public static void prontError() { - - GL11.glDisable(GL11.GL_CULL_FACE); - - GL11.glScaled(2, 2, 2); - - GL11.glColor3d(Math.sin(System.currentTimeMillis() % 1000 / 1000D * Math.PI) * 0.5 + 0.5, 0.0, 0.0); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.universal_bright); - ResourceManager.error.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); - } - -} diff --git a/src/main/resources/assets/hbm/models/LaunchPad.obj b/src/main/resources/assets/hbm/models/LaunchPad.obj deleted file mode 100644 index 4beabf648..000000000 --- a/src/main/resources/assets/hbm/models/LaunchPad.obj +++ /dev/null @@ -1,302 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'launchpad.blend' -# www.blender.org -o Cylinder -v 1.060660 0.250000 -1.060660 -v 0.000000 0.500000 -1.000000 -v 1.500000 0.250000 0.000000 -v 0.707107 0.500000 -0.707107 -v 1.060660 0.250000 1.060660 -v 1.000000 0.500000 0.000000 -v -0.000000 0.250000 1.500000 -v 0.707107 0.500000 0.707107 -v -1.060660 0.250000 1.060660 -v -0.000000 0.500000 1.000000 -v 0.000000 0.250000 -1.500000 -v -0.707107 0.500000 0.707107 -v -1.060660 0.250000 -1.060660 -v -1.000000 0.500000 -0.000000 -v -1.500000 0.250000 -0.000000 -v -0.707107 0.500000 -0.707107 -v 0.000000 0.250000 -1.000000 -v 0.707107 0.250000 -0.707107 -v 1.000000 0.250000 0.000000 -v 0.707107 0.250000 0.707107 -v -0.000000 0.250000 1.000000 -v -0.707107 0.250000 0.707107 -v -1.000000 0.250000 -0.000000 -v -0.707107 0.250000 -0.707107 -v 0.000000 0.000000 -1.500000 -v 1.060660 0.000000 -1.060660 -v 1.500000 0.000000 0.000000 -v 1.060660 0.000000 1.060660 -v -0.000000 0.000000 1.500000 -v -1.060660 0.000000 1.060660 -v -1.500000 0.000000 -0.000000 -v -1.060660 0.000000 -1.060660 -v -0.500000 0.000000 2.000000 -v 0.500000 0.000000 2.000000 -v -0.500000 0.000000 -2.000000 -v 0.500000 0.000000 -2.000000 -v -0.500000 0.125000 -2.000000 -v 0.500000 0.125000 -2.000000 -v -0.500000 0.475000 -0.750000 -v 0.500000 0.475000 -0.750000 -v -0.500000 0.475000 0.750000 -v 0.500000 0.475000 0.750000 -v 0.500000 0.125000 2.000000 -v -0.500000 0.125000 2.000000 -v -0.500000 0.100000 0.750000 -v 0.500000 0.100000 0.750000 -v -0.500000 0.100000 -0.750000 -v 0.500000 0.100000 -0.750000 -v 2.000000 0.000000 0.500000 -v 2.000000 0.000000 -0.500000 -v -2.000000 0.000000 0.500000 -v -2.000000 0.000000 -0.500000 -v -2.000000 0.125000 0.500000 -v -2.000000 0.125000 -0.500000 -v -0.750000 0.475000 0.500000 -v -0.750000 0.475000 -0.500000 -v 0.750000 0.475000 0.500000 -v 0.750000 0.475000 -0.500000 -v 2.000000 0.125000 -0.500000 -v 2.000000 0.125000 0.500000 -v 0.750000 0.100000 0.500000 -v 0.750000 0.100000 -0.500000 -v -0.750000 0.100000 0.500000 -v -0.750000 0.100000 -0.500000 -vt 0.679427 0.603288 -vt 0.736986 0.545729 -vt 0.755787 0.564530 -vt 0.736986 0.464329 -vt 0.763575 0.464329 -vt 0.679428 0.406770 -vt 0.698229 0.387969 -vt 0.598027 0.406770 -vt 0.598027 0.380181 -vt 0.540468 0.464329 -vt 0.521667 0.445528 -vt 0.540468 0.545729 -vt 0.513879 0.545729 -vt 0.598027 0.603288 -vt 0.679427 0.629877 -vt 0.579226 0.622089 -vt 0.371403 0.064091 -vt 0.370621 0.122777 -vt 0.246818 0.069553 -vt 0.028468 0.292851 -vt 0.071192 0.251063 -vt 0.122297 0.378412 -vt 0.289175 0.473320 -vt 0.246967 0.432446 -vt 0.370760 0.378824 -vt 0.456943 0.213084 -vt 0.412191 0.251217 -vt 0.204262 0.028468 -vt 0.122271 0.123726 -vt 0.028468 0.209288 -vt 0.062521 0.124396 -vt 0.121333 0.437581 -vt 0.143605 0.355918 -vt 0.245661 0.401664 -vt 0.429011 0.374227 -vt 0.552285 0.820181 -vt 0.552285 0.686813 -vt 0.658640 0.686813 -vt 0.346906 0.359230 -vt 0.145516 0.144219 -vt 0.102263 0.249691 -vt 0.382068 0.252292 -vt 0.248398 0.100332 -vt 0.348830 0.144590 -vt 0.898743 0.686813 -vt 0.898743 0.820181 -vt 0.792388 0.820181 -vt 0.658640 0.971532 -vt 0.552285 0.971532 -vt 0.552285 0.833475 -vt 0.898743 0.833475 -vt 0.792388 0.833475 -vt 0.898743 0.971532 -vt 0.658640 0.833475 -vt 0.792388 0.971532 -vt 0.753982 0.960778 -vt 0.937149 0.960778 -vt 0.513879 0.960778 -vt 0.539483 0.829891 -vt 0.671442 0.829891 -vt 0.697046 0.960778 -vt 0.413332 0.663908 -vt 0.306977 0.663908 -vt 0.306977 0.530539 -vt 0.066874 0.530539 -vt 0.173229 0.530539 -vt 0.173229 0.663908 -vt 0.413332 0.815259 -vt 0.306977 0.815259 -vt 0.306977 0.677202 -vt 0.066874 0.663908 -vt 0.173229 0.677202 -vt 0.066874 0.815259 -vt 0.066874 0.677202 -vt 0.413332 0.677202 -vt 0.028468 0.804505 -vt 0.211635 0.804505 -vt 0.173229 0.815259 -vt 0.268571 0.804505 -vt 0.294175 0.673617 -vt 0.426134 0.673617 -vt 0.451738 0.804505 -vt 0.722318 0.323245 -vt 0.513879 0.236907 -vt 0.600218 0.028468 -vt 0.698228 0.622089 -vt 0.763575 0.545729 -vt 0.755787 0.445528 -vt 0.679428 0.380181 -vt 0.579226 0.387969 -vt 0.513880 0.464329 -vt 0.598027 0.629877 -vt 0.521667 0.564530 -vt 0.288867 0.028609 -vt 0.062538 0.377750 -vt 0.371704 0.437572 -vt 0.429230 0.127457 -vt 0.121231 0.064583 -vt 0.204447 0.473603 -vt 0.456631 0.289155 -vt 0.658640 0.820181 -vt 0.792388 0.686813 -vt 0.779586 0.829891 -vt 0.911545 0.829891 -vt 0.413332 0.530539 -vt 0.054072 0.673618 -vt 0.186031 0.673618 -vt 0.722318 0.028468 -vt 0.808657 0.114806 -vt 0.808657 0.236907 -vt 0.600218 0.323245 -vt 0.513879 0.114806 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 -0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.000000 -0.996800 0.079700 -vn 0.000000 -0.996800 -0.079700 -vn 0.000000 0.963000 -0.269600 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.963000 0.269600 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.079700 -0.996800 0.000000 -vn -0.079700 -0.996800 -0.000000 -vn -0.269600 0.963000 -0.000000 -vn 0.269600 0.963000 0.000000 -vn 0.000000 -1.000000 0.000000 -s off -f 2/1/1 4/2/1 18/3/1 -f 4/2/2 6/4/2 19/5/2 -f 6/4/3 8/6/3 20/7/3 -f 8/6/4 10/8/4 21/9/4 -f 10/8/5 12/10/5 22/11/5 -f 12/10/6 14/12/6 23/13/6 -f 14/12/7 8/6/7 6/4/7 -f 16/14/8 2/1/8 17/15/8 -f 14/12/9 16/14/9 24/16/9 -f 17/17/7 11/18/7 13/19/7 -f 22/20/7 9/21/7 7/22/7 -f 20/23/7 5/24/7 3/25/7 -f 18/26/7 1/27/7 11/18/7 -f 24/28/7 13/19/7 15/29/7 -f 22/30/7 23/31/7 15/29/7 -f 21/32/7 7/22/7 5/24/7 -f 7/22/4 29/33/4 28/34/4 -f 19/35/7 3/25/7 1/27/7 -f 36/36/10 48/37/10 47/38/10 -f 5/24/3 28/34/3 27/39/3 -f 15/29/6 31/40/6 30/41/6 -f 9/21/5 30/41/5 29/33/5 -f 3/25/2 27/39/2 26/42/2 -f 13/19/9 32/43/9 31/40/9 -f 1/27/1 26/42/1 25/44/1 -f 11/18/8 25/44/8 32/43/8 -f 46/45/11 34/46/11 33/47/11 -f 39/48/12 40/49/12 38/50/12 -f 33/47/13 34/46/13 43/51/13 -f 44/52/14 43/51/14 42/53/14 -f 37/54/15 38/50/15 36/36/15 -f 44/52/16 41/55/16 45/56/16 -f 46/57/17 42/53/17 43/51/17 -f 48/58/17 36/59/17 38/50/17 -f 37/54/16 35/60/16 47/61/16 -f 51/62/18 52/63/18 64/64/18 -f 61/65/19 62/66/19 50/67/19 -f 55/68/20 56/69/20 54/70/20 -f 49/71/17 50/67/17 59/72/17 -f 57/73/21 60/74/21 59/72/21 -f 53/75/16 54/70/16 52/63/16 -f 60/74/13 57/73/13 61/76/13 -f 62/77/15 58/78/15 59/72/15 -f 64/79/15 52/80/15 54/70/15 -f 53/75/13 51/81/13 63/82/13 -f 28/83/22 30/84/22 32/85/22 -f 17/86/1 2/1/1 18/3/1 -f 18/87/2 4/2/2 19/5/2 -f 19/88/3 6/4/3 20/7/3 -f 20/89/4 8/6/4 21/9/4 -f 21/90/5 10/8/5 22/11/5 -f 22/91/6 12/10/6 23/13/6 -f 6/4/7 4/2/7 2/1/7 -f 2/1/7 16/14/7 6/4/7 -f 14/12/7 12/10/7 10/8/7 -f 10/8/7 8/6/7 14/12/7 -f 6/4/7 16/14/7 14/12/7 -f 24/92/8 16/14/8 17/15/8 -f 23/93/9 14/12/9 24/16/9 -f 24/94/7 17/17/7 13/19/7 -f 21/95/7 22/20/7 7/22/7 -f 19/96/7 20/23/7 3/25/7 -f 17/97/7 18/26/7 11/18/7 -f 23/98/7 24/28/7 15/29/7 -f 9/21/7 22/30/7 15/29/7 -f 20/99/7 21/32/7 5/24/7 -f 5/24/4 7/22/4 28/34/4 -f 18/100/7 19/35/7 1/27/7 -f 35/101/10 36/36/10 47/38/10 -f 3/25/3 5/24/3 27/39/3 -f 9/21/6 15/29/6 30/41/6 -f 7/22/5 9/21/5 29/33/5 -f 1/27/2 3/25/2 26/42/2 -f 15/29/9 13/19/9 31/40/9 -f 11/18/1 1/27/1 25/44/1 -f 13/19/8 11/18/8 32/43/8 -f 45/102/11 46/45/11 33/47/11 -f 37/54/12 39/48/12 38/50/12 -f 44/52/13 33/47/13 43/51/13 -f 41/55/14 44/52/14 42/53/14 -f 35/101/15 37/54/15 36/36/15 -f 33/103/16 44/52/16 45/56/16 -f 34/104/17 46/57/17 43/51/17 -f 40/49/17 48/58/17 38/50/17 -f 39/48/16 37/54/16 47/61/16 -f 63/105/18 51/62/18 64/64/18 -f 49/71/19 61/65/19 50/67/19 -f 53/75/20 55/68/20 54/70/20 -f 60/74/17 49/71/17 59/72/17 -f 58/78/21 57/73/21 59/72/21 -f 51/62/16 53/75/16 52/63/16 -f 49/106/13 60/74/13 61/76/13 -f 50/107/15 62/77/15 59/72/15 -f 56/69/15 64/79/15 54/70/15 -f 55/68/13 53/75/13 63/82/13 -f 32/85/22 25/108/22 26/109/22 -f 26/109/22 27/110/22 28/83/22 -f 28/83/22 29/111/22 30/84/22 -f 30/84/22 31/112/22 32/85/22 -f 32/85/22 26/109/22 28/83/22 diff --git a/src/main/resources/assets/hbm/models/cwis_base.obj b/src/main/resources/assets/hbm/models/cwis_base.obj deleted file mode 100644 index 47dc23c11..000000000 --- a/src/main/resources/assets/hbm/models/cwis_base.obj +++ /dev/null @@ -1,44 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_base.blend' -# www.blender.org -o Cube_Cube.001 -v -1.000000 0.000000 1.000000 -v -1.000000 0.250000 1.000000 -v -1.000000 0.000000 -1.000000 -v -1.000000 0.250000 -1.000000 -v 1.000000 0.000000 1.000000 -v 1.000000 0.250000 1.000000 -v 1.000000 0.000000 -1.000000 -v 1.000000 0.250000 -1.000000 -vt 0.444444 0.444444 -vt 0.444444 0.500000 -vt 0.000000 0.500000 -vt 0.888889 0.444444 -vt 0.888889 0.500000 -vt 0.444444 1.000000 -vt 0.444444 0.944444 -vt 0.888888 0.944444 -vt 0.000000 1.000000 -vt 0.000000 0.944444 -vt 0.444444 0.000000 -vt 0.000000 0.444444 -vt 0.888888 1.000000 -vt 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/2/2 -f 6/6/3 5/7/3 7/8/3 -f 2/9/4 1/10/4 5/7/4 -f 3/2/5 7/7/5 5/10/5 -f 8/11/6 4/1/6 2/12/6 -f 2/12/1 4/1/1 1/3/1 -f 4/1/2 8/4/2 3/2/2 -f 8/13/3 6/6/3 7/8/3 -f 6/6/4 2/9/4 5/7/4 -f 1/3/5 3/2/5 5/10/5 -f 6/14/6 8/11/6 2/12/6 diff --git a/src/main/resources/assets/hbm/models/cwis_gun.obj b/src/main/resources/assets/hbm/models/cwis_gun.obj deleted file mode 100644 index b0a3f9bfc..000000000 --- a/src/main/resources/assets/hbm/models/cwis_gun.obj +++ /dev/null @@ -1,438 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_gun.blend' -# www.blender.org -o Cylinder -v -0.000000 0.125000 0.950000 -v -0.000000 0.125000 1.050000 -v 0.088388 0.088388 0.950000 -v 0.088388 0.088388 1.050000 -v 0.125000 -0.000000 0.950000 -v 0.125000 -0.000000 1.050000 -v 0.088388 -0.088388 0.950000 -v 0.088388 -0.088388 1.050000 -v -0.000000 -0.125000 0.950000 -v -0.000000 -0.125000 1.050000 -v -0.088388 -0.088388 0.950000 -v -0.088388 -0.088388 1.050000 -v -0.125000 0.000000 0.950000 -v -0.125000 0.000000 1.050000 -v -0.088388 0.088388 0.950000 -v -0.088388 0.088388 1.050000 -v -0.000000 0.125000 0.450000 -v -0.000000 0.125000 0.550000 -v 0.088388 0.088388 0.450000 -v 0.088388 0.088388 0.550000 -v 0.125000 -0.000000 0.450000 -v 0.125000 -0.000000 0.550000 -v 0.088388 -0.088388 0.450000 -v 0.088388 -0.088388 0.550000 -v -0.000000 -0.125000 0.450000 -v -0.000000 -0.125000 0.550000 -v -0.088388 -0.088388 0.450000 -v -0.088388 -0.088388 0.550000 -v -0.125000 0.000000 0.450000 -v -0.125000 0.000000 0.550000 -v -0.088388 0.088388 0.450000 -v -0.088388 0.088388 0.550000 -v -0.000000 0.125000 1.450000 -v -0.000000 0.125000 1.950000 -v 0.088388 0.088388 1.450000 -v 0.088388 0.088388 1.950000 -v 0.125000 -0.000000 1.450000 -v 0.125000 -0.000000 1.950000 -v 0.088388 -0.088388 1.450000 -v 0.088388 -0.088388 1.950000 -v -0.000000 -0.125000 1.450000 -v -0.000000 -0.125000 1.950000 -v -0.088388 -0.088388 1.450000 -v -0.088388 -0.088388 1.950000 -v -0.125000 0.000000 1.450000 -v -0.125000 0.000000 1.950000 -v -0.088388 0.088388 1.450000 -v -0.088388 0.088388 1.950000 -v -0.025000 0.050000 2.000000 -v -0.025000 0.100000 2.000000 -v -0.025000 0.050000 0.550000 -v -0.025000 0.100000 0.550000 -v 0.025000 0.050000 2.000000 -v 0.025000 0.100000 2.000000 -v 0.025000 0.050000 0.550000 -v 0.025000 0.100000 0.550000 -v -0.025000 -0.100000 2.000000 -v -0.025000 -0.050000 2.000000 -v -0.025000 -0.100000 0.550000 -v -0.025000 -0.050000 0.550000 -v 0.025000 -0.100000 2.000000 -v 0.025000 -0.050000 2.000000 -v 0.025000 -0.100000 0.550000 -v 0.025000 -0.050000 0.550000 -v 0.030801 0.046651 2.000000 -v 0.074103 0.071651 2.000000 -v 0.030801 0.046651 0.550000 -v 0.074103 0.071651 0.550000 -v 0.055801 0.003349 2.000000 -v 0.099103 0.028349 2.000000 -v 0.055801 0.003349 0.550000 -v 0.099103 0.028349 0.550000 -v -0.099103 -0.028349 2.000000 -v -0.055801 -0.003349 2.000000 -v -0.099103 -0.028349 0.550000 -v -0.055801 -0.003349 0.550000 -v -0.074103 -0.071651 2.000000 -v -0.030801 -0.046651 2.000000 -v -0.074103 -0.071651 0.550000 -v -0.030801 -0.046651 0.550000 -v 0.055801 -0.003349 2.000000 -v 0.099103 -0.028349 2.000000 -v 0.055801 -0.003349 0.550000 -v 0.099103 -0.028349 0.550000 -v 0.030801 -0.046651 2.000000 -v 0.074103 -0.071651 2.000000 -v 0.030801 -0.046651 0.550000 -v 0.074103 -0.071651 0.550000 -v -0.074103 0.071651 2.000000 -v -0.030801 0.046651 2.000000 -v -0.074103 0.071651 0.550000 -v -0.030801 0.046651 0.550000 -v -0.099103 0.028349 2.000000 -v -0.055801 0.003349 2.000000 -v -0.099103 0.028349 0.550000 -v -0.055801 0.003349 0.550000 -vt 0.550118 0.760811 -vt 0.591204 0.760811 -vt 0.591204 0.803757 -vt 0.632291 0.760811 -vt 0.673377 0.760811 -vt 0.673377 0.803757 -vt 0.714463 0.760811 -vt 0.714463 0.803757 -vt 0.385773 0.760811 -vt 0.426859 0.760811 -vt 0.426859 0.803757 -vt 0.467946 0.760811 -vt 0.781571 0.779002 -vt 0.752518 0.708863 -vt 0.822657 0.679811 -vt 0.509032 0.760811 -vt 0.550118 0.803757 -vt 0.509032 0.803757 -vt 0.781571 0.916248 -vt 0.752519 0.846109 -vt 0.822657 0.817057 -vt 0.550118 0.679811 -vt 0.550118 0.722756 -vt 0.509032 0.722756 -vt 0.467946 0.722756 -vt 0.467946 0.679811 -vt 0.426859 0.722756 -vt 0.426859 0.679811 -vt 0.385773 0.722756 -vt 0.385773 0.679811 -vt 0.714463 0.722756 -vt 0.673377 0.722756 -vt 0.673377 0.679811 -vt 0.632291 0.722756 -vt 0.951920 0.118219 -vt 0.881781 0.089166 -vt 0.910834 0.019028 -vt 0.591204 0.722756 -vt 0.632291 0.679811 -vt 0.183373 0.233755 -vt 0.142286 0.233755 -vt 0.142286 0.019028 -vt 0.101200 0.233755 -vt 0.101200 0.019028 -vt 0.060114 0.233755 -vt 0.060114 0.019028 -vt 0.019028 0.233755 -vt 0.019028 0.019028 -vt 0.347718 0.233755 -vt 0.306632 0.233755 -vt 0.306632 0.019028 -vt 0.265545 0.233755 -vt 0.265545 0.019028 -vt 0.414825 0.941003 -vt 0.414825 0.841812 -vt 0.455912 0.841812 -vt 0.224459 0.019028 -vt 0.224459 0.233755 -vt 0.552072 0.941003 -vt 0.552072 0.841812 -vt 0.593158 0.841812 -vt 0.676830 0.019028 -vt 0.698302 0.019028 -vt 0.698303 0.641726 -vt 0.509936 0.019028 -vt 0.531409 0.019028 -vt 0.531408 0.641726 -vt 0.655356 0.641726 -vt 0.633883 0.641726 -vt 0.633884 0.019028 -vt 0.266926 0.293283 -vt 0.266926 0.271810 -vt 0.288398 0.271810 -vt 0.719775 0.019028 -vt 0.719777 0.641726 -vt 0.655357 0.019028 -vt 0.676830 0.641726 -vt 0.574354 0.641726 -vt 0.552882 0.641726 -vt 0.552881 0.019028 -vt 0.266926 0.352811 -vt 0.266926 0.331338 -vt 0.288398 0.331338 -vt 0.574355 0.019028 -vt 0.595827 0.019028 -vt 0.595828 0.641726 -vt 0.061974 0.271810 -vt 0.083446 0.271810 -vt 0.083448 0.894508 -vt 0.757834 0.019028 -vt 0.779306 0.019028 -vt 0.779306 0.641726 -vt 0.040500 0.894508 -vt 0.019028 0.894508 -vt 0.019028 0.271810 -vt 0.288398 0.590923 -vt 0.266926 0.590923 -vt 0.266926 0.569450 -vt 0.104919 0.271810 -vt 0.104921 0.894508 -vt 0.040501 0.271810 -vt 0.061974 0.894508 -vt 0.822252 0.641725 -vt 0.800780 0.641726 -vt 0.800779 0.019028 -vt 0.288398 0.531395 -vt 0.266926 0.531395 -vt 0.266926 0.509922 -vt 0.822253 0.019028 -vt 0.843725 0.019028 -vt 0.843726 0.641726 -vt 0.428934 0.019043 -vt 0.450407 0.019050 -vt 0.450193 0.641748 -vt 0.142978 0.271810 -vt 0.164451 0.271810 -vt 0.164450 0.894508 -vt 0.407245 0.641733 -vt 0.385773 0.641726 -vt 0.385988 0.019028 -vt 0.266926 0.450394 -vt 0.288398 0.450394 -vt 0.288398 0.471867 -vt 0.471879 0.019057 -vt 0.471667 0.641755 -vt 0.407462 0.019035 -vt 0.428719 0.641741 -vt 0.207397 0.894508 -vt 0.185924 0.894508 -vt 0.185923 0.271810 -vt 0.288398 0.390866 -vt 0.288398 0.412339 -vt 0.266926 0.412339 -vt 0.207397 0.271810 -vt 0.228869 0.271810 -vt 0.228870 0.894508 -vt 0.632291 0.803757 -vt 0.385773 0.803757 -vt 0.467946 0.803757 -vt 0.851710 0.708863 -vt 0.851710 0.749949 -vt 0.822657 0.779002 -vt 0.752519 0.749949 -vt 0.781571 0.679811 -vt 0.851710 0.846109 -vt 0.851710 0.887195 -vt 0.822657 0.916248 -vt 0.752518 0.887195 -vt 0.781571 0.817057 -vt 0.509032 0.679811 -vt 0.714463 0.679811 -vt 0.951920 0.019028 -vt 0.980972 0.048080 -vt 0.980972 0.089166 -vt 0.910834 0.118219 -vt 0.881781 0.048080 -vt 0.591204 0.679811 -vt 0.183373 0.019028 -vt 0.347718 0.019028 -vt 0.484964 0.870865 -vt 0.484964 0.911951 -vt 0.455912 0.941003 -vt 0.385773 0.911951 -vt 0.385773 0.870865 -vt 0.622210 0.870864 -vt 0.622210 0.911951 -vt 0.593158 0.941003 -vt 0.523019 0.911951 -vt 0.523019 0.870864 -vt 0.509934 0.641726 -vt 0.288398 0.293283 -vt 0.288398 0.352811 -vt 0.757832 0.641725 -vt 0.288398 0.569450 -vt 0.288398 0.509922 -vt 0.142977 0.894508 -vt 0.266926 0.471867 -vt 0.266926 0.390866 -vn 0.382700 0.923900 0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn 0.000000 0.000000 1.000000 -vn -0.382700 0.923900 0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.000000 -0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.500000 0.866000 -0.000000 -vn 0.500000 -0.866000 0.000000 -vn -0.866000 -0.500000 -0.000000 -vn 0.866000 0.500000 0.000000 -vn 0.500000 0.866000 -0.000000 -vn -0.500000 -0.866000 0.000000 -vn -0.866000 0.500000 -0.000000 -vn 0.866000 -0.500000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 14/13/7 10/14/7 6/15/7 -f 16/16/8 2/1/8 1/17/8 -f 14/12/9 16/16/9 15/18/9 -f 7/19/10 11/20/10 15/21/10 -f 17/22/1 18/23/1 20/24/1 -f 20/24/2 22/25/2 21/26/2 -f 22/25/3 24/27/3 23/28/3 -f 24/27/4 26/29/4 25/30/4 -f 26/31/5 28/32/5 27/33/5 -f 27/33/6 28/32/6 30/34/6 -f 30/35/7 26/36/7 22/37/7 -f 32/38/8 18/23/8 17/22/8 -f 29/39/9 30/34/9 32/38/9 -f 34/40/1 36/41/1 35/42/1 -f 36/41/2 38/43/2 37/44/2 -f 38/43/3 40/45/3 39/46/3 -f 40/45/4 42/47/4 41/48/4 -f 42/49/5 44/50/5 43/51/5 -f 44/50/6 46/52/6 45/53/6 -f 46/54/7 40/55/7 38/56/7 -f 47/57/8 48/58/8 34/40/8 -f 46/52/9 48/58/9 47/57/9 -f 39/59/10 45/60/10 47/61/10 -f 52/62/11 51/63/11 49/64/11 -f 60/65/11 59/66/11 57/67/11 -f 54/68/12 53/69/12 55/70/12 -f 50/71/7 49/72/7 53/73/7 -f 51/63/13 55/74/13 53/75/13 -f 56/76/14 52/62/14 50/77/14 -f 62/78/12 61/79/12 63/80/12 -f 58/81/7 57/82/7 61/83/7 -f 59/66/13 63/80/13 61/79/13 -f 64/84/14 60/85/14 58/86/14 -f 68/87/15 67/88/15 65/89/15 -f 76/90/15 75/91/15 73/92/15 -f 70/93/16 69/94/16 71/95/16 -f 66/96/7 65/97/7 69/98/7 -f 67/88/17 71/99/17 69/100/17 -f 72/101/18 68/87/18 66/102/18 -f 78/103/16 77/104/16 79/105/16 -f 74/106/7 73/107/7 77/108/7 -f 75/91/17 79/105/17 77/104/17 -f 80/109/18 76/110/18 74/111/18 -f 84/112/19 83/113/19 81/114/19 -f 92/115/19 91/116/19 89/117/19 -f 86/118/20 85/119/20 87/120/20 -f 82/121/7 81/122/7 85/123/7 -f 83/113/21 87/124/21 85/125/21 -f 88/126/22 84/112/22 82/127/22 -f 94/128/20 93/129/20 95/130/20 -f 94/131/7 90/132/7 89/133/7 -f 91/116/21 95/130/21 93/129/21 -f 96/134/22 92/135/22 90/136/22 -f 1/17/1 2/1/1 3/3/1 -f 5/137/2 3/3/2 6/4/2 -f 5/137/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/138/5 10/9/5 11/11/5 -f 13/139/6 11/11/6 14/12/6 -f 6/15/7 4/140/7 2/141/7 -f 2/141/7 16/142/7 14/13/7 -f 14/13/7 12/143/7 10/14/7 -f 10/14/7 8/144/7 6/15/7 -f 6/15/7 2/141/7 14/13/7 -f 15/18/8 16/16/8 1/17/8 -f 13/139/9 14/12/9 15/18/9 -f 15/21/10 1/145/10 3/146/10 -f 3/146/10 5/147/10 15/21/10 -f 7/19/10 9/148/10 11/20/10 -f 11/20/10 13/149/10 15/21/10 -f 15/21/10 5/147/10 7/19/10 -f 19/150/1 17/22/1 20/24/1 -f 19/150/2 20/24/2 21/26/2 -f 21/26/3 22/25/3 23/28/3 -f 23/28/4 24/27/4 25/30/4 -f 25/151/5 26/31/5 27/33/5 -f 29/39/6 27/33/6 30/34/6 -f 22/37/7 20/152/7 18/153/7 -f 18/153/7 32/154/7 30/35/7 -f 30/35/7 28/155/7 26/36/7 -f 26/36/7 24/156/7 22/37/7 -f 22/37/7 18/153/7 30/35/7 -f 31/157/8 32/38/8 17/22/8 -f 31/157/9 29/39/9 32/38/9 -f 33/158/1 34/40/1 35/42/1 -f 35/42/2 36/41/2 37/44/2 -f 37/44/3 38/43/3 39/46/3 -f 39/46/4 40/45/4 41/48/4 -f 41/159/5 42/49/5 43/51/5 -f 43/51/6 44/50/6 45/53/6 -f 38/56/7 36/160/7 34/161/7 -f 34/161/7 48/162/7 46/54/7 -f 46/54/7 44/163/7 42/164/7 -f 42/164/7 40/55/7 46/54/7 -f 38/56/7 34/161/7 46/54/7 -f 33/158/8 47/57/8 34/40/8 -f 45/53/9 46/52/9 47/57/9 -f 47/61/10 33/165/10 35/166/10 -f 35/166/10 37/167/10 47/61/10 -f 39/59/10 41/168/10 43/169/10 -f 43/169/10 45/60/10 39/59/10 -f 47/61/10 37/167/10 39/59/10 -f 50/77/11 52/62/11 49/64/11 -f 58/170/11 60/65/11 57/67/11 -f 56/76/12 54/68/12 55/70/12 -f 54/171/7 50/71/7 53/73/7 -f 49/64/13 51/63/13 53/75/13 -f 54/68/14 56/76/14 50/77/14 -f 64/84/12 62/78/12 63/80/12 -f 62/172/7 58/81/7 61/83/7 -f 57/67/13 59/66/13 61/79/13 -f 62/78/14 64/84/14 58/86/14 -f 66/102/15 68/87/15 65/89/15 -f 74/173/15 76/90/15 73/92/15 -f 72/101/16 70/93/16 71/95/16 -f 70/174/7 66/96/7 69/98/7 -f 65/89/17 67/88/17 69/100/17 -f 70/93/18 72/101/18 66/102/18 -f 80/109/16 78/103/16 79/105/16 -f 78/175/7 74/106/7 77/108/7 -f 73/92/17 75/91/17 77/104/17 -f 78/103/18 80/109/18 74/111/18 -f 82/127/19 84/112/19 81/114/19 -f 90/176/19 92/115/19 89/117/19 -f 88/126/20 86/118/20 87/120/20 -f 86/177/7 82/121/7 85/123/7 -f 81/114/21 83/113/21 85/125/21 -f 86/118/22 88/126/22 82/127/22 -f 96/134/20 94/128/20 95/130/20 -f 93/178/7 94/131/7 89/133/7 -f 89/117/21 91/116/21 93/129/21 -f 94/128/22 96/134/22 90/136/22 diff --git a/src/main/resources/assets/hbm/models/cwis_head.obj b/src/main/resources/assets/hbm/models/cwis_head.obj deleted file mode 100644 index fe093b5d8..000000000 --- a/src/main/resources/assets/hbm/models/cwis_head.obj +++ /dev/null @@ -1,613 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_head.blend' -# www.blender.org -o Cube.001_Cube.002 -v -0.500000 -0.250000 0.500000 -v -0.500000 0.250000 0.500000 -v -0.500000 -0.250000 -0.500000 -v -0.500000 0.250000 -0.500000 -v 0.500000 -0.250000 0.500000 -v 0.500000 0.250000 0.500000 -v 0.500000 -0.250000 -0.500000 -v 0.500000 0.250000 -0.500000 -v -0.187500 -0.187500 1.000000 -v -0.187500 0.187500 1.000000 -v 0.187500 -0.187500 1.000000 -v 0.187500 0.187500 1.000000 -v 0.250000 2.183013 0.000000 -v 0.000000 2.250000 0.000000 -v 0.000000 0.250000 -0.500000 -v 0.250000 0.250000 -0.433013 -v 0.433013 0.250000 -0.250000 -v 0.500000 0.250000 0.000000 -v 0.433013 0.250000 0.250000 -v 0.250000 0.250000 0.433013 -v 0.000000 0.250000 0.500000 -v -0.250000 0.250000 0.433013 -v -0.433013 0.250000 0.250000 -v -0.500000 0.250000 0.000000 -v -0.433013 0.250000 -0.250000 -v -0.250000 0.250000 -0.433013 -v 0.433013 2.000000 0.000000 -v 0.500000 1.750000 0.000000 -v -0.433013 1.750000 0.250000 -v 0.433013 1.750000 -0.250000 -v 0.375000 2.000000 -0.216506 -v 0.216506 2.183013 -0.125000 -v -0.500000 1.750000 0.000000 -v -0.433013 2.000000 0.000000 -v -0.250000 2.183012 0.000000 -v -0.375000 2.000000 0.216506 -v -0.216507 2.183012 0.125000 -v -0.250000 1.750000 0.433013 -v 0.250000 1.750000 -0.433013 -v 0.216506 2.000000 -0.375000 -v 0.125000 2.183013 -0.216506 -v -0.216506 2.000000 0.375000 -v -0.125000 2.183012 0.216507 -v 0.000000 1.750000 0.500000 -v -0.000000 1.750000 -0.500000 -v -0.000000 2.000000 -0.433013 -v -0.000000 2.183013 -0.250000 -v 0.000000 2.000000 0.433013 -v 0.000000 2.183012 0.250000 -v 0.250000 1.750000 0.433013 -v -0.250000 1.750000 -0.433013 -v -0.216507 2.000000 -0.375000 -v -0.125000 2.183013 -0.216506 -v 0.216507 2.000000 0.375000 -v 0.125000 2.183012 0.216507 -v 0.433013 1.750000 0.250000 -v -0.433013 1.750000 -0.250000 -v -0.375000 2.000000 -0.216506 -v -0.216507 2.183013 -0.125000 -v 0.375000 2.000000 0.216506 -v 0.216507 2.183012 0.125000 -v 0.000000 -0.250000 -0.650000 -v 0.000000 -0.250000 0.500000 -v 0.125000 -0.283494 -0.650000 -v 0.125000 -0.283494 0.500000 -v 0.216506 -0.375000 -0.650000 -v 0.216506 -0.375000 0.500000 -v 0.250000 -0.500000 -0.650000 -v 0.250000 -0.500000 0.500000 -v 0.216506 -0.625000 -0.650000 -v 0.216506 -0.625000 0.500000 -v 0.125000 -0.716506 -0.650000 -v 0.125000 -0.716506 0.500000 -v 0.000000 -0.750000 -0.650000 -v 0.000000 -0.750000 0.500000 -v -0.125000 -0.716506 -0.650000 -v -0.125000 -0.716506 0.500000 -v -0.216506 -0.625000 -0.650000 -v -0.216506 -0.625000 0.500000 -v -0.250000 -0.500000 -0.650000 -v -0.250000 -0.500000 0.500000 -v -0.216506 -0.375000 -0.650000 -v -0.216506 -0.375000 0.500000 -v -0.125000 -0.283494 -0.650000 -v -0.125000 -0.283494 0.500000 -v 0.106250 -0.315970 0.650000 -v -0.000000 -0.287500 0.650000 -v 0.184030 -0.393750 0.650000 -v 0.212500 -0.500000 0.650000 -v 0.184030 -0.606250 0.650000 -v 0.106250 -0.684030 0.650000 -v 0.000000 -0.712500 0.650000 -v -0.106250 -0.684030 0.650000 -v -0.184030 -0.606250 0.650000 -v -0.212500 -0.500000 0.650000 -v -0.184030 -0.393750 0.650000 -v -0.106250 -0.315970 0.650000 -v -0.300000 -0.500000 0.300000 -v -0.400000 -0.250000 0.400000 -v -0.300000 -0.500000 0.250000 -v -0.400000 -0.250000 0.150000 -v 0.300000 -0.500000 0.300000 -v 0.400000 -0.250000 0.400000 -v 0.300000 -0.500000 0.250000 -v 0.400000 -0.250000 0.150000 -v -0.300000 -0.500000 -0.250000 -v -0.400000 -0.250000 -0.150000 -v -0.300000 -0.500000 -0.300000 -v -0.400000 -0.250000 -0.400000 -v 0.300000 -0.500000 -0.250000 -v 0.400000 -0.250000 -0.150000 -v 0.300000 -0.500000 -0.300000 -v 0.400000 -0.250000 -0.400000 -vt 0.192029 0.192029 -vt 0.192029 0.280351 -vt 0.015385 0.280351 -vt 0.368673 0.192029 -vt 0.368673 0.280351 -vt 0.545317 0.192029 -vt 0.545317 0.280351 -vt 0.807971 0.378738 -vt 0.807971 0.290416 -vt 0.984615 0.290416 -vt 0.368673 0.456995 -vt 0.192029 0.015385 -vt 0.680241 0.170636 -vt 0.680241 0.104395 -vt 0.746483 0.104395 -vt 0.801684 0.259645 -vt 0.625040 0.259645 -vt 0.625040 0.015385 -vt 0.801684 0.015385 -vt 0.576088 0.181676 -vt 0.564012 0.487768 -vt 0.564011 0.752734 -vt 0.518292 0.752734 -vt 0.472573 0.752733 -vt 0.472575 0.487768 -vt 0.426855 0.752733 -vt 0.426856 0.487767 -vt 0.381136 0.752733 -vt 0.381137 0.487767 -vt 0.335417 0.752733 -vt 0.278268 0.843295 -vt 0.266839 0.887562 -vt 0.255409 0.843295 -vt 0.247042 0.798349 -vt 0.286636 0.798349 -vt 0.243980 0.752733 -vt 0.323987 0.843296 -vt 0.312557 0.887563 -vt 0.301128 0.843296 -vt 0.292761 0.798349 -vt 0.332355 0.798349 -vt 0.289698 0.752733 -vt 0.369706 0.843296 -vt 0.358276 0.887563 -vt 0.346847 0.843296 -vt 0.403995 0.887563 -vt 0.392565 0.843296 -vt 0.415425 0.843296 -vt 0.449713 0.887563 -vt 0.438284 0.843296 -vt 0.461143 0.843296 -vt 0.484003 0.843296 -vt 0.506862 0.843296 -vt 0.495432 0.887563 -vt 0.529722 0.843296 -vt 0.552581 0.843296 -vt 0.541151 0.887563 -vt 0.049674 0.843295 -vt 0.038244 0.887562 -vt 0.026815 0.843295 -vt 0.095393 0.843295 -vt 0.083963 0.887562 -vt 0.072534 0.843295 -vt 0.141112 0.843295 -vt 0.129682 0.887562 -vt 0.118253 0.843295 -vt 0.163971 0.843295 -vt 0.186831 0.843295 -vt 0.175401 0.887562 -vt 0.232550 0.843295 -vt 0.221120 0.887563 -vt 0.209690 0.843295 -vt 0.201323 0.798349 -vt 0.198261 0.752732 -vt 0.240917 0.798349 -vt 0.195198 0.798348 -vt 0.155604 0.798348 -vt 0.109886 0.798348 -vt 0.106823 0.752732 -vt 0.152542 0.752732 -vt 0.149479 0.798348 -vt 0.064167 0.798348 -vt 0.103760 0.798348 -vt 0.061104 0.752732 -vt 0.018448 0.798348 -vt 0.058041 0.798348 -vt 0.015385 0.752732 -vt 0.521355 0.798350 -vt 0.560948 0.798350 -vt 0.475636 0.798350 -vt 0.515230 0.798350 -vt 0.429917 0.798349 -vt 0.469511 0.798349 -vt 0.423792 0.798349 -vt 0.338480 0.798349 -vt 0.378073 0.798349 -vt 0.384198 0.798349 -vt 0.015386 0.487766 -vt 0.061105 0.487766 -vt 0.289699 0.487767 -vt 0.198262 0.487767 -vt 0.152543 0.487766 -vt 0.746483 0.170636 -vt 0.850636 0.093354 -vt 0.622041 0.762079 -vt 0.622041 0.739219 -vt 0.825182 0.739220 -vt 0.622041 0.716360 -vt 0.825182 0.716360 -vt 0.622041 0.693501 -vt 0.825182 0.693501 -vt 0.622041 0.670641 -vt 0.825182 0.670642 -vt 0.622041 0.647782 -vt 0.825182 0.647782 -vt 0.622041 0.624922 -vt 0.825182 0.624923 -vt 0.622042 0.602063 -vt 0.825182 0.602064 -vt 0.622042 0.579204 -vt 0.825182 0.579204 -vt 0.622042 0.556344 -vt 0.825182 0.556345 -vt 0.622042 0.533485 -vt 0.825182 0.533486 -vt 0.594783 0.691786 -vt 0.594783 0.672356 -vt 0.622042 0.510625 -vt 0.622042 0.487766 -vt 0.825183 0.487767 -vt 0.825182 0.510626 -vt 0.911978 0.846936 -vt 0.838096 0.866733 -vt 0.857892 0.792850 -vt 0.855953 0.514308 -vt 0.882496 0.487766 -vt 0.928469 0.533739 -vt 0.594784 0.508911 -vt 0.594783 0.760364 -vt 0.594783 0.740934 -vt 0.594783 0.714646 -vt 0.594783 0.695215 -vt 0.594784 0.531770 -vt 0.594784 0.512340 -vt 0.594783 0.737505 -vt 0.594784 0.554630 -vt 0.594784 0.535199 -vt 0.594783 0.577489 -vt 0.594784 0.558059 -vt 0.594783 0.600348 -vt 0.594783 0.623208 -vt 0.594783 0.603777 -vt 0.594783 0.646067 -vt 0.594783 0.626637 -vt 0.594783 0.668927 -vt 0.594783 0.649496 -vt 0.576088 0.320315 -vt 0.623651 0.337979 -vt 0.623651 0.346811 -vt 0.747302 0.290416 -vt 0.729637 0.337979 -vt 0.777200 0.364476 -vt 0.729637 0.346811 -vt 0.605986 0.394374 -vt 0.594783 0.822748 -vt 0.642346 0.840413 -vt 0.642346 0.849245 -vt 0.765997 0.792850 -vt 0.748332 0.840413 -vt 0.795895 0.866909 -vt 0.748332 0.849245 -vt 0.624682 0.896808 -vt 0.015385 0.192029 -vt 0.984615 0.378738 -vt 0.192029 0.456995 -vt 0.368673 0.015385 -vt 0.576088 0.093354 -vt 0.518293 0.487768 -vt 0.335418 0.487767 -vt 0.106824 0.487766 -vt 0.243980 0.487767 -vt 0.850636 0.181676 -vt 0.825182 0.762079 -vt 0.880752 0.792850 -vt 0.900549 0.804280 -vt 0.911978 0.824077 -vt 0.900549 0.866733 -vt 0.880752 0.878162 -vt 0.857892 0.878162 -vt 0.826666 0.846936 -vt 0.826666 0.824076 -vt 0.838096 0.804280 -vt 0.918754 0.550566 -vt 0.865668 0.550566 -vt 0.901926 0.560282 -vt 0.882496 0.560281 -vt 0.855953 0.533739 -vt 0.865669 0.497481 -vt 0.901926 0.487766 -vt 0.918754 0.497481 -vt 0.928469 0.514309 -vt 0.594784 0.489480 -vt 0.594783 0.718075 -vt 0.594783 0.580918 -vt 0.576088 0.364476 -vt 0.605986 0.290416 -vt 0.777200 0.320315 -vt 0.747302 0.394374 -vt 0.594783 0.866909 -vt 0.624682 0.792850 -vt 0.795895 0.822748 -vt 0.765997 0.896808 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.992300 0.124000 -vn 0.000000 -0.992300 0.124000 -vn -0.848000 0.000000 0.530000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn -0.069200 0.963600 0.258200 -vn -0.186200 0.694700 0.694700 -vn -0.250600 0.250600 0.935100 -vn 0.069200 0.963600 0.258200 -vn 0.186200 0.694700 0.694700 -vn 0.250600 0.250600 0.935100 -vn 0.189000 0.963600 0.189000 -vn 0.258200 0.963600 0.069200 -vn 0.258200 0.963600 -0.069200 -vn 0.189000 0.963600 -0.189000 -vn 0.069200 0.963600 -0.258200 -vn -0.069200 0.963600 -0.258200 -vn -0.189000 0.963600 -0.189000 -vn -0.258200 0.963600 -0.069200 -vn -0.258200 0.963600 0.069200 -vn -0.189000 0.963600 0.189000 -vn -0.508600 0.694700 0.508600 -vn -0.684600 0.250600 0.684600 -vn -0.694700 0.694700 0.186200 -vn -0.935100 0.250600 0.250600 -vn -0.694700 0.694700 -0.186200 -vn -0.935100 0.250600 -0.250600 -vn -0.508600 0.694700 -0.508600 -vn -0.684600 0.250600 -0.684500 -vn -0.186200 0.694700 -0.694700 -vn -0.250600 0.250600 -0.935100 -vn 0.186200 0.694700 -0.694700 -vn 0.250600 0.250600 -0.935100 -vn 0.508600 0.694700 -0.508600 -vn 0.684600 0.250600 -0.684500 -vn 0.694700 0.694700 -0.186200 -vn 0.935100 0.250600 -0.250600 -vn 0.694700 0.694700 0.186200 -vn 0.508600 0.694700 0.508600 -vn 0.684600 0.250600 0.684500 -vn 0.935100 0.250600 0.250600 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.258800 -0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 -0.000000 0.707100 -vn -0.965900 -0.000000 0.258800 -vn -0.965900 -0.000000 -0.258800 -vn 0.848000 0.000000 0.530000 -vn 0.258800 0.965900 -0.000000 -vn 0.707100 0.707100 -0.000000 -vn 0.965900 0.258800 -0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.258800 -0.965900 0.000000 -vn -0.258800 -0.965900 0.000000 -vn -0.707100 -0.707100 0.000000 -vn -0.965900 -0.258800 0.000000 -vn -0.965900 0.258800 -0.000000 -vn 0.938900 -0.251600 0.234700 -vn -0.258800 0.965900 -0.000000 -vn -0.707100 0.707100 -0.000000 -vn -0.251600 0.938900 0.234700 -vn 0.251600 0.938900 0.234700 -vn 0.938900 0.251600 0.234700 -vn -0.687400 0.687300 0.234700 -vn 0.687400 0.687300 0.234700 -vn -0.938900 0.251600 0.234700 -vn -0.938900 -0.251600 0.234700 -vn -0.687300 -0.687400 0.234700 -vn -0.251600 -0.938900 0.234700 -vn 0.251600 -0.938900 0.234700 -vn 0.687300 -0.687300 0.234700 -vn -0.928500 -0.371400 0.000000 -vn 0.000000 -0.371400 -0.928500 -vn 0.928500 -0.371400 0.000000 -vn 0.000000 -0.371400 0.928500 -vn 0.684600 0.250600 -0.684600 -vn 0.684600 0.250600 0.684600 -vn 0.687300 0.687400 0.234700 -vn 0.687300 -0.687400 0.234700 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/2/2 -f 6/6/3 5/7/3 7/5/3 -f 2/8/4 1/9/4 5/10/4 -f 3/2/5 7/5/5 5/11/5 -f 8/4/6 4/1/6 2/12/6 -f 10/13/4 9/14/4 11/15/4 -f 6/16/7 2/17/7 10/13/7 -f 1/18/8 5/19/8 11/15/8 -f 9/14/9 10/13/9 2/20/9 -f 15/21/10 45/22/10 39/23/10 -f 39/23/11 30/24/11 17/25/11 -f 17/25/12 30/24/12 28/26/12 -f 18/27/13 28/26/13 56/28/13 -f 19/29/14 56/28/14 50/30/14 -f 49/31/15 14/32/15 43/33/15 -f 49/31/16 43/33/16 42/34/16 -f 48/35/17 42/34/17 38/36/17 -f 55/37/18 14/38/18 49/39/18 -f 48/40/19 54/41/19 55/37/19 -f 44/42/20 50/30/20 54/41/20 -f 61/43/21 14/44/21 55/45/21 -f 14/46/22 61/47/22 13/48/22 -f 14/49/23 13/50/23 32/51/23 -f 32/52/24 41/53/24 14/54/24 -f 41/55/25 47/56/25 14/57/25 -f 53/58/26 14/59/26 47/60/26 -f 59/61/27 14/62/27 53/63/27 -f 35/64/28 14/65/28 59/66/28 -f 35/67/29 37/68/29 14/69/29 -f 43/70/30 14/71/30 37/72/30 -f 43/70/31 37/72/31 36/73/31 -f 29/74/32 38/36/32 42/75/32 -f 36/76/33 37/68/33 35/67/33 -f 29/74/34 36/76/34 34/77/34 -f 35/64/35 59/66/35 58/78/35 -f 57/79/36 33/80/36 34/81/36 -f 53/63/37 52/82/37 58/83/37 -f 52/82/38 51/84/38 57/79/38 -f 47/60/39 46/85/39 52/86/39 -f 46/85/40 45/87/40 51/84/40 -f 41/55/41 40/88/41 46/89/41 -f 40/88/42 39/23/42 45/22/42 -f 32/52/43 31/90/43 40/91/43 -f 31/90/44 30/24/44 39/23/44 -f 32/51/45 13/50/45 27/92/45 -f 28/26/46 30/24/46 31/93/46 -f 27/94/47 13/48/47 61/47/47 -f 54/95/48 60/96/48 61/43/48 -f 50/30/49 56/28/49 60/96/49 -f 28/26/50 27/94/50 60/97/50 -f 45/87/51 15/98/51 26/99/51 -f 57/79/52 51/84/52 26/99/52 -f 50/30/53 44/42/53 21/100/53 -f 21/100/54 44/42/54 38/36/54 -f 38/36/55 29/74/55 23/101/55 -f 29/74/56 33/80/56 24/102/56 -f 24/102/57 33/80/57 57/79/57 -f 12/103/58 11/15/58 5/104/58 -f 63/105/59 65/106/59 64/107/59 -f 65/106/60 67/108/60 66/109/60 -f 67/108/61 69/110/61 68/111/61 -f 69/110/62 71/112/62 70/113/62 -f 71/112/63 73/114/63 72/115/63 -f 73/114/64 75/116/64 74/117/64 -f 75/116/65 77/118/65 76/119/65 -f 77/118/66 79/120/66 78/121/66 -f 79/120/67 81/122/67 80/123/67 -f 81/122/68 83/124/68 82/125/68 -f 69/110/69 89/126/69 90/127/69 -f 85/128/70 63/129/70 62/130/70 -f 83/124/71 85/128/71 84/131/71 -f 68/132/2 76/133/2 84/134/2 -f 94/135/4 92/136/4 88/137/4 -f 63/129/72 85/128/72 97/138/72 -f 63/105/73 87/139/73 86/140/73 -f 67/108/74 88/141/74 89/142/74 -f 83/124/75 96/143/75 97/144/75 -f 67/108/76 65/106/76 86/145/76 -f 81/122/77 95/146/77 96/147/77 -f 79/120/78 94/148/78 95/149/78 -f 79/120/79 77/118/79 93/150/79 -f 75/116/80 92/151/80 93/152/80 -f 73/114/81 91/153/81 92/154/81 -f 71/112/82 90/155/82 91/156/82 -f 101/157/83 100/158/83 98/159/83 -f 105/160/84 104/161/84 100/158/84 -f 103/162/85 102/163/85 104/161/85 -f 99/164/86 98/159/86 102/163/86 -f 100/158/5 104/161/5 102/163/5 -f 109/165/83 108/166/83 106/167/83 -f 113/168/84 112/169/84 108/166/84 -f 111/170/85 110/171/85 112/169/85 -f 107/172/86 106/167/86 110/171/86 -f 108/166/5 112/169/5 110/171/5 -f 2/173/1 4/1/1 1/3/1 -f 4/1/2 8/4/2 3/2/2 -f 8/4/3 6/6/3 7/5/3 -f 6/174/4 2/8/4 5/10/4 -f 1/175/5 3/2/5 5/11/5 -f 6/176/6 8/4/6 2/12/6 -f 12/103/4 10/13/4 11/15/4 -f 12/103/7 6/16/7 10/13/7 -f 9/14/8 1/18/8 11/15/8 -f 1/177/9 9/14/9 2/20/9 -f 16/178/10 15/21/10 39/23/10 -f 16/178/11 39/23/11 17/25/11 -f 18/27/12 17/25/12 28/26/12 -f 19/29/13 18/27/13 56/28/13 -f 20/179/14 19/29/14 50/30/14 -f 48/35/16 49/31/16 42/34/16 -f 44/42/17 48/35/17 38/36/17 -f 49/39/19 48/40/19 55/37/19 -f 48/40/20 44/42/20 54/41/20 -f 42/75/31 43/70/31 36/73/31 -f 36/73/32 29/74/32 42/75/32 -f 34/77/33 36/76/33 35/67/33 -f 33/80/34 29/74/34 34/77/34 -f 34/81/35 35/64/35 58/78/35 -f 58/78/36 57/79/36 34/81/36 -f 59/61/37 53/63/37 58/83/37 -f 58/83/38 52/82/38 57/79/38 -f 53/58/39 47/60/39 52/86/39 -f 52/86/40 46/85/40 51/84/40 -f 47/56/41 41/55/41 46/89/41 -f 46/89/42 40/88/42 45/22/42 -f 41/53/43 32/52/43 40/91/43 -f 40/91/87 31/90/87 39/23/87 -f 31/93/45 32/51/45 27/92/45 -f 27/92/46 28/26/46 31/93/46 -f 60/97/47 27/94/47 61/47/47 -f 55/45/48 54/95/48 61/43/48 -f 54/95/88 50/30/88 60/96/88 -f 56/28/50 28/26/50 60/97/50 -f 51/84/51 45/87/51 26/99/51 -f 25/180/52 57/79/52 26/99/52 -f 20/179/53 50/30/53 21/100/53 -f 22/181/54 21/100/54 38/36/54 -f 22/181/55 38/36/55 23/101/55 -f 23/101/56 29/74/56 24/102/56 -f 25/180/57 24/102/57 57/79/57 -f 6/182/58 12/103/58 5/104/58 -f 62/183/59 63/105/59 64/107/59 -f 64/107/60 65/106/60 66/109/60 -f 66/109/61 67/108/61 68/111/61 -f 68/111/62 69/110/62 70/113/62 -f 70/113/63 71/112/63 72/115/63 -f 72/115/64 73/114/64 74/117/64 -f 74/117/65 75/116/65 76/119/65 -f 76/119/66 77/118/66 78/121/66 -f 78/121/67 79/120/67 80/123/67 -f 80/123/68 81/122/68 82/125/68 -f 71/112/69 69/110/69 90/127/69 -f 84/131/70 85/128/70 62/130/70 -f 82/125/71 83/124/71 84/131/71 -f 84/134/2 62/184/2 64/185/2 -f 64/185/2 66/186/2 84/134/2 -f 68/132/2 70/187/2 72/188/2 -f 72/188/2 74/189/2 68/132/2 -f 76/133/2 78/190/2 80/191/2 -f 80/191/2 82/192/2 84/134/2 -f 84/134/2 66/186/2 68/132/2 -f 68/132/2 74/189/2 76/133/2 -f 76/133/2 80/191/2 84/134/2 -f 88/137/4 86/193/4 96/194/4 -f 87/195/4 97/196/4 96/194/4 -f 96/194/4 95/197/4 94/135/4 -f 94/135/4 93/198/4 92/136/4 -f 92/136/4 91/199/4 88/137/4 -f 90/200/4 89/201/4 88/137/4 -f 86/193/4 87/195/4 96/194/4 -f 96/194/4 94/135/4 88/137/4 -f 91/199/4 90/200/4 88/137/4 -f 87/202/72 63/129/72 97/138/72 -f 65/106/73 63/105/73 86/140/73 -f 69/110/74 67/108/74 89/142/74 -f 85/128/75 83/124/75 97/144/75 -f 88/203/89 67/108/89 86/145/89 -f 83/124/77 81/122/77 96/147/77 -f 81/122/78 79/120/78 95/149/78 -f 94/204/79 79/120/79 93/150/79 -f 77/118/80 75/116/80 93/152/80 -f 75/116/81 73/114/81 92/154/81 -f 73/114/90 71/112/90 91/156/90 -f 99/205/83 101/157/83 98/159/83 -f 101/206/84 105/160/84 100/158/84 -f 105/207/85 103/162/85 104/161/85 -f 103/208/86 99/164/86 102/163/86 -f 98/159/5 100/158/5 102/163/5 -f 107/209/83 109/165/83 106/167/83 -f 109/210/84 113/168/84 108/166/84 -f 113/211/85 111/170/85 112/169/85 -f 111/212/86 107/172/86 110/171/86 -f 106/167/5 108/166/5 110/171/5 diff --git a/src/main/resources/assets/hbm/models/cwis_rotor.obj b/src/main/resources/assets/hbm/models/cwis_rotor.obj deleted file mode 100644 index 07d783822..000000000 --- a/src/main/resources/assets/hbm/models/cwis_rotor.obj +++ /dev/null @@ -1,202 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_rotor.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.250000 -1.000000 -v 0.000000 0.375000 -1.000000 -v 0.500000 0.250000 -0.866025 -v 0.500000 0.375000 -0.866025 -v 0.866025 0.250000 -0.500000 -v 0.866025 0.375000 -0.500000 -v 1.000000 0.250000 0.000000 -v 1.000000 0.375000 0.000000 -v 0.866025 0.250000 0.500000 -v 0.866025 0.375000 0.500000 -v 0.500000 0.250000 0.866025 -v 0.500000 0.375000 0.866025 -v 0.000000 0.250000 1.000000 -v 0.000000 0.375000 1.000000 -v -0.500000 0.250000 0.866026 -v -0.500000 0.375000 0.866026 -v -0.866025 0.250000 0.500000 -v -0.866025 0.375000 0.500000 -v -1.000000 0.250000 0.000000 -v -1.000000 0.375000 0.000000 -v -0.866026 0.250000 -0.499999 -v -0.866026 0.375000 -0.499999 -v -0.500001 0.250000 -0.866025 -v -0.500001 0.375000 -0.866025 -v 0.500000 0.375000 0.500000 -v 0.850000 0.375000 0.500000 -v 0.500000 0.375000 -0.500000 -v 0.850000 0.375000 -0.500000 -v 0.500000 1.875000 -0.325000 -v 0.500000 1.875000 0.325000 -v 0.850000 1.875000 0.325000 -v 0.850000 1.875000 -0.325000 -v -0.850000 0.375000 0.500000 -v -0.500000 0.375000 0.500000 -v -0.850000 0.375000 -0.500000 -v -0.500000 0.375000 -0.500000 -v -0.850000 1.875000 -0.325000 -v -0.850000 1.875000 0.325000 -v -0.500000 1.875000 0.325000 -v -0.500000 1.875000 -0.325000 -vt 0.447419 0.884668 -vt 0.375998 0.884668 -vt 0.375998 0.867421 -vt 0.304576 0.884668 -vt 0.304576 0.867421 -vt 0.233155 0.884668 -vt 0.233155 0.867421 -vt 0.161734 0.884668 -vt 0.161734 0.867421 -vt 0.090312 0.884668 -vt 0.090312 0.867421 -vt 0.018891 0.884668 -vt 0.018891 0.867421 -vt 0.485201 0.867421 -vt 0.556623 0.867421 -vt 0.556623 0.884668 -vt 0.628044 0.867421 -vt 0.628044 0.884668 -vt 0.699465 0.867421 -vt 0.699465 0.884668 -vt 0.770886 0.867421 -vt 0.770886 0.884668 -vt 0.054602 0.793928 -vt 0.116454 0.563091 -vt 0.285439 0.732075 -vt 0.842308 0.867421 -vt 0.913729 0.867421 -vt 0.913729 0.884668 -vt 0.842308 0.884668 -vt 0.589769 0.732075 -vt 0.323221 0.660654 -vt 0.420785 0.563091 -vt 0.274146 0.227258 -vt 0.274146 0.316942 -vt 0.225854 0.316942 -vt 0.774146 0.227258 -vt 0.774146 0.316942 -vt 0.725854 0.316942 -vt 0.518891 0.203112 -vt 0.725854 0.227258 -vt 0.725854 0.525308 -vt 0.774146 0.018891 -vt 0.981109 0.341087 -vt 0.018891 0.203112 -vt 0.225854 0.227258 -vt 0.225854 0.525308 -vt 0.274146 0.018891 -vt 0.481109 0.341087 -vt 0.447419 0.867421 -vt 0.485201 0.884668 -vt 0.249728 0.793928 -vt 0.187876 0.829639 -vt 0.116454 0.829638 -vt 0.018891 0.732075 -vt 0.018891 0.660654 -vt 0.054602 0.598801 -vt 0.187876 0.563091 -vt 0.249728 0.598801 -vt 0.285439 0.660654 -vt 0.492206 0.563091 -vt 0.554059 0.598801 -vt 0.589769 0.660654 -vt 0.554059 0.793928 -vt 0.492206 0.829638 -vt 0.420785 0.829638 -vt 0.358932 0.793928 -vt 0.323221 0.732075 -vt 0.358932 0.598801 -vt 0.518891 0.341087 -vt 0.774145 0.525308 -vt 0.725854 0.018891 -vt 0.981109 0.203112 -vt 0.018891 0.341087 -vt 0.274145 0.525308 -vt 0.225854 0.018891 -vt 0.481109 0.203112 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn 0.000000 1.000000 0.000000 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.115900 -0.993300 -vn 0.000000 0.115900 0.993300 -vn 1.000000 0.000000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/14/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 22/23/11 14/24/11 6/25/11 -f 24/26/12 2/27/12 1/28/12 -f 22/21/13 24/26/13 23/29/13 -f 7/30/14 19/31/14 23/32/14 -f 39/33/11 40/34/11 37/35/11 -f 31/36/11 32/37/11 29/38/11 -f 25/39/15 30/40/15 29/38/15 -f 27/41/16 29/38/16 32/37/16 -f 26/42/17 31/36/17 30/40/17 -f 28/43/18 32/37/18 31/36/18 -f 33/44/15 38/45/15 37/35/15 -f 35/46/16 37/35/16 40/34/16 -f 34/47/17 39/33/17 38/45/17 -f 36/48/18 40/34/18 39/33/18 -f 1/49/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/50/7 14/14/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 6/25/11 4/51/11 2/52/11 -f 2/52/11 24/53/11 22/23/11 -f 22/23/11 20/54/11 18/55/11 -f 18/55/11 16/56/11 14/24/11 -f 14/24/11 12/57/11 10/58/11 -f 10/58/11 8/59/11 6/25/11 -f 6/25/11 2/52/11 22/23/11 -f 22/23/11 18/55/11 14/24/11 -f 14/24/11 10/58/11 6/25/11 -f 23/29/12 24/26/12 1/28/12 -f 21/22/13 22/21/13 23/29/13 -f 23/32/14 1/60/14 3/61/14 -f 3/61/14 5/62/14 7/30/14 -f 7/30/14 9/63/14 11/64/14 -f 11/64/14 13/65/14 15/66/14 -f 15/66/14 17/67/14 19/31/14 -f 19/31/14 21/68/14 23/32/14 -f 23/32/14 3/61/14 7/30/14 -f 7/30/14 11/64/14 15/66/14 -f 15/66/14 19/31/14 7/30/14 -f 38/45/11 39/33/11 37/35/11 -f 30/40/11 31/36/11 29/38/11 -f 27/69/15 25/39/15 29/38/15 -f 28/70/16 27/41/16 32/37/16 -f 25/71/17 26/42/17 30/40/17 -f 26/72/18 28/43/18 31/36/18 -f 35/73/15 33/44/15 37/35/15 -f 36/74/16 35/46/16 40/34/16 -f 33/75/17 34/47/17 38/45/17 -f 34/76/18 36/48/18 39/33/18 diff --git a/src/main/resources/assets/hbm/models/cyclotron.obj b/src/main/resources/assets/hbm/models/cyclotron.obj deleted file mode 100644 index f645eb5bf..000000000 --- a/src/main/resources/assets/hbm/models/cyclotron.obj +++ /dev/null @@ -1,2212 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'zyclotron.blend' -# www.blender.org -o Cube -v 1.500000 0.000000 -1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500001 2.000000 -1.499999 -v 1.499999 2.000000 1.500001 -v -1.500000 2.000000 1.500000 -v -1.500000 2.000000 -1.500000 -v 0.000000 2.000000 -1.375000 -v -0.526190 2.000000 -1.270334 -v -0.972272 2.000000 -0.972272 -v -1.270334 2.000000 -0.526190 -v -1.375000 2.000000 0.000000 -v -1.270334 2.000000 0.526190 -v -0.972272 2.000000 0.972272 -v -0.526190 2.000000 1.270334 -v -0.000000 2.000000 1.375000 -v 0.526190 2.000000 1.270335 -v 0.972272 2.000000 0.972272 -v 1.270334 2.000000 0.526190 -v 1.375000 2.000000 -0.000000 -v 1.270334 2.000000 -0.526190 -v 0.972272 2.000000 -0.972272 -v 0.526189 2.000000 -1.270335 -v -0.526190 6.000000 -1.270334 -v -0.000000 6.000000 -1.375000 -v -0.972272 6.000000 -0.972272 -v -1.270335 6.000000 -0.526190 -v -1.375000 6.000000 0.000000 -v -1.270335 6.000000 0.526190 -v -0.972272 6.000000 0.972272 -v -0.526190 6.000000 1.270334 -v -0.000000 6.000000 1.375000 -v 0.526189 6.000000 1.270335 -v 0.972272 6.000000 0.972272 -v 1.270334 6.000000 0.526190 -v 1.375000 6.000000 -0.000000 -v 1.270334 6.000000 -0.526190 -v 0.972271 6.000000 -0.972272 -v 0.526189 6.000000 -1.270335 -v 0.000000 2.000000 -1.500000 -v -0.750000 2.000000 -1.500000 -v 0.750001 2.000000 -1.500000 -v -1.500000 2.000000 -0.000000 -v -1.500000 2.000000 -0.750000 -v -1.500000 2.000000 0.750000 -v -0.000001 2.000000 1.500000 -v -0.750001 2.000000 1.500000 -v 0.749999 2.000000 1.500000 -v 1.500000 2.000000 0.000001 -v 1.500000 2.000000 0.750001 -v 1.500000 2.000000 -0.749999 -v -0.358766 6.000000 -0.866137 -v -0.000000 6.000000 -0.937500 -v -0.662913 6.000000 -0.662913 -v -0.866137 6.000000 -0.358766 -v -0.937500 6.000000 0.000000 -v -0.866137 6.000000 0.358766 -v -0.662913 6.000000 0.662913 -v -0.358766 6.000000 0.866137 -v -0.000000 6.000000 0.937500 -v 0.358765 6.000000 0.866137 -v 0.662912 6.000000 0.662913 -v 0.866137 6.000000 0.358766 -v 0.937500 6.000000 -0.000000 -v 0.866137 6.000000 -0.358766 -v 0.662912 6.000000 -0.662913 -v 0.358765 6.000000 -0.866137 -v -0.358766 5.850000 -0.866137 -v -0.000000 5.850000 -0.937500 -v -0.662913 5.850000 -0.662913 -v -0.866137 5.850000 -0.358766 -v -0.937500 5.850000 0.000000 -v -0.866137 5.850000 0.358766 -v -0.662913 5.850000 0.662913 -v -0.358766 5.850000 0.866137 -v -0.000000 5.850000 0.937500 -v 0.358765 5.850000 0.866137 -v 0.662912 5.850000 0.662913 -v 0.866137 5.850000 0.358766 -v 0.937500 5.850000 -0.000000 -v 0.866137 5.850000 -0.358766 -v 0.662912 5.850000 -0.662913 -v 0.358765 5.850000 -0.866137 -v 0.866137 5.925000 0.358766 -v 0.662912 5.925000 0.662913 -v -0.866137 5.925000 -0.358766 -v -0.662913 5.925000 -0.662913 -v -1.500000 1.750000 1.500000 -v -1.500000 0.250000 1.500000 -v 1.499999 1.750000 1.500001 -v 1.500000 0.250000 1.500000 -v 1.500000 1.750000 -1.499999 -v 1.500000 0.250000 -1.500000 -v 1.500000 1.750000 1.250001 -v 1.500000 1.750000 -1.249999 -v 1.500000 0.250000 -1.250000 -v 1.500000 0.250000 1.250000 -v 1.500000 0.250000 0.500000 -v 1.500000 1.000000 0.500000 -v 1.500000 0.000000 0.500000 -v 1.500000 1.000000 -0.500000 -v 1.500000 0.000000 -0.500000 -v 1.500000 0.250000 -0.500000 -v 1.350000 1.750000 -1.249999 -v 1.350000 1.750000 1.250001 -v 1.350000 0.250000 -1.250000 -v 1.350000 0.250000 1.250000 -v 1.350000 1.000000 -0.500000 -v 1.350000 1.000000 0.500000 -v 1.350000 0.250000 0.500000 -v 1.350000 0.250000 -0.500000 -v 0.500000 0.000000 -1.500000 -v -1.250000 0.250000 -1.500000 -v 1.250000 0.250000 -1.500000 -v -1.250000 1.750000 -1.500000 -v 1.250000 1.750000 -1.500000 -v 0.500000 0.250000 -1.500000 -v -0.500000 0.000000 -1.500000 -v -0.500000 0.250000 -1.500000 -v 0.500000 1.000000 -1.500000 -v -0.500000 1.000000 -1.500000 -v 1.250000 1.750000 -1.350000 -v -1.250000 1.750000 -1.350000 -v 1.250000 0.250000 -1.350000 -v -1.250000 0.250000 -1.350000 -v -0.500000 0.250000 -1.350000 -v 0.500000 1.000000 -1.350000 -v -0.500000 1.000000 -1.350000 -v 0.500000 0.250000 -1.350000 -v -1.500000 1.750000 -1.250000 -v -1.500000 1.750000 1.250000 -v -1.500000 0.250000 -1.250000 -v -1.500000 0.250000 1.250000 -v -1.500000 0.000000 -0.500000 -v -1.500000 0.250000 -0.500000 -v -1.500000 0.000000 0.500000 -v -1.500000 0.250000 0.500000 -v -1.500000 1.000000 -0.500000 -v -1.500000 1.000000 0.500000 -v -1.350000 1.750000 1.250000 -v -1.350000 1.750000 -1.250000 -v -1.350000 0.250000 -1.250000 -v -1.350000 0.250000 1.250000 -v -1.349999 1.000000 0.500000 -v -1.349999 1.000000 -0.500000 -v -1.350000 0.250000 -0.500000 -v -1.350000 0.250000 0.500000 -v -0.500000 0.000000 1.500000 -v 1.250000 0.250000 1.500000 -v -1.250000 0.250000 1.500000 -v -1.250000 1.750000 1.500000 -v 1.249999 1.750000 1.500000 -v -0.500000 0.250000 1.500000 -v 0.500000 0.000000 1.500000 -v 0.500000 0.250000 1.500000 -v -0.500000 1.000000 1.500000 -v 0.500000 1.000000 1.500000 -v 1.249999 1.750000 1.350000 -v 0.500000 1.000000 1.350000 -v -1.250000 1.750000 1.350000 -v -1.250000 0.250000 1.350000 -v 1.250000 0.250000 1.350000 -v -0.500000 1.000000 1.350000 -v -0.500000 0.250000 1.350000 -v 0.500000 0.250000 1.350000 -v -0.883884 5.750000 0.883884 -v -1.154850 5.750000 0.478354 -v 0.883883 5.750000 -0.883884 -v 1.154849 5.750000 -0.478355 -v -0.478354 5.750000 1.154849 -v 0.478354 5.750000 -1.154850 -v -0.000000 5.750000 1.250000 -v -0.478354 5.750000 -1.154849 -v -0.000000 5.750000 -1.250000 -v 0.478354 5.750000 1.154850 -v -0.883884 5.750000 -0.883884 -v 0.883883 5.750000 0.883884 -v -1.154850 5.750000 -0.478354 -v 1.154849 5.750000 0.478354 -v -1.250000 5.750000 0.000000 -v 1.250000 5.750000 -0.000000 -v -0.526190 5.750000 -1.270334 -v -0.000000 5.750000 -1.375000 -v -0.972272 5.750000 -0.972272 -v -1.270335 5.750000 -0.526190 -v -1.375000 5.750000 0.000000 -v -1.270335 5.750000 0.526190 -v -0.972272 5.750000 0.972272 -v -0.526190 5.750000 1.270334 -v -0.000000 5.750000 1.375000 -v 0.526189 5.750000 1.270335 -v 0.972272 5.750000 0.972272 -v 1.270334 5.750000 0.526190 -v 1.375000 5.750000 -0.000000 -v 1.270334 5.750000 -0.526190 -v 0.972271 5.750000 -0.972272 -v 0.526189 5.750000 -1.270335 -v 1.100000 5.750000 1.000000 -v 1.100000 2.000000 1.000000 -v 1.100000 2.000000 -1.200000 -v 1.100000 5.750000 -1.200000 -v 1.170711 2.000000 -1.170711 -v 1.170711 5.750000 -1.170711 -v 1.200000 2.000000 -1.100000 -v 1.200000 5.750000 -1.100000 -v 1.170711 2.000000 -1.029289 -v 1.170711 5.750000 -1.029289 -v 1.100000 2.000000 -1.000000 -v 1.100000 5.750000 -1.000000 -v 1.029289 2.000000 -1.029289 -v 1.029289 5.750000 -1.029289 -v 1.000000 2.000000 -1.100000 -v 1.000000 5.750000 -1.100000 -v 1.029289 2.000000 -1.170711 -v 1.029289 5.750000 -1.170711 -v 1.170711 2.000000 1.029289 -v 1.170711 5.750000 1.029289 -v 1.200000 2.000000 1.100000 -v 1.200000 5.750000 1.100000 -v 1.170711 2.000000 1.170711 -v 1.170711 5.750000 1.170711 -v 1.100000 2.000000 1.200000 -v 1.100000 5.750000 1.200000 -v 1.029289 2.000000 1.170711 -v 1.029289 5.750000 1.170711 -v 1.000000 2.000000 1.100000 -v 1.000000 5.750000 1.100000 -v 1.029289 2.000000 1.029289 -v 1.029289 5.750000 1.029289 -v -1.100000 5.750000 1.000000 -v -1.100000 2.000000 1.000000 -v -1.029289 2.000000 1.029289 -v -1.029289 5.750000 1.029289 -v -1.000000 2.000000 1.100000 -v -1.000000 5.750000 1.100000 -v -1.029289 2.000000 1.170711 -v -1.029289 5.750000 1.170711 -v -1.100000 2.000000 1.200000 -v -1.100000 5.750000 1.200000 -v -1.170711 2.000000 1.170711 -v -1.170711 5.750000 1.170711 -v -1.200000 2.000000 1.100000 -v -1.200000 5.750000 1.100000 -v -1.170711 2.000000 1.029289 -v -1.170711 5.750000 1.029289 -v -1.100000 5.750000 -1.200000 -v -1.100000 2.000000 -1.200000 -v -1.029289 2.000000 -1.170711 -v -1.029289 5.750000 -1.170711 -v -1.000000 2.000000 -1.100000 -v -1.000000 5.750000 -1.100000 -v -1.029289 2.000000 -1.029289 -v -1.029289 5.750000 -1.029289 -v -1.100000 2.000000 -1.000000 -v -1.100000 5.750000 -1.000000 -v -1.170711 2.000000 -1.029289 -v -1.170711 5.750000 -1.029289 -v -1.200000 2.000000 -1.100000 -v -1.200000 5.750000 -1.100000 -v -1.170711 2.000000 -1.170711 -v -1.170711 5.750000 -1.170711 -v 1.000000 5.975001 -1.000000 -v 0.950000 5.945711 -1.050000 -v 0.929289 5.875000 -1.070711 -v 0.950000 5.804290 -1.050000 -v 1.000000 5.775001 -1.000000 -v 1.050000 5.804290 -0.950000 -v 1.070711 5.875000 -0.929289 -v 1.050000 5.945711 -0.950000 -v 0.879289 5.945711 -0.979289 -v 0.929289 5.975001 -0.929289 -v 0.858579 5.875000 -1.000000 -v 0.879289 5.804290 -0.979289 -v 0.929289 5.775001 -0.929289 -v 0.979289 5.804290 -0.879289 -v 1.000000 5.875000 -0.858578 -v 0.979289 5.945711 -0.879289 -v 1.070711 5.875000 0.929289 -v 1.050000 5.804289 0.950000 -v 1.000000 5.775000 1.000000 -v 0.950000 5.804289 1.050000 -v 0.929289 5.875000 1.070711 -v 0.950000 5.945711 1.050000 -v 1.000000 5.975000 1.000000 -v 1.050000 5.945711 0.950000 -v 0.879289 5.945711 0.979289 -v 0.858578 5.875000 1.000000 -v 0.929289 5.775000 0.929289 -v 0.979289 5.804289 0.879289 -v 0.879289 5.804289 0.979289 -v 1.000000 5.875000 0.858579 -v 0.929289 5.975000 0.929289 -v 0.979289 5.945711 0.879289 -v -0.929289 5.875000 -1.070711 -v -0.950000 5.804289 -1.050000 -v -1.000000 5.775000 -1.000000 -v -1.050000 5.804289 -0.950000 -v -1.070710 5.875000 -0.929289 -v -1.050000 5.945711 -0.950000 -v -1.000000 5.975000 -1.000000 -v -0.950000 5.945711 -1.050000 -v -0.979289 5.945711 -0.879289 -v -1.000000 5.875000 -0.858579 -v -0.929289 5.775000 -0.929289 -v -0.879289 5.804289 -0.979289 -v -0.979289 5.804289 -0.879289 -v -0.858578 5.875000 -1.000000 -v -0.929289 5.975000 -0.929289 -v -0.879289 5.945711 -0.979289 -v -1.000000 5.975000 1.000000 -v -0.950000 5.945711 1.050000 -v -0.929289 5.875000 1.070711 -v -0.950000 5.804289 1.050000 -v -1.000000 5.775000 1.000000 -v -1.050000 5.804289 0.950000 -v -1.070711 5.875000 0.929289 -v -1.050000 5.945711 0.950000 -v -0.979289 5.804289 0.879289 -v -0.929289 5.775000 0.929289 -v -0.858579 5.875000 1.000000 -v -0.879289 5.945711 0.979289 -v -0.879289 5.804289 0.979289 -v -0.929289 5.975000 0.929289 -v -1.000000 5.875000 0.858579 -v -0.979289 5.945711 0.879289 -v -0.883884 2.250000 0.883884 -v -1.154850 2.250000 0.478354 -v 0.883883 2.250000 -0.883884 -v 1.154849 2.250000 -0.478355 -v -0.478354 2.250000 1.154849 -v 0.478354 2.250000 -1.154850 -v -0.000000 2.250000 1.250000 -v -0.478354 2.250000 -1.154849 -v -0.000000 2.250000 -1.250000 -v 0.478354 2.250000 1.154850 -v -0.883884 2.250000 -0.883884 -v 0.883883 2.250000 0.883884 -v -1.154850 2.250000 -0.478354 -v 1.154849 2.250000 0.478354 -v -1.250000 2.250000 0.000000 -v 1.250000 2.250000 -0.000000 -v -0.526190 2.250000 -1.270334 -v 0.000000 2.250000 -1.375000 -v -0.972272 2.250000 -0.972272 -v -1.270334 2.250000 -0.526190 -v -1.375000 2.250000 0.000000 -v -1.270334 2.250000 0.526190 -v -0.972272 2.250000 0.972272 -v -0.526190 2.250000 1.270334 -v -0.000000 2.250000 1.375000 -v 0.526190 2.250000 1.270335 -v 0.972272 2.250000 0.972272 -v 1.270334 2.250000 0.526190 -v 1.375000 2.250000 -0.000000 -v 1.270334 2.250000 -0.526190 -v 0.972272 2.250000 -0.972272 -v 0.526189 2.250000 -1.270335 -v 1.500000 0.656250 -0.156250 -v 1.500000 0.250000 -0.250000 -v 1.500000 0.750000 -0.250000 -v 1.500000 0.250000 0.250000 -v 0.250000 0.750000 1.450000 -v 0.156250 0.656250 1.450000 -v -0.156250 0.343750 1.500000 -v 0.156250 0.343750 1.500000 -v 1.500000 0.750000 0.250000 -v 1.500000 0.343750 -0.156250 -v -0.250000 0.750000 1.450000 -v -0.250000 0.250000 1.450000 -v 0.250000 0.250000 1.450000 -v -0.156250 0.656250 1.450000 -v 0.250000 0.750000 1.500000 -v -0.250000 0.750000 1.500000 -v -0.156250 0.656250 1.500000 -v 0.250000 0.250000 1.500000 -v -0.156250 0.343750 1.450000 -v 0.156250 0.343750 1.450000 -v 0.156250 0.656250 1.500000 -v -0.250000 0.250000 1.500000 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.450000 0.656250 -0.156250 -v 1.450000 0.656250 0.156250 -v 1.450000 0.343750 -0.156250 -v 1.450000 0.343750 0.156250 -v 1.450000 0.250000 -0.250000 -v 1.450000 0.250000 0.250000 -v 1.450000 0.750000 -0.250000 -v 1.450000 0.750000 0.250000 -v 0.250000 0.250000 -1.500000 -v -0.156250 0.343750 -1.500000 -v -0.250000 0.250000 -1.500000 -v 0.156250 0.343750 -1.500000 -v 0.250000 0.750000 -1.500000 -v -0.250000 0.750000 -1.500000 -v 0.156250 0.656250 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.656250 -1.450000 -v -0.156250 0.656250 -1.450000 -v 0.156250 0.343750 -1.450000 -v -0.156250 0.343750 -1.450000 -v 0.250000 0.250000 -1.450000 -v -0.250000 0.250000 -1.450000 -v 0.250000 0.750000 -1.450000 -v -0.250000 0.750000 -1.450000 -v -1.500000 0.250000 -0.250001 -v -1.500000 0.343750 0.156250 -v -1.500000 0.250000 0.250000 -v -1.500000 0.343750 -0.156251 -v -1.500000 0.750000 -0.250001 -v -1.500000 0.750000 0.250000 -v -1.500000 0.656250 -0.156251 -v -1.500000 0.656250 0.156250 -v -1.449999 0.656250 0.156250 -v -1.449999 0.343750 0.156250 -v -1.449999 0.656250 -0.156251 -v -1.449999 0.750000 -0.250001 -v -1.449999 0.750000 0.250000 -v -1.449999 0.250000 0.250000 -v -1.449999 0.250000 -0.250001 -v -1.449999 0.343750 -0.156251 -vt 0.000461 0.950818 -vt 0.000470 0.922808 -vt 0.040543 0.922822 -vt 0.361111 0.875563 -vt 0.321038 0.875563 -vt 0.327413 0.843513 -vt 0.080605 0.903573 -vt 0.040533 0.903573 -vt 0.040533 0.875564 -vt 0.120677 0.903573 -vt 0.080605 0.875564 -vt 0.160749 0.903573 -vt 0.120677 0.875563 -vt 0.200821 0.903573 -vt 0.160749 0.875563 -vt 0.240894 0.903573 -vt 0.200821 0.875563 -vt 0.280966 0.903573 -vt 0.240894 0.875563 -vt 0.321038 0.903572 -vt 0.280966 0.875563 -vt 0.361111 0.903572 -vt 0.401183 0.903572 -vt 0.441256 0.903572 -vt 0.401183 0.875563 -vt 0.481328 0.903572 -vt 0.441255 0.875563 -vt 0.521400 0.903572 -vt 0.481328 0.875563 -vt 0.561472 0.903572 -vt 0.521400 0.875562 -vt 0.601545 0.903572 -vt 0.561472 0.875562 -vt 0.641617 0.903572 -vt 0.601544 0.875562 -vt 0.255335 0.430863 -vt 0.242613 0.466253 -vt 0.250054 0.428675 -vt 0.449535 0.505555 -vt 0.440199 0.505555 -vt 0.432381 0.466253 -vt 0.432381 0.544857 -vt 0.449535 0.393517 -vt 0.449535 0.449536 -vt 0.427127 0.423394 -vt 0.424940 0.418112 -vt 0.419658 0.415924 -vt 0.337497 0.617593 -vt 0.337497 0.608257 -vt 0.376799 0.600439 -vt 0.298195 0.600439 -vt 0.260617 0.418112 -vt 0.298194 0.410671 -vt 0.262805 0.423394 -vt 0.264876 0.432934 -vt 0.225458 0.505555 -vt 0.234795 0.505555 -vt 0.242613 0.544857 -vt 0.225458 0.449536 -vt 0.281478 0.393517 -vt 0.337497 0.393517 -vt 0.337497 0.402853 -vt 0.376799 0.410671 -vt 0.797881 0.890085 -vt 0.787427 0.915324 -vt 0.779665 0.912108 -vt 0.607920 0.843512 -vt 0.635242 0.843512 -vt 0.287341 0.843513 -vt 0.567847 0.843512 -vt 0.595169 0.843512 -vt 0.247269 0.843513 -vt 0.527775 0.843513 -vt 0.555097 0.843513 -vt 0.207196 0.843513 -vt 0.234518 0.843513 -vt 0.487703 0.843513 -vt 0.127052 0.843513 -vt 0.154374 0.843513 -vt 0.167124 0.843513 -vt 0.194446 0.843513 -vt 0.447631 0.843513 -vt 0.086980 0.843514 -vt 0.114302 0.843514 -vt 0.407558 0.843513 -vt 0.434880 0.843513 -vt 0.046908 0.843514 -vt 0.074230 0.843514 -vt 0.367486 0.843513 -vt 0.000461 0.875564 -vt 0.006836 0.843514 -vt 0.034157 0.843514 -vt 0.869755 0.860314 -vt 0.914311 0.890085 -vt 0.557352 0.796015 -vt 0.567806 0.770776 -vt 0.575568 0.773991 -vt 0.805316 0.858886 -vt 0.817198 0.870768 -vt 0.549917 0.827213 -vt 0.538035 0.815332 -vt 0.836006 0.844789 -vt 0.842437 0.860314 -vt 0.519226 0.841310 -vt 0.512796 0.825786 -vt 0.869755 0.843510 -vt 0.485478 0.842589 -vt 0.485478 0.825786 -vt 0.901424 0.855244 -vt 0.894994 0.870768 -vt 0.429040 0.807896 -vt 0.440922 0.796015 -vt 0.460239 0.815332 -vt 0.453809 0.830856 -vt 0.926192 0.878203 -vt 0.430354 0.770506 -vt 0.430468 0.770776 -vt 0.924879 0.915593 -vt 0.924765 0.915323 -vt 0.371218 0.823282 -vt 0.371218 0.795960 -vt 0.379621 0.795960 -vt 0.225458 0.795960 -vt 0.233861 0.795960 -vt 0.233861 0.823282 -vt 0.233861 0.787557 -vt 0.371218 0.787557 -vt 0.233861 0.831685 -vt 0.205864 0.421526 -vt 0.224537 0.421526 -vt 0.224537 0.589584 -vt 0.075153 0.987414 -vt 0.075153 0.976210 -vt 0.159182 0.976210 -vt 0.584251 0.645601 -vt 0.584251 0.477544 -vt 0.602924 0.477544 -vt 0.019134 0.589584 -vt 0.000461 0.589584 -vt 0.000461 0.421526 -vt 0.019134 0.421526 -vt 0.000461 0.393517 -vt 0.224537 0.393517 -vt 0.569989 0.999539 -vt 0.383259 0.999539 -vt 0.383259 0.988335 -vt 0.159182 0.999539 -vt 0.159182 0.988336 -vt 0.215201 0.988336 -vt 0.738046 0.999539 -vt 0.738046 0.988335 -vt 0.794065 0.988335 -vt 0.809250 0.000461 -vt 0.865269 0.000461 -vt 0.865269 0.084489 -vt 0.995980 0.000461 -vt 0.995980 0.168518 -vt 0.939961 0.084489 -vt 0.794065 0.999539 -vt 0.878094 0.988335 -vt 0.569989 0.988335 -vt 0.112499 0.617593 -vt 0.056480 0.617593 -vt 0.000461 0.999539 -vt 0.000461 0.988336 -vt 0.075153 0.988336 -vt 0.075153 0.999539 -vt 0.215201 0.999539 -vt 0.721511 0.878976 -vt 0.721511 0.902318 -vt 0.686499 0.902318 -vt 0.084490 0.951960 -vt 0.140510 0.951960 -vt 0.140510 0.963164 -vt 0.663356 0.951960 -vt 0.663356 0.963164 -vt 0.495300 0.963164 -vt 0.958633 0.842589 -vt 0.902614 0.842589 -vt 0.902614 0.758560 -vt 0.827922 0.758560 -vt 0.827922 0.842589 -vt 0.771903 0.842589 -vt 0.771903 0.674532 -vt 0.958633 0.674532 -vt 0.308568 0.951960 -vt 0.308568 0.963164 -vt 0.719375 0.951960 -vt 0.719375 0.963164 -vt 0.803403 0.951960 -vt 0.803403 0.963163 -vt 0.878094 0.951960 -vt 0.878094 0.963163 -vt 0.084490 0.963164 -vt 0.000461 0.963164 -vt 0.696290 0.149845 -vt 0.612261 0.149845 -vt 0.668281 0.131172 -vt 0.668281 0.093826 -vt 0.696290 0.075153 -vt 0.308565 0.964085 -vt 0.495295 0.964085 -vt 0.495295 0.975289 -vt 0.878094 0.964085 -vt 0.878094 0.975289 -vt 0.803401 0.975289 -vt 0.084489 0.964085 -vt 0.140508 0.964085 -vt 0.140508 0.975289 -vt 0.612261 0.131172 -vt 0.584252 0.149845 -vt 0.584252 0.075153 -vt 0.612262 0.075153 -vt 0.770982 0.674532 -vt 0.714963 0.758560 -vt 0.640270 0.758560 -vt 0.770982 0.842589 -vt 0.714963 0.842589 -vt 0.640270 0.842589 -vt 0.584251 0.842589 -vt 0.084489 0.975289 -vt 0.000461 0.975289 -vt 0.663353 0.964085 -vt 0.663353 0.975289 -vt 0.719372 0.964085 -vt 0.719372 0.975289 -vt 0.612261 0.205864 -vt 0.780319 0.205864 -vt 0.808328 0.224537 -vt 0.308565 0.975289 -vt 0.803401 0.964085 -vt 0.789655 0.477544 -vt 0.808328 0.477544 -vt 0.808328 0.645601 -vt 0.569989 0.987414 -vt 0.569989 0.976210 -vt 0.738046 0.976210 -vt 0.658943 0.449534 -vt 0.658943 0.477544 -vt 0.733636 0.449534 -vt 0.808328 0.449534 -vt 0.225516 0.618514 -vt 0.281536 0.618534 -vt 0.281507 0.702563 -vt 0.356199 0.702588 -vt 0.356228 0.618560 -vt 0.412247 0.618579 -vt 0.738046 0.987414 -vt 0.794065 0.976210 -vt 0.000461 0.987414 -vt 0.000461 0.976210 -vt 0.215201 0.987414 -vt 0.215201 0.976210 -vt 0.383259 0.976210 -vt 0.794065 0.987414 -vt 0.878094 0.976210 -vt 0.640270 0.673611 -vt 0.584251 0.673611 -vt 0.602924 0.645601 -vt 0.159182 0.987414 -vt 0.075153 0.618515 -vt 0.224537 0.767899 -vt 0.149845 0.842591 -vt 0.361111 0.950942 -vt 0.361121 0.922932 -vt 0.401193 0.922946 -vt 0.040533 0.950831 -vt 0.080615 0.922836 -vt 0.401183 0.950956 -vt 0.441265 0.922960 -vt 0.080605 0.950845 -vt 0.120687 0.922849 -vt 0.441256 0.950970 -vt 0.481338 0.922974 -vt 0.160750 0.950873 -vt 0.160759 0.922863 -vt 0.200832 0.922877 -vt 0.120677 0.950859 -vt 0.481328 0.950983 -vt 0.521410 0.922988 -vt 0.200822 0.950887 -vt 0.240904 0.922891 -vt 0.521400 0.950997 -vt 0.561482 0.923001 -vt 0.240894 0.950900 -vt 0.280976 0.922905 -vt 0.561472 0.951011 -vt 0.601554 0.923015 -vt 0.280967 0.950914 -vt 0.321049 0.922919 -vt 0.601545 0.951025 -vt 0.641626 0.923029 -vt 0.321039 0.950928 -vt 0.483162 0.913817 -vt 0.000461 0.903573 -vt 0.639795 0.912729 -vt 0.603366 0.912729 -vt 0.599723 0.912729 -vt 0.563294 0.912729 -vt 0.559651 0.912729 -vt 0.523222 0.912729 -vt 0.519579 0.912729 -vt 0.483149 0.912729 -vt 0.479506 0.912729 -vt 0.443077 0.912730 -vt 0.439434 0.912729 -vt 0.403005 0.912730 -vt 0.399362 0.912730 -vt 0.362932 0.912730 -vt 0.359289 0.912730 -vt 0.322860 0.912730 -vt 0.319217 0.912730 -vt 0.282788 0.912730 -vt 0.279145 0.912730 -vt 0.242715 0.912730 -vt 0.239072 0.912730 -vt 0.202643 0.912730 -vt 0.199000 0.912730 -vt 0.162571 0.912730 -vt 0.158928 0.912730 -vt 0.122499 0.912730 -vt 0.118856 0.912730 -vt 0.082426 0.912730 -vt 0.078783 0.912730 -vt 0.042354 0.912730 -vt 0.038711 0.912730 -vt 0.002282 0.912730 -vt 0.854572 0.540418 -vt 0.848098 0.540441 -vt 0.848098 0.169483 -vt 0.255335 0.415924 -vt 0.482830 0.764540 -vt 0.476355 0.764562 -vt 0.476367 0.393604 -vt 0.828674 0.540507 -vt 0.822199 0.540529 -vt 0.822199 0.169572 -vt 0.516136 0.764607 -vt 0.509662 0.764629 -vt 0.509662 0.393672 -vt 0.469880 0.764584 -vt 0.469893 0.393626 -vt 0.841623 0.540463 -vt 0.835148 0.540485 -vt 0.835148 0.169528 -vt 0.522611 0.764584 -vt 0.516136 0.393649 -vt 0.463406 0.764605 -vt 0.463418 0.393648 -vt 0.828674 0.169550 -vt 0.529086 0.764562 -vt 0.522611 0.393627 -vt 0.456931 0.764627 -vt 0.456943 0.393670 -vt 0.225458 0.393517 -vt 0.535561 0.764540 -vt 0.529086 0.393605 -vt 0.450456 0.764649 -vt 0.450468 0.393692 -vt 0.503187 0.764651 -vt 0.503187 0.393694 -vt 0.542035 0.764518 -vt 0.535561 0.393583 -vt 0.502254 0.764474 -vt 0.495779 0.764496 -vt 0.495791 0.393539 -vt 0.247866 0.423394 -vt 0.489304 0.764518 -vt 0.482842 0.393582 -vt 0.489317 0.393560 -vt 0.841623 0.169505 -vt 0.554985 0.764474 -vt 0.548510 0.764496 -vt 0.548510 0.393539 -vt 0.542035 0.393561 -vt 0.861047 0.540396 -vt 0.854572 0.169461 -vt 0.815724 0.540551 -vt 0.815724 0.169594 -vt 0.809250 0.540573 -vt 0.809250 0.169616 -vt 0.868443 0.540551 -vt 0.861968 0.540573 -vt 0.861968 0.169616 -vt 0.894342 0.540463 -vt 0.887867 0.540485 -vt 0.887867 0.169528 -vt 0.907291 0.540418 -vt 0.900816 0.540440 -vt 0.900816 0.169483 -vt 0.894342 0.169505 -vt 0.250054 0.418112 -vt 0.913766 0.540396 -vt 0.907291 0.169461 -vt 0.874918 0.540529 -vt 0.868443 0.169594 -vt 0.881392 0.540507 -vt 0.881392 0.169550 -vt 0.874918 0.169572 -vt 0.414377 0.418112 -vt 0.393516 0.393517 -vt 0.424940 0.428675 -vt 0.419658 0.430863 -vt 0.410118 0.432934 -vt 0.412189 0.423394 -vt 0.225459 0.617593 -vt 0.250054 0.592998 -vt 0.255335 0.595186 -vt 0.225459 0.561574 -vt 0.247866 0.587717 -vt 0.250054 0.582435 -vt 0.260617 0.592998 -vt 0.281478 0.617593 -vt 0.255335 0.580247 -vt 0.262805 0.587717 -vt 0.264876 0.578176 -vt 0.449535 0.617593 -vt 0.424940 0.592998 -vt 0.427127 0.587717 -vt 0.393516 0.617593 -vt 0.419658 0.595186 -vt 0.414377 0.592998 -vt 0.424940 0.582435 -vt 0.449535 0.561574 -vt 0.419658 0.580247 -vt 0.410118 0.578176 -vt 0.412189 0.587717 -vt 0.438110 0.746694 -vt 0.434057 0.747689 -vt 0.430486 0.742598 -vt 0.438378 0.740984 -vt 0.423490 0.738286 -vt 0.440859 0.735833 -vt 0.416492 0.733975 -vt 0.443344 0.730685 -vt 0.413168 0.728720 -vt 0.433106 0.705319 -vt 0.434728 0.710801 -vt 0.426679 0.711114 -vt 0.438365 0.715211 -vt 0.420912 0.716970 -vt 0.442006 0.719619 -vt 0.415143 0.722824 -vt 0.443938 0.724999 -vt 0.563375 0.466621 -vt 0.563375 0.474840 -vt 0.555906 0.474840 -vt 0.873658 0.639627 -vt 0.879140 0.638005 -vt 0.879453 0.646055 -vt 0.563375 0.458403 -vt 0.555906 0.458403 -vt 0.555906 0.452185 -vt 0.563375 0.503714 -vt 0.555906 0.503714 -vt 0.555906 0.495495 -vt 0.563375 0.481058 -vt 0.563375 0.487276 -vt 0.555906 0.487276 -vt 0.555906 0.481058 -vt 0.555906 0.466621 -vt 0.563375 0.509932 -vt 0.555906 0.509932 -vt 0.563375 0.495495 -vt 0.915033 0.634623 -vt 0.916028 0.638677 -vt 0.910938 0.642247 -vt 0.909323 0.634355 -vt 0.906625 0.649244 -vt 0.904173 0.631874 -vt 0.902315 0.656241 -vt 0.899024 0.629390 -vt 0.897060 0.659565 -vt 0.883551 0.634368 -vt 0.885309 0.651822 -vt 0.887958 0.630728 -vt 0.891164 0.657590 -vt 0.893339 0.628795 -vt 0.563375 0.525290 -vt 0.563375 0.533508 -vt 0.555906 0.533508 -vt 0.563375 0.545944 -vt 0.563375 0.554163 -vt 0.555906 0.554163 -vt 0.563375 0.539726 -vt 0.555906 0.539726 -vt 0.563375 0.562382 -vt 0.555906 0.562382 -vt 0.563375 0.568600 -vt 0.555906 0.568600 -vt 0.555906 0.545944 -vt 0.563375 0.517071 -vt 0.555906 0.517071 -vt 0.555906 0.510853 -vt 0.555906 0.525290 -vt 0.767541 0.913748 -vt 0.768536 0.917801 -vt 0.763446 0.921372 -vt 0.731961 0.925179 -vt 0.726166 0.922925 -vt 0.726166 0.918751 -vt 0.737817 0.930946 -vt 0.731648 0.917130 -vt 0.743672 0.936714 -vt 0.736059 0.913493 -vt 0.761831 0.913480 -vt 0.759133 0.928368 -vt 0.756681 0.910999 -vt 0.754822 0.935366 -vt 0.751532 0.908514 -vt 0.749568 0.938690 -vt 0.740466 0.909852 -vt 0.564296 0.451264 -vt 0.564296 0.445046 -vt 0.571765 0.445046 -vt 0.682764 0.917805 -vt 0.688246 0.916183 -vt 0.688559 0.924233 -vt 0.564296 0.428608 -vt 0.564296 0.422390 -vt 0.571765 0.422390 -vt 0.564296 0.393517 -vt 0.571765 0.393517 -vt 0.571765 0.399735 -vt 0.564296 0.407953 -vt 0.564296 0.399735 -vt 0.571765 0.407953 -vt 0.571765 0.416172 -vt 0.571765 0.428608 -vt 0.571765 0.436827 -vt 0.564296 0.416172 -vt 0.564296 0.436827 -vt 0.724139 0.912802 -vt 0.725134 0.916855 -vt 0.720043 0.920425 -vt 0.718429 0.912533 -vt 0.715731 0.927422 -vt 0.713278 0.910053 -vt 0.711420 0.934420 -vt 0.692657 0.912546 -vt 0.694415 0.930000 -vt 0.697064 0.908906 -vt 0.700270 0.935768 -vt 0.702444 0.906973 -vt 0.706165 0.937743 -vt 0.708130 0.907568 -vt 0.555906 0.393517 -vt 0.563375 0.393517 -vt 0.563375 0.399735 -vt 0.555906 0.445046 -vt 0.563375 0.445046 -vt 0.563375 0.451264 -vt 0.555906 0.428608 -vt 0.555906 0.422390 -vt 0.563375 0.422390 -vt 0.555906 0.436827 -vt 0.563375 0.436827 -vt 0.555906 0.416172 -vt 0.563375 0.416172 -vt 0.555906 0.407953 -vt 0.563375 0.407953 -vt 0.563375 0.428608 -vt 0.555906 0.399735 -vt 0.443090 0.913804 -vt 0.439447 0.913802 -vt 0.362945 0.913776 -vt 0.322873 0.913762 -vt 0.282801 0.913748 -vt 0.279158 0.913747 -vt 0.239086 0.913733 -vt 0.199013 0.913719 -vt 0.158941 0.913705 -vt 0.082439 0.913679 -vt 0.078797 0.913678 -vt 0.002295 0.913651 -vt 0.603379 0.913859 -vt 0.523234 0.913831 -vt 0.563307 0.913845 -vt 0.583330 0.000461 -vt 0.583330 0.392595 -vt 0.546901 0.392595 -vt 0.036890 0.000461 -vt 0.036891 0.392595 -vt 0.000462 0.392596 -vt 0.073319 0.000461 -vt 0.073320 0.392595 -vt 0.109749 0.000461 -vt 0.109749 0.392595 -vt 0.146178 0.000461 -vt 0.146178 0.392595 -vt 0.182607 0.000461 -vt 0.182607 0.392595 -vt 0.219037 0.000461 -vt 0.219036 0.392595 -vt 0.255466 0.000461 -vt 0.255466 0.392595 -vt 0.291895 0.000461 -vt 0.291896 0.392595 -vt 0.328325 0.000461 -vt 0.328325 0.392595 -vt 0.364754 0.000461 -vt 0.364755 0.392595 -vt 0.401183 0.000461 -vt 0.401184 0.392595 -vt 0.437613 0.000461 -vt 0.437613 0.392595 -vt 0.474042 0.000461 -vt 0.474043 0.392595 -vt 0.510471 0.000461 -vt 0.510472 0.392595 -vt 0.546901 0.000461 -vt 0.416903 0.700663 -vt 0.413168 0.700663 -vt 0.413168 0.665651 -vt 0.896067 0.541495 -vt 0.896067 0.545229 -vt 0.858721 0.545229 -vt 0.416903 0.622249 -vt 0.416903 0.618514 -vt 0.440244 0.618514 -vt 0.440244 0.622249 -vt 0.443979 0.622249 -vt 0.443979 0.657261 -vt 0.858721 0.604983 -vt 0.858721 0.601248 -vt 0.896067 0.601248 -vt 0.889064 0.590745 -vt 0.889064 0.555733 -vt 0.865723 0.555733 -vt 0.865723 0.590745 -vt 0.677616 0.533563 -vt 0.714963 0.533563 -vt 0.733636 0.561572 -vt 0.733636 0.477544 -vt 0.714963 0.477544 -vt 0.677616 0.477544 -vt 0.658943 0.561572 -vt 0.416903 0.657261 -vt 0.413168 0.657261 -vt 0.413168 0.622249 -vt 0.899801 0.601248 -vt 0.440244 0.657261 -vt 0.440244 0.660996 -vt 0.416903 0.660996 -vt 0.854986 0.545229 -vt 0.721511 0.870586 -vt 0.686499 0.870586 -vt 0.686499 0.847245 -vt 0.440244 0.665651 -vt 0.440244 0.700663 -vt 0.854065 0.601248 -vt 0.850330 0.601248 -vt 0.850330 0.545229 -vt 0.440244 0.704398 -vt 0.416903 0.704398 -vt 0.850330 0.541495 -vt 0.812984 0.545229 -vt 0.093826 0.477545 -vt 0.075153 0.505555 -vt 0.075153 0.421526 -vt 0.149845 0.393517 -vt 0.131172 0.421526 -vt 0.093826 0.421526 -vt 0.149845 0.421526 -vt 0.131172 0.477545 -vt 0.149845 0.505555 -vt 0.819987 0.555733 -vt 0.819987 0.590745 -vt 0.843328 0.555733 -vt 0.843328 0.590745 -vt 0.812984 0.601248 -vt 0.812984 0.604983 -vt 0.416903 0.665651 -vt 0.416903 0.661917 -vt 0.440244 0.661917 -vt 0.443979 0.665651 -vt 0.443979 0.700663 -vt 0.809250 0.545229 -vt 0.725245 0.878976 -vt 0.725245 0.902318 -vt 0.872737 0.669876 -vt 0.869003 0.669876 -vt 0.869003 0.632530 -vt 0.812984 0.673611 -vt 0.812984 0.669876 -vt 0.686499 0.878976 -vt 0.686499 0.875242 -vt 0.721511 0.875242 -vt 0.858499 0.639532 -vt 0.823487 0.639532 -vt 0.812984 0.632530 -vt 0.823487 0.662874 -vt 0.858499 0.662874 -vt 0.721511 0.906052 -vt 0.686499 0.906052 -vt 0.869003 0.628795 -vt 0.809249 0.632530 -vt 0.682764 0.902318 -vt 0.682764 0.878976 -vt 0.721511 0.847245 -vt 0.725245 0.847245 -vt 0.725245 0.870586 -vt 0.770982 0.903264 -vt 0.767247 0.903264 -vt 0.767247 0.847245 -vt 0.767247 0.843510 -vt 0.729901 0.847245 -vt 0.682764 0.870586 -vt 0.682764 0.847245 -vt 0.584252 0.000461 -vt 0.612262 0.019134 -vt 0.612262 0.000461 -vt 0.780319 0.019134 -vt 0.808328 0.056480 -vt 0.808328 0.112499 -vt 0.736903 0.857749 -vt 0.736903 0.892760 -vt 0.760245 0.857748 -vt 0.760245 0.892760 -vt 0.729901 0.903264 -vt 0.721511 0.874321 -vt 0.686499 0.874321 -vt 0.726166 0.847245 -vt 0.729901 0.906999 -vt 0.686499 0.843510 -vt 0.721511 0.843510 -vt 0.495300 0.951960 -vt 0.412189 0.786636 -vt 0.225458 0.786572 -vt 0.383259 0.987414 -vt 0.612261 0.317903 -vt 0.612261 0.355249 -vt 0.584251 0.373922 -vt 0.696290 0.373922 -vt 0.668280 0.355249 -vt 0.668280 0.317903 -vt 0.612261 0.373922 -vt 0.584251 0.299230 -vt 0.612261 0.299230 -vt 0.584251 0.224537 -vt 0.612261 0.243210 -vt 0.612262 0.429940 -vt 0.612262 0.448613 -vt 0.780319 0.429940 -vt 0.808328 0.336575 -vt 0.780319 0.243210 -vt 0.354735 0.843513 -vt 0.641617 0.875562 -vt 0.260617 0.428675 -vt 0.771903 0.908893 -vt 0.782357 0.883655 -vt 0.314663 0.843513 -vt 0.274591 0.843513 -vt 0.515025 0.843513 -vt 0.474953 0.843513 -vt 0.394808 0.843513 -vt 0.583330 0.777207 -vt 0.572876 0.802445 -vt 0.785999 0.878203 -vt 0.569233 0.807897 -vt 0.810768 0.855244 -vt 0.544465 0.830856 -vt 0.842437 0.843510 -vt 0.512796 0.842589 -vt 0.876185 0.844789 -vt 0.448357 0.827213 -vt 0.479047 0.841310 -vt 0.906875 0.858886 -vt 0.425398 0.802445 -vt 0.414944 0.777206 -vt 0.929835 0.883654 -vt 0.940289 0.908893 -vt 0.379621 0.823282 -vt 0.225458 0.823282 -vt 0.371218 0.831685 -vt 0.205864 0.589584 -vt 0.075153 0.393517 -vt 0.809250 0.168518 -vt 0.939961 0.000461 -vt 0.878094 0.999539 -vt 0.224537 0.617593 -vt 0.168518 0.617593 -vt 0.000461 0.617593 -vt 0.000461 0.951960 -vt 0.612262 0.093826 -vt 0.584251 0.674532 -vt 0.000461 0.964085 -vt 0.789655 0.645601 -vt 0.584251 0.449534 -vt 0.878094 0.987414 -vt 0.808328 0.673611 -vt 0.752309 0.673611 -vt 0.696290 0.673611 -vt 0.075153 0.842591 -vt 0.000461 0.842591 -vt 0.000461 0.767899 -vt 0.000461 0.693207 -vt 0.149845 0.618515 -vt 0.224537 0.693207 -vt 0.000461 0.618514 -vt 0.224537 0.842591 -vt 0.224537 0.618515 -vt 0.641617 0.951039 -vt 0.519591 0.913830 -vt 0.502266 0.393517 -vt 0.554985 0.393517 -vt 0.861047 0.169439 -vt 0.913766 0.169439 -vt 0.414377 0.428675 -vt 0.260617 0.582435 -vt 0.414377 0.582435 -vt 0.428933 0.705319 -vt 0.873658 0.643801 -vt 0.563375 0.452185 -vt 0.563375 0.510853 -vt 0.745847 0.907920 -vt 0.571765 0.451264 -vt 0.682764 0.921979 -vt 0.555906 0.451264 -vt 0.479519 0.913816 -vt 0.403018 0.913790 -vt 0.399375 0.913788 -vt 0.359303 0.913775 -vt 0.319230 0.913761 -vt 0.242729 0.913734 -vt 0.202656 0.913721 -vt 0.162584 0.913707 -vt 0.122512 0.913693 -vt 0.118869 0.913692 -vt 0.042367 0.913665 -vt 0.038724 0.913664 -vt 0.639808 0.913871 -vt 0.559664 0.913844 -vt 0.599736 0.913857 -vt 0.000461 0.000461 -vt 0.858721 0.541495 -vt 0.896067 0.604983 -vt 0.899801 0.545229 -vt 0.854986 0.601248 -vt 0.854065 0.545229 -vt 0.812984 0.541495 -vt 0.850330 0.604983 -vt 0.809250 0.601248 -vt 0.872737 0.632530 -vt 0.869003 0.673611 -vt 0.812984 0.628795 -vt 0.809249 0.669876 -vt 0.770982 0.847245 -vt 0.729901 0.843510 -vt 0.780319 0.000461 -vt 0.808328 0.000461 -vt 0.808328 0.168518 -vt 0.726166 0.903264 -vt 0.767247 0.906999 -vt 0.696290 0.299230 -vt 0.584253 0.448613 -vt 0.808329 0.448613 -vt 0.780319 0.448613 -vt 0.808328 0.280556 -vt 0.808328 0.392594 -vn -0.980800 0.000000 -0.195100 -vn 0.000000 1.000000 0.000000 -vn -0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 -0.831500 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.555600 0.000000 -0.831500 -vn 0.831500 0.000000 -0.555600 -vn 0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn 0.831500 0.000000 0.555600 -vn 0.555600 0.000000 0.831500 -vn 0.195100 0.000000 0.980800 -vn -0.195100 0.000000 0.980800 -vn -0.555600 0.000000 0.831500 -vn -0.831500 0.000000 0.555600 -vn -0.980800 0.000000 0.195100 -vn 1.000000 -0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 0.923900 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 -0.923900 -vn -0.580700 -0.806900 0.108000 -vn -0.826100 -0.367200 -0.427500 -vn -0.392300 0.362500 -0.845400 -vn 0.252800 0.703100 -0.664600 -vn -0.244600 -0.769100 0.590500 -vn 0.351200 -0.397300 0.847800 -vn 0.853400 0.383100 0.353500 -vn 0.656100 0.704000 -0.271800 -vn 0.653300 0.382700 0.653300 -vn -0.590500 -0.769100 -0.244600 -vn 0.270600 -0.923900 0.270600 -vn -0.653300 -0.382700 -0.653300 -vn -0.270600 0.923900 -0.270600 -vn 0.270600 0.923900 0.270600 -vn 0.653300 -0.382700 0.653300 -vn -0.270600 -0.923900 -0.270600 -vn -0.653300 0.382700 -0.653300 -vn -0.108000 -0.806900 -0.580700 -vn 0.427500 -0.367200 -0.826100 -vn 0.845400 0.362500 -0.392300 -vn 0.664600 0.703100 0.252800 -vn -0.847800 -0.397300 0.351200 -vn -0.353500 0.383100 0.853400 -vn 0.271800 0.704000 0.656100 -vn -0.653300 0.382700 0.653300 -vn 0.653300 0.382700 -0.653300 -vn -0.270600 0.923900 0.270600 -vn 0.653300 -0.382700 -0.653300 -vn 0.270600 -0.923900 -0.270600 -vn 0.270600 0.923900 -0.270600 -vn -0.270600 -0.923900 0.270600 -vn -0.653300 -0.382700 0.653300 -vn 0.108000 -0.806900 0.580700 -vn 0.580700 -0.806900 0.108000 -vn 0.826100 -0.367200 -0.427500 -vn 0.392300 0.362500 -0.845400 -vn -0.427500 -0.367200 0.826100 -vn -0.845400 0.362500 0.392300 -vn -0.664600 0.703100 -0.252700 -vn -0.252800 0.703100 -0.664600 -vn 0.244600 -0.769100 -0.590500 -vn 0.580700 -0.806900 -0.108000 -vn 0.826100 -0.367200 0.427500 -vn 0.392300 0.362500 0.845400 -vn -0.351200 -0.397300 -0.847800 -vn -0.853400 0.383100 -0.353500 -vn -0.656100 0.704000 0.271800 -vn -0.252800 0.703100 0.664600 -vn -0.590500 -0.769100 0.244600 -vn -0.847800 -0.397300 -0.351200 -vn -0.353500 0.383100 -0.853400 -vn 0.271800 0.704000 -0.656100 -vn -0.108000 -0.806900 0.580700 -vn 0.427500 -0.367200 0.826100 -vn 0.845400 0.362500 0.392300 -vn 0.664600 0.703100 -0.252800 -vn -0.580700 -0.806900 -0.108000 -vn -0.244600 -0.769100 -0.590500 -vn 0.351200 -0.397300 -0.847800 -vn 0.853400 0.383100 -0.353500 -vn 0.656100 0.704000 0.271800 -vn -0.826100 -0.367200 0.427500 -vn -0.392300 0.362500 0.845400 -vn 0.252800 0.703100 0.664600 -vn 0.244600 -0.769100 0.590500 -vn 0.590500 -0.769100 0.244600 -vn 0.847800 -0.397300 -0.351200 -vn 0.353500 0.383100 -0.853400 -vn -0.351200 -0.397300 0.847800 -vn -0.853400 0.383100 0.353500 -vn -0.656100 0.704000 -0.271800 -vn -0.271800 0.704000 -0.656100 -vn 0.108000 -0.806900 -0.580700 -vn 0.590500 -0.769100 -0.244600 -vn 0.847800 -0.397300 0.351200 -vn 0.353500 0.383100 0.853400 -vn -0.427500 -0.367200 -0.826100 -vn -0.845400 0.362500 -0.392300 -vn -0.664600 0.703100 0.252800 -vn -0.271800 0.704000 0.656100 -s off -f 13/1/1 347/2/1 346/3/1 -f 36/4/2 37/5/2 65/6/2 -f 185/7/3 186/8/3 28/9/3 -f 183/10/4 185/7/4 27/11/4 -f 184/12/5 183/10/5 25/13/5 -f 198/14/6 184/12/6 26/15/6 -f 197/16/7 198/14/7 40/17/7 -f 196/18/8 197/16/8 39/19/8 -f 195/20/9 196/18/9 38/21/9 -f 194/22/10 195/20/10 37/5/10 -f 193/23/11 194/22/11 36/4/11 -f 192/24/12 193/23/12 35/25/12 -f 191/26/13 192/24/13 34/27/13 -f 190/28/14 191/26/14 33/29/14 -f 189/30/15 190/28/15 32/31/15 -f 188/32/16 189/30/16 31/33/16 -f 187/34/17 188/32/17 30/35/17 -f 232/36/2 14/37/2 245/38/2 -f 50/39/2 21/40/2 20/41/2 -f 22/42/2 21/40/2 50/39/2 -f 6/43/2 51/44/2 219/45/2 -f 6/43/2 221/46/2 223/47/2 -f 41/48/2 9/49/2 24/50/2 -f 10/51/2 9/49/2 41/48/2 -f 237/52/2 16/53/2 235/54/2 -f 235/54/2 16/53/2 15/55/2 -f 44/56/2 13/57/2 12/58/2 -f 14/37/2 13/57/2 44/56/2 -f 46/59/2 245/38/2 14/37/2 -f 16/53/2 237/52/2 48/60/2 -f 47/61/2 17/62/2 16/53/2 -f 18/63/2 17/62/2 47/61/2 -f 15/55/2 14/37/2 232/36/2 -f 73/64/10 72/65/10 87/66/10 -f 30/35/2 58/67/2 57/68/2 -f 37/5/2 38/21/2 66/69/2 -f 31/33/2 59/70/2 58/71/2 -f 38/21/2 39/19/2 67/72/2 -f 32/31/2 60/73/2 59/74/2 -f 40/17/2 68/75/2 67/76/2 -f 32/31/2 33/29/2 61/77/2 -f 25/13/2 53/78/2 54/79/2 -f 26/15/2 54/80/2 68/81/2 -f 33/29/2 34/27/2 62/82/2 -f 27/11/2 55/83/2 53/84/2 -f 35/25/2 63/85/2 62/86/2 -f 28/9/2 56/87/2 55/88/2 -f 35/25/2 36/4/2 64/89/2 -f 29/90/2 57/91/2 56/92/2 -f 76/93/2 78/94/2 72/65/2 -f 81/95/1 80/96/1 85/97/1 -f 58/98/9 74/99/9 73/64/9 -f 66/100/17 82/101/17 81/95/17 -f 59/102/8 75/103/8 74/99/8 -f 67/104/16 83/105/16 82/101/16 -f 60/106/7 76/93/7 75/103/7 -f 68/107/15 84/108/15 83/105/15 -f 61/109/6 77/110/6 76/93/6 -f 53/111/13 69/112/13 70/113/13 -f 54/114/14 70/113/14 84/108/14 -f 62/115/5 78/94/5 77/110/5 -f 88/116/12 71/117/12 69/112/12 -f 86/118/4 79/119/4 78/94/4 -f 85/120/3 86/121/3 63/122/3 -f 56/123/11 87/124/11 88/125/11 -f 81/95/2 83/105/2 70/113/2 -f 88/125/2 87/124/2 86/121/2 -f 87/124/15 72/126/15 79/127/15 -f 71/128/7 88/125/7 85/120/7 -f 97/129/18 94/130/18 93/131/18 -f 157/132/19 164/133/19 165/134/19 -f 89/135/20 90/136/20 151/137/20 -f 95/138/18 91/139/18 92/140/18 -f 98/141/18 92/140/18 2/142/18 -f 94/130/18 97/129/18 1/143/18 -f 96/144/21 95/145/21 106/146/21 -f 99/147/2 111/148/2 108/149/2 -f 97/150/2 107/151/2 112/152/2 -f 108/153/18 111/154/18 110/155/18 -f 107/156/18 105/157/18 109/158/18 -f 110/155/18 109/158/18 105/157/18 -f 104/159/22 112/152/22 109/160/22 -f 96/144/20 105/161/20 107/151/20 -f 50/162/18 51/163/18 95/138/18 -f 102/164/2 109/165/2 110/166/2 -f 100/167/20 110/166/20 111/148/20 -f 98/168/22 108/149/22 106/146/22 -f 398/169/22 397/170/22 394/171/22 -f 120/172/2 114/173/2 126/174/2 -f 115/175/19 125/176/19 123/177/19 -f 125/178/22 130/179/22 128/180/22 -f 129/181/22 127/182/22 126/183/22 -f 124/184/22 123/185/22 128/180/22 -f 116/186/18 124/187/18 126/174/18 -f 118/188/2 130/189/2 125/176/2 -f 121/190/18 128/191/18 130/189/18 -f 122/192/2 129/193/2 128/191/2 -f 120/172/19 127/194/19 129/195/19 -f 139/196/19 136/197/19 411/198/19 -f 411/198/19 412/199/19 140/200/19 -f 132/201/21 131/202/21 142/203/21 -f 140/204/2 145/205/2 146/206/2 -f 138/207/2 134/208/2 144/209/2 -f 407/210/19 135/211/19 137/212/19 -f 138/213/19 140/200/19 412/199/19 -f 142/214/19 146/215/19 145/216/19 -f 143/217/19 147/218/19 146/215/19 -f 145/216/19 148/219/19 144/220/19 -f 138/207/20 148/221/20 145/222/20 -f 133/223/20 143/224/20 142/203/20 -f 136/225/2 147/226/2 143/224/2 -f 133/227/19 131/228/19 8/229/19 -f 132/201/22 141/230/22 144/209/22 -f 139/231/22 146/206/22 147/226/22 -f 150/232/20 92/233/20 91/234/20 -f 153/235/19 159/236/19 163/237/19 -f 149/238/20 154/239/20 151/137/20 -f 150/232/20 155/240/20 2/241/20 -f 162/242/20 165/243/20 164/244/20 -f 160/245/20 166/246/20 163/247/20 -f 150/248/2 163/237/2 166/249/2 -f 158/250/2 160/251/2 164/133/2 -f 151/252/18 162/253/18 161/254/18 -f 156/255/18 166/249/18 160/256/18 -f 48/257/20 7/258/20 152/259/20 -f 154/260/2 165/134/2 162/253/2 -f 137/261/21 113/262/21 103/263/21 -f 20/264/11 354/265/11 353/266/11 -f 12/267/3 346/3/3 345/268/3 -f 19/269/12 353/266/12 352/270/12 -f 11/271/4 345/268/4 343/272/4 -f 18/273/13 352/270/13 351/274/13 -f 9/275/6 344/276/6 358/277/6 -f 10/278/5 343/272/5 344/276/5 -f 17/279/14 351/274/14 350/280/14 -f 24/281/7 358/277/7 357/282/7 -f 16/283/15 350/280/15 349/284/15 -f 23/285/8 357/282/8 356/286/8 -f 15/287/16 349/284/16 348/288/16 -f 22/289/9 356/286/9 355/290/9 -f 14/291/17 348/288/17 347/292/17 -f 21/293/10 355/290/10 354/265/10 -f 350/280/2 351/274/2 333/294/2 -f 186/8/1 187/295/1 29/90/1 -f 181/296/21 168/297/21 188/32/21 -f 168/298/21 167/299/21 189/30/21 -f 167/300/21 171/301/21 190/28/21 -f 171/302/21 173/303/21 191/26/21 -f 173/304/21 176/305/21 192/24/21 -f 176/306/21 178/307/21 193/23/21 -f 178/308/21 180/309/21 194/22/21 -f 194/22/21 180/310/21 182/311/21 -f 182/312/21 170/313/21 196/18/21 -f 196/18/21 170/314/21 169/315/21 -f 197/16/21 169/316/21 172/317/21 -f 172/318/21 175/319/21 184/12/21 -f 184/12/21 175/320/21 174/321/21 -f 183/10/21 174/322/21 177/323/21 -f 185/7/21 177/324/21 179/325/21 -f 186/8/21 179/326/21 181/327/21 -f 236/328/23 238/329/23 237/330/23 -f 239/331/2 48/60/2 237/52/2 -f 202/332/24 204/333/24 203/334/24 -f 244/335/25 246/336/25 245/337/25 -f 226/338/26 228/339/26 227/340/26 -f 204/333/27 206/341/27 205/342/27 -f 240/343/28 242/344/28 241/345/28 -f 224/346/28 226/338/28 225/347/28 -f 206/341/23 208/348/23 207/349/23 -f 242/344/26 244/335/26 243/350/26 -f 222/351/29 224/346/29 223/352/29 -f 208/348/29 210/353/29 209/354/29 -f 7/355/2 48/60/2 239/331/2 -f 220/356/23 222/351/23 221/357/23 -f 210/353/28 212/358/28 211/359/28 -f 228/339/25 230/360/25 229/361/25 -f 218/362/27 220/356/27 219/363/27 -f 212/364/26 214/365/26 213/366/26 -f 243/367/2 245/38/2 46/59/2 -f 216/368/30 202/332/30 201/369/30 -f 214/365/25 216/368/25 215/370/25 -f 238/329/29 240/343/29 239/371/29 -f 230/372/30 199/373/30 200/374/30 -f 199/373/24 218/362/24 217/375/24 -f 234/376/27 236/328/27 235/377/27 -f 246/336/30 231/378/30 232/379/30 -f 231/378/24 234/380/24 233/381/24 -f 252/382/23 254/383/23 253/384/23 -f 260/385/25 262/386/25 261/387/25 -f 256/388/28 258/389/28 257/390/28 -f 258/389/26 260/385/26 259/391/26 -f 7/355/2 241/392/2 243/367/2 -f 254/393/29 256/388/29 255/394/29 -f 250/395/27 252/382/27 251/396/27 -f 262/386/30 247/397/30 248/398/30 -f 247/397/24 250/395/24 249/399/24 -f 223/47/2 225/400/2 49/401/2 -f 219/45/2 51/44/2 217/402/2 -f 51/44/2 20/41/2 217/402/2 -f 217/402/2 20/41/2 200/403/2 -f 200/403/2 20/41/2 19/404/2 -f 49/401/2 225/400/2 18/63/2 -f 225/400/2 227/405/2 18/63/2 -f 19/404/2 18/63/2 227/405/2 -f 8/406/2 261/407/2 248/408/2 -f 8/406/2 45/409/2 259/410/2 -f 259/410/2 45/409/2 257/411/2 -f 248/408/2 249/412/2 42/413/2 -f 42/413/2 249/412/2 10/51/2 -f 45/409/2 12/58/2 257/411/2 -f 257/411/2 12/58/2 255/414/2 -f 249/412/2 251/415/2 10/51/2 -f 11/416/2 10/51/2 251/415/2 -f 255/414/2 12/58/2 11/416/2 -f 5/417/2 203/418/2 205/419/2 -f 5/417/2 43/420/2 201/421/2 -f 201/421/2 43/420/2 215/422/2 -f 205/419/2 207/423/2 52/424/2 -f 52/424/2 207/423/2 22/42/2 -f 43/420/2 24/50/2 215/422/2 -f 207/423/2 209/425/2 22/42/2 -f 23/426/2 22/42/2 209/425/2 -f 215/422/2 24/50/2 213/427/2 -f 213/427/2 24/50/2 23/426/2 -f 212/428/31 267/429/31 266/430/31 -f 214/431/32 266/430/32 265/432/32 -f 216/433/33 265/432/33 264/434/33 -f 202/435/34 264/434/34 263/436/34 -f 212/437/35 210/438/35 268/439/35 -f 210/438/36 208/440/36 269/441/36 -f 208/440/37 206/442/37 270/443/37 -f 206/442/38 204/444/38 263/436/38 -f 269/445/39 270/446/39 278/447/39 -f 230/448/40 228/449/40 282/450/40 -f 268/451/41 276/452/41 275/453/41 -f 266/454/42 274/455/42 273/456/42 -f 263/457/43 264/458/43 271/459/43 -f 270/446/44 263/457/44 272/460/44 -f 268/451/45 269/445/45 277/461/45 -f 267/462/46 275/463/46 274/455/46 -f 265/464/47 273/456/47 271/459/47 -f 230/465/48 281/466/48 280/467/48 -f 199/468/49 280/467/49 279/469/49 -f 218/470/50 279/469/50 286/471/50 -f 220/472/51 286/471/51 285/473/51 -f 228/449/52 226/474/52 283/475/52 -f 226/474/53 224/476/53 284/477/53 -f 224/476/54 222/478/54 285/473/54 -f 283/479/55 284/480/55 287/481/55 -f 286/482/56 279/483/56 292/484/56 -f 284/480/57 285/485/57 293/486/57 -f 279/483/58 280/487/58 290/488/58 -f 281/489/59 289/490/59 290/488/59 -f 286/482/60 294/491/60 293/486/60 -f 282/492/61 291/493/61 289/494/61 -f 283/479/62 288/495/62 291/493/62 -f 254/496/63 297/497/63 298/498/63 -f 296/499/64 297/500/64 254/501/64 -f 295/502/65 296/499/65 252/503/65 -f 302/504/66 295/502/66 250/505/66 -f 256/506/67 298/498/67 299/507/67 -f 258/508/68 299/507/68 300/509/68 -f 260/510/69 300/509/69 301/511/69 -f 301/511/70 302/504/70 247/512/70 -f 297/513/59 296/514/59 306/515/59 -f 234/516/71 231/517/71 316/518/71 -f 302/519/60 301/520/60 309/521/60 -f 297/522/61 305/523/61 307/524/61 -f 299/525/62 298/526/62 307/524/62 -f 299/525/55 304/527/55 303/528/55 -f 302/519/56 310/529/56 308/530/56 -f 301/520/57 300/531/57 303/528/57 -f 295/532/58 308/530/58 306/515/58 -f 234/533/72 315/534/72 314/535/72 -f 236/536/73 314/535/73 313/537/73 -f 238/538/74 313/537/74 312/539/74 -f 231/517/75 246/540/75 317/541/75 -f 246/540/76 244/542/76 318/543/76 -f 244/542/77 242/544/77 311/545/77 -f 240/546/78 312/539/78 311/545/78 -f 315/547/41 320/548/41 323/549/41 -f 316/550/46 319/551/46 320/552/46 -f 318/553/43 311/554/43 324/555/43 -f 317/556/42 325/557/42 319/551/42 -f 311/554/44 312/558/44 322/559/44 -f 312/558/39 313/560/39 321/561/39 -f 318/553/47 326/562/47 325/557/47 -f 313/560/45 314/563/45 323/549/45 -f 351/274/2 352/270/2 336/564/2 -f 336/565/2 352/270/2 353/266/2 -f 353/266/2 354/265/2 340/566/2 -f 354/265/2 355/290/2 342/567/2 -f 355/290/2 356/286/2 330/568/2 -f 330/569/2 356/286/2 357/282/2 -f 329/570/2 357/282/2 358/277/2 -f 332/571/2 358/277/2 344/276/2 -f 335/572/2 344/276/2 343/272/2 -f 343/272/2 345/268/2 337/573/2 -f 337/574/2 345/268/2 346/3/2 -f 346/3/2 347/2/2 341/575/2 -f 347/292/2 348/288/2 328/576/2 -f 349/284/2 350/280/2 331/577/2 -f 348/288/2 349/284/2 327/578/2 -f 341/579/1 181/580/1 179/581/1 -f 328/582/17 168/583/17 181/584/17 -f 327/585/16 167/586/16 168/583/16 -f 331/587/15 171/588/15 167/586/15 -f 333/589/14 173/590/14 171/588/14 -f 336/591/13 176/592/13 173/590/13 -f 338/593/12 178/594/12 176/592/12 -f 340/595/11 180/596/11 178/594/11 -f 342/597/10 182/598/10 180/596/10 -f 330/599/9 170/600/9 182/598/9 -f 329/601/8 169/602/8 170/600/8 -f 332/603/7 172/604/7 169/602/7 -f 335/605/6 175/606/6 172/604/6 -f 334/607/5 174/608/5 175/606/5 -f 337/609/4 177/610/4 174/608/4 -f 339/611/3 179/581/3 177/610/3 -f 382/612/20 384/613/20 386/614/20 -f 376/615/2 371/616/2 370/617/2 -f 365/618/21 377/619/21 378/620/21 -f 366/621/18 378/622/18 364/623/18 -f 374/624/21 369/625/21 363/626/21 -f 363/626/20 364/627/20 378/628/20 -f 371/616/20 378/628/20 377/629/20 -f 369/625/20 372/630/20 364/627/20 -f 369/625/20 370/617/20 377/629/20 -f 374/631/20 373/632/20 158/633/20 -f 156/634/20 373/632/20 376/635/20 -f 155/240/20 376/635/20 380/636/20 -f 374/631/20 157/637/20 154/239/20 -f 375/638/19 372/639/19 377/640/19 -f 373/641/19 363/626/19 371/616/19 -f 379/642/2 364/643/2 372/644/2 -f 380/645/18 370/617/18 369/625/18 -f 413/646/19 410/647/19 408/648/19 -f 366/621/20 379/642/20 375/638/20 -f 368/649/18 359/650/18 382/612/18 -f 361/651/20 389/652/20 387/653/20 -f 359/650/2 383/654/2 384/655/2 -f 360/656/2 387/653/2 388/657/2 -f 367/658/18 100/659/18 99/660/18 -f 103/661/18 360/662/18 362/663/18 -f 104/664/18 361/665/18 360/662/18 -f 367/658/18 361/665/18 102/666/18 -f 388/657/18 386/667/18 384/668/18 -f 388/657/18 387/653/18 385/669/18 -f 383/670/18 385/669/18 387/653/18 -f 383/670/18 389/652/18 390/671/18 -f 367/672/21 390/671/21 389/652/21 -f 381/673/21 386/674/21 385/675/21 -f 368/649/22 385/676/22 383/677/22 -f 362/678/22 388/657/22 390/671/22 -f 398/169/2 400/679/2 399/680/2 -f 393/681/2 404/682/2 403/683/2 -f 396/684/18 406/685/18 404/682/18 -f 392/686/19 402/687/19 400/688/19 -f 403/683/22 401/689/22 399/690/22 -f 401/689/22 403/683/22 404/682/22 -f 406/685/22 405/691/22 399/690/22 -f 406/685/22 400/692/22 402/693/22 -f 397/170/18 399/694/18 401/695/18 -f 391/696/19 403/683/19 405/691/19 -f 395/697/21 405/691/21 406/685/21 -f 394/171/21 401/698/21 402/699/21 -f 414/700/2 415/701/2 417/702/2 -f 412/703/22 419/704/22 420/705/22 -f 409/706/2 420/705/2 421/707/2 -f 410/647/21 422/708/21 416/709/21 -f 135/211/19 136/197/19 133/227/19 -f 137/212/19 3/710/19 134/711/19 -f 134/711/19 3/710/19 90/712/19 -f 132/713/19 46/714/19 44/715/19 -f 421/707/19 422/716/19 417/717/19 -f 416/718/19 422/716/19 421/707/19 -f 420/705/19 419/704/19 415/719/19 -f 419/704/19 418/720/19 417/717/19 -f 413/646/22 417/721/22 422/722/22 -f 407/723/20 421/707/20 418/720/20 -f 411/724/21 418/720/21 419/704/21 -f 408/648/20 416/725/20 415/726/20 -f 124/187/21 116/186/21 117/727/21 -f 159/728/20 161/729/20 164/244/20 -f 153/235/21 152/730/21 161/254/21 -f 393/731/22 391/732/22 113/733/22 -f 121/734/22 395/735/22 396/736/22 -f 118/737/22 391/732/22 395/735/22 -f 393/731/22 119/738/22 120/739/22 -f 119/738/22 4/740/22 114/741/22 -f 113/733/22 118/737/22 115/742/22 -f 94/743/22 115/742/22 117/744/22 -f 41/745/22 117/744/22 116/746/22 -f 114/741/22 4/740/22 8/229/22 -f 12/267/1 13/1/1 346/3/1 -f 64/747/2 36/4/2 65/6/2 -f 27/11/3 185/7/3 28/9/3 -f 25/13/4 183/10/4 27/11/4 -f 26/15/5 184/12/5 25/13/5 -f 40/17/6 198/14/6 26/15/6 -f 39/19/7 197/16/7 40/17/7 -f 38/21/8 196/18/8 39/19/8 -f 37/5/9 195/20/9 38/21/9 -f 36/4/10 194/22/10 37/5/10 -f 35/25/11 193/23/11 36/4/11 -f 34/27/12 192/24/12 35/25/12 -f 33/29/13 191/26/13 34/27/13 -f 32/31/14 190/28/14 33/29/14 -f 31/33/15 189/30/15 32/31/15 -f 30/35/16 188/32/16 31/33/16 -f 29/748/17 187/34/17 30/35/17 -f 51/44/2 50/39/2 20/41/2 -f 52/424/2 22/42/2 50/39/2 -f 221/46/2 6/43/2 219/45/2 -f 49/401/2 6/43/2 223/47/2 -f 43/420/2 41/48/2 24/50/2 -f 42/413/2 10/51/2 41/48/2 -f 233/749/2 235/54/2 15/55/2 -f 45/409/2 44/56/2 12/58/2 -f 46/59/2 14/37/2 44/56/2 -f 48/60/2 47/61/2 16/53/2 -f 49/401/2 18/63/2 47/61/2 -f 233/749/2 15/55/2 232/36/2 -f 87/66/10 56/750/10 57/751/10 -f 57/751/10 73/64/10 87/66/10 -f 29/748/2 30/35/2 57/68/2 -f 65/752/2 37/5/2 66/69/2 -f 30/35/2 31/33/2 58/71/2 -f 66/753/2 38/21/2 67/72/2 -f 31/33/2 32/31/2 59/74/2 -f 39/19/2 40/17/2 67/76/2 -f 60/754/2 32/31/2 61/77/2 -f 26/15/2 25/13/2 54/79/2 -f 40/17/2 26/15/2 68/81/2 -f 61/755/2 33/29/2 62/82/2 -f 25/13/2 27/11/2 53/84/2 -f 34/27/2 35/25/2 62/86/2 -f 27/11/2 28/9/2 55/88/2 -f 63/756/2 35/25/2 64/89/2 -f 28/9/2 29/90/2 56/92/2 -f 72/65/2 73/64/2 74/99/2 -f 74/99/2 75/103/2 76/93/2 -f 76/93/2 77/110/2 78/94/2 -f 78/94/2 79/119/2 72/65/2 -f 72/65/2 74/99/2 76/93/2 -f 85/97/1 64/757/1 65/758/1 -f 65/758/1 81/95/1 85/97/1 -f 57/759/9 58/98/9 73/64/9 -f 65/760/17 66/100/17 81/95/17 -f 58/761/8 59/102/8 74/99/8 -f 66/762/16 67/104/16 82/101/16 -f 59/763/7 60/106/7 75/103/7 -f 67/764/15 68/107/15 83/105/15 -f 60/765/6 61/109/6 76/93/6 -f 54/766/13 53/111/13 70/113/13 -f 68/767/14 54/114/14 84/108/14 -f 61/768/5 62/115/5 77/110/5 -f 69/112/12 53/769/12 88/116/12 -f 55/770/12 88/116/12 53/769/12 -f 78/94/4 62/771/4 86/118/4 -f 63/772/4 86/118/4 62/771/4 -f 64/773/3 85/120/3 63/122/3 -f 55/774/11 56/123/11 88/125/11 -f 70/113/2 69/112/2 71/117/2 -f 71/117/2 80/96/2 81/95/2 -f 81/95/2 82/101/2 83/105/2 -f 83/105/2 84/108/2 70/113/2 -f 70/113/2 71/117/2 81/95/2 -f 85/120/2 88/125/2 86/121/2 -f 86/121/15 87/124/15 79/127/15 -f 80/775/7 71/128/7 85/120/7 -f 96/776/18 97/129/18 93/131/18 -f 154/260/19 157/132/19 165/134/19 -f 152/259/20 89/135/20 151/137/20 -f 98/141/18 95/138/18 92/140/18 -f 2/142/18 101/777/18 98/141/18 -f 99/660/18 98/141/18 101/777/18 -f 103/661/18 1/143/18 97/129/18 -f 97/129/18 104/664/18 103/661/18 -f 105/161/21 96/144/21 106/146/21 -f 98/168/2 99/147/2 108/149/2 -f 104/159/2 97/150/2 112/152/2 -f 106/778/18 108/153/18 110/155/18 -f 112/779/18 107/156/18 109/158/18 -f 106/778/18 110/155/18 105/157/18 -f 102/780/22 104/159/22 109/160/22 -f 97/150/20 96/144/20 107/151/20 -f 96/776/18 93/131/18 5/781/18 -f 5/781/18 52/782/18 96/776/18 -f 51/163/18 6/783/18 95/138/18 -f 52/782/18 50/162/18 96/776/18 -f 95/138/18 96/776/18 50/162/18 -f 6/783/18 91/139/18 95/138/18 -f 100/167/2 102/164/2 110/166/2 -f 99/147/20 100/167/20 111/148/20 -f 95/145/22 98/168/22 106/146/22 -f 392/686/22 398/169/22 394/171/22 -f 127/194/2 120/172/2 126/174/2 -f 117/727/19 115/175/19 123/177/19 -f 123/185/22 125/178/22 128/180/22 -f 124/184/22 129/181/22 126/183/22 -f 129/181/22 124/184/22 128/180/22 -f 114/173/18 116/186/18 126/174/18 -f 115/175/2 118/188/2 125/176/2 -f 118/188/18 121/190/18 130/189/18 -f 121/190/2 122/192/2 128/191/2 -f 122/784/19 120/172/19 129/195/19 -f 407/210/19 411/198/19 136/197/19 -f 136/197/19 135/211/19 407/210/19 -f 139/196/19 411/198/19 140/200/19 -f 141/230/21 132/201/21 142/203/21 -f 139/231/2 140/204/2 146/206/2 -f 148/221/2 138/207/2 144/209/2 -f 409/785/19 407/210/19 137/212/19 -f 412/199/19 409/785/19 138/213/19 -f 137/212/19 138/213/19 409/785/19 -f 141/786/19 142/214/19 145/216/19 -f 142/214/19 143/217/19 146/215/19 -f 141/786/19 145/216/19 144/220/19 -f 140/787/20 138/207/20 145/222/20 -f 131/202/20 133/223/20 142/203/20 -f 133/223/2 136/225/2 143/224/2 -f 4/740/19 133/227/19 8/229/19 -f 134/208/22 132/201/22 144/209/22 -f 136/225/22 139/231/22 147/226/22 -f 153/788/20 150/232/20 91/234/20 -f 150/248/19 153/235/19 163/237/19 -f 151/137/20 90/136/20 3/789/20 -f 3/789/20 149/238/20 151/137/20 -f 2/241/20 92/233/20 150/232/20 -f 150/232/20 156/634/20 155/240/20 -f 161/729/20 162/242/20 164/244/20 -f 159/728/20 160/245/20 163/247/20 -f 156/255/2 150/248/2 166/249/2 -f 157/132/2 158/250/2 164/133/2 -f 152/730/18 151/252/18 161/254/18 -f 158/790/18 156/255/18 160/256/18 -f 153/788/20 91/234/20 6/791/20 -f 6/791/20 49/792/20 153/788/20 -f 47/793/20 48/257/20 152/259/20 -f 7/258/20 89/135/20 152/259/20 -f 152/259/20 153/788/20 47/793/20 -f 49/792/20 47/793/20 153/788/20 -f 151/252/2 154/260/2 162/253/2 -f 101/794/21 2/795/21 155/796/21 -f 155/796/21 149/797/21 137/261/21 -f 137/261/21 135/798/21 119/799/21 -f 149/797/21 3/800/21 137/261/21 -f 103/263/21 101/794/21 155/796/21 -f 113/262/21 1/801/21 103/263/21 -f 135/798/21 4/802/21 119/799/21 -f 119/799/21 113/262/21 137/261/21 -f 103/263/21 155/796/21 137/261/21 -f 19/269/11 20/264/11 353/266/11 -f 11/271/3 12/267/3 345/268/3 -f 18/273/12 19/269/12 352/270/12 -f 10/278/4 11/271/4 343/272/4 -f 17/279/13 18/273/13 351/274/13 -f 24/281/6 9/275/6 358/277/6 -f 9/275/5 10/278/5 344/276/5 -f 16/283/14 17/279/14 350/280/14 -f 23/285/7 24/281/7 357/282/7 -f 15/287/15 16/283/15 349/284/15 -f 22/289/8 23/285/8 356/286/8 -f 14/291/16 15/287/16 348/288/16 -f 21/293/9 22/289/9 355/290/9 -f 13/803/17 14/291/17 347/292/17 -f 20/264/10 21/293/10 354/265/10 -f 331/804/2 350/280/2 333/294/2 -f 28/9/1 186/8/1 29/90/1 -f 187/34/21 181/296/21 188/32/21 -f 188/32/21 168/298/21 189/30/21 -f 189/30/21 167/300/21 190/28/21 -f 190/28/21 171/302/21 191/26/21 -f 191/26/21 173/304/21 192/24/21 -f 192/24/21 176/306/21 193/23/21 -f 193/23/21 178/308/21 194/22/21 -f 195/20/21 194/22/21 182/311/21 -f 195/20/21 182/312/21 196/18/21 -f 197/16/21 196/18/21 169/315/21 -f 198/14/21 197/16/21 172/317/21 -f 198/14/21 172/318/21 184/12/21 -f 183/10/21 184/12/21 174/321/21 -f 185/7/21 183/10/21 177/323/21 -f 186/8/21 185/7/21 179/325/21 -f 187/295/21 186/8/21 181/327/21 -f 235/377/23 236/328/23 237/330/23 -f 201/369/24 202/332/24 203/334/24 -f 243/350/25 244/335/25 245/337/25 -f 225/347/26 226/338/26 227/340/26 -f 203/334/27 204/333/27 205/342/27 -f 239/371/28 240/343/28 241/345/28 -f 223/352/28 224/346/28 225/347/28 -f 205/342/23 206/341/23 207/349/23 -f 241/345/26 242/344/26 243/350/26 -f 221/357/29 222/351/29 223/352/29 -f 207/349/29 208/348/29 209/354/29 -f 241/392/2 7/355/2 239/331/2 -f 219/363/23 220/356/23 221/357/23 -f 209/354/28 210/353/28 211/359/28 -f 227/340/25 228/339/25 229/361/25 -f 217/375/27 218/362/27 219/363/27 -f 211/805/26 212/364/26 213/366/26 -f 215/370/30 216/368/30 201/369/30 -f 213/366/25 214/365/25 215/370/25 -f 237/330/29 238/329/29 239/371/29 -f 229/806/30 230/372/30 200/374/30 -f 200/374/24 199/373/24 217/375/24 -f 233/807/27 234/376/27 235/377/27 -f 245/337/30 246/336/30 232/379/30 -f 232/379/24 231/378/24 233/381/24 -f 251/396/23 252/382/23 253/384/23 -f 259/391/25 260/385/25 261/387/25 -f 255/394/28 256/388/28 257/390/28 -f 257/390/26 258/389/26 259/391/26 -f 46/59/2 7/355/2 243/367/2 -f 253/808/29 254/393/29 255/394/29 -f 249/399/27 250/395/27 251/396/27 -f 261/387/30 262/386/30 248/398/30 -f 248/398/24 247/397/24 249/399/24 -f 229/809/2 200/403/2 19/404/2 -f 229/809/2 19/404/2 227/405/2 -f 42/413/2 8/406/2 248/408/2 -f 261/407/2 8/406/2 259/410/2 -f 253/810/2 11/416/2 251/415/2 -f 253/810/2 255/414/2 11/416/2 -f 52/424/2 5/417/2 205/419/2 -f 203/418/2 5/417/2 201/421/2 -f 211/811/2 23/426/2 209/425/2 -f 211/811/2 213/427/2 23/426/2 -f 214/431/79 212/428/79 266/430/79 -f 216/433/80 214/431/80 265/432/80 -f 202/435/81 216/433/81 264/434/81 -f 204/444/82 202/435/82 263/436/82 -f 267/812/83 212/437/83 268/439/83 -f 268/439/84 210/438/84 269/441/84 -f 269/441/85 208/440/85 270/443/85 -f 270/443/86 206/442/86 263/436/86 -f 277/461/39 269/445/39 278/447/39 -f 281/813/87 230/448/87 282/450/87 -f 267/814/41 268/451/41 275/453/41 -f 265/464/42 266/454/42 273/456/42 -f 272/460/43 263/457/43 271/459/43 -f 278/447/44 270/446/44 272/460/44 -f 276/452/45 268/451/45 277/461/45 -f 266/454/46 267/462/46 274/455/46 -f 264/458/47 265/464/47 271/459/47 -f 199/468/88 230/465/88 280/467/88 -f 218/470/89 199/468/89 279/469/89 -f 220/472/90 218/470/90 286/471/90 -f 222/478/91 220/472/91 285/473/91 -f 282/450/92 228/449/92 283/475/92 -f 283/475/93 226/474/93 284/477/93 -f 284/477/94 224/476/94 285/473/94 -f 288/495/55 283/479/55 287/481/55 -f 294/491/56 286/482/56 292/484/56 -f 287/481/57 284/480/57 293/486/57 -f 292/484/58 279/483/58 290/488/58 -f 280/487/59 281/489/59 290/488/59 -f 285/485/60 286/482/60 293/486/60 -f 281/815/61 282/492/61 289/494/61 -f 282/492/62 283/479/62 291/493/62 -f 256/506/95 254/496/95 298/498/95 -f 252/503/96 296/499/96 254/501/96 -f 250/505/97 295/502/97 252/503/97 -f 247/512/98 302/504/98 250/505/98 -f 258/508/99 256/506/99 299/507/99 -f 260/510/100 258/508/100 300/509/100 -f 262/816/101 260/510/101 301/511/101 -f 262/816/102 301/511/102 247/512/102 -f 305/817/59 297/513/59 306/515/59 -f 315/818/103 234/516/103 316/518/103 -f 310/529/60 302/519/60 309/521/60 -f 298/526/61 297/522/61 307/524/61 -f 304/527/62 299/525/62 307/524/62 -f 300/531/55 299/525/55 303/528/55 -f 295/532/56 302/519/56 308/530/56 -f 309/521/57 301/520/57 303/528/57 -f 296/514/58 295/532/58 306/515/58 -f 236/536/104 234/533/104 314/535/104 -f 238/538/105 236/536/105 313/537/105 -f 240/546/106 238/538/106 312/539/106 -f 316/518/107 231/517/107 317/541/107 -f 317/541/108 246/540/108 318/543/108 -f 318/543/109 244/542/109 311/545/109 -f 242/544/110 240/546/110 311/545/110 -f 314/563/41 315/547/41 323/549/41 -f 315/819/46 316/550/46 320/552/46 -f 326/562/43 318/553/43 324/555/43 -f 316/550/42 317/556/42 319/551/42 -f 324/555/44 311/554/44 322/559/44 -f 322/559/39 312/558/39 321/561/39 -f 317/556/47 318/553/47 325/557/47 -f 321/561/45 313/560/45 323/549/45 -f 333/820/2 351/274/2 336/564/2 -f 338/821/2 336/565/2 353/266/2 -f 338/822/2 353/266/2 340/566/2 -f 340/823/2 354/265/2 342/567/2 -f 342/824/2 355/290/2 330/568/2 -f 329/825/2 330/569/2 357/282/2 -f 332/826/2 329/570/2 358/277/2 -f 335/827/2 332/571/2 344/276/2 -f 334/828/2 335/572/2 343/272/2 -f 334/829/2 343/272/2 337/573/2 -f 339/830/2 337/574/2 346/3/2 -f 339/831/2 346/3/2 341/575/2 -f 341/832/2 347/292/2 328/576/2 -f 327/833/2 349/284/2 331/577/2 -f 328/834/2 348/288/2 327/578/2 -f 339/611/1 341/579/1 179/581/1 -f 341/835/17 328/582/17 181/584/17 -f 328/582/16 327/585/16 168/583/16 -f 327/585/15 331/587/15 167/586/15 -f 331/587/14 333/589/14 171/588/14 -f 333/589/13 336/591/13 173/590/13 -f 336/591/12 338/593/12 176/592/12 -f 338/593/11 340/595/11 178/594/11 -f 340/595/10 342/597/10 180/596/10 -f 342/597/9 330/599/9 182/598/9 -f 330/599/8 329/601/8 170/600/8 -f 329/601/7 332/603/7 169/602/7 -f 332/603/6 335/605/6 172/604/6 -f 335/605/5 334/607/5 175/606/5 -f 334/607/4 337/609/4 174/608/4 -f 337/609/3 339/611/3 177/610/3 -f 381/673/20 382/612/20 386/614/20 -f 380/836/2 376/615/2 370/617/2 -f 366/621/21 365/618/21 378/620/21 -f 379/642/18 366/621/18 364/623/18 -f 373/837/21 374/624/21 363/626/21 -f 371/616/20 363/626/20 378/628/20 -f 370/617/20 371/616/20 377/629/20 -f 363/626/20 369/625/20 364/627/20 -f 372/630/20 369/625/20 377/629/20 -f 157/637/20 374/631/20 158/633/20 -f 376/635/20 155/240/20 156/634/20 -f 156/634/20 158/633/20 373/632/20 -f 149/238/20 155/240/20 380/636/20 -f 154/239/20 149/238/20 380/636/20 -f 380/636/20 374/631/20 154/239/20 -f 365/618/19 375/638/19 377/640/19 -f 376/838/19 373/641/19 371/616/19 -f 375/638/2 379/642/2 372/644/2 -f 374/839/18 380/645/18 369/625/18 -f 414/700/19 413/646/19 408/648/19 -f 365/618/20 366/621/20 375/638/20 -f 381/673/18 368/649/18 382/612/18 -f 360/840/20 361/651/20 387/653/20 -f 382/612/2 359/650/2 384/655/2 -f 362/841/2 360/656/2 388/657/2 -f 99/660/18 101/777/18 362/663/18 -f 362/663/18 367/658/18 99/660/18 -f 101/777/18 103/661/18 362/663/18 -f 360/662/18 103/661/18 104/664/18 -f 104/664/18 102/666/18 361/665/18 -f 100/659/18 367/658/18 102/666/18 -f 390/671/18 388/657/18 384/668/18 -f 386/667/18 388/657/18 385/669/18 -f 389/652/18 383/670/18 387/653/18 -f 384/668/18 383/670/18 390/671/18 -f 361/842/21 367/672/21 389/652/21 -f 368/649/21 381/673/21 385/675/21 -f 359/650/22 368/649/22 383/677/22 -f 367/843/22 362/678/22 390/671/22 -f 397/170/2 398/169/2 399/680/2 -f 391/844/2 393/681/2 403/683/2 -f 393/845/18 396/684/18 404/682/18 -f 398/169/19 392/686/19 400/688/19 -f 405/691/22 403/683/22 399/690/22 -f 402/693/22 401/689/22 404/682/22 -f 400/692/22 406/685/22 399/690/22 -f 404/682/22 406/685/22 402/693/22 -f 394/171/18 397/170/18 401/695/18 -f 395/846/19 391/696/19 405/691/19 -f 396/847/21 395/697/21 406/685/21 -f 392/686/21 394/171/21 402/699/21 -f 413/646/2 414/700/2 417/702/2 -f 409/848/22 412/703/22 420/705/22 -f 407/849/2 409/706/2 421/707/2 -f 408/648/21 410/647/21 416/709/21 -f 4/740/19 135/211/19 133/227/19 -f 138/213/19 137/212/19 134/711/19 -f 89/850/19 7/851/19 132/713/19 -f 132/713/19 134/711/19 90/712/19 -f 90/712/19 89/850/19 132/713/19 -f 44/715/19 45/852/19 131/228/19 -f 8/229/19 131/228/19 45/852/19 -f 132/713/19 7/851/19 46/714/19 -f 44/715/19 131/228/19 132/713/19 -f 418/720/19 421/707/19 417/717/19 -f 420/705/19 416/718/19 421/707/19 -f 416/718/19 420/705/19 415/719/19 -f 415/719/19 419/704/19 417/717/19 -f 410/647/22 413/646/22 422/722/22 -f 411/853/20 407/723/20 418/720/20 -f 412/854/21 411/724/21 419/704/21 -f 414/700/20 408/648/20 415/726/20 -f 123/177/21 124/187/21 117/727/21 -f 160/245/20 159/728/20 164/244/20 -f 159/236/21 153/235/21 161/254/21 -f 119/738/22 393/731/22 113/733/22 -f 122/855/22 121/734/22 396/736/22 -f 395/735/22 121/734/22 118/737/22 -f 118/737/22 113/733/22 391/732/22 -f 120/739/22 122/855/22 396/736/22 -f 396/736/22 393/731/22 120/739/22 -f 120/739/22 119/738/22 114/741/22 -f 1/856/22 113/733/22 115/742/22 -f 117/744/22 5/857/22 93/858/22 -f 93/858/22 94/743/22 117/744/22 -f 1/856/22 115/742/22 94/743/22 -f 8/229/22 42/859/22 116/746/22 -f 41/745/22 43/860/22 117/744/22 -f 5/857/22 117/744/22 43/860/22 -f 116/746/22 42/859/22 41/745/22 -f 116/746/22 114/741/22 8/229/22 diff --git a/src/main/resources/assets/hbm/models/error.obj b/src/main/resources/assets/hbm/models/error.obj deleted file mode 100644 index e948f3e60..000000000 --- a/src/main/resources/assets/hbm/models/error.obj +++ /dev/null @@ -1,2909 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'error.blend' -# www.blender.org -o Text_Mesh -v -0.125000 -0.000000 -0.643408 -v -0.125000 -0.000000 -0.745792 -v -0.125000 0.234222 -0.745792 -v -0.125000 0.247672 -0.751697 -v -0.125000 0.259659 -0.758142 -v -0.125000 0.270238 -0.765055 -v -0.125000 0.279466 -0.772362 -v -0.125000 0.287399 -0.779991 -v -0.125000 0.294092 -0.787868 -v -0.125000 0.299602 -0.795920 -v -0.125000 0.303984 -0.804075 -v -0.125000 0.307295 -0.812259 -v -0.125000 0.309591 -0.820399 -v -0.125000 0.310927 -0.828422 -v -0.125000 0.311360 -0.836255 -v -0.125000 0.311317 -0.840189 -v -0.125000 0.311185 -0.843943 -v -0.125000 0.310966 -0.847541 -v -0.125000 0.310659 -0.851008 -v -0.125000 0.310265 -0.854367 -v -0.125000 0.309783 -0.857644 -v -0.125000 0.309213 -0.860862 -v -0.125000 0.308555 -0.864046 -v -0.125000 0.307810 -0.867220 -v -0.125000 0.306978 -0.870409 -v -0.125000 0.306057 -0.873637 -v -0.125000 0.305049 -0.876928 -v -0.125000 0.394109 -0.895161 -v -0.125000 0.395306 -0.892161 -v -0.125000 0.396437 -0.889103 -v -0.125000 0.397495 -0.885957 -v -0.125000 0.398473 -0.882694 -v -0.125000 0.399363 -0.879286 -v -0.125000 0.400158 -0.875701 -v -0.125000 0.400850 -0.871913 -v -0.125000 0.401434 -0.867890 -v -0.125000 0.401900 -0.863605 -v -0.125000 0.402242 -0.859027 -v -0.125000 0.402453 -0.854128 -v -0.125000 0.402524 -0.848878 -v -0.125000 0.401943 -0.838689 -v -0.125000 0.400210 -0.828493 -v -0.125000 0.397342 -0.818340 -v -0.125000 0.393356 -0.808283 -v -0.125000 0.388270 -0.798371 -v -0.125000 0.382100 -0.788657 -v -0.125000 0.374864 -0.779191 -v -0.125000 0.366578 -0.770025 -v -0.125000 0.357260 -0.761209 -v -0.125000 0.346927 -0.752795 -v -0.125000 0.335595 -0.744834 -v -0.125000 0.323282 -0.737377 -v -0.125000 0.323282 -0.734572 -v -0.125000 0.392707 -0.727560 -v -0.125000 0.392707 -0.643408 -v -0.125000 -0.009818 -0.368513 -v -0.125000 -0.008252 -0.392849 -v -0.125000 -0.003607 -0.416576 -v -0.125000 0.004043 -0.439407 -v -0.125000 0.014623 -0.461054 -v -0.125000 0.028056 -0.481231 -v -0.125000 0.044267 -0.499649 -v -0.125000 0.063181 -0.516023 -v -0.125000 0.084723 -0.530063 -v -0.125000 0.108816 -0.541484 -v -0.125000 0.135386 -0.549997 -v -0.125000 0.164356 -0.555316 -v -0.125000 0.195652 -0.557153 -v -0.125000 0.227270 -0.555316 -v -0.125000 0.256509 -0.549997 -v -0.125000 0.283299 -0.541484 -v -0.125000 0.307568 -0.530063 -v -0.125000 0.329247 -0.516023 -v -0.125000 0.348264 -0.499649 -v -0.125000 0.364550 -0.481231 -v -0.125000 0.378032 -0.461054 -v -0.125000 0.388642 -0.439407 -v -0.125000 0.396307 -0.416576 -v -0.125000 0.400958 -0.392849 -v -0.125000 0.402525 -0.368513 -v -0.125000 0.400958 -0.344178 -v -0.125000 0.396307 -0.320451 -v -0.125000 0.388642 -0.297620 -v -0.125000 0.378032 -0.275973 -v -0.125000 0.364550 -0.255796 -v -0.125000 0.348264 -0.237377 -v -0.125000 0.329247 -0.221004 -v -0.125000 0.307568 -0.206963 -v -0.125000 0.283299 -0.195543 -v -0.125000 0.256509 -0.187029 -v -0.125000 0.227270 -0.181710 -v -0.125000 0.195652 -0.179874 -v -0.125000 0.164356 -0.181710 -v -0.125000 0.135386 -0.187029 -v -0.125000 0.108816 -0.195543 -v -0.125000 0.084723 -0.206963 -v -0.125000 0.063181 -0.221004 -v -0.125000 0.044267 -0.237377 -v -0.125000 0.028056 -0.255796 -v -0.125000 0.014623 -0.275973 -v -0.125000 0.004043 -0.297620 -v -0.125000 -0.003607 -0.320451 -v -0.125000 -0.008252 -0.344178 -v -0.125000 0.074334 -0.368513 -v -0.125000 0.075315 -0.355675 -v -0.125000 0.078207 -0.343826 -v -0.125000 0.082935 -0.332990 -v -0.125000 0.089424 -0.323191 -v -0.125000 0.097598 -0.314454 -v -0.125000 0.107381 -0.306802 -v -0.125000 0.118698 -0.300261 -v -0.125000 0.131474 -0.294855 -v -0.125000 0.145632 -0.290607 -v -0.125000 0.161099 -0.287543 -v -0.125000 0.177797 -0.285687 -v -0.125000 0.195652 -0.285063 -v -0.125000 0.213682 -0.285687 -v -0.125000 0.230553 -0.287543 -v -0.125000 0.246187 -0.290607 -v -0.125000 0.260506 -0.294855 -v -0.125000 0.273432 -0.300261 -v -0.125000 0.284888 -0.306802 -v -0.125000 0.294795 -0.314454 -v -0.125000 0.303075 -0.323191 -v -0.125000 0.309651 -0.332990 -v -0.125000 0.314445 -0.343826 -v -0.125000 0.317378 -0.355675 -v -0.125000 0.318373 -0.368513 -v -0.125000 0.317378 -0.381351 -v -0.125000 0.314445 -0.393200 -v -0.125000 0.309651 -0.404037 -v -0.125000 0.303075 -0.413836 -v -0.125000 0.294795 -0.422573 -v -0.125000 0.284888 -0.430224 -v -0.125000 0.273432 -0.436765 -v -0.125000 0.260506 -0.442172 -v -0.125000 0.246187 -0.446419 -v -0.125000 0.230553 -0.449483 -v -0.125000 0.213682 -0.451339 -v -0.125000 0.195652 -0.451963 -v -0.125000 0.177797 -0.451339 -v -0.125000 0.161099 -0.449483 -v -0.125000 0.145632 -0.446419 -v -0.125000 0.131474 -0.442172 -v -0.125000 0.118698 -0.436765 -v -0.125000 0.107381 -0.430224 -v -0.125000 0.097598 -0.422573 -v -0.125000 0.089424 -0.413836 -v -0.125000 0.082935 -0.404037 -v -0.125000 0.078207 -0.393200 -v -0.125000 0.075315 -0.381351 -v -0.125000 0.000000 0.101332 -v -0.125000 -0.000000 -0.001052 -v -0.125000 0.234222 -0.001052 -v -0.125000 0.247672 -0.006957 -v -0.125000 0.259659 -0.013402 -v -0.125000 0.270238 -0.020315 -v -0.125000 0.279466 -0.027622 -v -0.125000 0.287399 -0.035251 -v -0.125000 0.294092 -0.043128 -v -0.125000 0.299602 -0.051180 -v -0.125000 0.303984 -0.059335 -v -0.125000 0.307295 -0.067518 -v -0.125000 0.309591 -0.075658 -v -0.125000 0.310927 -0.083682 -v -0.125000 0.311360 -0.091515 -v -0.125000 0.311317 -0.095449 -v -0.125000 0.311185 -0.099203 -v -0.125000 0.310966 -0.102801 -v -0.125000 0.310659 -0.106267 -v -0.125000 0.310265 -0.109627 -v -0.125000 0.309783 -0.112903 -v -0.125000 0.309213 -0.116121 -v -0.125000 0.308555 -0.119305 -v -0.125000 0.307810 -0.122480 -v -0.125000 0.306978 -0.125669 -v -0.125000 0.306057 -0.128897 -v -0.125000 0.305049 -0.132188 -v -0.125000 0.394109 -0.150421 -v -0.125000 0.395306 -0.147421 -v -0.125000 0.396437 -0.144363 -v -0.125000 0.397495 -0.141217 -v -0.125000 0.398473 -0.137954 -v -0.125000 0.399363 -0.134545 -v -0.125000 0.400158 -0.130961 -v -0.125000 0.400851 -0.127172 -v -0.125000 0.401434 -0.123149 -v -0.125000 0.401900 -0.118864 -v -0.125000 0.402242 -0.114286 -v -0.125000 0.402453 -0.109387 -v -0.125000 0.402525 -0.104137 -v -0.125000 0.401943 -0.093948 -v -0.125000 0.400210 -0.083752 -v -0.125000 0.397342 -0.073600 -v -0.125000 0.393356 -0.063542 -v -0.125000 0.388270 -0.053631 -v -0.125000 0.382100 -0.043917 -v -0.125000 0.374864 -0.034451 -v -0.125000 0.366578 -0.025284 -v -0.125000 0.357260 -0.016469 -v -0.125000 0.346927 -0.008055 -v -0.125000 0.335595 -0.000094 -v -0.125000 0.323282 0.007363 -v -0.125000 0.323282 0.010168 -v -0.125000 0.392707 0.017181 -v -0.125000 0.392707 0.101332 -v -0.125000 0.000000 0.407083 -v -0.125000 0.000000 0.304698 -v -0.125000 0.234222 0.304698 -v -0.125000 0.247672 0.298794 -v -0.125000 0.259659 0.292348 -v -0.125000 0.270238 0.285436 -v -0.125000 0.279466 0.278128 -v -0.125000 0.287399 0.270500 -v -0.125000 0.294092 0.262623 -v -0.125000 0.299602 0.254570 -v -0.125000 0.303984 0.246416 -v -0.125000 0.307295 0.238232 -v -0.125000 0.309591 0.230092 -v -0.125000 0.310927 0.222069 -v -0.125000 0.311360 0.214236 -v -0.125000 0.311317 0.210302 -v -0.125000 0.311185 0.206548 -v -0.125000 0.310966 0.202950 -v -0.125000 0.310659 0.199483 -v -0.125000 0.310265 0.196124 -v -0.125000 0.309783 0.192847 -v -0.125000 0.309213 0.189629 -v -0.125000 0.308555 0.186445 -v -0.125000 0.307810 0.183270 -v -0.125000 0.306978 0.180082 -v -0.125000 0.306057 0.176854 -v -0.125000 0.305049 0.173562 -v -0.125000 0.394109 0.155330 -v -0.125000 0.395306 0.158329 -v -0.125000 0.396437 0.161388 -v -0.125000 0.397495 0.164534 -v -0.125000 0.398473 0.167796 -v -0.125000 0.399363 0.171205 -v -0.125000 0.400158 0.174790 -v -0.125000 0.400851 0.178578 -v -0.125000 0.401434 0.182601 -v -0.125000 0.401900 0.186886 -v -0.125000 0.402242 0.191464 -v -0.125000 0.402453 0.196363 -v -0.125000 0.402525 0.201613 -v -0.125000 0.401943 0.211802 -v -0.125000 0.400210 0.221998 -v -0.125000 0.397342 0.232151 -v -0.125000 0.393356 0.242208 -v -0.125000 0.388270 0.252120 -v -0.125000 0.382100 0.261834 -v -0.125000 0.374864 0.271300 -v -0.125000 0.366578 0.280466 -v -0.125000 0.357260 0.289282 -v -0.125000 0.346927 0.297696 -v -0.125000 0.335595 0.305657 -v -0.125000 0.323282 0.313114 -v -0.125000 0.323282 0.315919 -v -0.125000 0.392707 0.322931 -v -0.125000 0.392707 0.407083 -v -0.125000 0.000000 0.829944 -v -0.125000 0.000000 0.503857 -v -0.125000 0.086957 0.503857 -v -0.125000 0.086957 0.726157 -v -0.125000 0.225807 0.726157 -v -0.125000 0.225806 0.543829 -v -0.125000 0.312763 0.543829 -v -0.125000 0.312763 0.726157 -v -0.125000 0.432679 0.726157 -v -0.125000 0.432679 0.511571 -v -0.125000 0.518934 0.511571 -v -0.125000 0.518934 0.829944 -v 0.125000 0.364550 -0.255796 -v 0.125000 0.348264 -0.237377 -v 0.125000 0.311185 -0.099203 -v 0.125000 0.310966 -0.102801 -v 0.125000 0.014623 -0.461054 -v 0.125000 0.014623 -0.275973 -v 0.125000 0.000000 0.503857 -v 0.125000 0.086957 0.503857 -v 0.125000 0.398473 0.167797 -v 0.125000 0.397342 0.232151 -v 0.125000 0.401900 -0.118864 -v 0.125000 0.400210 -0.083752 -v 0.125000 0.164356 -0.181710 -v 0.125000 0.135386 -0.187029 -v 0.125000 0.294092 -0.043128 -v 0.125000 0.299602 -0.051180 -v 0.125000 0.074334 -0.368513 -v 0.125000 0.075315 -0.381351 -v 0.125000 0.063181 -0.221004 -v 0.125000 0.388642 -0.439407 -v 0.125000 0.396307 -0.416576 -v 0.125000 0.305049 -0.876928 -v 0.125000 0.374864 -0.779191 -v 0.125000 0.305049 0.173562 -v 0.125000 0.357260 0.289282 -v 0.125000 0.306978 -0.125669 -v 0.125000 0.306057 -0.128897 -v 0.125000 0.227270 -0.555316 -v 0.125000 0.256509 -0.549997 -v 0.125000 0.000000 0.407083 -v 0.125000 0.392707 0.407083 -v 0.125000 0.399363 -0.134545 -v 0.125000 0.400158 -0.130961 -v 0.125000 0.401434 -0.867890 -v 0.125000 0.400210 -0.828493 -v 0.125000 0.309783 -0.112903 -v 0.125000 0.335595 -0.000094 -v 0.125000 0.082935 -0.332990 -v 0.125000 0.089424 -0.323191 -v 0.125000 0.131474 -0.442172 -v 0.125000 0.118698 -0.436765 -v 0.125000 0.329247 -0.516023 -v 0.125000 0.329247 -0.221004 -v 0.125000 -0.000000 0.101332 -v 0.125000 -0.000000 -0.001052 -v 0.125000 0.028056 -0.255796 -v 0.125000 0.318373 -0.368513 -v 0.125000 0.260506 -0.442172 -v 0.125000 0.246187 -0.446419 -v 0.125000 0.177797 -0.285687 -v 0.125000 0.195652 -0.285063 -v 0.125000 0.378032 -0.461054 -v 0.125000 0.294795 -0.314454 -v 0.125000 0.303075 -0.323191 -v 0.125000 0.108816 -0.541484 -v 0.125000 0.366578 -0.770025 -v 0.125000 0.310927 0.222069 -v 0.125000 0.311360 0.214236 -v 0.125000 0.305049 -0.132188 -v 0.125000 0.382100 -0.043917 -v 0.125000 0.394109 -0.150421 -v 0.125000 0.393356 -0.063542 -v 0.125000 0.402453 -0.854128 -v 0.125000 0.402524 -0.848878 -v 0.125000 0.270238 0.285436 -v 0.125000 0.279466 0.278128 -v 0.125000 0.323282 0.010168 -v 0.125000 0.392707 0.017181 -v 0.125000 0.084723 -0.530063 -v 0.125000 0.089424 -0.413836 -v 0.125000 0.063181 -0.516023 -v 0.125000 0.084723 -0.206963 -v 0.125000 0.107381 -0.306802 -v 0.125000 0.309783 -0.857644 -v 0.125000 0.335595 -0.744834 -v 0.125000 0.396437 0.161388 -v 0.125000 0.397495 0.164534 -v 0.125000 0.401943 -0.093948 -v 0.125000 0.161099 -0.287543 -v 0.125000 0.388270 -0.053631 -v 0.125000 0.311185 -0.843943 -v 0.125000 0.310966 -0.847541 -v 0.125000 0.311185 0.206548 -v 0.125000 0.323282 0.313114 -v 0.125000 0.306978 -0.870409 -v 0.125000 0.306057 -0.873637 -v 0.125000 0.307568 -0.206963 -v 0.125000 0.314445 -0.343826 -v 0.125000 0.225807 0.726157 -v 0.125000 0.225806 0.543829 -v 0.125000 0.283299 -0.541484 -v 0.125000 0.294795 -0.422573 -v 0.125000 0.309591 -0.820399 -v 0.125000 0.323282 -0.737377 -v 0.125000 0.294092 -0.787868 -v 0.125000 0.299602 -0.795920 -v 0.125000 0.309591 0.230092 -v 0.125000 0.309213 0.189629 -v 0.125000 0.308555 0.186445 -v 0.125000 0.382100 0.261834 -v 0.125000 0.374864 0.271300 -v 0.125000 0.402453 0.196363 -v 0.125000 0.401943 0.211802 -v 0.125000 0.311317 -0.095449 -v 0.125000 0.323282 0.007363 -v 0.125000 0.402242 0.191464 -v 0.125000 -0.000000 -0.643408 -v 0.125000 -0.000000 -0.745792 -v 0.125000 0.294092 0.262623 -v 0.125000 0.309213 -0.116121 -v 0.125000 0.308555 -0.119305 -v 0.125000 0.378032 -0.275973 -v 0.125000 0.323282 0.315919 -v 0.125000 -0.003607 -0.416576 -v 0.125000 -0.008252 -0.344178 -v 0.125000 0.306057 0.176854 -v 0.125000 0.346927 0.297696 -v 0.125000 0.259659 -0.758142 -v 0.125000 0.259659 0.292348 -v 0.125000 0.307295 -0.067518 -v 0.125000 0.346927 -0.008055 -v 0.125000 0.195652 -0.179874 -v 0.125000 0.400958 -0.344178 -v 0.125000 0.287399 -0.035251 -v 0.125000 0.400158 0.174790 -v 0.125000 0.400210 0.221998 -v 0.125000 0.310927 -0.083682 -v 0.125000 0.311360 -0.091515 -v 0.125000 0.402242 -0.114286 -v 0.125000 0.402453 -0.109387 -v 0.125000 0.195652 -0.557153 -v 0.125000 0.366578 0.280466 -v 0.125000 0.396437 -0.144363 -v 0.125000 0.397495 -0.141217 -v 0.125000 0.395306 -0.892161 -v 0.125000 0.393356 -0.808283 -v 0.125000 0.395306 0.158329 -v 0.125000 0.393356 0.242208 -v 0.125000 0.396307 -0.320451 -v 0.125000 0.097598 -0.314454 -v 0.125000 0.399363 -0.879286 -v 0.125000 0.397342 -0.818340 -v 0.125000 0.004043 -0.297620 -v 0.125000 0.145632 -0.446419 -v 0.125000 0.213682 -0.285687 -v 0.125000 0.247672 -0.006957 -v 0.125000 0.273432 -0.436765 -v 0.125000 0.309651 -0.332990 -v 0.125000 0.398473 -0.137954 -v 0.125000 0.397342 -0.073600 -v 0.125000 0.357260 -0.761209 -v 0.125000 0.000000 0.304698 -v 0.125000 0.401943 -0.838689 -v 0.125000 0.299602 0.254570 -v 0.125000 0.097598 -0.422573 -v 0.125000 -0.009818 -0.368513 -v 0.125000 -0.008252 -0.392849 -v 0.125000 0.082935 -0.404037 -v 0.125000 0.366578 -0.025284 -v 0.125000 0.357260 -0.016469 -v 0.125000 0.164356 -0.555316 -v 0.125000 0.177797 -0.451339 -v 0.125000 0.432679 0.726157 -v 0.125000 0.518934 0.511571 -v 0.125000 0.307810 -0.867220 -v 0.125000 0.346927 -0.752795 -v 0.125000 0.312763 0.726157 -v 0.125000 0.398473 -0.882694 -v 0.125000 0.310966 0.202950 -v 0.125000 0.309783 0.192847 -v 0.125000 0.335595 0.305657 -v 0.125000 0.317378 -0.355675 -v 0.125000 0.307810 0.183271 -v 0.125000 0.311317 -0.840189 -v 0.125000 0.287399 -0.779991 -v 0.125000 0.234222 -0.745792 -v 0.125000 0.000000 0.829944 -v 0.125000 0.402525 0.201613 -v 0.125000 -0.003607 -0.320451 -v 0.125000 0.310659 -0.106267 -v 0.125000 0.310265 -0.109627 -v 0.125000 0.401434 -0.123149 -v 0.125000 0.108816 -0.195543 -v 0.125000 0.399363 0.171205 -v 0.125000 0.303984 -0.059335 -v 0.125000 0.400958 -0.392849 -v 0.125000 0.402525 -0.368513 -v 0.125000 0.392707 0.101332 -v 0.125000 0.307568 -0.530063 -v 0.125000 0.323282 -0.734572 -v 0.125000 0.400851 -0.127172 -v 0.125000 0.396437 -0.889103 -v 0.125000 0.400850 -0.871913 -v 0.125000 0.107381 -0.430224 -v 0.125000 0.234222 -0.001052 -v 0.125000 0.230553 -0.287543 -v 0.125000 0.230553 -0.449483 -v 0.125000 0.213682 -0.451339 -v 0.125000 0.314445 -0.393200 -v 0.125000 0.309651 -0.404037 -v 0.125000 0.234222 0.304698 -v 0.125000 0.388270 -0.798371 -v 0.125000 0.382100 -0.788657 -v 0.125000 0.307295 0.238232 -v 0.125000 0.401900 -0.863605 -v 0.125000 0.402242 -0.859027 -v 0.125000 0.518934 0.829944 -v 0.125000 0.247672 0.298794 -v 0.125000 0.392707 -0.727560 -v 0.125000 0.028056 -0.481231 -v 0.125000 0.044267 -0.499649 -v 0.125000 0.394109 0.155330 -v 0.125000 0.309213 -0.860862 -v 0.125000 0.308555 -0.864046 -v 0.125000 0.310927 -0.828422 -v 0.125000 0.397495 -0.885957 -v 0.125000 0.312763 0.543829 -v 0.125000 0.310265 0.196124 -v 0.125000 0.311360 -0.836255 -v 0.125000 0.388270 0.252120 -v 0.125000 0.279466 -0.772362 -v 0.125000 0.401434 0.182601 -v 0.125000 0.401900 0.186886 -v 0.125000 0.086957 0.726157 -v 0.125000 0.392707 0.322931 -v 0.125000 0.270238 -0.765055 -v 0.125000 0.388642 -0.297620 -v 0.125000 0.306978 0.180082 -v 0.125000 0.256509 -0.187029 -v 0.125000 0.227270 -0.181710 -v 0.125000 0.309591 -0.075658 -v 0.125000 0.348264 -0.499649 -v 0.125000 0.364550 -0.481231 -v 0.125000 0.395306 -0.147421 -v 0.125000 0.078207 -0.393200 -v 0.125000 0.135386 -0.549997 -v 0.125000 0.078207 -0.343826 -v 0.125000 0.317378 -0.381351 -v 0.125000 0.400158 -0.875701 -v 0.125000 0.270238 -0.020315 -v 0.125000 0.279466 -0.027622 -v 0.125000 0.044267 -0.237377 -v 0.125000 0.161099 -0.449483 -v 0.125000 0.284888 -0.430224 -v 0.125000 0.284888 -0.306802 -v 0.125000 0.118698 -0.300261 -v 0.125000 0.303984 0.246416 -v 0.125000 0.004043 -0.439407 -v 0.125000 0.246187 -0.290607 -v 0.125000 0.310659 -0.851008 -v 0.125000 0.303984 -0.804075 -v 0.125000 0.283299 -0.195543 -v 0.125000 0.392707 -0.643408 -v 0.125000 0.131474 -0.294855 -v 0.125000 0.259659 -0.013402 -v 0.125000 0.195652 -0.451963 -v 0.125000 0.260506 -0.294855 -v 0.125000 0.303075 -0.413836 -v 0.125000 0.432679 0.511571 -v 0.125000 0.310659 0.199483 -v 0.125000 0.400851 0.178578 -v 0.125000 0.075315 -0.355675 -v 0.125000 0.145632 -0.290607 -v 0.125000 0.273432 -0.300261 -v 0.125000 0.310265 -0.854367 -v 0.125000 0.394109 -0.895161 -v 0.125000 0.307295 -0.812259 -v 0.125000 0.247672 -0.751697 -v 0.125000 0.307810 -0.122480 -v 0.125000 0.402525 -0.104137 -v 0.125000 0.287399 0.270500 -v 0.125000 0.374864 -0.034451 -v 0.125000 0.311317 0.210302 -vt 0.426575 0.688748 -vt 0.421208 0.689051 -vt 0.418443 0.689014 -vt 0.415862 0.688904 -vt 0.413450 0.688726 -vt 0.431947 0.687846 -vt 0.411193 0.688483 -vt 0.409074 0.688180 -vt 0.407078 0.687819 -vt 0.437295 0.686354 -vt 0.405190 0.687406 -vt 0.403394 0.686942 -vt 0.401675 0.686434 -vt 0.400018 0.685883 -vt 0.442593 0.684280 -vt 0.398407 0.685294 -vt 0.396827 0.684672 -vt 0.406431 0.638321 -vt 0.447814 0.681632 -vt 0.529446 0.479562 -vt 0.529446 0.683942 -vt 0.485117 0.683942 -vt 0.481422 0.647810 -vt 0.452931 0.678421 -vt 0.457918 0.674655 -vt 0.462747 0.670343 -vt 0.467391 0.665494 -vt 0.471823 0.660116 -vt 0.476017 0.654218 -vt 0.413218 0.640146 -vt 0.411546 0.639758 -vt 0.409866 0.639325 -vt 0.408165 0.638846 -vt 0.479945 0.647810 -vt 0.420086 0.641241 -vt 0.418316 0.641036 -vt 0.416590 0.640785 -vt 0.414895 0.640488 -vt 0.475512 0.601460 -vt 0.472401 0.608460 -vt 0.469006 0.614698 -vt 0.465365 0.620204 -vt 0.461515 0.625007 -vt 0.457497 0.629135 -vt 0.453347 0.632619 -vt 0.449105 0.635486 -vt 0.444809 0.637767 -vt 0.440498 0.639490 -vt 0.436210 0.640685 -vt 0.431984 0.641380 -vt 0.427857 0.641606 -vt 0.425785 0.641583 -vt 0.423808 0.641515 -vt 0.421912 0.641401 -vt 0.475512 0.479562 -vt 0.105673 0.484231 -vt 0.092827 0.484303 -vt 0.080077 0.482747 -vt 0.067743 0.479607 -vt 0.118294 0.482538 -vt 0.055974 0.474928 -vt 0.130536 0.479252 -vt 0.044917 0.468756 -vt 0.142248 0.474400 -vt 0.153274 0.468010 -vt 0.034723 0.461136 -vt 0.163463 0.460111 -vt 0.025540 0.452114 -vt 0.172660 0.450730 -vt 0.017516 0.441734 -vt 0.180713 0.439895 -vt 0.095424 0.440582 -vt 0.010802 0.430043 -vt 0.102206 0.440457 -vt 0.088703 0.439674 -vt 0.108528 0.439294 -vt 0.082563 0.437789 -vt 0.114374 0.437134 -vt 0.077012 0.434968 -vt 0.119730 0.434017 -vt 0.072062 0.431253 -vt 0.187468 0.427634 -vt 0.005545 0.417086 -vt 0.124581 0.429981 -vt 0.067723 0.426684 -vt 0.128910 0.425067 -vt 0.064005 0.421304 -vt 0.132703 0.419315 -vt 0.060919 0.415153 -vt 0.192772 0.413976 -vt 0.001895 0.402908 -vt 0.135945 0.412764 -vt 0.058474 0.408272 -vt 0.138621 0.405454 -vt 0.056683 0.400703 -vt 0.196472 0.398947 -vt 0.000000 0.387554 -vt 0.140715 0.397425 -vt 0.055554 0.392487 -vt 0.142212 0.388717 -vt 0.055099 0.383665 -vt 0.198413 0.382576 -vt 0.000010 0.371071 -vt 0.143096 0.379368 -vt 0.055327 0.374279 -vt 0.198413 0.366260 -vt 0.143319 0.370073 -vt 0.056206 0.365022 -vt 0.001942 0.354868 -vt 0.142859 0.361341 -vt 0.057698 0.356403 -vt 0.196511 0.351047 -vt 0.005633 0.339979 -vt 0.141725 0.353212 -vt 0.059786 0.348461 -vt 0.139928 0.345726 -vt 0.062457 0.341234 -vt 0.192854 0.336983 -vt 0.010930 0.326434 -vt 0.137479 0.338924 -vt 0.065694 0.334761 -vt 0.134389 0.332844 -vt 0.069484 0.329081 -vt 0.187591 0.324117 -vt 0.017680 0.314265 -vt 0.130667 0.327528 -vt 0.073809 0.324232 -vt 0.126324 0.323015 -vt 0.078656 0.320251 -vt 0.121372 0.319345 -vt 0.084010 0.317179 -vt 0.180872 0.312497 -vt 0.025728 0.303501 -vt 0.115819 0.316558 -vt 0.089854 0.315053 -vt 0.109677 0.314694 -vt 0.096175 0.313912 -vt 0.102956 0.313793 -vt 0.172846 0.302171 -vt 0.034922 0.294174 -vt 0.163660 0.293187 -vt 0.045109 0.286313 -vt 0.153464 0.285593 -vt 0.056134 0.279949 -vt 0.142407 0.279436 -vt 0.067844 0.275113 -vt 0.130637 0.274765 -vt 0.080087 0.271834 -vt 0.118303 0.271628 -vt 0.092707 0.270144 -vt 0.105553 0.270073 -vt 0.578122 0.000303 -vt 0.583490 0.000000 -vt 0.586255 0.000037 -vt 0.588836 0.000147 -vt 0.591247 0.000325 -vt 0.572751 0.001205 -vt 0.593505 0.000568 -vt 0.595624 0.000871 -vt 0.597620 0.001232 -vt 0.567403 0.002697 -vt 0.599508 0.001645 -vt 0.601304 0.002109 -vt 0.603022 0.002617 -vt 0.604680 0.003168 -vt 0.562105 0.004772 -vt 0.606291 0.003757 -vt 0.607871 0.004380 -vt 0.598266 0.050730 -vt 0.556884 0.007419 -vt 0.475251 0.209489 -vt 0.475251 0.005109 -vt 0.519581 0.005109 -vt 0.523275 0.041241 -vt 0.551766 0.010630 -vt 0.546780 0.014396 -vt 0.541951 0.018708 -vt 0.537307 0.023557 -vt 0.532875 0.028935 -vt 0.528681 0.034833 -vt 0.591480 0.048905 -vt 0.593152 0.049293 -vt 0.594832 0.049726 -vt 0.596532 0.050205 -vt 0.524753 0.041241 -vt 0.584612 0.047810 -vt 0.586381 0.048016 -vt 0.588107 0.048266 -vt 0.589803 0.048563 -vt 0.529186 0.087591 -vt 0.532296 0.080591 -vt 0.535692 0.074353 -vt 0.539333 0.068847 -vt 0.543182 0.064044 -vt 0.547201 0.059916 -vt 0.551351 0.056432 -vt 0.555592 0.053565 -vt 0.559888 0.051284 -vt 0.564199 0.049561 -vt 0.568487 0.048366 -vt 0.572714 0.047671 -vt 0.576840 0.047445 -vt 0.578913 0.047468 -vt 0.580890 0.047536 -vt 0.582785 0.047651 -vt 0.529186 0.209489 -vt 0.426575 0.479259 -vt 0.421208 0.479562 -vt 0.418443 0.479525 -vt 0.415862 0.479415 -vt 0.413450 0.479237 -vt 0.431947 0.478357 -vt 0.411193 0.478994 -vt 0.409074 0.478691 -vt 0.407078 0.478330 -vt 0.437295 0.476865 -vt 0.405190 0.477917 -vt 0.403394 0.477453 -vt 0.401675 0.476945 -vt 0.400018 0.476394 -vt 0.442593 0.474790 -vt 0.398407 0.475805 -vt 0.396827 0.475182 -vt 0.406431 0.428832 -vt 0.447814 0.472143 -vt 0.529446 0.270073 -vt 0.529446 0.474453 -vt 0.485117 0.474453 -vt 0.481422 0.438321 -vt 0.452931 0.468932 -vt 0.457918 0.465166 -vt 0.462747 0.460854 -vt 0.467391 0.456005 -vt 0.471823 0.450627 -vt 0.476017 0.444729 -vt 0.413218 0.430657 -vt 0.411546 0.430269 -vt 0.409866 0.429836 -vt 0.408165 0.429357 -vt 0.479945 0.438321 -vt 0.420086 0.431752 -vt 0.418316 0.431547 -vt 0.416590 0.431296 -vt 0.414895 0.430999 -vt 0.475512 0.391971 -vt 0.472401 0.398971 -vt 0.469006 0.405209 -vt 0.465365 0.410715 -vt 0.461515 0.415518 -vt 0.457496 0.419646 -vt 0.453347 0.423130 -vt 0.449105 0.425997 -vt 0.444809 0.428278 -vt 0.440498 0.430001 -vt 0.436210 0.431196 -vt 0.431984 0.431891 -vt 0.427857 0.432117 -vt 0.425785 0.432094 -vt 0.423808 0.432026 -vt 0.421912 0.431911 -vt 0.475512 0.270073 -vt 0.000000 0.270073 -vt 0.000000 0.000000 -vt 0.054673 0.044891 -vt 0.167714 0.000000 -vt 0.167714 0.044891 -vt 0.054673 0.107299 -vt 0.054673 0.152555 -vt 0.150721 0.107299 -vt 0.150721 0.152555 -vt 0.054673 0.224818 -vt 0.171778 0.224817 -vt 0.171778 0.270073 -vt 0.559195 0.479865 -vt 0.551062 0.479599 -vt 0.553828 0.479562 -vt 0.548481 0.479709 -vt 0.546070 0.479887 -vt 0.564566 0.480767 -vt 0.543812 0.480130 -vt 0.541693 0.480433 -vt 0.539698 0.480794 -vt 0.569915 0.482259 -vt 0.537809 0.481208 -vt 0.536014 0.481671 -vt 0.534295 0.482179 -vt 0.532638 0.482730 -vt 0.575213 0.484334 -vt 0.531027 0.483319 -vt 0.529446 0.483942 -vt 0.539051 0.530292 -vt 0.580434 0.486981 -vt 0.662066 0.689051 -vt 0.617736 0.484672 -vt 0.662066 0.484672 -vt 0.614042 0.520803 -vt 0.585551 0.490192 -vt 0.590538 0.493958 -vt 0.595366 0.498270 -vt 0.600010 0.503119 -vt 0.604443 0.508497 -vt 0.608636 0.514395 -vt 0.545837 0.528467 -vt 0.544165 0.528855 -vt 0.542485 0.529288 -vt 0.540785 0.529767 -vt 0.612565 0.520803 -vt 0.552706 0.527372 -vt 0.550936 0.527578 -vt 0.549210 0.527828 -vt 0.547515 0.528125 -vt 0.608132 0.567153 -vt 0.605021 0.560153 -vt 0.601626 0.553915 -vt 0.597984 0.548409 -vt 0.594135 0.543606 -vt 0.590116 0.539478 -vt 0.585967 0.535995 -vt 0.581725 0.533127 -vt 0.577429 0.530846 -vt 0.573118 0.529123 -vt 0.568830 0.527928 -vt 0.564604 0.527233 -vt 0.560477 0.527007 -vt 0.558405 0.527030 -vt 0.556427 0.527099 -vt 0.554532 0.527213 -vt 0.608132 0.689051 -vt 0.304086 0.270145 -vt 0.278491 0.271629 -vt 0.291240 0.270073 -vt 0.266157 0.274769 -vt 0.316707 0.271838 -vt 0.254387 0.279447 -vt 0.328950 0.275124 -vt 0.243331 0.285620 -vt 0.340661 0.279976 -vt 0.351688 0.286366 -vt 0.233136 0.293240 -vt 0.361877 0.294265 -vt 0.223953 0.302262 -vt 0.371074 0.303646 -vt 0.215930 0.312642 -vt 0.379127 0.314481 -vt 0.293837 0.313793 -vt 0.209215 0.324333 -vt 0.300619 0.313919 -vt 0.287117 0.314702 -vt 0.306941 0.315082 -vt 0.280976 0.316587 -vt 0.312788 0.317242 -vt 0.275426 0.319408 -vt 0.318144 0.320359 -vt 0.270475 0.323123 -vt 0.385882 0.326742 -vt 0.203958 0.337290 -vt 0.322994 0.324395 -vt 0.266136 0.327692 -vt 0.327323 0.329309 -vt 0.262418 0.333072 -vt 0.331117 0.335061 -vt 0.259332 0.339223 -vt 0.391185 0.340400 -vt 0.200308 0.351468 -vt 0.334359 0.341612 -vt 0.256888 0.346104 -vt 0.337034 0.348922 -vt 0.255096 0.353673 -vt 0.394885 0.355429 -vt 0.198413 0.366821 -vt 0.339128 0.356951 -vt 0.253967 0.361889 -vt 0.340625 0.365659 -vt 0.253512 0.370710 -vt 0.396827 0.371800 -vt 0.198423 0.383304 -vt 0.341510 0.375008 -vt 0.253740 0.380097 -vt 0.396827 0.388116 -vt 0.341733 0.384303 -vt 0.254620 0.389354 -vt 0.200355 0.399508 -vt 0.341272 0.393035 -vt 0.256111 0.397973 -vt 0.394924 0.403330 -vt 0.204046 0.414397 -vt 0.340138 0.401164 -vt 0.258200 0.405915 -vt 0.338341 0.408650 -vt 0.260870 0.413142 -vt 0.391267 0.417393 -vt 0.209343 0.427942 -vt 0.335892 0.415452 -vt 0.264108 0.419614 -vt 0.332802 0.421531 -vt 0.267897 0.425295 -vt 0.386005 0.430259 -vt 0.216093 0.440111 -vt 0.329080 0.426848 -vt 0.272222 0.430144 -vt 0.324738 0.431361 -vt 0.277069 0.434124 -vt 0.319785 0.435031 -vt 0.282423 0.437197 -vt 0.379286 0.441879 -vt 0.224141 0.450874 -vt 0.314232 0.437817 -vt 0.288267 0.439323 -vt 0.308090 0.439681 -vt 0.294588 0.440464 -vt 0.301369 0.440582 -vt 0.371259 0.452205 -vt 0.233335 0.460202 -vt 0.362073 0.461189 -vt 0.243522 0.468063 -vt 0.351877 0.468783 -vt 0.254547 0.474427 -vt 0.340820 0.474940 -vt 0.266257 0.479263 -vt 0.329050 0.479611 -vt 0.278500 0.482542 -vt 0.316716 0.482748 -vt 0.291121 0.484232 -vt 0.303967 0.484303 -vt 0.559195 0.270376 -vt 0.551062 0.270110 -vt 0.553828 0.270073 -vt 0.548481 0.270220 -vt 0.546070 0.270398 -vt 0.564566 0.271278 -vt 0.543813 0.270641 -vt 0.541694 0.270944 -vt 0.539698 0.271305 -vt 0.569915 0.272770 -vt 0.537810 0.271719 -vt 0.536014 0.272182 -vt 0.534295 0.272690 -vt 0.532638 0.273241 -vt 0.575213 0.274845 -vt 0.531027 0.273830 -vt 0.529446 0.274453 -vt 0.539051 0.320803 -vt 0.580434 0.277492 -vt 0.662066 0.479562 -vt 0.617736 0.275182 -vt 0.662066 0.275182 -vt 0.614042 0.311314 -vt 0.585551 0.280703 -vt 0.590538 0.284469 -vt 0.595366 0.288781 -vt 0.600010 0.293630 -vt 0.604443 0.299008 -vt 0.608636 0.304906 -vt 0.545837 0.318978 -vt 0.544165 0.319366 -vt 0.542485 0.319799 -vt 0.540785 0.320278 -vt 0.612565 0.311314 -vt 0.552706 0.317883 -vt 0.550936 0.318089 -vt 0.549210 0.318339 -vt 0.547515 0.318636 -vt 0.608132 0.357664 -vt 0.605021 0.350664 -vt 0.601626 0.344426 -vt 0.597984 0.338920 -vt 0.594135 0.334117 -vt 0.590116 0.329989 -vt 0.585967 0.326505 -vt 0.581725 0.323638 -vt 0.577429 0.321357 -vt 0.573118 0.319634 -vt 0.568830 0.318439 -vt 0.564604 0.317744 -vt 0.560477 0.317518 -vt 0.558405 0.317541 -vt 0.556427 0.317609 -vt 0.554532 0.317724 -vt 0.608132 0.479562 -vt 0.029749 0.484606 -vt 0.021616 0.484340 -vt 0.024381 0.484303 -vt 0.019035 0.484450 -vt 0.016624 0.484628 -vt 0.035120 0.485508 -vt 0.014366 0.484871 -vt 0.012247 0.485174 -vt 0.010251 0.485535 -vt 0.040468 0.487000 -vt 0.008363 0.485948 -vt 0.006567 0.486412 -vt 0.004849 0.486920 -vt 0.003191 0.487471 -vt 0.045766 0.489074 -vt 0.001580 0.488060 -vt 0.000000 0.488682 -vt 0.009605 0.535033 -vt 0.050987 0.491721 -vt 0.132620 0.693792 -vt 0.088290 0.489412 -vt 0.132620 0.489412 -vt 0.084596 0.525544 -vt 0.056105 0.494932 -vt 0.061091 0.498698 -vt 0.065920 0.503011 -vt 0.070564 0.507860 -vt 0.074996 0.513238 -vt 0.079190 0.519136 -vt 0.016391 0.533208 -vt 0.014719 0.533596 -vt 0.013039 0.534029 -vt 0.011339 0.534508 -vt 0.083118 0.525544 -vt 0.023259 0.532113 -vt 0.021490 0.532318 -vt 0.019764 0.532569 -vt 0.018068 0.532866 -vt 0.078685 0.571894 -vt 0.075575 0.564894 -vt 0.072179 0.558656 -vt 0.068538 0.553150 -vt 0.064688 0.548347 -vt 0.060670 0.544219 -vt 0.056520 0.540735 -vt 0.052278 0.537868 -vt 0.047983 0.535587 -vt 0.043672 0.533864 -vt 0.039384 0.532669 -vt 0.035157 0.531973 -vt 0.031031 0.531748 -vt 0.028958 0.531771 -vt 0.026981 0.531839 -vt 0.025086 0.531953 -vt 0.078685 0.693792 -vt 0.343555 0.270073 -vt 0.288882 0.044891 -vt 0.343555 0.000000 -vt 0.175841 0.000000 -vt 0.175841 0.044891 -vt 0.288882 0.107299 -vt 0.288882 0.152555 -vt 0.192834 0.107299 -vt 0.192834 0.152555 -vt 0.288882 0.224818 -vt 0.000000 0.703709 -vt 0.131696 0.703709 -vt 0.131696 0.714506 -vt 0.916252 0.609672 -vt 0.916252 0.739781 -vt 0.914116 0.739781 -vt 0.739066 0.811666 -vt 0.739066 0.941775 -vt 0.736796 0.941775 -vt 0.717198 0.941775 -vt 0.717198 0.811666 -vt 0.718894 0.811666 -vt 0.280391 0.972763 -vt 0.280391 0.842654 -vt 0.286716 0.842654 -vt 0.393453 0.842654 -vt 0.393453 0.972764 -vt 0.386676 0.972763 -vt 0.961733 0.609672 -vt 0.961733 0.739781 -vt 0.957061 0.739781 -vt 0.558392 0.973773 -vt 0.558392 0.843663 -vt 0.560462 0.843663 -vt 0.644885 0.973773 -vt 0.644885 0.843663 -vt 0.650663 0.843663 -vt 0.386676 0.842654 -vt 0.380393 0.972763 -vt 0.923522 0.609672 -vt 0.923522 0.739781 -vt 0.920940 0.739781 -vt 0.793762 0.570314 -vt 0.662066 0.570314 -vt 0.662066 0.553834 -vt 0.549165 0.973773 -vt 0.549165 0.843663 -vt 0.550904 0.843663 -vt 0.610237 0.843663 -vt 0.612307 0.843663 -vt 0.612307 0.973773 -vt 0.822592 0.869891 -vt 0.822592 1.000000 -vt 0.815816 1.000000 -vt 0.396827 0.693059 -vt 0.528523 0.693059 -vt 0.528523 0.697688 -vt 0.715444 0.941775 -vt 0.715444 0.811666 -vt 0.749745 0.130110 -vt 0.749745 0.000000 -vt 0.760787 0.000000 -vt 0.952060 0.260219 -vt 0.952060 0.130110 -vt 0.996252 0.130110 -vt 0.053834 0.960358 -vt 0.053834 0.830249 -vt 0.058761 0.830249 -vt 0.000000 0.799734 -vt 0.131696 0.799734 -vt 0.131696 0.810754 -vt 0.955807 0.609672 -vt 0.955807 0.479562 -vt 1.000000 0.479562 -vt 0.835339 0.130109 -vt 0.835339 0.000000 -vt 0.847061 0.000000 -vt 0.952216 0.869891 -vt 0.952216 0.739781 -vt 0.996409 0.739781 -vt 0.697517 0.941775 -vt 0.697517 0.811666 -vt 0.700277 0.811666 -vt 0.817025 0.609672 -vt 0.817025 0.479562 -vt 0.824637 0.479562 -vt 0.264316 0.779822 -vt 0.132620 0.779822 -vt 0.132620 0.763555 -vt 0.500979 0.973773 -vt 0.500979 0.843663 -vt 0.502689 0.843663 -vt 0.000000 0.714506 -vt 0.131696 0.726038 -vt 0.852290 0.609672 -vt 0.852290 0.739781 -vt 0.842836 0.739781 -vt 0.631826 0.843663 -vt 0.631826 0.973773 -vt 0.630063 0.973773 -vt 0.264316 0.708611 -vt 0.132620 0.708611 -vt 0.132620 0.697702 -vt 0.793762 0.553834 -vt 0.662066 0.538446 -vt 0.884784 0.609672 -vt 0.884784 0.479562 -vt 0.891347 0.479562 -vt 0.089888 0.960358 -vt 0.089888 0.830249 -vt 0.095991 0.830249 -vt 0.906593 0.270073 -vt 0.906593 0.400182 -vt 0.793762 0.400182 -vt 0.499283 0.973773 -vt 0.499283 0.843663 -vt 0.070062 0.960358 -vt 0.070062 0.830249 -vt 0.076405 0.830249 -vt 0.568743 0.973773 -vt 0.568743 0.843663 -vt 0.572949 0.843663 -vt 0.311896 0.972763 -vt 0.311896 0.842654 -vt 0.316837 0.842654 -vt 0.725449 0.811666 -vt 0.725449 0.941775 -vt 0.723796 0.941775 -vt 0.661142 0.839656 -vt 0.529446 0.839656 -vt 0.529446 0.835027 -vt 0.904905 0.609672 -vt 0.904905 0.739781 -vt 0.903252 0.739781 -vt 0.618017 0.843663 -vt 0.618017 0.973773 -vt 0.616184 0.973773 -vt 0.000000 0.810754 -vt 0.131696 0.820976 -vt 0.692190 0.941775 -vt 0.692190 0.811666 -vt 0.803756 0.869891 -vt 0.803756 1.000000 -vt 0.798495 1.000000 -vt 0.705277 0.941775 -vt 0.705277 0.811666 -vt 0.707547 0.811666 -vt 0.901973 0.609672 -vt 0.901973 0.479562 -vt 0.662066 0.941775 -vt 0.662066 0.811666 -vt 0.666737 0.811666 -vt 0.793762 0.646485 -vt 0.662066 0.646485 -vt 0.662066 0.637347 -vt 0.518091 0.973773 -vt 0.518091 0.843663 -vt 0.522266 0.843663 -vt 0.931608 0.609672 -vt 0.931608 0.739781 -vt 0.926282 0.739781 -vt 0.824637 0.609672 -vt 0.832887 0.479562 -vt 0.589407 0.843663 -vt 0.589407 0.973773 -vt 0.585350 0.973773 -vt 0.734660 0.811666 -vt 0.734660 0.941775 -vt 0.732641 0.941775 -vt 0.793762 0.488769 -vt 0.662066 0.488769 -vt 0.824980 0.609672 -vt 0.824980 0.739781 -vt 0.817127 0.739781 -vt 0.720547 0.941775 -vt 0.720547 0.811666 -vt 0.722171 0.811666 -vt 0.784873 0.130109 -vt 0.784873 0.000000 -vt 0.797618 0.000000 -vt 0.906601 0.609672 -vt 0.906601 0.739781 -vt 0.554515 0.973773 -vt 0.554515 0.843663 -vt 0.556414 0.843663 -vt 0.891347 0.609672 -vt 0.897090 0.479562 -vt 0.396012 0.828743 -vt 0.264316 0.828743 -vt 0.264316 0.822799 -vt 0.095991 0.960358 -vt 0.101486 0.830249 -vt 0.223020 0.845800 -vt 0.223020 0.975910 -vt 0.178003 0.975910 -vt 0.762648 0.811666 -vt 0.762648 0.941775 -vt 0.757435 0.941775 -vt 0.264316 0.763555 -vt 0.132620 0.748242 -vt 0.650663 0.973773 -vt 0.655923 0.843663 -vt 0.178003 0.845800 -vt 0.132620 0.975909 -vt 0.890963 0.609672 -vt 0.890963 0.739781 -vt 0.884517 0.739781 -vt 0.064176 0.960358 -vt 0.064176 0.830249 -vt 0.264316 0.733940 -vt 0.132620 0.733940 -vt 0.132620 0.720710 -vt 0.513986 0.973773 -vt 0.513986 0.843663 -vt 0.623245 0.843663 -vt 0.623245 0.973773 -vt 0.621534 0.973773 -vt 0.793762 0.601285 -vt 0.662066 0.601285 -vt 0.662066 0.586474 -vt 0.396827 0.689051 -vt 0.528523 0.689051 -vt 0.374616 0.842654 -vt 0.374616 0.972763 -vt 0.369356 0.972763 -vt 0.728899 0.811666 -vt 0.728899 0.941775 -vt 0.727145 0.941775 -vt 0.581293 0.973773 -vt 0.581293 0.843663 -vt 0.585350 0.843663 -vt 0.552683 0.973773 -vt 0.552683 0.843663 -vt 0.083187 0.960358 -vt 0.083187 0.830249 -vt 0.495887 0.973773 -vt 0.495887 0.843663 -vt 0.497590 0.843663 -vt 0.396012 0.834017 -vt 0.264316 0.834017 -vt 0.936891 0.609672 -vt 0.936891 0.739781 -vt 0.662066 0.270073 -vt 0.793762 0.270073 -vt 0.793762 0.439465 -vt 0.661142 0.835027 -vt 0.529446 0.829752 -vt 0.777606 0.811666 -vt 0.777606 0.941775 -vt 0.772759 0.941775 -vt 0.000000 0.775910 -vt 0.131696 0.775910 -vt 0.131696 0.788069 -vt 0.889631 0.869890 -vt 0.889631 0.739781 -vt 0.858102 0.130109 -vt 0.858102 0.000000 -vt 0.868307 0.000000 -vt 0.741484 0.811666 -vt 0.741484 0.941775 -vt 0.000000 0.738158 -vt 0.131696 0.738158 -vt 0.131696 0.750719 -vt 0.540636 0.973773 -vt 0.540636 0.843663 -vt 0.542363 0.843663 -vt 0.793762 0.524197 -vt 0.662066 0.524197 -vt 0.662066 0.511135 -vt 0.832887 0.609672 -vt 0.841733 0.479562 -vt 0.910182 0.609672 -vt 0.910182 0.739781 -vt 0.908355 0.739781 -vt 0.264316 0.810695 -vt 0.132620 0.810695 -vt 0.132620 0.795995 -vt 0.912097 0.609672 -vt 0.912097 0.739781 -vt 0.833562 0.609672 -vt 0.833562 0.739781 -vt 0.616184 0.843663 -vt 0.614285 0.973773 -vt 0.396012 0.688042 -vt 0.264316 0.688042 -vt 0.264316 0.484303 -vt 0.897090 0.609672 -vt 0.711702 0.941775 -vt 0.711702 0.811666 -vt 0.713617 0.811666 -vt 0.577146 0.973773 -vt 0.577146 0.843663 -vt 0.896681 0.609672 -vt 0.896681 0.739781 -vt 0.809533 0.869891 -vt 0.809533 1.000000 -vt 0.626633 0.843663 -vt 0.626633 0.973773 -vt 0.624940 0.973773 -vt 0.772546 0.130110 -vt 0.772546 0.000000 -vt 0.942104 0.609672 -vt 0.942104 0.739781 -vt 0.509938 0.973773 -vt 0.509938 0.843663 -vt 0.511916 0.843663 -vt 0.058761 0.960358 -vt 0.369356 0.842654 -vt 0.364622 0.972763 -vt 0.810091 0.609672 -vt 0.810091 0.479562 -vt 0.396012 0.842654 -vt 0.264316 0.842654 -vt 0.264316 0.838646 -vt 0.396827 0.715542 -vt 0.528523 0.715542 -vt 0.528523 0.722894 -vt 0.960427 0.270073 -vt 0.264316 0.845800 -vt 0.132620 0.845800 -vt 0.132620 0.835614 -vt 0.847061 0.130109 -vt 0.504427 0.973773 -vt 0.504427 0.843663 -vt 0.506206 0.843663 -vt 0.746826 0.811666 -vt 0.746826 0.941775 -vt 0.744066 0.941775 -vt 0.655923 0.973773 -vt 0.660657 0.843663 -vt 0.538873 0.973773 -vt 0.538873 0.843663 -vt 0.597750 0.843663 -vt 0.597750 0.973773 -vt 0.593554 0.973773 -vt 0.877442 0.609672 -vt 0.877442 0.479562 -vt 0.709683 0.941775 -vt 0.709683 0.811666 -vt 0.914116 0.609672 -vt 0.793762 0.511135 -vt 0.662066 0.499310 -vt 0.842836 0.609672 -vt 0.444612 0.973773 -vt 0.444612 0.843663 -vt 0.492397 0.843663 -vt 0.076405 0.960358 -vt 0.380393 0.842654 -vt 0.638603 0.973773 -vt 0.638603 0.843663 -vt 0.550904 0.973773 -vt 0.901627 0.609672 -vt 0.901627 0.739781 -vt 0.815816 0.869891 -vt 0.661142 0.823809 -vt 0.529446 0.823809 -vt 0.529446 0.817173 -vt 0.760787 0.130110 -vt 0.793762 0.626749 -vt 0.662066 0.626749 -vt 0.662066 0.614719 -vt 0.798495 0.869891 -vt 0.793762 1.000000 -vt 0.793762 0.811666 -vt 0.610237 0.973773 -vt 0.606133 0.973773 -vt 0.681695 0.941775 -vt 0.681695 0.811666 -vt 0.686908 0.811666 -vt 0.572949 0.973773 -vt 0.752153 0.811666 -vt 0.752153 0.941775 -vt 0.793762 0.609672 -vt 0.793762 0.479562 -vt 0.798419 0.479562 -vt 0.000000 0.750719 -vt 0.131696 0.763410 -vt 0.926282 0.609672 -vt 0.506206 0.973773 -vt 0.508039 0.843663 -vt 0.132620 0.688042 -vt 0.396827 0.697688 -vt 0.528523 0.702962 -vt 0.526473 0.973773 -vt 0.526473 0.843663 -vt 0.530669 0.843663 -vt 0.797618 0.130109 -vt 0.810464 0.000000 -vt 0.396827 0.973773 -vt 0.396827 0.843663 -vt 0.997465 0.609672 -vt 0.614285 0.843663 -vt 0.793762 0.637347 -vt 0.264316 0.835614 -vt 0.132620 0.823907 -vt 0.851135 0.609672 -vt 0.851135 0.479562 -vt 0.860577 0.479562 -vt 0.492397 0.973773 -vt 0.494160 0.843663 -vt 0.264316 0.720710 -vt 0.628336 0.843663 -vt 0.628336 0.973773 -vt 0.707547 0.941775 -vt 0.817127 0.609672 -vt 0.810041 0.739781 -vt 0.986157 0.000000 -vt 0.986157 0.130109 -vt 0.940774 0.130109 -vt 0.727145 0.811666 -vt 0.884517 0.609672 -vt 0.877384 0.739781 -vt 0.757435 0.811666 -vt 0.798321 0.609672 -vt 0.798321 0.739781 -vt 0.793762 0.739781 -vt 0.686908 0.941775 -vt 0.730726 0.811666 -vt 0.730726 0.941775 -vt 0.952215 0.609672 -vt 0.947221 0.739781 -vt 0.530669 0.973773 -vt 0.534816 0.843663 -vt 0.396012 0.816163 -vt 0.264316 0.816163 -vt 0.264316 0.808811 -vt 0.666737 0.941776 -vt 0.671583 0.811666 -vt 0.630063 0.843663 -vt 0.508039 0.973773 -vt 0.793762 0.499310 -vt 0.269176 0.972764 -vt 0.269176 0.842654 -vt 0.274539 0.842654 -vt 0.606133 0.843663 -vt 0.601957 0.973773 -vt 0.732641 0.811666 -vt 0.823089 0.130109 -vt 0.823089 0.000000 -vt 0.556414 0.973773 -vt 0.798419 0.609672 -vt 0.803875 0.479562 -vt 0.494160 0.973773 -vt 0.396827 0.702962 -vt 0.528523 0.708906 -vt 0.396012 0.808811 -vt 0.661142 0.817173 -vt 0.529446 0.809820 -vt 0.856309 0.260219 -vt 0.739567 0.260219 -vt 0.739567 0.130110 -vt 0.547455 0.973773 -vt 0.547455 0.843663 -vt 0.861228 0.609672 -vt 0.861228 0.739781 -vt 0.793762 0.869891 -vt 0.918522 0.609672 -vt 0.918522 0.739781 -vt 0.860577 0.609672 -vt 0.869359 0.479562 -vt 0.793762 0.614719 -vt 0.783750 0.941775 -vt 0.783750 0.811666 -vt 0.785223 0.811666 -vt 0.996159 0.270073 -vt 0.996159 0.400182 -vt 0.960427 0.400182 -vt 0.306352 0.972763 -vt 0.306352 0.842654 -vt 0.000000 0.726038 -vt 0.274539 0.972763 -vt 0.534816 0.973773 -vt 0.793762 0.538446 -vt 0.957061 0.609672 -vt 0.624940 0.843663 -vt 0.792289 0.941775 -vt 0.792289 0.811666 -vt 0.739567 0.203739 -vt 0.607871 0.203739 -vt 0.607871 0.000000 -vt 0.601957 0.843663 -vt 0.782277 0.811666 -vt 0.782277 0.941775 -vt 0.739567 0.000000 -vt 0.564567 0.973773 -vt 0.564567 0.843663 -vt 0.920940 0.609672 -vt 0.000000 0.763410 -vt 0.000000 0.820976 -vt 0.131696 0.830249 -vt 0.475251 0.269226 -vt 0.343555 0.269226 -vt 0.744066 0.811666 -vt 0.702859 0.941775 -vt 0.702859 0.811666 -vt 0.396827 0.708906 -vt 0.000000 0.960358 -vt 0.000000 0.830249 -vt 0.264316 0.823907 -vt 0.364622 0.842654 -vt 0.316837 0.972763 -vt 0.671583 0.941775 -vt 0.676578 0.811666 -vt 0.545760 0.973773 -vt 0.545760 0.843663 -vt 0.542363 0.973773 -vt 0.544067 0.843663 -vt 0.502689 0.973773 -vt 0.000000 0.693792 -vt 0.131696 0.693792 -vt 0.718894 0.941775 -vt 0.258752 0.845800 -vt 0.258752 0.975909 -vt 0.783750 0.811666 -vt 0.713617 0.941775 -vt 0.903252 0.609672 -vt 0.264316 0.748242 -vt 0.264316 0.697702 -vt 0.723796 0.811666 -vt 0.722172 0.941775 -vt 0.619796 0.843663 -vt 0.619796 0.973773 -vt 0.810041 0.609672 -vt 0.803760 0.739781 -vt 0.803760 0.609672 -vt 0.522266 0.973773 -vt 0.497590 0.973773 -vt 0.940774 0.000000 -vt 0.868307 0.130109 -vt 0.661142 0.829752 -vt 0.810464 0.130110 -vt 0.803875 0.609672 -vt 0.101486 0.960358 -vt 0.106364 0.830249 -vt 0.676578 0.941776 -vt 0.661142 0.809820 -vt 0.529446 0.689051 -vt 0.841733 0.609672 -vt 0.793762 0.586474 -vt 0.869607 0.609672 -vt 0.869607 0.739781 -vt 0.736796 0.811666 -vt 0.908355 0.609672 -vt 0.869359 0.609672 -vt 0.293498 0.972763 -vt 0.293498 0.842654 -vt 0.300216 0.842654 -vt 0.661142 0.843663 -vt 0.529446 0.843663 -vt 0.286716 0.972763 -vt 0.621534 0.843663 -vt 0.560462 0.973773 -vt 0.300216 0.972763 -vt 0.767765 0.811666 -vt 0.767765 0.941775 -vt 0.947221 0.609672 -vt 0.000000 0.788069 -vt 0.511916 0.973773 -vt 0.264316 0.972764 -vt 0.772759 0.811666 -vt 0.700277 0.941775 -vt 0.396012 0.822799 -vt 0.396827 0.722894 -vt 0.528523 0.843663 -vt 0.396012 0.838646 -vt 0.264316 0.795995 -vt 0.544067 0.973773 -vt 0.593554 0.843663 -vt 0.996252 0.260219 -vt 1.000000 0.609672 -vt 0.996409 0.869891 -vt 0.662066 0.439465 -vt 0.396012 0.484303 -vt 0.660657 0.973773 -vt 0.132620 0.484303 -vt 0.997465 0.739781 -vt 0.856309 0.130110 -vt 0.785223 0.941775 -vt 0.793762 0.941775 -vt 0.475251 0.000000 -vt 0.106364 0.960358 -vt 0.661142 0.689051 -vn -1.000000 -0.000000 0.000000 -vn -1.000000 0.000100 0.000000 -vn -1.000000 0.000200 0.000000 -vn -1.000000 -0.000100 -0.000000 -vn 1.000000 0.000100 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000100 0.000000 -vn 1.000000 -0.000200 0.000000 -vn 1.000000 -0.000500 0.000100 -vn 0.000000 0.898000 0.440100 -vn 0.000000 0.989700 -0.143500 -vn 0.000000 0.994100 -0.108200 -vn 0.000000 0.947800 -0.318800 -vn 0.000000 -0.970700 0.240300 -vn 0.000000 0.518000 0.855400 -vn 0.000000 0.794500 0.607300 -vn -0.000000 -0.999900 0.011200 -vn -0.000000 0.631400 0.775500 -vn 0.000000 0.574900 0.818300 -vn 0.000000 0.999100 -0.042900 -vn -0.000000 0.058000 0.998300 -vn -0.000000 -0.989300 0.145600 -vn 0.000000 -0.999900 0.011100 -vn 0.000000 -0.693200 -0.720800 -vn 0.000000 0.957900 -0.287000 -vn 0.000000 -0.898400 -0.439100 -vn 0.000000 1.000000 -0.000000 -vn 0.000000 0.730300 -0.683200 -vn 0.000000 0.831400 -0.555600 -vn 0.000000 -0.898400 0.439100 -vn 0.000000 0.999900 -0.013700 -vn 0.000000 0.287300 0.957800 -vn 0.000000 -0.058600 -0.998300 -vn 0.000000 -0.984700 0.174300 -vn 0.000000 0.948000 0.318300 -vn 0.000000 -0.034600 -0.999400 -vn -0.000000 -0.956200 0.292900 -vn 0.000000 -0.654500 -0.756100 -vn -0.000000 0.179000 0.983900 -vn 0.000000 -0.385900 0.922600 -vn 0.000000 0.971500 0.237100 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.979300 0.202200 -vn 0.000000 0.971500 -0.237100 -vn 0.000000 -0.962500 -0.271400 -vn 0.000000 -0.830400 -0.557200 -vn 0.000000 0.937900 -0.346900 -vn 0.000000 -0.996100 0.088200 -vn 0.000000 0.749200 -0.662400 -vn -0.000000 0.998400 0.057000 -vn 0.000000 0.687300 0.726400 -vn -0.000000 -0.654500 0.756100 -vn 0.000000 -0.986400 -0.164300 -vn 0.000000 0.194300 0.980900 -vn 0.000000 -0.825300 -0.564700 -vn 0.000000 0.983700 -0.179900 -vn -0.000000 0.749200 0.662400 -vn 0.000000 0.194300 -0.980900 -vn 0.000000 0.928800 -0.370500 -vn -0.000000 -0.997900 -0.064200 -vn -0.000000 -0.998100 0.060800 -vn 0.000000 -0.495900 0.868400 -vn 0.000000 -0.547000 -0.837100 -vn 0.000000 0.916500 0.399900 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.962300 0.271800 -vn 0.000000 -0.180600 -0.983600 -vn 0.000000 -0.495900 -0.868400 -vn 0.000000 0.916500 -0.399900 -vn -0.000000 -0.428300 -0.903600 -vn 0.000000 -0.998500 -0.055200 -vn -0.000000 -0.180600 0.983600 -vn 0.000000 -0.762000 -0.647500 -vn 0.000000 0.997100 0.076200 -vn 0.000000 -0.967600 0.252700 -vn 0.000000 -0.620800 -0.784000 -vn 0.000000 0.985900 0.167600 -vn 0.000000 0.844100 0.536100 -vn 0.000000 0.948000 -0.318300 -vn 0.000000 -0.750700 0.660700 -vn 0.000000 0.997200 -0.074500 -vn 0.000000 0.997900 0.064200 -vn -0.000000 -0.961700 0.274200 -vn 0.000000 0.425800 0.904800 -vn 0.000000 0.110500 0.993900 -vn 0.000000 0.967600 -0.252600 -vn 0.000000 0.179000 -0.983900 -vn 0.000000 0.976300 -0.216500 -vn 0.000000 0.110500 -0.993900 -vn 0.000000 -0.998200 0.060800 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -0.611200 0.791400 -vn 0.000000 -0.880900 -0.473400 -vn 0.000000 -0.611200 -0.791400 -vn 0.000000 -0.973500 0.228500 -vn -0.000000 -0.981400 -0.192100 -vn 0.000000 -0.999400 0.035000 -vn 0.000000 0.833800 -0.552100 -vn 0.000000 0.741800 0.670600 -vn 0.000000 0.389700 0.920900 -vn 0.000000 -0.402000 -0.915600 -vn 0.000000 0.543600 -0.839300 -vn 0.000000 -0.832400 0.554200 -vn 0.000000 -0.993200 0.116600 -vn 0.000000 -0.927000 -0.375100 -vn 0.000000 -0.284400 0.958700 -vn -0.000000 0.543600 0.839300 -vn 0.000000 0.034900 -0.999400 -vn 0.000000 -0.200600 -0.979700 -vn 0.000000 0.997100 -0.076200 -vn 0.000000 -0.725800 -0.687900 -vn 0.000000 -0.473600 -0.880800 -vn 0.000000 -0.948200 -0.317700 -vn -0.000000 -0.428300 0.903600 -vn 0.000000 0.730300 0.683200 -vn 0.000000 0.997900 -0.064200 -vn -0.000000 -0.997900 0.064200 -vn 0.000000 0.100500 -0.994900 -vn -0.000000 -0.546000 0.837800 -vn 0.000000 0.425800 -0.904800 -vn 0.000000 -0.034600 0.999400 -vn 0.000000 -0.546000 -0.837800 -vn 0.000000 0.287300 -0.957800 -vn 0.000000 -0.385900 -0.922600 -vn 0.000000 0.616100 -0.787700 -vn 0.000000 0.889700 0.456600 -vn -0.000000 0.652500 0.757800 -vn 0.000000 -0.830400 0.557200 -vn 0.000000 -0.948200 0.317700 -vn 0.000000 0.616100 0.787700 -vn 0.000000 -0.402000 -0.915700 -vn 0.000000 -0.109400 -0.994000 -vn 0.000000 -0.109400 0.994000 -vn 0.000000 -0.305100 0.952300 -vn 0.000000 -0.914500 -0.404500 -vn 0.000000 0.981300 0.192400 -vn 0.000000 -0.914500 0.404500 -vn -0.000000 0.302900 0.953000 -vn 0.000000 -0.832400 -0.554200 -vn 0.000000 0.981300 -0.192400 -vn 0.000000 0.652500 -0.757800 -vn 0.000000 0.302900 -0.953000 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.305100 -0.952300 -vn 0.000000 -0.750700 -0.660700 -vn 0.000000 0.389700 -0.920900 -vn 0.000000 0.500400 -0.865800 -vn -0.000000 -0.981400 0.192100 -vn 0.000000 0.500400 0.865800 -vn 0.000000 0.833800 0.552100 -vn -0.000000 0.929700 0.368400 -vn 0.000000 0.034900 0.999400 -vn -0.000000 -0.058600 0.998300 -vn 0.000000 -0.192300 -0.981300 -vn 0.000000 -0.284400 -0.958700 -vn 0.000000 -0.192300 0.981300 -vn 0.000000 -0.997000 -0.077300 -vn 0.000000 -0.997000 0.077300 -vn 0.000000 -0.970700 -0.240300 -vn 0.000000 0.898000 -0.440100 -vn 0.000000 -0.725800 0.687900 -vn 0.000000 0.058000 -0.998300 -vn 0.000000 0.999100 -0.043000 -vn 0.000000 0.831500 -0.555600 -vn 0.000000 0.928800 -0.370600 -vn 0.000000 -0.956200 0.292800 -vn 0.000000 0.831400 0.555600 -s off -f 41/1/1 40/2/1 39/3/1 -f 41/1/1 39/3/1 38/4/1 -f 41/1/1 38/4/1 37/5/1 -f 42/6/1 41/1/1 37/5/1 -f 42/6/1 37/5/1 36/7/1 -f 42/6/1 36/7/1 35/8/1 -f 42/6/1 35/8/1 34/9/1 -f 43/10/1 42/6/1 34/9/1 -f 43/10/1 34/9/1 33/11/1 -f 43/10/1 33/11/1 32/12/1 -f 43/10/1 32/12/1 31/13/1 -f 43/10/1 31/13/1 30/14/1 -f 44/15/1 43/10/1 30/14/1 -f 44/15/1 30/14/1 29/16/1 -f 44/15/1 29/16/1 28/17/1 -f 44/15/1 28/17/1 27/18/1 -f 45/19/1 44/15/1 27/18/1 -f 1/20/1 55/21/1 54/22/1 -f 1/20/1 54/22/1 53/23/1 -f 46/24/1 45/19/1 27/18/1 -f 47/25/1 46/24/1 27/18/1 -f 48/26/1 47/25/1 27/18/1 -f 49/27/1 48/26/1 27/18/1 -f 50/28/1 49/27/1 27/18/1 -f 51/29/1 50/28/1 23/30/1 -f 23/30/1 50/28/1 24/31/1 -f 24/31/1 50/28/1 25/32/1 -f 25/32/2 50/28/2 26/33/2 -f 26/33/1 50/28/1 27/18/1 -f 52/34/1 51/29/1 19/35/1 -f 19/35/1 51/29/1 20/36/1 -f 20/36/1 51/29/1 21/37/1 -f 21/37/1 51/29/1 22/38/1 -f 22/38/3 51/29/3 23/30/3 -f 1/20/1 53/23/1 52/34/1 -f 1/20/1 52/34/1 3/39/1 -f 3/39/1 52/34/1 4/40/1 -f 4/40/1 52/34/1 5/41/1 -f 5/41/1 52/34/1 6/42/1 -f 6/42/1 52/34/1 7/43/1 -f 7/43/1 52/34/1 8/44/1 -f 8/44/1 52/34/1 9/45/1 -f 9/45/1 52/34/1 10/46/1 -f 10/46/1 52/34/1 11/47/1 -f 11/47/1 52/34/1 12/48/1 -f 12/48/1 52/34/1 13/49/1 -f 13/49/1 52/34/1 14/50/1 -f 14/50/1 52/34/1 15/51/1 -f 15/51/1 52/34/1 16/52/1 -f 16/52/2 52/34/2 17/53/2 -f 17/53/1 52/34/1 18/54/1 -f 18/54/1 52/34/1 19/35/1 -f 1/20/1 3/39/1 2/55/1 -f 81/56/1 80/57/1 79/58/1 -f 81/56/1 79/58/1 78/59/1 -f 82/60/1 81/56/1 78/59/1 -f 82/60/1 78/59/1 77/61/1 -f 83/62/1 82/60/1 77/61/1 -f 83/62/1 77/61/1 76/63/1 -f 84/64/1 83/62/1 76/63/1 -f 85/65/1 84/64/1 76/63/1 -f 85/65/1 76/63/1 75/66/1 -f 86/67/1 85/65/1 75/66/1 -f 86/67/1 75/66/1 74/68/1 -f 87/69/1 86/67/1 74/68/1 -f 87/69/1 74/68/1 73/70/1 -f 88/71/1 87/69/1 73/70/1 -f 88/71/1 73/70/1 128/72/1 -f 128/72/1 73/70/1 72/73/1 -f 88/71/2 128/72/2 127/74/2 -f 129/75/1 128/72/1 72/73/1 -f 88/71/1 127/74/1 126/76/1 -f 130/77/1 129/75/1 72/73/1 -f 88/71/1 126/76/1 125/78/1 -f 131/79/1 130/77/1 72/73/1 -f 88/71/1 125/78/1 124/80/1 -f 132/81/1 131/79/1 72/73/1 -f 89/82/1 88/71/1 124/80/1 -f 132/81/1 72/73/1 71/83/1 -f 89/82/1 124/80/1 123/84/1 -f 133/85/1 132/81/1 71/83/1 -f 89/82/1 123/84/1 122/86/1 -f 134/87/1 133/85/1 71/83/1 -f 89/82/1 122/86/1 121/88/1 -f 135/89/1 134/87/1 71/83/1 -f 90/90/1 89/82/1 121/88/1 -f 135/89/1 71/83/1 70/91/1 -f 90/90/1 121/88/1 120/92/1 -f 136/93/1 135/89/1 70/91/1 -f 90/90/1 120/92/1 119/94/1 -f 137/95/1 136/93/1 70/91/1 -f 91/96/1 90/90/1 119/94/1 -f 137/95/1 70/91/1 69/97/1 -f 91/96/1 119/94/1 118/98/1 -f 138/99/1 137/95/1 69/97/1 -f 91/96/1 118/98/1 117/100/1 -f 139/101/1 138/99/1 69/97/1 -f 92/102/1 91/96/1 117/100/1 -f 139/101/1 69/97/1 68/103/1 -f 92/102/1 117/100/1 116/104/1 -f 140/105/1 139/101/1 68/103/1 -f 93/106/1 92/102/1 116/104/1 -f 93/106/1 116/104/1 115/107/1 -f 141/108/1 140/105/1 68/103/1 -f 141/108/1 68/103/1 67/109/1 -f 93/106/1 115/107/1 114/110/1 -f 142/111/1 141/108/1 67/109/1 -f 94/112/1 93/106/1 114/110/1 -f 142/111/1 67/109/1 66/113/1 -f 94/112/1 114/110/1 113/114/1 -f 143/115/1 142/111/1 66/113/1 -f 94/112/1 113/114/1 112/116/1 -f 144/117/1 143/115/1 66/113/1 -f 95/118/1 94/112/1 112/116/1 -f 144/117/1 66/113/1 65/119/1 -f 95/118/1 112/116/1 111/120/1 -f 145/121/1 144/117/1 65/119/1 -f 95/118/1 111/120/1 110/122/1 -f 146/123/1 145/121/1 65/119/1 -f 96/124/1 95/118/1 110/122/1 -f 146/123/1 65/119/1 64/125/1 -f 96/124/1 110/122/1 109/126/1 -f 147/127/1 146/123/1 64/125/1 -f 96/124/1 109/126/1 108/128/1 -f 148/129/1 147/127/1 64/125/1 -f 96/124/1 108/128/1 107/130/1 -f 149/131/1 148/129/1 64/125/1 -f 97/132/1 96/124/1 107/130/1 -f 149/131/1 64/125/1 63/133/1 -f 97/132/1 107/130/1 106/134/1 -f 150/135/1 149/131/1 63/133/1 -f 97/132/1 106/134/1 105/136/1 -f 151/137/1 150/135/1 63/133/1 -f 97/132/1 105/136/1 104/138/1 -f 104/138/1 151/137/1 63/133/1 -f 97/132/1 104/138/1 63/133/1 -f 98/139/1 97/132/1 63/133/1 -f 98/139/1 63/133/1 62/140/1 -f 99/141/1 98/139/1 62/140/1 -f 99/141/1 62/140/1 61/142/1 -f 100/143/1 99/141/1 61/142/1 -f 100/143/1 61/142/1 60/144/1 -f 101/145/1 100/143/1 60/144/1 -f 101/145/1 60/144/1 59/146/1 -f 102/147/1 101/145/1 59/146/1 -f 102/147/1 59/146/1 58/148/1 -f 103/149/1 102/147/1 58/148/1 -f 103/149/1 58/148/1 57/150/1 -f 56/151/1 103/149/1 57/150/1 -f 192/152/1 191/153/1 190/154/1 -f 192/152/4 190/154/4 189/155/4 -f 192/152/1 189/155/1 188/156/1 -f 193/157/1 192/152/1 188/156/1 -f 193/157/1 188/156/1 187/158/1 -f 193/157/1 187/158/1 186/159/1 -f 193/157/1 186/159/1 185/160/1 -f 194/161/1 193/157/1 185/160/1 -f 194/161/1 185/160/1 184/162/1 -f 194/161/1 184/162/1 183/163/1 -f 194/161/1 183/163/1 182/164/1 -f 194/161/1 182/164/1 181/165/1 -f 195/166/1 194/161/1 181/165/1 -f 195/166/1 181/165/1 180/167/1 -f 195/166/1 180/167/1 179/168/1 -f 195/166/1 179/168/1 178/169/1 -f 196/170/1 195/166/1 178/169/1 -f 152/171/1 206/172/1 205/173/1 -f 152/171/1 205/173/1 204/174/1 -f 197/175/1 196/170/1 178/169/1 -f 198/176/1 197/175/1 178/169/1 -f 199/177/1 198/176/1 178/169/1 -f 200/178/1 199/177/1 178/169/1 -f 201/179/1 200/178/1 178/169/1 -f 202/180/1 201/179/1 174/181/1 -f 174/181/1 201/179/1 175/182/1 -f 175/182/1 201/179/1 176/183/1 -f 176/183/1 201/179/1 177/184/1 -f 177/184/1 201/179/1 178/169/1 -f 203/185/1 202/180/1 170/186/1 -f 170/186/1 202/180/1 171/187/1 -f 171/187/1 202/180/1 172/188/1 -f 172/188/1 202/180/1 173/189/1 -f 173/189/1 202/180/1 174/181/1 -f 152/171/1 204/174/1 203/185/1 -f 152/171/1 203/185/1 154/190/1 -f 154/190/1 203/185/1 155/191/1 -f 155/191/1 203/185/1 156/192/1 -f 156/192/1 203/185/1 157/193/1 -f 157/193/1 203/185/1 158/194/1 -f 158/194/1 203/185/1 159/195/1 -f 159/195/1 203/185/1 160/196/1 -f 160/196/1 203/185/1 161/197/1 -f 161/197/1 203/185/1 162/198/1 -f 162/198/1 203/185/1 163/199/1 -f 163/199/1 203/185/1 164/200/1 -f 164/200/1 203/185/1 165/201/1 -f 165/201/1 203/185/1 166/202/1 -f 166/202/1 203/185/1 167/203/1 -f 167/203/1 203/185/1 168/204/1 -f 168/204/1 203/185/1 169/205/1 -f 169/205/1 203/185/1 170/186/1 -f 152/171/1 154/190/1 153/206/1 -f 247/207/1 246/208/1 245/209/1 -f 247/207/1 245/209/1 244/210/1 -f 247/207/1 244/210/1 243/211/1 -f 248/212/1 247/207/1 243/211/1 -f 248/212/1 243/211/1 242/213/1 -f 248/212/1 242/213/1 241/214/1 -f 248/212/1 241/214/1 240/215/1 -f 249/216/1 248/212/1 240/215/1 -f 249/216/1 240/215/1 239/217/1 -f 249/216/1 239/217/1 238/218/1 -f 249/216/1 238/218/1 237/219/1 -f 249/216/1 237/219/1 236/220/1 -f 250/221/1 249/216/1 236/220/1 -f 250/221/1 236/220/1 235/222/1 -f 250/221/1 235/222/1 234/223/1 -f 250/221/1 234/223/1 233/224/1 -f 251/225/1 250/221/1 233/224/1 -f 207/226/1 261/227/1 260/228/1 -f 207/226/1 260/228/1 259/229/1 -f 252/230/1 251/225/1 233/224/1 -f 253/231/1 252/230/1 233/224/1 -f 254/232/1 253/231/1 233/224/1 -f 255/233/1 254/232/1 233/224/1 -f 256/234/1 255/233/1 233/224/1 -f 257/235/1 256/234/1 229/236/1 -f 229/236/1 256/234/1 230/237/1 -f 230/237/1 256/234/1 231/238/1 -f 231/238/1 256/234/1 232/239/1 -f 232/239/1 256/234/1 233/224/1 -f 258/240/1 257/235/1 225/241/1 -f 225/241/1 257/235/1 226/242/1 -f 226/242/1 257/235/1 227/243/1 -f 227/243/1 257/235/1 228/244/1 -f 228/244/1 257/235/1 229/236/1 -f 207/226/1 259/229/1 258/240/1 -f 207/226/1 258/240/1 209/245/1 -f 209/245/1 258/240/1 210/246/1 -f 210/246/1 258/240/1 211/247/1 -f 211/247/1 258/240/1 212/248/1 -f 212/248/1 258/240/1 213/249/1 -f 213/249/1 258/240/1 214/250/1 -f 214/250/1 258/240/1 215/251/1 -f 215/251/1 258/240/1 216/252/1 -f 216/252/1 258/240/1 217/253/1 -f 217/253/1 258/240/1 218/254/1 -f 218/254/1 258/240/1 219/255/1 -f 219/255/1 258/240/1 220/256/1 -f 220/256/1 258/240/1 221/257/1 -f 221/257/1 258/240/1 222/258/1 -f 222/258/1 258/240/1 223/259/1 -f 223/259/1 258/240/1 224/260/1 -f 224/260/1 258/240/1 225/241/1 -f 207/226/1 209/245/1 208/261/1 -f 262/262/1 273/263/1 270/264/1 -f 270/264/1 273/263/1 272/265/1 -f 270/264/1 272/265/1 271/266/1 -f 262/262/1 270/264/1 269/267/1 -f 262/262/1 269/267/1 266/268/1 -f 266/268/1 269/267/1 268/269/1 -f 266/268/1 268/269/1 267/270/1 -f 262/262/1 266/268/1 265/271/1 -f 262/262/1 265/271/1 264/272/1 -f 262/262/1 264/272/1 263/273/1 -f 426/274/5 336/275/5 337/276/5 -f 426/274/6 479/277/6 336/275/6 -f 426/274/6 478/278/6 479/277/6 -f 308/279/6 478/278/6 426/274/6 -f 308/279/6 307/280/6 478/278/6 -f 308/279/6 466/281/6 307/280/6 -f 308/279/6 512/282/6 466/281/6 -f 415/283/6 512/282/6 308/279/6 -f 415/283/6 414/284/6 512/282/6 -f 415/283/6 441/285/6 414/284/6 -f 415/283/6 489/286/6 441/285/6 -f 415/283/6 465/287/6 489/286/6 -f 409/288/6 465/287/6 415/283/6 -f 409/288/6 408/289/6 465/287/6 -f 409/288/6 539/290/6 408/289/6 -f 409/288/6 295/291/6 539/290/6 -f 475/292/6 295/291/6 409/288/6 -f 380/293/6 482/294/6 526/295/6 -f 380/293/6 463/296/6 482/294/6 -f 476/297/6 295/291/6 475/292/6 -f 296/298/6 295/291/6 476/297/6 -f 329/299/6 295/291/6 296/298/6 -f 424/300/6 295/291/6 329/299/6 -f 439/301/6 295/291/6 424/300/6 -f 348/302/6 487/303/6 439/301/6 -f 487/303/6 438/304/6 439/301/6 -f 438/304/6 358/305/6 439/301/6 -f 358/305/7 359/306/7 439/301/7 -f 359/306/6 295/291/6 439/301/6 -f 367/307/6 523/308/6 348/302/6 -f 523/308/6 538/309/6 348/302/6 -f 538/309/6 347/310/6 348/302/6 -f 347/310/6 486/311/6 348/302/6 -f 486/311/8 487/303/8 348/302/8 -f 380/293/6 367/307/6 463/296/6 -f 380/293/6 449/312/6 367/307/6 -f 449/312/6 541/313/6 367/307/6 -f 541/313/6 391/314/6 367/307/6 -f 391/314/6 499/315/6 367/307/6 -f 499/315/6 494/316/6 367/307/6 -f 494/316/6 448/317/6 367/307/6 -f 448/317/6 368/318/6 367/307/6 -f 368/318/6 369/319/6 367/307/6 -f 369/319/6 524/320/6 367/307/6 -f 524/320/6 540/321/6 367/307/6 -f 540/321/6 366/322/6 367/307/6 -f 366/322/6 488/323/6 367/307/6 -f 488/323/6 492/324/6 367/307/6 -f 492/324/6 447/325/6 367/307/6 -f 447/325/7 354/326/7 367/307/7 -f 354/326/6 355/327/6 367/307/6 -f 355/327/6 523/308/6 367/307/6 -f 380/293/6 381/328/6 449/312/6 -f 396/329/6 459/330/6 460/331/6 -f 396/329/6 294/332/6 459/330/6 -f 412/333/6 294/332/6 396/329/6 -f 412/333/6 293/334/6 294/332/6 -f 500/335/6 293/334/6 412/333/6 -f 500/335/6 325/336/6 293/334/6 -f 385/337/6 325/336/6 500/335/6 -f 274/338/6 325/336/6 385/337/6 -f 274/338/6 506/339/6 325/336/6 -f 275/340/6 506/339/6 274/338/6 -f 275/340/6 505/341/6 506/339/6 -f 316/342/6 505/341/6 275/340/6 -f 316/342/6 315/343/6 505/341/6 -f 360/344/6 315/343/6 316/342/6 -f 360/344/6 320/345/6 315/343/6 -f 320/345/6 462/346/6 315/343/6 -f 360/344/7 445/347/7 320/345/7 -f 511/348/6 462/346/6 320/345/6 -f 360/344/6 361/349/6 445/347/6 -f 472/350/6 462/346/6 511/348/6 -f 360/344/6 421/351/6 361/349/6 -f 473/352/6 462/346/6 472/350/6 -f 360/344/6 327/353/6 421/351/6 -f 531/354/6 462/346/6 473/352/6 -f 525/355/6 327/353/6 360/344/6 -f 531/354/6 364/356/6 462/346/6 -f 525/355/6 326/357/6 327/353/6 -f 365/358/6 364/356/6 531/354/6 -f 525/355/6 518/359/6 326/357/6 -f 517/360/6 364/356/6 365/358/6 -f 525/355/6 537/361/6 518/359/6 -f 420/362/6 364/356/6 517/360/6 -f 502/363/6 537/361/6 525/355/6 -f 420/362/6 302/364/6 364/356/6 -f 502/363/6 530/365/6 537/361/6 -f 321/366/6 302/364/6 420/362/6 -f 502/363/6 522/367/6 530/365/6 -f 322/368/6 302/364/6 321/366/6 -f 503/369/6 522/367/6 502/363/6 -f 322/368/6 301/370/6 302/364/6 -f 503/369/6 469/371/6 522/367/6 -f 470/372/6 301/370/6 322/368/6 -f 503/369/6 418/373/6 469/371/6 -f 471/374/6 301/370/6 470/372/6 -f 395/375/6 418/373/6 503/369/6 -f 471/374/6 404/376/6 301/370/6 -f 395/375/6 324/377/6 418/373/6 -f 529/378/6 404/376/6 471/374/6 -f 286/379/6 324/377/6 395/375/6 -f 286/379/6 323/380/6 324/377/6 -f 435/381/6 404/376/6 529/378/6 -f 435/381/6 434/382/6 404/376/6 -f 286/379/6 352/383/6 323/380/6 -f 516/384/6 434/382/6 435/381/6 -f 287/385/6 352/383/6 286/379/6 -f 516/384/6 509/386/6 434/382/6 -f 287/385/6 536/387/6 352/383/6 -f 417/388/6 509/386/6 516/384/6 -f 287/385/6 527/389/6 536/387/6 -f 313/390/6 509/386/6 417/388/6 -f 456/391/6 527/389/6 287/385/6 -f 313/390/6 328/392/6 509/386/6 -f 456/391/6 519/393/6 527/389/6 -f 314/394/6 328/392/6 313/390/6 -f 456/391/6 346/395/6 519/393/6 -f 467/396/6 328/392/6 314/394/6 -f 345/397/6 346/395/6 456/391/6 -f 467/396/6 342/398/6 328/392/6 -f 345/397/6 413/399/6 346/395/6 -f 428/400/6 342/398/6 467/396/6 -f 345/397/6 312/401/6 413/399/6 -f 343/402/6 342/398/6 428/400/6 -f 345/397/6 311/403/6 312/401/6 -f 431/404/6 342/398/6 343/402/6 -f 292/405/6 311/403/6 345/397/6 -f 431/404/6 344/406/6 342/398/6 -f 292/405/6 510/407/6 311/403/6 -f 508/408/6 344/406/6 431/404/6 -f 292/405/6 535/409/6 510/407/6 -f 291/410/6 344/406/6 508/408/6 -f 292/405/6 290/411/6 535/409/6 -f 290/411/6 344/406/6 291/410/6 -f 292/405/6 344/406/6 290/411/6 -f 515/412/6 344/406/6 292/405/6 -f 515/412/6 484/413/6 344/406/6 -f 319/414/6 484/413/6 515/412/6 -f 319/414/6 483/415/6 484/413/6 -f 279/416/6 483/415/6 319/414/6 -f 279/416/6 278/417/6 483/415/6 -f 416/418/6 278/417/6 279/416/6 -f 416/418/6 521/419/6 278/417/6 -f 452/420/6 521/419/6 416/418/6 -f 452/420/6 387/421/6 521/419/6 -f 388/422/6 387/421/6 452/420/6 -f 388/422/6 430/423/6 387/421/6 -f 429/424/6 430/423/6 388/422/6 -f 351/425/6 403/426/6 543/427/6 -f 351/425/6 402/428/6 403/426/6 -f 351/425/6 284/429/6 402/428/6 -f 285/430/6 284/429/6 351/425/6 -f 285/430/6 455/431/6 284/429/6 -f 285/430/6 464/432/6 455/431/6 -f 285/430/6 306/433/6 464/432/6 -f 423/434/6 306/433/6 285/430/6 -f 423/434/6 305/435/6 306/433/6 -f 423/434/6 422/436/6 305/435/6 -f 423/434/6 407/437/6 422/436/6 -f 423/434/6 406/438/6 407/437/6 -f 335/439/6 406/438/6 423/434/6 -f 335/439/6 507/440/6 406/438/6 -f 335/439/6 334/441/6 507/440/6 -f 335/439/6 332/442/6 334/441/6 -f 353/443/6 332/442/6 335/439/6 -f 317/444/6 341/445/6 461/446/6 -f 317/444/6 340/447/6 341/445/6 -f 333/448/6 332/442/6 353/443/6 -f 545/449/6 332/442/6 333/448/6 -f 432/450/6 332/442/6 545/449/6 -f 433/451/6 332/442/6 432/450/6 -f 394/452/6 332/442/6 433/451/6 -f 310/453/6 384/454/6 394/452/6 -f 384/454/6 542/455/6 394/452/6 -f 542/455/6 299/456/6 394/452/6 -f 299/456/6 300/457/6 394/452/6 -f 300/457/6 332/442/6 394/452/6 -f 378/458/6 453/459/6 310/453/6 -f 453/459/6 454/460/6 310/453/6 -f 454/460/6 309/461/6 310/453/6 -f 309/461/6 383/462/6 310/453/6 -f 383/462/9 384/454/9 310/453/9 -f 317/444/6 378/458/6 340/447/6 -f 317/444/6 468/463/6 378/458/6 -f 468/463/6 419/464/6 378/458/6 -f 419/464/6 528/465/6 378/458/6 -f 528/465/6 513/466/6 378/458/6 -f 513/466/6 514/467/6 378/458/6 -f 514/467/6 397/468/6 378/458/6 -f 397/468/6 288/469/6 378/458/6 -f 288/469/6 289/470/6 378/458/6 -f 289/470/6 458/471/6 378/458/6 -f 458/471/6 393/472/6 378/458/6 -f 393/472/6 504/473/6 378/458/6 -f 504/473/6 400/474/6 378/458/6 -f 400/474/6 401/475/6 378/458/6 -f 401/475/6 377/476/6 378/458/6 -f 377/476/6 276/477/6 378/458/6 -f 276/477/6 277/478/6 378/458/6 -f 277/478/6 453/459/6 378/458/6 -f 317/444/6 318/479/6 468/463/6 -f 376/480/6 375/481/6 451/482/6 -f 376/480/6 379/483/6 375/481/6 -f 376/480/6 496/484/6 379/483/6 -f 399/485/6 496/484/6 376/480/6 -f 399/485/6 495/486/6 496/484/6 -f 399/485/6 534/487/6 495/486/6 -f 399/485/6 398/488/6 534/487/6 -f 283/489/6 398/488/6 399/485/6 -f 283/489/6 457/490/6 398/488/6 -f 283/489/6 282/491/6 457/490/6 -f 283/489/6 350/492/6 282/491/6 -f 283/489/6 349/493/6 350/492/6 -f 411/494/6 349/493/6 283/489/6 -f 411/494/6 410/495/6 349/493/6 -f 411/494/6 485/496/6 410/495/6 -f 411/494/6 297/497/6 485/496/6 -f 493/498/6 297/497/6 411/494/6 -f 303/499/6 498/500/6 304/501/6 -f 303/499/6 386/502/6 498/500/6 -f 373/503/6 297/497/6 493/498/6 -f 374/504/6 297/497/6 373/503/6 -f 405/505/6 297/497/6 374/504/6 -f 298/506/6 297/497/6 405/505/6 -f 390/507/6 297/497/6 298/506/6 -f 444/508/6 372/509/6 390/507/6 -f 372/509/6 446/510/6 390/507/6 -f 446/510/6 501/511/6 390/507/6 -f 501/511/6 389/512/6 390/507/6 -f 389/512/6 297/497/6 390/507/6 -f 357/513/6 533/514/6 444/508/6 -f 533/514/6 491/515/6 444/508/6 -f 491/515/6 443/516/6 444/508/6 -f 443/516/6 371/517/6 444/508/6 -f 371/517/6 372/509/6 444/508/6 -f 303/499/6 357/513/6 386/502/6 -f 303/499/6 474/518/6 357/513/6 -f 474/518/6 481/519/6 357/513/6 -f 481/519/6 392/520/6 357/513/6 -f 392/520/6 338/521/6 357/513/6 -f 338/521/6 339/522/6 357/513/6 -f 339/522/6 544/523/6 357/513/6 -f 544/523/6 382/524/6 357/513/6 -f 382/524/6 427/525/6 357/513/6 -f 427/525/6 520/526/6 357/513/6 -f 520/526/6 477/527/6 357/513/6 -f 477/527/6 370/528/6 357/513/6 -f 370/528/6 330/529/6 357/513/6 -f 330/529/6 331/530/6 357/513/6 -f 331/530/6 546/531/6 357/513/6 -f 546/531/6 356/532/6 357/513/6 -f 356/532/6 442/533/6 357/513/6 -f 442/533/6 533/514/6 357/513/6 -f 303/499/6 425/534/6 474/518/6 -f 450/535/6 436/536/6 480/537/6 -f 436/536/6 437/538/6 480/537/6 -f 436/536/6 532/539/6 437/538/6 -f 450/535/6 440/540/6 436/536/6 -f 450/535/6 362/541/6 440/540/6 -f 362/541/6 490/542/6 440/540/6 -f 362/541/6 363/543/6 490/542/6 -f 450/535/6 497/544/6 362/541/6 -f 450/535/6 281/272/6 497/544/6 -f 450/535/6 280/273/6 281/272/6 -f 84/545/10 385/546/10 500/547/10 -f 36/548/11 307/549/11 466/550/11 -f 243/551/12 496/552/12 495/553/12 -f 182/554/13 407/555/13 406/556/13 -f 130/557/14 472/558/14 511/559/14 -f 258/560/15 357/561/15 444/562/15 -f 47/563/16 296/564/16 476/565/16 -f 167/566/17 377/567/17 401/568/17 -f 201/569/18 394/570/18 433/571/18 -f 257/572/19 444/562/19 390/573/19 -f 39/574/20 336/575/20 479/576/20 -f 92/577/21 395/578/21 503/579/21 -f 172/580/22 309/581/22 454/582/22 -f 221/583/23 222/584/23 546/585/23 -f 52/586/15 367/587/15 348/588/15 -f 214/589/24 544/590/24 339/591/24 -f 183/592/25 422/593/25 407/555/25 -f 60/594/26 278/595/26 521/596/26 -f 261/597/27 304/598/27 498/599/27 -f 109/600/28 413/601/28 312/602/28 -f 76/603/29 325/604/29 506/605/29 -f 55/606/27 526/607/27 482/608/27 -f 101/609/30 416/610/30 279/611/30 -f 206/612/27 461/613/27 341/614/27 -f 191/615/31 543/616/31 403/617/31 -f 144/618/32 313/619/32 417/620/32 -f 68/621/33 404/622/33 434/623/33 -f 22/624/34 486/625/34 347/626/34 -f 83/627/35 500/547/35 412/628/35 -f 117/629/36 418/630/36 324/631/36 -f 233/632/37 297/633/37 389/634/37 -f 63/635/38 344/636/38 484/637/38 -f 91/638/39 503/579/39 502/639/39 -f 136/640/40 321/641/40 420/642/40 -f 151/643/41 291/644/41 508/645/41 -f 271/646/42 532/647/42 436/648/42 -f 23/649/43 487/650/43 486/625/43 -f 106/651/44 510/652/44 535/653/44 -f 164/654/45 504/655/45 393/656/45 -f 125/657/46 421/658/46 327/659/46 -f 236/660/47 349/661/47 410/662/47 -f 159/663/24 397/664/24 514/665/24 -f 30/666/47 465/667/47 408/668/47 -f 225/669/48 533/670/48 442/671/48 -f 75/672/49 506/605/49 505/673/49 -f 192/674/50 351/675/50 543/616/50 -f 49/676/51 424/677/51 329/678/51 -f 188/679/12 284/680/12 455/681/12 -f 208/682/42 425/683/42 303/607/42 -f 198/684/16 545/685/16 333/686/16 -f 98/687/52 515/688/52 292/689/52 -f 14/690/53 488/691/53 366/692/53 -f 41/693/50 426/694/50 337/695/50 -f 143/696/54 417/620/54 516/697/54 -f 216/698/55 427/699/55 382/700/55 -f 241/701/56 534/702/56 398/703/56 -f 86/704/57 275/705/57 274/444/57 -f 114/706/58 352/707/58 536/708/58 -f 180/709/59 507/710/59 334/711/59 -f 57/712/60 430/713/60 429/714/60 -f 31/715/13 489/716/13 465/667/13 -f 169/717/61 277/718/61 276/719/61 -f 135/720/62 420/642/62 517/721/62 -f 6/722/63 499/723/63 391/724/63 -f 150/725/64 508/645/64 431/726/64 -f 272/727/65 437/728/65 532/729/65 -f 249/730/66 283/731/66 399/732/66 -f 67/733/67 434/623/67 509/734/67 -f 200/735/51 433/571/51 432/736/51 -f 264/737/65 281/729/65 280/738/65 -f 122/739/68 518/740/68 537/741/68 -f 107/742/69 311/743/69 510/652/69 -f 65/744/70 328/745/70 342/746/70 -f 15/747/71 492/748/71 488/691/71 -f 228/749/34 371/750/34 443/751/34 -f 94/752/72 287/753/72 286/754/72 -f 215/755/73 382/756/73 544/590/73 -f 255/757/51 298/758/51 405/759/51 -f 238/760/25 282/761/25 350/762/25 -f 161/763/55 289/764/55 288/765/55 -f 170/766/48 453/767/48 277/718/48 -f 104/768/74 290/769/74 291/644/74 -f 25/770/75 358/771/75 438/772/75 -f 7/773/76 494/774/76 499/723/76 -f 42/775/77 308/776/77 426/694/77 -f 263/777/42 280/778/42 450/779/42 -f 158/780/76 514/665/76 513/781/76 -f 252/782/78 373/783/78 493/784/78 -f 78/785/79 294/786/79 293/787/79 -f 270/788/65 436/789/65 440/613/65 -f 99/790/80 319/791/80 515/792/80 -f 244/793/81 379/794/81 496/552/81 -f 81/795/82 396/796/82 460/797/82 -f 177/798/83 300/799/83 299/800/83 -f 89/801/84 525/802/84 360/803/84 -f 142/804/85 516/697/85 435/805/85 -f 33/806/86 414/807/86 441/808/86 -f 70/809/87 302/810/87 301/811/87 -f 34/812/88 512/813/88 414/807/88 -f 115/814/89 323/815/89 352/707/89 -f 224/816/90 442/671/90 356/817/90 -f 207/818/91 303/819/91 304/820/91 -f 134/821/92 517/721/92 365/683/92 -f 185/822/88 306/823/88 305/824/88 -f 162/825/93 458/826/93 289/764/93 -f 123/827/94 326/828/94 518/740/94 -f 50/829/18 439/830/18 424/677/18 -f 230/831/95 446/832/95 372/833/95 -f 58/834/96 387/835/96 430/713/96 -f 43/836/66 415/837/66 308/776/66 -f 17/838/97 354/839/97 447/840/97 -f 108/841/98 312/602/98 311/743/98 -f 254/842/99 405/759/99 374/843/99 -f 145/844/100 314/845/100 313/619/100 -f 9/846/73 368/847/73 448/848/73 -f 210/849/101 481/850/101 474/851/101 -f 153/647/42 318/646/42 317/852/42 -f 73/853/102 315/854/102 462/855/102 -f 100/856/103 279/611/103 319/791/103 -f 20/857/104 538/858/104 523/859/104 -f 246/860/31 451/861/31 375/862/31 -f 199/863/99 432/736/99 545/864/99 -f 178/865/37 332/866/37 300/799/37 -f 218/867/105 477/868/105 520/869/105 -f 137/870/106 322/871/106 321/641/106 -f 186/872/56 464/873/56 306/823/56 -f 35/874/56 466/550/56 512/813/56 -f 88/875/107 360/803/107 316/876/107 -f 116/877/108 324/631/108 323/815/108 -f 28/878/109 539/879/109 295/880/109 -f 105/881/110 535/653/110 290/769/110 -f 256/882/18 390/573/18 298/758/18 -f 202/883/19 310/884/19 394/570/19 -f 171/885/104 454/582/104 453/767/104 -f 124/886/111 327/887/111 326/828/111 -f 51/888/19 348/588/19 439/830/19 -f 156/889/112 528/890/112 419/891/112 -f 59/892/113 521/596/113 387/835/113 -f 96/893/114 345/894/114 456/895/114 -f 48/896/99 329/678/99 296/897/99 -f 273/688/27 480/687/27 437/898/27 -f 221/583/71 331/899/71 330/900/71 -f 194/901/66 423/902/66 285/903/66 -f 163/904/105 393/656/105 458/826/105 -f 247/905/50 376/906/50 451/861/50 -f 148/907/115 343/908/115 428/909/115 -f 80/910/116 460/797/116 459/911/116 -f 40/912/31 337/695/31 336/575/31 -f 19/913/48 523/859/48 355/914/48 -f 206/820/91 152/819/91 317/915/91 -f 213/916/76 339/591/76 338/917/76 -f 12/918/105 540/919/105 524/920/105 -f 56/921/117 429/714/117 388/922/117 -f 179/923/109 334/924/109 332/879/109 -f 205/564/118 341/563/118 340/925/118 -f 223/926/97 356/817/97 546/585/97 -f 97/927/119 292/689/119 345/894/119 -f 72/928/120 462/855/120 364/929/120 -f 140/930/121 529/931/121 471/932/121 -f 27/933/37 295/880/37 359/934/37 -f 64/935/122 342/746/122 344/636/122 -f 231/936/75 501/937/75 446/832/75 -f 187/938/11 455/681/11 464/873/11 -f 113/939/123 536/708/123 527/940/123 -f 268/941/65 490/942/65 363/943/65 -f 237/944/13 350/762/13 349/661/13 -f 121/945/124 537/741/124 530/946/124 -f 248/947/77 399/732/77 376/906/77 -f 110/948/125 346/949/125 413/950/125 -f 193/951/77 285/903/77 351/675/77 -f 239/952/86 457/953/86 282/761/86 -f 45/954/126 475/613/126 409/955/126 -f 11/956/93 524/920/93 369/957/93 -f 4/958/101 541/959/101 449/960/101 -f 197/961/78 333/686/78 353/962/78 -f 232/963/83 389/634/83 501/937/83 -f 18/964/61 355/914/61 354/839/61 -f 87/965/127 316/876/127 275/705/127 -f 132/966/128 531/967/128 473/968/128 -f 220/969/53 330/900/53 370/970/53 -f 240/971/88 398/703/88 457/953/88 -f 102/972/129 452/973/129 416/610/129 -f 168/974/97 276/719/97 377/567/97 -f 147/975/130 428/909/130 467/976/130 -f 26/977/83 359/934/83 358/771/83 -f 212/978/63 338/917/63 392/979/63 -f 3/980/65 449/960/65 381/819/65 -f 155/981/131 419/891/131 468/982/131 -f 264/983/27 265/984/27 497/985/27 -f 173/986/34 383/987/34 309/581/34 -f 118/988/132 469/989/132 418/630/132 -f 267/990/42 363/950/42 362/789/42 -f 37/991/12 478/992/12 307/549/12 -f 139/993/133 471/932/133 470/994/133 -f 95/995/134 456/895/134 287/753/134 -f 204/996/27 340/997/27 378/998/27 -f 260/999/118 498/1000/118 386/1001/118 -f 126/1002/135 361/1003/135 421/658/135 -f 82/1004/136 412/628/136 396/796/136 -f 131/1005/137 473/968/137 472/558/137 -f 10/1006/55 369/957/55 368/866/55 -f 90/1007/138 502/639/138 525/802/138 -f 46/1008/78 476/565/78 475/613/78 -f 229/1009/43 372/833/43 371/750/43 -f 53/1010/27 463/1011/27 367/898/27 -f 1/1012/91 380/1013/91 526/1014/91 -f 219/1015/45 370/970/45 477/868/45 -f 253/1016/16 374/1017/16 373/783/16 -f 61/985/139 483/1018/139 278/595/139 -f 165/1019/53 400/1020/53 504/655/53 -f 38/1021/81 479/576/81 478/992/81 -f 79/1022/140 459/911/140 294/786/140 -f 74/1023/141 505/673/141 315/1024/141 -f 262/1025/91 450/1026/91 480/537/91 -f 245/1027/20 375/862/20 379/794/20 -f 189/1028/81 402/1029/81 284/680/81 -f 211/1030/112 392/979/112 481/850/112 -f 2/1031/42 381/1032/42 380/601/42 -f 71/1033/142 364/929/142 302/810/142 -f 234/1034/109 485/843/109 297/1035/109 -f 203/633/15 378/632/15 310/884/15 -f 196/1036/126 353/962/126 335/1037/126 -f 174/1038/43 384/1039/43 383/987/43 -f 176/1040/75 299/800/75 542/1041/75 -f 21/1042/22 347/626/22 538/858/22 -f 85/1043/143 274/1044/143 385/546/143 -f 181/1045/47 406/556/47 507/710/47 -f 54/1046/118 482/1047/118 463/728/118 -f 259/1017/27 386/1016/27 357/1048/27 -f 184/1049/86 305/824/86 422/593/86 -f 29/1050/59 408/668/59 539/887/59 -f 66/1051/144 509/734/144 328/745/144 -f 62/1052/145 484/637/145 483/915/145 -f 235/1053/59 410/662/59 485/1054/59 -f 226/1055/104 491/1056/104 533/670/104 -f 112/1057/146 527/940/146 519/1058/146 -f 111/1059/147 519/1058/147 346/949/147 -f 13/1060/45 366/692/45 540/919/45 -f 24/1061/95 438/772/95 487/650/95 -f 266/1062/65 362/943/65 497/1063/65 -f 157/1064/63 513/781/63 528/890/63 -f 103/1065/148 388/922/148 452/973/148 -f 146/1066/149 467/976/149 314/845/149 -f 149/1067/150 431/726/150 343/1068/150 -f 195/1069/151 335/1037/151 423/902/151 -f 154/1070/65 468/982/65 318/1071/65 -f 141/1072/152 435/805/152 529/931/152 -f 93/1073/153 286/754/153 395/578/153 -f 119/1074/154 522/1075/154 469/989/154 -f 242/1076/11 495/553/11 534/702/11 -f 120/870/155 530/946/155 522/1075/155 -f 32/1077/25 441/808/25 489/716/25 -f 138/1078/156 470/994/156 322/871/156 -f 128/1079/157 320/1080/157 445/1081/157 -f 269/598/27 440/597/27 490/983/27 -f 160/1082/73 288/1083/73 397/664/73 -f 129/1084/158 511/559/158 320/1080/158 -f 227/1085/22 443/751/22 491/1056/22 -f 166/1086/71 401/568/71 400/1020/71 -f 127/1087/159 445/1081/159 361/1003/159 -f 250/1088/151 411/1089/151 283/731/151 -f 44/1090/151 409/955/151 415/837/151 -f 77/1091/160 293/787/160 325/604/160 -f 16/1092/17 447/840/17 492/748/17 -f 133/1093/161 365/847/161 531/967/161 -f 251/1094/126 493/784/126 411/1089/126 -f 190/1095/20 403/617/20 402/1029/20 -f 5/1096/112 391/724/112 541/959/112 -f 209/1097/65 474/851/65 425/1098/65 -f 8/1099/24 448/848/24 494/774/24 -f 69/1100/162 301/811/162 404/622/162 -f 175/1101/95 542/1041/95 384/1039/95 -f 217/1102/93 520/869/93 427/699/93 -f 83/627/10 84/545/10 500/547/10 -f 35/874/11 36/548/11 466/550/11 -f 242/1076/12 243/551/12 495/553/12 -f 181/1045/13 182/554/13 406/556/13 -f 129/1084/14 130/557/14 511/559/14 -f 257/572/15 258/560/15 444/562/15 -f 46/1008/16 47/563/16 476/565/16 -f 166/1086/23 167/566/23 401/568/23 -f 200/735/18 201/569/18 433/571/18 -f 256/882/19 257/572/19 390/573/19 -f 38/1021/163 39/574/163 479/576/163 -f 91/638/21 92/577/21 503/579/21 -f 171/885/22 172/580/22 454/582/22 -f 331/899/17 221/583/17 546/585/17 -f 51/888/15 52/586/15 348/588/15 -f 213/916/24 214/589/24 339/591/24 -f 182/554/25 183/592/25 407/555/25 -f 59/892/26 60/594/26 521/596/26 -f 260/1103/27 261/597/27 498/599/27 -f 108/841/28 109/600/28 312/602/28 -f 75/672/164 76/603/164 506/605/164 -f 54/1104/27 55/606/27 482/608/27 -f 100/856/30 101/609/30 279/611/30 -f 205/1105/27 206/612/27 341/614/27 -f 190/1095/31 191/615/31 403/617/31 -f 143/696/32 144/618/32 417/620/32 -f 67/733/33 68/621/33 434/623/33 -f 21/1042/34 22/624/34 347/626/34 -f 82/1004/35 83/627/35 412/628/35 -f 116/877/36 117/629/36 324/631/36 -f 232/963/37 233/632/37 389/634/37 -f 62/1052/38 63/635/38 484/637/38 -f 90/1007/39 91/638/39 502/639/39 -f 135/720/40 136/640/40 420/642/40 -f 150/725/41 151/643/41 508/645/41 -f 270/778/42 271/646/42 436/648/42 -f 22/624/43 23/649/43 486/625/43 -f 105/881/44 106/651/44 535/653/44 -f 163/904/45 164/654/45 393/656/45 -f 124/1035/46 125/657/46 327/659/46 -f 235/1053/47 236/660/47 410/662/47 -f 158/780/24 159/663/24 514/665/24 -f 29/1050/47 30/666/47 408/668/47 -f 224/816/48 225/669/48 442/671/48 -f 74/1023/49 75/672/49 505/673/49 -f 191/615/50 192/674/50 543/616/50 -f 48/896/51 49/676/51 329/678/51 -f 187/938/12 188/679/12 455/681/12 -f 207/606/42 208/682/42 303/607/42 -f 197/961/16 198/684/16 333/686/16 -f 97/927/52 98/687/52 292/689/52 -f 13/1060/53 14/690/53 366/692/53 -f 40/912/50 41/693/50 337/695/50 -f 142/804/54 143/696/54 516/697/54 -f 215/765/55 216/698/55 382/700/55 -f 240/971/56 241/701/56 398/703/56 -f 85/908/57 86/704/57 274/444/57 -f 113/939/58 114/706/58 536/708/58 -f 179/1054/165 180/709/165 334/711/165 -f 56/921/60 57/712/60 429/714/60 -f 30/666/13 31/715/13 465/667/13 -f 168/974/90 169/717/90 276/719/90 -f 134/821/62 135/720/62 517/721/62 -f 5/1096/63 6/722/63 391/724/63 -f 149/1067/64 150/725/64 431/726/64 -f 271/737/65 272/727/65 532/729/65 -f 248/947/66 249/730/66 399/732/66 -f 66/1051/67 67/733/67 509/734/67 -f 199/863/51 200/735/51 432/736/51 -f 263/854/65 264/737/65 280/738/65 -f 121/945/68 122/739/68 537/741/68 -f 106/651/69 107/742/69 510/652/69 -f 64/935/70 65/744/70 342/746/70 -f 14/690/71 15/747/71 488/691/71 -f 227/1085/34 228/749/34 443/751/34 -f 93/1073/72 94/752/72 286/754/72 -f 214/589/73 215/755/73 544/590/73 -f 254/842/51 255/757/51 405/759/51 -f 237/944/25 238/760/25 350/762/25 -f 160/700/55 161/763/55 288/765/55 -f 169/717/48 170/766/48 277/718/48 -f 151/643/74 104/768/74 291/644/74 -f 24/1061/75 25/770/75 438/772/75 -f 6/722/76 7/773/76 499/723/76 -f 41/693/77 42/775/77 426/694/77 -f 262/1106/42 263/777/42 450/779/42 -f 157/1064/76 158/780/76 513/781/76 -f 251/1094/78 252/782/78 493/784/78 -f 77/1091/79 78/785/79 293/787/79 -f 269/612/65 270/788/65 440/613/65 -f 98/1063/80 99/790/80 515/792/80 -f 243/551/81 244/793/81 496/552/81 -f 80/910/82 81/795/82 460/797/82 -f 176/1040/83 177/798/83 299/800/83 -f 88/875/84 89/801/84 360/803/84 -f 141/1072/85 142/804/85 435/805/85 -f 32/1077/86 33/806/86 441/808/86 -f 69/1100/87 70/809/87 301/811/87 -f 33/806/88 34/812/88 414/807/88 -f 114/706/89 115/814/89 352/707/89 -f 223/926/61 224/816/61 356/817/61 -f 261/1107/91 207/818/91 304/820/91 -f 133/682/92 134/821/92 365/683/92 -f 184/1049/88 185/822/88 305/824/88 -f 161/763/93 162/825/93 289/764/93 -f 122/739/94 123/827/94 518/740/94 -f 49/676/18 50/829/18 424/677/18 -f 229/1009/95 230/831/95 372/833/95 -f 57/712/96 58/834/96 430/713/96 -f 42/775/66 43/836/66 308/776/66 -f 16/1092/97 17/838/97 447/840/97 -f 107/742/98 108/841/98 311/743/98 -f 253/1034/99 254/842/99 374/843/99 -f 144/618/100 145/844/100 313/619/100 -f 8/1099/73 9/846/73 448/848/73 -f 209/1097/101 210/849/101 474/851/101 -f 152/1001/42 153/647/42 317/852/42 -f 72/928/102 73/853/102 462/855/102 -f 99/790/103 100/856/103 319/791/103 -f 19/913/104 20/857/104 523/859/104 -f 245/1027/31 246/860/31 375/862/31 -f 198/1108/99 199/863/99 545/864/99 -f 177/798/37 178/865/37 300/799/37 -f 217/1102/105 218/867/105 520/869/105 -f 136/640/106 137/870/106 321/641/106 -f 185/822/56 186/872/56 306/823/56 -f 34/812/56 35/874/56 512/813/56 -f 87/965/107 88/875/107 316/876/107 -f 115/814/108 116/877/108 323/815/108 -f 27/933/109 28/878/109 295/880/109 -f 104/768/110 105/881/110 290/769/110 -f 255/757/18 256/882/18 298/758/18 -f 201/569/19 202/883/19 394/570/19 -f 170/766/104 171/885/104 453/767/104 -f 123/827/111 124/886/111 326/828/111 -f 50/829/19 51/888/19 439/830/19 -f 155/981/112 156/889/112 419/891/112 -f 58/834/113 59/892/113 387/835/113 -f 95/995/114 96/893/114 456/895/114 -f 47/990/99 48/896/99 296/897/99 -f 272/685/27 273/688/27 437/898/27 -f 220/969/71 221/583/71 330/900/71 -f 193/951/66 194/901/66 285/903/66 -f 162/825/105 163/904/105 458/826/105 -f 246/860/50 247/905/50 451/861/50 -f 147/975/115 148/907/115 428/909/115 -f 79/1022/116 80/910/116 459/911/116 -f 39/574/31 40/912/31 336/575/31 -f 18/964/48 19/913/48 355/914/48 -f 461/1109/91 206/820/91 317/915/91 -f 212/978/76 213/916/76 338/917/76 -f 11/956/105 12/918/105 524/920/105 -f 103/1065/117 56/921/117 388/922/117 -f 178/878/109 179/923/109 332/879/109 -f 204/1110/118 205/564/118 340/925/118 -f 222/584/97 223/926/97 546/585/97 -f 96/893/119 97/927/119 345/894/119 -f 71/1033/120 72/928/120 364/929/120 -f 139/993/121 140/930/121 471/932/121 -f 26/977/166 27/933/166 359/934/166 -f 63/635/122 64/935/122 344/636/122 -f 230/831/75 231/936/75 446/832/75 -f 186/872/11 187/938/11 464/873/11 -f 112/1057/123 113/939/123 527/940/123 -f 267/1062/65 268/941/65 363/943/65 -f 236/660/13 237/944/13 349/661/13 -f 120/870/124 121/945/124 530/946/124 -f 247/905/77 248/947/77 376/906/77 -f 109/907/125 110/948/125 413/950/125 -f 192/674/77 193/951/77 351/675/77 -f 238/760/86 239/952/86 282/761/86 -f 44/1090/126 45/954/126 409/955/126 -f 10/1006/93 11/956/93 369/957/93 -f 3/980/101 4/958/101 449/960/101 -f 196/1036/78 197/961/78 353/962/78 -f 231/936/83 232/963/83 501/937/83 -f 17/838/90 18/964/90 354/839/90 -f 86/704/127 87/965/127 275/705/127 -f 131/1005/128 132/966/128 473/968/128 -f 219/1015/53 220/969/53 370/970/53 -f 239/952/88 240/971/88 457/953/88 -f 101/609/129 102/972/129 416/610/129 -f 167/566/97 168/974/97 377/567/97 -f 146/1066/130 147/975/130 467/976/130 -f 25/770/83 26/977/83 358/771/83 -f 211/1030/63 212/978/63 392/979/63 -f 2/818/65 3/980/65 381/819/65 -f 154/1070/101 155/981/101 468/982/101 -f 281/1111/27 264/983/27 497/985/27 -f 172/580/34 173/986/34 309/581/34 -f 117/629/132 118/988/132 418/630/132 -f 266/788/42 267/990/42 362/789/42 -f 36/548/12 37/991/12 307/549/12 -f 138/1078/133 139/993/133 470/994/133 -f 94/752/134 95/995/134 287/753/134 -f 203/1112/27 204/996/27 378/998/27 -f 259/852/118 260/999/118 386/1001/118 -f 125/657/135 126/1002/135 421/658/135 -f 81/795/136 82/1004/136 396/796/136 -f 130/557/137 131/1005/137 472/558/137 -f 9/865/55 10/1006/55 368/866/55 -f 89/801/138 90/1007/138 525/802/138 -f 45/954/78 46/1008/78 475/613/78 -f 228/749/43 229/1009/43 371/750/43 -f 52/1113/27 53/1010/27 367/898/27 -f 55/1018/91 1/1012/91 526/1014/91 -f 218/867/45 219/1015/45 477/868/45 -f 252/782/16 253/1016/16 373/783/16 -f 60/594/139 61/985/139 278/595/139 -f 164/654/53 165/1019/53 504/655/53 -f 37/991/81 38/1021/81 478/992/81 -f 78/785/140 79/1022/140 294/786/140 -f 73/1032/141 74/1023/141 315/1024/141 -f 273/1114/91 262/1025/91 480/537/91 -f 244/793/163 245/1027/163 379/794/163 -f 188/679/81 189/1028/81 284/680/81 -f 210/849/112 211/1030/112 481/850/112 -f 1/600/42 2/1031/42 380/601/42 -f 70/809/142 71/1033/142 302/810/142 -f 233/659/109 234/1034/109 297/1035/109 -f 202/883/15 203/633/15 310/884/15 -f 195/1069/126 196/1036/126 335/1037/126 -f 173/986/43 174/1038/43 383/987/43 -f 175/1101/75 176/1040/75 542/1041/75 -f 20/857/22 21/1042/22 538/858/22 -f 84/545/167 85/1043/167 385/546/167 -f 180/709/47 181/1045/47 507/710/47 -f 53/727/118 54/1046/118 463/728/118 -f 258/996/27 259/1017/27 357/1048/27 -f 183/592/86 184/1049/86 422/593/86 -f 28/886/165 29/1050/165 539/887/165 -f 65/744/144 66/1051/144 328/745/144 -f 61/819/145 62/1052/145 483/915/145 -f 234/711/165 235/1053/165 485/1054/165 -f 225/669/104 226/1055/104 533/670/104 -f 111/1059/146 112/1057/146 519/1058/146 -f 110/948/147 111/1059/147 346/949/147 -f 12/918/45 13/1060/45 540/919/45 -f 23/649/95 24/1061/95 487/650/95 -f 265/792/65 266/1062/65 497/1063/65 -f 156/889/63 157/1064/63 528/890/63 -f 102/972/148 103/1065/148 452/973/148 -f 145/844/149 146/1066/149 314/845/149 -f 148/1115/150 149/1067/150 343/1068/150 -f 194/901/151 195/1069/151 423/902/151 -f 153/1116/65 154/1070/65 318/1071/65 -f 140/930/152 141/1072/152 529/931/152 -f 92/577/153 93/1073/153 395/578/153 -f 118/988/154 119/1074/154 469/989/154 -f 241/701/11 242/1076/11 534/702/11 -f 119/1074/155 120/870/155 522/1075/155 -f 31/715/25 32/1077/25 489/716/25 -f 137/870/156 138/1078/156 322/871/156 -f 127/1087/157 128/1079/157 445/1081/157 -f 268/1111/27 269/598/27 490/983/27 -f 159/663/73 160/1082/73 397/664/73 -f 128/1079/158 129/1084/158 320/1080/158 -f 226/1055/22 227/1085/22 491/1056/22 -f 165/1019/71 166/1086/71 400/1020/71 -f 126/1002/159 127/1087/159 361/1003/159 -f 249/730/151 250/1088/151 283/731/151 -f 43/836/151 44/1090/151 415/837/151 -f 76/603/160 77/1091/160 325/604/160 -f 15/747/23 16/1092/23 492/748/23 -f 132/966/161 133/1093/161 531/967/161 -f 250/1088/126 251/1094/126 411/1089/126 -f 189/1028/163 190/1095/163 402/1029/163 -f 4/958/112 5/1096/112 541/959/112 -f 208/924/65 209/1097/65 425/1098/65 -f 7/773/24 8/1099/24 494/774/24 -f 68/621/162 69/1100/162 404/622/162 -f 174/1038/95 175/1101/95 384/1039/95 -f 216/698/93 217/1102/93 427/699/93 diff --git a/src/main/resources/assets/hbm/models/missileBooster.obj b/src/main/resources/assets/hbm/models/missileBooster.obj deleted file mode 100644 index 1b2478e83..000000000 --- a/src/main/resources/assets/hbm/models/missileBooster.obj +++ /dev/null @@ -1,416 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'carrier_booster.blend' -# www.blender.org -o Cylinder -v 0.000000 1.000000 -0.500000 -v 0.000000 8.000000 -0.500000 -v 0.250000 1.000000 -0.433013 -v 0.250000 8.000000 -0.433013 -v 0.433013 1.000000 -0.250000 -v 0.433013 8.000000 -0.250000 -v 0.500000 1.000000 0.000000 -v 0.500000 8.000000 0.000000 -v 0.433013 1.000000 0.250000 -v 0.433013 8.000000 0.250000 -v 0.250000 1.000000 0.433013 -v 0.250000 8.000000 0.433013 -v 0.000000 1.000000 0.500000 -v 0.000000 8.000000 0.500000 -v -0.250000 1.000000 0.433013 -v -0.250000 8.000000 0.433013 -v -0.433013 1.000000 0.250000 -v -0.433013 8.000000 0.250000 -v -0.500000 1.000000 0.000000 -v -0.500000 8.000000 0.000000 -v -0.433013 1.000000 -0.250000 -v -0.433013 8.000000 -0.250000 -v -0.250000 1.000000 -0.433013 -v -0.250000 8.000000 -0.433013 -v 0.200001 8.500000 -0.346410 -v 0.000001 8.500000 -0.400000 -v 0.346411 8.500000 -0.200000 -v 0.400001 8.500000 0.000000 -v 0.346411 8.500000 0.200000 -v 0.200001 8.500000 0.346410 -v 0.000001 8.500000 0.400000 -v -0.199999 8.500000 0.346410 -v -0.346409 8.500000 0.200000 -v -0.399999 8.500000 0.000000 -v -0.346409 8.500000 -0.200000 -v -0.199999 8.500000 -0.346410 -v 0.037502 9.000000 -0.064952 -v 0.000002 9.000000 -0.075000 -v 0.064954 9.000000 -0.037500 -v 0.075002 9.000000 0.000000 -v 0.064953 9.000000 0.037500 -v 0.037502 9.000000 0.064952 -v 0.000002 9.000000 0.075000 -v -0.037498 9.000000 0.064952 -v -0.064950 9.000000 0.037500 -v -0.074998 9.000000 0.000000 -v -0.064950 9.000000 -0.037500 -v -0.037498 9.000000 -0.064952 -v -0.000000 1.000000 -0.375000 -v 0.187500 1.000000 -0.324760 -v 0.324760 1.000000 -0.187500 -v 0.375000 1.000000 0.000000 -v 0.324760 1.000000 0.187500 -v 0.187500 1.000000 0.324760 -v 0.000000 1.000000 0.375000 -v -0.187500 1.000000 0.324760 -v -0.324759 1.000000 0.187500 -v -0.375000 1.000000 0.000000 -v -0.324760 1.000000 -0.187500 -v -0.187500 1.000000 -0.324759 -v 0.000000 0.000000 -0.500000 -v 0.250000 0.000000 -0.433013 -v 0.433013 0.000000 -0.250000 -v 0.500000 0.000000 0.000000 -v 0.433013 0.000000 0.250000 -v 0.250000 0.000000 0.433013 -v 0.000000 0.000000 0.500000 -v -0.250000 0.000000 0.433013 -v -0.433012 0.000000 0.250000 -v -0.500000 0.000000 0.000000 -v -0.433013 0.000000 -0.250000 -v -0.250000 0.000000 -0.433013 -vt 0.291673 0.852188 -vt 0.261395 0.852188 -vt 0.261395 0.033298 -vt 0.231118 0.852188 -vt 0.231118 0.033298 -vt 0.200840 0.852188 -vt 0.200840 0.033298 -vt 0.170562 0.852188 -vt 0.170563 0.033298 -vt 0.140284 0.852188 -vt 0.140285 0.033298 -vt 0.110006 0.852188 -vt 0.110008 0.033298 -vt 0.079728 0.852188 -vt 0.079730 0.033298 -vt 0.049451 0.852188 -vt 0.049453 0.033298 -vt 0.019173 0.852188 -vt 0.019175 0.033297 -vt 0.382507 0.852188 -vt 0.352229 0.852188 -vt 0.352228 0.033298 -vt 0.321951 0.852188 -vt 0.349201 0.911762 -vt 0.291673 0.033298 -vt 0.321950 0.033298 -vt 0.053237 0.019173 -vt 0.197812 0.911762 -vt 0.187972 0.980827 -vt 0.183430 0.980827 -vt 0.258368 0.911762 -vt 0.379479 0.911762 -vt 0.046423 0.911762 -vt 0.022201 0.911762 -vt 0.076701 0.911762 -vt 0.052478 0.911762 -vt 0.106979 0.911762 -vt 0.082756 0.911762 -vt 0.137256 0.911762 -vt 0.113034 0.911762 -vt 0.167534 0.911762 -vt 0.143312 0.911762 -vt 0.173590 0.911762 -vt 0.318923 0.911762 -vt 0.288645 0.911762 -vt 0.228090 0.911762 -vt 0.726241 0.560416 -vt 0.740920 0.556483 -vt 0.736987 0.571161 -vt 0.339361 0.980827 -vt 0.334819 0.980827 -vt 0.264423 0.911762 -vt 0.278805 0.980827 -vt 0.066861 0.980827 -vt 0.157694 0.980827 -vt 0.153152 0.980827 -vt 0.309083 0.980827 -vt 0.304541 0.980827 -vt 0.248527 0.980827 -vt 0.243986 0.980827 -vt 0.036583 0.980827 -vt 0.032041 0.980827 -vt 0.127416 0.980827 -vt 0.218250 0.980827 -vt 0.213708 0.980827 -vt 0.369639 0.980827 -vt 0.365097 0.980827 -vt 0.097138 0.980827 -vt 0.092596 0.980827 -vt 0.643102 0.894316 -vt 0.613151 0.780289 -vt 0.642667 0.773541 -vt 0.083515 0.019173 -vt 0.106223 0.019173 -vt 0.113792 0.019173 -vt 0.136500 0.019173 -vt 0.144070 0.019173 -vt 0.166778 0.019173 -vt 0.174347 0.019173 -vt 0.197055 0.019173 -vt 0.295457 0.019173 -vt 0.265180 0.019173 -vt 0.287888 0.019173 -vt 0.204625 0.019173 -vt 0.227333 0.019173 -vt 0.325735 0.019173 -vt 0.348443 0.019173 -vt 0.234902 0.019173 -vt 0.257610 0.019173 -vt 0.382505 0.033297 -vt 0.356012 0.019173 -vt 0.022960 0.019173 -vt 0.797384 0.255928 -vt 0.684386 0.225651 -vt 0.725746 0.184290 -vt 0.710258 0.883441 -vt 0.702692 0.765789 -vt 0.732955 0.764817 -vt 0.822808 0.894316 -vt 0.852759 0.780289 -vt 0.881781 0.788917 -vt 0.778254 0.885625 -vt 0.793354 0.768701 -vt 0.823243 0.773541 -vt 0.621335 0.900787 -vt 0.584128 0.788917 -vt 0.687655 0.885625 -vt 0.672555 0.768701 -vt 0.800671 0.889255 -vt 0.755651 0.883441 -vt 0.763217 0.765789 -vt 0.600028 0.908641 -vt 0.555719 0.799390 -vt 0.665239 0.889255 -vt 0.732955 0.882712 -vt 0.844574 0.900787 -vt 0.910190 0.799390 -vt 0.324979 0.911762 -vt 0.075946 0.019173 -vt 0.234145 0.911762 -vt 0.355257 0.911762 -vt 0.294701 0.911762 -vt 0.203868 0.911762 -vt 0.732445 0.571161 -vt 0.728512 0.568891 -vt 0.726241 0.564957 -vt 0.728512 0.556483 -vt 0.732445 0.554212 -vt 0.736987 0.554212 -vt 0.743191 0.560416 -vt 0.743191 0.564957 -vt 0.740920 0.568891 -vt 0.274263 0.980827 -vt 0.062319 0.980827 -vt 0.122875 0.980827 -vt 0.318165 0.019173 -vt 0.378720 0.019173 -vt 0.045668 0.019173 -vt 0.756024 0.184290 -vt 0.782245 0.199429 -vt 0.797384 0.225651 -vt 0.782245 0.282150 -vt 0.756024 0.297288 -vt 0.725746 0.297288 -vt 0.699525 0.282150 -vt 0.684386 0.255928 -vt 0.699525 0.199429 -vt 0.865881 0.908641 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.694300 0.189700 -0.694300 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn 0.818100 0.531700 0.219200 -vn 0.694300 0.189700 -0.694300 -vn -0.948400 0.189700 -0.254100 -vn -0.948400 0.189700 0.254100 -vn -0.694300 0.189700 0.694300 -vn -0.254100 0.189700 0.948400 -vn 0.254100 0.189700 0.948400 -vn 0.694300 0.189700 0.694300 -vn 0.948400 0.189700 0.254100 -vn -0.254100 0.189700 -0.948400 -vn 0.254100 0.189700 -0.948400 -vn 0.948400 0.189700 -0.254100 -vn 0.000000 1.000000 -0.000000 -vn -0.598900 0.531700 -0.598900 -vn 0.219200 0.531700 -0.818100 -vn -0.598900 0.531700 0.598900 -vn 0.598900 0.531700 0.598900 -vn -0.219200 0.531700 -0.818100 -vn 0.598900 0.531700 -0.598900 -vn -0.818100 0.531700 0.219200 -vn 0.219200 0.531700 0.818100 -vn 0.818100 0.531700 -0.219200 -vn -0.818100 0.531700 -0.219200 -vn -0.219200 0.531700 0.818100 -vn -0.257000 0.119900 0.959000 -vn 0.959000 0.119900 0.257000 -vn -0.702000 0.119900 -0.702000 -vn 0.257000 0.119900 -0.959000 -vn -0.702000 0.119900 0.702000 -vn 0.702000 0.119900 0.702000 -vn -0.257000 0.119900 -0.959000 -vn 0.702000 0.119900 -0.702000 -vn -0.959000 0.119900 0.257000 -vn 0.257000 0.119900 0.959000 -vn 0.959000 0.119900 -0.257000 -vn -0.959000 0.119900 -0.257000 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000100 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 16/14/7 15/15/7 -f 16/14/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 20/20/10 22/21/10 21/22/10 -f 24/23/11 22/21/11 35/24/11 -f 24/23/12 2/1/12 1/25/12 -f 22/21/13 24/23/13 23/26/13 -f 15/15/14 17/17/14 57/27/14 -f 28/28/15 40/29/15 41/30/15 -f 6/4/16 4/2/16 25/31/16 -f 22/21/17 20/20/17 34/32/17 -f 18/16/18 33/33/18 34/34/18 -f 16/14/19 32/35/19 33/36/19 -f 14/12/20 31/37/20 32/38/20 -f 12/10/21 30/39/21 31/40/21 -f 10/8/22 29/41/22 30/42/22 -f 8/6/23 28/28/23 29/43/23 -f 2/1/24 24/23/24 36/44/24 -f 4/2/25 2/1/25 26/45/25 -f 8/6/26 6/4/26 27/46/26 -f 47/47/27 43/48/27 39/49/27 -f 35/24/28 47/50/28 48/51/28 -f 25/52/29 26/45/29 38/53/29 -f 33/36/30 32/35/30 44/54/30 -f 29/41/31 41/55/31 42/56/31 -f 36/44/32 48/57/32 38/58/32 -f 25/31/33 37/59/33 39/60/33 -f 33/33/34 45/61/34 46/62/34 -f 31/40/35 30/39/35 42/63/35 -f 27/46/36 39/64/36 40/65/36 -f 34/32/37 46/66/37 47/67/37 -f 31/37/38 43/68/38 44/69/38 -f 56/70/39 68/71/39 67/72/39 -f 15/15/14 56/73/14 55/74/14 -f 13/13/14 55/75/14 54/76/14 -f 11/11/14 54/77/14 53/78/14 -f 9/9/14 53/79/14 52/80/14 -f 23/26/14 1/25/14 49/81/14 -f 3/3/14 50/82/14 49/83/14 -f 7/7/14 52/84/14 51/85/14 -f 23/26/14 60/86/14 59/87/14 -f 5/5/14 51/88/14 50/89/14 -f 19/90/14 21/22/14 59/91/14 -f 17/17/14 19/19/14 58/92/14 -f 64/93/14 70/94/14 72/95/14 -f 53/96/40 65/97/40 64/98/40 -f 60/99/41 72/100/41 71/101/41 -f 50/102/42 62/103/42 61/104/42 -f 57/105/43 69/106/43 68/71/43 -f 54/107/44 66/108/44 65/97/44 -f 60/99/45 49/109/45 61/104/45 -f 50/102/46 51/110/46 63/111/46 -f 57/105/47 58/112/47 70/113/47 -f 54/107/48 55/114/48 67/72/48 -f 52/115/49 64/98/49 63/111/49 -f 59/116/50 71/101/50 70/117/50 -f 1/25/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/13/7 14/12/7 15/15/7 -f 15/15/8 16/14/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 19/90/10 20/20/10 21/22/10 -f 36/118/11 24/23/11 35/24/11 -f 23/26/12 24/23/12 1/25/12 -f 21/22/13 22/21/13 23/26/13 -f 56/119/14 15/15/14 57/27/14 -f 29/43/15 28/28/15 41/30/15 -f 27/120/16 6/4/16 25/31/16 -f 35/121/17 22/21/17 34/32/17 -f 20/18/18 18/16/18 34/34/18 -f 18/16/19 16/14/19 33/36/19 -f 16/14/20 14/12/20 32/38/20 -f 14/12/21 12/10/21 31/40/21 -f 12/10/22 10/8/22 30/42/22 -f 10/8/23 8/6/23 29/43/23 -f 26/122/24 2/1/24 36/44/24 -f 25/52/25 4/2/25 26/45/25 -f 28/123/26 8/6/26 27/46/26 -f 39/49/51 37/124/51 38/125/51 -f 38/125/51 48/126/51 47/47/51 -f 47/47/27 46/127/27 43/48/27 -f 45/128/52 44/129/52 43/48/52 -f 43/48/51 42/130/51 41/131/51 -f 41/131/27 40/132/27 43/48/27 -f 39/49/27 38/125/27 47/47/27 -f 46/127/27 45/128/27 43/48/27 -f 43/48/27 40/132/27 39/49/27 -f 36/118/28 35/24/28 48/51/28 -f 37/133/29 25/52/29 38/53/29 -f 45/134/30 33/36/30 44/54/30 -f 30/42/31 29/41/31 42/56/31 -f 26/122/32 36/44/32 38/58/32 -f 27/120/33 25/31/33 39/60/33 -f 34/34/34 33/33/34 46/62/34 -f 43/135/35 31/40/35 42/63/35 -f 28/123/36 27/46/36 40/65/36 -f 35/121/37 34/32/37 47/67/37 -f 32/38/38 31/37/38 44/69/38 -f 55/114/39 56/70/39 67/72/39 -f 13/13/14 15/15/14 55/74/14 -f 11/11/14 13/13/14 54/76/14 -f 9/9/14 11/11/14 53/78/14 -f 7/7/14 9/9/14 52/80/14 -f 60/136/14 23/26/14 49/81/14 -f 1/25/14 3/3/14 49/83/14 -f 5/5/14 7/7/14 51/85/14 -f 21/22/14 23/26/14 59/87/14 -f 3/3/14 5/5/14 50/89/14 -f 58/137/14 19/90/14 59/91/14 -f 57/138/14 17/17/14 58/92/14 -f 72/95/14 61/139/14 62/140/14 -f 62/140/14 63/141/14 64/93/14 -f 64/93/14 65/142/14 66/143/14 -f 66/143/14 67/144/14 68/145/14 -f 68/145/14 69/146/14 70/94/14 -f 70/94/14 71/147/14 72/95/14 -f 72/95/14 62/140/14 64/93/14 -f 64/93/14 66/143/14 68/145/14 -f 68/145/14 70/94/14 64/93/14 -f 52/115/40 53/96/40 64/98/40 -f 59/116/41 60/99/41 71/101/41 -f 49/109/42 50/102/42 61/104/42 -f 56/70/43 57/105/43 68/71/43 -f 53/96/44 54/107/44 65/97/44 -f 72/100/45 60/99/45 61/104/45 -f 62/103/46 50/102/46 63/111/46 -f 69/106/47 57/105/47 70/113/47 -f 66/108/48 54/107/48 67/72/48 -f 51/110/49 52/115/49 63/111/49 -f 58/148/50 59/116/50 70/117/50 diff --git a/src/main/resources/assets/hbm/models/missileCarrier.obj b/src/main/resources/assets/hbm/models/missileCarrier.obj deleted file mode 100644 index 5f3734ea0..000000000 --- a/src/main/resources/assets/hbm/models/missileCarrier.obj +++ /dev/null @@ -1,1148 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'carrier_main.blend' -# www.blender.org -o Cylinder -v 0.000000 1.500000 -0.750000 -v 0.000000 5.000000 -0.750000 -v 0.375000 1.500000 -0.649519 -v 0.375000 5.000000 -0.649519 -v 0.649519 1.500000 -0.375000 -v 0.649519 5.000000 -0.375000 -v 0.750000 1.500000 0.000000 -v 0.750000 5.000000 0.000000 -v 0.649519 1.500000 0.375000 -v 0.649519 5.000000 0.375000 -v 0.375000 1.500000 0.649519 -v 0.375000 5.000000 0.649519 -v 0.000000 1.500000 0.750000 -v 0.000000 5.000000 0.750000 -v -0.375000 1.500000 0.649519 -v -0.375000 5.000000 0.649519 -v -0.649519 1.500000 0.375000 -v -0.649519 5.000000 0.375000 -v -0.750000 1.500000 0.000000 -v -0.750000 5.000000 0.000000 -v -0.649519 1.500000 -0.375000 -v -0.649519 5.000000 -0.375000 -v -0.375000 1.500000 -0.649519 -v -0.375000 5.000000 -0.649519 -v -0.000000 1.250000 -0.562500 -v 0.281250 1.250000 -0.487139 -v 0.487139 1.250000 -0.281250 -v 0.562500 1.250000 0.000000 -v 0.487139 1.250000 0.281250 -v 0.281250 1.250000 0.487139 -v 0.000000 1.250000 0.562500 -v -0.281250 1.250000 0.487139 -v -0.487139 1.250000 0.281250 -v -0.562500 1.250000 0.000000 -v -0.487140 1.250000 -0.281250 -v -0.281250 1.250000 -0.487139 -v -0.000000 1.000000 -0.562500 -v 0.281250 1.000000 -0.487139 -v 0.487139 1.000000 -0.281250 -v 0.562500 1.000000 0.000000 -v 0.487139 1.000000 0.281250 -v 0.281250 1.000000 0.487139 -v -0.000000 1.000000 0.562500 -v -0.281250 1.000000 0.487139 -v -0.487139 1.000000 0.281250 -v -0.562500 1.000000 0.000000 -v -0.487140 1.000000 -0.281250 -v -0.281250 1.000000 -0.487139 -v -0.000000 0.750000 -0.262500 -v 0.131250 0.750000 -0.227332 -v 0.227332 0.750000 -0.131250 -v 0.262500 0.750000 0.000000 -v 0.227332 0.750000 0.131250 -v 0.131250 0.750000 0.227332 -v -0.000000 0.750000 0.262500 -v -0.131250 0.750000 0.227332 -v -0.227332 0.750000 0.131250 -v -0.262500 0.750000 0.000000 -v -0.227332 0.750000 -0.131250 -v -0.131250 0.750000 -0.227332 -v 0.000000 0.500000 -0.450000 -v 0.225000 0.500000 -0.389711 -v 0.389711 0.500000 -0.225000 -v 0.450000 0.500000 0.000000 -v 0.389711 0.500000 0.225000 -v 0.225000 0.500000 0.389711 -v 0.000000 0.500000 0.450000 -v -0.225000 0.500000 0.389712 -v -0.389711 0.500000 0.225000 -v -0.450000 0.500000 0.000000 -v -0.389712 0.500000 -0.225000 -v -0.225000 0.500000 -0.389711 -v -0.318750 0.000000 -0.552091 -v -0.552091 0.000000 -0.318750 -v -0.637500 0.000000 0.000000 -v -0.552091 0.000000 0.318750 -v -0.318750 0.000000 0.552091 -v 0.000000 0.000000 0.637500 -v 0.318750 0.000000 0.552091 -v 0.552091 0.000000 0.318750 -v 0.637500 0.000000 0.000000 -v 0.552091 0.000000 -0.318750 -v 0.318750 0.000000 -0.552091 -v 0.000000 0.000000 -0.637500 -v -0.270938 0.000000 -0.469277 -v 0.000000 0.000000 -0.541875 -v -0.469278 0.000000 -0.270937 -v -0.541875 0.000000 0.000000 -v -0.469277 0.000000 0.270938 -v -0.270937 0.000000 0.469278 -v 0.000000 0.000000 0.541875 -v 0.270938 0.000000 0.469278 -v 0.469278 0.000000 0.270938 -v 0.541875 0.000000 0.000000 -v 0.469278 0.000000 -0.270938 -v 0.270938 0.000000 -0.469278 -v -0.054187 0.750000 -0.093855 -v 0.000000 0.750000 -0.108375 -v -0.093855 0.750000 -0.054187 -v -0.108375 0.750000 0.000000 -v -0.093855 0.750000 0.054188 -v -0.054187 0.750000 0.093856 -v 0.000000 0.750000 0.108375 -v 0.054188 0.750000 0.093856 -v 0.093856 0.750000 0.054188 -v 0.108375 0.750000 0.000000 -v 0.093856 0.750000 -0.054187 -v 0.054188 0.750000 -0.093855 -v 0.375000 7.000000 -0.649519 -v 0.000000 7.000000 -0.750000 -v 0.649519 7.000000 -0.375000 -v 0.750000 7.000000 0.000000 -v 0.649519 7.000000 0.375000 -v 0.375000 7.000000 0.649519 -v 0.000000 7.000000 0.750000 -v -0.375000 7.000000 0.649519 -v -0.649519 7.000000 0.375000 -v -0.750000 7.000000 0.000000 -v -0.649519 7.000000 -0.375000 -v -0.375000 7.000000 -0.649519 -v 0.375000 10.500000 -0.649519 -v 0.000000 10.500000 -0.750000 -v 0.649519 10.500000 -0.375000 -v 0.750000 10.500000 0.000000 -v 0.649519 10.500000 0.375000 -v 0.375000 10.500000 0.649519 -v 0.000000 10.500000 0.750000 -v -0.374999 10.500000 0.649519 -v -0.649519 10.500000 0.375000 -v -0.750000 10.500000 0.000000 -v -0.649519 10.500000 -0.375000 -v -0.375000 10.500000 -0.649519 -v -0.000000 5.000000 -0.787500 -v 0.393750 5.000000 -0.681995 -v 0.681995 5.000000 -0.393750 -v 0.787500 5.000000 0.000000 -v 0.681995 5.000000 0.393750 -v 0.393750 5.000000 0.681995 -v 0.000000 5.000000 0.787500 -v -0.393750 5.000000 0.681995 -v -0.681995 5.000000 0.393750 -v -0.787500 5.000000 0.000000 -v -0.681995 5.000000 -0.393750 -v -0.393750 5.000000 -0.681995 -v 0.393750 7.000000 -0.681995 -v 0.000000 7.000000 -0.787500 -v 0.681995 7.000000 -0.393750 -v 0.787500 7.000000 0.000000 -v 0.681995 7.000000 0.393750 -v 0.393750 7.000000 0.681995 -v 0.000000 7.000000 0.787500 -v -0.393750 7.000000 0.681995 -v -0.681995 7.000000 0.393750 -v -0.787500 7.000000 0.000000 -v -0.681995 7.000000 -0.393750 -v -0.393750 7.000000 -0.681995 -v 0.562501 12.000000 -0.974279 -v 0.000001 12.000000 -1.125000 -v 0.974279 12.000000 -0.562500 -v 1.125000 12.000000 -0.000000 -v 0.974279 12.000000 0.562500 -v 0.562501 12.000000 0.974278 -v 0.000001 12.000000 1.125000 -v -0.562499 12.000000 0.974279 -v -0.974278 12.000000 0.562500 -v -1.125000 12.000000 0.000000 -v -0.974278 12.000000 -0.562499 -v -0.562500 12.000000 -0.974278 -v 0.562500 13.500000 -0.974279 -v 0.000000 13.500000 -1.125000 -v 0.974279 13.500000 -0.562500 -v 1.125000 13.500000 -0.000000 -v 0.974279 13.500000 0.562500 -v 0.562500 13.500000 0.974278 -v 0.000000 13.500000 1.125000 -v -0.562499 13.500000 0.974279 -v -0.974278 13.500000 0.562500 -v -1.125000 13.500000 0.000000 -v -0.974279 13.500000 -0.562499 -v -0.562500 13.500000 -0.974278 -v 0.140625 15.500000 -0.243570 -v 0.000000 15.500000 -0.281250 -v 0.243570 15.500000 -0.140625 -v 0.281250 15.500000 0.000000 -v 0.243570 15.500000 0.140625 -v 0.140625 15.500000 0.243570 -v 0.000000 15.500000 0.281250 -v -0.140625 15.500000 0.243570 -v -0.243569 15.500000 0.140625 -v -0.281250 15.500000 0.000000 -v -0.243569 15.500000 -0.140625 -v -0.140625 15.500000 -0.243569 -v 0.021094 15.750000 -0.036535 -v 0.000000 15.750000 -0.042187 -v 0.036536 15.750000 -0.021094 -v 0.042188 15.750000 0.000000 -v 0.036536 15.750000 0.021094 -v 0.021094 15.750000 0.036536 -v 0.000001 15.750000 0.042188 -v -0.021093 15.750000 0.036536 -v -0.036535 15.750000 0.021094 -v -0.042187 15.750000 0.000000 -v -0.036535 15.750000 -0.021094 -v -0.021093 15.750000 -0.036535 -vt 0.301507 0.312696 -vt 0.272488 0.312697 -vt 0.272481 0.051083 -vt 0.271037 0.312697 -vt 0.242019 0.312697 -vt 0.242011 0.051084 -vt 0.240568 0.312697 -vt 0.211549 0.312698 -vt 0.211542 0.051085 -vt 0.210098 0.312698 -vt 0.181079 0.312699 -vt 0.181072 0.051086 -vt 0.179628 0.312699 -vt 0.150609 0.312700 -vt 0.150602 0.051086 -vt 0.149158 0.312700 -vt 0.120140 0.312701 -vt 0.120133 0.051087 -vt 0.118689 0.312701 -vt 0.089670 0.312702 -vt 0.089662 0.051088 -vt 0.088219 0.312702 -vt 0.059200 0.312702 -vt 0.059193 0.051089 -vt 0.057749 0.312702 -vt 0.028730 0.312703 -vt 0.028723 0.051090 -vt 0.392917 0.312693 -vt 0.363898 0.312694 -vt 0.363890 0.051081 -vt 0.331977 0.312695 -vt 0.302958 0.312696 -vt 0.302951 0.051082 -vt 0.362447 0.312694 -vt 0.333428 0.312695 -vt 0.333420 0.051081 -vt 0.240560 0.051084 -vt 0.215168 0.028010 -vt 0.614773 0.847825 -vt 0.614773 0.866512 -vt 0.593009 0.866512 -vt 0.362439 0.051081 -vt 0.337047 0.028006 -vt 0.245638 0.028009 -vt 0.267402 0.028008 -vt 0.367517 0.028006 -vt 0.389281 0.028005 -vt 0.032349 0.028015 -vt 0.054113 0.028014 -vt 0.062820 0.028014 -vt 0.084584 0.028013 -vt 0.093289 0.028013 -vt 0.115053 0.028012 -vt 0.123759 0.028012 -vt 0.145523 0.028012 -vt 0.154229 0.028011 -vt 0.175993 0.028011 -vt 0.210091 0.051085 -vt 0.184699 0.028010 -vt 0.306577 0.028007 -vt 0.328341 0.028006 -vt 0.301500 0.051082 -vt 0.276108 0.028008 -vt 0.608970 0.895119 -vt 0.549481 0.847825 -vt 0.549481 0.866512 -vt 0.527717 0.866512 -vt 0.440661 0.847825 -vt 0.440661 0.866512 -vt 0.418896 0.866512 -vt 0.636537 0.847825 -vt 0.636537 0.866512 -vt 0.571245 0.847825 -vt 0.571245 0.866512 -vt 0.462425 0.847825 -vt 0.462425 0.866512 -vt 0.505953 0.847825 -vt 0.505953 0.866512 -vt 0.484189 0.866512 -vt 0.658302 0.847825 -vt 0.658302 0.866512 -vt 0.593009 0.847825 -vt 0.484189 0.847825 -vt 0.527717 0.847825 -vt 0.680066 0.847825 -vt 0.680066 0.866512 -vt 0.253796 0.824518 -vt 0.275183 0.833911 -vt 0.265791 0.848572 -vt 0.543677 0.895119 -vt 0.533521 0.895119 -vt 0.434857 0.895119 -vt 0.630734 0.895119 -vt 0.620577 0.895119 -vt 0.565441 0.895119 -vt 0.555285 0.895119 -vt 0.456621 0.895119 -vt 0.446464 0.895119 -vt 0.500149 0.895119 -vt 0.652498 0.895119 -vt 0.642341 0.895119 -vt 0.587206 0.895119 -vt 0.577049 0.895119 -vt 0.478385 0.895119 -vt 0.468228 0.895119 -vt 0.521913 0.895119 -vt 0.674262 0.895119 -vt 0.664105 0.895119 -vt 0.224264 0.879299 -vt 0.238474 0.916598 -vt 0.214722 0.923249 -vt 0.217381 0.856977 -vt 0.226504 0.852514 -vt 0.239903 0.871647 -vt 0.178528 0.861344 -vt 0.188643 0.862267 -vt 0.190158 0.885576 -vt 0.131998 0.833070 -vt 0.114525 0.848572 -vt 0.105133 0.833911 -vt 0.229094 0.850940 -vt 0.237259 0.844899 -vt 0.253900 0.861291 -vt 0.201788 0.861344 -vt 0.207497 0.883993 -vt 0.140795 0.842882 -vt 0.126416 0.861291 -vt 0.162935 0.856977 -vt 0.156052 0.879299 -vt 0.140413 0.871647 -vt 0.239521 0.842882 -vt 0.246458 0.835463 -vt 0.214549 0.858057 -vt 0.151222 0.850940 -vt 0.175547 0.860795 -vt 0.172819 0.883993 -vt 0.119685 0.905758 -vt 0.099857 0.891087 -vt 0.297304 0.873069 -vt 0.280459 0.891087 -vt 0.141842 0.916598 -vt 0.083012 0.873069 -vt 0.190158 0.925490 -vt 0.165594 0.923249 -vt 0.260631 0.905758 -vt 0.310610 0.852299 -vt 0.262003 0.912773 -vt 0.243170 0.921987 -vt 0.792469 0.894307 -vt 0.854840 0.876912 -vt 0.856480 0.880772 -vt 0.315425 0.857581 -vt 0.161951 0.929398 -vt 0.141761 0.923745 -vt 0.114092 0.910208 -vt 0.097238 0.897737 -vt 0.238554 0.923745 -vt 0.218365 0.929398 -vt 0.301084 0.879135 -vt 0.137146 0.921987 -vt 0.118313 0.912773 -vt 0.093550 0.894450 -vt 0.079232 0.879135 -vt 0.213507 0.930293 -vt 0.192628 0.932198 -vt 0.283078 0.897737 -vt 0.266224 0.910208 -vt 0.076200 0.875235 -vt 0.064891 0.857581 -vt 0.187688 0.932198 -vt 0.166809 0.930293 -vt 0.828610 0.623227 -vt 0.832242 0.609674 -vt 0.842163 0.619596 -vt 0.910617 0.942823 -vt 0.878470 0.886616 -vt 0.881809 0.884080 -vt 0.940197 0.913601 -vt 0.884386 0.880772 -vt 0.886026 0.876912 -vt 0.849644 0.950787 -vt 0.866275 0.888209 -vt 0.870433 0.888752 -vt 0.800670 0.913603 -vt 0.859056 0.884080 -vt 0.951365 0.873551 -vt 0.948397 0.894305 -vt 0.870433 0.953503 -vt 0.874591 0.888209 -vt 0.813551 0.930145 -vt 0.862396 0.886616 -vt 0.789500 0.873552 -vt 0.854246 0.872761 -vt 0.891223 0.950787 -vt 0.927315 0.930144 -vt 0.830249 0.942823 -vt 0.088223 0.467610 -vt 0.088231 0.729223 -vt 0.059212 0.729224 -vt 0.059205 0.467611 -vt 0.058479 0.464903 -vt 0.088949 0.464902 -vt 0.028735 0.467612 -vt 0.028009 0.464904 -vt 0.363902 0.467602 -vt 0.363177 0.464895 -vt 0.393646 0.464894 -vt 0.529458 0.028005 -vt 0.536713 0.143348 -vt 0.493184 0.143348 -vt 0.179632 0.467607 -vt 0.179640 0.729221 -vt 0.150621 0.729221 -vt 0.331981 0.467603 -vt 0.331988 0.729216 -vt 0.302969 0.729217 -vt 0.271042 0.467605 -vt 0.271049 0.729219 -vt 0.242030 0.729220 -vt 0.057754 0.467611 -vt 0.057762 0.729224 -vt 0.028743 0.729225 -vt 0.149163 0.467608 -vt 0.149170 0.729221 -vt 0.120151 0.729222 -vt 0.240572 0.467606 -vt 0.240579 0.729219 -vt 0.211560 0.729220 -vt 0.392921 0.467601 -vt 0.392928 0.729214 -vt 0.363909 0.729215 -vt 0.118693 0.467609 -vt 0.118700 0.729222 -vt 0.089681 0.729223 -vt 0.210102 0.467607 -vt 0.210109 0.729219 -vt 0.181090 0.729220 -vt 0.362451 0.467602 -vt 0.362459 0.729216 -vt 0.333440 0.729217 -vt 0.301511 0.467604 -vt 0.301519 0.729218 -vt 0.272500 0.729219 -vt 0.180354 0.315407 -vt 0.180358 0.464900 -vt 0.149888 0.464901 -vt 0.210823 0.315406 -vt 0.210828 0.464899 -vt 0.332703 0.315402 -vt 0.332707 0.464896 -vt 0.302237 0.464897 -vt 0.302233 0.315403 -vt 0.271767 0.464897 -vt 0.241293 0.315405 -vt 0.241297 0.464898 -vt 0.363172 0.315401 -vt 0.271763 0.315404 -vt 0.393642 0.315401 -vt 0.058475 0.315410 -vt 0.088944 0.315409 -vt 0.119414 0.315408 -vt 0.119418 0.464902 -vt 0.149884 0.315407 -vt 0.089674 0.467610 -vt 0.120144 0.467609 -vt 0.150614 0.467608 -vt 0.181083 0.467607 -vt 0.211553 0.467607 -vt 0.242023 0.467606 -vt 0.272493 0.467605 -vt 0.302962 0.467604 -vt 0.333432 0.467603 -vt 0.028005 0.315411 -vt 0.754354 0.143348 -vt 0.754354 0.255468 -vt 0.710826 0.255468 -vt 0.660042 0.028005 -vt 0.667297 0.143348 -vt 0.623769 0.143348 -vt 0.877684 0.028005 -vt 0.884939 0.143348 -vt 0.841410 0.143348 -vt 0.790627 0.028005 -vt 0.797882 0.143348 -vt 0.485930 0.028006 -vt 0.449656 0.143348 -vt 0.587495 0.028005 -vt 0.616514 0.028005 -vt 0.747099 0.028005 -vt 0.710826 0.143348 -vt 0.935722 0.028005 -vt 0.964740 0.028005 -vt 0.971995 0.143348 -vt 0.572986 0.028005 -vt 0.580241 0.143348 -vt 0.703571 0.028005 -vt 0.892193 0.028005 -vt 0.921212 0.028005 -vt 0.928467 0.143348 -vt 0.834155 0.028005 -vt 0.580241 0.255468 -vt 0.623769 0.255468 -vt 0.607446 0.416897 -vt 0.971995 0.255468 -vt 0.928467 0.255468 -vt 0.536713 0.255468 -vt 0.667297 0.255468 -vt 0.884939 0.255468 -vt 0.841410 0.255468 -vt 0.797882 0.255468 -vt 0.493185 0.255468 -vt 0.449656 0.255468 -vt 0.602821 0.442335 -vt 0.601189 0.442335 -vt 0.738030 0.416897 -vt 0.727149 0.416897 -vt 0.955672 0.416897 -vt 0.563918 0.416897 -vt 0.553036 0.416897 -vt 0.694502 0.416897 -vt 0.683621 0.416897 -vt 0.912144 0.416897 -vt 0.825087 0.416897 -vt 0.814205 0.416897 -vt 0.520390 0.416897 -vt 0.509508 0.416897 -vt 0.650974 0.416897 -vt 0.640092 0.416897 -vt 0.868616 0.416897 -vt 0.781559 0.416897 -vt 0.476861 0.416897 -vt 0.465980 0.416897 -vt 0.919680 0.621180 -vt 0.914404 0.619766 -vt 0.918266 0.615904 -vt 0.733406 0.442335 -vt 0.731774 0.442335 -vt 0.951047 0.442335 -vt 0.949415 0.442335 -vt 0.559293 0.442335 -vt 0.557661 0.442335 -vt 0.689878 0.442335 -vt 0.901262 0.416897 -vt 0.907519 0.442335 -vt 0.820462 0.442336 -vt 0.515765 0.442335 -vt 0.514133 0.442335 -vt 0.646349 0.442335 -vt 0.857733 0.416897 -vt 0.863991 0.442336 -vt 0.776934 0.442335 -vt 0.775302 0.442335 -vt 0.472237 0.442335 -vt 0.271030 0.051083 -vt 0.179621 0.051086 -vt 0.149151 0.051087 -vt 0.118681 0.051087 -vt 0.088212 0.051088 -vt 0.057741 0.051089 -vt 0.392909 0.051080 -vt 0.331969 0.051081 -vt 0.236932 0.028009 -vt 0.358811 0.028006 -vt 0.206463 0.028010 -vt 0.297872 0.028007 -vt 0.598813 0.895119 -vt 0.418896 0.847825 -vt 0.248318 0.833070 -vt 0.424700 0.895119 -vt 0.489993 0.895119 -vt 0.511757 0.895119 -vt 0.126520 0.824518 -vt 0.191673 0.862267 -vt 0.133858 0.835463 -vt 0.153812 0.852514 -vt 0.204769 0.860795 -vt 0.143057 0.844899 -vt 0.165767 0.858056 -vt 0.069706 0.852299 -vt 0.304116 0.875235 -vt 0.286766 0.894450 -vt 0.840066 0.623227 -vt 0.836435 0.625324 -vt 0.832242 0.625324 -vt 0.826513 0.619596 -vt 0.826513 0.615403 -vt 0.828610 0.611771 -vt 0.836435 0.609674 -vt 0.840066 0.611771 -vt 0.842163 0.615403 -vt 0.886619 0.872761 -vt 0.500439 0.028005 -vt 0.631024 0.028005 -vt 0.848665 0.028005 -vt 0.761608 0.028005 -vt 0.456911 0.028006 -vt 0.718080 0.028005 -vt 0.543967 0.028005 -vt 0.674552 0.028005 -vt 0.805137 0.028005 -vt 0.596564 0.416897 -vt 0.944790 0.416897 -vt 0.770677 0.416897 -vt 0.919680 0.616720 -vt 0.920496 0.618134 -vt 0.920496 0.619766 -vt 0.918266 0.621996 -vt 0.916634 0.621996 -vt 0.915220 0.621180 -vt 0.914404 0.618134 -vt 0.915220 0.616720 -vt 0.916634 0.615904 -vt 0.688245 0.442335 -vt 0.905886 0.442335 -vt 0.818830 0.442336 -vt 0.644717 0.442335 -vt 0.862359 0.442336 -vt 0.470604 0.442335 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.782200 -0.586700 -0.209600 -vn -0.572600 -0.586700 -0.572600 -vn 0.572600 -0.586700 -0.572600 -vn -0.782200 -0.586700 -0.209600 -vn -0.782200 -0.586700 0.209600 -vn -0.572600 -0.586700 0.572600 -vn -0.209600 -0.586700 0.782200 -vn 0.209600 -0.586700 0.782200 -vn 0.572600 -0.586700 0.572600 -vn 0.782200 -0.586700 0.209600 -vn -0.209600 -0.586700 -0.782200 -vn 0.209600 -0.586700 -0.782200 -vn 0.169100 -0.757200 0.631000 -vn -0.782200 0.586700 0.209600 -vn 0.631000 -0.757200 -0.169100 -vn -0.631000 -0.757200 -0.169100 -vn -0.169100 -0.757200 0.631000 -vn 0.631000 -0.757200 0.169100 -vn -0.461900 -0.757200 -0.461900 -vn 0.169100 -0.757200 -0.631000 -vn -0.461900 -0.757200 0.461900 -vn 0.461900 -0.757200 0.461900 -vn -0.169100 -0.757200 -0.631000 -vn 0.461900 -0.757200 -0.461900 -vn -0.631000 -0.757200 0.169100 -vn 0.664800 0.340600 0.664800 -vn 0.209600 0.586700 0.782200 -vn 0.782200 0.586700 -0.209600 -vn -0.782200 0.586700 -0.209600 -vn -0.209600 0.586700 0.782200 -vn 0.782200 0.586700 0.209600 -vn -0.572600 0.586700 -0.572600 -vn 0.209600 0.586700 -0.782200 -vn -0.572600 0.586700 0.572600 -vn 0.572600 0.586700 0.572600 -vn -0.209600 0.586700 -0.782200 -vn 0.572600 0.586700 -0.572600 -vn -0.243300 0.340600 -0.908200 -vn -0.664800 0.340600 0.664800 -vn 0.243300 0.340600 -0.908200 -vn -0.664800 0.340600 -0.664800 -vn 0.908200 0.340600 0.243300 -vn -0.243300 0.340600 0.908200 -vn -0.908200 0.340600 -0.243300 -vn 0.908200 0.340600 -0.243300 -vn 0.243300 0.340600 0.908200 -vn -0.908200 0.340600 0.243300 -vn 0.000000 -1.000000 0.000000 -vn 0.664800 0.340600 -0.664800 -vn 0.617400 -0.487500 -0.617400 -vn -0.226000 -0.487500 0.843400 -vn 0.617400 -0.487500 0.617400 -vn -0.843400 -0.487500 -0.226000 -vn 0.226000 -0.487500 -0.843400 -vn 0.843400 -0.487500 0.226000 -vn -0.843400 -0.487500 0.226000 -vn -0.226000 -0.487500 -0.843400 -vn 0.843400 -0.487500 -0.226000 -vn -0.617400 -0.487500 0.617400 -vn 0.226000 -0.487500 0.843400 -vn -0.617400 -0.487500 -0.617400 -vn 0.000000 1.000000 0.000000 -vn -0.687300 -0.234700 0.687400 -vn 0.687400 -0.234700 0.687300 -vn -0.251600 -0.234700 -0.938900 -vn 0.687400 -0.234700 -0.687300 -vn -0.938900 -0.234700 0.251600 -vn 0.251600 -0.234700 0.938900 -vn 0.938900 -0.234700 -0.251600 -vn -0.938900 -0.234700 -0.251600 -vn -0.251600 -0.234700 0.938900 -vn 0.938900 -0.234700 0.251600 -vn -0.687300 -0.234700 -0.687400 -vn 0.251600 -0.234700 -0.938900 -vn 0.239700 0.377400 0.894500 -vn 0.190100 0.678500 0.709600 -vn 0.894500 0.377400 -0.239700 -vn -0.894500 0.377400 -0.239700 -vn -0.239700 0.377400 0.894500 -vn 0.894500 0.377400 0.239700 -vn -0.654800 0.377400 -0.654800 -vn 0.239700 0.377400 -0.894500 -vn -0.654800 0.377400 0.654800 -vn 0.654800 0.377400 0.654800 -vn -0.239700 0.377400 -0.894500 -vn 0.654800 0.377400 -0.654800 -vn -0.894500 0.377400 0.239700 -vn 0.709600 0.678500 -0.190100 -vn -0.709600 0.678500 -0.190100 -vn -0.190100 0.678500 0.709600 -vn 0.709600 0.678500 0.190100 -vn -0.519400 0.678500 -0.519400 -vn 0.190100 0.678500 -0.709600 -vn -0.519400 0.678500 0.519400 -vn 0.519400 0.678500 0.519400 -vn -0.190100 0.678500 -0.709600 -vn 0.519400 0.678500 -0.519400 -vn -0.709600 0.678500 0.190100 -vn -0.687400 -0.234700 0.687300 -vn 0.687300 -0.234700 0.687300 -vn 0.687300 -0.234700 -0.687400 -vn -0.687400 -0.234700 -0.687300 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 0.000200 -vn 0.000000 1.000000 -0.000200 -vn 0.000000 1.000000 -0.000100 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 14/19/7 16/20/7 15/21/7 -f 16/22/8 18/23/8 17/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 24/31/11 2/32/11 1/33/11 -f 22/34/12 24/35/12 23/36/12 -f 5/37/13 7/9/13 28/38/13 -f 31/39/6 43/40/6 42/41/6 -f 21/42/14 23/36/14 36/43/14 -f 5/6/15 27/44/15 26/45/15 -f 21/30/16 35/46/16 34/47/16 -f 19/27/17 34/48/17 33/49/17 -f 17/24/18 33/50/18 32/51/18 -f 15/21/19 32/52/19 31/53/19 -f 13/18/20 31/54/20 30/55/20 -f 11/15/21 30/56/21 29/57/21 -f 7/58/22 9/12/22 29/59/22 -f 1/33/23 25/60/23 36/61/23 -f 1/62/24 3/3/24 26/63/24 -f 42/41/25 43/40/25 55/64/25 -f 28/65/3 40/66/3 39/67/3 -f 35/68/10 47/69/10 46/70/10 -f 32/71/7 44/72/7 43/40/7 -f 29/73/4 41/74/4 40/66/4 -f 35/68/12 36/75/12 48/76/12 -f 26/77/1 38/78/1 37/79/1 -f 33/80/8 45/81/8 44/72/8 -f 30/82/5 42/41/5 41/74/5 -f 36/75/11 25/83/11 37/79/11 -f 26/77/2 27/84/2 39/67/2 -f 34/85/9 46/86/9 45/81/9 -f 58/87/26 70/88/26 69/89/26 -f 40/66/27 52/90/27 51/91/27 -f 46/70/28 47/69/28 59/92/28 -f 44/72/29 56/93/29 55/94/29 -f 41/74/30 53/95/30 52/96/30 -f 48/76/31 60/97/31 59/98/31 -f 37/79/32 38/78/32 50/99/32 -f 45/81/33 57/100/33 56/101/33 -f 42/41/34 54/102/34 53/103/34 -f 37/79/35 49/104/35 60/105/35 -f 38/78/36 39/67/36 51/106/36 -f 46/86/37 58/107/37 57/108/37 -f 66/109/38 79/110/38 80/111/38 -f 54/112/39 55/113/39 67/114/39 -f 51/115/40 52/116/40 64/117/40 -f 59/118/41 71/119/41 70/120/41 -f 55/121/42 56/122/42 68/123/42 -f 53/124/43 65/125/43 64/117/43 -f 60/126/44 72/127/44 71/119/44 -f 50/128/45 62/129/45 61/130/45 -f 56/131/46 57/132/46 69/89/46 -f 54/133/47 66/109/47 65/125/47 -f 49/134/48 61/130/48 72/127/48 -f 51/135/49 63/136/49 62/129/49 -f 61/130/50 84/137/50 73/138/50 -f 69/89/51 76/139/51 77/140/51 -f 62/129/52 83/141/52 84/137/52 -f 72/127/53 73/138/53 74/142/53 -f 64/117/54 65/125/54 80/111/54 -f 67/114/55 68/123/55 77/140/55 -f 70/120/56 71/119/56 74/142/56 -f 64/117/57 81/143/57 82/144/57 -f 66/109/58 67/114/58 78/145/58 -f 69/89/59 70/88/59 75/146/59 -f 78/145/60 91/147/60 92/148/60 -f 63/136/61 82/144/61 83/141/61 -f 89/149/62 101/150/62 102/151/62 -f 76/139/60 75/146/60 88/152/60 -f 82/144/60 95/153/60 96/154/60 -f 84/137/60 86/155/60 85/156/60 -f 79/110/60 92/157/60 93/158/60 -f 77/140/60 76/139/60 89/159/60 -f 83/141/60 96/160/60 86/161/60 -f 73/138/60 85/162/60 87/163/60 -f 80/111/60 93/164/60 94/165/60 -f 77/140/60 90/166/60 91/167/60 -f 74/142/60 87/168/60 88/169/60 -f 81/143/60 94/170/60 95/171/60 -f 106/172/60 102/173/60 97/174/60 -f 96/175/63 108/176/63 98/177/63 -f 85/178/64 97/179/64 99/180/64 -f 93/181/65 105/182/65 106/183/65 -f 90/184/66 102/151/66 103/185/66 -f 88/186/67 87/187/67 99/180/67 -f 94/188/68 106/183/68 107/189/68 -f 91/190/69 103/185/69 104/191/69 -f 89/149/70 88/192/70 100/193/70 -f 95/194/71 107/189/71 108/176/71 -f 86/195/72 98/177/72 97/179/72 -f 92/196/73 104/191/73 105/182/73 -f 116/197/8 128/198/8 129/199/8 -f 117/200/74 153/201/74 152/202/74 -f 118/203/74 154/204/74 153/201/74 -f 119/205/74 155/206/74 154/207/74 -f 128/208/75 164/209/75 165/210/75 -f 113/211/5 125/212/5 126/213/5 -f 120/214/11 132/215/11 122/216/11 -f 109/217/2 121/218/2 123/219/2 -f 117/220/9 129/221/9 130/222/9 -f 114/223/6 126/224/6 127/225/6 -f 111/226/3 123/227/3 124/228/3 -f 118/229/10 130/230/10 131/231/10 -f 115/232/7 127/233/7 128/234/7 -f 112/235/4 124/236/4 125/237/4 -f 119/238/12 131/239/12 132/240/12 -f 110/241/1 122/242/1 121/243/1 -f 137/244/5 149/245/5 150/246/5 -f 136/247/4 148/248/4 149/245/4 -f 144/249/11 156/250/11 146/251/11 -f 133/252/1 146/251/1 145/253/1 -f 135/254/3 147/255/3 148/248/3 -f 143/256/12 155/206/12 156/250/12 -f 134/257/2 145/253/2 147/255/2 -f 142/258/10 154/207/10 155/206/10 -f 141/259/9 153/201/9 154/204/9 -f 140/260/8 152/202/8 153/201/8 -f 139/261/7 151/262/7 152/202/7 -f 138/263/6 150/246/6 151/262/6 -f 116/264/74 152/202/74 151/262/74 -f 115/265/74 151/262/74 150/246/74 -f 114/266/74 150/246/74 149/245/74 -f 112/235/74 113/267/74 149/245/74 -f 112/268/74 148/248/74 147/255/74 -f 111/269/74 147/255/74 145/253/74 -f 109/270/74 145/253/74 146/251/74 -f 120/214/74 110/271/74 146/251/74 -f 120/272/74 156/250/74 155/206/74 -f 143/256/60 144/249/60 24/35/60 -f 144/249/60 133/252/60 2/32/60 -f 133/252/60 134/257/60 4/2/60 -f 134/257/60 135/254/60 6/5/60 -f 135/254/60 136/247/60 8/8/60 -f 136/247/60 137/244/60 10/11/60 -f 137/244/60 138/263/60 12/14/60 -f 138/263/60 139/261/60 14/17/60 -f 139/261/60 140/260/60 16/20/60 -f 140/260/60 141/259/60 18/23/60 -f 141/259/60 142/273/60 20/26/60 -f 142/258/60 143/256/60 22/29/60 -f 159/274/3 171/275/3 172/276/3 -f 125/277/76 161/278/76 162/279/76 -f 132/280/77 168/281/77 158/282/77 -f 121/283/78 157/284/78 159/274/78 -f 129/285/79 165/210/79 166/286/79 -f 127/287/80 126/288/80 162/279/80 -f 123/289/81 159/274/81 160/290/81 -f 131/291/82 130/292/82 166/293/82 -f 127/294/83 163/295/83 164/209/83 -f 124/296/84 160/290/84 161/278/84 -f 132/297/85 131/298/85 167/299/85 -f 122/300/86 158/282/86 157/284/86 -f 175/301/87 174/302/87 186/303/87 -f 166/293/10 178/304/10 179/305/10 -f 163/295/7 175/301/7 176/306/7 -f 160/290/4 172/276/4 173/307/4 -f 167/299/12 179/305/12 180/308/12 -f 158/282/1 170/309/1 169/310/1 -f 164/209/8 176/306/8 177/311/8 -f 161/278/5 173/307/5 174/302/5 -f 168/281/11 180/308/11 170/309/11 -f 157/284/2 169/310/2 171/275/2 -f 165/210/9 177/311/9 178/312/9 -f 162/279/6 174/302/6 175/301/6 -f 186/303/88 198/313/88 199/314/88 -f 171/275/89 183/315/89 184/316/89 -f 179/305/90 178/304/90 190/317/90 -f 175/301/91 187/318/91 188/319/91 -f 172/276/92 184/320/92 185/321/92 -f 180/308/93 179/305/93 191/322/93 -f 170/309/94 182/323/94 181/324/94 -f 176/306/95 188/325/95 189/326/95 -f 173/307/96 185/327/96 186/328/96 -f 170/309/97 180/308/97 192/329/97 -f 171/275/98 169/310/98 181/330/98 -f 177/311/99 189/331/99 190/332/99 -f 203/333/74 199/334/74 195/335/74 -f 183/315/100 195/336/100 196/337/100 -f 190/317/101 202/338/101 203/339/101 -f 187/318/102 199/340/102 200/341/102 -f 185/321/103 184/320/103 196/342/103 -f 192/343/104 191/322/104 203/344/104 -f 181/324/105 182/323/105 194/345/105 -f 188/325/106 200/346/106 201/347/106 -f 186/328/107 185/327/107 197/348/107 -f 182/349/108 192/329/108 204/350/108 -f 181/330/109 193/351/109 195/352/109 -f 190/332/110 189/331/110 201/353/110 -f 1/62/1 2/1/1 3/3/1 -f 3/354/2 4/4/2 5/6/2 -f 5/37/3 6/7/3 7/9/3 -f 7/58/4 8/10/4 9/12/4 -f 9/355/5 10/13/5 11/15/5 -f 11/356/6 12/16/6 13/18/6 -f 13/357/7 14/19/7 15/21/7 -f 15/358/8 16/22/8 17/24/8 -f 17/359/9 18/25/9 19/27/9 -f 19/360/10 20/28/10 21/30/10 -f 23/361/11 24/31/11 1/33/11 -f 21/42/12 22/34/12 23/36/12 -f 27/362/13 5/37/13 28/38/13 -f 30/82/6 31/39/6 42/41/6 -f 35/363/14 21/42/14 36/43/14 -f 3/354/15 5/6/15 26/45/15 -f 19/360/16 21/30/16 34/47/16 -f 17/359/17 19/27/17 33/49/17 -f 15/358/18 17/24/18 32/51/18 -f 13/357/19 15/21/19 31/53/19 -f 11/356/20 13/18/20 30/55/20 -f 9/355/21 11/15/21 29/57/21 -f 28/364/22 7/58/22 29/59/22 -f 23/361/23 1/33/23 36/61/23 -f 25/365/24 1/62/24 26/63/24 -f 54/366/25 42/41/25 55/64/25 -f 27/84/3 28/65/3 39/67/3 -f 34/367/10 35/68/10 46/70/10 -f 31/39/7 32/71/7 43/40/7 -f 28/65/4 29/73/4 40/66/4 -f 47/69/12 35/68/12 48/76/12 -f 25/83/1 26/77/1 37/79/1 -f 32/71/8 33/80/8 44/72/8 -f 29/73/5 30/82/5 41/74/5 -f 48/76/11 36/75/11 37/79/11 -f 38/78/2 26/77/2 39/67/2 -f 33/80/9 34/85/9 45/81/9 -f 57/368/26 58/87/26 69/89/26 -f 39/67/27 40/66/27 51/91/27 -f 58/369/28 46/70/28 59/92/28 -f 43/40/29 44/72/29 55/94/29 -f 40/66/30 41/74/30 52/96/30 -f 47/69/31 48/76/31 59/98/31 -f 49/370/32 37/79/32 50/99/32 -f 44/72/33 45/81/33 56/101/33 -f 41/74/34 42/41/34 53/103/34 -f 48/76/35 37/79/35 60/105/35 -f 50/371/36 38/78/36 51/106/36 -f 45/81/37 46/86/37 57/108/37 -f 65/125/38 66/109/38 80/111/38 -f 66/109/39 54/112/39 67/114/39 -f 63/136/40 51/115/40 64/117/40 -f 58/372/41 59/118/41 70/120/41 -f 67/114/42 55/121/42 68/123/42 -f 52/373/43 53/124/43 64/117/43 -f 59/374/44 60/126/44 71/119/44 -f 49/375/45 50/128/45 61/130/45 -f 68/123/46 56/131/46 69/89/46 -f 53/376/47 54/133/47 65/125/47 -f 60/377/48 49/134/48 72/127/48 -f 50/378/49 51/135/49 62/129/49 -f 72/127/50 61/130/50 73/138/50 -f 68/123/51 69/89/51 77/140/51 -f 61/130/52 62/129/52 84/137/52 -f 71/119/53 72/127/53 74/142/53 -f 81/143/54 64/117/54 80/111/54 -f 78/145/55 67/114/55 77/140/55 -f 75/379/56 70/120/56 74/142/56 -f 63/136/57 64/117/57 82/144/57 -f 79/110/58 66/109/58 78/145/58 -f 76/139/59 69/89/59 75/146/59 -f 79/110/60 78/145/60 92/148/60 -f 62/129/61 63/136/61 83/141/61 -f 90/184/62 89/149/62 102/151/62 -f 89/380/60 76/139/60 88/152/60 -f 83/141/60 82/144/60 96/154/60 -f 73/138/60 84/137/60 85/156/60 -f 80/111/60 79/110/60 93/158/60 -f 90/381/60 77/140/60 89/159/60 -f 84/137/60 83/141/60 86/161/60 -f 74/142/60 73/138/60 87/163/60 -f 81/143/60 80/111/60 94/165/60 -f 78/145/60 77/140/60 91/167/60 -f 75/379/60 74/142/60 88/169/60 -f 82/144/60 81/143/60 95/171/60 -f 97/174/60 98/382/60 108/383/60 -f 108/383/60 107/384/60 106/172/60 -f 106/172/60 105/385/60 104/386/60 -f 104/386/60 103/387/60 102/173/60 -f 102/173/60 101/388/60 97/174/60 -f 100/389/60 99/390/60 97/174/60 -f 97/174/60 108/383/60 106/172/60 -f 106/172/60 104/386/60 102/173/60 -f 101/388/60 100/389/60 97/174/60 -f 86/195/63 96/175/63 98/177/63 -f 87/187/64 85/178/64 99/180/64 -f 94/188/65 93/181/65 106/183/65 -f 91/190/66 90/184/66 103/185/66 -f 100/391/67 88/186/67 99/180/67 -f 95/194/68 94/188/68 107/189/68 -f 92/196/69 91/190/69 104/191/69 -f 101/150/70 89/149/70 100/193/70 -f 96/175/71 95/194/71 108/176/71 -f 85/178/72 86/195/72 97/179/72 -f 93/181/73 92/196/73 105/182/73 -f 117/200/8 116/197/8 129/199/8 -f 116/197/74 117/200/74 152/202/74 -f 117/220/74 118/203/74 153/201/74 -f 118/229/74 119/205/74 154/207/74 -f 129/392/111 128/208/111 165/210/111 -f 114/266/5 113/211/5 126/213/5 -f 110/271/11 120/214/11 122/216/11 -f 111/269/2 109/217/2 123/219/2 -f 118/203/9 117/220/9 130/222/9 -f 115/265/6 114/223/6 127/225/6 -f 112/268/3 111/226/3 124/228/3 -f 119/205/10 118/229/10 131/231/10 -f 116/264/7 115/232/7 128/234/7 -f 113/267/4 112/235/4 125/237/4 -f 120/272/12 119/238/12 132/240/12 -f 109/270/1 110/241/1 121/243/1 -f 138/263/5 137/244/5 150/246/5 -f 137/244/4 136/247/4 149/245/4 -f 133/252/11 144/249/11 146/251/11 -f 134/257/1 133/252/1 145/253/1 -f 136/247/3 135/254/3 148/248/3 -f 144/249/12 143/256/12 156/250/12 -f 135/254/2 134/257/2 147/255/2 -f 143/256/10 142/258/10 155/206/10 -f 142/273/9 141/259/9 154/204/9 -f 141/259/8 140/260/8 153/201/8 -f 140/260/7 139/261/7 152/202/7 -f 139/261/6 138/263/6 151/262/6 -f 115/232/74 116/264/74 151/262/74 -f 114/223/74 115/265/74 150/246/74 -f 113/211/74 114/266/74 149/245/74 -f 148/248/74 112/235/74 149/245/74 -f 111/226/74 112/268/74 147/255/74 -f 109/217/74 111/269/74 145/253/74 -f 110/241/74 109/270/74 146/251/74 -f 156/250/74 120/214/74 146/251/74 -f 119/238/74 120/272/74 155/206/74 -f 22/34/60 143/256/60 24/35/60 -f 24/31/60 144/249/60 2/32/60 -f 2/1/60 133/252/60 4/2/60 -f 4/4/60 134/257/60 6/5/60 -f 6/7/60 135/254/60 8/8/60 -f 8/10/60 136/247/60 10/11/60 -f 10/13/60 137/244/60 12/14/60 -f 12/16/60 138/263/60 14/17/60 -f 14/19/60 139/261/60 16/20/60 -f 16/22/60 140/260/60 18/23/60 -f 18/25/60 141/259/60 20/26/60 -f 20/28/60 142/258/60 22/29/60 -f 160/290/3 159/274/3 172/276/3 -f 126/393/112 125/277/112 162/279/112 -f 122/394/77 132/280/77 158/282/77 -f 123/395/113 121/283/113 159/274/113 -f 130/396/79 129/285/79 166/286/79 -f 163/295/80 127/287/80 162/279/80 -f 124/397/81 123/289/81 160/290/81 -f 167/299/82 131/291/82 166/293/82 -f 128/398/83 127/294/83 164/209/83 -f 125/399/84 124/296/84 161/278/84 -f 168/281/114 132/297/114 167/299/114 -f 121/400/86 122/300/86 157/284/86 -f 187/401/87 175/301/87 186/303/87 -f 167/299/10 166/293/10 179/305/10 -f 164/209/7 163/295/7 176/306/7 -f 161/278/4 160/290/4 173/307/4 -f 168/281/12 167/299/12 180/308/12 -f 157/284/1 158/282/1 169/310/1 -f 165/210/8 164/209/8 177/311/8 -f 162/279/5 161/278/5 174/302/5 -f 158/282/11 168/281/11 170/309/11 -f 159/274/2 157/284/2 171/275/2 -f 166/286/9 165/210/9 178/312/9 -f 163/295/6 162/279/6 175/301/6 -f 187/401/88 186/303/88 199/314/88 -f 172/276/89 171/275/89 184/316/89 -f 191/402/90 179/305/90 190/317/90 -f 176/306/91 175/301/91 188/319/91 -f 173/307/92 172/276/92 185/321/92 -f 192/343/93 180/308/93 191/322/93 -f 169/310/94 170/309/94 181/324/94 -f 177/311/95 176/306/95 189/326/95 -f 174/302/96 173/307/96 186/328/96 -f 182/349/97 170/309/97 192/329/97 -f 183/403/98 171/275/98 181/330/98 -f 178/312/99 177/311/99 190/332/99 -f 195/335/115 193/404/115 203/333/115 -f 194/405/116 204/406/116 203/333/116 -f 203/333/74 202/407/74 201/408/74 -f 201/408/117 200/409/117 199/334/117 -f 199/334/118 198/410/118 197/411/118 -f 197/411/74 196/412/74 199/334/74 -f 193/404/117 194/405/117 203/333/117 -f 203/333/74 201/408/74 199/334/74 -f 199/334/74 196/412/74 195/335/74 -f 184/316/100 183/315/100 196/337/100 -f 191/402/101 190/317/101 203/339/101 -f 188/319/102 187/318/102 200/341/102 -f 197/413/103 185/321/103 196/342/103 -f 204/414/104 192/343/104 203/344/104 -f 193/415/105 181/324/105 194/345/105 -f 189/326/106 188/325/106 201/347/106 -f 198/416/107 186/328/107 197/348/107 -f 194/417/108 182/349/108 204/350/108 -f 183/403/109 181/330/109 195/352/109 -f 202/418/110 190/332/110 201/353/110 diff --git a/src/main/resources/assets/hbm/models/radar_head.obj b/src/main/resources/assets/hbm/models/radar_head.obj deleted file mode 100644 index 346cfe68a..000000000 --- a/src/main/resources/assets/hbm/models/radar_head.obj +++ /dev/null @@ -1,404 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'radar_head.blend' -# www.blender.org -o Torus -v 0.578906 1.584721 -0.000000 -v 0.601365 1.806898 -0.000000 -v 0.546068 1.962747 -0.000000 -v 0.361454 1.273760 -0.000000 -v 0.487268 1.381080 -0.000000 -v 0.548050 1.592989 -0.242643 -v 0.571688 1.814850 -0.233375 -v 0.519476 1.969872 -0.209110 -v 0.334863 1.280885 -0.209110 -v 0.457591 1.389032 -0.233375 -v 0.457584 1.617229 -0.468750 -v 0.484678 1.838164 -0.450845 -v 0.441513 1.990763 -0.403970 -v 0.256899 1.301775 -0.403970 -v 0.370581 1.412347 -0.450845 -v 0.313675 1.655789 -0.662913 -v 0.346265 1.875252 -0.637592 -v 0.317491 2.023994 -0.571300 -v 0.132877 1.335007 -0.571300 -v 0.232168 1.449434 -0.637592 -v 0.126128 1.706043 -0.811899 -v 0.165882 1.923585 -0.780887 -v 0.155863 2.067302 -0.699697 -v -0.028751 1.378315 -0.699697 -v 0.051785 1.497768 -0.780887 -v 0.126128 1.706043 0.811899 -v 0.165882 1.923585 0.780887 -v 0.155863 2.067302 0.699697 -v -0.028751 1.378315 0.699697 -v 0.051785 1.497768 0.780887 -v 0.313674 1.655790 0.662913 -v 0.346265 1.875252 0.637592 -v 0.317491 2.023994 0.571301 -v 0.132877 1.335007 0.571301 -v 0.232168 1.449434 0.637592 -v 0.457584 1.617229 0.468750 -v 0.484678 1.838164 0.450845 -v 0.441513 1.990763 0.403970 -v 0.256899 1.301775 0.403970 -v 0.370581 1.412347 0.450845 -v 0.548050 1.592989 0.242643 -v 0.571688 1.814850 0.233374 -v 0.519476 1.969872 0.209110 -v 0.334863 1.280885 0.209110 -v 0.457591 1.389032 0.233374 -v -0.100000 1.000000 0.100000 -v -0.100000 1.200000 0.100000 -v -0.100000 1.000000 -0.100000 -v -0.100000 1.200000 -0.100000 -v 0.100000 1.000000 0.100000 -v 0.100000 1.200000 0.100000 -v 0.100000 1.000000 -0.100000 -v 0.100000 1.200000 -0.100000 -v -0.500000 1.550000 0.050000 -v -0.500000 1.700000 0.050000 -v -0.500000 1.700000 -0.050000 -v -0.500000 1.550000 -0.050000 -v -0.450000 1.518750 -0.025000 -v -0.450000 1.881250 -0.025000 -v -0.450000 1.518750 0.025000 -v -0.450000 1.881250 0.025000 -v -0.467678 1.518750 0.017678 -v -0.467678 1.881250 0.017678 -v -0.475000 1.518750 -0.000000 -v -0.475000 1.881250 -0.000000 -v -0.467678 1.518750 -0.017678 -v -0.467678 1.881250 -0.017678 -v -0.400000 1.518750 -0.025000 -v -0.400000 1.881250 -0.025000 -v -0.382322 1.518750 -0.017678 -v -0.382322 1.881250 -0.017678 -v -0.375000 1.518750 0.000000 -v -0.375000 1.881250 0.000000 -v -0.382322 1.518750 0.017678 -v -0.382322 1.881250 0.017678 -v -0.400000 1.518750 0.025000 -v -0.400000 1.881250 0.025000 -vt 0.749477 0.177462 -vt 0.851663 0.177461 -vt 0.849712 0.270681 -vt 0.751428 0.270681 -vt 0.844603 0.339539 -vt 0.844602 0.015383 -vt 0.849712 0.084242 -vt 0.751428 0.084242 -vt 0.718710 0.177464 -vt 0.716756 0.270683 -vt 0.618472 0.270681 -vt 0.711645 0.339542 -vt 0.623580 0.339539 -vt 0.623588 0.015383 -vt 0.711653 0.015385 -vt 0.716761 0.084244 -vt 0.616523 0.177461 -vt 0.271242 0.713845 -vt 0.373429 0.713845 -vt 0.371477 0.807065 -vt 0.366368 0.875923 -vt 0.278303 0.875923 -vt 0.366368 0.551767 -vt 0.371477 0.620625 -vt 0.273194 0.620625 -vt 0.851663 0.532386 -vt 0.849712 0.625606 -vt 0.751428 0.625606 -vt 0.844603 0.694464 -vt 0.756538 0.694464 -vt 0.844603 0.370308 -vt 0.849712 0.439167 -vt 0.751428 0.439167 -vt 0.984617 0.177461 -vt 0.982665 0.270681 -vt 0.884382 0.270681 -vt 0.977556 0.339539 -vt 0.977556 0.015383 -vt 0.982665 0.084242 -vt 0.884382 0.084242 -vt 0.882430 0.177461 -vt 0.117570 0.599110 -vt 0.115619 0.692329 -vt 0.017335 0.692329 -vt 0.110509 0.761188 -vt 0.022444 0.761188 -vt 0.022444 0.437032 -vt 0.110510 0.437032 -vt 0.115619 0.505890 -vt 0.017335 0.505890 -vt 0.718710 0.532386 -vt 0.716759 0.625606 -vt 0.618475 0.625606 -vt 0.711649 0.694464 -vt 0.623584 0.694465 -vt 0.711649 0.370308 -vt 0.716758 0.439167 -vt 0.618475 0.439167 -vt 0.616523 0.532386 -vt 0.506382 0.713845 -vt 0.504430 0.807065 -vt 0.406147 0.807065 -vt 0.499321 0.875923 -vt 0.411256 0.875923 -vt 0.499321 0.551767 -vt 0.504431 0.620625 -vt 0.406147 0.620625 -vt 0.404195 0.713845 -vt 0.041881 0.130470 -vt 0.086176 0.059678 -vt 0.107053 0.343634 -vt 0.213977 0.130470 -vt 0.169683 0.059678 -vt 0.240475 0.015383 -vt 0.502249 0.098891 -vt 0.502249 0.015383 -vt 0.585757 0.015383 -vt 0.015383 0.015383 -vt 0.585757 0.098891 -vt 0.585757 0.182399 -vt 0.502249 0.182399 -vt 0.107052 0.406265 -vt 0.148806 0.343634 -vt 0.182027 0.396728 -vt 0.564880 0.449753 -vt 0.523126 0.449753 -vt 0.469735 0.433464 -vt 0.271242 0.406604 -vt 0.340291 0.359638 -vt 0.471482 0.120906 -vt 0.445258 0.204975 -vt 0.334736 0.180122 -vt 0.292959 0.252428 -vt 0.306677 0.283195 -vt 0.452868 0.347029 -vt 0.179652 0.437032 -vt 0.187033 0.440089 -vt 0.187033 0.454851 -vt 0.685335 0.876611 -vt 0.677346 0.876608 -vt 0.677397 0.725251 -vt 0.669357 0.876605 -vt 0.669408 0.725249 -vt 0.632552 0.725236 -vt 0.653429 0.725243 -vt 0.653378 0.876600 -vt 0.661367 0.876603 -vt 0.661418 0.725246 -vt 0.706212 0.876618 -vt 0.685387 0.725254 -vt 0.632501 0.876593 -vt 0.624512 0.876590 -vt 0.624562 0.725234 -vt 0.616523 0.876588 -vt 0.616573 0.725231 -vt 0.722190 0.876623 -vt 0.714201 0.876621 -vt 0.714253 0.725264 -vt 0.706263 0.725261 -vt 0.300577 0.521000 -vt 0.460098 0.521000 -vt 0.271242 0.125882 -vt 0.312920 0.015383 -vt 0.471482 0.032841 -vt 0.756538 0.339540 -vt 0.756537 0.015383 -vt 0.618477 0.084242 -vt 0.273193 0.807065 -vt 0.278303 0.551767 -vt 0.749477 0.532386 -vt 0.756538 0.370308 -vt 0.889491 0.339539 -vt 0.889491 0.015383 -vt 0.015383 0.599110 -vt 0.623584 0.370308 -vt 0.411256 0.551767 -vt 0.073832 0.396728 -vt 0.148806 0.406265 -vt 0.179652 0.457908 -vt 0.158775 0.457908 -vt 0.151394 0.454851 -vt 0.148337 0.447470 -vt 0.151394 0.440089 -vt 0.158775 0.437032 -vt 0.190091 0.447470 -vt 0.722242 0.725267 -vn 0.986600 -0.099700 -0.128900 -vn 0.936900 0.332400 -0.107800 -vn 0.645200 -0.756400 -0.107800 -vn 0.904300 -0.406900 -0.128900 -vn 0.922200 -0.082500 -0.377800 -vn 0.883000 0.346900 -0.316100 -vn 0.591300 -0.741900 -0.316100 -vn 0.839900 -0.389700 -0.377800 -vn 0.797700 -0.049100 -0.601000 -vn 0.778900 0.374800 -0.502900 -vn 0.487100 -0.714000 -0.502900 -vn 0.715400 -0.356300 -0.601000 -vn 0.621700 -0.002000 -0.783300 -vn 0.631600 0.414300 -0.655300 -vn 0.339900 -0.674600 -0.655300 -vn 0.539400 -0.309200 -0.783300 -vn 0.621700 -0.002000 0.783300 -vn 0.631600 0.414300 0.655300 -vn 0.339900 -0.674600 0.655300 -vn 0.539400 -0.309200 0.783300 -vn 0.797700 -0.049100 0.601000 -vn 0.778900 0.374800 0.502900 -vn 0.487100 -0.714000 0.502900 -vn 0.715400 -0.356300 0.601000 -vn 0.922200 -0.082500 0.377800 -vn 0.883000 0.346900 0.316100 -vn 0.591300 -0.741900 0.316100 -vn 0.839900 -0.389700 0.377800 -vn 0.986600 -0.099700 0.128900 -vn 0.936900 0.332400 0.107800 -vn 0.645200 -0.756400 0.107800 -vn 0.904300 -0.406900 0.128900 -vn -0.124000 0.000000 -0.992300 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.124000 0.000000 0.992300 -vn -0.808700 -0.588200 0.000000 -vn 0.780900 0.624700 0.000000 -vn 0.000000 0.948300 0.317500 -vn -0.236400 0.951600 -0.196600 -vn 0.421300 0.000000 -0.906900 -vn 0.421300 0.000000 0.906900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.483500 -0.483500 -0.729600 -vn 0.654900 -0.677600 -0.334700 -vn -0.483500 -0.483500 0.729600 -vn 0.654900 -0.677600 0.334700 -vn -0.236400 0.951600 0.196600 -vn 0.000000 0.948300 -0.317500 -s off -f 1/1/1 6/2/1 7/3/1 -f 2/4/2 7/3/2 8/5/2 -f 9/6/3 10/7/3 5/8/3 -f 5/8/4 10/7/4 6/2/4 -f 11/9/5 12/10/5 7/11/5 -f 12/10/6 13/12/6 8/13/6 -f 9/14/7 14/15/7 15/16/7 -f 15/16/8 11/9/8 6/17/8 -f 11/18/9 16/19/9 17/20/9 -f 17/20/10 18/21/10 13/22/10 -f 19/23/11 20/24/11 15/25/11 -f 20/24/12 16/19/12 11/18/12 -f 21/26/13 22/27/13 17/28/13 -f 22/27/14 23/29/14 18/30/14 -f 24/31/15 25/32/15 20/33/15 -f 20/33/16 25/32/16 21/26/16 -f 31/34/17 32/35/17 27/36/17 -f 27/36/18 32/35/18 33/37/18 -f 34/38/19 35/39/19 30/40/19 -f 35/39/20 31/34/20 26/41/20 -f 36/42/21 37/43/21 32/44/21 -f 37/43/22 38/45/22 33/46/22 -f 34/47/23 39/48/23 40/49/23 -f 35/50/24 40/49/24 36/42/24 -f 41/51/25 42/52/25 37/53/25 -f 42/52/26 43/54/26 38/55/26 -f 44/56/27 45/57/27 40/58/27 -f 45/57/28 41/51/28 36/59/28 -f 1/60/29 2/61/29 42/62/29 -f 2/61/30 3/63/30 43/64/30 -f 4/65/31 5/66/31 45/67/31 -f 5/66/32 1/60/32 41/68/32 -f 49/69/33 48/70/33 57/71/33 -f 47/72/34 46/73/34 50/74/34 -f 51/75/35 50/76/35 52/77/35 -f 48/70/36 49/69/36 52/78/36 -f 53/79/37 49/80/37 47/81/37 -f 56/82/38 57/71/38 54/83/38 -f 47/72/39 55/84/39 54/83/39 -f 46/73/40 54/83/40 57/71/40 -f 49/80/41 56/85/41 55/86/41 -f 14/87/42 49/88/42 53/89/42 -f 39/90/43 44/91/43 51/92/43 -f 50/93/44 51/92/44 44/91/44 -f 52/94/45 9/95/45 53/89/45 -f 77/96/37 75/97/37 71/98/37 -f 61/99/46 63/100/46 62/101/46 -f 63/100/47 65/102/47 64/103/47 -f 68/104/36 58/105/36 59/106/36 -f 67/107/48 59/106/48 58/105/48 -f 65/102/49 67/107/49 66/108/49 -f 77/109/34 61/99/34 60/110/34 -f 69/111/50 71/112/50 70/113/50 -f 71/112/51 73/114/51 72/115/51 -f 73/116/52 75/117/52 74/118/52 -f 75/117/53 77/109/53 76/119/53 -f 49/88/54 14/87/54 52/120/54 -f 9/121/55 52/120/55 14/87/55 -f 47/122/56 50/123/56 39/90/56 -f 39/90/57 50/123/57 44/124/57 -f 2/4/1 1/1/1 7/3/1 -f 3/125/2 2/4/2 8/5/2 -f 4/126/3 9/6/3 5/8/3 -f 1/1/4 5/8/4 6/2/4 -f 6/17/5 11/9/5 7/11/5 -f 7/11/6 12/10/6 8/13/6 -f 10/127/7 9/14/7 15/16/7 -f 10/127/8 15/16/8 6/17/8 -f 12/128/9 11/18/9 17/20/9 -f 12/128/10 17/20/10 13/22/10 -f 14/129/11 19/23/11 15/25/11 -f 15/25/12 20/24/12 11/18/12 -f 16/130/13 21/26/13 17/28/13 -f 17/28/14 22/27/14 18/30/14 -f 19/131/15 24/31/15 20/33/15 -f 16/130/16 20/33/16 21/26/16 -f 26/41/17 31/34/17 27/36/17 -f 28/132/18 27/36/18 33/37/18 -f 29/133/19 34/38/19 30/40/19 -f 30/40/20 35/39/20 26/41/20 -f 31/134/21 36/42/21 32/44/21 -f 32/44/22 37/43/22 33/46/22 -f 35/50/23 34/47/23 40/49/23 -f 31/134/24 35/50/24 36/42/24 -f 36/59/25 41/51/25 37/53/25 -f 37/53/26 42/52/26 38/55/26 -f 39/135/27 44/56/27 40/58/27 -f 40/58/28 45/57/28 36/59/28 -f 41/68/29 1/60/29 42/62/29 -f 42/62/30 2/61/30 43/64/30 -f 44/136/31 4/65/31 45/67/31 -f 45/67/32 5/66/32 41/68/32 -f 56/137/33 49/69/33 57/71/33 -f 53/79/35 51/75/35 52/77/35 -f 51/75/37 53/79/37 47/81/37 -f 55/138/38 56/82/38 54/83/38 -f 46/73/39 47/72/39 54/83/39 -f 48/70/40 46/73/40 57/71/40 -f 47/81/41 49/80/41 55/86/41 -f 9/95/58 14/87/58 53/89/58 -f 47/122/59 39/90/59 51/92/59 -f 71/98/37 69/139/37 77/96/37 -f 59/140/37 67/141/37 65/142/37 -f 65/142/37 63/143/37 61/144/37 -f 61/144/37 77/96/37 69/139/37 -f 75/97/37 73/145/37 71/98/37 -f 69/139/37 59/140/37 61/144/37 -f 65/142/37 61/144/37 59/140/37 -f 60/110/46 61/99/46 62/101/46 -f 62/101/47 63/100/47 64/103/47 -f 69/111/36 68/104/36 59/106/36 -f 66/108/48 67/107/48 58/105/48 -f 64/103/49 65/102/49 66/108/49 -f 76/119/34 77/109/34 60/110/34 -f 68/104/50 69/111/50 70/113/50 -f 70/113/51 71/112/51 72/115/51 -f 72/146/52 73/116/52 74/118/52 -f 74/118/53 75/117/53 76/119/53 diff --git a/src/main/resources/assets/hbm/models/weapons/pch.obj b/src/main/resources/assets/hbm/models/weapons/pch.obj deleted file mode 100644 index e3634a298..000000000 --- a/src/main/resources/assets/hbm/models/weapons/pch.obj +++ /dev/null @@ -1,245 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'pch.blend' -# www.blender.org -o ponycum_Cylinder.003 -v 0.000000 -0.457474 -0.076488 -v 0.000000 0.498621 -0.076488 -v 0.063454 0.498621 -0.038244 -v 0.063454 -0.457474 -0.038244 -v 0.063454 0.498621 0.038244 -v 0.063454 -0.457474 0.038244 -v 0.000000 0.498621 0.076488 -v 0.000000 -0.457474 0.076488 -v -0.063454 0.498621 0.038244 -v -0.063454 -0.457474 0.038244 -v -0.063454 0.498621 -0.038244 -v -0.063454 -0.457474 -0.038244 -v 0.244563 0.705111 -0.261231 -v -0.244563 0.705111 -0.261231 -v -0.244563 0.821944 -0.260374 -v 0.244563 0.821944 -0.260374 -v 0.244661 0.821816 0.260308 -v -0.244661 0.821816 0.260308 -v -0.244661 0.704698 0.259606 -v 0.244661 0.704698 0.259606 -v 0.300312 0.880010 -0.277019 -v 0.300312 0.650163 -0.277880 -v 0.244563 0.705233 -0.277878 -v 0.244563 0.822066 -0.277021 -v -0.300312 0.880010 -0.277019 -v -0.300312 1.041927 -0.113884 -v 0.300312 1.041927 -0.113884 -v -0.300312 1.041066 0.115963 -v 0.300312 1.041066 0.115963 -v -0.300312 0.877932 0.277880 -v 0.300312 0.877931 0.277880 -v -0.300312 0.648084 0.277019 -v 0.300312 0.648084 0.277019 -v 0.244662 0.704449 0.277099 -v -0.244662 0.704449 0.277099 -v -0.300312 0.486167 0.113884 -v 0.300312 0.486167 0.113884 -v -0.300312 0.650163 -0.277880 -v -0.300312 0.487028 -0.115963 -v 0.300312 0.487028 -0.115963 -v -0.244662 0.821567 0.277801 -v -0.244662 0.704698 0.259606 -v -0.244662 0.821816 0.260308 -v 0.244662 0.821567 0.277801 -v 0.244662 0.821816 0.260308 -v 0.244662 0.704698 0.259606 -v -0.244563 0.705233 -0.277878 -v -0.244563 0.705111 -0.261231 -v 0.244563 0.705111 -0.261231 -v -0.244563 0.822066 -0.277021 -v 0.244563 0.821944 -0.260374 -v -0.244563 0.821944 -0.260374 -vt 0.625000 0.687500 -vt 0.625000 0.593750 -vt 1.000000 0.593750 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 1.000000 0.687500 -vt 0.500000 0.250000 -vt 0.437500 0.312500 -vt 0.437500 0.250000 -vt 0.687500 0.781250 -vt 1.000000 0.781250 -vt 1.000000 0.906250 -vt 0.687500 0.906250 -vt 0.468750 1.000000 -vt 0.375000 0.781250 -vt 0.437500 0.218750 -vt 0.500000 0.218750 -vt 0.718750 0.218750 -vt 0.781250 0.250000 -vt 0.781250 0.218750 -vt 1.000000 0.218750 -vt 0.718750 0.250000 -vt 1.000000 0.187500 -vt 0.718750 0.187500 -vt 0.781250 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.500000 0.312500 -vt 0.468750 0.312500 -vt 0.906250 1.000000 -vt 0.781250 1.000000 -vt 0.781250 0.687500 -vt 0.906250 0.687500 -vt 0.468750 0.687500 -vt 0.593750 0.687500 -vt 0.593750 1.000000 -vt 0.375000 0.906250 -vt 1.000000 0.250000 -vt 0.437500 0.187500 -vt 0.437500 0.093750 -vt 1.000000 0.093750 -vt 1.000000 0.125000 -vt 1.000000 0.156250 -vt 0.437500 0.156250 -vt 1.000000 -0.000000 -vt 1.000000 0.031250 -vt 0.437500 0.031250 -vt 1.000000 0.062500 -vt 0.437500 0.062500 -vt 0.375000 0.875000 -vt 0.343750 0.843750 -vt 0.343750 0.781250 -vt 0.000000 0.750000 -vt 0.000000 0.625000 -vt 0.375000 0.625000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.000000 0.375000 -vt -0.000000 0.250000 -vt 0.375000 0.250000 -vt 0.343750 0.281250 -vt -0.000000 0.125000 -vt 0.375000 0.125000 -vt 0.000000 0.000000 -vt 0.375000 0.000000 -vt 0.000203 0.999797 -vt 0.000000 0.875000 -vt 0.375000 0.375000 -vt 0.343750 0.343750 -vt 0.031250 0.281250 -vt 0.031250 0.343750 -vt 0.375000 0.750000 -vt 0.031250 0.781250 -vt 0.031250 0.843750 -vt 0.437500 0.125000 -vt 0.437500 0.000000 -vt 0.375000 1.000000 -vn 0.000000 0.007300 -1.000000 -vn 0.000000 -0.006000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 -0.000000 0.000000 -vn 0.000000 -0.999900 -0.014300 -vn 0.000000 0.999900 0.014300 -vn 0.000000 1.000000 0.007300 -vn -0.000000 -1.000000 -0.007300 -vn 0.000000 0.000000 -1.000000 -vn 0.870700 0.000000 -0.491800 -vn 0.870700 -0.000000 0.491800 -vn -0.000000 -0.000000 1.000000 -vn -0.870700 -0.000000 0.491800 -vn -0.870700 0.000000 -0.491800 -vn 0.000800 -0.379600 -0.925200 -vn 0.003600 0.003700 -1.000000 -vn -0.001200 0.002100 -1.000000 -vn 0.001000 0.385300 -0.922800 -vn 0.000000 0.925300 -0.379200 -vn 0.000000 0.922400 0.386100 -vn -0.000500 0.379500 0.925200 -vn 0.000600 -0.385600 0.922700 -vn -0.000600 -0.385600 0.922700 -vn -0.000700 -0.002700 1.000000 -vn 0.000000 -0.925300 0.379200 -vn 0.000000 -0.922400 -0.386100 -vn -0.000800 -0.379600 -0.925200 -vn 0.000500 0.379500 0.925200 -vn 0.002300 -0.003700 1.000000 -vn 0.000700 -0.002700 1.000000 -vn -0.002300 -0.003700 1.000000 -vn -0.001000 0.385300 -0.922800 -vn 0.001200 0.002100 -1.000000 -vn -0.003600 0.003700 -1.000000 -s off -f 14/1/1 15/2/1 16/3/1 -f 18/2/2 19/4/2 20/5/2 -f 13/6/1 14/1/1 16/3/1 -f 17/3/2 18/2/2 20/5/2 -f 4/7/3 10/8/3 12/9/3 -f 36/10/4 28/11/4 26/12/4 -f 29/13/5 33/14/5 40/15/5 -f 41/7/5 35/9/5 42/16/5 -f 41/7/6 43/17/6 45/18/6 -f 34/19/7 46/20/7 42/21/7 -f 44/22/4 45/18/4 46/20/4 -f 47/23/8 48/21/8 49/20/8 -f 24/24/4 23/25/4 49/20/4 -f 24/24/9 51/18/9 52/17/9 -f 50/26/5 52/17/5 48/16/5 -f 12/9/3 1/27/3 4/7/3 -f 4/7/3 6/28/3 10/8/3 -f 8/29/3 10/8/3 6/28/3 -f 26/12/4 25/30/4 38/31/4 -f 38/31/4 39/13/4 26/12/4 -f 36/10/4 32/32/4 30/33/4 -f 30/33/4 28/11/4 36/10/4 -f 26/12/4 39/13/4 36/10/4 -f 40/15/5 22/34/5 29/13/5 -f 21/35/5 27/10/5 29/13/5 -f 29/13/5 31/36/5 33/14/5 -f 33/14/5 37/37/5 40/15/5 -f 22/34/5 21/35/5 29/13/5 -f 43/17/5 41/7/5 42/16/5 -f 44/22/6 41/7/6 45/18/6 -f 35/38/7 34/19/7 42/21/7 -f 34/19/4 44/22/4 46/20/4 -f 23/25/8 47/23/8 49/20/8 -f 51/18/4 24/24/4 49/20/4 -f 50/26/9 24/24/9 52/17/9 -f 47/39/5 50/26/5 48/16/5 -s 1 -f 1/40/10 2/41/10 3/42/11 -f 3/42/11 5/43/12 6/44/12 -f 5/43/12 7/23/13 8/39/13 -f 7/45/13 9/46/14 10/47/14 -f 9/46/14 11/48/15 12/49/15 -f 11/48/15 2/41/10 1/40/10 -f 22/50/16 23/51/17 24/52/18 -f 25/53/19 26/54/20 27/55/20 -f 26/54/20 28/56/21 29/57/21 -f 29/57/21 28/56/21 30/58/22 -f 32/59/23 33/60/24 34/61/25 -f 32/59/23 36/62/26 37/63/26 -f 36/62/26 39/64/27 40/65/27 -f 39/66/27 38/67/28 22/50/16 -f 31/68/29 44/69/30 34/61/25 -f 30/58/22 32/59/23 35/70/31 -f 30/58/22 41/71/32 44/69/30 -f 21/72/33 24/52/18 50/73/34 -f 38/67/28 25/53/19 50/73/34 -f 22/50/16 38/67/28 47/74/35 -f 4/75/11 1/40/10 3/42/11 -f 4/75/11 3/42/11 6/44/12 -f 6/44/12 5/43/12 8/39/13 -f 8/76/13 7/45/13 10/47/14 -f 10/47/14 9/46/14 12/49/15 -f 12/49/15 11/48/15 1/40/10 -f 21/72/33 22/50/16 24/52/18 -f 21/72/33 25/53/19 27/55/20 -f 27/55/20 26/54/20 29/57/21 -f 31/68/29 29/57/21 30/58/22 -f 35/70/31 32/59/23 34/61/25 -f 33/60/24 32/59/23 37/63/26 -f 37/63/26 36/62/26 40/65/27 -f 40/77/27 39/66/27 22/50/16 -f 33/60/24 31/68/29 34/61/25 -f 41/71/32 30/58/22 35/70/31 -f 31/68/29 30/58/22 44/69/30 -f 25/53/19 21/72/33 50/73/34 -f 47/74/35 38/67/28 50/73/34 -f 23/51/17 22/50/16 47/74/35 diff --git a/src/main/resources/assets/hbm/shaders/test_shader.frag b/src/main/resources/assets/hbm/shaders/test_shader.frag deleted file mode 100644 index 2e6f3ab0b..000000000 --- a/src/main/resources/assets/hbm/shaders/test_shader.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 330 compatibility - -in vec2 texCoord; -in vec2 lightCoord; -in vec4 color; -in vec3 lighting; -out vec4 FragColor; - -uniform sampler2D texture; -uniform sampler2D lightmap; - -void main(){ - vec4 center = texture2D(DiffuseSampler, texCoord); - vec4 up = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y)); - vec4 down = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0)); - vec4 left = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0)); - vec4 right = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y)); - vec4 uDiff = center - up; - vec4 dDiff = center - down; - vec4 lDiff = center - left; - vec4 rDiff = center - right; - vec4 sum = uDiff + dDiff + lDiff + rDiff; - vec3 clamped = clamp(center.rgb - sum.rgb, 0.0, 1.0); - gl_FragColor = vec4(clamped, center.a); -} diff --git a/src/main/resources/assets/hbm/shaders/test_shader.vert b/src/main/resources/assets/hbm/shaders/test_shader.vert deleted file mode 100644 index 29c5d6a14..000000000 --- a/src/main/resources/assets/hbm/shaders/test_shader.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 330 compatibility - -out vec2 texCoord; -out vec2 lightCoord; -out vec4 color; -out vec3 lighting; - -void main(){ - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - lightCoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; - color = gl_Color; - - vec3 totalLighting = vec3(gl_LightModel.ambient) * vec3(gl_FrontMaterial.emission); - vec3 normal = (gl_NormalMatrix * gl_Normal).xyz; - vec4 difftot = vec4(0.0F); - - for (int i = 0; i < gl_MaxLights; i ++){ - - vec4 diff = gl_FrontLightProduct[i].diffuse * max(dot(normal,gl_LightSource[i].position.xyz), 0.0f); - diff = clamp(diff, 0.0F, 1.0F); - - difftot += diff; - } - lighting = clamp((difftot + gl_LightModel.ambient).rgb, 0.0F, 1.0F); -} diff --git a/src/main/resources/assets/hbm/sounds/clap.ogg b/src/main/resources/assets/hbm/sounds/clap.ogg deleted file mode 100644 index a42db9654f4866911af3d9607a8bc023bc2606b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9290 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 H|49EAs|8gB diff --git a/src/main/resources/assets/hbm/sounds/jeff.ogg b/src/main/resources/assets/hbm/sounds/jeff.ogg deleted file mode 100644 index 1c251fc4284ddd3f70ef396c178492f60c3441d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11082 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 AX8-^I diff --git a/src/main/resources/assets/hbm/sounds/mug.ogg b/src/main/resources/assets/hbm/sounds/mug.ogg deleted file mode 100644 index c7279c971c6a1b584fbc768bbcb1cae6b1bccd41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9970 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 apFMa#&>6JrT-&>s?00Y>fRgf=1^yRWX%;X5 diff --git a/src/main/resources/assets/hbm/sounds/sample.ogg b/src/main/resources/assets/hbm/sounds/sample.ogg deleted file mode 100644 index 30cebf4cb3a14159784329d6f503167a689f5d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119976 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

6nP#R>%kWhgO|2 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 diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png b/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png deleted file mode 100644 index 53b9537c76bd843a4ceb02cea2cd91913a021565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$h+kKYYBiuPs(jS>_-#GD%%j^;FU(GK(-U3ZKu6yuJU|!Se!=a+xlpANf z`Tm)@Gdw+ zGWYT0pG*qpi+`#8TK9U^sxO=F?u?ikm&TBLTgXYE;b)Si)wZCi^Q$w?FgS5cy0!iM l+ajqob22}zK6zwFVdQ&MBb@02RSZ AcmMzZ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png deleted file mode 100644 index 8abf6d0ffcd63482811590e34e4a93e841630689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfUn+ zKW7dcyMH3;u!L}M?Dem&?u4J()Z_i{ZI#^Lqfe42x-%>l@swY`eM##3zb`l&wwC$i ztma~fed6Q1Bd6|T5=7U)<8Pgg&ebxsLQ0Ntx!z5oCK diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png deleted file mode 100644 index 371de24219cfb39979eaf3858a419216351d1838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-~j33?>_x0t^{M4xICxmE5qpK{SD3)`Vj#-<1dnxO$z=&bfI%e%r%G z`Bx$ruhQCBdH?(JUF)Z$YPx@2mm6biA#@~Aqfq2jb#>sAnLn6gZ=cwtbIyhFO6gmc zsO)Sehe;|7OES3**qrBiyrj!!a^jpTya}=4J%-=T9p0*Y*h15ujp3L?Y1#Voe?Q)_ gz5Mq<_~dR|c`Ikjo9AFVdQ&MBb@04gC|W&i*H diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png b/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png deleted file mode 100644 index 3df5212ff95cf28dad1282fd8ea9682daccb6067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;HZUMZGti3%)UIyOg$2XNu_rn+9nqvxcS;xd$3+B3w2K3gyNXFRw3; z|KHHOKQa5koXK1H6-~bHOIka1mR`AL)z!#n(Qy~7xOcJZr&!kMxhgYMyzhQ&XtWqe}eJYWKRsH{9m+2b*l0$m_tt_~{-K0o}{s>FVdQ&MBb@05^nS!vFvP diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png b/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png deleted file mode 100644 index 9cee0151369e1a416c08b31b7b81ac161ad3eecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;Lr@lZ&m`Bo$_^xxIm1^1zRbQt4BEE{h6=YF+4?`}_0503*!ceH zeq*~=9s64%x%~a=ImNdgt(tyn_PJjUksG!(Y-X)Yx1AT9%F-a= z33W|sf$?FPLjDXBirYG-mn4L2DMwN8L9_|lr8GG@)X|UM9>=clu;SpMPLPb^~dyCNZd4U#7S6yLIEPT8B z#=mX*b0U69pETWaP4QXm_0;G4fxhpR;y*+V;38TR= zpT38GnHK1HKU3TI?)SWFRy*hTFWl;9#_-tU(Oz+ey|>lQ_ied$(ngHoUiHbp*3YBN jyQg>0_>;A1(-UUBP*d*QT|55)oy*|q>gTe~DWM4fqJCh_ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_oil.png b/src/main/resources/assets/hbm/textures/items/oilcan_oil.png deleted file mode 100644 index 0cfbdc54f4fb91df4ee27aed5308a41e70611f9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vffp7qW2(7BR~4w|V_*=yAf?q*>K5mjQ*uj=p+VDS3j3^P6hCW>L3Hg1=(QK{NJ<)x3>= z6mC2-HU50|%yAx{KfOGrQ-bWCq(<_c>)jN&zGi-%<$S5V*DI&z+B(P_Z>gx>qoQN| zT*{YW%eCIe$M-UNOlsNYxnlLILr+>|_^b0jIi)d_#wM>7ZFrh=ue$8Olh!TCED39; rn)telGp_rd{`{$i%KlkCB|n+0T}Qh!pLOC%lfRP4Li}G@XfEC?)mm5g{MeN#YUm3-|*tPID5x{hkX})K4;$5-+8OW)0u+1W(9@BPu#U>m;4Ls<%Y+ux-i_@7R!3rKxMMO z2^&MUE`uV=GE0xx$hprH%o|c8Kipex?SI|Rr+7lG4#S@BlXjP%|NGI#rugr{^=jho Z_p*&FI~iZe9RWI%!PC{xWt~$(69942R|Nn7 diff --git a/src/main/resources/assets/hbm/textures/items/powder_template.png b/src/main/resources/assets/hbm/textures/items/powder_template.png deleted file mode 100644 index 71b8b07c5c7a9be389feadfa8ce485f9a5250467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfeb%PCKw|9Saiyv6A^tXP99U^Wjnqf z`TMwTchx`hsX_aKUhNjuUi#Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Xs=VK~y+T&5=!t zgFq04%V0J^H*U;2x9|iaIf+-y(gOq`kfn$aL_v}$QR7dXc}1$3#K5cu=0VZjQr~;k zE&YFao;RW1_ag1NeiWL=aiqGg$uv#=mSq|3_j|>CG?0|GZ5g&Ki-uvKqA19=ZSH~b zZnx7GeEK24XfDf=E|&|#*Xxy%Bw@H|8p`vW;yC91mkA^pNk|5O{d&Eos;X4oZa0`P zs|*B2Itob;MisE{dj*R4;QRg*MUjG0Xoh6ecTl7O#^&*O(D8Vj89-qeYBC`v!?g~F z0~;>R=Q9I%@y%vKUDwh5e&y6%KG0f<7ch+VeZ?S%h~)a7!CL^a83wc-MVbgZY- zNnJ;69LJgP%f#e+L}g+a2E%EZ&fekW155w|(siAJAeaHa3MQ!M@vlYn1q|x?cMUt) Qi2wiq07*qoM6N<$f_@OVBLDyZ diff --git a/src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png deleted file mode 100644 index 77dd465d740a47b783e4c846c71206e0d4435a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfr1RmPbb~~4{@Rt?@4n3M Ymuby%zjC(G9ONtpPgg&ebxsLQ08HyXi2wiq diff --git a/src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png deleted file mode 100644 index 19c15cfe6f880a2514677a4cf6027711ff74aff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfZSUr6OsTi|zA#Zj(-SD@?ZH-}|R4_#c`JeT}Ab#3?V z|L-5Xzj9?~_NzOxsc{zt#d7VvG}C(+9kOMQ_}yM~D(Y8elEA}HPqrL?^t4c)OaGqk z=@^dgp8>m>!B nS_ebwbyvkVss{zXug_rXSXJzzA@{fi=w=2_S3j3^P6B_kh#;q%+6r qy~6$EmweuVhM)5r6HRzlFfpW5l&PQ7YAFV~gTd3)&t;ucLK6Tv?neLs diff --git a/src/main/resources/assets/hbm/textures/items/turret_light_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_light_ammo.png deleted file mode 100644 index 13143457cd7866de04832bda58738993e4ce1240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfj0B{SR1R|nu4>ZlPV;4&7CP(SNpH^ zs;h?HkDm|Ofp+ef^!o1fXz%IHnTjdDqGR?YCL}m;Gn>Vku>rxHZGZp$>VEjM(f!8Z m2j8#9^X%WBblqYHBSY&`pQh)wYde9yWbkzLb6Mw<&;$TpCVv6| diff --git a/src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png deleted file mode 100644 index e75662c457a49e40fbbaf02b67b7b0792b60e031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHmwP)|a!V=GE2RJP*aUZIcChq(8sDO9$i zl=?tjA`aHAh=|B0BA2Z=W=PUIQBE8kHSo>+JNp6uz7#h^6uEDjMip=O5diYLS9Off z0*ELM!yu_zYw16puW_^a1oO6SWmy8!G>rf-jw7tK0;{S50DQgN;_BfY0A{=>3Z*$U zNs?%-MF>F#vMiIH7nzr3sQ^H3?Yd5d5F!Bdeg8`qFD{t`5K;8rgNOw3E4$q)dhdA- z0AP%X&bh-ErV{JA7Ku~y%$;*HiFyi8Nn{29d7ew?A0+P2mAE=7Q7tB6jFA(!PX}S^ h$8U9vFMV95egI}_msLW-}NY8#4Z1x9M}(HawV=kdl%x*;kA&pM)0fR; zdDbxgpE&89{hpnS{5uM7Jotaqw(3ciIv)eWK56yjS1g}Qfv#cjboFyt=akR{01}Z= AQUCw| diff --git a/src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png deleted file mode 100644 index 7a3d511d1cdcbde95242e1a609d019e074a46ea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)|CL=`PZ=`Yhc*Wb4vMDd-;Y`T2eJ=jVeDM&r=pcs#B) zn+*W7*(~ObF_9B*q3Lv56-5ESXf#5IZOL7~WW{H$=fzuQxvdSbjg_ zrA+zu@F!X{1EjUCwAR&RaDp)gV+;T(InTo$054@qN{;tF9@q>YxBWJE{gU(63V_Gq z7gBOAZhisqJnWH@bJ}|4>FO_9>ndI$Xoq{Aw^ppnBTied0IbWSn7_O~MhJoT9&2qQ zHqm>(1z}38gQVJmi-R>3waL(bJ zi#>=Ngyi+SKnQ`9at}(9B#wI<)J;O+TPPe-H)sM_Ya3aX#bjNxK04>fvW$A|ohx|01rX`HU0sBb-!(dggBP~0000Q$+eHw;*a%n1MQK6DUr!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb}i>gnPb zV&R|sb>i_VfIEG_Ccn)fDTw0T5EZM^;*`&yD zNP#(_?SRST90m{L4z^5{)2t%Zi60~wj8m>K2=Ou`PEa)H@iyj27FCh^pU%LrdgAJ* U54y5afEF@%y85}Sb4q9e01#_M`~Uy| diff --git a/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png deleted file mode 100644 index b452b4c44a4848ff5919b7e79d2b9ae99a77826c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb}i>gnPb zV&R|s(i{^LLN;?W5phhzS>^#AqBo-92dC7VJ8mi#O-(3cQ4VsU0@ zab!Ed)0nAtlVL)d0PiJ_Y1|s$4m~hrNIS8DQALX3kb-l9#Pl?QV_F_I|IRZod}iFg UOJ}0*f1rg7p00i_>zopr0II%7)c^nh diff --git a/src/main/resources/assets/hbm/textures/models/At4New.png b/src/main/resources/assets/hbm/textures/models/At4New.png deleted file mode 100644 index 893349770fa9c2d402d7dcf4e0690c4e3ca8ba76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0rp8mK~!i%?N~ia z1VIcPw6zrO3K6su4z?7o5{oVD7O@bn(ozt_>aek}RV>BcQt>wk{s+MyGxD+t#5h5V zyXD;6gOE&SZZHIXf8kdtv@3wiD5u(|^XNCHqvXiHWT6>a@I9nI(c#_Q8I zVu9xAmY6$`?WSpHnU-{^O3>EN)BSk`=x10P{XAVaz|x<^K?rg$udOcad2L&*Z4PUR z&VcG+1$b31RU6v+Q9Y~xugaxrLt8(G)g2K0EUrSHj)1mD*z41_Y$cv+t#EB0t@okUZWT=i6yR!rd+qFy7+0`F|nAh5YsT0SR}zK;>6f zdzOIvtHXE+2)6}v#Wit}%hP=l?ZX&U9EA0kT*=3eSzLe+n`A?z>L9+oxt^YNbmnYyebcV`y$=FHUu9WpXb;bTp*%dgC299tHpa diff --git a/src/main/resources/assets/hbm/textures/models/LilBoy2.png b/src/main/resources/assets/hbm/textures/models/LilBoy2.png deleted file mode 100644 index 0e0dd92c27a1d2efc4096e974752bc4600a30bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16756 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 Cb>ABR diff --git a/src/main/resources/assets/hbm/textures/models/press_head_2.png b/src/main/resources/assets/hbm/textures/models/press_head_2.png deleted file mode 100644 index c40599a5396d44074e87ac5d03f28407a1ade750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 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 GasL5F^kA3( diff --git a/src/main/resources/assets/hbm/textures/models/radar_head.png b/src/main/resources/assets/hbm/textures/models/radar_head.png deleted file mode 100644 index 5f5b752dadc016f021118d9892929e2230eac545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4658 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 aYZ(rOmv#ED3Kjvnlfl!~&t;ucLK6T((^ygf From b0ae1c8cee878f220b67e784e1897e0fb076d79d Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 23 Jun 2024 22:25:48 +0200 Subject: [PATCH 11/17] config crap, player deco and some fixes --- changelog | 8 +- .../java/com/hbm/config/GeneralConfig.java | 6 +- .../radiation/ChunkRadiationHandlerPRISM.java | 17 +- .../hbm/inventory/gui/GUIScreenPreview.java | 11 +- .../inventory/recipes/AssemblerRecipes.java | 21 +- .../java/com/hbm/main/CraftingManager.java | 35 +- .../com/hbm/main/ModEventHandlerClient.java | 10 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../hbm/render/model/ModelArmorTailPeep.java | 26 + .../render/util/RenderAccessoryUtility.java | 23 + .../TileEntityMachineCrystallizer.java | 2 +- .../network/TileEntityConverterRfHe.java | 6 +- src/main/java/com/hbm/util/ShadyUtil.java | 1 + .../assets/hbm/models/armor/tail_peep.obj | 447 ++++++++++++++++++ .../assets/hbm/textures/armor/tail_peep.png | Bin 0 -> 668 bytes .../textures/models/machines/ore_slopper.png | Bin 0 -> 2509 bytes 16 files changed, 574 insertions(+), 41 deletions(-) create mode 100644 src/main/java/com/hbm/render/model/ModelArmorTailPeep.java create mode 100644 src/main/resources/assets/hbm/models/armor/tail_peep.obj create mode 100644 src/main/resources/assets/hbm/textures/armor/tail_peep.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/ore_slopper.png diff --git a/changelog b/changelog index 773ee6c81..779837ef2 100644 --- a/changelog +++ b/changelog @@ -12,6 +12,12 @@ * Removed the recipes for the satellite deco blocks, those will be phased out soon. Existing deco blocks can still be crafted back into functional satellites * Moved the satellite recipes to the welder, the attachment is now welded onto the common satellite body * Simplified the satellite recipes, adjusted cost based on utility (depth scanner, death ray and resonator are more expensive than the mapper/radar) +* CTRL + ALT view now shows the item's internal name and domain +* Adjusted Mekanism compat + * Decreased crafting complexity and time for the digiminer assembler recipe + * Replaced recipes for the wind turbine and atomic disassembler + * Added a config option for toggling Mekanism compat ## Fixed -* Crash caused by PRISM updating unloaded worlds \ No newline at end of file +* Fixed crash caused by PRISM updating unloaded worlds +* Hopefully fixed another crash caused by PRISM (reproduction was unreliable and sporadic, not confirmed) \ No newline at end of file diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 75c61aed1..321d349e1 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -35,6 +35,7 @@ public class GeneralConfig { public static boolean enableGuideBook = true; public static boolean enableSteamParticles = true; public static boolean enableSoundExtension = true; + public static boolean enableMekanismChanges = true; public static int hintPos = 0; public static boolean enableExpensiveMode = false; @@ -101,8 +102,9 @@ public class GeneralConfig { enableFluidContainerCompat = config.get(CATEGORY_GENERAL, "1.35_enableFluidContainerCompat", true, "If enabled, fluid containers will be oredicted and interchangable in recipes with other mods' containers, as well as TrainCraft's diesel being considered a valid diesel canister.").getBoolean(true); enableMOTD = config.get(CATEGORY_GENERAL, "1.36_enableMOTD", true, "If enabled, shows the 'Loaded mod!' chat message as well as update notifications when joining a world").getBoolean(true); enableGuideBook = config.get(CATEGORY_GENERAL, "1.37_enableGuideBook", true, "If enabled, gives players the guide book when joining the world for the first time").getBoolean(true); - enableSteamParticles = config.get(CATEGORY_GENERAL, "1.38_enableSteamParticles",true, "If disabled, auxiliary cooling towers and large cooling towers will not emit steam particles when in use.").getBoolean(true); - enableSoundExtension = config.get(CATEGORY_GENERAL, "1.39_enableSoundExtension",true, "If enabled, will change the limit for how many sounds can play at once.").getBoolean(true); + enableSteamParticles = config.get(CATEGORY_GENERAL, "1.38_enableSteamParticles", true, "If disabled, auxiliary cooling towers and large cooling towers will not emit steam particles when in use.").getBoolean(true); + enableSoundExtension = config.get(CATEGORY_GENERAL, "1.39_enableSoundExtension", true, "If enabled, will change the limit for how many sounds can play at once.").getBoolean(true); + enableMekanismChanges = config.get(CATEGORY_GENERAL, "1.40_enableMekanismChanges", true, "If enabled, will change some of Mekanism's recipes.").getBoolean(true); enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java index bed495862..861d029db 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java @@ -3,6 +3,7 @@ package com.hbm.handler.radiation; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; import com.hbm.lib.Library; @@ -44,7 +45,7 @@ import net.minecraftforge.event.world.WorldEvent; */ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { - public HashMap perWorld = new HashMap(); + public ConcurrentHashMap perWorld = new ConcurrentHashMap(); public static int cycles = 0; public static final float MAX_RADIATION = 1_000_000; @@ -188,6 +189,8 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { //it would be way to expensive to replace the sub-chunks entirely like with the old system //(that only used floats anyway...) so instead we shift the radiation into the prev value for(Entry chunk : system.radiation.entrySet()) { + ChunkCoordIntPair coord = chunk.getKey(); + for(int i = 0; i < 16; i++) { SubChunk sub = chunk.getValue()[i]; @@ -200,16 +203,16 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { //process some chunks that need extra rebuilding if(rebuildAllowance > 0 && sub.needsRebuild) { - sub.rebuild(world, chunk.getKey().chunkXPos << 4, i << 4, chunk.getKey().chunkZPos << 4); + sub.rebuild(world, coord.chunkXPos << 4, i << 4, coord.chunkZPos << 4); if(!sub.needsRebuild) { rebuildAllowance--; hasTriedRebuild = true; } } - if(!hasTriedRebuild && Math.abs(chunk.getKey().chunkXPos * chunk.getKey().chunkZPos) % 5 == cycles % 5 && world.getChunkProvider().chunkExists(chunk.getKey().chunkXPos, chunk.getKey().chunkZPos)) { + if(!hasTriedRebuild && Math.abs(coord.chunkXPos * coord.chunkZPos) % 5 == cycles % 5 && world.getChunkProvider().chunkExists(coord.chunkXPos, coord.chunkZPos)) { - Chunk c = world.getChunkFromChunkCoords(chunk.getKey().chunkXPos, chunk.getKey().chunkZPos); + Chunk c = world.getChunkFromChunkCoords(coord.chunkXPos, coord.chunkZPos); ExtendedBlockStorage[] xbs = c.getBlockStorageArray(); ExtendedBlockStorage subChunk = xbs[i]; int checksum = 0; @@ -219,7 +222,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { } if(checksum != sub.checksum) { - sub.rebuild(world, chunk.getKey().chunkXPos << 4, i << 4, chunk.getKey().chunkZPos << 4); + sub.rebuild(world, coord.chunkXPos << 4, i << 4, coord.chunkZPos << 4); } } } @@ -257,7 +260,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { } /** Returns the amount of radiation spread */ - private static float spreadRadiation(World world, SubChunk source, int y, ChunkCoordIntPair origin, SubChunk[] chunk, HashMap map, ForgeDirection dir) { + private static float spreadRadiation(World world, SubChunk source, int y, ChunkCoordIntPair origin, SubChunk[] chunk, ConcurrentHashMap map, ForgeDirection dir) { float spread = 0.1F; float amount = source.prevRadiation * spread; @@ -302,7 +305,7 @@ public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { } public static class RadPerWorld { - public HashMap radiation = new HashMap(); + public ConcurrentHashMap radiation = new ConcurrentHashMap(); } public static class SubChunk { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java index 0165aa62d..a4e9fe0e7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java @@ -11,6 +11,7 @@ import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -54,10 +55,16 @@ public class GUIScreenPreview extends GuiScreen { this.drawTexturedModalRect(res.getScaledWidth_double() / 2D / zoom - 9D, res.getScaledHeight_double() / 2D / zoom - 9D, 5, 87, 18, 18); GL11.glPopMatrix(); + String nameString = Item.itemRegistry.getNameForObject(preview.getItem()) + ", " + preview.getItemDamage(); String zoomString = "Zoom: " + zoom; String scaleString = "Windows Scale: " + res.getScaleFactor(); - this.fontRendererObj.drawString(zoomString, this.width - this.fontRendererObj.getStringWidth(zoomString) - 2, this.height - 20, 0xff0000); - this.fontRendererObj.drawString(scaleString, this.width - this.fontRendererObj.getStringWidth(scaleString) - 2, this.height - 10, 0xff0000); + + GL11.glPushMatrix(); + GL11.glScaled(0.5, 0.5, 1); + this.fontRendererObj.drawString(zoomString, this.width * 2 - this.fontRendererObj.getStringWidth(zoomString) - 2, this.height * 2 - 35, 0xff0000); + this.fontRendererObj.drawString(scaleString, this.width * 2 - this.fontRendererObj.getStringWidth(scaleString) - 2, this.height * 2 - 25, 0xff0000); + this.fontRendererObj.drawString(nameString, this.width * 2 - this.fontRendererObj.getStringWidth(nameString) - 2, this.height * 2 - 15, 0xff0000); + GL11.glPopMatrix(); } public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index a1d19543e..4889d3a13 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1269,26 +1269,21 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); - if(Loader.isModLoaded("Mekanism")) { + if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) { Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); if(mb != null) { makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { - new OreDictStack(DURA.ingot(), 16), - new OreDictStack(DESH.ingot(), 16), - new OreDictStack(STEEL.plateWelded(), 32), - new OreDictStack(CU.plateWelded(), 24), - new ComparableStack(ModItems.pipes_steel, 8), + new OreDictStack(BIGMT.plateCast(), 16), + new OreDictStack(CU.plateWelded(), 12), + new OreDictStack("alloyUltimate", 32), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), - new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_ALLOY.id), - new ComparableStack(ModBlocks.fusion_conductor, 12), - new ComparableStack(ModBlocks.capacitor_tantalium, 53), - new ComparableStack(ModItems.crystal_redstone, 16), - new ComparableStack(ModItems.crystal_diamond, 8), - new ComparableStack(ModItems.motor_bismuth, 4) - }, 15 * 60 * 20); + new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CAPACITOR_BOARD), + new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_GOLD.id), + new ComparableStack(ModItems.motor_bismuth, 3) + }, 1200); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5e7868f28..dab2e5e44 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1173,21 +1173,32 @@ public class CraftingManager { public static void crumple() { - if(Loader.isModLoaded("Mekanism")) { + List targets = new ArrayList(); + + if(GeneralConfig.enableMekanismChanges) { + + if(Loader.isModLoaded("Mekanism")) { + Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); + Item disassembler = (Item) Item.itemRegistry.getObject("Mekanism:AtomicDisassembler"); + targets.add(new ItemStack(mb, 1, 4)); // digiminer + targets.add(new ItemStack(disassembler)); // atomic disassembler + } + + if(Loader.isModLoaded("MekanismGenerators")) { + Block mb = (Block) Block.blockRegistry.getObject("MekanismGenerators:Generator"); + targets.add(new ItemStack(mb, 1, 6)); // wind turbine + } List toDestroy = new ArrayList(); - Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); - ItemStack digiminer = new ItemStack(mb, 1, 4); - for(Object o : net.minecraft.item.crafting.CraftingManager.getInstance().getRecipeList()) { if(o instanceof IRecipe) { IRecipe rec = (IRecipe)o; ItemStack stack = rec.getRecipeOutput(); - if(stack != null && stack.getItem() == digiminer.getItem() && stack.getItemDamage() == digiminer.getItemDamage()) { - toDestroy.add(rec); + for(ItemStack target : targets) { + if(stack != null && stack.getItem() == target.getItem() && stack.getItemDamage() == target.getItemDamage()) toDestroy.add(rec); } } } @@ -1195,6 +1206,18 @@ public class CraftingManager { if(toDestroy.size() > 0) { net.minecraft.item.crafting.CraftingManager.getInstance().getRecipeList().removeAll(toDestroy); } + + if(Loader.isModLoaded("Mekanism")) { + Item disassembler = (Item) Item.itemRegistry.getObject("Mekanism:AtomicDisassembler"); + + if(disassembler != null) addRecipeAuto(new ItemStack(disassembler, 1), "GAG", "EIE", " I ", 'G', GOLD.plateCast(), 'A', "alloyUltimate", 'E', "battery", 'I', "ingotRefinedObsidian"); + } + + if(Loader.isModLoaded("MekanismGenerators")) { + Block generator = (Block) Block.blockRegistry.getObject("MekanismGenerators:Generator"); + + if(generator != null) addRecipeAuto(new ItemStack(generator, 1, 6), " T ", "TAT", "BCB", 'T', TI.plateCast(), 'A', "alloyAdvanced", 'B', "battery", 'C', ANY_PLASTIC.ingot()); + } } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index f29158539..e9a5a6bfd 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -577,12 +577,10 @@ public class ModEventHandlerClient { } if(player.getCurrentArmor(2) == null && !player.isPotionActive(Potion.invisibility)) { - if(player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) || player.getDisplayName().equals("HbMinecraft")) - RenderAccessoryUtility.renderWings(event, 2); - if(player.getUniqueID().toString().equals(ShadyUtil.the_NCR) || player.getDisplayName().equals("the_NCR")) - RenderAccessoryUtility.renderWings(event, 3); - if(player.getUniqueID().toString().equals(ShadyUtil.Barnaby99_x) || player.getDisplayName().equals("pheo7")) - RenderAccessoryUtility.renderAxePack(event); + if(player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) || player.getDisplayName().equals("HbMinecraft")) RenderAccessoryUtility.renderWings(event, 2); + if(player.getUniqueID().toString().equals(ShadyUtil.the_NCR) || player.getDisplayName().equals("the_NCR")) RenderAccessoryUtility.renderWings(event, 3); + if(player.getUniqueID().toString().equals(ShadyUtil.Barnaby99_x) || player.getDisplayName().equals("pheo7")) RenderAccessoryUtility.renderAxePack(event); + if(player.getUniqueID().toString().equals(ShadyUtil.LePeeperSauvage) || player.getDisplayName().equals("LePeeperSauvage")) RenderAccessoryUtility.renderFaggot(event); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index ad553a3cd..781c51d02 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -862,6 +862,7 @@ public class ResourceManager { public static final IModelCustom armor_mod_tesla = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/mod_tesla.obj")); public static final IModelCustom armor_wings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/murk.obj")); public static final IModelCustom armor_axepack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/wings_pheo.obj")); + public static final IModelCustom armor_tail = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/tail_peep.obj")); public static final IModelCustom player_manly_af = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")); public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")); public static final IModelCustom armor_trenchmaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/trenchmaster.obj")); @@ -1026,6 +1027,7 @@ public class ResourceManager { public static final ResourceLocation wings_bob = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_bob.png"); public static final ResourceLocation wings_black = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_black.png"); public static final ResourceLocation wings_pheo = new ResourceLocation(RefStrings.MODID, "textures/armor/axepack.png"); + public static final ResourceLocation tail_peep = new ResourceLocation(RefStrings.MODID, "textures/armor/tail_peep.png"); public static final ResourceLocation hat = new ResourceLocation(RefStrings.MODID, "textures/armor/hat.png"); public static final ResourceLocation no9 = new ResourceLocation(RefStrings.MODID, "textures/armor/no9.png"); diff --git a/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java b/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java new file mode 100644 index 000000000..5a8cb8370 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java @@ -0,0 +1,26 @@ +package com.hbm.render.model; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; + +public class ModelArmorTailPeep extends ModelArmorBase { + + ModelRendererObj tail; + + public ModelArmorTailPeep() { + super(0); + tail = new ModelRendererObj(ResourceManager.armor_tail, "FaggyAssFuckingTailThing"); + } + + @Override + public void render(Entity entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, entity); + body.copyTo(tail); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tail_peep); + tail.render(par7); + } +} diff --git a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java index 2087547de..943faf575 100644 --- a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java @@ -2,6 +2,7 @@ package com.hbm.render.util; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.render.model.ModelArmorTailPeep; import com.hbm.render.model.ModelArmorWings; import com.hbm.render.model.ModelArmorWingsPheo; import com.hbm.util.ShadyUtil; @@ -184,4 +185,26 @@ public class RenderAccessoryUtility { axePackModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); } + + private static ModelBiped tailModel; + public static void renderFaggot(RenderPlayerEvent.SetArmorModel event) { + + if(tailModel == null) + tailModel = new ModelArmorTailPeep(); + + RenderPlayer renderer = event.renderer; + ModelBiped model = renderer.modelArmor; + EntityPlayer player = event.entityPlayer; + + tailModel.isSneak = model.isSneak; + + float interp = event.partialRenderTick; + float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; + float yaw = yawHead - yawOffset; + float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); + float pitch = player.rotationPitch; + + tailModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 1482376ba..96e400b49 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -119,7 +119,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.25, yCoord + 1, zCoord + 0.25, xCoord + 0.75, yCoord + 5.875, zCoord + 0.75).offset(rot.offsetX * 1.5, 0, rot.offsetZ * 1.5)); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.25, yCoord + 1, zCoord + 0.25, xCoord + 0.75, yCoord + 6, zCoord + 0.75).offset(rot.offsetX * 1.5, 0, rot.offsetZ * 1.5)); for(EntityPlayer player : players) { HbmPlayerProps props = HbmPlayerProps.getData(player); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index a41c62ce2..32242267d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -35,9 +35,9 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn @Untested @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { - - if(recursionBrake) - return 0; + + if(this.tileEntityInvalid) return 0; + if(recursionBrake) return 0; if(simulate) return maxReceive; diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java index f416debc0..35ea12722 100644 --- a/src/main/java/com/hbm/util/ShadyUtil.java +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -53,6 +53,7 @@ public class ShadyUtil { public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61"; public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9"; public static String ege444 = "42ee978c-442a-4cd8-95b6-29e469b6df10"; + public static String LePeeperSauvage = "433c2bb7-018c-4d51-acfe-27f907432b5e"; public static final Set hashes = new HashSet(); static { diff --git a/src/main/resources/assets/hbm/models/armor/tail_peep.obj b/src/main/resources/assets/hbm/models/armor/tail_peep.obj new file mode 100644 index 000000000..737184c93 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/tail_peep.obj @@ -0,0 +1,447 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o FaggyAssFuckingTailThing +v -0.627682 10.005125 -0.450454 +v -0.000123 11.075396 0.277636 +v -0.000084 10.418571 -0.643246 +v 0.627711 10.005373 -0.450569 +v 0.798890 10.572883 0.567761 +v 0.388113 9.285591 -0.074662 +v -0.493534 9.759312 1.037476 +v -0.000153 10.383696 3.486781 +v -0.814369 10.383530 3.486841 +v -0.000151 9.759405 1.037423 +v -0.000151 9.285519 -0.074620 +v -0.387763 9.285445 -0.074578 +v -0.798885 10.572582 0.567935 +v 1.318130 11.840109 2.956691 +v 1.303919 10.780759 6.464269 +v 0.814971 10.383862 3.486721 +v -0.000243 12.739786 2.629235 +v -1.318200 11.839571 2.956887 +v 0.493946 9.759499 1.037369 +v -1.303027 10.780201 6.464366 +v -0.000150 9.794444 9.202967 +v -1.563645 9.794115 9.202877 +v -2.109154 13.221715 6.033862 +v -0.000424 14.731211 5.767698 +v -0.000150 10.780479 6.464317 +v 2.108972 13.222614 6.033704 +v -3.037204 8.839604 13.587263 +v -2.530998 12.667759 9.972871 +v -0.000522 14.444422 10.448926 +v 2.530752 12.668819 9.973157 +v 1.564689 9.794771 9.203056 +v -0.000772 3.865773 18.280907 +v -0.000633 10.105603 15.395302 +v 3.036897 8.840356 13.588348 +v 1.877619 6.792392 10.663549 +v -0.000148 6.792160 10.663214 +v -1.876381 6.791927 10.662880 +v 4.008683 -1.231076 17.008335 +v 3.644264 3.180661 15.724039 +v -0.000157 2.071596 11.584938 +v -2.251669 2.071471 11.584467 +v -3.644658 3.180254 15.722511 +v 2.253131 2.071720 11.585409 +v -0.000585 -5.243139 19.012844 +v 2.806094 -5.420787 16.982361 +v -2.476843 -1.641940 12.312111 +v -4.009130 -1.231225 17.006601 +v 2.478435 -1.641846 12.313181 +v -0.000858 -0.977296 19.909027 +v -0.000141 -1.641892 12.312647 +v 0.520518 -6.788428 15.666166 +v 1.734920 -5.708327 13.695753 +v -1.733776 -5.708388 13.695004 +v -2.806377 -5.420892 16.981148 +v -0.000133 -6.788437 15.666052 +v 0.841869 -6.702163 16.652149 +v -0.000133 -6.648875 17.261292 +v -0.841870 -6.702197 16.651783 +v -0.000135 -5.708357 13.695379 +v -0.520090 -6.788447 15.665939 +vt 0.710651 0.397343 +vt 0.673447 0.425869 +vt 0.686110 0.391250 +vt 0.640510 0.034849 +vt 0.603308 0.006319 +vt 0.627849 0.000228 +vt 0.752962 0.426119 +vt 0.711107 0.401105 +vt 0.736879 0.391250 +vt 0.932680 0.039627 +vt 0.948768 0.122001 +vt 0.922233 0.122004 +vt 0.961407 0.000228 +vt 0.948759 0.039625 +vt 0.948753 0.000230 +vt 0.952761 0.401105 +vt 0.910907 0.426121 +vt 0.926989 0.391250 +vt 0.655952 0.797121 +vt 0.676401 0.823580 +vt 0.663769 0.823582 +vt 0.790100 0.507814 +vt 0.746990 0.619172 +vt 0.738502 0.520352 +vt 0.609711 0.044182 +vt 0.672570 0.123097 +vt 0.620455 0.133276 +vt 0.940524 0.438709 +vt 0.873772 0.507814 +vt 0.704244 0.435206 +vt 0.641379 0.514115 +vt 0.723345 0.438709 +vt 0.906315 0.219899 +vt 0.948774 0.314756 +vt 0.897820 0.314756 +vt 0.687894 0.637069 +vt 0.603308 0.629110 +vt 0.948776 0.219895 +vt 0.626049 0.246054 +vt 0.916885 0.619168 +vt 0.832166 0.612780 +vt 0.819888 0.129973 +vt 0.737083 0.000228 +vt 0.897348 0.063686 +vt 0.703938 0.390793 +vt 0.603308 0.374429 +vt 0.856460 0.740857 +vt 0.807406 0.740873 +vt 0.711107 0.707398 +vt 0.610024 0.781808 +vt 0.547346 0.239308 +vt 0.393707 0.049939 +vt 0.602852 0.130282 +vt 0.819901 0.231924 +vt 0.737074 0.361669 +vt 0.711092 0.242118 +vt 0.884411 0.981518 +vt 0.711107 0.859180 +vt 0.923667 0.887428 +vt 0.711092 0.180923 +vt 0.711092 0.119777 +vt 0.910366 0.786348 +vt 0.743952 0.741330 +vt 0.393706 0.771551 +vt 0.208303 0.661960 +vt 0.355061 0.629918 +vt 0.494347 0.349574 +vt 0.337604 0.410716 +vt 0.337605 0.337340 +vt 0.547358 0.582179 +vt 0.355064 0.191572 +vt 0.494355 0.471915 +vt 0.337604 0.484150 +vt 0.092732 0.820324 +vt 0.074194 0.708811 +vt 0.214393 0.328358 +vt 0.206875 0.167042 +vt 0.214386 0.493131 +vt 0.208315 0.159535 +vt 0.234787 0.000228 +vt 0.214281 0.410714 +vt 0.214285 0.329999 +vt 0.068166 0.623727 +vt 0.001808 0.553219 +vt 0.073433 0.510806 +vt 0.073441 0.310677 +vt 0.068178 0.197756 +vt 0.206862 0.654446 +vt 0.092733 0.001179 +vt 0.074307 0.354217 +vt 0.613282 0.823429 +vt 0.623242 0.782265 +vt 0.655495 0.792745 +vt 0.018317 0.059452 +vt 0.023876 0.025998 +vt 0.074305 0.410716 +vt 0.001068 0.393780 +vt 0.018313 0.762053 +vt 0.001815 0.268262 +vt 0.000237 0.234386 +vt 0.655495 0.826658 +vt 0.623242 0.837137 +vt 0.214278 0.491490 +vt 0.696873 0.797121 +vt 0.689055 0.823582 +vt 0.964861 0.039622 +vt 0.975332 0.121997 +vt 0.001067 0.427694 +vt 0.001067 0.410726 +vt 0.074302 0.467260 +vt 0.991275 0.219891 +vt 0.936121 0.000232 +vt 0.999772 0.314756 +vt 0.676413 0.782265 +vt 0.831709 0.612784 +vt 0.925371 0.520351 +vt 0.693494 0.524297 +vt 0.710635 0.238095 +vt 0.952761 0.707388 +vt 0.710651 0.765428 +vt 0.897364 0.298208 +vt 0.712040 0.981518 +vt 0.819894 0.180926 +vt 0.234786 0.821264 +vt 0.494351 0.410719 +vt 0.602852 0.691211 +vt 0.000228 0.587095 +vt 0.074203 0.112694 +vt 0.603308 0.809701 +vt 0.023875 0.795507 +vn -0.5837 0.6621 -0.4701 +vn -0.5883 0.6607 -0.4663 +vn -0.5815 0.6623 -0.4724 +vn 0.5878 0.6613 -0.4661 +vn 0.5833 0.6623 -0.4702 +vn 0.5811 0.6626 -0.4726 +vn 0.9469 -0.3196 0.0349 +vn 0.9480 -0.3169 0.0288 +vn 0.9507 -0.3098 0.0128 +vn 0.0002 -0.9690 0.2470 +vn 0.0002 -0.9200 0.3920 +vn -0.9479 -0.3172 0.0290 +vn -0.9468 -0.3199 0.0351 +vn -0.9506 -0.3101 0.0130 +vn 0.0169 -0.4513 -0.8922 +vn 0.0088 -0.4569 -0.8895 +vn -0.0000 -0.4629 -0.8864 +vn 0.9333 -0.3447 -0.1003 +vn 0.9368 -0.3359 -0.0977 +vn 0.9276 -0.3586 -0.1045 +vn 0.5865 0.6617 -0.4671 +vn 0.5760 0.6649 -0.4756 +vn 0.5731 0.6659 -0.4778 +vn -0.9358 -0.3518 -0.0208 +vn -0.9386 -0.3435 -0.0310 +vn -0.9336 -0.3581 -0.0130 +vn -0.5869 0.6613 -0.4671 +vn -0.5764 0.6646 -0.4755 +vn 0.9360 -0.3514 -0.0210 +vn 0.9388 -0.3432 -0.0311 +vn 0.9403 -0.3384 -0.0370 +vn 0.0002 -0.9409 -0.3388 +vn -0.5692 0.6881 -0.4500 +vn -0.5630 0.6951 -0.4471 +vn -0.5578 0.7008 -0.4447 +vn 0.0002 -0.9912 0.1321 +vn 0.5689 0.6883 -0.4501 +vn 0.5626 0.6953 -0.4472 +vn 0.5765 0.6797 -0.4535 +vn -0.9332 -0.3451 -0.1002 +vn -0.9367 -0.3363 -0.0975 +vn -0.9402 -0.3271 -0.0947 +vn -0.9259 -0.1545 -0.3448 +vn -0.9311 -0.1294 -0.3411 +vn -0.9114 -0.2123 -0.3525 +vn 0.5780 0.8145 0.0508 +vn 0.5788 0.8138 0.0514 +vn 0.5800 0.8129 0.0522 +vn -0.9378 -0.3064 -0.1634 +vn -0.9396 -0.2981 -0.1685 +vn -0.9313 -0.3334 -0.1466 +vn 0.9379 -0.3060 -0.1633 +vn 0.9397 -0.2977 -0.1684 +vn 0.9453 -0.2678 -0.1864 +vn -0.5783 0.8142 0.0507 +vn -0.5792 0.8136 0.0513 +vn -0.5772 0.8151 0.0499 +vn -0.5820 0.3412 0.7381 +vn -0.5821 0.3411 0.7381 +vn -0.5819 0.3414 0.7382 +vn 0.9260 -0.1543 -0.3445 +vn 0.9312 -0.1292 -0.3407 +vn 0.9420 -0.0622 -0.3298 +vn -0.5565 0.6203 0.5528 +vn -0.5681 0.6094 0.5531 +vn -0.5461 0.6298 0.5524 +vn 0.0002 -0.4374 -0.8993 +vn 0.5562 0.6204 0.5529 +vn 0.5677 0.6096 0.5532 +vn 0.5787 0.5991 0.5534 +vn 0.5814 0.2653 0.7692 +vn 0.5812 0.2651 0.7694 +vn 0.5864 0.2707 0.7634 +vn 0.0002 -0.1916 -0.9815 +vn 0.0002 -0.1920 -0.9814 +vn 0.5817 0.3413 0.7384 +vn 0.5818 0.3412 0.7383 +vn 0.5820 0.3410 0.7383 +vn -0.9408 -0.0140 -0.3388 +vn -0.9427 -0.0059 -0.3337 +vn -0.9363 -0.0314 -0.3497 +vn 0.9409 -0.0139 -0.3384 +vn 0.9428 -0.0058 -0.3333 +vn 0.9468 0.0125 -0.3216 +vn 0.5707 -0.1688 0.8036 +vn -0.9497 -0.0087 -0.3130 +vn -0.9495 -0.0081 -0.3136 +vn -0.9509 -0.0115 -0.3094 +vn 0.9499 -0.0086 -0.3126 +vn 0.9496 -0.0080 -0.3132 +vn 0.9483 -0.0047 -0.3175 +vn -0.5817 0.2652 0.7689 +vn -0.5816 0.2651 0.7691 +vn -0.5770 0.2603 0.7741 +vn 0.0002 -0.1923 -0.9813 +vn 0.5559 -0.8240 -0.1091 +vn 0.5559 -0.8241 -0.1091 +vn -0.9236 -0.2635 -0.2784 +vn 0.9237 -0.2634 -0.2780 +vn -0.5710 -0.1688 0.8034 +vn 0.0002 -0.3219 -0.9468 +vn 0.0000 -0.9962 0.0872 +vn -0.3744 -0.7232 0.5803 +vn 0.0001 -0.8769 -0.4806 +vn 0.3742 -0.7232 0.5805 +vn -0.5558 -0.8241 -0.1093 +vn -0.0088 -0.4569 -0.8895 +vn -0.0168 -0.4513 -0.8922 +vn 0.0002 -0.9409 -0.3387 +vn 0.9442 -0.3257 0.0490 +vn -0.9441 -0.3261 0.0492 +vn 0.0209 -0.4484 -0.8936 +vn 0.9403 -0.3267 -0.0949 +vn -0.9402 -0.3387 -0.0368 +vn -0.5734 0.6656 -0.4777 +vn 0.9337 -0.3577 -0.0132 +vn -0.5768 0.6794 -0.4535 +vn 0.5574 0.7010 -0.4448 +vn -0.9275 -0.3589 -0.1044 +vn -0.9419 -0.0624 -0.3301 +vn 0.5768 0.8153 0.0500 +vn -0.9451 -0.2682 -0.1865 +vn 0.9315 -0.3329 -0.1465 +vn -0.5804 0.8127 0.0521 +vn -0.5823 0.3410 0.7380 +vn 0.9116 -0.2120 -0.3522 +vn -0.5791 0.5989 0.5532 +vn 0.0001 -0.4374 -0.8993 +vn 0.5457 0.6299 0.5526 +vn 0.5767 0.2603 0.7744 +vn 0.5815 0.3415 0.7384 +vn -0.9467 0.0124 -0.3220 +vn 0.9365 -0.0313 -0.3493 +vn -0.9481 -0.0048 -0.3179 +vn 0.9510 -0.0114 -0.3090 +vn -0.5868 0.2706 0.7632 +vn -0.0209 -0.4484 -0.8936 +s 1 +f 1/1/1 2/2/2 3/3/3 +f 2/4/4 4/5/5 3/6/6 +f 5/7/7 6/8/8 4/9/9 +f 7/10/10 8/11/10 9/12/10 +f 6/13/11 10/14/11 11/15/11 +f 12/16/12 13/17/13 1/18/14 +f 1/19/15 11/20/16 12/21/17 +f 14/22/18 15/23/19 16/24/20 +f 5/25/21 17/26/22 14/27/23 +f 7/28/24 18/29/25 13/17/26 +f 13/30/27 17/31/28 2/2/2 +f 19/32/29 14/22/30 16/24/31 +f 20/33/32 21/34/32 22/35/32 +f 17/31/33 23/36/34 24/37/35 +f 9/12/36 25/38/36 20/33/36 +f 17/26/37 26/39/38 14/27/39 +f 18/29/40 20/40/41 23/41/42 +f 22/42/43 27/43/44 28/44/45 +f 26/39/46 29/45/47 30/46/48 +f 20/40/49 28/47/50 23/41/51 +f 15/23/52 30/48/53 31/49/54 +f 23/36/55 29/50/56 24/37/57 +f 27/51/58 32/52/59 33/53/60 +f 31/54/61 34/55/62 35/56/63 +f 28/57/64 33/58/65 29/59/66 +f 22/42/67 36/60/67 37/61/67 +f 30/62/68 33/58/69 34/63/70 +f 32/64/71 38/65/72 39/66/73 +f 37/67/74 40/68/75 41/69/75 +f 34/70/76 32/64/77 39/66/78 +f 37/67/79 42/71/80 27/51/81 +f 35/72/82 39/66/83 43/73/84 +f 38/65/85 44/74/85 45/75/85 +f 42/71/86 46/76/87 47/77/88 +f 39/66/89 48/78/90 43/73/91 +f 32/52/92 47/79/93 49/80/94 +f 41/69/75 50/81/95 46/82/95 +f 45/83/96 51/84/97 52/85/96 +f 47/77/98 53/86/98 54/87/98 +f 38/88/99 52/85/99 48/78/99 +f 47/79/100 44/89/100 49/80/100 +f 50/81/101 53/90/101 46/82/101 +f 55/91/102 56/92/102 57/93/102 +f 44/89/103 58/94/103 57/95/103 +f 59/96/104 60/97/104 53/90/104 +f 44/74/105 56/98/105 45/75/105 +f 54/87/106 60/99/106 58/100/106 +f 55/91/102 58/101/102 60/102/102 +f 50/81/95 43/73/75 48/103/95 +f 11/20/107 4/104/108 6/105/17 +f 8/11/10 19/106/10 16/107/10 +f 59/96/104 51/108/104 55/109/104 +f 50/81/101 52/110/101 59/96/101 +f 25/38/36 16/107/36 15/111/36 +f 10/14/11 12/112/11 11/15/11 +f 40/68/75 35/72/74 43/73/75 +f 36/60/67 31/54/67 35/56/67 +f 21/34/32 15/111/32 31/113/109 +f 1/1/1 13/30/27 2/2/2 +f 2/4/4 5/25/21 4/5/5 +f 5/7/7 19/32/110 6/8/8 +f 7/10/10 10/14/10 8/11/10 +f 6/13/11 19/106/11 10/14/11 +f 12/16/12 7/28/111 13/17/13 +f 1/19/15 3/114/112 11/20/16 +f 14/22/18 26/115/113 15/23/19 +f 5/25/21 2/4/4 17/26/22 +f 7/28/24 9/116/114 18/29/25 +f 13/30/27 18/117/115 17/31/28 +f 19/32/29 5/7/116 14/22/30 +f 20/33/32 25/38/32 21/34/32 +f 17/31/33 18/117/117 23/36/34 +f 9/12/36 8/11/36 25/38/36 +f 17/26/37 24/118/118 26/39/38 +f 18/29/40 9/116/119 20/40/41 +f 22/42/43 37/61/120 27/43/44 +f 26/39/46 24/118/121 29/45/47 +f 20/40/49 22/119/122 28/47/50 +f 15/23/52 26/115/123 30/48/53 +f 23/36/55 28/120/124 29/50/56 +f 27/51/58 42/71/125 32/52/59 +f 31/54/61 30/121/126 34/55/62 +f 28/57/64 27/122/127 33/58/65 +f 22/42/67 21/123/128 36/60/67 +f 30/62/68 29/59/129 33/58/69 +f 32/64/71 49/124/130 38/65/72 +f 37/67/74 36/125/74 40/68/75 +f 34/70/76 33/126/131 32/64/77 +f 37/67/79 41/69/132 42/71/80 +f 35/72/82 34/70/133 39/66/83 +f 38/65/85 49/124/85 44/74/85 +f 42/71/86 41/69/134 46/76/87 +f 39/66/89 38/88/135 48/78/90 +f 32/52/92 42/71/136 47/79/93 +f 41/69/75 40/68/75 50/81/95 +f 45/83/96 56/127/97 51/84/97 +f 47/77/98 46/76/98 53/86/98 +f 38/88/99 45/83/99 52/85/99 +f 47/79/100 54/128/100 44/89/100 +f 50/81/101 59/96/101 53/90/101 +f 55/91/102 51/129/102 56/92/102 +f 44/89/103 54/128/103 58/94/103 +f 59/96/104 55/109/104 60/97/104 +f 44/74/105 57/130/105 56/98/105 +f 54/87/106 53/86/106 60/99/106 +f 55/91/102 57/93/102 58/101/102 +f 50/81/95 40/68/75 43/73/75 +f 11/20/107 3/114/137 4/104/108 +f 8/11/10 10/14/10 19/106/10 +f 59/96/104 52/110/104 51/108/104 +f 50/81/101 48/103/101 52/110/101 +f 25/38/36 8/11/36 16/107/36 +f 10/14/11 7/10/11 12/112/11 +f 40/68/75 36/125/74 35/72/74 +f 36/60/67 21/123/128 31/54/67 +f 21/34/32 25/38/32 15/111/32 diff --git a/src/main/resources/assets/hbm/textures/armor/tail_peep.png b/src/main/resources/assets/hbm/textures/armor/tail_peep.png new file mode 100644 index 0000000000000000000000000000000000000000..ae222d9f498ab0e07bde5e67e67a7ddd2998089a GIT binary patch literal 668 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 F{TJx8nRWmG literal 0 HcmV?d00001 From 485fbd35da9eb39e8be647e4c16aaec646ba0310 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 24 Jun 2024 16:29:49 +0200 Subject: [PATCH 12/17] combinator funnel item caching --- changelog | 1 + .../hbm/handler/nei/NEIUniversalHandler.java | 17 ++++++-- .../inventory/recipes/AssemblerRecipes.java | 2 +- src/main/java/com/hbm/items/ItemEnums.java | 4 ++ src/main/java/com/hbm/items/ModItems.java | 6 +-- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 41 ++++++++---------- src/main/java/com/hbm/main/NEIConfig.java | 3 +- .../machine/TileEntityMachineFunnel.java | 20 ++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + ...cret.canister => item_secret.canister.png} | Bin .../textures/items/item_secret.controller.png | Bin 0 -> 380 bytes 13 files changed, 65 insertions(+), 34 deletions(-) rename src/main/resources/assets/hbm/textures/items/{item_secret.canister => item_secret.canister.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/item_secret.controller.png diff --git a/changelog b/changelog index 779837ef2..0c583cd7e 100644 --- a/changelog +++ b/changelog @@ -17,6 +17,7 @@ * Decreased crafting complexity and time for the digiminer assembler recipe * Replaced recipes for the wind turbine and atomic disassembler * Added a config option for toggling Mekanism compat +* Added recipe caching to the combinator funnel, meaning it no longer has to iterate over the entire recipe list all the time for compression/automation, this should improve performance by a fair bit ## Fixed * Fixed crash caused by PRISM updating unloaded worlds diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 776755b75..df241808f 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.handler.imc.ICompatNHNEI; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; @@ -243,9 +244,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler implemen if(outputId.equals(getKey())) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + this.arecipes.add(new RecipeSet(ins, outs, recipe.getKey())); } @@ -257,10 +262,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler implemen @Override public void loadCraftingRecipes(ItemStack result) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + match: for(ItemStack[] array : outs) { for(ItemStack stack : array) { @@ -285,10 +293,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler implemen @Override public void loadUsageRecipes(ItemStack ingredient) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + match: for(ItemStack[] array : ins) { for(ItemStack stack : array) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 4889d3a13..3ede78d79 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -131,7 +131,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new OreDictStack(SA326.wireFine(), 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new OreDictStack(MINGRADE.wireFine(), 6), },250); + makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index cfc8072df..8e4592d72 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -75,4 +75,8 @@ public class ItemEnums { public static enum EnumPages { PAGE1, PAGE2, PAGE3, PAGE4, PAGE5, PAGE6, PAGE7, PAGE8 } + + public static enum EnumSecretType { + CANISTER, CONTROLLER + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index aaa4508e1..801e6db41 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -347,6 +347,7 @@ public class ModItems { public static Item thruster_nuclear; public static Item safety_fuse; public static Item part_generic; + public static Item item_secret; public static Item chemical_dye; public static Item crayon; @@ -675,7 +676,6 @@ public class ModItems { public static Item dysfunctional_reactor; public static Item blade_titanium; public static Item turbine_titanium; - public static Item generator_front; public static Item blade_tungsten; public static Item turbine_tungsten; public static Item pellet_coal; @@ -2614,6 +2614,7 @@ public class ModItems { thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); + item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon"); @@ -3029,7 +3030,6 @@ public class ModItems { dysfunctional_reactor = new Item().setUnlocalizedName("dysfunctional_reactor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dysfunctional_reactor"); blade_titanium = new Item().setUnlocalizedName("blade_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_titanium"); turbine_titanium = new Item().setUnlocalizedName("turbine_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_titanium"); - generator_front = new Item().setUnlocalizedName("generator_front").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":generator_front"); blade_tungsten = new Item().setUnlocalizedName("blade_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_tungsten"); turbine_tungsten = new Item().setUnlocalizedName("turbine_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_tungsten"); @@ -6151,6 +6151,7 @@ public class ModItems { GameRegistry.registerItem(chemical_dye, chemical_dye.getUnlocalizedName()); GameRegistry.registerItem(crayon, crayon.getUnlocalizedName()); GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); + GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName()); @@ -6180,7 +6181,6 @@ public class ModItems { GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName()); GameRegistry.registerItem(turbine_tungsten, turbine_tungsten.getUnlocalizedName()); GameRegistry.registerItem(flywheel_beryllium, flywheel_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(generator_front, generator_front.getUnlocalizedName()); GameRegistry.registerItem(toothpicks, toothpicks.getUnlocalizedName()); GameRegistry.registerItem(ducttape, ducttape.getUnlocalizedName()); GameRegistry.registerItem(catalyst_clay, catalyst_clay.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5d21de386..b5d663e6e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1338,6 +1338,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.ore_daffergon"); ignoreMappings.add("hbm:tile.ore_verticium"); ignoreMappings.add("hbm:item.warhead_mirvlet"); + ignoreMappings.add("hbm:item.generator_front"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 572aeb47d..35e25e94b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -6,12 +6,13 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Map.Entry; import java.util.Random; +import java.util.UUID; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; +import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.hbm.blocks.IStepTickReceiver; import com.hbm.blocks.ModBlocks; @@ -41,10 +42,6 @@ import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM; -import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM.RadPerWorld; -import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM.SubChunk; -import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -92,6 +89,8 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityCaveSpider; import net.minecraft.entity.monster.EntityCreeper; @@ -123,7 +122,6 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; @@ -854,6 +852,8 @@ public class ModEventHandler { ((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleFall((EntityPlayer)e); } + private static final UUID fopSpeed = UUID.fromString("e5a8c95d-c7a0-4ecf-8126-76fb8c949389"); + @SubscribeEvent public void onWingFlop(TickEvent.PlayerTickEvent event) { @@ -973,6 +973,17 @@ public class ModEventHandler { } } } + + if(player.getUniqueID().toString().equals(ShadyUtil.LePeeperSauvage) || player.getDisplayName().equals("LePeeperSauvage")) { + + Multimap multimap = HashMultimap.create(); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(fopSpeed, "FOP SPEED", 0.5, 1)); + player.getAttributeMap().removeAttributeModifiers(multimap); + + if(player.isSprinting()) { + player.getAttributeMap().applyAttributeModifiers(multimap); + } + } } } @@ -1066,31 +1077,13 @@ public class ModEventHandler { /// SYNC END /// } - //TODO: rewrite this so it doesn't look like shit if(player.worldObj.isRemote && event.phase == event.phase.START && !player.isInvisible() && !player.isSneaking()) { - if(player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft)) { - - int i = player.ticksExisted * 3; - - Vec3 vec = Vec3.createVectorHelper(3, 0, 0); - - vec.rotateAroundY((float) (i * Math.PI / 180D)); - - for(int k = 0; k < 5; k++) { - - vec.rotateAroundY((float) (1F * Math.PI / 180D)); - //player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + player.worldObj.rand.nextDouble() * 0.05, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); - } - } - if(player.getUniqueID().toString().equals(ShadyUtil.Pu_238)) { Vec3 vec = Vec3.createVectorHelper(3 * rand.nextDouble(), 0, 0); - vec.rotateAroundZ((float) (rand.nextDouble() * Math.PI)); vec.rotateAroundY((float) (rand.nextDouble() * Math.PI * 2)); - player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + vec.yCoord, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); } } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index f40158fe1..a2b9b5215 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -36,7 +36,8 @@ public class NEIConfig implements IConfigureNEI { //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); - + + API.hideItem(new ItemStack(ModItems.item_secret)); API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_difurnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_nuke_furnace_on)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java index 3b7a8f6fd..23ec51164 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -1,6 +1,9 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; + import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerFunnel; import com.hbm.inventory.gui.GUIFunnel; import com.hbm.tileentity.IGUIProvider; @@ -96,24 +99,37 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if(slot > 8) return false; + if(slots[slot] != null) return true; //if the slot is already occupied, return true because then the same type merging skips the validity check return this.getFrom9(stack) != null || this.getFrom4(stack) != null; } protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); + + //hashmap lookups are way faster than iterating over the entire ass crafting list all the fucking time + public static final HashMap from4Cache = new HashMap(); + public static final HashMap from9Cache = new HashMap(); public ItemStack getFrom4(ItemStack ingredient) { + ComparableStack singular = new ComparableStack(ingredient).makeSingular(); + if(from4Cache.containsKey(singular)) return from4Cache.get(singular); this.craftingInventory.clear(); this.craftingInventory.setInventorySlotContents(0, ingredient.copy()); this.craftingInventory.setInventorySlotContents(1, ingredient.copy()); this.craftingInventory.setInventorySlotContents(3, ingredient.copy()); this.craftingInventory.setInventorySlotContents(4, ingredient.copy()); - return getMatch(this.craftingInventory); + ItemStack match = getMatch(this.craftingInventory); + from4Cache.put(singular, match != null ? match.copy() : null); + return match; } public ItemStack getFrom9(ItemStack ingredient) { + ComparableStack singular = new ComparableStack(ingredient).makeSingular(); + if(from9Cache.containsKey(singular)) return from9Cache.get(singular); this.craftingInventory.clear(); for(int i = 0; i < 9; i++) this.craftingInventory.setInventorySlotContents(i, ingredient.copy()); - return getMatch(this.craftingInventory); + ItemStack match = getMatch(this.craftingInventory); + from9Cache.put(singular, match != null ? match.copy() : null); + return match; } public ItemStack getMatch(InventoryCrafting grid) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index cf2fcd61d..e87ccd894 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2273,6 +2273,8 @@ item.insert_polonium.name=Poloniumeinlage item.insert_steel.name=Schwere Stahleinlage item.insert_xsapi.name=XSAPI-Einlage item.insert_yharonite.name=Yharoniteinlage +item.item_secret.canister.name=Komposit SB-26 +item.item_secret.controller.name=Proprietäre Steuereinheit item.iv_blood.name=Blutbeutel item.iv_empty.name=Infusionsbeutel item.iv_xp.name=Erfahrungsbeutel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 31de7f94a..4d6007cde 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3073,6 +3073,8 @@ item.insert_polonium.name=Polonium Insert item.insert_steel.name=Heavy Steel Insert item.insert_xsapi.name=XSAPI Insert item.insert_yharonite.name=Yharonite Insert +item.item_secret.canister.name=Composition SB-26 +item.item_secret.controller.name=Proprietary Control Unit item.iv_blood.name=Blood Bag item.iv_empty.name=IV Bag item.iv_xp.name=Experience Bag diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.canister b/src/main/resources/assets/hbm/textures/items/item_secret.canister.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/item_secret.canister rename to src/main/resources/assets/hbm/textures/items/item_secret.canister.png diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.controller.png b/src/main/resources/assets/hbm/textures/items/item_secret.controller.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1095c9a7d9a012ded46f795293ccbb48f1daf8 GIT binary patch literal 380 zcmV-?0fYXDP)dU^XExy^GL6p${NFK&f+QU%@A^ z9Xck9nH1VZRA@jQ46TZFvq1tbaY%BxH;v*Vc;IsG{kh-aod3XIMA~Ylzx}&f294p+ zINq|P_VV>HVZ3A)>`)5H~ Date: Tue, 25 Jun 2024 16:11:19 +0200 Subject: [PATCH 13/17] slop textures --- .../textures/gui/processing/gui_ore_slopper.png | Bin 0 -> 4332 bytes .../assets/hbm/textures/items/bedrock_ore.png | Bin 0 -> 2400 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore.png diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png new file mode 100644 index 0000000000000000000000000000000000000000..50b928eb72c1cb09dfedfeae11dda007f5dacba2 GIT binary patch literal 4332 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 KtvT;`?|%S13hlE1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..e2687f007dd40c69db4a4dd9f1c0ffa480cc046a GIT binary patch literal 2400 zcmV-m37__fP) zSe0AQhtN=n>>q_v^wrAlz6jzqP~z>w(hJqAWYLFsy`oX%P7Rvknl!l)y2&^(HjSmI z+a$+_-QVQQ*_qkd{AqGYeh}_tX1>4k`~J>3v*-IeC!-Fc7+U5BWJqJ%Re({Sy#d*X zc=QBJY}=LE==iC)XQfg}&CbpO&}y~PW!A8@wKe7YK9*$xVB0pX>yppsQ~Rq_DkB7M zHl8SpbW|#pR6d`lP$;mvx{Bv{6E!Tv0lM8T0J&Ta%d)U-n@*?0zJ2==eF^bwHXGo@ zpXYgFW6=|r^zO(5oxI+AX%ivjg}CQ=Arg+`(CKvOcDvN;^+-RJN=0R}*%0YmE=RZ9 zrBEmU&~CRQ$=oxHJZ&P<#L(*`}YUK?C8;> z%C_wQCs>`lZQJ<1kLP);udjy!sZ=Ve*=&Y-E{?p3)h&v=bXb&4ndDv91qh7*JrRvY zgF>Oe!otFcGuL&oZ9BNuaWeNU%L=B1X^lpMTCFxh+;NY`zh?)X& zKby_cZnv>*n`*ThJX>F1XKrqeUatobIiJOc=XtEGtb|5dE|&}b=}DOC_xpIB$IQ$O ztE;OlEG LXx5PycvK=R))XX>q35cc{zk{wOW}{sT6z!Whx4JAo9a!;`90ZNP@H3 zEGsK3fiHdJW`N*hHa9mH08X7c#o@z;gFupcUQGXr%NjyROXDVS(_{fwE|-H3o&+4% zu8EiHe!m}ZlJ);L7%8G=Zf=fBrJ~}b zsh+r`Qj~5wdFd@(Nt(5Te!m}^1kdwA#3gxgu>=l8If*P^G*BEq;Spcf|61V65A!6mgX z$xmys35W}5(l2?O7EkN%cGU#No2~{YG<6WQ(ed}a78v{tN)~TIPj7VmgL=T-*5h{@ zA1j97=GWu5x~G3D_=(kE)UgtAQY;pM(DqnZ8J^B$^kJvtWMf1&Od`dUffpZ9_>s0_ z+83;@Wwae?W#S{nkRE`TWm%NVui`+jJXb$)(6c7Y^#(IYx`b#)cnwnsKxO-mvV194`? z5Uc~5&1T>vin!xAq0LG&_+qgb1gewPhqB{1fh3LcBRKPr1q^n5%>qXf-Xt%ZrsiH{ zFa>09UfL4dh+Hm*@B6_ai^avo#3ivL z+uWGdMV%Rc=o?@jP|%5sqc{Q*a4we%&H_aF0wSl7m>%Hb;v)HcKK5PH%n=~|bVUnc zVHH{mOYksAhE6<*e5=*Un8Qm(1Kc1VcP>C|ZEY>M_B@ZJrKODAOIurj!3faL80qrZ zRHKRO0A0>bPfw@XBh(K?iRsmxI3Mz>5~BixGmCN7YPB-GUQYqRNi=EO^Snq|55olL zhZE#0cUzC&ZTx*-4;ZNl=HSp9a8ZF$pf17L z7hrcZl8;T-&Hh`)LTE?*w}yK)uOZ{biB zE(eD+oVozry|5YBbsR1zQ2&PWE!dle$EVK^99>CET(=B-@#+A-2Cx}E_&7ZEYxswP zcVC7tk8$w@9WVAGoQX?-f%~(5b055P5q`OKkdTnYRfVr#AO0N^Xrw8)rjN^O@a{?Y z*&g`(I(*=(@WZbskA&+{Iq0%5eY7cdnZ(n!0xA^bQZ3qZz(wCxCf8|?WEB(H~W;7$O11fE<6?-}@b9AMnOz=y^>pV+$41^5{3 zoCNnJ`0g|C$+Yi329Ny&+ONa6ehla0-W#_NdOLN5DeWR$9A0is@%pa+!haNGrs1KN z(l@j1=diLBX8s4yZiAQ45dCZMzV8e@0*?$Y(f6BQ;Kirm!;`dkM?Qj^!9Fuw zA3UEtpJP9wDce0EHx9zD6sR}hN0T_Z)pbDVcRT}IJ^@c28!kwG0S8m!|1@E{vi|ss z+}i}X*PyT9`uE_8u}*ftb6xOcMdib(=OJ}rZYO->4fy8}-}m7B6?o@7oc$fV@)g*X zgwMfq8ea9_^=IMHaqULnPVN~leD=W+1?nnXJ_(1z$PK=~|KNPUE!urw5BNWbfsB2E S?!WH<0000 Date: Wed, 26 Jun 2024 15:19:45 +0200 Subject: [PATCH 14/17] bedrock ore item autogen --- changelog | 2 + src/main/java/com/hbm/items/ModItems.java | 5 +- .../hbm/items/special/ItemBedrockOreNew.java | 133 ++++++++++++++++++ .../java/com/hbm/main/CraftingManager.java | 2 +- .../assets/hbm/textures/items/bedrock_ore.png | Bin 2400 -> 2968 bytes .../hbm/textures/items/bedrock_ore_final.png | Bin 0 -> 2606 bytes .../hbm/textures/items/wire_aluminium.png | Bin 397 -> 461 bytes 7 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemBedrockOreNew.java create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png diff --git a/changelog b/changelog index 0c583cd7e..64f839ba2 100644 --- a/changelog +++ b/changelog @@ -18,6 +18,8 @@ * Replaced recipes for the wind turbine and atomic disassembler * Added a config option for toggling Mekanism compat * Added recipe caching to the combinator funnel, meaning it no longer has to iterate over the entire recipe list all the time for compression/automation, this should improve performance by a fair bit +* Diodes now use silicon nuggets instead of nether quartz +* Aluminium wire's coloring is now consistent with the ingot ## Fixed * Fixed crash caused by PRISM updating unloaded worlds diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 801e6db41..95cf47526 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -213,6 +213,7 @@ public class ModItems { public static Item ore_seared; //public static Item ore_radcleaned; public static Item ore_enriched; //final stage + public static Item bedrock_ore; public static Item billet_uranium; public static Item billet_u233; @@ -1085,7 +1086,7 @@ public class ModItems { public static Item waste_u233; public static Item waste_u235; public static Item waste_schrabidium; - public static Item waste_zfb_mox; //TODO: remind me to smite these useless waste items and condense em like the rbmk waste + public static Item waste_zfb_mox; public static Item waste_plate_u233; public static Item waste_plate_u235; @@ -2720,6 +2721,7 @@ public class ModItems { ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); + bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_base"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -5940,6 +5942,7 @@ public class ModItems { //GameRegistry.registerItem(ore_radcleaned, ore_radcleaned.getUnlocalizedName()); GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); //Crystals GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java new file mode 100644 index 000000000..e8534972f --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -0,0 +1,133 @@ +package com.hbm.items.special; + +import static com.hbm.inventory.OreDictManager.*; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import com.hbm.items.ItemEnums.EnumChunkType; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemBedrockOreNew extends Item { + + public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length]; + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + + for(int i = 0; i < BedrockOreGrade.values().length; i++) { + BedrockOreGrade grade = BedrockOreGrade.values()[i]; + for(int j = 0; j < BedrockOreType.values().length; j++) { + BedrockOreType type = BedrockOreType.values()[j]; + this.icons[i * BedrockOreType.values().length + j] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + + for(int i = 0; i < BedrockOreGrade.values().length; i++) { + BedrockOreGrade grade = BedrockOreGrade.values()[i]; + for(int j = 0; j < BedrockOreType.values().length; j++) { + BedrockOreType type = BedrockOreType.values()[j]; + list.add(this.make(grade, type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + int icon = this.getGrade(meta).ordinal() * BedrockOreType.values().length + this.getType(meta).ordinal(); + return icons[Math.abs(icon % icons.length)]; + } + + public static enum BedrockOreType { + // primary sulfuric solvent radsolvent + LIGHT_METAL( "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), + HEAVY_METAL( "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), + RARE_EARTH( "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR), + ACTINIDE( "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), + NON_METAL( "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), + CRYSTALLINE( "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); + + public String suffix; + public Object primary1, primary2; + public Object byproductAcid1, byproductAcid2, byproductAcid3; + public Object byproductSolvent1, byproductSolvent2, byproductSolvent3; + public Object byproductRad1, byproductRad2, byproductRad3; + + private BedrockOreType(String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) { + this.suffix = suffix; + this.primary1 = p1; this.primary2 = p2; + this.byproductAcid1 = bA1; this.byproductAcid2 = bA2; this.byproductAcid3 = bA3; + this.byproductSolvent1 = bS1; this.byproductSolvent2 = bS2; this.byproductSolvent3 = bS3; + this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3; + } + } + + public static enum BedrockOreGrade { + BASE("base"), //from the slopper + BASE_ROASTED("base"), //optional combination oven step, yields vitriol + BASE_WASHED("base"), //primitive-ass acidizer with water + PRIMARY("primary"), //centrifuging for more primary + PRIMARY_ROASTED("primary"), //optional comboven + PRIMARY_SULFURIC("primary"), //sulfuric acid + PRIMARY_NOSULFURIC("primary"), //from centrifuging, sulfuric byproduct removed + PRIMARY_SOLVENT("primary"), //solvent + PRIMARY_NOSOLVENT("primary"), //solvent byproduct removed + PRIMARY_RAD("primary"), //radsolvent + PRIMARY_NORAD("primary"), //radsolvent byproduct removed + PRIMARY_FIRST("primary"), //higher first material yield + PRIMARY_SECOND("primary"), //higher second material yield + CRUMBS("crumbs"), //endpoint for primary, recycling + + SULFURIC_BYPRODUCT("sulfuric"), //from centrifuging + SULFURIC_ROASTED("sulfuric"), //comboven again + SULFURIC_ARC("sulfuric"), //alternate step + SULFURIC_WASHED("sulfuric"), //sulfuric endpoint + + SOLVENT_BYPRODUCT("solvent"), //from centrifuging + SOLVENT_ROASTED("solvent"), //comboven again + SOLVENT_ARC("solvent"), //alternate step + SOLVENT_WASHED("solvent"), //solvent endpoint + + RAD_BYPRODUCT("rad"), //from centrifuging + RAD_ROASTED("rad"), //comboven again + RAD_ARC("rad"), //alternate step + RAD_WASHED("rad"); //rad endpoint + + public String prefix; + + private BedrockOreGrade(String prefix) { + this.prefix = prefix; + } + } + + public static ItemStack make(BedrockOreGrade grade, BedrockOreType type) { + return new ItemStack(ModItems.bedrock_ore, 1, grade.ordinal() << 4 | type.ordinal()); + } + + public BedrockOreGrade getGrade(int meta) { + return EnumUtil.grabEnumSafely(BedrockOreGrade.class, meta >> 4); + } + + public BedrockOreType getType(int meta) { + return EnumUtil.grabEnumSafely(BedrockOreType.class, meta & 15); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index dab2e5e44..a349a3ac8 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -254,7 +254,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_cable_paintable, 16), new Object[] { "WRW", "RIR", "WRW", 'W', STEEL.plate(), 'I', MINGRADE.ingot(), 'R', MINGRADE.wireFine() }); addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.cable_detector, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.red_wire_coated }); - addRecipeAuto(new ItemStack(ModBlocks.cable_diode, 1), new Object[] { " Q ", "CAC", " Q ", 'Q', NETHERQUARTZ.gem(), 'C', ModBlocks.red_cable, 'A', AL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.cable_diode, 1), new Object[] { " Q ", "CAC", " Q ", 'Q', SI.nugget(), 'C', ModBlocks.red_cable, 'A', AL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', MINGRADE.wireFine(), 'T', ModItems.coil_tungsten }); addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', MINGRADE.wireFine() }); addShapelessAuto(new ItemStack(ModBlocks.red_cable_classic, 1), new Object[] { ModBlocks.red_cable }); diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore.png index e2687f007dd40c69db4a4dd9f1c0ffa480cc046a..e62d194c0add58a16bc781470bf8876dda628bdd 100644 GIT binary patch literal 2968 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 O0000 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 Q0ssI207*qoM6N<$g7}dcN&o-= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/wire_aluminium.png b/src/main/resources/assets/hbm/textures/items/wire_aluminium.png index e4c210ec1c941721a6c03056aa321efbe0c709f6..a3ff6c135709fcc39df6418938d83f22fb891b64 100644 GIT binary patch delta 434 zcmV;j0Zsmm1I+`FC4X~5NmK|32nc)#WQYI&0fb3JK~y-6rBY2x0#Ot_qvHpP%*I6_ zR0J)Gpg-fPUC<&h3W^p%(ZY6-D}@$8Ah>ZUy6`u&iZt`1u^Pur8w<$+XXedq7udWk z>MZX)AMYL>@J|T5VO8l85y7%7`2BtuhJmHIX)agfiF3Ie7=L5%dc7D72Cys(C0QlL z7*-Z$gl`Qh4;{+q^Vo~6JJLd-5SgZl%0q`1XQ#NY!R_NS#ZQwo;bfGX?TLHTTD@-x zwN~%P00&C4N>}wqsw!PdoLxA?+*=gwo%;Pgg25ot=`;d?0Nidjx0|s+Rq2vxnkWIC>+RZSBfXd9sEwZ#9(*6b3Ie*VHP18hO*U`3ZGze zTmV>><*@)_*9HoK!)teF15K`R#dzU7PmzQRn5HQNg|Hk~G0+7aAsD)S(*t-vj^hw2 zJC4I9wQWmPRcg_?uDk~5EC*yDDF^}z!%#pj@+M*APeo+NKT`={1qg>*bKkctOK}ZZ zP=x@vt}8^eEQ|Ji7gOOXbzKWTR*?Bh@)fv(VHlL>ITc00u6J|%4Vv}~N-wpkRk{=< P00000NkvXXu0mjfaiW(C From 65d9f82b7d2f50996f48b6cb64cc41841e904caf Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 26 Jun 2024 21:51:32 +0200 Subject: [PATCH 15/17] slop --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/machine/MachineOreSlopper.java | 31 + .../hbm/items/special/ItemBedrockOreNew.java | 124 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RenderOreSlopper.java | 95 + .../machine/TileEntityMachineOreSlopper.java | 21 + .../hbm/models/machines/ore_slopper.obj | 4345 +++++++++++++++++ .../items/bedrock_ore_base_actinide.png | Bin 0 -> 275 bytes .../items/bedrock_ore_base_crystal.png | Bin 0 -> 275 bytes .../textures/items/bedrock_ore_base_heavy.png | Bin 0 -> 275 bytes .../textures/items/bedrock_ore_base_light.png | Bin 0 -> 275 bytes .../items/bedrock_ore_base_nonmetal.png | Bin 0 -> 275 bytes .../textures/items/bedrock_ore_base_rare.png | Bin 0 -> 275 bytes .../items/bedrock_ore_crumbs_actinide.png | Bin 0 -> 299 bytes .../items/bedrock_ore_crumbs_crystal.png | Bin 0 -> 299 bytes .../items/bedrock_ore_crumbs_heavy.png | Bin 0 -> 299 bytes .../items/bedrock_ore_crumbs_light.png | Bin 0 -> 299 bytes .../items/bedrock_ore_crumbs_nonmetal.png | Bin 0 -> 299 bytes .../items/bedrock_ore_crumbs_rare.png | Bin 0 -> 299 bytes .../hbm/textures/items/bedrock_ore_final.png | Bin 2606 -> 2758 bytes .../items/bedrock_ore_primary_actinide.png | Bin 0 -> 259 bytes .../items/bedrock_ore_primary_crystal.png | Bin 0 -> 236 bytes .../items/bedrock_ore_primary_heavy.png | Bin 0 -> 290 bytes .../items/bedrock_ore_primary_light.png | Bin 0 -> 288 bytes .../items/bedrock_ore_primary_nonmetal.png | Bin 0 -> 279 bytes .../items/bedrock_ore_primary_rare.png | Bin 0 -> 259 bytes .../items/bedrock_ore_rad_actinide.png | Bin 0 -> 380 bytes .../items/bedrock_ore_rad_crystal.png | Bin 0 -> 190 bytes .../textures/items/bedrock_ore_rad_heavy.png | Bin 0 -> 214 bytes .../textures/items/bedrock_ore_rad_light.png | Bin 0 -> 266 bytes .../items/bedrock_ore_rad_nonmetal.png | Bin 0 -> 249 bytes .../textures/items/bedrock_ore_rad_rare.png | Bin 0 -> 380 bytes .../items/bedrock_ore_solvent_actinide.png | Bin 0 -> 308 bytes .../items/bedrock_ore_solvent_crystal.png | Bin 0 -> 254 bytes .../items/bedrock_ore_solvent_heavy.png | Bin 0 -> 239 bytes .../items/bedrock_ore_solvent_light.png | Bin 0 -> 291 bytes .../items/bedrock_ore_solvent_nonmetal.png | Bin 0 -> 244 bytes .../items/bedrock_ore_solvent_rare.png | Bin 0 -> 308 bytes .../items/bedrock_ore_sulfuric_actinide.png | Bin 0 -> 293 bytes .../items/bedrock_ore_sulfuric_crystal.png | Bin 0 -> 225 bytes .../items/bedrock_ore_sulfuric_heavy.png | Bin 0 -> 274 bytes .../items/bedrock_ore_sulfuric_light.png | Bin 0 -> 357 bytes .../items/bedrock_ore_sulfuric_nonmetal.png | Bin 0 -> 257 bytes .../items/bedrock_ore_sulfuric_rare.png | Bin 0 -> 293 bytes .../hbm/textures/models/weapons/lag.png | Bin 0 -> 2838 bytes 46 files changed, 4575 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java create mode 100644 src/main/resources/assets/hbm/models/machines/ore_slopper.obj create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_base_rare.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_rare.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_rare.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_actinide.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_nonmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lag.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4d4cf4afa..7488f693f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -978,6 +978,7 @@ public class ModBlocks { public static Block machine_electrolyser; public static Block machine_excavator; + public static Block machine_ore_slopper; public static Block machine_autosaw; public static Block machine_mining_laser; @@ -2184,6 +2185,7 @@ public class ModBlocks { machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ore_slopper = new MachineOreSlopper().setBlockName("machine_ore_slopper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); 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"); @@ -3258,6 +3260,7 @@ public class ModBlocks { register(machine_coker); register(machine_autosaw); register(machine_excavator); + register(machine_ore_slopper); register(machine_mining_laser); register(barricade); register(machine_turbofan); diff --git a/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java new file mode 100644 index 000000000..24b11eae7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineOreSlopper extends BlockDummyable { + + public MachineOreSlopper() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineOreSlopper(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 3, 3, 1, 1}; + } + + @Override + public int getOffset() { + return 3; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index e8534972f..c561cd214 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -12,8 +12,11 @@ import cpw.mods.fml.relauncher.SideOnly; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.lib.RefStrings; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -26,13 +29,18 @@ public class ItemBedrockOreNew extends Item { @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { - super.registerIcons(reg); + - for(int i = 0; i < BedrockOreGrade.values().length; i++) { - BedrockOreGrade grade = BedrockOreGrade.values()[i]; - for(int j = 0; j < BedrockOreType.values().length; j++) { - BedrockOreType type = BedrockOreType.values()[j]; - this.icons[i * BedrockOreType.values().length + j] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix); + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; + for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; + String placeholderName = RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix + "-" + (i * BedrockOreType.values().length + j); + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, type.light, type.dark)); + map.setTextureEntry(placeholderName, mutableIcon); + this.icons[i * BedrockOreType.values().length + j] = mutableIcon; + } } } } @@ -41,10 +49,8 @@ public class ItemBedrockOreNew extends Item { @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < BedrockOreGrade.values().length; i++) { - BedrockOreGrade grade = BedrockOreGrade.values()[i]; - for(int j = 0; j < BedrockOreType.values().length; j++) { - BedrockOreType type = BedrockOreType.values()[j]; + for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; + for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; list.add(this.make(grade, type)); } } @@ -52,27 +58,37 @@ public class ItemBedrockOreNew extends Item { @Override @SideOnly(Side.CLIENT) - public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + public IIcon getIconFromDamage(int meta) { int icon = this.getGrade(meta).ordinal() * BedrockOreType.values().length + this.getType(meta).ordinal(); return icons[Math.abs(icon % icons.length)]; } - public static enum BedrockOreType { - // primary sulfuric solvent radsolvent - LIGHT_METAL( "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), - HEAVY_METAL( "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), - RARE_EARTH( "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR), - ACTINIDE( "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), - NON_METAL( "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), - CRYSTALLINE( "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); + @Override + public String getItemStackDisplayName(ItemStack stack) { + int meta = stack.getItemDamage(); + return this.getGrade(meta).name() + " " + this.getType(meta).suffix; + } + public static enum BedrockOreType { + // primary sulfuric solvent radsolvent + LIGHT_METAL( 0xFFFFFF, 0x353535, "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), + HEAVY_METAL( 0x868686, 0x000000, "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), + RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR), + ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), + NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), + CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); + + public int light; + public int dark; public String suffix; public Object primary1, primary2; public Object byproductAcid1, byproductAcid2, byproductAcid3; public Object byproductSolvent1, byproductSolvent2, byproductSolvent3; public Object byproductRad1, byproductRad2, byproductRad3; - private BedrockOreType(String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) { + private BedrockOreType(int light, int dark, String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) { + this.light = light; + this.dark = dark; this.suffix = suffix; this.primary1 = p1; this.primary2 = p2; this.byproductAcid1 = bA1; this.byproductAcid2 = bA2; this.byproductAcid3 = bA3; @@ -80,41 +96,55 @@ public class ItemBedrockOreNew extends Item { this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3; } } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + BedrockOreGrade grade = this.getGrade(stack.getItemDamage()); + return grade.tint; + } + + public static final int none = 0xFFFFFF; + public static final int roasted = 0xCFCFCF; + public static final int arc = 0xC3A2A2; + public static final int washed = 0xDBE2CB; public static enum BedrockOreGrade { - BASE("base"), //from the slopper - BASE_ROASTED("base"), //optional combination oven step, yields vitriol - BASE_WASHED("base"), //primitive-ass acidizer with water - PRIMARY("primary"), //centrifuging for more primary - PRIMARY_ROASTED("primary"), //optional comboven - PRIMARY_SULFURIC("primary"), //sulfuric acid - PRIMARY_NOSULFURIC("primary"), //from centrifuging, sulfuric byproduct removed - PRIMARY_SOLVENT("primary"), //solvent - PRIMARY_NOSOLVENT("primary"), //solvent byproduct removed - PRIMARY_RAD("primary"), //radsolvent - PRIMARY_NORAD("primary"), //radsolvent byproduct removed - PRIMARY_FIRST("primary"), //higher first material yield - PRIMARY_SECOND("primary"), //higher second material yield - CRUMBS("crumbs"), //endpoint for primary, recycling + BASE(none, "base"), //from the slopper + BASE_ROASTED(roasted, "base"), //optional combination oven step, yields vitriol + BASE_WASHED(washed, "base"), //primitive-ass acidizer with water + PRIMARY(none, "primary"), //centrifuging for more primary + PRIMARY_ROASTED(roasted, "primary"), //optional comboven + PRIMARY_SULFURIC(0xFFFFD3, "primary"), //sulfuric acid + PRIMARY_NOSULFURIC(0xD3D4FF, "primary"),//from centrifuging, sulfuric byproduct removed + PRIMARY_SOLVENT(0xD3F0FF, "primary"), //solvent + PRIMARY_NOSOLVENT(0xFFDED3, "primary"), //solvent byproduct removed + PRIMARY_RAD(0xECFFD3, "primary"), //radsolvent + PRIMARY_NORAD(0xEBD3FF, "primary"), //radsolvent byproduct removed + PRIMARY_FIRST(0xFFD3D4, "primary"), //higher first material yield + PRIMARY_SECOND(0xD3FFEB, "primary"), //higher second material yield + CRUMBS(none, "crumbs"), //endpoint for primary, recycling - SULFURIC_BYPRODUCT("sulfuric"), //from centrifuging - SULFURIC_ROASTED("sulfuric"), //comboven again - SULFURIC_ARC("sulfuric"), //alternate step - SULFURIC_WASHED("sulfuric"), //sulfuric endpoint + SULFURIC_BYPRODUCT(none, "sulfuric"), //from centrifuging + SULFURIC_ROASTED(roasted, "sulfuric"), //comboven again + SULFURIC_ARC(arc, "sulfuric"), //alternate step + SULFURIC_WASHED(washed, "sulfuric"), //sulfuric endpoint - SOLVENT_BYPRODUCT("solvent"), //from centrifuging - SOLVENT_ROASTED("solvent"), //comboven again - SOLVENT_ARC("solvent"), //alternate step - SOLVENT_WASHED("solvent"), //solvent endpoint + SOLVENT_BYPRODUCT(none, "solvent"), //from centrifuging + SOLVENT_ROASTED(roasted, "solvent"), //comboven again + SOLVENT_ARC(arc, "solvent"), //alternate step + SOLVENT_WASHED(washed, "solvent"), //solvent endpoint - RAD_BYPRODUCT("rad"), //from centrifuging - RAD_ROASTED("rad"), //comboven again - RAD_ARC("rad"), //alternate step - RAD_WASHED("rad"); //rad endpoint + RAD_BYPRODUCT(none, "rad"), //from centrifuging + RAD_ROASTED(roasted, "rad"), //comboven again + RAD_ARC(arc, "rad"), //alternate step + RAD_WASHED(washed, "rad"); //rad endpoint + public int tint; public String prefix; - private BedrockOreGrade(String prefix) { + private BedrockOreGrade(int tint, String prefix) { + this.tint = tint; this.prefix = prefix; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4b0bea738..ee1339949 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -302,6 +302,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDiesel.class, new RenderDieselGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCombustionEngine.class, new RenderCombustionEngine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExcavator.class, new RenderExcavator()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOreSlopper.class, new RenderOreSlopper()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMixer.class, new RenderMixer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHephaestus.class, new RenderHephaestus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAutosaw.class, new RenderAutosaw()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 781c51d02..4df4c2649 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -174,6 +174,7 @@ public class ResourceManager { //Mining Drill public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); + public static final IModelCustom ore_slopper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/ore_slopper.obj")).asVBO(); //Laser Miner public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")).asVBO(); @@ -576,6 +577,7 @@ public class ResourceManager { //Mining Drill public static final ResourceLocation mining_drill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_drill.png"); + public static final ResourceLocation ore_slopper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ore_slopper.png"); //Laser Miner public static final ResourceLocation mining_laser_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_base.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java b/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java new file mode 100644 index 000000000..6db111b7f --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java @@ -0,0 +1,95 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.IItemRenderer; + +public class RenderOreSlopper extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.ore_slopper_tex); + ResourceManager.ore_slopper.renderPart("Base"); + ResourceManager.ore_slopper.renderPart("Slider"); + + GL11.glPushMatrix(); + double extend = Math.sin(((tile.getWorldObj().getTotalWorldTime() + interp) * 0.1 % (Math.PI * 2))) * 0.625+ 0.625; + GL11.glTranslated(0, -MathHelper.clamp_double(extend - 0.25, 0, 1.25), 0); + ResourceManager.ore_slopper.renderPart("Hydraulics"); + GL11.glTranslated(0, -MathHelper.clamp_double(extend, 0, 1.25), 0); + ResourceManager.ore_slopper.renderPart("Bucket"); + GL11.glPopMatrix(); + + double speed = 10; + + GL11.glPushMatrix(); + GL11.glTranslated(0.375, 2.75, 0); + GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * speed, 0, 0, 1); + GL11.glTranslated(-0.375, -2.75, 0); + ResourceManager.ore_slopper.renderPart("BladesLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-0.375, 2.75, 0); + GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * -speed, 0, 0, 1); + GL11.glTranslated(0.375, -2.75, 0); + ResourceManager.ore_slopper.renderPart("BladesRight"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.875, -1); + GL11.glRotated((tile.getWorldObj().getTotalWorldTime() % 360 + interp) * -25, 1, 0, 0); + GL11.glTranslated(0, -1.875, 1); + ResourceManager.ore_slopper.renderPart("Fan"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ore_slopper); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(3.75, 3.75, 3.75); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(-90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.ore_slopper_tex); + ResourceManager.ore_slopper.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java new file mode 100644 index 000000000..f8554ab4c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -0,0 +1,21 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityMachineOreSlopper extends TileEntityMachineBase { + + public TileEntityMachineOreSlopper() { + super(0); + } + + @Override + public String getName() { + return "container.machineOreSlopper"; + } + + @Override + public void updateEntity() { + + } + +} diff --git a/src/main/resources/assets/hbm/models/machines/ore_slopper.obj b/src/main/resources/assets/hbm/models/machines/ore_slopper.obj new file mode 100644 index 000000000..0670c20f5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/ore_slopper.obj @@ -0,0 +1,4345 @@ +# Blender v2.79 (sub 0) OBJ File: 'ore_slopper.blend' +# www.blender.org +o Slider +v 1.125000 3.562500 1.437500 +v 1.375000 3.562500 1.437500 +v 1.125000 3.562500 1.187500 +v 1.375000 3.562500 1.187500 +v 1.375000 5.562500 1.187500 +v 1.125000 5.562500 1.187500 +v 1.375000 5.562500 1.437500 +v 1.125000 5.562500 1.437500 +v 1.125000 5.562500 2.937500 +v 1.375000 5.562500 2.937500 +v 1.125000 5.562500 2.687500 +v 1.375000 5.562500 2.687500 +v 1.375000 3.562500 2.687500 +v 1.125000 3.562500 2.687500 +v 1.375000 3.562500 2.937500 +v 1.125000 3.562500 2.937500 +v -1.437500 3.312500 1.500000 +v -1.062500 3.312500 1.500000 +v -1.437500 3.312500 1.125000 +v -1.062500 3.312500 1.125000 +v -1.062500 3.562500 1.125000 +v -1.437500 3.562500 1.125000 +v -1.062500 3.562500 1.500000 +v -1.437500 3.562500 1.500000 +v -1.437500 3.562500 3.000000 +v -1.062500 3.562500 3.000000 +v -1.437500 3.562500 2.625000 +v -1.062500 3.562500 2.625000 +v -1.062500 3.312500 2.625000 +v -1.437500 3.312500 2.625000 +v -1.062500 3.312500 3.000000 +v -1.437500 3.312500 3.000000 +v 1.062500 3.312500 3.000000 +v 1.437500 3.312500 3.000000 +v 1.062500 3.312500 2.625000 +v 1.437500 3.312500 2.625000 +v 1.437500 3.562500 2.625000 +v 1.062500 3.562500 2.625000 +v 1.437500 3.562500 3.000000 +v 1.062500 3.562500 3.000000 +v 1.062500 3.562500 1.500000 +v 1.437500 3.562500 1.500000 +v 1.062500 3.562500 1.125000 +v 1.437500 3.562500 1.125000 +v 1.437500 3.312500 1.125000 +v 1.062500 3.312500 1.125000 +v 1.437500 3.312500 1.500000 +v 1.062500 3.312500 1.500000 +v -1.375000 3.562500 1.437500 +v -1.125000 3.562500 1.437500 +v -1.375000 3.562500 1.187500 +v -1.125000 3.562500 1.187500 +v -1.125000 5.562500 1.187500 +v -1.375000 5.562500 1.187500 +v -1.125000 5.562500 1.437500 +v -1.375000 5.562500 1.437500 +v -1.375000 5.562500 2.937500 +v -1.125000 5.562500 2.937500 +v -1.375000 5.562500 2.687500 +v -1.125000 5.562500 2.687500 +v -1.125000 3.562500 2.687500 +v -1.375000 3.562500 2.687500 +v -1.125000 3.562500 2.937500 +v -1.375000 3.562500 2.937500 +v 1.375000 5.562500 1.187500 +v 1.375000 5.562500 1.437500 +v -1.375000 5.562500 1.187500 +v -1.375000 5.562500 1.437500 +v 1.125000 5.812500 1.437500 +v 1.125000 5.812500 1.187500 +v -1.125000 5.812500 1.187500 +v -1.125000 5.812500 1.437500 +v 1.375000 5.562500 2.937500 +v 1.375000 5.562500 2.687500 +v -1.375000 5.562500 2.937500 +v -1.375000 5.562500 2.687500 +v 1.125000 5.812500 2.937500 +v 1.125000 5.812500 2.687500 +v -1.125000 5.812500 2.687500 +v -1.125000 5.812500 2.937500 +v -1.000000 5.562500 3.062500 +v 1.000000 5.562500 3.062500 +v -1.000000 5.562500 1.062500 +v 1.000000 5.562500 1.062500 +v -1.000000 4.562500 1.062500 +v -1.000000 4.562500 3.062500 +v 1.000000 4.562500 3.062500 +v 1.000000 4.562500 1.062500 +v 0.500000 4.312500 1.562500 +v -0.500000 4.312500 1.562500 +v -0.500000 4.312500 2.562500 +v 0.500000 4.312500 2.562500 +v -0.750000 4.312500 1.312500 +v -0.750000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.750000 4.312500 1.312500 +v -0.500000 4.812500 1.562500 +v -0.500000 4.812500 2.562500 +v 0.500000 4.812500 2.562500 +v 0.500000 4.812500 1.562500 +v 1.187500 4.000000 2.687500 +v 1.187500 4.125000 2.687500 +v 1.187500 4.000000 1.437500 +v 1.187500 4.125000 1.437500 +v 1.312500 4.000000 2.687500 +v 1.312500 4.125000 2.687500 +v 1.312500 4.000000 1.437500 +v 1.312500 4.125000 1.437500 +v -1.312500 4.000000 2.687500 +v -1.312500 4.125000 2.687500 +v -1.312500 4.000000 1.437500 +v -1.312500 4.125000 1.437500 +v -1.187500 4.000000 2.687500 +v -1.187500 4.125000 2.687500 +v -1.187500 4.000000 1.437500 +v -1.187500 4.125000 1.437500 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.658537 0.256410 +vt 0.676829 0.294872 +vt 0.658537 0.294872 +vt 0.676829 0.320513 +vt 0.658537 0.358974 +vt 0.658537 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.695122 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.695122 0.294872 +vt 0.676829 0.320513 +vt 0.676829 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.658537 0.320513 +vt 0.658537 0.294872 +vt 0.658537 0.358974 +vt 0.658537 0.256410 +vt 0.658537 0.256410 +vt 0.676829 0.294872 +vt 0.658537 0.294872 +vt 0.676829 0.320513 +vt 0.658537 0.358974 +vt 0.658537 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.695122 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.695122 0.294872 +vt 0.676829 0.320513 +vt 0.676829 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.658537 0.320513 +vt 0.658537 0.294872 +vt 0.658537 0.358974 +vt 0.658537 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.274390 0.692308 +vt 0.408537 0.717949 +vt 0.274390 0.717949 +vt 0.396341 0.743590 +vt 0.286585 0.769231 +vt 0.286585 0.743590 +vt 0.408537 0.769231 +vt 0.408537 0.743590 +vt 0.274390 0.794872 +vt 0.396341 0.769231 +vt 0.408537 0.794872 +vt 0.274390 0.743590 +vt 0.274390 0.769231 +vt 0.274390 0.692308 +vt 0.408537 0.717949 +vt 0.274390 0.717949 +vt 0.396341 0.743590 +vt 0.286585 0.769231 +vt 0.286585 0.743590 +vt 0.274390 0.794872 +vt 0.396341 0.769231 +vt 0.408537 0.794872 +vt 0.274390 0.743590 +vt 0.274390 0.769231 +vt 0.408537 0.769231 +vt 0.408537 0.743590 +vt 0.512195 0.794872 +vt 0.414634 1.000000 +vt 0.414634 0.794872 +vt 0.609756 0.692308 +vt 0.707317 0.794872 +vt 0.609756 0.794872 +vt 0.414634 0.692308 +vt 0.512195 0.692308 +vt 0.707317 0.692308 +vt 0.804878 0.794872 +vt 0.439024 0.641026 +vt 0.487805 0.589744 +vt 0.487805 0.641026 +vt 0.792683 0.666667 +vt 0.804878 0.692308 +vt 0.597561 0.666667 +vt 0.500000 0.666667 +vt 0.695122 0.666667 +vt 0.780488 0.641026 +vt 0.719512 0.666667 +vt 0.731707 0.641026 +vt 0.585366 0.641026 +vt 0.524390 0.666667 +vt 0.536585 0.641026 +vt 0.426829 0.666667 +vt 0.682927 0.641026 +vt 0.621951 0.666667 +vt 0.634146 0.641026 +vt 0.487805 0.487179 +vt 0.439024 0.589744 +vt 0.439024 0.487179 +vt 0.780488 0.589744 +vt 0.682927 0.589744 +vt 0.585366 0.589744 +vt 0.725610 0.448718 +vt 0.731707 0.320513 +vt 0.731707 0.448718 +vt 0.719512 0.320513 +vt 0.713415 0.448718 +vt 0.713415 0.320513 +vt 0.719512 0.320513 +vt 0.713415 0.448718 +vt 0.713415 0.320513 +vt 0.725610 0.448718 +vt 0.731707 0.320513 +vt 0.731707 0.448718 +vt 0.707317 0.448718 +vt 0.707317 0.320513 +vt 0.725610 0.320513 +vt 0.719512 0.448718 +vt 0.707317 0.448718 +vt 0.707317 0.320513 +vt 0.725610 0.320513 +vt 0.719512 0.448718 +vt 0.487805 0.461538 +vt 0.676829 0.256410 +vt 0.676829 0.358974 +vt 0.731707 0.320513 +vt 0.731707 0.320513 +vt 0.676829 0.358974 +vt 0.676829 0.256410 +vt 0.676829 0.256410 +vt 0.676829 0.358974 +vt 0.731707 0.320513 +vt 0.731707 0.320513 +vt 0.676829 0.358974 +vt 0.676829 0.256410 +vt 0.487805 0.461538 +vt 0.487805 0.461538 +vt 0.487805 0.461538 +vt 0.408537 0.692308 +vt 0.408537 0.692308 +vt 0.512195 1.000000 +vt 0.731707 0.589744 +vt 0.634146 0.589744 +vt 0.536585 0.589744 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 12/1/1 15/2/1 13/3/1 +f 9/4/2 14/5/2 16/6/2 +f 11/7/3 13/3/3 14/5/3 +f 10/8/4 16/9/4 15/2/4 +f 19/10/5 18/11/5 17/12/5 +f 23/13/6 22/14/6 24/15/6 +f 18/11/4 24/15/4 17/12/4 +f 19/16/3 21/17/3 20/18/3 +f 17/19/2 22/20/2 19/16/2 +f 20/18/1 23/13/1 18/11/1 +f 29/21/1 26/22/1 31/23/1 +f 32/24/2 27/25/2 30/26/2 +f 30/26/3 28/27/3 29/21/3 +f 31/23/4 25/28/4 32/29/4 +f 26/22/6 27/30/6 25/28/6 +f 30/31/5 31/23/5 32/29/5 +f 35/32/5 34/33/5 33/34/5 +f 39/35/6 38/36/6 40/37/6 +f 34/33/4 40/37/4 33/34/4 +f 35/38/3 37/39/3 36/40/3 +f 33/41/2 38/42/2 35/38/2 +f 36/40/1 39/35/1 34/33/1 +f 45/43/1 42/44/1 47/45/1 +f 48/46/2 43/47/2 46/48/2 +f 46/48/3 44/49/3 45/43/3 +f 47/45/4 41/50/4 48/51/4 +f 42/44/6 43/52/6 41/50/6 +f 46/53/5 47/45/5 48/51/5 +f 5/54/1 2/55/1 4/56/1 +f 8/57/2 3/58/2 1/59/2 +f 6/60/3 4/56/3 3/58/3 +f 7/61/4 1/62/4 2/55/4 +f 60/63/1 63/64/1 61/65/1 +f 57/66/2 62/67/2 64/68/2 +f 59/69/3 61/65/3 62/67/3 +f 58/70/4 64/71/4 63/64/4 +f 53/72/1 50/73/1 52/74/1 +f 56/75/2 51/76/2 49/77/2 +f 54/78/3 52/74/3 51/76/3 +f 55/79/4 49/80/4 50/73/4 +f 66/81/5 67/82/5 65/83/5 +f 71/84/6 69/85/6 70/86/6 +f 67/82/3 70/86/3 65/83/3 +f 68/87/7 71/84/7 67/88/7 +f 66/89/4 72/90/4 68/91/4 +f 65/92/8 69/85/8 66/93/8 +f 73/94/5 76/95/5 74/96/5 +f 79/97/6 77/98/6 78/99/6 +f 73/100/4 80/101/4 75/102/4 +f 74/103/8 77/98/8 73/104/8 +f 76/95/3 78/99/3 74/96/3 +f 75/105/7 79/97/7 76/106/7 +f 82/107/6 83/108/6 81/109/6 +f 88/110/3 83/111/3 84/112/3 +f 86/113/4 82/107/4 81/109/4 +f 87/114/1 84/112/1 82/107/1 +f 85/115/2 81/116/2 83/111/2 +f 91/117/3 99/118/3 92/119/3 +f 85/115/9 94/120/9 86/121/9 +f 87/114/10 96/122/10 88/110/10 +f 86/113/11 95/123/11 87/114/11 +f 88/110/12 93/124/12 85/115/12 +f 91/125/5 93/126/5 90/127/5 +f 89/128/5 95/129/5 92/130/5 +f 92/119/5 94/131/5 91/117/5 +f 90/132/5 96/133/5 89/134/5 +f 100/135/5 98/136/5 97/137/5 +f 90/127/1 98/138/1 91/125/1 +f 89/134/4 97/139/4 90/132/4 +f 92/130/2 100/140/2 89/128/2 +f 102/141/2 103/142/2 101/143/2 +f 116/144/1 113/145/1 115/146/1 +f 108/147/1 105/148/1 107/149/1 +f 110/150/2 111/151/2 109/152/2 +f 107/149/5 101/153/5 103/154/5 +f 104/155/6 106/156/6 108/147/6 +f 115/146/5 109/157/5 111/158/5 +f 112/159/6 114/160/6 116/144/6 +f 12/1/1 10/8/1 15/2/1 +f 9/4/2 11/7/2 14/5/2 +f 11/7/3 12/1/3 13/3/3 +f 10/8/4 9/161/4 16/9/4 +f 19/10/5 20/162/5 18/11/5 +f 23/13/6 21/163/6 22/14/6 +f 18/11/4 23/13/4 24/15/4 +f 19/16/3 22/20/3 21/17/3 +f 17/19/2 24/164/2 22/20/2 +f 20/18/1 21/17/1 23/13/1 +f 29/21/1 28/27/1 26/22/1 +f 32/24/2 25/165/2 27/25/2 +f 30/26/3 27/25/3 28/27/3 +f 31/23/4 26/22/4 25/28/4 +f 26/22/6 28/166/6 27/30/6 +f 30/31/5 29/167/5 31/23/5 +f 35/32/5 36/168/5 34/33/5 +f 39/35/6 37/169/6 38/36/6 +f 34/33/4 39/35/4 40/37/4 +f 35/38/3 38/42/3 37/39/3 +f 33/41/2 40/170/2 38/42/2 +f 36/40/1 37/39/1 39/35/1 +f 45/43/1 44/49/1 42/44/1 +f 48/46/2 41/171/2 43/47/2 +f 46/48/3 43/47/3 44/49/3 +f 47/45/4 42/44/4 41/50/4 +f 42/44/6 44/172/6 43/52/6 +f 46/53/5 45/173/5 47/45/5 +f 5/54/1 7/61/1 2/55/1 +f 8/57/2 6/60/2 3/58/2 +f 6/60/3 5/54/3 4/56/3 +f 7/61/4 8/174/4 1/62/4 +f 60/63/1 58/70/1 63/64/1 +f 57/66/2 59/69/2 62/67/2 +f 59/69/3 60/63/3 61/65/3 +f 58/70/4 57/175/4 64/71/4 +f 53/72/1 55/79/1 50/73/1 +f 56/75/2 54/78/2 51/76/2 +f 54/78/3 53/72/3 52/74/3 +f 55/79/4 56/176/4 49/80/4 +f 66/81/5 68/177/5 67/82/5 +f 71/84/6 72/90/6 69/85/6 +f 67/82/3 71/84/3 70/86/3 +f 68/87/7 72/90/7 71/84/7 +f 66/89/4 69/85/4 72/90/4 +f 65/92/8 70/86/8 69/85/8 +f 73/94/5 75/178/5 76/95/5 +f 79/97/6 80/101/6 77/98/6 +f 73/100/4 77/98/4 80/101/4 +f 74/103/8 78/99/8 77/98/8 +f 76/95/3 79/97/3 78/99/3 +f 75/105/7 80/101/7 79/97/7 +f 82/107/6 84/179/6 83/108/6 +f 88/110/3 85/115/3 83/111/3 +f 86/113/4 87/114/4 82/107/4 +f 87/114/1 88/110/1 84/112/1 +f 85/115/2 86/121/2 81/116/2 +f 91/117/3 98/136/3 99/118/3 +f 85/115/9 93/126/9 94/120/9 +f 87/114/10 95/129/10 96/122/10 +f 86/113/11 94/131/11 95/123/11 +f 88/110/12 96/133/12 93/124/12 +f 91/125/5 94/120/5 93/126/5 +f 89/128/5 96/122/5 95/129/5 +f 92/119/5 95/123/5 94/131/5 +f 90/132/5 93/124/5 96/133/5 +f 100/135/5 99/118/5 98/136/5 +f 90/127/1 97/180/1 98/138/1 +f 89/134/4 100/181/4 97/139/4 +f 92/130/2 99/182/2 100/140/2 +f 102/141/2 104/155/2 103/142/2 +f 116/144/1 114/160/1 113/145/1 +f 108/147/1 106/156/1 105/148/1 +f 110/150/2 112/159/2 111/151/2 +f 107/149/5 105/148/5 101/153/5 +f 104/155/6 102/141/6 106/156/6 +f 115/146/5 113/145/5 109/157/5 +f 112/159/6 110/150/6 114/160/6 +o Hydraulics +v -0.750000 4.312500 2.812500 +v -0.500000 4.312500 2.812500 +v -0.750000 4.312500 2.562500 +v -0.500000 4.312500 2.562500 +v -0.750000 5.562500 2.562500 +v -0.750000 5.562500 2.812500 +v -0.500000 5.562500 2.812500 +v -0.500000 5.562500 2.562500 +v -0.750000 4.312500 1.562500 +v -0.500000 4.312500 1.562500 +v -0.750000 4.312500 1.312500 +v -0.500000 4.312500 1.312500 +v -0.750000 5.562500 1.312500 +v -0.750000 5.562500 1.562500 +v -0.500000 5.562500 1.562500 +v -0.500000 5.562500 1.312500 +v 0.500000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.500000 4.312500 2.562500 +v 0.750000 4.312500 2.562500 +v 0.500000 5.562500 2.562500 +v 0.500000 5.562500 2.812500 +v 0.750000 5.562500 2.812500 +v 0.750000 5.562500 2.562500 +v 0.500000 4.312500 1.562500 +v 0.750000 4.312500 1.562500 +v 0.500000 4.312500 1.312500 +v 0.750000 4.312500 1.312500 +v 0.500000 5.562500 1.312500 +v 0.500000 5.562500 1.562500 +v 0.750000 5.562500 1.562500 +v 0.750000 5.562500 1.312500 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.780488 0.230769 +vt 0.780488 0.230769 +vt 0.817073 0.384615 +vt 0.817073 0.384615 +vt 0.780488 0.230769 +vt 0.780488 0.230769 +vt 0.817073 0.384615 +vt 0.817073 0.384615 +vn 0.0000 -1.0000 0.0000 +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 +s off +f 119/183/13 118/184/13 117/185/13 +f 127/186/13 126/187/13 125/188/13 +f 117/189/14 121/190/14 119/191/14 +f 119/191/15 124/192/15 120/193/15 +f 118/184/16 122/194/16 117/185/16 +f 120/193/17 123/195/17 118/184/17 +f 125/196/14 129/197/14 127/198/14 +f 127/198/15 132/199/15 128/200/15 +f 126/187/16 130/201/16 125/188/16 +f 128/200/17 131/202/17 126/187/17 +f 135/203/13 134/204/13 133/205/13 +f 143/206/13 142/207/13 141/208/13 +f 133/209/14 137/210/14 135/211/14 +f 135/211/15 140/212/15 136/213/15 +f 134/204/16 138/214/16 133/205/16 +f 136/213/17 139/215/17 134/204/17 +f 141/216/14 145/217/14 143/218/14 +f 143/218/15 148/219/15 144/220/15 +f 142/207/16 146/221/16 141/208/16 +f 144/220/17 147/222/17 142/207/17 +f 119/183/13 120/223/13 118/184/13 +f 127/186/13 128/224/13 126/187/13 +f 117/189/14 122/225/14 121/190/14 +f 119/191/15 121/190/15 124/192/15 +f 118/184/16 123/195/16 122/194/16 +f 120/193/17 124/192/17 123/195/17 +f 125/196/14 130/226/14 129/197/14 +f 127/198/15 129/197/15 132/199/15 +f 126/187/16 131/202/16 130/201/16 +f 128/200/17 132/199/17 131/202/17 +f 135/203/13 136/227/13 134/204/13 +f 143/206/13 144/228/13 142/207/13 +f 133/209/14 138/229/14 137/210/14 +f 135/211/15 137/210/15 140/212/15 +f 134/204/16 139/215/16 138/214/16 +f 136/213/17 140/212/17 139/215/17 +f 141/216/14 146/230/14 145/217/14 +f 143/218/15 145/217/15 148/219/15 +f 142/207/16 147/222/16 146/221/16 +f 144/220/17 148/219/17 147/222/17 +o Bucket +v -0.500000 4.062500 1.562500 +v -0.500000 4.062500 2.562500 +v 0.500000 4.062500 2.562500 +v 0.500000 4.062500 1.562500 +v 0.750000 4.312500 1.312500 +v -0.750000 4.312500 1.312500 +v -0.750000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.250000 4.187500 1.812500 +v -0.250000 4.187500 1.812500 +v -0.250000 4.187500 2.312500 +v 0.250000 4.187500 2.312500 +v -0.750000 4.562500 1.312500 +v -0.750000 4.562500 2.812500 +v 0.750000 4.562500 2.812500 +v 0.750000 4.562500 1.312500 +v -0.687500 4.312500 2.750000 +v -0.562500 4.312500 2.750000 +v -0.687500 4.312500 2.625000 +v -0.562500 4.312500 2.625000 +v -0.687500 5.562500 2.750000 +v -0.562500 5.562500 2.750000 +v -0.687500 5.562500 2.625000 +v -0.562500 5.562500 2.625000 +v 0.562500 4.312500 2.750000 +v 0.687500 4.312500 2.750000 +v 0.562500 4.312500 2.625000 +v 0.687500 4.312500 2.625000 +v 0.562500 5.562500 2.750000 +v 0.687500 5.562500 2.750000 +v 0.562500 5.562500 2.625000 +v 0.687500 5.562500 2.625000 +v -0.687500 4.312500 1.500000 +v -0.562500 4.312500 1.500000 +v -0.687500 4.312500 1.375000 +v -0.562500 4.312500 1.375000 +v -0.687500 5.562500 1.500000 +v -0.562500 5.562500 1.500000 +v -0.687500 5.562500 1.375000 +v -0.562500 5.562500 1.375000 +v 0.562500 4.312500 1.500000 +v 0.687500 4.312500 1.500000 +v 0.562500 4.312500 1.375000 +v 0.687500 4.312500 1.375000 +v 0.562500 5.562500 1.500000 +v 0.687500 5.562500 1.500000 +v 0.562500 5.562500 1.375000 +v 0.687500 5.562500 1.375000 +vt 0.829268 0.410256 +vt 0.890244 0.384615 +vt 0.902439 0.410256 +vt 0.841463 0.282051 +vt 0.890244 0.282051 +vt 0.902439 0.256410 +vt 0.829268 0.256410 +vt 0.841463 0.384615 +vt 0.902439 0.230769 +vt 0.914634 0.410256 +vt 0.829268 0.435897 +vt 0.817073 0.256410 +vt 0.878049 0.538462 +vt 0.853659 0.487179 +vt 0.878049 0.487179 +vt 0.902439 0.589744 +vt 0.853659 0.538462 +vt 0.829268 0.589744 +vt 0.902439 0.435897 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.829268 0.230769 +vt 0.914634 0.256410 +vt 0.817073 0.410256 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6000 0.8000 0.0000 +vn -0.6000 0.8000 0.0000 +vn 0.0000 0.8000 -0.6000 +vn 0.0000 0.8000 0.6000 +s off +f 153/231/18 149/232/18 154/233/18 +f 149/232/19 151/234/19 150/235/19 +f 155/236/20 151/234/20 156/237/20 +f 156/237/21 152/238/21 153/231/21 +f 154/233/22 150/235/22 155/236/22 +f 156/237/23 162/239/23 155/236/23 +f 155/236/24 161/240/24 154/233/24 +f 154/233/25 164/241/25 153/231/25 +f 153/231/26 163/242/26 156/237/26 +f 159/243/27 157/244/27 158/245/27 +f 158/245/28 162/246/28 159/243/28 +f 160/247/29 164/241/29 157/244/29 +f 159/243/30 163/248/30 160/247/30 +f 157/244/31 161/249/31 158/245/31 +f 175/250/25 180/251/25 176/252/25 +f 174/253/23 177/254/23 173/255/23 +f 167/256/25 172/257/25 168/258/25 +f 166/259/23 169/260/23 165/261/23 +f 168/258/26 170/262/26 166/259/26 +f 165/263/24 171/264/24 167/256/24 +f 176/252/26 178/265/26 174/253/26 +f 173/266/24 179/267/24 175/250/24 +f 191/268/25 196/269/25 192/270/25 +f 190/271/23 193/272/23 189/273/23 +f 183/274/25 188/275/25 184/276/25 +f 182/277/23 185/278/23 181/279/23 +f 184/276/26 186/280/26 182/277/26 +f 181/281/24 187/282/24 183/274/24 +f 192/270/26 194/283/26 190/271/26 +f 189/284/24 195/285/24 191/268/24 +f 153/231/18 152/238/18 149/232/18 +f 149/232/19 152/238/19 151/234/19 +f 155/236/20 150/235/20 151/234/20 +f 156/237/21 151/234/21 152/238/21 +f 154/233/22 149/232/22 150/235/22 +f 156/237/23 163/286/23 162/239/23 +f 155/236/24 162/287/24 161/240/24 +f 154/233/25 161/249/25 164/241/25 +f 153/231/26 164/288/26 163/242/26 +f 159/243/27 160/247/27 157/244/27 +f 158/245/28 161/249/28 162/246/28 +f 160/247/29 163/248/29 164/241/29 +f 159/243/30 162/246/30 163/248/30 +f 157/244/31 164/241/31 161/249/31 +f 175/250/25 179/267/25 180/251/25 +f 174/253/23 178/265/23 177/254/23 +f 167/256/25 171/264/25 172/257/25 +f 166/259/23 170/262/23 169/260/23 +f 168/258/26 172/257/26 170/262/26 +f 165/263/24 169/289/24 171/264/24 +f 176/252/26 180/251/26 178/265/26 +f 173/266/24 177/290/24 179/267/24 +f 191/268/25 195/285/25 196/269/25 +f 190/271/23 194/283/23 193/272/23 +f 183/274/25 187/282/25 188/275/25 +f 182/277/23 186/280/23 185/278/23 +f 184/276/26 188/275/26 186/280/26 +f 181/281/24 185/291/24 187/282/24 +f 192/270/26 196/269/26 194/283/26 +f 189/284/24 193/292/24 195/285/24 +o BladesRight +v -0.375000 3.187500 0.000000 +v -0.156250 3.128886 0.000000 +v 0.003886 2.968750 0.000000 +v 0.062500 2.750000 0.000000 +v 0.003886 2.531250 0.000000 +v -0.156250 2.371114 0.000000 +v -0.375000 2.312500 0.000000 +v -0.593750 2.371114 0.000000 +v -0.753886 2.531250 0.000000 +v -0.812500 2.750000 0.000000 +v -0.753886 2.968750 0.000000 +v -0.593750 3.128886 0.000000 +v -0.375000 3.062500 -0.250000 +v -0.218750 3.020633 -0.250000 +v -0.104367 2.906250 -0.250000 +v -0.062500 2.750000 -0.250000 +v -0.104367 2.593750 -0.250000 +v -0.218750 2.479367 -0.250000 +v -0.375000 2.437500 -0.250000 +v -0.531250 2.479367 -0.250000 +v -0.645633 2.593750 -0.250000 +v -0.687500 2.750000 -0.250000 +v -0.645633 2.906250 -0.250000 +v -0.531250 3.020633 -0.250000 +v -0.375000 3.187500 -0.250000 +v -0.156250 3.128886 -0.250000 +v 0.003886 2.968750 -0.250000 +v 0.062500 2.750000 -0.250000 +v 0.003886 2.531250 -0.250000 +v -0.156250 2.371114 -0.250000 +v -0.375000 2.312500 -0.250000 +v -0.593750 2.371114 -0.250000 +v -0.753886 2.531250 -0.250000 +v -0.812500 2.750000 -0.250000 +v -0.753886 2.968750 -0.250000 +v -0.593750 3.128886 -0.250000 +v -0.375000 3.062500 -0.500000 +v -0.218750 3.020633 -0.500000 +v -0.104367 2.906250 -0.500000 +v -0.062500 2.750000 -0.500000 +v -0.104367 2.593750 -0.500000 +v -0.218750 2.479367 -0.500000 +v -0.375000 2.437500 -0.500000 +v -0.531250 2.479367 -0.500000 +v -0.645633 2.593750 -0.500000 +v -0.687500 2.750000 -0.500000 +v -0.645633 2.906250 -0.500000 +v -0.531250 3.020633 -0.500000 +v -0.375000 3.187500 -1.500000 +v -0.156250 3.128886 -1.500000 +v 0.003886 2.968750 -1.500000 +v 0.062500 2.750000 -1.500000 +v 0.003886 2.531250 -1.500000 +v -0.156250 2.371114 -1.500000 +v -0.375000 2.312500 -1.500000 +v -0.593750 2.371114 -1.500000 +v -0.753886 2.531250 -1.500000 +v -0.812500 2.750000 -1.500000 +v -0.753886 2.968750 -1.500000 +v -0.593750 3.128886 -1.500000 +v -0.375000 3.062500 -1.750000 +v -0.218750 3.020633 -1.750000 +v -0.104367 2.906250 -1.750000 +v -0.062500 2.750000 -1.750000 +v -0.104367 2.593750 -1.750000 +v -0.218750 2.479367 -1.750000 +v -0.375000 2.437500 -1.750000 +v -0.531250 2.479367 -1.750000 +v -0.645633 2.593750 -1.750000 +v -0.687500 2.750000 -1.750000 +v -0.645633 2.906250 -1.750000 +v -0.531250 3.020633 -1.750000 +v -0.375000 3.187500 -1.750000 +v -0.156250 3.128886 -1.750000 +v 0.003886 2.968750 -1.750000 +v 0.062500 2.750000 -1.750000 +v 0.003886 2.531250 -1.750000 +v -0.156250 2.371114 -1.750000 +v -0.375000 2.312500 -1.750000 +v -0.593750 2.371114 -1.750000 +v -0.753886 2.531250 -1.750000 +v -0.812500 2.750000 -1.750000 +v -0.753886 2.968750 -1.750000 +v -0.593750 3.128886 -1.750000 +v -0.375000 3.062500 -2.000000 +v -0.218750 3.020633 -2.000000 +v -0.104367 2.906250 -2.000000 +v -0.062500 2.750000 -2.000000 +v -0.104367 2.593750 -2.000000 +v -0.218750 2.479367 -2.000000 +v -0.375000 2.437500 -2.000000 +v -0.531250 2.479367 -2.000000 +v -0.645633 2.593750 -2.000000 +v -0.687500 2.750000 -2.000000 +v -0.645633 2.906250 -2.000000 +v -0.531250 3.020633 -2.000000 +v -0.531250 3.020633 -1.500000 +v -0.645633 2.906250 -1.500000 +v -0.687500 2.750000 -1.500000 +v -0.645633 2.593750 -1.500000 +v -0.531250 2.479367 -1.500000 +v -0.375000 2.437500 -1.500000 +v -0.218750 2.479367 -1.500000 +v -0.104367 2.593750 -1.500000 +v -0.062500 2.750000 -1.500000 +v -0.104367 2.906250 -1.500000 +v -0.218750 3.020633 -1.500000 +v -0.375000 3.062500 -1.500000 +v -0.593750 3.128886 -1.250000 +v -0.753886 2.968750 -1.250000 +v -0.812500 2.750000 -1.250000 +v -0.753886 2.531250 -1.250000 +v -0.593750 2.371114 -1.250000 +v -0.375000 2.312500 -1.250000 +v -0.156250 2.371114 -1.250000 +v 0.003886 2.531250 -1.250000 +v 0.062500 2.750000 -1.250000 +v 0.003886 2.968750 -1.250000 +v -0.156250 3.128886 -1.250000 +v -0.375000 3.187500 -1.250000 +v -0.531250 3.020633 -1.250000 +v -0.645633 2.906250 -1.250000 +v -0.687500 2.750000 -1.250000 +v -0.645633 2.593750 -1.250000 +v -0.531250 2.479367 -1.250000 +v -0.375000 2.437500 -1.250000 +v -0.218750 2.479367 -1.250000 +v -0.104367 2.593750 -1.250000 +v -0.062500 2.750000 -1.250000 +v -0.104367 2.906250 -1.250000 +v -0.218750 3.020633 -1.250000 +v -0.375000 3.062500 -1.250000 +v -0.593750 3.128886 -1.000000 +v -0.753886 2.968750 -1.000000 +v -0.812500 2.750000 -1.000000 +v -0.753886 2.531250 -1.000000 +v -0.593750 2.371114 -1.000000 +v -0.375000 2.312500 -1.000000 +v -0.156250 2.371114 -1.000000 +v 0.003886 2.531250 -1.000000 +v 0.062500 2.750000 -1.000000 +v 0.003886 2.968750 -1.000000 +v -0.156250 3.128886 -1.000000 +v -0.375000 3.187500 -1.000000 +v -0.531250 3.020633 -1.000000 +v -0.645633 2.906250 -1.000000 +v -0.687500 2.750000 -1.000000 +v -0.645633 2.593750 -1.000000 +v -0.531250 2.479367 -1.000000 +v -0.375000 2.437500 -1.000000 +v -0.218750 2.479367 -1.000000 +v -0.104367 2.593750 -1.000000 +v -0.062500 2.750000 -1.000000 +v -0.104367 2.906250 -1.000000 +v -0.218750 3.020633 -1.000000 +v -0.375000 3.062500 -1.000000 +v -0.593750 3.128886 -0.750000 +v -0.753886 2.968750 -0.750000 +v -0.812500 2.750000 -0.750000 +v -0.753886 2.531250 -0.750000 +v -0.593750 2.371114 -0.750000 +v -0.375000 2.312500 -0.750000 +v -0.156250 2.371114 -0.750000 +v 0.003886 2.531250 -0.750000 +v 0.062500 2.750000 -0.750000 +v 0.003886 2.968750 -0.750000 +v -0.156250 3.128886 -0.750000 +v -0.375000 3.187500 -0.750000 +v -0.531250 3.020633 -0.750000 +v -0.645633 2.906250 -0.750000 +v -0.687500 2.750000 -0.750000 +v -0.645633 2.593750 -0.750000 +v -0.531250 2.479367 -0.750000 +v -0.375000 2.437500 -0.750000 +v -0.218750 2.479367 -0.750000 +v -0.104367 2.593750 -0.750000 +v -0.062500 2.750000 -0.750000 +v -0.104367 2.906250 -0.750000 +v -0.218750 3.020633 -0.750000 +v -0.375000 3.062500 -0.750000 +v -0.593750 3.128886 -0.500000 +v -0.753886 2.968750 -0.500000 +v -0.812500 2.750000 -0.500000 +v -0.753886 2.531250 -0.500000 +v -0.593750 2.371114 -0.500000 +v -0.375000 2.312500 -0.500000 +v -0.156250 2.371114 -0.500000 +v 0.003886 2.531250 -0.500000 +v 0.062500 2.750000 -0.500000 +v 0.003886 2.968750 -0.500000 +v -0.156250 3.128886 -0.500000 +v -0.375000 3.187500 -0.500000 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.076220 0.794872 +vt 0.085366 0.807692 +vt 0.073171 0.807692 +vt 0.094512 0.794872 +vt 0.088415 0.794872 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.112805 0.794872 +vt 0.121951 0.807692 +vt 0.109756 0.807692 +vt 0.125000 0.794872 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.137195 0.794872 +vt 0.003049 0.794872 +vt 0.012195 0.807692 +vt 0.000000 0.807692 +vt 0.015244 0.794872 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.027439 0.794872 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.012195 0.807692 +vt 0.015244 0.794872 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.121951 0.807692 +vt 0.125000 0.794872 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.807692 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.036585 0.807692 +vt 0.045732 0.794872 +vt 0.048780 0.807692 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.015244 0.794872 +vt 0.012195 0.807692 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.146341 0.807692 +vt 0.125000 0.794872 +vt 0.121951 0.807692 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.097561 0.807692 +vt 0.106707 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.070122 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt -0.000000 0.833333 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt 0.000000 0.833333 +vt 0.082317 0.794872 +vt 0.118902 0.794872 +vt 0.131098 0.794872 +vt 0.146341 0.807692 +vt 0.009146 0.794872 +vt 0.021341 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.009146 0.794872 +vt 0.146341 0.807692 +vt 0.118902 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.057927 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.039634 0.794872 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.009146 0.794872 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.118902 0.794872 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.134146 0.807692 +vt 0.121951 0.807692 +vt 0.060976 0.807692 +vt 0.085366 0.807692 +vt 0.036585 0.807692 +vt 0.024390 0.807692 +vt 0.097561 0.807692 +vt 0.048780 0.807692 +vt 0.012195 0.807692 +vt -0.000000 0.807692 +vt 0.109756 0.807692 +vt 0.073171 0.807692 +vt 0.106707 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.057927 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.082317 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.146341 0.807692 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 219/293/32 232/294/32 220/295/32 +f 232/294/32 209/296/32 220/297/32 +f 209/298/32 222/299/32 210/300/32 +f 210/301/32 223/302/32 211/303/32 +f 223/302/32 212/304/32 211/305/32 +f 212/306/32 225/307/32 213/308/32 +f 213/309/32 226/310/32 214/311/32 +f 226/310/32 215/312/32 214/313/32 +f 215/314/32 228/315/32 216/316/32 +f 216/317/32 229/318/32 217/319/32 +f 229/318/32 218/320/32 217/321/32 +f 230/322/32 219/323/32 218/324/32 +f 267/325/32 280/326/32 268/327/32 +f 280/326/32 257/328/32 268/329/32 +f 257/330/32 270/331/32 258/332/32 +f 258/333/32 271/334/32 259/335/32 +f 271/334/32 260/336/32 259/337/32 +f 260/338/32 273/339/32 261/340/32 +f 261/341/32 274/342/32 262/343/32 +f 274/342/32 263/344/32 262/345/32 +f 263/346/32 276/347/32 264/348/32 +f 264/349/32 277/350/32 265/351/32 +f 277/350/32 266/352/32 265/353/32 +f 278/354/32 267/355/32 266/356/32 +f 293/357/33 255/358/33 294/359/33 +f 304/360/33 256/361/33 293/362/33 +f 304/363/33 246/364/33 245/365/33 +f 302/366/33 246/364/33 303/367/33 +f 301/368/33 247/369/33 302/370/33 +f 301/371/33 249/372/33 248/373/33 +f 300/374/33 250/375/33 249/372/33 +f 298/376/33 250/375/33 299/377/33 +f 298/378/33 252/379/33 251/380/33 +f 297/381/33 253/382/33 252/379/33 +f 295/383/33 253/382/33 296/384/33 +f 294/385/33 254/386/33 295/387/33 +f 307/388/32 318/389/32 319/390/32 +f 308/391/32 319/392/32 320/393/32 +f 321/394/32 308/391/32 320/395/32 +f 322/396/32 309/397/32 321/398/32 +f 311/399/32 322/400/32 323/401/32 +f 324/402/32 311/399/32 323/403/32 +f 325/404/32 312/405/32 324/406/32 +f 314/407/32 325/408/32 326/409/32 +f 327/410/32 314/407/32 326/411/32 +f 328/412/32 315/413/32 327/414/32 +f 305/415/32 328/416/32 317/417/32 +f 318/418/32 305/415/32 317/419/32 +f 243/420/33 379/421/33 242/422/33 +f 242/423/33 380/424/33 241/425/33 +f 241/426/33 381/427/33 240/428/33 +f 239/429/33 381/427/33 382/430/33 +f 239/431/33 383/432/33 238/433/33 +f 238/434/33 384/435/33 237/436/33 +f 236/437/33 384/435/33 385/438/33 +f 236/439/33 386/440/33 235/441/33 +f 234/442/33 386/440/33 387/443/33 +f 233/444/33 387/443/33 388/445/33 +f 233/446/33 377/447/33 244/448/33 +f 243/449/33 377/447/33 378/450/33 +f 355/451/32 366/452/32 367/453/32 +f 356/454/32 367/455/32 368/456/32 +f 369/457/32 356/454/32 368/458/32 +f 370/459/32 357/460/32 369/461/32 +f 359/462/32 370/463/32 371/464/32 +f 372/465/32 359/462/32 371/466/32 +f 373/467/32 360/468/32 372/469/32 +f 362/470/32 373/471/32 374/472/32 +f 375/473/32 362/470/32 374/474/32 +f 376/475/32 363/476/32 375/477/32 +f 353/478/32 376/479/32 365/480/32 +f 366/481/32 353/478/32 365/482/32 +f 331/483/33 342/484/33 330/485/33 +f 332/486/33 343/487/33 331/483/33 +f 345/488/33 332/486/33 333/489/33 +f 346/490/33 333/489/33 334/491/33 +f 335/492/33 346/493/33 334/494/33 +f 348/495/33 335/492/33 336/496/33 +f 349/497/33 336/496/33 337/498/33 +f 338/499/33 349/500/33 337/498/33 +f 351/501/33 338/499/33 339/502/33 +f 352/503/33 339/502/33 340/504/33 +f 329/505/33 352/506/33 340/504/33 +f 342/507/33 329/505/33 330/485/33 +f 219/293/32 231/508/32 232/294/32 +f 232/294/32 221/509/32 209/296/32 +f 209/298/32 221/509/32 222/299/32 +f 210/301/32 222/299/32 223/302/32 +f 223/302/32 224/510/32 212/304/32 +f 212/306/32 224/510/32 225/307/32 +f 213/309/32 225/307/32 226/310/32 +f 226/310/32 227/511/32 215/312/32 +f 215/314/32 227/512/32 228/315/32 +f 216/317/32 228/315/32 229/318/32 +f 229/318/32 230/322/32 218/320/32 +f 230/322/32 231/508/32 219/323/32 +f 267/325/32 279/513/32 280/326/32 +f 280/326/32 269/514/32 257/328/32 +f 257/330/32 269/514/32 270/331/32 +f 258/333/32 270/331/32 271/334/32 +f 271/334/32 272/515/32 260/336/32 +f 260/338/32 272/515/32 273/339/32 +f 261/341/32 273/339/32 274/342/32 +f 274/342/32 275/516/32 263/344/32 +f 263/346/32 275/517/32 276/347/32 +f 264/349/32 276/347/32 277/350/32 +f 277/350/32 278/354/32 266/352/32 +f 278/354/32 279/513/32 267/355/32 +f 293/357/33 256/361/33 255/358/33 +f 304/360/33 245/365/33 256/361/33 +f 304/363/33 303/518/33 246/364/33 +f 302/366/33 247/369/33 246/364/33 +f 301/368/33 248/373/33 247/369/33 +f 301/371/33 300/519/33 249/372/33 +f 300/374/33 299/520/33 250/375/33 +f 298/376/33 251/521/33 250/375/33 +f 298/378/33 297/522/33 252/379/33 +f 297/381/33 296/523/33 253/382/33 +f 295/383/33 254/386/33 253/382/33 +f 294/385/33 255/358/33 254/386/33 +f 307/388/32 306/524/32 318/389/32 +f 308/391/32 307/388/32 319/392/32 +f 321/394/32 309/397/32 308/391/32 +f 322/396/32 310/525/32 309/397/32 +f 311/399/32 310/526/32 322/400/32 +f 324/402/32 312/405/32 311/399/32 +f 325/404/32 313/527/32 312/405/32 +f 314/407/32 313/527/32 325/408/32 +f 327/410/32 315/413/32 314/407/32 +f 328/412/32 316/528/32 315/413/32 +f 305/415/32 316/528/32 328/416/32 +f 318/418/32 306/524/32 305/415/32 +f 243/420/33 378/450/33 379/421/33 +f 242/423/33 379/421/33 380/424/33 +f 241/426/33 380/424/33 381/427/33 +f 239/429/33 240/529/33 381/427/33 +f 239/431/33 382/530/33 383/432/33 +f 238/434/33 383/432/33 384/435/33 +f 236/437/33 237/531/33 384/435/33 +f 236/439/33 385/438/33 386/440/33 +f 234/442/33 235/532/33 386/440/33 +f 233/444/33 234/533/33 387/443/33 +f 233/446/33 388/445/33 377/447/33 +f 243/449/33 244/534/33 377/447/33 +f 355/451/32 354/535/32 366/452/32 +f 356/454/32 355/451/32 367/455/32 +f 369/457/32 357/460/32 356/454/32 +f 370/459/32 358/536/32 357/460/32 +f 359/462/32 358/537/32 370/463/32 +f 372/465/32 360/468/32 359/462/32 +f 373/467/32 361/538/32 360/468/32 +f 362/470/32 361/538/32 373/471/32 +f 375/473/32 363/476/32 362/470/32 +f 376/475/32 364/539/32 363/476/32 +f 353/478/32 364/539/32 376/479/32 +f 366/481/32 354/535/32 353/478/32 +f 331/483/33 343/540/33 342/484/33 +f 332/486/33 344/541/33 343/487/33 +f 345/488/33 344/542/33 332/486/33 +f 346/490/33 345/543/33 333/489/33 +f 335/492/33 347/544/33 346/493/33 +f 348/495/33 347/545/33 335/492/33 +f 349/497/33 348/546/33 336/496/33 +f 338/499/33 350/547/33 349/500/33 +f 351/501/33 350/548/33 338/499/33 +f 352/503/33 351/549/33 339/502/33 +f 329/505/33 341/550/33 352/506/33 +f 342/507/33 341/551/33 329/505/33 +s 1 +f 202/552/34 225/307/35 201/553/35 +f 208/554/36 221/509/37 232/294/36 +f 198/555/38 223/302/39 222/299/38 +f 206/556/40 229/318/41 205/557/41 +f 202/552/34 227/511/42 226/310/34 +f 199/558/39 224/510/43 223/302/39 +f 207/559/44 230/322/40 206/556/40 +f 204/560/45 227/512/42 203/561/42 +f 201/553/35 224/510/43 200/562/43 +f 208/554/36 231/508/44 207/559/44 +f 198/555/38 221/509/37 197/563/37 +f 205/557/41 228/315/45 204/560/45 +f 211/305/39 236/564/43 235/565/39 +f 219/323/44 242/566/40 218/324/40 +f 216/316/45 239/567/42 215/314/42 +f 213/308/35 236/568/43 212/306/43 +f 219/293/44 244/569/36 243/570/44 +f 210/300/38 233/571/37 209/298/37 +f 217/319/41 240/572/45 216/317/45 +f 214/311/34 237/573/35 213/309/35 +f 220/297/36 233/574/37 244/575/36 +f 211/303/39 234/576/38 210/301/38 +f 218/320/40 241/577/41 217/321/41 +f 215/312/42 238/578/34 214/313/34 +f 250/375/34 273/339/35 249/372/35 +f 245/365/37 280/326/36 256/361/36 +f 247/369/39 270/331/38 246/364/38 +f 254/386/40 277/350/41 253/382/41 +f 251/521/42 274/342/34 250/375/34 +f 248/373/43 271/334/39 247/369/39 +f 255/358/44 278/354/40 254/386/40 +f 252/379/45 275/517/42 251/380/42 +f 249/372/35 272/515/43 248/373/43 +f 255/358/44 280/326/36 279/513/44 +f 246/364/38 269/514/37 245/365/37 +f 253/382/41 276/347/45 252/379/45 +f 260/336/43 283/579/39 259/337/39 +f 267/355/44 290/580/40 266/356/40 +f 264/348/45 287/581/42 263/346/42 +f 261/340/35 284/582/43 260/338/43 +f 268/327/36 291/583/44 267/325/44 +f 257/330/37 282/584/38 281/585/37 +f 265/351/41 288/586/45 264/349/45 +f 262/343/34 285/587/35 261/341/35 +f 257/328/37 292/588/36 268/329/36 +f 259/335/39 282/589/38 258/333/38 +f 266/352/40 289/590/41 265/353/41 +f 263/344/42 286/591/34 262/345/34 +f 322/400/42 299/592/34 323/401/34 +f 319/392/40 296/593/41 320/393/41 +f 326/411/39 303/594/38 327/410/38 +f 317/417/36 304/595/37 293/596/36 +f 323/403/34 300/597/35 324/402/35 +f 320/395/41 297/598/45 321/394/45 +f 327/414/38 304/599/37 328/412/37 +f 317/419/36 294/600/44 318/418/44 +f 324/406/35 301/601/43 325/404/43 +f 321/398/45 298/602/42 322/396/42 +f 318/389/44 295/603/40 319/390/40 +f 325/408/43 302/604/39 326/409/39 +f 332/486/41 309/397/45 333/489/45 +f 339/502/38 316/528/37 340/504/37 +f 329/505/36 306/524/44 330/485/44 +f 336/496/35 313/527/43 337/498/43 +f 333/489/45 310/525/42 334/491/42 +f 330/485/44 307/388/40 331/483/40 +f 337/498/43 314/407/39 338/499/39 +f 334/494/42 311/399/34 335/492/34 +f 331/483/40 308/391/41 332/486/41 +f 338/499/39 315/413/38 339/502/38 +f 340/504/37 305/415/36 329/505/36 +f 335/492/34 312/405/35 336/496/35 +f 370/463/42 347/605/34 371/464/34 +f 367/455/40 344/606/41 368/456/41 +f 374/474/39 351/607/38 375/473/38 +f 365/480/36 352/608/37 341/609/36 +f 371/466/34 348/610/35 372/465/35 +f 368/458/41 345/611/45 369/457/45 +f 375/477/38 352/612/37 376/475/37 +f 365/482/36 342/613/44 366/481/44 +f 372/469/35 349/614/43 373/467/43 +f 369/461/45 346/615/42 370/459/42 +f 366/452/44 343/616/40 367/453/40 +f 373/471/43 350/617/39 374/472/39 +f 380/424/41 357/460/45 381/427/45 +f 388/445/37 363/476/38 364/539/37 +f 377/447/36 354/535/44 378/450/44 +f 385/438/43 360/468/35 361/538/43 +f 381/427/45 358/536/42 382/430/42 +f 378/450/44 355/451/40 379/421/40 +f 385/438/43 362/470/39 386/440/39 +f 382/530/42 359/462/34 383/432/34 +f 379/421/40 356/454/41 380/424/41 +f 386/440/39 363/476/38 387/443/38 +f 388/445/37 353/478/36 377/447/36 +f 383/432/34 360/468/35 384/435/35 +f 202/552/34 226/310/34 225/307/35 +f 208/554/36 197/563/37 221/509/37 +f 198/555/38 199/558/39 223/302/39 +f 206/556/40 230/322/40 229/318/41 +f 202/552/34 203/618/42 227/511/42 +f 199/558/39 200/562/43 224/510/43 +f 207/559/44 231/508/44 230/322/40 +f 204/560/45 228/315/45 227/512/42 +f 201/553/35 225/307/35 224/510/43 +f 208/554/36 232/294/36 231/508/44 +f 198/555/38 222/299/38 221/509/37 +f 205/557/41 229/318/41 228/315/45 +f 211/305/39 212/304/43 236/564/43 +f 219/323/44 243/619/44 242/566/40 +f 216/316/45 240/620/45 239/567/42 +f 213/308/35 237/621/35 236/568/43 +f 219/293/44 220/295/36 244/569/36 +f 210/300/38 234/622/38 233/571/37 +f 217/319/41 241/623/41 240/572/45 +f 214/311/34 238/624/34 237/573/35 +f 220/297/36 209/296/37 233/574/37 +f 211/303/39 235/625/39 234/576/38 +f 218/320/40 242/626/40 241/577/41 +f 215/312/42 239/627/42 238/578/34 +f 250/375/34 274/342/34 273/339/35 +f 245/365/37 269/514/37 280/326/36 +f 247/369/39 271/334/39 270/331/38 +f 254/386/40 278/354/40 277/350/41 +f 251/521/42 275/516/42 274/342/34 +f 248/373/43 272/515/43 271/334/39 +f 255/358/44 279/513/44 278/354/40 +f 252/379/45 276/347/45 275/517/42 +f 249/372/35 273/339/35 272/515/43 +f 255/358/44 256/361/36 280/326/36 +f 246/364/38 270/331/38 269/514/37 +f 253/382/41 277/350/41 276/347/45 +f 260/336/43 284/628/43 283/579/39 +f 267/355/44 291/629/44 290/580/40 +f 264/348/45 288/630/45 287/581/42 +f 261/340/35 285/631/35 284/582/43 +f 268/327/36 292/632/36 291/583/44 +f 257/330/37 258/332/38 282/584/38 +f 265/351/41 289/633/41 288/586/45 +f 262/343/34 286/634/34 285/587/35 +f 257/328/37 281/635/37 292/588/36 +f 259/335/39 283/636/39 282/589/38 +f 266/352/40 290/637/40 289/590/41 +f 263/344/42 287/638/42 286/591/34 +f 322/400/42 298/639/42 299/592/34 +f 319/392/40 295/640/40 296/593/41 +f 326/411/39 302/641/39 303/594/38 +f 317/417/36 328/416/37 304/595/37 +f 323/403/34 299/642/34 300/597/35 +f 320/395/41 296/643/41 297/598/45 +f 327/414/38 303/644/38 304/599/37 +f 317/419/36 293/645/36 294/600/44 +f 324/406/35 300/646/35 301/601/43 +f 321/398/45 297/647/45 298/602/42 +f 318/389/44 294/648/44 295/603/40 +f 325/408/43 301/649/43 302/604/39 +f 332/486/41 308/391/41 309/397/45 +f 339/502/38 315/413/38 316/528/37 +f 329/505/36 305/415/36 306/524/44 +f 336/496/35 312/405/35 313/527/43 +f 333/489/45 309/397/45 310/525/42 +f 330/485/44 306/524/44 307/388/40 +f 337/498/43 313/527/43 314/407/39 +f 334/494/42 310/526/42 311/399/34 +f 331/483/40 307/388/40 308/391/41 +f 338/499/39 314/407/39 315/413/38 +f 340/504/37 316/528/37 305/415/36 +f 335/492/34 311/399/34 312/405/35 +f 370/463/42 346/650/42 347/605/34 +f 367/455/40 343/651/40 344/606/41 +f 374/474/39 350/652/39 351/607/38 +f 365/480/36 376/479/37 352/608/37 +f 371/466/34 347/653/34 348/610/35 +f 368/458/41 344/654/41 345/611/45 +f 375/477/38 351/655/38 352/612/37 +f 365/482/36 341/656/36 342/613/44 +f 372/469/35 348/657/35 349/614/43 +f 369/461/45 345/658/45 346/615/42 +f 366/452/44 342/659/44 343/616/40 +f 373/471/43 349/660/43 350/617/39 +f 380/424/41 356/454/41 357/460/45 +f 388/445/37 387/443/38 363/476/38 +f 377/447/36 353/478/36 354/535/44 +f 385/438/43 384/435/35 360/468/35 +f 381/427/45 357/460/45 358/536/42 +f 378/450/44 354/535/44 355/451/40 +f 385/438/43 361/538/43 362/470/39 +f 382/530/42 358/537/42 359/462/34 +f 379/421/40 355/451/40 356/454/41 +f 386/440/39 362/470/39 363/476/38 +f 388/445/37 364/539/37 353/478/36 +f 383/432/34 359/462/34 360/468/35 +o BladesLeft +v 0.375000 3.187500 -2.000000 +v 0.156250 3.128886 -2.000000 +v -0.003886 2.968750 -2.000000 +v -0.062500 2.750000 -2.000000 +v -0.003886 2.531250 -2.000000 +v 0.156250 2.371114 -2.000000 +v 0.375000 2.312500 -2.000000 +v 0.593750 2.371114 -2.000000 +v 0.753886 2.531250 -2.000000 +v 0.812500 2.750000 -2.000000 +v 0.753886 2.968750 -2.000000 +v 0.593750 3.128886 -2.000000 +v 0.375000 3.062500 -1.750000 +v 0.218750 3.020633 -1.750000 +v 0.104367 2.906250 -1.750000 +v 0.062500 2.750000 -1.750000 +v 0.104367 2.593750 -1.750000 +v 0.218750 2.479367 -1.750000 +v 0.375000 2.437500 -1.750000 +v 0.531250 2.479367 -1.750000 +v 0.645633 2.593750 -1.750000 +v 0.687500 2.750000 -1.750000 +v 0.645633 2.906250 -1.750000 +v 0.531250 3.020633 -1.750000 +v 0.375000 3.187500 -1.750000 +v 0.156250 3.128886 -1.750000 +v -0.003886 2.968750 -1.750000 +v -0.062500 2.750000 -1.750000 +v -0.003886 2.531250 -1.750000 +v 0.156250 2.371114 -1.750000 +v 0.375000 2.312500 -1.750000 +v 0.593750 2.371114 -1.750000 +v 0.753886 2.531250 -1.750000 +v 0.812500 2.750000 -1.750000 +v 0.753886 2.968750 -1.750000 +v 0.593750 3.128886 -1.750000 +v 0.375000 3.062500 -1.500000 +v 0.218750 3.020633 -1.500000 +v 0.104367 2.906250 -1.500000 +v 0.062500 2.750000 -1.500000 +v 0.104367 2.593750 -1.500000 +v 0.218750 2.479367 -1.500000 +v 0.375000 2.437500 -1.500000 +v 0.531250 2.479367 -1.500000 +v 0.645633 2.593750 -1.500000 +v 0.687500 2.750000 -1.500000 +v 0.645633 2.906250 -1.500000 +v 0.531250 3.020633 -1.500000 +v 0.375000 3.187500 -0.500000 +v 0.156250 3.128886 -0.500000 +v -0.003886 2.968750 -0.500000 +v -0.062500 2.750000 -0.500000 +v -0.003886 2.531250 -0.500000 +v 0.156250 2.371114 -0.500000 +v 0.375000 2.312500 -0.500000 +v 0.593750 2.371114 -0.500000 +v 0.753886 2.531250 -0.500000 +v 0.812500 2.750000 -0.500000 +v 0.753886 2.968750 -0.500000 +v 0.593750 3.128886 -0.500000 +v 0.375000 3.062500 -0.250000 +v 0.218750 3.020633 -0.250000 +v 0.104367 2.906250 -0.250000 +v 0.062500 2.750000 -0.250000 +v 0.104367 2.593750 -0.250000 +v 0.218750 2.479367 -0.250000 +v 0.375000 2.437500 -0.250000 +v 0.531250 2.479367 -0.250000 +v 0.645633 2.593750 -0.250000 +v 0.687500 2.750000 -0.250000 +v 0.645633 2.906250 -0.250000 +v 0.531250 3.020633 -0.250000 +v 0.375000 3.187500 -0.250000 +v 0.156250 3.128886 -0.250000 +v -0.003886 2.968750 -0.250000 +v -0.062500 2.750000 -0.250000 +v -0.003886 2.531250 -0.250000 +v 0.156250 2.371114 -0.250000 +v 0.375000 2.312500 -0.250000 +v 0.593750 2.371114 -0.250000 +v 0.753886 2.531250 -0.250000 +v 0.812500 2.750000 -0.250000 +v 0.753886 2.968750 -0.250000 +v 0.593750 3.128886 -0.250000 +v 0.375000 3.062500 0.000000 +v 0.218750 3.020633 0.000000 +v 0.104367 2.906250 0.000000 +v 0.062500 2.750000 0.000000 +v 0.104367 2.593750 0.000000 +v 0.218750 2.479367 0.000000 +v 0.375000 2.437500 0.000000 +v 0.531250 2.479367 0.000000 +v 0.645633 2.593750 0.000000 +v 0.687500 2.750000 0.000000 +v 0.645633 2.906250 0.000000 +v 0.531250 3.020633 0.000000 +v 0.531250 3.020633 -0.500000 +v 0.645633 2.906250 -0.500000 +v 0.687500 2.750000 -0.500000 +v 0.645633 2.593750 -0.500000 +v 0.531250 2.479367 -0.500000 +v 0.375000 2.437500 -0.500000 +v 0.218750 2.479367 -0.500000 +v 0.104367 2.593750 -0.500000 +v 0.062500 2.750000 -0.500000 +v 0.104367 2.906250 -0.500000 +v 0.218750 3.020633 -0.500000 +v 0.375000 3.062500 -0.500000 +v 0.593750 3.128886 -0.750000 +v 0.753886 2.968750 -0.750000 +v 0.812500 2.750000 -0.750000 +v 0.753886 2.531250 -0.750000 +v 0.593750 2.371114 -0.750000 +v 0.375000 2.312500 -0.750000 +v 0.156250 2.371114 -0.750000 +v -0.003886 2.531250 -0.750000 +v -0.062500 2.750000 -0.750000 +v -0.003886 2.968750 -0.750000 +v 0.156250 3.128886 -0.750000 +v 0.375000 3.187500 -0.750000 +v 0.531250 3.020633 -0.750000 +v 0.645633 2.906250 -0.750000 +v 0.687500 2.750000 -0.750000 +v 0.645633 2.593750 -0.750000 +v 0.531250 2.479367 -0.750000 +v 0.375000 2.437500 -0.750000 +v 0.218750 2.479367 -0.750000 +v 0.104367 2.593750 -0.750000 +v 0.062500 2.750000 -0.750000 +v 0.104367 2.906250 -0.750000 +v 0.218750 3.020633 -0.750000 +v 0.375000 3.062500 -0.750000 +v 0.593750 3.128886 -1.000000 +v 0.753886 2.968750 -1.000000 +v 0.812500 2.750000 -1.000000 +v 0.753886 2.531250 -1.000000 +v 0.593750 2.371114 -1.000000 +v 0.375000 2.312500 -1.000000 +v 0.156250 2.371114 -1.000000 +v -0.003886 2.531250 -1.000000 +v -0.062500 2.750000 -1.000000 +v -0.003886 2.968750 -1.000000 +v 0.156250 3.128886 -1.000000 +v 0.375000 3.187500 -1.000000 +v 0.531250 3.020633 -1.000000 +v 0.645633 2.906250 -1.000000 +v 0.687500 2.750000 -1.000000 +v 0.645633 2.593750 -1.000000 +v 0.531250 2.479367 -1.000000 +v 0.375000 2.437500 -1.000000 +v 0.218750 2.479367 -1.000000 +v 0.104367 2.593750 -1.000000 +v 0.062500 2.750000 -1.000000 +v 0.104367 2.906250 -1.000000 +v 0.218750 3.020633 -1.000000 +v 0.375000 3.062500 -1.000000 +v 0.593750 3.128886 -1.250000 +v 0.753886 2.968750 -1.250000 +v 0.812500 2.750000 -1.250000 +v 0.753886 2.531250 -1.250000 +v 0.593750 2.371114 -1.250000 +v 0.375000 2.312500 -1.250000 +v 0.156250 2.371114 -1.250000 +v -0.003886 2.531250 -1.250000 +v -0.062500 2.750000 -1.250000 +v -0.003886 2.968750 -1.250000 +v 0.156250 3.128886 -1.250000 +v 0.375000 3.187500 -1.250000 +v 0.531250 3.020633 -1.250000 +v 0.645633 2.906250 -1.250000 +v 0.687500 2.750000 -1.250000 +v 0.645633 2.593750 -1.250000 +v 0.531250 2.479367 -1.250000 +v 0.375000 2.437500 -1.250000 +v 0.218750 2.479367 -1.250000 +v 0.104367 2.593750 -1.250000 +v 0.062500 2.750000 -1.250000 +v 0.104367 2.906250 -1.250000 +v 0.218750 3.020633 -1.250000 +v 0.375000 3.062500 -1.250000 +v 0.593750 3.128886 -1.500000 +v 0.753886 2.968750 -1.500000 +v 0.812500 2.750000 -1.500000 +v 0.753886 2.531250 -1.500000 +v 0.593750 2.371114 -1.500000 +v 0.375000 2.312500 -1.500000 +v 0.156250 2.371114 -1.500000 +v -0.003886 2.531250 -1.500000 +v -0.062500 2.750000 -1.500000 +v -0.003886 2.968750 -1.500000 +v 0.156250 3.128886 -1.500000 +v 0.375000 3.187500 -1.500000 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.076220 0.794872 +vt 0.085366 0.807692 +vt 0.073171 0.807692 +vt 0.094512 0.794872 +vt 0.088415 0.794872 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.112805 0.794872 +vt 0.121951 0.807692 +vt 0.109756 0.807692 +vt 0.131098 0.794872 +vt 0.125000 0.794872 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.003049 0.794872 +vt 0.012195 0.807692 +vt 0.000000 0.807692 +vt 0.021341 0.794872 +vt 0.015244 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.012195 0.807692 +vt 0.015244 0.794872 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.121951 0.807692 +vt 0.125000 0.794872 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.085366 0.807692 +vt 0.088415 0.794872 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.036585 0.807692 +vt 0.045732 0.794872 +vt 0.048780 0.807692 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.015244 0.794872 +vt 0.012195 0.807692 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.146341 0.807692 +vt 0.125000 0.794872 +vt 0.121951 0.807692 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.097561 0.807692 +vt 0.106707 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.070122 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt -0.000000 0.833333 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt 0.000000 0.833333 +vt 0.082317 0.794872 +vt 0.118902 0.794872 +vt 0.146341 0.807692 +vt 0.009146 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.009146 0.794872 +vt 0.146341 0.807692 +vt 0.118902 0.794872 +vt 0.082317 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.039634 0.794872 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.009146 0.794872 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.118902 0.794872 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.134146 0.807692 +vt 0.121951 0.807692 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.097561 0.807692 +vt 0.085366 0.807692 +vt 0.036585 0.807692 +vt 0.024390 0.807692 +vt 0.146341 0.807692 +vt 0.109756 0.807692 +vt 0.048780 0.807692 +vt 0.012195 0.807692 +vt -0.000000 0.807692 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.070122 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.070122 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +s off +f 411/661/46 424/662/46 412/663/46 +f 424/662/46 401/664/46 412/665/46 +f 401/666/46 414/667/46 402/668/46 +f 402/669/46 415/670/46 403/671/46 +f 415/670/46 404/672/46 403/673/46 +f 404/674/46 417/675/46 405/676/46 +f 405/677/46 418/678/46 406/679/46 +f 418/678/46 407/680/46 406/681/46 +f 407/682/46 420/683/46 408/684/46 +f 408/685/46 421/686/46 409/687/46 +f 421/686/46 410/688/46 409/689/46 +f 422/690/46 411/691/46 410/692/46 +f 459/693/46 472/694/46 460/695/46 +f 472/694/46 449/696/46 460/697/46 +f 449/698/46 462/699/46 450/700/46 +f 450/701/46 463/702/46 451/703/46 +f 463/702/46 452/704/46 451/705/46 +f 452/706/46 465/707/46 453/708/46 +f 453/709/46 466/710/46 454/711/46 +f 466/710/46 455/712/46 454/713/46 +f 455/714/46 468/715/46 456/716/46 +f 456/717/46 469/718/46 457/719/46 +f 469/718/46 458/720/46 457/721/46 +f 470/722/46 459/723/46 458/724/46 +f 485/725/47 447/726/47 486/727/47 +f 496/728/47 448/729/47 485/730/47 +f 496/731/47 438/732/47 437/733/47 +f 494/734/47 438/732/47 495/735/47 +f 493/736/47 439/737/47 494/738/47 +f 493/739/47 441/740/47 440/741/47 +f 491/742/47 441/740/47 492/743/47 +f 490/744/47 442/745/47 491/746/47 +f 490/747/47 444/748/47 443/749/47 +f 488/750/47 444/748/47 489/751/47 +f 487/752/47 445/753/47 488/754/47 +f 486/755/47 446/756/47 487/757/47 +f 499/758/46 510/759/46 511/760/46 +f 500/761/46 511/762/46 512/763/46 +f 513/764/46 500/761/46 512/765/46 +f 514/766/46 501/767/46 513/768/46 +f 503/769/46 514/770/46 515/771/46 +f 516/772/46 503/769/46 515/773/46 +f 517/774/46 504/775/46 516/776/46 +f 506/777/46 517/778/46 518/779/46 +f 519/780/46 506/777/46 518/781/46 +f 520/782/46 507/783/46 519/784/46 +f 497/785/46 520/786/46 509/787/46 +f 510/788/46 497/785/46 509/789/46 +f 435/790/47 571/791/47 434/792/47 +f 434/793/47 572/794/47 433/795/47 +f 433/796/47 573/797/47 432/798/47 +f 431/799/47 573/797/47 574/800/47 +f 431/801/47 575/802/47 430/803/47 +f 430/804/47 576/805/47 429/806/47 +f 428/807/47 576/805/47 577/808/47 +f 428/809/47 578/810/47 427/811/47 +f 427/812/47 579/813/47 426/814/47 +f 425/815/47 579/813/47 580/816/47 +f 425/817/47 569/818/47 436/819/47 +f 436/820/47 570/821/47 435/822/47 +f 547/823/46 558/824/46 559/825/46 +f 548/826/46 559/827/46 560/828/46 +f 561/829/46 548/826/46 560/830/46 +f 562/831/46 549/832/46 561/833/46 +f 551/834/46 562/835/46 563/836/46 +f 564/837/46 551/834/46 563/838/46 +f 565/839/46 552/840/46 564/841/46 +f 554/842/46 565/843/46 566/844/46 +f 567/845/46 554/842/46 566/846/46 +f 568/847/46 555/848/46 567/849/46 +f 545/850/46 568/851/46 557/852/46 +f 558/853/46 545/850/46 557/854/46 +f 523/855/47 534/856/47 522/857/47 +f 524/858/47 535/859/47 523/855/47 +f 537/860/47 524/858/47 525/861/47 +f 538/862/47 525/861/47 526/863/47 +f 527/864/47 538/865/47 526/866/47 +f 540/867/47 527/864/47 528/868/47 +f 541/869/47 528/868/47 529/870/47 +f 530/871/47 541/872/47 529/870/47 +f 543/873/47 530/871/47 531/874/47 +f 544/875/47 531/874/47 532/876/47 +f 521/877/47 544/878/47 532/876/47 +f 534/879/47 521/877/47 522/857/47 +f 411/661/46 423/880/46 424/662/46 +f 424/662/46 413/881/46 401/664/46 +f 401/666/46 413/881/46 414/667/46 +f 402/669/46 414/667/46 415/670/46 +f 415/670/46 416/882/46 404/672/46 +f 404/674/46 416/882/46 417/675/46 +f 405/677/46 417/675/46 418/678/46 +f 418/678/46 419/883/46 407/680/46 +f 407/682/46 419/884/46 420/683/46 +f 408/685/46 420/683/46 421/686/46 +f 421/686/46 422/690/46 410/688/46 +f 422/690/46 423/880/46 411/691/46 +f 459/693/46 471/885/46 472/694/46 +f 472/694/46 461/886/46 449/696/46 +f 449/698/46 461/886/46 462/699/46 +f 450/701/46 462/699/46 463/702/46 +f 463/702/46 464/887/46 452/704/46 +f 452/706/46 464/887/46 465/707/46 +f 453/709/46 465/707/46 466/710/46 +f 466/710/46 467/888/46 455/712/46 +f 455/714/46 467/889/46 468/715/46 +f 456/717/46 468/715/46 469/718/46 +f 469/718/46 470/722/46 458/720/46 +f 470/722/46 471/885/46 459/723/46 +f 485/725/47 448/729/47 447/726/47 +f 496/728/47 437/733/47 448/729/47 +f 496/731/47 495/890/47 438/732/47 +f 494/734/47 439/737/47 438/732/47 +f 493/736/47 440/741/47 439/737/47 +f 493/739/47 492/891/47 441/740/47 +f 491/742/47 442/745/47 441/740/47 +f 490/744/47 443/892/47 442/745/47 +f 490/747/47 489/893/47 444/748/47 +f 488/750/47 445/753/47 444/748/47 +f 487/752/47 446/756/47 445/753/47 +f 486/755/47 447/726/47 446/756/47 +f 499/758/46 498/894/46 510/759/46 +f 500/761/46 499/758/46 511/762/46 +f 513/764/46 501/767/46 500/761/46 +f 514/766/46 502/895/46 501/767/46 +f 503/769/46 502/896/46 514/770/46 +f 516/772/46 504/775/46 503/769/46 +f 517/774/46 505/897/46 504/775/46 +f 506/777/46 505/897/46 517/778/46 +f 519/780/46 507/783/46 506/777/46 +f 520/782/46 508/898/46 507/783/46 +f 497/785/46 508/898/46 520/786/46 +f 510/788/46 498/894/46 497/785/46 +f 435/790/47 570/821/47 571/791/47 +f 434/793/47 571/791/47 572/794/47 +f 433/796/47 572/794/47 573/797/47 +f 431/799/47 432/899/47 573/797/47 +f 431/801/47 574/900/47 575/802/47 +f 430/804/47 575/802/47 576/805/47 +f 428/807/47 429/901/47 576/805/47 +f 428/809/47 577/808/47 578/810/47 +f 427/812/47 578/810/47 579/813/47 +f 425/815/47 426/902/47 579/813/47 +f 425/817/47 580/816/47 569/818/47 +f 436/820/47 569/818/47 570/821/47 +f 547/823/46 546/903/46 558/824/46 +f 548/826/46 547/823/46 559/827/46 +f 561/829/46 549/832/46 548/826/46 +f 562/831/46 550/904/46 549/832/46 +f 551/834/46 550/905/46 562/835/46 +f 564/837/46 552/840/46 551/834/46 +f 565/839/46 553/906/46 552/840/46 +f 554/842/46 553/906/46 565/843/46 +f 567/845/46 555/848/46 554/842/46 +f 568/847/46 556/907/46 555/848/46 +f 545/850/46 556/907/46 568/851/46 +f 558/853/46 546/903/46 545/850/46 +f 523/855/47 535/908/47 534/856/47 +f 524/858/47 536/909/47 535/859/47 +f 537/860/47 536/910/47 524/858/47 +f 538/862/47 537/911/47 525/861/47 +f 527/864/47 539/912/47 538/865/47 +f 540/867/47 539/913/47 527/864/47 +f 541/869/47 540/914/47 528/868/47 +f 530/871/47 542/915/47 541/872/47 +f 543/873/47 542/916/47 530/871/47 +f 544/875/47 543/917/47 531/874/47 +f 521/877/47 533/918/47 544/878/47 +f 534/879/47 533/919/47 521/877/47 +s 1 +f 394/920/48 417/675/49 393/921/49 +f 389/922/50 424/662/51 400/923/51 +f 391/924/52 414/667/53 390/925/53 +f 398/926/54 421/686/55 397/927/55 +f 395/928/56 418/678/48 394/920/48 +f 392/929/57 415/670/52 391/924/52 +f 399/930/58 422/690/54 398/926/54 +f 396/931/59 419/884/56 395/932/56 +f 393/921/49 416/882/57 392/929/57 +f 400/923/51 423/880/58 399/930/58 +f 390/925/53 413/881/50 389/922/50 +f 397/927/55 420/683/59 396/931/59 +f 404/672/57 427/933/52 403/673/52 +f 411/691/58 434/934/54 410/692/54 +f 408/684/59 431/935/56 407/682/56 +f 405/676/49 428/936/57 404/674/57 +f 412/663/51 435/937/58 411/661/58 +f 402/668/53 425/938/50 401/666/50 +f 409/687/55 432/939/59 408/685/59 +f 406/679/48 429/940/49 405/677/49 +f 401/664/50 436/941/51 412/665/51 +f 403/671/52 426/942/53 402/669/53 +f 410/688/54 433/943/55 409/689/55 +f 407/680/56 430/944/48 406/681/48 +f 442/745/48 465/707/49 441/740/49 +f 437/733/50 472/694/51 448/729/51 +f 439/737/52 462/699/53 438/732/53 +f 446/756/54 469/718/55 445/753/55 +f 443/892/56 466/710/48 442/745/48 +f 440/741/57 463/702/52 439/737/52 +f 447/726/58 470/722/54 446/756/54 +f 444/748/59 467/889/56 443/749/56 +f 441/740/49 464/887/57 440/741/57 +f 448/729/51 471/885/58 447/726/58 +f 438/732/53 461/886/50 437/733/50 +f 445/753/55 468/715/59 444/748/59 +f 452/704/57 475/945/52 451/705/52 +f 459/723/58 482/946/54 458/724/54 +f 456/716/59 479/947/56 455/714/56 +f 453/708/49 476/948/57 452/706/57 +f 460/695/51 483/949/58 459/693/58 +f 450/700/53 473/950/50 449/698/50 +f 457/719/55 480/951/59 456/717/59 +f 454/711/48 477/952/49 453/709/49 +f 449/696/50 484/953/51 460/697/51 +f 451/703/52 474/954/53 450/701/53 +f 458/720/54 481/955/55 457/721/55 +f 455/712/56 478/956/48 454/713/48 +f 514/770/56 491/957/48 515/771/48 +f 511/762/54 488/958/55 512/763/55 +f 518/781/52 495/959/53 519/780/53 +f 520/786/50 485/960/51 509/787/51 +f 515/773/48 492/961/49 516/772/49 +f 512/765/55 489/962/59 513/764/59 +f 519/784/53 496/963/50 520/782/50 +f 509/789/51 486/964/58 510/788/58 +f 516/776/49 493/965/57 517/774/57 +f 513/768/59 490/966/56 514/766/56 +f 510/759/58 487/967/54 511/760/54 +f 517/778/57 494/968/52 518/779/52 +f 524/858/55 501/767/59 525/861/59 +f 531/874/53 508/898/50 532/876/50 +f 521/877/51 498/894/58 522/857/58 +f 528/868/49 505/897/57 529/870/57 +f 525/861/59 502/895/56 526/863/56 +f 522/857/58 499/758/54 523/855/54 +f 529/870/57 506/777/52 530/871/52 +f 526/866/56 503/769/48 527/864/48 +f 523/855/54 500/761/55 524/858/55 +f 530/871/52 507/783/53 531/874/53 +f 532/876/50 497/785/51 521/877/51 +f 527/864/48 504/775/49 528/868/49 +f 562/835/56 539/969/48 563/836/48 +f 559/827/54 536/970/55 560/828/55 +f 566/846/52 543/971/53 567/845/53 +f 568/851/50 533/972/51 557/852/51 +f 563/838/48 540/973/49 564/837/49 +f 560/830/55 537/974/59 561/829/59 +f 567/849/53 544/975/50 568/847/50 +f 557/854/51 534/976/58 558/853/58 +f 564/841/49 541/977/57 565/839/57 +f 561/833/59 538/978/56 562/831/56 +f 558/824/58 535/979/54 559/825/54 +f 565/843/57 542/980/52 566/844/52 +f 572/794/55 549/832/59 573/797/59 +f 579/813/53 556/907/50 580/816/50 +f 569/818/51 546/903/58 570/821/58 +f 576/805/49 553/906/57 577/808/57 +f 573/797/59 550/904/56 574/800/56 +f 570/821/58 547/823/54 571/791/54 +f 577/808/57 554/842/52 578/810/52 +f 574/900/56 551/834/48 575/802/48 +f 571/791/54 548/826/55 572/794/55 +f 578/810/52 555/848/53 579/813/53 +f 580/816/50 545/850/51 569/818/51 +f 575/802/48 552/840/49 576/805/49 +f 394/920/48 418/678/48 417/675/49 +f 389/922/50 413/881/50 424/662/51 +f 391/924/52 415/670/52 414/667/53 +f 398/926/54 422/690/54 421/686/55 +f 395/928/56 419/883/56 418/678/48 +f 392/929/57 416/882/57 415/670/52 +f 399/930/58 423/880/58 422/690/54 +f 396/931/59 420/683/59 419/884/56 +f 393/921/49 417/675/49 416/882/57 +f 400/923/51 424/662/51 423/880/58 +f 390/925/53 414/667/53 413/881/50 +f 397/927/55 421/686/55 420/683/59 +f 404/672/57 428/981/57 427/933/52 +f 411/691/58 435/982/58 434/934/54 +f 408/684/59 432/983/59 431/935/56 +f 405/676/49 429/984/49 428/936/57 +f 412/663/51 436/985/51 435/937/58 +f 402/668/53 426/986/53 425/938/50 +f 409/687/55 433/987/55 432/939/59 +f 406/679/48 430/988/48 429/940/49 +f 401/664/50 425/989/50 436/941/51 +f 403/671/52 427/990/52 426/942/53 +f 410/688/54 434/991/54 433/943/55 +f 407/680/56 431/992/56 430/944/48 +f 442/745/48 466/710/48 465/707/49 +f 437/733/50 461/886/50 472/694/51 +f 439/737/52 463/702/52 462/699/53 +f 446/756/54 470/722/54 469/718/55 +f 443/892/56 467/888/56 466/710/48 +f 440/741/57 464/887/57 463/702/52 +f 447/726/58 471/885/58 470/722/54 +f 444/748/59 468/715/59 467/889/56 +f 441/740/49 465/707/49 464/887/57 +f 448/729/51 472/694/51 471/885/58 +f 438/732/53 462/699/53 461/886/50 +f 445/753/55 469/718/55 468/715/59 +f 452/704/57 476/993/57 475/945/52 +f 459/723/58 483/994/58 482/946/54 +f 456/716/59 480/995/59 479/947/56 +f 453/708/49 477/996/49 476/948/57 +f 460/695/51 484/997/51 483/949/58 +f 450/700/53 474/998/53 473/950/50 +f 457/719/55 481/999/55 480/951/59 +f 454/711/48 478/1000/48 477/952/49 +f 449/696/50 473/1001/50 484/953/51 +f 451/703/52 475/1002/52 474/954/53 +f 458/720/54 482/1003/54 481/955/55 +f 455/712/56 479/1004/56 478/956/48 +f 514/770/56 490/1005/56 491/957/48 +f 511/762/54 487/1006/54 488/958/55 +f 518/781/52 494/1007/52 495/959/53 +f 520/786/50 496/1008/50 485/960/51 +f 515/773/48 491/1009/48 492/961/49 +f 512/765/55 488/1010/55 489/962/59 +f 519/784/53 495/1011/53 496/963/50 +f 509/789/51 485/1012/51 486/964/58 +f 516/776/49 492/1013/49 493/965/57 +f 513/768/59 489/1014/59 490/966/56 +f 510/759/58 486/1015/58 487/967/54 +f 517/778/57 493/1016/57 494/968/52 +f 524/858/55 500/761/55 501/767/59 +f 531/874/53 507/783/53 508/898/50 +f 521/877/51 497/785/51 498/894/58 +f 528/868/49 504/775/49 505/897/57 +f 525/861/59 501/767/59 502/895/56 +f 522/857/58 498/894/58 499/758/54 +f 529/870/57 505/897/57 506/777/52 +f 526/866/56 502/896/56 503/769/48 +f 523/855/54 499/758/54 500/761/55 +f 530/871/52 506/777/52 507/783/53 +f 532/876/50 508/898/50 497/785/51 +f 527/864/48 503/769/48 504/775/49 +f 562/835/56 538/1017/56 539/969/48 +f 559/827/54 535/1018/54 536/970/55 +f 566/846/52 542/1019/52 543/971/53 +f 568/851/50 544/1020/50 533/972/51 +f 563/838/48 539/1021/48 540/973/49 +f 560/830/55 536/1022/55 537/974/59 +f 567/849/53 543/1023/53 544/975/50 +f 557/854/51 533/1024/51 534/976/58 +f 564/841/49 540/1025/49 541/977/57 +f 561/833/59 537/1026/59 538/978/56 +f 558/824/58 534/1027/58 535/979/54 +f 565/843/57 541/1028/57 542/980/52 +f 572/794/55 548/826/55 549/832/59 +f 579/813/53 555/848/53 556/907/50 +f 569/818/51 545/850/51 546/903/58 +f 576/805/49 552/840/49 553/906/57 +f 573/797/59 549/832/59 550/904/56 +f 570/821/58 546/903/58 547/823/54 +f 577/808/57 553/906/57 554/842/52 +f 574/900/56 550/905/56 551/834/48 +f 571/791/54 547/823/54 548/826/55 +f 578/810/52 554/842/52 555/848/53 +f 580/816/50 556/907/50 545/850/51 +f 575/802/48 551/834/48 552/840/49 +o Fan +v 1.375000 1.875000 -1.062500 +v 1.468750 1.875000 -1.062500 +v 1.375000 1.820873 -1.031250 +v 1.468750 1.820873 -1.031250 +v 1.375000 1.820873 -0.968750 +v 1.468750 1.820873 -0.968750 +v 1.375000 1.875000 -0.937500 +v 1.468750 1.875000 -0.937500 +v 1.375000 1.929127 -0.968750 +v 1.468750 1.929127 -0.968750 +v 1.375000 1.929127 -1.031250 +v 1.468750 1.929127 -1.031250 +v 1.388971 2.199760 -1.181111 +v 1.437500 2.250000 -1.000000 +v 1.486029 2.199760 -0.818889 +v 1.431434 1.915595 -1.022639 +v 1.437500 1.921875 -1.000000 +v 1.443566 1.915595 -0.977361 +v 1.388971 1.555773 -1.190695 +v 1.437500 1.687500 -1.324759 +v 1.486029 1.869467 -1.371806 +v 1.431434 1.835097 -1.023837 +v 1.437500 1.851562 -1.040595 +v 1.443566 1.874308 -1.046476 +v 1.443566 1.835097 -0.976163 +v 1.437500 1.851562 -0.959405 +v 1.431434 1.874308 -0.953524 +v 1.486029 1.555773 -0.809305 +v 1.437500 1.687500 -0.675241 +v 1.388971 1.869467 -0.628194 +vt 0.225610 0.935897 +vt 0.228659 0.948718 +vt 0.225610 0.948718 +vt 0.228659 0.935897 +vt 0.231707 0.948718 +vt 0.213415 0.935897 +vt 0.216463 0.948718 +vt 0.213415 0.948718 +vt 0.216463 0.935897 +vt 0.219512 0.948718 +vt 0.213554 0.955128 +vt 0.215009 0.949830 +vt 0.219373 0.955128 +vt 0.219512 0.935897 +vt 0.222561 0.948718 +vt 0.222561 0.935897 +vt 0.155488 0.967949 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.152439 0.935897 +vt 0.155488 0.935897 +vt 0.155488 0.967949 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.146341 0.967949 +vt 0.155488 0.935897 +vt 0.155488 0.967949 +vt 0.152439 0.935897 +vt 0.155488 0.935897 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.231707 0.935897 +vt 0.217918 0.949830 +vt 0.217918 0.960426 +vt 0.215009 0.960426 +vt 0.146341 0.967949 +vt 0.152439 0.935897 +vt 0.146341 0.967949 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.9659 -0.0000 -0.2588 +vn 0.9659 -0.2241 0.1294 +vn 0.9659 0.2242 0.1294 +vn 0.9659 0.2241 0.1294 +vn 0.9659 -0.2242 0.1294 +s off +f 582/1029/60 583/1030/60 581/1031/60 +f 584/1032/61 585/1033/61 583/1030/61 +f 586/1034/62 587/1035/62 585/1036/62 +f 588/1037/63 589/1038/63 587/1035/63 +f 588/1039/64 586/1040/64 582/1041/64 +f 590/1042/65 591/1043/65 589/1038/65 +f 592/1044/66 581/1031/66 591/1043/66 +f 594/1045/67 596/1046/67 593/1047/67 +f 594/1045/67 598/1048/67 597/1049/67 +f 600/1050/68 602/1051/68 599/1052/68 +f 601/1053/68 603/1054/68 600/1050/68 +f 609/1055/69 605/1056/69 606/1057/69 +f 609/1055/70 607/1058/70 610/1059/70 +f 582/1029/60 584/1032/60 583/1030/60 +f 584/1032/61 586/1060/61 585/1033/61 +f 586/1034/62 588/1037/62 587/1035/62 +f 588/1037/63 590/1042/63 589/1038/63 +f 586/1040/64 584/1061/64 582/1041/64 +f 582/1041/64 592/1062/64 590/1063/64 +f 590/1063/64 588/1039/64 582/1041/64 +f 590/1042/65 592/1044/65 591/1043/65 +f 592/1044/66 582/1029/66 581/1031/66 +f 594/1045/67 597/1049/67 596/1046/67 +f 594/1045/67 595/1064/67 598/1048/67 +f 600/1050/71 603/1054/71 602/1051/71 +f 601/1053/71 604/1065/71 603/1054/71 +f 609/1055/70 608/1066/70 605/1056/70 +f 609/1055/69 606/1057/69 607/1058/69 +o Base +v -1.500000 0.000000 3.500000 +v 1.500000 0.000000 3.500000 +v -1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -3.500000 +v -1.500000 1.000000 3.500000 +v 1.500000 1.000000 3.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v 0.000000 1.250000 0.625000 +v -0.526190 1.250000 0.729666 +v -0.972272 1.250000 1.027728 +v -1.270334 1.250000 1.473810 +v -1.375000 1.250000 2.000000 +v -1.270334 1.250000 2.526190 +v -0.972272 1.250000 2.972272 +v -0.526190 1.250000 3.270334 +v 0.000000 1.250000 3.375000 +v 0.526189 1.250000 3.270334 +v 0.972271 1.250000 2.972272 +v 1.270334 1.250000 2.526190 +v 1.375000 1.250000 2.000000 +v 1.270334 1.250000 1.473810 +v 0.972271 1.250000 1.027728 +v 0.526189 1.250000 0.729665 +v 0.000000 3.000000 0.625000 +v -0.526190 3.000000 0.729666 +v -0.972272 3.000000 1.027728 +v -1.270334 3.000000 1.473810 +v -1.375000 3.000000 2.000000 +v -1.270334 3.000000 2.526190 +v -0.972272 3.000000 2.972272 +v -0.526190 3.000000 3.270334 +v 0.000000 3.000000 3.375000 +v 0.526189 3.000000 3.270334 +v 0.972271 3.000000 2.972272 +v 1.270334 3.000000 2.526190 +v 1.375000 3.000000 2.000000 +v 1.270334 3.000000 1.473810 +v 0.972271 3.000000 1.027728 +v 0.526189 3.000000 0.729665 +v 0.000000 3.000000 0.500000 +v -0.574025 3.000000 0.614181 +v -1.060660 3.000000 0.939340 +v -1.385819 3.000000 1.425975 +v -1.500000 3.000000 2.000000 +v -1.385819 3.000000 2.574025 +v -1.060660 3.000000 3.060660 +v -0.574025 3.000000 3.385819 +v -0.000000 3.000000 3.500000 +v 0.574025 3.000000 3.385819 +v 1.060660 3.000000 3.060660 +v 1.385819 3.000000 2.574025 +v 1.500000 3.000000 2.000000 +v 1.385819 3.000000 1.425975 +v 1.060659 3.000000 0.939340 +v 0.574024 3.000000 0.614180 +v 0.000000 3.250000 0.500000 +v -0.574025 3.250000 0.614181 +v -1.060660 3.250000 0.939340 +v -1.385819 3.250000 1.425975 +v -1.500000 3.250000 2.000000 +v -1.385819 3.250000 2.574025 +v -1.060660 3.250000 3.060660 +v -0.574025 3.250000 3.385819 +v -0.000000 3.250000 3.500000 +v 0.574025 3.250000 3.385819 +v 1.060660 3.250000 3.060660 +v 1.385819 3.250000 2.574025 +v 1.500000 3.250000 2.000000 +v 1.385819 3.250000 1.425975 +v 1.060659 3.250000 0.939340 +v 0.574024 3.250000 0.614180 +v 0.000000 3.250000 0.750000 +v -0.478354 3.250000 0.845150 +v -0.883883 3.250000 1.116116 +v -1.154850 3.250000 1.521646 +v -1.250000 3.250000 2.000000 +v -1.154850 3.250000 2.478354 +v -0.883883 3.250000 2.883883 +v -0.478354 3.250000 3.154849 +v -0.000000 3.250000 3.250000 +v 0.478354 3.250000 3.154850 +v 0.883883 3.250000 2.883884 +v 1.154849 3.250000 2.478354 +v 1.250000 3.250000 2.000000 +v 1.154849 3.250000 1.521645 +v 0.883883 3.250000 1.116116 +v 0.478354 3.250000 0.845150 +v 0.000000 2.250000 0.750000 +v -0.478354 2.250000 0.845150 +v -0.883883 2.250000 1.116116 +v -1.154850 2.250000 1.521646 +v -1.250000 2.250000 2.000000 +v -1.154850 2.250000 2.478354 +v -0.883883 2.250000 2.883883 +v -0.478354 2.250000 3.154849 +v -0.000000 2.250000 3.250000 +v 0.478354 2.250000 3.154850 +v 0.883883 2.250000 2.883884 +v 1.154849 2.250000 2.478354 +v 1.250000 2.250000 2.000000 +v 1.154849 2.250000 1.521645 +v 0.883883 2.250000 1.116116 +v 0.478354 2.250000 0.845150 +v -1.250000 1.000000 0.250000 +v 1.250000 1.000000 0.250000 +v -1.250000 1.000000 -2.250000 +v 1.250000 1.000000 -2.250000 +v -1.250000 2.750000 -2.250000 +v -1.250000 2.750000 0.250000 +v 1.250000 2.750000 0.250000 +v 1.250000 2.750000 -2.250000 +v -1.000000 3.250000 -2.250000 +v -1.000000 3.250000 0.250000 +v 1.000000 3.250000 0.250000 +v 1.000000 3.250000 -2.250000 +v -1.000000 1.000000 -2.250000 +v 1.000000 1.000000 -2.250000 +v -1.000000 1.000000 -3.250000 +v 1.000000 1.000000 -3.250000 +v -1.000000 1.500000 -3.250000 +v -1.000000 1.500000 -2.250000 +v 1.000000 1.500000 -2.250000 +v 1.000000 1.500000 -3.250000 +v -0.875000 1.500000 -3.125000 +v -0.875000 1.500000 -2.250000 +v 0.875000 1.500000 -2.250000 +v 0.875000 1.500000 -3.125000 +v -0.875000 1.250000 -3.125000 +v -0.875000 1.250000 -2.250000 +v 0.875000 1.250000 -2.250000 +v 0.875000 1.250000 -3.125000 +v 0.437500 1.500000 -2.250000 +v -0.437500 1.500000 -2.250000 +v 0.437500 1.500000 -2.687500 +v -0.437500 1.500000 -2.687500 +v -0.500000 2.000000 -2.250000 +v 0.500000 2.000000 -2.250000 +v -0.500000 2.000000 -2.750000 +v 0.500000 2.000000 -2.750000 +v -0.500000 2.250000 -2.750000 +v -0.500000 2.750000 -2.250000 +v 0.500000 2.750000 -2.250000 +v 0.500000 2.250000 -2.750000 +v -0.437500 2.000000 -2.687500 +v -0.437500 2.000000 -2.312500 +v 0.437500 2.000000 -2.312500 +v 0.437500 2.000000 -2.687500 +v -0.437500 2.125000 -2.687500 +v -0.437500 2.125000 -2.312500 +v 0.437500 2.125000 -2.312500 +v 0.437500 2.125000 -2.687500 +v -0.750000 3.250000 0.000000 +v 0.750000 3.250000 0.000000 +v -0.750000 3.250000 -2.000000 +v 0.750000 3.250000 -2.000000 +v -0.500000 2.750000 -2.000000 +v -0.500000 2.750000 0.000000 +v 0.500000 2.750000 0.000000 +v 0.500000 2.750000 -2.000000 +v 1.125000 1.000000 -0.125000 +v 1.375000 1.000000 -0.125000 +v 1.125000 1.000000 -0.375000 +v 1.375000 1.000000 -0.375000 +v 1.125000 3.250000 -0.375000 +v 1.125000 3.250000 -0.125000 +v 1.375000 3.250000 -0.125000 +v 1.375000 3.250000 -0.375000 +v 1.125000 1.000000 -1.625000 +v 1.375000 1.000000 -1.625000 +v 1.125000 1.000000 -1.875000 +v 1.375000 1.000000 -1.875000 +v 1.125000 3.250000 -1.875000 +v 1.125000 3.250000 -1.625000 +v 1.375000 3.250000 -1.625000 +v 1.375000 3.250000 -1.875000 +v -1.375000 1.000000 -0.125000 +v -1.125000 1.000000 -0.125000 +v -1.375000 1.000000 -0.375000 +v -1.125000 1.000000 -0.375000 +v -1.375000 3.250000 -0.375000 +v -1.375000 3.250000 -0.125000 +v -1.125000 3.250000 -0.125000 +v -1.125000 3.250000 -0.375000 +v -1.375000 1.000000 -1.625000 +v -1.125000 1.000000 -1.625000 +v -1.375000 1.000000 -1.875000 +v -1.125000 1.000000 -1.875000 +v -1.375000 3.250000 -1.875000 +v -1.375000 3.250000 -1.625000 +v -1.125000 3.250000 -1.625000 +v -1.125000 3.250000 -1.875000 +v 0.000000 1.000000 0.500000 +v -0.574025 1.000000 0.614181 +v -1.060660 1.000000 0.939340 +v -1.385819 1.000000 1.425975 +v -1.500000 1.000000 2.000000 +v -1.385819 1.000000 2.574025 +v -1.060660 1.000000 3.060660 +v -0.574025 1.000000 3.385819 +v -0.000000 1.000000 3.500000 +v 0.574025 1.000000 3.385819 +v 1.060660 1.000000 3.060660 +v 1.385819 1.000000 2.574025 +v 1.500000 1.000000 2.000000 +v 1.385819 1.000000 1.425975 +v 1.060659 1.000000 0.939340 +v 0.574024 1.000000 0.614180 +v 0.000000 1.250000 0.500000 +v -0.574025 1.250000 0.614181 +v -1.060660 1.250000 0.939340 +v -1.385819 1.250000 1.425975 +v -1.500000 1.250000 2.000000 +v -1.385819 1.250000 2.574025 +v -1.060660 1.250000 3.060660 +v -0.574025 1.250000 3.385819 +v -0.000000 1.250000 3.500000 +v 0.574025 1.250000 3.385819 +v 1.060660 1.250000 3.060660 +v 1.385819 1.250000 2.574025 +v 1.500000 1.250000 2.000000 +v 1.385819 1.250000 1.425975 +v 1.060659 1.250000 0.939340 +v 0.574024 1.250000 0.614180 +v 1.125000 3.250000 3.125000 +v 1.375000 3.250000 3.125000 +v 1.125000 3.250000 -2.000000 +v 1.375000 3.250000 -2.000000 +v 1.125000 3.500000 -2.000000 +v 1.125000 3.500000 3.125000 +v 1.375000 3.500000 3.125000 +v 1.375000 3.500000 -2.000000 +v -1.375000 3.250000 3.125000 +v -1.125000 3.250000 3.125000 +v -1.375000 3.250000 -2.000000 +v -1.125000 3.250000 -2.000000 +v -1.375000 3.500000 -2.000000 +v -1.375000 3.500000 3.125000 +v -1.125000 3.500000 3.125000 +v -1.125000 3.500000 -2.000000 +v 1.125000 1.000000 3.000000 +v 1.375000 1.000000 3.000000 +v 1.125000 1.000000 2.750000 +v 1.375000 1.000000 2.750000 +v 1.125000 3.250000 2.750000 +v 1.125000 3.250000 3.000000 +v 1.375000 3.250000 3.000000 +v 1.375000 3.250000 2.750000 +v -1.375000 1.000000 3.000000 +v -1.125000 1.000000 3.000000 +v -1.375000 1.000000 2.750000 +v -1.125000 1.000000 2.750000 +v -1.375000 3.250000 2.750000 +v -1.375000 3.250000 3.000000 +v -1.125000 3.250000 3.000000 +v -1.125000 3.250000 2.750000 +v 0.250000 2.000000 0.250000 +v 0.073223 1.926777 0.250000 +v 0.000000 1.750000 0.250000 +v 0.073223 1.573223 0.250000 +v 0.250000 1.500000 0.250000 +v 0.426777 1.573223 0.250000 +v 0.500000 1.750000 0.250000 +v 0.426777 1.926777 0.250000 +v 0.250000 2.000000 0.750000 +v 0.073223 1.926777 0.750000 +v 0.000000 1.750000 0.750000 +v 0.073223 1.573223 0.750000 +v 0.250000 1.500000 0.750000 +v 0.426777 1.573223 0.750000 +v 0.500000 1.750000 0.750000 +v 0.426777 1.926777 0.750000 +v -0.250000 2.000000 0.250000 +v -0.426777 1.926777 0.250000 +v -0.500000 1.750000 0.250000 +v -0.426777 1.573223 0.250000 +v -0.250000 1.500000 0.250000 +v -0.073223 1.573223 0.250000 +v 0.000000 1.750000 0.250000 +v -0.073223 1.926777 0.250000 +v -0.250000 2.000000 0.750000 +v -0.426777 1.926777 0.750000 +v -0.500000 1.750000 0.750000 +v -0.426777 1.573223 0.750000 +v -0.250000 1.500000 0.750000 +v -0.073223 1.573223 0.750000 +v 0.000000 1.750000 0.750000 +v -0.073223 1.926777 0.750000 +v 1.125000 1.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.125000 1.000000 1.000000 +v 1.375000 1.000000 1.000000 +v 1.125000 3.250000 1.000000 +v 1.125000 3.250000 1.250000 +v 1.375000 3.250000 1.250000 +v 1.375000 3.250000 1.000000 +v -1.375000 1.000000 1.250000 +v -1.125000 1.000000 1.250000 +v -1.375000 1.000000 1.000000 +v -1.125000 1.000000 1.000000 +v -1.375000 3.250000 1.000000 +v -1.375000 3.250000 1.250000 +v -1.125000 3.250000 1.250000 +v -1.125000 3.250000 1.000000 +v 1.250000 2.375000 -0.500000 +v 1.250000 1.375000 -0.500000 +v 1.250000 2.375000 -1.500000 +v 1.250000 1.375000 -1.500000 +v 1.500000 2.375000 -1.500000 +v 1.500000 2.375000 -0.500000 +v 1.500000 1.375000 -0.500000 +v 1.500000 1.375000 -1.500000 +v 1.500000 2.312500 -1.437500 +v 1.500000 2.312500 -0.562500 +v 1.500000 1.437500 -0.562500 +v 1.500000 1.437500 -1.437500 +v 1.375000 2.312500 -1.437500 +v 1.375000 2.312500 -0.562500 +v 1.375000 1.437500 -0.562500 +v 1.375000 1.437500 -1.437500 +v 1.500000 2.093750 -0.562500 +v 1.500000 2.031250 -0.562500 +v 1.500000 2.093750 -1.437500 +v 1.500000 2.031250 -1.437500 +v 1.500000 2.281250 -0.562500 +v 1.500000 2.218750 -0.562500 +v 1.500000 2.281250 -1.437500 +v 1.500000 2.218750 -1.437500 +v 1.500000 1.718750 -0.562500 +v 1.500000 1.656250 -0.562500 +v 1.500000 1.718750 -1.437500 +v 1.500000 1.656250 -1.437500 +v 1.500000 1.906250 -0.562500 +v 1.500000 1.843750 -0.562500 +v 1.500000 1.906250 -1.437500 +v 1.500000 1.843750 -1.437500 +v 1.500000 1.531250 -0.562500 +v 1.500000 1.468750 -0.562500 +v 1.500000 1.531250 -1.437500 +v 1.500000 1.468750 -1.437500 +v -1.250000 2.375000 -0.500000 +v -1.250000 1.375000 -0.500000 +v -1.250000 2.375000 -1.500000 +v -1.250000 1.375000 -1.500000 +v -1.500000 2.375000 -1.500000 +v -1.500000 2.375000 -0.500000 +v -1.500000 1.375000 -0.500000 +v -1.500000 1.375000 -1.500000 +v -1.500000 2.250000 -1.375000 +v -1.500000 2.250000 -0.625000 +v -1.500000 1.500000 -0.625000 +v -1.500000 1.500000 -1.375000 +v -1.375000 2.250000 -1.375000 +v -1.375000 2.250000 -0.625000 +v -1.375000 1.500000 -0.625000 +v -1.375000 1.500000 -1.375000 +v -1.500000 2.250000 -1.375000 +v -1.982091 2.250000 -0.800467 +v -1.982091 1.500000 -0.800467 +v -1.500000 1.500000 -1.375000 +v 0.875000 1.500000 -3.125000 +v 1.000000 1.500000 -3.125000 +v 0.875000 1.500000 -3.250000 +v 1.000000 1.500000 -3.250000 +v 0.875000 2.875000 -3.125000 +v 1.000000 2.875000 -3.125000 +v 0.875000 2.875000 -3.250000 +v 1.000000 2.875000 -3.250000 +v -1.000000 1.500000 -3.125000 +v -0.875000 1.500000 -3.125000 +v -1.000000 1.500000 -3.250000 +v -0.875000 1.500000 -3.250000 +v -1.000000 2.875000 -3.125000 +v -0.875000 2.875000 -3.125000 +v -1.000000 2.875000 -3.250000 +v -0.875000 2.875000 -3.250000 +v 1.000000 2.875000 -3.250000 +v -1.000000 2.875000 -3.250000 +v 1.000000 2.875000 -2.250000 +v -1.000000 2.875000 -2.250000 +v 1.000000 3.000000 -3.250000 +v -1.000000 3.000000 -3.250000 +v 1.000000 3.000000 -2.250000 +v -1.000000 3.000000 -2.250000 +vt 0.341463 0.102564 +vt -0.000000 0.410256 +vt -0.000000 0.102564 +vt -0.000000 0.102564 +vt 0.341463 0.410256 +vt -0.000000 0.410256 +vt 0.341463 -0.000000 +vt -0.000000 0.000000 +vt 0.341463 -0.000000 +vt 0.390244 0.410256 +vt 0.341463 0.102564 +vt 0.390244 0.102564 +vt 0.390244 0.410256 +vt 0.341463 0.102564 +vt 0.390244 0.102564 +vt 0.326219 0.448718 +vt 0.301829 0.461538 +vt 0.301829 0.448718 +vt 0.329268 0.448718 +vt 0.356707 0.461538 +vt 0.329268 0.461538 +vt 0.381098 0.448718 +vt 0.356707 0.448718 +vt 0.408537 0.448718 +vt 0.384146 0.461538 +vt 0.384146 0.448718 +vt 0.435976 0.448718 +vt 0.411585 0.461538 +vt 0.411585 0.448718 +vt 0.024390 0.448718 +vt 0.000000 0.461538 +vt 0.000000 0.448718 +vt 0.051829 0.448718 +vt 0.027439 0.461538 +vt 0.027439 0.448718 +vt 0.079268 0.448718 +vt 0.054878 0.461538 +vt 0.054878 0.448718 +vt 0.106707 0.448718 +vt 0.082317 0.461538 +vt 0.082317 0.448718 +vt 0.109756 0.448718 +vt 0.137195 0.461538 +vt 0.109756 0.461538 +vt 0.137195 0.448718 +vt 0.164634 0.461538 +vt 0.164634 0.448718 +vt 0.192073 0.461538 +vt 0.192073 0.448718 +vt 0.219512 0.461538 +vt 0.219512 0.448718 +vt 0.246951 0.461538 +vt 0.271341 0.448718 +vt 0.246951 0.448718 +vt 0.274390 0.448718 +vt 0.274390 0.461538 +vt 0.329268 0.487179 +vt 0.301829 0.512821 +vt 0.301829 0.487179 +vt 0.356707 0.487179 +vt 0.329268 0.512821 +vt 0.384146 0.487179 +vt 0.356707 0.512821 +vt 0.408537 0.512821 +vt 0.384146 0.512821 +vt 0.411585 0.487179 +vt 0.435976 0.512821 +vt 0.411585 0.512821 +vt 0.027439 0.487179 +vt 0.000000 0.512821 +vt 0.000000 0.487179 +vt 0.051829 0.512821 +vt 0.027439 0.512821 +vt 0.054878 0.487179 +vt 0.079268 0.512821 +vt 0.054878 0.512821 +vt 0.082317 0.487179 +vt 0.106707 0.512821 +vt 0.082317 0.512821 +vt 0.109756 0.487179 +vt 0.134146 0.512821 +vt 0.109756 0.512821 +vt 0.164634 0.487179 +vt 0.137195 0.512821 +vt 0.137195 0.487179 +vt 0.192073 0.487179 +vt 0.164634 0.512821 +vt 0.216463 0.512821 +vt 0.192073 0.512821 +vt 0.246951 0.487179 +vt 0.219512 0.512821 +vt 0.219512 0.487179 +vt 0.274390 0.487179 +vt 0.246951 0.512821 +vt 0.298781 0.512821 +vt 0.274390 0.512821 +vt 0.451219 0.000216 +vt 0.512092 0.128205 +vt 0.451219 0.256194 +vt 0.414634 0.961538 +vt 0.408537 0.929487 +vt 0.414634 0.929487 +vt 0.756098 0.179487 +vt 0.646341 0.230769 +vt 0.634146 0.179487 +vt 0.756098 -0.000000 +vt 0.634146 0.000000 +vt 1.000000 0.000000 +vt 0.878049 0.179487 +vt 0.878049 0.000000 +vt 0.512195 0.179487 +vt 0.512195 0.000000 +vt 0.658537 0.256410 +vt 0.646341 0.487179 +vt 1.000000 0.179487 +vt 0.890244 0.230769 +vt 0.512195 0.230769 +vt 0.756098 0.230769 +vt 0.512195 0.846154 +vt 0.554878 0.858974 +vt 0.512195 0.858974 +vt 0.707317 0.846154 +vt 0.664634 0.858974 +vt 0.658537 0.846154 +vt 0.707317 0.794872 +vt 0.658537 0.794872 +vt 0.560976 0.846154 +vt 0.560976 0.794872 +vt 0.567073 0.858974 +vt 0.512195 0.794872 +vt 0.652439 0.858974 +vt 0.567073 0.884615 +vt 0.707317 0.858974 +vt 0.664634 0.884615 +vt 0.512195 0.884615 +vt 0.533537 0.929487 +vt 0.512195 0.974359 +vt 0.512195 0.884615 +vt 0.576219 0.974359 +vt 0.533537 0.974359 +vt 0.576219 0.929487 +vt 0.597561 0.974359 +vt 0.597561 0.884615 +vt 0.390244 0.794872 +vt 0.344512 0.801282 +vt 0.341463 0.794872 +vt 0.341463 0.916667 +vt 0.390244 0.865385 +vt 0.390244 0.916667 +vt 0.344512 0.833333 +vt 0.341463 0.839744 +vt 0.317073 0.839744 +vt 0.341463 0.865385 +vt 0.317073 0.916667 +vt 0.414634 0.839744 +vt 0.390244 0.839744 +vt 0.387195 0.801282 +vt 0.387195 0.833333 +vt 0.408537 0.961538 +vt 0.365854 0.929487 +vt 0.365854 0.974359 +vt 0.408537 0.974359 +vt 0.408537 0.916667 +vt 0.365854 0.916667 +vt 0.359756 0.929487 +vt 0.365854 0.961538 +vt 0.359756 0.961538 +vt 0.548781 0.282051 +vt 0.573171 0.487179 +vt 0.548781 0.487179 +vt 0.731707 0.256410 +vt 0.743902 0.230769 +vt 0.731707 0.461538 +vt 0.743902 0.487179 +vt 0.658537 0.461538 +vt 0.621951 0.282051 +vt 0.621951 0.487179 +vt 0.646341 0.487179 +vt 0.646341 0.282051 +vt 0.634146 0.230769 +vt 0.573171 0.282051 +vt 0.560976 0.230769 +vt 0.560976 0.538462 +vt 0.634146 0.538462 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.301829 0.435897 +vt 0.326219 0.448718 +vt 0.301829 0.448718 +vt 0.329268 0.448718 +vt 0.356707 0.435897 +vt 0.353659 0.448718 +vt 0.381098 0.448718 +vt 0.356707 0.448718 +vt 0.384146 0.435897 +vt 0.408537 0.448718 +vt 0.384146 0.448718 +vt 0.411585 0.435897 +vt 0.435976 0.448718 +vt 0.411585 0.448718 +vt 0.000000 0.435897 +vt 0.024390 0.448718 +vt 0.000000 0.448718 +vt 0.027439 0.435897 +vt 0.051829 0.448718 +vt 0.027439 0.448718 +vt 0.054878 0.435897 +vt 0.079268 0.448718 +vt 0.054878 0.448718 +vt 0.082317 0.435897 +vt 0.106707 0.448718 +vt 0.082317 0.448718 +vt 0.109756 0.448718 +vt 0.137195 0.435897 +vt 0.134146 0.448718 +vt 0.137195 0.448718 +vt 0.164634 0.435897 +vt 0.161585 0.448718 +vt 0.164634 0.448718 +vt 0.192073 0.435897 +vt 0.189024 0.448718 +vt 0.192073 0.448718 +vt 0.219512 0.435897 +vt 0.216463 0.448718 +vt 0.219512 0.448718 +vt 0.246951 0.435897 +vt 0.243902 0.448718 +vt 0.271341 0.448718 +vt 0.246951 0.448718 +vt 0.274390 0.448718 +vt 0.298781 0.448718 +vt 0.262195 0.692308 +vt 0.012195 0.717949 +vt 0.012195 0.692308 +vt 0.012195 0.743590 +vt 0.262195 0.769231 +vt 0.012195 0.769231 +vt 0.262195 0.717949 +vt 0.012195 0.794872 +vt 0.262195 0.794872 +vt 0.274390 0.769231 +vt 0.262195 0.743590 +vt 0.274390 0.743590 +vt 0.000000 0.743590 +vt 0.000000 0.769231 +vt 0.262195 0.692308 +vt 0.012195 0.717949 +vt 0.012195 0.692308 +vt 0.012195 0.743590 +vt 0.262195 0.769231 +vt 0.012195 0.769231 +vt 0.262195 0.717949 +vt 0.012195 0.794872 +vt 0.262195 0.794872 +vt 0.274390 0.769231 +vt 0.262195 0.743590 +vt 0.274390 0.743590 +vt 0.000000 0.743590 +vt 0.000000 0.769231 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.161585 0.839744 +vt 0.167683 0.929487 +vt 0.161585 0.929487 +vt 0.219512 0.935897 +vt 0.216463 0.839744 +vt 0.219512 0.833333 +vt 0.213415 0.794872 +vt 0.164634 0.820513 +vt 0.164634 0.794872 +vt 0.164634 0.974359 +vt 0.213415 0.948718 +vt 0.213415 0.974359 +vt 0.231707 0.935897 +vt 0.231707 0.833333 +vt 0.146341 0.833333 +vt 0.158537 0.935897 +vt 0.146341 0.935897 +vt 0.158537 0.833333 +vt 0.213415 0.820513 +vt 0.167683 0.826923 +vt 0.164634 0.948718 +vt 0.210366 0.942308 +vt 0.167683 0.839744 +vt 0.210366 0.929487 +vt 0.210366 0.826923 +vt 0.167683 0.942308 +vt 0.216463 0.929487 +vt 0.210366 0.839744 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.243902 0.833333 +vt 0.250000 0.923077 +vt 0.243902 0.935897 +vt 0.298781 0.794872 +vt 0.250000 0.820513 +vt 0.250000 0.794872 +vt 0.250000 0.974359 +vt 0.298781 0.948718 +vt 0.298781 0.974359 +vt 0.231707 0.833333 +vt 0.231707 0.935897 +vt 0.317073 0.935897 +vt 0.304878 0.833333 +vt 0.317073 0.833333 +vt 0.298781 0.923077 +vt 0.292683 0.846154 +vt 0.298781 0.846154 +vt 0.304878 0.935897 +vt 0.298781 0.820513 +vt 0.256098 0.833333 +vt 0.250000 0.948718 +vt 0.292683 0.935897 +vt 0.256098 0.846154 +vt 0.292683 0.923077 +vt 0.256098 0.923077 +vt 0.292683 0.833333 +vt 0.256098 0.935897 +vt 0.250000 0.846154 +vt 0.323171 0.916667 +vt 0.359756 0.993590 +vt 0.323171 0.993590 +vt 0.725610 0.935897 +vt 0.719512 0.794872 +vt 0.725610 0.794872 +vt 0.713415 0.935897 +vt 0.707317 0.794872 +vt 0.713415 0.794872 +vt 0.719512 0.935897 +vt 0.731707 0.935897 +vt 0.731707 0.794872 +vt 0.725610 0.935897 +vt 0.719512 0.794872 +vt 0.725610 0.794872 +vt 0.713415 0.935897 +vt 0.707317 0.794872 +vt 0.713415 0.794872 +vt 0.719512 0.935897 +vt 0.731707 0.935897 +vt 0.731707 0.794872 +vt 0.810976 0.589744 +vt 0.908537 0.692308 +vt 0.810976 0.692308 +vt 0.908537 0.705128 +vt 0.810976 0.807692 +vt 0.810976 0.705128 +vt 0.914634 0.807692 +vt 0.914634 0.705128 +vt 0.804878 0.705128 +vt 0.804878 0.807692 +vt 0.341463 0.410256 +vt -0.000000 -0.000000 +vt 0.341463 0.410256 +vt 0.353659 0.448718 +vt 0.439024 0.461538 +vt 0.134146 0.448718 +vt 0.161585 0.448718 +vt 0.189024 0.448718 +vt 0.216463 0.448718 +vt 0.243902 0.448718 +vt 0.298781 0.448718 +vt 0.326219 0.512821 +vt 0.353659 0.512821 +vt 0.381098 0.512821 +vt 0.439024 0.487179 +vt 0.024390 0.512821 +vt 0.161585 0.512821 +vt 0.189024 0.512821 +vt 0.243902 0.512821 +vt 0.271341 0.512821 +vt 0.474515 0.009959 +vt 0.494263 0.037704 +vt 0.507459 0.079226 +vt 0.507459 0.177184 +vt 0.494263 0.218707 +vt 0.474514 0.246451 +vt 0.427924 0.246452 +vt 0.408176 0.218707 +vt 0.394980 0.177185 +vt 0.390347 0.128205 +vt 0.394980 0.079226 +vt 0.408176 0.037703 +vt 0.427925 0.009959 +vt 0.987805 0.230769 +vt 0.634146 0.230769 +vt 0.878049 0.230769 +vt 0.652439 0.884615 +vt 0.707317 0.884615 +vt 0.554878 0.884615 +vt 0.414634 0.916667 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.329268 0.435897 +vt 0.439024 0.435897 +vt 0.109756 0.435897 +vt 0.274390 0.435897 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.359756 0.916667 +vt 0.707317 0.935897 +vt 0.707317 0.935897 +vt 0.908537 0.589744 +vt 0.908537 0.807692 +vt 0.341463 0.512821 +vt 0.317073 0.692308 +vt 0.317073 0.512821 +vt 0.170732 0.512821 +vt 0.146341 0.692308 +vt 0.146341 0.512821 +vt 0.365854 0.512821 +vt 0.341463 0.692308 +vt 0.195122 0.512821 +vt 0.170732 0.692308 +vt 0.024390 0.512821 +vt -0.000000 0.692308 +vt 0.000000 0.512821 +vt 0.390244 0.512821 +vt 0.365854 0.692308 +vt 0.219512 0.512821 +vt 0.195122 0.692308 +vt 0.048780 0.512821 +vt 0.024390 0.692308 +vt 0.243902 0.512821 +vt 0.219512 0.692308 +vt 0.073171 0.512821 +vt 0.048780 0.692308 +vt 0.268293 0.512821 +vt 0.243902 0.692308 +vt 0.097561 0.512821 +vt 0.073171 0.692308 +vt 0.292683 0.512821 +vt 0.268293 0.692308 +vt 0.121951 0.512821 +vt 0.097561 0.692308 +vt 0.292683 0.692308 +vt 0.121951 0.692308 +vt 0.926829 0.897436 +vt 0.902439 1.000000 +vt 0.902439 0.897436 +vt 0.853659 1.000000 +vt 0.878049 0.897436 +vt 0.878049 1.000000 +vt 0.951219 0.897436 +vt 0.926829 1.000000 +vt 0.829268 1.000000 +vt 0.853659 0.897436 +vt 0.975610 0.897436 +vt 0.951219 1.000000 +vt 0.804878 1.000000 +vt 0.829268 0.897436 +vt 0.975610 1.000000 +vt 1.000000 0.897436 +vt 1.000000 1.000000 +vt 1.000000 0.897436 +vt 0.975610 1.000000 +vt 0.829268 0.897436 +vt 0.804878 1.000000 +vt 0.804878 0.897436 +vt 0.951219 1.000000 +vt 0.975610 0.897436 +vt 0.853659 0.897436 +vt 0.829268 1.000000 +vt 0.926829 1.000000 +vt 0.951219 0.897436 +vt 0.878049 0.897436 +vt 0.853659 1.000000 +vt 0.902439 1.000000 +vt 0.926829 0.897436 +vt 0.878049 1.000000 +vt 0.902439 0.897436 +vt 0.274390 0.410256 +vt 0.246951 0.410256 +vt 0.082317 0.410256 +vt 0.054878 0.410256 +vt 0.301829 0.410256 +vt 0.109756 0.410256 +vt 0.329268 0.410256 +vt 0.137195 0.410256 +vt 0.356707 0.410256 +vt 0.164634 0.410256 +vt 0.384146 0.410256 +vt 0.192073 0.410256 +vt 0.411585 0.410256 +vt 0.219512 0.410256 +vt 0.027439 0.410256 +vt 0.000000 0.410256 +vt 0.439024 0.410256 +vt 0.692073 0.538462 +vt 0.701219 0.487179 +vt 0.701219 0.538462 +vt 0.710366 0.538462 +vt 0.719512 0.487179 +vt 0.719512 0.538462 +vt 0.655488 0.538462 +vt 0.664634 0.487179 +vt 0.664634 0.538462 +vt 0.673781 0.538462 +vt 0.682927 0.487179 +vt 0.682927 0.538462 +vt 0.692073 0.487179 +vt 0.710366 0.487179 +vt 0.646341 0.538462 +vt 0.655488 0.487179 +vt 0.673781 0.487179 +vt 0.692073 0.538462 +vt 0.701219 0.487179 +vt 0.701219 0.538462 +vt 0.710366 0.538462 +vt 0.719512 0.487179 +vt 0.719512 0.538462 +vt 0.655488 0.538462 +vt 0.664634 0.487179 +vt 0.664634 0.538462 +vt 0.673781 0.538462 +vt 0.682927 0.487179 +vt 0.682927 0.538462 +vt 0.692073 0.487179 +vt 0.710366 0.487179 +vt 0.646341 0.538462 +vt 0.655488 0.487179 +vt 0.673781 0.487179 +vt 0.390244 0.692308 +vt 0.804878 0.897436 +vt 1.000000 1.000000 +vt 0.646341 0.487179 +vt 0.646341 0.487179 +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 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 0.4472 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.4961 0.8682 0.0000 +vn 0.0000 0.8682 -0.4961 +vn -0.4961 0.8682 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7660 0.0000 -0.6428 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 613/1067/72 612/1068/72 611/1069/72 +f 616/1070/73 617/1071/73 615/1072/73 +f 614/1073/74 616/1070/74 612/1074/74 +f 611/1069/75 617/1075/75 613/1067/75 +f 613/1076/76 618/1077/76 614/1078/76 +f 612/1079/77 615/1080/77 611/1081/77 +f 647/1082/72 662/1083/72 646/1084/72 +f 647/1085/72 664/1086/72 663/1087/72 +f 649/1088/72 664/1086/72 648/1089/72 +f 650/1090/72 665/1091/72 649/1092/72 +f 635/1093/72 666/1094/72 650/1095/72 +f 636/1096/72 651/1097/72 635/1098/72 +f 637/1099/72 652/1100/72 636/1101/72 +f 638/1102/72 653/1103/72 637/1104/72 +f 639/1105/72 654/1106/72 638/1107/72 +f 639/1108/72 656/1109/72 655/1110/72 +f 640/1111/72 657/1112/72 656/1109/72 +f 641/1113/72 658/1114/72 657/1112/72 +f 642/1115/72 659/1116/72 658/1114/72 +f 643/1117/72 660/1118/72 659/1116/72 +f 645/1119/72 660/1118/72 644/1120/72 +f 645/1121/72 662/1083/72 661/1122/72 +f 679/1123/73 694/1124/73 678/1125/73 +f 680/1126/73 695/1127/73 679/1123/73 +f 681/1128/73 696/1129/73 680/1126/73 +f 681/1128/73 698/1130/73 697/1131/73 +f 682/1132/73 683/1133/73 698/1134/73 +f 668/1135/73 683/1136/73 667/1137/73 +f 668/1135/73 685/1138/73 684/1139/73 +f 669/1140/73 686/1141/73 685/1142/73 +f 670/1143/73 687/1144/73 686/1145/73 +f 671/1146/73 688/1147/73 687/1148/73 +f 673/1149/73 688/1150/73 672/1151/73 +f 674/1152/73 689/1153/73 673/1149/73 +f 674/1152/73 691/1154/73 690/1155/73 +f 676/1156/73 691/1157/73 675/1158/73 +f 677/1159/73 692/1160/73 676/1156/73 +f 677/1159/73 694/1161/73 693/1162/73 +f 699/1163/73 703/1164/73 707/1165/73 +f 755/1166/74 760/1167/74 756/1168/74 +f 719/1169/76 726/1170/76 722/1171/76 +f 717/1172/76 722/1171/76 718/1173/76 +f 716/1174/77 720/1175/77 715/1176/77 +f 718/1173/74 721/1177/74 716/1178/74 +f 715/1176/75 719/1169/75 717/1172/75 +f 766/1179/73 725/1180/73 726/1170/73 +f 721/1181/77 724/1182/77 720/1175/77 +f 722/1171/78 725/1183/78 721/1177/78 +f 720/1175/79 723/1184/79 719/1169/79 +f 733/1185/73 738/1186/73 737/1187/73 +f 732/1188/73 735/1189/73 731/1190/73 +f 727/1191/75 731/1190/75 729/1192/75 +f 729/1192/76 734/1193/76 730/1194/76 +f 731/1190/73 738/1195/73 734/1193/73 +f 730/1194/74 733/1185/74 728/1196/74 +f 735/1197/77 742/1198/77 738/1195/77 +f 736/1199/74 739/1200/74 735/1189/74 +f 738/1186/75 741/1201/75 737/1187/75 +f 745/1202/80 741/1203/80 742/1204/80 +f 745/1202/73 744/1205/73 743/1206/73 +f 742/1204/81 746/1207/81 745/1202/81 +f 740/1208/82 746/1207/82 739/1209/82 +f 747/1210/72 757/1211/72 748/1212/72 +f 753/1213/83 751/1214/83 752/1215/83 +f 748/1212/72 758/1216/72 750/1217/72 +f 748/1218/74 754/1219/74 753/1220/74 +f 747/1221/75 751/1214/75 749/1222/75 +f 749/1222/76 754/1219/76 750/1217/76 +f 749/1222/72 756/1223/72 747/1210/72 +f 750/1217/72 755/1224/72 749/1222/72 +f 759/1225/72 761/1226/72 760/1167/72 +f 758/1227/77 759/1225/77 755/1228/77 +f 756/1229/76 761/1226/76 757/1230/76 +f 757/1231/75 762/1232/75 758/1233/75 +f 766/1234/79 769/1235/79 764/1236/79 +f 765/1237/73 726/1170/73 723/1238/73 +f 763/1239/73 723/1238/73 724/1240/73 +f 764/1241/73 724/1240/73 725/1180/73 +f 769/1235/73 767/1242/73 768/1243/73 +f 763/1244/78 767/1242/78 765/1245/78 +f 765/1246/77 770/1247/77 766/1248/77 +f 764/1249/76 768/1243/76 763/1250/76 +f 772/1251/77 776/1252/77 771/1253/77 +f 774/1254/74 777/1255/74 772/1251/74 +f 771/1256/75 775/1257/75 773/1258/75 +f 773/1258/76 778/1259/76 774/1254/76 +f 780/1260/77 784/1261/77 779/1262/77 +f 782/1263/74 785/1264/74 780/1260/74 +f 779/1265/75 783/1266/75 781/1267/75 +f 781/1267/76 786/1268/76 782/1263/76 +f 788/1269/77 792/1270/77 787/1271/77 +f 790/1272/74 793/1273/74 788/1269/74 +f 787/1274/75 791/1275/75 789/1276/75 +f 789/1276/76 794/1277/76 790/1272/76 +f 796/1278/77 800/1279/77 795/1280/77 +f 798/1281/74 801/1282/74 796/1278/74 +f 795/1283/75 799/1284/75 797/1285/75 +f 797/1285/76 802/1286/76 798/1281/76 +f 830/1287/73 631/1288/73 630/1289/73 +f 631/1290/73 832/1291/73 632/1292/73 +f 832/1291/73 633/1293/73 632/1294/73 +f 833/1295/73 634/1296/73 633/1297/73 +f 834/1298/73 619/1299/73 634/1300/73 +f 819/1301/73 620/1302/73 619/1303/73 +f 820/1304/73 621/1305/73 620/1306/73 +f 821/1307/73 622/1308/73 621/1309/73 +f 822/1310/73 623/1311/73 622/1312/73 +f 623/1313/73 824/1314/73 624/1315/73 +f 624/1316/73 825/1317/73 625/1318/73 +f 625/1319/73 826/1320/73 626/1321/73 +f 626/1322/73 827/1323/73 627/1324/73 +f 627/1325/73 828/1326/73 628/1327/73 +f 828/1326/73 629/1328/73 628/1329/73 +f 629/1330/73 830/1287/73 630/1331/73 +f 837/1332/72 836/1333/72 835/1334/72 +f 841/1335/73 839/1336/73 840/1337/73 +f 838/1338/74 841/1335/74 836/1333/74 +f 835/1339/75 839/1336/75 837/1340/75 +f 837/1341/76 842/1342/76 838/1343/76 +f 836/1344/77 840/1337/77 835/1345/77 +f 845/1346/72 844/1347/72 843/1348/72 +f 849/1349/73 847/1350/73 848/1351/73 +f 846/1352/74 849/1349/74 844/1347/74 +f 843/1353/75 847/1350/75 845/1354/75 +f 845/1355/76 850/1356/76 846/1357/76 +f 844/1358/77 848/1351/77 843/1359/77 +f 852/1360/77 856/1361/77 851/1362/77 +f 854/1363/74 857/1364/74 852/1360/74 +f 851/1365/75 855/1366/75 853/1367/75 +f 853/1367/76 858/1368/76 854/1363/76 +f 860/1369/77 864/1370/77 859/1371/77 +f 862/1372/74 865/1373/74 860/1369/74 +f 859/1374/75 863/1375/75 861/1376/75 +f 861/1376/76 866/1377/76 862/1372/76 +f 900/1378/77 904/1379/77 899/1380/77 +f 902/1381/74 905/1382/74 900/1378/74 +f 899/1383/75 903/1384/75 901/1385/75 +f 901/1385/76 906/1386/76 902/1381/76 +f 908/1387/77 912/1388/77 907/1389/77 +f 910/1390/74 913/1391/74 908/1387/74 +f 907/1392/75 911/1393/75 909/1394/75 +f 909/1394/76 914/1395/76 910/1390/76 +f 925/1396/76 928/1397/76 924/1398/76 +f 919/1399/74 926/1400/74 922/1401/74 +f 918/1402/72 921/1403/72 916/1404/72 +f 915/1405/73 919/1406/73 917/1407/73 +f 917/1408/76 922/1401/76 918/1409/76 +f 916/1410/77 920/1411/77 915/1412/77 +f 921/1413/74 924/1398/74 920/1411/74 +f 922/1414/74 925/1415/74 921/1403/74 +f 920/1416/74 923/1417/74 919/1406/74 +f 929/1418/74 927/1419/74 928/1397/74 +f 926/1420/73 929/1418/73 925/1415/73 +f 924/1421/72 927/1419/72 923/1417/72 +f 923/1422/77 930/1423/77 926/1400/77 +f 932/1424/74 933/1425/74 931/1426/74 +f 936/1427/74 937/1428/74 935/1429/74 +f 940/1430/74 941/1431/74 939/1432/74 +f 944/1433/74 945/1434/74 943/1435/74 +f 948/1436/74 949/1437/74 947/1438/74 +f 958/1439/75 959/1440/75 955/1441/75 +f 952/1442/72 958/1443/72 954/1444/72 +f 953/1445/73 956/1446/73 951/1447/73 +f 954/1448/76 955/1441/76 953/1449/76 +f 951/1450/77 957/1451/77 952/1452/77 +f 960/1453/76 965/1454/76 961/1455/76 +f 956/1456/75 961/1455/75 957/1451/75 +f 957/1457/75 962/1458/75 958/1443/75 +f 955/1459/75 960/1460/75 956/1446/75 +f 966/1461/75 964/1462/75 963/1463/75 +f 961/1464/73 966/1461/73 962/1458/73 +f 959/1465/72 964/1462/72 960/1460/72 +f 962/1466/77 963/1463/77 959/1440/77 +f 970/1467/84 968/1468/84 967/1469/84 +f 977/1470/76 974/1471/76 973/1472/76 +f 976/1473/77 971/1474/77 972/1475/77 +f 978/1476/74 972/1475/74 974/1471/74 +f 975/1477/75 973/1472/75 971/1478/75 +f 985/1479/76 982/1480/76 981/1481/76 +f 984/1482/77 979/1483/77 980/1484/77 +f 986/1485/74 980/1484/74 982/1480/74 +f 983/1486/75 981/1481/75 979/1487/75 +f 989/1488/72 988/1489/72 987/1490/72 +f 992/1491/73 993/1492/73 991/1493/73 +f 990/1494/75 992/1491/75 988/1495/75 +f 988/1489/76 991/1493/76 987/1490/76 +f 987/1496/74 993/1492/74 989/1497/74 +f 613/1067/72 614/1498/72 612/1068/72 +f 616/1070/73 618/1077/73 617/1071/73 +f 614/1073/74 618/1077/74 616/1070/74 +f 611/1069/75 615/1499/75 617/1075/75 +f 613/1076/76 617/1071/76 618/1077/76 +f 612/1079/77 616/1500/77 615/1080/77 +f 647/1082/72 663/1087/72 662/1083/72 +f 647/1085/72 648/1501/72 664/1086/72 +f 649/1088/72 665/1091/72 664/1086/72 +f 650/1090/72 666/1094/72 665/1091/72 +f 635/1093/72 651/1502/72 666/1094/72 +f 636/1096/72 652/1100/72 651/1097/72 +f 637/1099/72 653/1103/72 652/1100/72 +f 638/1102/72 654/1106/72 653/1103/72 +f 639/1105/72 655/1110/72 654/1106/72 +f 639/1108/72 640/1503/72 656/1109/72 +f 640/1111/72 641/1504/72 657/1112/72 +f 641/1113/72 642/1505/72 658/1114/72 +f 642/1115/72 643/1506/72 659/1116/72 +f 643/1117/72 644/1507/72 660/1118/72 +f 645/1119/72 661/1122/72 660/1118/72 +f 645/1121/72 646/1508/72 662/1083/72 +f 679/1123/73 695/1509/73 694/1124/73 +f 680/1126/73 696/1510/73 695/1127/73 +f 681/1128/73 697/1511/73 696/1129/73 +f 681/1128/73 682/1132/73 698/1130/73 +f 682/1132/73 667/1512/73 683/1133/73 +f 668/1135/73 684/1513/73 683/1136/73 +f 668/1135/73 669/1140/73 685/1138/73 +f 669/1140/73 670/1143/73 686/1141/73 +f 670/1143/73 671/1146/73 687/1144/73 +f 671/1146/73 672/1151/73 688/1147/73 +f 673/1149/73 689/1514/73 688/1150/73 +f 674/1152/73 690/1515/73 689/1153/73 +f 674/1152/73 675/1158/73 691/1154/73 +f 676/1156/73 692/1516/73 691/1157/73 +f 677/1159/73 693/1517/73 692/1160/73 +f 677/1159/73 678/1125/73 694/1161/73 +f 699/1163/73 700/1518/73 701/1519/73 +f 701/1519/73 702/1520/73 703/1164/73 +f 703/1164/73 704/1521/73 707/1165/73 +f 704/1521/73 705/1522/73 707/1165/73 +f 705/1522/73 706/1523/73 707/1165/73 +f 707/1165/73 708/1524/73 709/1525/73 +f 709/1525/73 710/1526/73 707/1165/73 +f 710/1526/73 711/1527/73 707/1165/73 +f 711/1527/73 712/1528/73 713/1529/73 +f 713/1529/73 714/1530/73 699/1163/73 +f 699/1163/73 701/1519/73 703/1164/73 +f 711/1527/73 713/1529/73 707/1165/73 +f 713/1529/73 699/1163/73 707/1165/73 +f 755/1166/74 759/1225/74 760/1167/74 +f 719/1169/76 723/1238/76 726/1170/76 +f 717/1172/76 719/1169/76 722/1171/76 +f 716/1174/77 721/1181/77 720/1175/77 +f 718/1173/74 722/1171/74 721/1177/74 +f 715/1176/75 720/1175/75 719/1169/75 +f 766/1179/73 764/1241/73 725/1180/73 +f 721/1181/77 725/1531/77 724/1182/77 +f 722/1171/78 726/1532/78 725/1183/78 +f 720/1175/79 724/1533/79 723/1184/79 +f 733/1185/73 734/1193/73 738/1186/73 +f 732/1188/73 736/1199/73 735/1189/73 +f 727/1191/75 732/1188/75 731/1190/75 +f 729/1192/76 731/1190/76 734/1193/76 +f 731/1190/73 735/1197/73 738/1195/73 +f 730/1194/74 734/1193/74 733/1185/74 +f 735/1197/77 739/1534/77 742/1198/77 +f 736/1199/74 740/1535/74 739/1200/74 +f 738/1186/75 742/1536/75 741/1201/75 +f 745/1202/80 743/1206/80 741/1203/80 +f 745/1202/73 746/1207/73 744/1205/73 +f 742/1204/81 739/1209/81 746/1207/81 +f 740/1208/82 744/1205/82 746/1207/82 +f 747/1210/72 756/1223/72 757/1211/72 +f 753/1213/83 754/1219/83 751/1214/83 +f 748/1212/72 757/1211/72 758/1216/72 +f 748/1218/74 750/1217/74 754/1219/74 +f 747/1221/75 752/1537/75 751/1214/75 +f 749/1222/76 751/1214/76 754/1219/76 +f 749/1222/72 755/1224/72 756/1223/72 +f 750/1217/72 758/1216/72 755/1224/72 +f 759/1225/72 762/1232/72 761/1226/72 +f 758/1227/77 762/1232/77 759/1225/77 +f 756/1229/76 760/1167/76 761/1226/76 +f 757/1231/75 761/1226/75 762/1232/75 +f 766/1234/79 770/1247/79 769/1235/79 +f 765/1237/73 766/1179/73 726/1170/73 +f 763/1239/73 765/1237/73 723/1238/73 +f 764/1241/73 763/1239/73 724/1240/73 +f 769/1235/73 770/1247/73 767/1242/73 +f 763/1244/78 768/1243/78 767/1242/78 +f 765/1246/77 767/1242/77 770/1247/77 +f 764/1249/76 769/1235/76 768/1243/76 +f 772/1251/77 777/1255/77 776/1252/77 +f 774/1254/74 778/1259/74 777/1255/74 +f 771/1256/75 776/1538/75 775/1257/75 +f 773/1258/76 775/1257/76 778/1259/76 +f 780/1260/77 785/1264/77 784/1261/77 +f 782/1263/74 786/1268/74 785/1264/74 +f 779/1265/75 784/1539/75 783/1266/75 +f 781/1267/76 783/1266/76 786/1268/76 +f 788/1269/77 793/1273/77 792/1270/77 +f 790/1272/74 794/1277/74 793/1273/74 +f 787/1274/75 792/1540/75 791/1275/75 +f 789/1276/76 791/1275/76 794/1277/76 +f 796/1278/77 801/1282/77 800/1279/77 +f 798/1281/74 802/1286/74 801/1282/74 +f 795/1283/75 800/1541/75 799/1284/75 +f 797/1285/76 799/1284/76 802/1286/76 +f 830/1287/73 831/1542/73 631/1288/73 +f 631/1290/73 831/1542/73 832/1291/73 +f 832/1291/73 833/1295/73 633/1293/73 +f 833/1295/73 834/1298/73 634/1296/73 +f 834/1298/73 819/1543/73 619/1299/73 +f 819/1301/73 820/1304/73 620/1302/73 +f 820/1304/73 821/1307/73 621/1305/73 +f 821/1307/73 822/1310/73 622/1308/73 +f 822/1310/73 823/1544/73 623/1311/73 +f 623/1313/73 823/1544/73 824/1314/73 +f 624/1316/73 824/1314/73 825/1317/73 +f 625/1319/73 825/1317/73 826/1320/73 +f 626/1322/73 826/1320/73 827/1323/73 +f 627/1325/73 827/1323/73 828/1326/73 +f 828/1326/73 829/1545/73 629/1328/73 +f 629/1330/73 829/1545/73 830/1287/73 +f 837/1332/72 838/1338/72 836/1333/72 +f 841/1335/73 842/1342/73 839/1336/73 +f 838/1338/74 842/1342/74 841/1335/74 +f 835/1339/75 840/1337/75 839/1336/75 +f 837/1341/76 839/1336/76 842/1342/76 +f 836/1344/77 841/1335/77 840/1337/77 +f 845/1346/72 846/1352/72 844/1347/72 +f 849/1349/73 850/1356/73 847/1350/73 +f 846/1352/74 850/1356/74 849/1349/74 +f 843/1353/75 848/1351/75 847/1350/75 +f 845/1355/76 847/1350/76 850/1356/76 +f 844/1358/77 849/1349/77 848/1351/77 +f 852/1360/77 857/1364/77 856/1361/77 +f 854/1363/74 858/1368/74 857/1364/74 +f 851/1365/75 856/1546/75 855/1366/75 +f 853/1367/76 855/1366/76 858/1368/76 +f 860/1369/77 865/1373/77 864/1370/77 +f 862/1372/74 866/1377/74 865/1373/74 +f 859/1374/75 864/1547/75 863/1375/75 +f 861/1376/76 863/1375/76 866/1377/76 +f 900/1378/77 905/1382/77 904/1379/77 +f 902/1381/74 906/1386/74 905/1382/74 +f 899/1383/75 904/1548/75 903/1384/75 +f 901/1385/76 903/1384/76 906/1386/76 +f 908/1387/77 913/1391/77 912/1388/77 +f 910/1390/74 914/1395/74 913/1391/74 +f 907/1392/75 912/1549/75 911/1393/75 +f 909/1394/76 911/1393/76 914/1395/76 +f 925/1396/76 929/1418/76 928/1397/76 +f 919/1399/74 923/1422/74 926/1400/74 +f 918/1402/72 922/1414/72 921/1403/72 +f 915/1405/73 920/1416/73 919/1406/73 +f 917/1408/76 919/1399/76 922/1401/76 +f 916/1410/77 921/1413/77 920/1411/77 +f 921/1413/74 925/1396/74 924/1398/74 +f 922/1414/74 926/1420/74 925/1415/74 +f 920/1416/74 924/1421/74 923/1417/74 +f 929/1418/74 930/1423/74 927/1419/74 +f 926/1420/73 930/1423/73 929/1418/73 +f 924/1421/72 928/1397/72 927/1419/72 +f 923/1422/77 927/1419/77 930/1423/77 +f 932/1424/74 934/1550/74 933/1425/74 +f 936/1427/74 938/1551/74 937/1428/74 +f 940/1430/74 942/1552/74 941/1431/74 +f 944/1433/74 946/1553/74 945/1434/74 +f 948/1436/74 950/1554/74 949/1437/74 +f 958/1439/75 962/1466/75 959/1440/75 +f 952/1442/72 957/1457/72 958/1443/72 +f 953/1445/73 955/1459/73 956/1446/73 +f 954/1448/76 958/1439/76 955/1441/76 +f 951/1450/77 956/1456/77 957/1451/77 +f 960/1453/76 964/1462/76 965/1454/76 +f 956/1456/75 960/1453/75 961/1455/75 +f 957/1457/75 961/1464/75 962/1458/75 +f 955/1459/75 959/1465/75 960/1460/75 +f 966/1461/75 965/1454/75 964/1462/75 +f 961/1464/73 965/1454/73 966/1461/73 +f 959/1465/72 963/1463/72 964/1462/72 +f 962/1466/77 966/1461/77 963/1463/77 +f 970/1467/84 969/1555/84 968/1468/84 +f 977/1470/76 978/1476/76 974/1471/76 +f 976/1473/77 975/1556/77 971/1474/77 +f 978/1476/74 976/1473/74 972/1475/74 +f 975/1477/75 977/1470/75 973/1472/75 +f 985/1479/76 986/1485/76 982/1480/76 +f 984/1482/77 983/1557/77 979/1483/77 +f 986/1485/74 984/1482/74 980/1484/74 +f 983/1486/75 985/1479/75 981/1481/75 +f 989/1488/72 990/1558/72 988/1489/72 +f 992/1491/73 994/1559/73 993/1492/73 +f 990/1494/75 994/1559/75 992/1491/75 +f 988/1489/76 992/1491/76 991/1493/76 +f 987/1496/74 991/1493/74 993/1492/74 +s 1 +f 633/1560/85 648/1561/86 632/1562/86 +f 626/1563/87 641/1564/88 625/1565/88 +f 634/1566/89 649/1567/85 633/1560/85 +f 627/1568/77 642/1569/87 626/1563/87 +f 620/1570/90 635/1571/76 619/1572/76 +f 619/1573/76 650/1574/89 634/1566/89 +f 628/1575/91 643/1576/77 627/1568/77 +f 621/1577/92 636/1578/90 620/1570/90 +f 629/1579/93 644/1580/91 628/1575/91 +f 622/1581/94 637/1582/92 621/1577/92 +f 630/1583/95 645/1584/93 629/1579/93 +f 623/1585/75 638/1586/94 622/1581/94 +f 631/1587/74 646/1588/95 630/1583/95 +f 624/1589/96 639/1590/75 623/1585/75 +f 632/1562/86 647/1591/74 631/1587/74 +f 625/1565/88 640/1592/96 624/1589/96 +f 661/1122/93 676/1156/91 660/1118/91 +f 654/1106/94 669/1140/92 653/1103/92 +f 662/1083/95 677/1159/93 661/1122/93 +f 655/1110/75 670/1143/94 654/1106/94 +f 663/1087/74 678/1125/95 662/1083/95 +f 656/1109/96 671/1146/75 655/1110/75 +f 664/1086/86 679/1123/74 663/1087/74 +f 657/1112/88 672/1151/96 656/1109/96 +f 665/1091/85 680/1126/86 664/1086/86 +f 658/1114/87 673/1149/88 657/1112/88 +f 666/1094/89 681/1128/85 665/1091/85 +f 659/1116/77 674/1152/87 658/1114/87 +f 652/1100/90 667/1137/76 651/1097/76 +f 651/1502/76 682/1132/89 666/1094/89 +f 660/1118/91 675/1158/77 659/1116/77 +f 653/1103/92 668/1135/90 652/1100/90 +f 696/1593/96 711/1594/75 695/1595/75 +f 689/1596/85 704/1597/86 688/1598/86 +f 697/1599/88 712/1600/96 696/1593/96 +f 690/1601/89 705/1602/85 689/1596/85 +f 698/1603/87 713/1604/88 697/1599/88 +f 691/1605/76 706/1606/89 690/1601/89 +f 684/1607/91 699/1608/77 683/1609/77 +f 683/1610/77 714/1611/87 698/1603/87 +f 692/1612/90 707/1613/76 691/1614/76 +f 685/1615/93 700/1616/91 684/1607/91 +f 693/1617/92 708/1618/90 692/1612/90 +f 686/1619/95 701/1620/93 685/1615/93 +f 694/1621/94 709/1622/92 693/1617/92 +f 687/1623/74 702/1624/95 686/1619/95 +f 695/1595/75 710/1625/94 694/1621/94 +f 688/1598/86 703/1626/74 687/1623/74 +f 813/1627/93 828/1326/91 812/1628/91 +f 806/1629/94 821/1307/92 805/1630/92 +f 814/1631/95 829/1545/93 813/1627/93 +f 807/1632/75 822/1310/94 806/1629/94 +f 815/1633/74 830/1287/95 814/1631/95 +f 808/1634/96 823/1544/75 807/1632/75 +f 816/1635/86 831/1542/74 815/1633/74 +f 809/1636/88 824/1314/96 808/1634/96 +f 817/1637/85 832/1291/86 816/1635/86 +f 810/1638/87 825/1317/88 809/1636/88 +f 818/1639/89 833/1295/85 817/1637/85 +f 811/1640/77 826/1320/87 810/1638/87 +f 804/1641/90 819/1301/76 803/1642/76 +f 803/1643/76 834/1298/89 818/1639/89 +f 812/1628/91 827/1323/77 811/1640/77 +f 805/1630/92 820/1304/90 804/1641/90 +f 874/1644/97 881/1645/74 873/1646/74 +f 872/1647/98 879/1648/72 871/1649/72 +f 870/1650/99 877/1651/75 869/1652/75 +f 868/1653/100 875/1654/73 867/1655/73 +f 867/1655/73 882/1656/97 874/1644/97 +f 873/1646/74 880/1657/98 872/1647/98 +f 871/1658/72 878/1659/99 870/1650/99 +f 869/1652/75 876/1660/100 868/1653/100 +f 890/1661/97 897/1662/74 889/1663/74 +f 888/1664/98 895/1665/72 887/1666/72 +f 886/1667/99 893/1668/75 885/1669/75 +f 884/1670/100 891/1671/73 883/1672/73 +f 883/1672/73 898/1673/97 890/1661/97 +f 889/1663/74 896/1674/98 888/1664/98 +f 887/1675/72 894/1676/99 886/1667/99 +f 885/1669/75 892/1677/100 884/1670/100 +f 633/1560/85 649/1567/85 648/1561/86 +f 626/1563/87 642/1569/87 641/1564/88 +f 634/1566/89 650/1574/89 649/1567/85 +f 627/1568/77 643/1576/77 642/1569/87 +f 620/1570/90 636/1578/90 635/1571/76 +f 619/1573/76 635/1678/76 650/1574/89 +f 628/1575/91 644/1580/91 643/1576/77 +f 621/1577/92 637/1582/92 636/1578/90 +f 629/1579/93 645/1584/93 644/1580/91 +f 622/1581/94 638/1586/94 637/1582/92 +f 630/1583/95 646/1588/95 645/1584/93 +f 623/1585/75 639/1590/75 638/1586/94 +f 631/1587/74 647/1591/74 646/1588/95 +f 624/1589/96 640/1592/96 639/1590/75 +f 632/1562/86 648/1561/86 647/1591/74 +f 625/1565/88 641/1564/88 640/1592/96 +f 661/1122/93 677/1159/93 676/1156/91 +f 654/1106/94 670/1143/94 669/1140/92 +f 662/1083/95 678/1125/95 677/1159/93 +f 655/1110/75 671/1146/75 670/1143/94 +f 663/1087/74 679/1123/74 678/1125/95 +f 656/1109/96 672/1151/96 671/1146/75 +f 664/1086/86 680/1126/86 679/1123/74 +f 657/1112/88 673/1149/88 672/1151/96 +f 665/1091/85 681/1128/85 680/1126/86 +f 658/1114/87 674/1152/87 673/1149/88 +f 666/1094/89 682/1132/89 681/1128/85 +f 659/1116/77 675/1158/77 674/1152/87 +f 652/1100/90 668/1135/90 667/1137/76 +f 651/1502/76 667/1512/76 682/1132/89 +f 660/1118/91 676/1156/91 675/1158/77 +f 653/1103/92 669/1140/92 668/1135/90 +f 696/1593/96 712/1600/96 711/1594/75 +f 689/1596/85 705/1602/85 704/1597/86 +f 697/1599/88 713/1604/88 712/1600/96 +f 690/1601/89 706/1606/89 705/1602/85 +f 698/1603/87 714/1611/87 713/1604/88 +f 691/1605/76 707/1679/76 706/1606/89 +f 684/1607/91 700/1616/91 699/1608/77 +f 683/1610/77 699/1680/77 714/1611/87 +f 692/1612/90 708/1618/90 707/1613/76 +f 685/1615/93 701/1620/93 700/1616/91 +f 693/1617/92 709/1622/92 708/1618/90 +f 686/1619/95 702/1624/95 701/1620/93 +f 694/1621/94 710/1625/94 709/1622/92 +f 687/1623/74 703/1626/74 702/1624/95 +f 695/1595/75 711/1594/75 710/1625/94 +f 688/1598/86 704/1597/86 703/1626/74 +f 813/1627/93 829/1545/93 828/1326/91 +f 806/1629/94 822/1310/94 821/1307/92 +f 814/1631/95 830/1287/95 829/1545/93 +f 807/1632/75 823/1544/75 822/1310/94 +f 815/1633/74 831/1542/74 830/1287/95 +f 808/1634/96 824/1314/96 823/1544/75 +f 816/1635/86 832/1291/86 831/1542/74 +f 809/1636/88 825/1317/88 824/1314/96 +f 817/1637/85 833/1295/85 832/1291/86 +f 810/1638/87 826/1320/87 825/1317/88 +f 818/1639/89 834/1298/89 833/1295/85 +f 811/1640/77 827/1323/77 826/1320/87 +f 804/1641/90 820/1304/90 819/1301/76 +f 803/1643/76 819/1543/76 834/1298/89 +f 812/1628/91 828/1326/91 827/1323/77 +f 805/1630/92 821/1307/92 820/1304/90 +f 874/1644/97 882/1656/97 881/1645/74 +f 872/1647/98 880/1657/98 879/1648/72 +f 870/1650/99 878/1659/99 877/1651/75 +f 868/1653/100 876/1660/100 875/1654/73 +f 867/1655/73 875/1654/73 882/1656/97 +f 873/1646/74 881/1645/74 880/1657/98 +f 871/1658/72 879/1681/72 878/1659/99 +f 869/1652/75 877/1651/75 876/1660/100 +f 890/1661/97 898/1673/97 897/1662/74 +f 888/1664/98 896/1674/98 895/1665/72 +f 886/1667/99 894/1676/99 893/1668/75 +f 884/1670/100 892/1677/100 891/1671/73 +f 883/1672/73 891/1671/73 898/1673/97 +f 889/1663/74 897/1662/74 896/1674/98 +f 887/1675/72 895/1682/72 894/1676/99 +f 885/1669/75 893/1668/75 892/1677/100 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png new file mode 100644 index 0000000000000000000000000000000000000000..dd36137954f1851cdbb628bc9ec6970039ea7fc0 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfE`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..0b67679535c0d513716d8b1d67064d91765db3df GIT binary patch literal 299 zcmV+`0o4A9P)E`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png new file mode 100644 index 0000000000000000000000000000000000000000..0b67679535c0d513716d8b1d67064d91765db3df GIT binary patch literal 299 zcmV+`0o4A9P)E`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png new file mode 100644 index 0000000000000000000000000000000000000000..0b67679535c0d513716d8b1d67064d91765db3df GIT binary patch literal 299 zcmV+`0o4A9P)E`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png new file mode 100644 index 0000000000000000000000000000000000000000..0b67679535c0d513716d8b1d67064d91765db3df GIT binary patch literal 299 zcmV+`0o4A9P)E`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png new file mode 100644 index 0000000000000000000000000000000000000000..0b67679535c0d513716d8b1d67064d91765db3df GIT binary patch literal 299 zcmV+`0o4A9P)E`V=AVDyU$<)8*8kM=xPz5a03M+0y5Luv$8q%Ddq0k&ABMq8 zDZh2|cm)BJQj}%MG)*|?5JHfqDN;(`_x;7m+Zk?}hPtkC&atj5&N;N!#Bt2FZG>S+ zmSykrJbxTqaE7(k6h(m$;t3Z;fz}#pEyft~JO^M|7W%#qo_3BKtE$3UOOhm)dcejQ xqA21x@~bUq)(bncf|d&aB2Vm002ovPDHLkV1hZ2hBW{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png index 928bdf6ac8e8f72520214cd03ee03e22af754484..24ac9d3c063f921a8dad720b50a70c870a8cbdfa 100644 GIT binary patch delta 2735 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 delta 2582 zcmV+x3hDL66|NMJGk*!?Nkl8<=6Fpi4!F_-a5Dd6-v4DHIH;k{-tsS_@ z1EiFax3FE_2iPWvdv_Oxn^bY}bpldsWx((&q~TXMM;S4sMEy8Yl0Cp;la+=Xogpdd z3`gs!8z{WO`v)Fe@KdEW>c4L$ZP?@4bF(=U>hhOqpfr9e)ql2qW!r{O*Z+&W<53hT z09Y=Ul|~uu3D-8GIDG&_c@87?1d3l*jK$Yd9345*tB%fUPzMl>pox98ult+FL1enj~)`kFN$OE#( z1Hj>MuzwPmBngJYA%?>t*6THrBr&!Hz_^6zkR!P8MYx0pCq4c6rswJQ^%gU+Q6M-)Yh{AFgqcDn@tjK^aHK>*-HB>%lExPRP`_{+;n6x~4Sw1gZSE^QEXf>6eO zxm-pkV32abYe+koPN%Bh?;~#}urc7Y3`ioT)2SMbMi>r<@O>Zm z_xG6*??M_!#b`7FfV8dccAJ?&E^W1SACN1<%galKbVB;?nT$<=ki_eam^wFgR`w!B zqkj=@Z*LLDac;j|h2+ELw}+of>2H)W5QK>Ubpz%7t11g(MfOD(pl+aQy@@sf1Anei zH!y2KyjYhAo)e#Gv{!{!McU0su>Xoxrw#iq%mAW-{}&lO-XN@*AW5rhUuF8XPP#zt z>;LY0eqD4rA0XS1_^R4|6-kOFmqnxb0BPUr z^)jUM@9}ud(~Rx4t>=Hre1NnCPNQDR3DiTVmfqjrmlD*f;#=hdq9{^}#UdqN3Try~ zE`nN{dVXE|R`LPBdpVlKhhdnK?}D~;oVxa{=L3LK5XR#%!Z3VCyvxWZK3dPOYk%K~ zd;kSI5+28KhWx=`;3P|bw4Ptrz7zR?<#Oq<(O$2I-ENm2>_-Wo?q9#6ZrtW zo!M+wDJMXD*84!K`2dp>MdyBHe2#oThlI6C_{#Z!?|}C60bgMT5T7w0pl-bK!RSzZ zLfz}XDAh5+NWVJr+3n-MqSph_Uc>i&1VMl}jL~x7%U6 z-KGKL%b~m=nSo1^#5j5Z6mD;4JJab@F^F*-I|Wg1hmtg}-*$eZ`2Y#23UY6Mk(909 zH@Hn5IOP`l{l4{v$$g{%aDRJyi>s?EJUl!A$P%BY#Bw=WtyW%@Aa)`j@H#RTD`x04 zfWpzo3)W}K0|4aa1AhjC0iq~URFltA zA3*12SyIu~a>LVz8jVJHe0;=UFi6j_*#c0#UN4h%V_$N1+16rx3ES`Yiar(1o;vw} z3wiOBp|{(umGm+rx-1M&CTcJk6uv0wzL^NKEnS3Z3DbQdOz#xpJO!L)>&wdvfVZW0 zzu&*}?JW5K+1_Y0Dt}#Ep%0-x#F!^qa+cP zK!@z3zhmPvr$6yE+W&X|UQpZD-+FyO+w}!)`~M^FIA2~WcYp8)g~)xRYoa~?D4)=& z`k^P_cDr5a4@H&92mFvm zF8Kgkp#eufvwv8ukRkc5A6lZ6E4B3N>uV=lg8Mp~AfGm-`={Jdlg&o9ac0B^g?8-K44km@JV>-DhNYyjkE#ei%s zKnAnQeWVKcG6ibW^Yu~Ox%vS9%>D5MgW@7fvmI*cCg<}|Wq-f?Opcs^B(Ln&{MPCN zOwLG@d8BKj)}RT$^>(^jAJBGvLCyXBb^ZTSAJ8&Be?Fjz8BnMHn*O(6AJC=xf;PUF z)V3b}-GA-BMSXy)yq$Mm9f>>-ovsfkgu&jFK;qkN5Cpiox-#0!w_yD|>#+v>?`(ZQ z6_|+P23-KTUvD?H}={ zu8A4?B7b)YoQB%Sw1MhFRQrD`pN3{sLlx>rw_3J-deSm3)wF~*o0n^s>e+Im~ycqk>8|f}fNY%&C z&VSVh@PcJf^Ynb`>34T`nZD$5B7;-}sNM z(944on`O?Q+o|zgv2$t=gNUmm2V+9#%scCkFhow9_}ucdjrn5>yZ%43MG}RXTLf0T zwmK!udu?m^#;wybP0 Hl+XkK{X1#1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..86e05f1be30642f22ecf7f00e26ed9992e7324a3 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9D zvDY8(?l+v3f8T$@cR7aVGOM@>BGl#<96Gmi_PSM1=ImC{*LLKdf6L~4i$LD$nQURY zr;}biOLXEmzAaaL%X@2vtzll8OQz_Zvr%g3P*5^o+nTt+X>I8Ze%>IjV9lpZ^AaR# iR2J;6kpA!giushD^SA8j&*lT2%i!ti=d#Wzp$PzlI$J^j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc0737925380b1b688c71d5fdc8132e60f8294e GIT binary patch literal 290 zcmV+-0p0$IP)xz^T0N_>QWmyWAR%x#BzVGGTX#(dQthE=YwJx~Lv%i}&5%547qK0o2I34@0wry|3g@{6xIrv!=Z=2G0SE_>3R`C8K)l6lTq z_C5CaZC_}}<1EOh7!WFYOk&N}nHGB+i~IJyzqw8KT(=<`L$i&$3dI(^7hjwZOc8sYu&{t<)taJmi2d) k8wk6c{Ci0FNB<-7-zCW#%3ii?26~af)78&qol`;+060x_EdT%j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png new file mode 100644 index 0000000000000000000000000000000000000000..ae2489ea59d46ab2762ac4490e8b58251e908ac7 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwP!vcLtNR%ViFT7kHm{)RAZYsqpUZFR79(#XQ?Qj%}Rlx^nWw2^ZQc z|JXDAtFet@zibkETmST>J>MT6kaA^tZ)=$zvX%4a4)bn~#}-ECjV;r8#FE$SXJXj% zy+y!7Q+C#>Z9+B7Z@vl~Vze?ZkNtk_=x4npQ~1Q$Zg1l~pmen~R^GQ^)uL5ze)o06 zEV^mstT(yW@LHloK&Y4Ims;-}sNM z(944on`O?Q+o|zgv2$t=gNUmm2V+9#%scCkFhow9_}ucdjrn5>yZ%43MG}RXTLf0T zwmK!udu?m^#;wybP0 Hl+XkK{X1#1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9e58030f3c55ec40b06548fa30addb57f60acf GIT binary patch literal 380 zcmV-?0fYXDP)G4p$H`?_EQGOKf+H5-Oc4RW zRoo{}gR-a(9)A%*-0tn}k?W(br^;sNdkrtbe`u8Nd<7b-B{PP z2n0BtPFQPsy?$uK5glqo8eDthE4KuUBG>>YOvfFz8|8IYAy$T32aeZr3?y z-UMCO?Yx#Me;+YMtr8QUP1CR}OA++b18iUJSKgQ|bI&Qrv^M9Q2_X<;+}jh8;)go= aWB}iBeDkD>Aj7&{*s`)CZ-S78K z7oOH=nLZ=Z#pO!W8sLS^fB7RyJzzqINrM4P$5s%9`1@m9w{J6=c@;7iKSKhOAPjSt82g4L#rBwpWL-z53$to(=1 ztKP|6yY;r>`#tgd``$Bcz1G2@xpaNDc4M6CD{~147XiU7*N%D_H*75n_DbwgTv~Fb z&ycNQTkhs-db%dQ&BcBD-j~lV?#rAtPus%jSRu=T*H#QkJvyg9@yvL>bH+Hxna7q&d(PYqJW-Z N@O1TaS?83{1OWWwYU%(0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0913dc67d77c5b58d9d057476c62ee71a7dab6 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf}GhvRqrfkbhy_~Loe>VI7 zJw6shUB@O%g@VkF`UUc?t3{Q zt>V39bfIP4`qxs=WzyO@0;Z`dHLWr_ZyY)8;`hJr*178_S%+O^5qCYfYu(97DF@3w w+*`crN#(o;sgVqmSUnGJd@-Z?hx1OxCplHm&K{CW2fCfX)78&qol`;+0RGNrYXATM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9e58030f3c55ec40b06548fa30addb57f60acf GIT binary patch literal 380 zcmV-?0fYXDP)G4p$H`?_EQGOKf+H5-Oc4RW zRoo{}gR-a(9)A%*-0tn}k?W(br^;sNdkrtbe`u8Nd<7b-B{PP z2n0BtPFQPsy?$uK5glqo8eDthE4KuUBG>>YOvfFz8|8IYAy$T32aeZr3?y z-UMCO?Yx#Me;+YMtr8QUP1CR}OA++b18iUJSKgQ|bI&Qrv^M9Q2_X<;+}jh8;)go= aWB}iBeDkD>c0s!IbU(8F{l59+i~+z}%f9dAd7cWS7PQtVr2y!< zj<#(X$MFq(hJO@zj%lq0pznK@Ww``TeVhwpOoI1)2Vh;-1eRsV?Js;!H5NsYU?9CH zBJrHbaUAio1px0oz-8RN?~{Kk5s6LHyu}1)n&#H~GF6v4B|X=U(?;PnKl3R?7NZ=Ch4+wym1%aYscKC8Z#*K;2{>&81QYLd@U)j+0xn zwZkweQjEdDYh~k8(^;b1aXQT(&3-|GX{7vfF8yHq|+&Fe+p;(e=utU}f&lyIK5)I!-9AW!2eZu+E|0lD= z)vjyncw$`M%vpLP}_O=-}ix~nQOcAQRKRJj=Bm1&RU%9@N k(~iG~g8zT7|9Y9x@PONgdU=&~Ko>K3y85}Sb4q9e0M-m(^Z)<= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png new file mode 100644 index 0000000000000000000000000000000000000000..745c40ab4c48474cb99d93cb80a2fa45c6e90827 GIT binary patch literal 291 zcmV+;0o?wHP)+9K{0LGY0O3AV;H%JJ9uIt#gEjz(2Lff_g2@*9;69DIVqP4!} zd9Jbm=UjpSjN^!u5&-W#P1A53M?QkJw({QNoJ+-Mj@tMAa|CN`6))=jB|a(pK_aBC pYowHT@6+h-`HO%jC};d0{R1*UTACCC2JHX<002ovPDHLkV1m#mc+3C* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f8bef8255ebf410f7409d844a2120e43f3c9ec GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfxcr6Ykm7A;hU>D;tp4vu)mDFv%6T7!?Ja=L{QGunR(ow&Arb2w(mOd*z|5@ zmtoj#;ftL!-ycw9VQ5&@H1qYo_wAnP37IY?l5gfPGc1|1tKlbC{_V70_BlaKtN7Gw zV!5x$I5n)A_h8QF@0@SuZQJH>PEzU9?FGJBjDn2Di)#;@Yv@o*TladGlS_b?c0s!IbU(8F{l59+i~+z}%f9dAd7cWS7PQtVr2y!< zj<#(X$MFq(hJO@zj%lq0pznK@Ww``TeVhwpOoI1)2Vh;-1eRsV?Js;!H5NsYU?9CH zBJrHbaUAio1px0oz-8RN?~{Kk5s6LHyu}1)n&#H~vt>D=2!eaePzMdzfPGUUQPTJ)*Dyr#C)#fy{Sz3pe4 z>*^KnZ+@3;cx-X*i_^KECj5#fA3pUeEqWT{vgLhskXK1;`R%{SE-rJ6SFN)0ojk2U pyMNY(fUJG*{+TKT`Tm!#VfLyiWop@f(gEmC22WQ%mvv4FO#nyVdpiIC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..d36c7234a630179cbd29566e49e4da0ada35bd0b GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfXn-8k?b;z(j$t>rt=2$Ir2|X8|tJN6am|5#&zs&s4 Xc2D=)R-D~HH!^s-`njxgN@xNAUhC ze{A~85@WBw4pwLhNR7*_kZ~6f3=wr*GL>uG1>JE>s`?C&OhI@J~%WT>zcD(R_M6rH{;UUX*iR5|R95W=Z-P(3z zSF6AwXO~SX2hUXAnRhSr18*|Vw%pb8HvVRR*)~1(yC{P{ER*VwET>$-lv*V?vS?cJ>rtEwW;a{#>e09b3E zUDqu{cJGDL=@f~1o=2hc`3$fS`ADY+GJsMF?>+bX9i{PM~HsiUCvrOzZ)Q_!%ItYHSAW*syQ?lK zw?16c^8DwC`=+OAeq*fhI{eszNkNIB;yr(|k6;nwoWoJCXKcO}cAmZBzUbPmAG>B5 zaVrUJ@8a;%T$ahCaq9$wm*%z7y-(&8hkCflv^{+Bd!7JO?rk9_hK`Nj=ZQ>;{h;l3 zVx`HxtrMIWzSXiXcx|;UcX8${@BFXLOQvyssJ|pGE)aGga+?(&&<_lru6{1-oD!M< D(&J(@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png new file mode 100644 index 0000000000000000000000000000000000000000..ff99fd2b9ee6cf26210e0515ecdb3710e2811a3f GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvt>D=2!eaePzMdzfPGUUQPTJ)*Dyr#C)#fy{Sz3pe4 z>*^KnZ+@3;cx-X*i_^KECj5#fA3pUeEqWT{vgLhskXK1;`R%{SE-rJ6SFN)0ojk2U pyMNY(fUJG*{+TKT`Tm!#VfLyiWop@f(gEmC22WQ%mvv4FO#nyVdpiIC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lag.png b/src/main/resources/assets/hbm/textures/models/weapons/lag.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8665cf5ce4158b4a55154b795098078310133d GIT binary patch literal 2838 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 literal 0 HcmV?d00001 From 456a7251d479967e1afff04f5f1e4c46d5c59780 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 27 Jun 2024 16:37:13 +0200 Subject: [PATCH 16/17] a metric fuckton of recipes --- .../hbm/blocks/machine/MachineOreSlopper.java | 6 ++ .../container/ContainerOreSlopper.java | 50 +++++++++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 5 +- .../com/hbm/inventory/gui/GUIOreSlopper.java | 41 +++++++++++ .../inventory/recipes/ArcFurnaceRecipes.java | 30 +++++++- .../inventory/recipes/CentrifugeRecipes.java | 37 ++++++++++ .../inventory/recipes/CombinationRecipes.java | 11 +++ .../recipes/CrystallizerRecipes.java | 56 +++++++++++++++ .../recipes/ElectrolyserMetalRecipes.java | 30 ++++++++ .../hbm/items/special/ItemBedrockOreNew.java | 66 +++++++++++++++--- .../machine/TileEntityMachineOreSlopper.java | 24 ++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 33 +++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 35 +++++++++- .../hbm/textures/gui/fluids/vitriol.png | Bin 0 -> 491 bytes .../hbm/textures/models/tank/tank_VITRIOL.png | Bin 0 -> 1242 bytes 15 files changed, 408 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java index 24b11eae7..42691c524 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -28,4 +29,9 @@ public class MachineOreSlopper extends BlockDummyable { public int getOffset() { return 3; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java b/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java new file mode 100644 index 000000000..1b74dc8f8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java @@ -0,0 +1,50 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; + +public class ContainerOreSlopper extends Container { + + public TileEntityMachineOreSlopper slopper; + + public ContainerOreSlopper(InventoryPlayer player, TileEntityMachineOreSlopper slopper) { + this.slopper = slopper; + + //Battery + this.addSlotToContainer(new Slot(slopper, 0, 8, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(slopper, 1, 26, 72)); + //Input + this.addSlotToContainer(new Slot(slopper, 2, 71, 27)); + //Outputs + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 3, 134, 18)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 4, 152, 18)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 5, 134, 36)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 6, 152, 36)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 7, 134, 54)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 8, 152, 54)); + //Upgrades + this.addSlotToContainer(new Slot(slopper, 0, 62, 72)); + this.addSlotToContainer(new Slot(slopper, 0, 80, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(player, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return slopper.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 9a5fc151b..77e01d676 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -175,6 +175,7 @@ public class Fluids { public static FluidType THORIUM_SALT_DEPLETED; public static FluidType FULLERENE; public static FluidType STELLAR_FLUX; + public static FluidType VITRIOL; /* Lagacy names for compatibility purposes */ @Deprecated public static FluidType ACID; //JAOPCA uses this, apparently @@ -375,7 +376,8 @@ public class Fluids { HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS, P_FUEL); LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID, P_FUEL); - STELLAR_FLUX = new FluidType(139, "STELLAR_FLUX", 0xE300FF, 0, 4, 4, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); + STELLAR_FLUX = new FluidType("STELLAR_FLUX", 0xE300FF, 0, 4, 4, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); + VITRIOL = new FluidType(140, "VITRIOL", 0x6E5222, 2, 0, 1, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -489,6 +491,7 @@ public class Fluids { metaOrder.add(SALIENT); metaOrder.add(SEEDSLURRY); metaOrder.add(COLLOID); + metaOrder.add(VITRIOL); metaOrder.add(IONGEL); metaOrder.add(PEROXIDE); metaOrder.add(SULFURIC_ACID); diff --git a/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java b/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java new file mode 100644 index 000000000..26f4937fc --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java @@ -0,0 +1,41 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerOreSlopper; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIOreSlopper extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_ore_slopper.png"); + private TileEntityMachineOreSlopper slopper; + + public GUIOreSlopper(InventoryPlayer player, TileEntityMachineOreSlopper slopper) { + super(new ContainerOreSlopper(player, slopper)); + this.slopper = slopper; + + this.xSize = 176; + this.ySize = 204; + } + + @Override + protected void drawGuiContainerForegroundLayer( int i, int j) { + + String name = this.slopper.hasCustomInventoryName() ? this.slopper.getInventoryName() : I18n.format(this.slopper.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index 1be8bdd3c..80db4da72 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -25,6 +25,9 @@ import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemScraps; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -51,6 +54,24 @@ public class ArcFurnaceRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); recipes.put(new OreDictStack(BORAX.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.powder_boron_tiny, 3)).fluid(new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(3)))); + for(BedrockOreType type : BedrockOreType.values()) { + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(5)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(2)))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(2)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(5)))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(1)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(1)))); + + int i3 = MaterialShapes.INGOT.q(3); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductAcid1, i3), ItemBedrockOreNew.toFluid(type.byproductAcid2, i3), ItemBedrockOreNew.toFluid(type.byproductAcid3, i3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductSolvent1, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent2, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent3, i3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductRad1, i3), ItemBedrockOreNew.toFluid(type.byproductRad2, i3), ItemBedrockOreNew.toFluid(type.byproductRad3, i3))); + } + // Autogen for simple single type items for(NTMMaterial material : Mats.orderedList) { int in = material.convIn; @@ -151,7 +172,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { public static HashMap getFluidRecipes() { HashMap recipes = new HashMap(); for(Entry recipe : ArcFurnaceRecipes.recipes.entrySet()) { - if(recipe.getValue().fluidOutput != null) { + if(recipe.getValue().fluidOutput != null && recipe.getValue().fluidOutput.length > 0) { Object[] out = new Object[recipe.getValue().fluidOutput.length]; for(int i = 0; i < out.length; i++) out[i] = ItemScraps.create(recipe.getValue().fluidOutput[i], true); recipes.put(recipe.getKey().copy(), out); @@ -244,6 +265,13 @@ public class ArcFurnaceRecipes extends SerializableRecipe { return this; } + public ArcFurnaceRecipe fluidNull(MaterialStack... outputs) { + List mat = new ArrayList(); + for(MaterialStack stack : outputs) if(stack != null) mat.add(stack); + if(!mat.isEmpty()) this.fluidOutput = mat.toArray(new MaterialStack[0]); + return this; + } + public ArcFurnaceRecipe solid(ItemStack output) { this.solidOutput = output; return this; diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 5896e1a7e..a3aaea30c 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -25,7 +25,10 @@ import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; +import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.items.special.ItemByproduct.EnumByproduct; import com.hbm.main.MainRegistry; import com.hbm.util.ItemStackUtil; @@ -509,6 +512,40 @@ public class CentrifugeRecipes extends SerializableRecipe { ItemStackUtil.carefulCopy(by3) }); } + for(BedrockOreType type : BedrockOreType.values()) { + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type), ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type), ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type), ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type), ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type), ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1), ItemBedrockOreNew.extract(type.byproductAcid2), ItemBedrockOreNew.extract(type.byproductAcid3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1), ItemBedrockOreNew.extract(type.byproductAcid2), ItemBedrockOreNew.extract(type.byproductAcid3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1), ItemBedrockOreNew.extract(type.byproductAcid2), ItemBedrockOreNew.extract(type.byproductAcid3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1, 2), ItemBedrockOreNew.extract(type.byproductAcid2, 2), ItemBedrockOreNew.extract(type.byproductAcid3, 2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1), ItemBedrockOreNew.extract(type.byproductSolvent2), ItemBedrockOreNew.extract(type.byproductSolvent3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1), ItemBedrockOreNew.extract(type.byproductSolvent2), ItemBedrockOreNew.extract(type.byproductSolvent3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1), ItemBedrockOreNew.extract(type.byproductSolvent2), ItemBedrockOreNew.extract(type.byproductSolvent3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1, 2), ItemBedrockOreNew.extract(type.byproductSolvent2, 2), ItemBedrockOreNew.extract(type.byproductSolvent3, 2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1), ItemBedrockOreNew.extract(type.byproductRad2), ItemBedrockOreNew.extract(type.byproductRad3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1), ItemBedrockOreNew.extract(type.byproductRad2), ItemBedrockOreNew.extract(type.byproductRad3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1), ItemBedrockOreNew.extract(type.byproductRad2), ItemBedrockOreNew.extract(type.byproductRad3), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1, 2), ItemBedrockOreNew.extract(type.byproductRad2, 2), ItemBedrockOreNew.extract(type.byproductRad3, 2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + } + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 1fe93cf7e..e512e8529 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -24,6 +24,9 @@ import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.util.Tuple.Pair; import net.minecraft.init.Blocks; @@ -63,6 +66,14 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50))); recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null)); + + for(BedrockOreType type : BedrockOreType.values()) { + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + } } public static Pair getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index c18e36ace..2c5867d72 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -25,7 +25,10 @@ import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Pair; @@ -133,6 +136,59 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_deepcleaned, 1, i), oreTime), organic); registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_seared, 1, i), oreTime), hiperf); } + + int bedrock = 200; + int washing = 100; + for(BedrockOreType type : BedrockOreType.values()) { + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + + FluidStack primary = new FluidStack(Fluids.HYDROGEN, 250); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + + FluidStack secondary = new FluidStack(Fluids.CHLORINE, 250); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type), bedrock).setReq(64), new FluidStack(Fluids.NITRIC_ACID, 1000)); + } FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; for(FluidStack dye : dyes) { diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index 2e240f391..8932941c2 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -21,6 +21,9 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemScraps; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.util.ItemStackUtil; import net.minecraft.item.ItemStack; @@ -128,6 +131,33 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(4)), new ItemStack(ModItems.powder_copper, 4), new ItemStack(ModItems.powder_lithium_tiny, 3))); + + for(BedrockOreType type : BedrockOreType.values()) { + + MaterialStack f0 = ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(7)); + MaterialStack f1 = ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(4)); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ElectrolysisMetalRecipe( + f0 != null ? f0 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1)), + f1 != null ? f1 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1)), + f0 == null ? ItemBedrockOreNew.extract(type.primary1, 7) : new ItemStack(ModItems.dust), + f1 == null ? ItemBedrockOreNew.extract(type.primary2, 4) : new ItemStack(ModItems.dust))); + + MaterialStack s0 = ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(4)); + MaterialStack s1 = ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(7)); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ElectrolysisMetalRecipe( + s0 != null ? s0 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1)), + s1 != null ? s1 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1)), + s0 == null ? ItemBedrockOreNew.extract(type.primary1, 4) : new ItemStack(ModItems.dust), + s1 == null ? ItemBedrockOreNew.extract(type.primary2, 7) : new ItemStack(ModItems.dust))); + + MaterialStack c0 = ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(2)); + MaterialStack c1 = ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(2)); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ElectrolysisMetalRecipe( + c0 != null ? c0 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1, 2)), + c1 != null ? c1 : new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(1, 2)), + c0 == null ? ItemBedrockOreNew.extract(type.primary1, 2) : new ItemStack(ModItems.dust), + c1 == null ? ItemBedrockOreNew.extract(type.primary2, 2) : new ItemStack(ModItems.dust))); + } } public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index c561cd214..15f3550f9 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -3,6 +3,7 @@ package com.hbm.items.special; import static com.hbm.inventory.OreDictManager.*; import java.util.List; +import java.util.Locale; import com.hbm.items.ModItems; import com.hbm.util.EnumUtil; @@ -10,6 +11,10 @@ import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.lib.RefStrings; import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; @@ -21,6 +26,8 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraftforge.oredict.OreDictionary; public class ItemBedrockOreNew extends Item { @@ -66,18 +73,20 @@ public class ItemBedrockOreNew extends Item { @Override public String getItemStackDisplayName(ItemStack stack) { int meta = stack.getItemDamage(); - return this.getGrade(meta).name() + " " + this.getType(meta).suffix; + String type = StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".type." + this.getType(meta).suffix + ".name"); + return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".grade." + this.getGrade(meta).name().toLowerCase(Locale.US) + ".name", type); } public static enum BedrockOreType { - // primary sulfuric solvent radsolvent - LIGHT_METAL( 0xFFFFFF, 0x353535, "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), - HEAVY_METAL( 0x868686, 0x000000, "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), - RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", CO, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), B, LA, NB, ND, B, ZR, CO, ND, ZR), - ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), - NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), - CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); - + // primary sulfuric solvent radsolvent + LIGHT_METAL( 0xFFFFFF, 0x353535, "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), + HEAVY_METAL( 0x868686, 0x000000, "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), + RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", CO, EnumChunkType.RARE, B, LA, NB, ND, B, ZR, CO, ND, ZR), + ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), + NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), + CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", DIAMOND, SODALITE, CINNABAR, ASBESTOS, REDSTONE, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); + //sediment + public int light; public int dark; public String suffix; @@ -96,6 +105,39 @@ public class ItemBedrockOreNew extends Item { this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3; } } + + public static MaterialStack toFluid(Object o, int amount) { + if(o instanceof DictFrame) { + NTMMaterial mat = Mats.matByName.get(((DictFrame) o).mats[0]); + if(mat != null && mat.smeltable == SmeltingBehavior.SMELTABLE) { + return new MaterialStack(mat, amount); + } + } + return null; + } + + public static ItemStack extract(Object o) { + return extract(o, 1); + } + + public static ItemStack extract(Object o, int amount) { + if(o instanceof EnumChunkType) return new ItemStack(ModItems.chunk_ore, amount, ((EnumChunkType) o).ordinal()); + if(o instanceof DictFrame) { + DictFrame frame = (DictFrame) o; + List gems = OreDictionary.getOres(frame.gem(), false); if(!gems.isEmpty()) return fromList(gems, amount); + List dusts = OreDictionary.getOres(frame.dust(), false); if(!dusts.isEmpty()) return fromList(dusts, amount); + List crystals = OreDictionary.getOres(frame.crystal(), false); if(!crystals.isEmpty()) return fromList(crystals, amount); + List billets = OreDictionary.getOres(frame.billet(), false); if(!billets.isEmpty()) return fromList(billets, amount); + List ingots = OreDictionary.getOres(frame.ingot(), false); if(!ingots.isEmpty()) return fromList(ingots, amount); + } + return new ItemStack(ModItems.nothing); + } + + private static ItemStack fromList(List list, int amount) { + ItemStack first = list.get(0).copy(); + first.stackSize = amount; + return first; + } @Override @SideOnly(Side.CLIENT) @@ -150,7 +192,11 @@ public class ItemBedrockOreNew extends Item { } public static ItemStack make(BedrockOreGrade grade, BedrockOreType type) { - return new ItemStack(ModItems.bedrock_ore, 1, grade.ordinal() << 4 | type.ordinal()); + return make(grade, type, 1); + } + + public static ItemStack make(BedrockOreGrade grade, BedrockOreType type, int amount) { + return new ItemStack(ModItems.bedrock_ore, amount, grade.ordinal() << 4 | type.ordinal()); } public BedrockOreGrade getGrade(int meta) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java index f8554ab4c..1fdbe4de6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -1,11 +1,21 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerOreSlopper; +import com.hbm.inventory.gui.GUIOreSlopper; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityMachineOreSlopper extends TileEntityMachineBase { +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IGUIProvider { public TileEntityMachineOreSlopper() { - super(0); + super(11); } @Override @@ -18,4 +28,14 @@ public class TileEntityMachineOreSlopper extends TileEntityMachineBase { } + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerOreSlopper(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIOreSlopper(player.inventory, this); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index e87ccd894..9c93972a5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -782,6 +782,7 @@ hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf hbmfluid.unsaturateds=Ungesättigte Kohlenwasserstoffe +hbmfluid.vitriol=Vitriol hbmfluid.wastefluid=Flüssiger Atommüll hbmfluid.wastegas=Gasförmiger Atommüll hbmfluid.water=Wasser @@ -1259,6 +1260,38 @@ item.battery_su.name=Einwegbatterie item.battery_su_l.name=Große Einwegbatterie item.battery_trixite.name=Billige Spark-Batterie-Nachmache item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s-Bedrockerz +item.bedrock_ore.grade.base_roasted.name=Geröstetes %s-Bedrockerz +item.bedrock_ore.grade.base_washed.name=Gewaschenes %s-Bedrockerz +item.bedrock_ore.grade.primary.name=%s-Bedrockerz, Primärfraktion +item.bedrock_ore.grade.primary_roasted.name=%s-Bedrockerz, geröstete Primärfraktion +item.bedrock_ore.grade.primary_sulfuric.name=%s-Bedrockerz, schwefelige Primärfraktion +item.bedrock_ore.grade.primary_nosulfuric.name=%s-Bedrockerz, geteilte schwefelige Primärfraktion +item.bedrock_ore.grade.primary_solvent.name=%s-Bedrockerz, gelöste Primärfraktion +item.bedrock_ore.grade.primary_nosolvent.name=%s-Bedrockerz, geteilte gelöste Primärfraktion +item.bedrock_ore.grade.primary_rad.name=%s-Bedrockerz, gereinigte Primärfraktion +item.bedrock_ore.grade.primary_norad.name=%s-Bedrockerz, geteilte gereinigte Primärfraktion +item.bedrock_ore.grade.primary_first.name=%s-Bedrockerz, Primärfraktion, hohe Gewichtung +item.bedrock_ore.grade.primary_second.name=%s-Bedrockerz, Primärfraktion, niedrige Gewichtung +item.bedrock_ore.grade.crumbs.name=%s-Bedrockerzkrumen +item.bedrock_ore.grade.sulfuric_byproduct.name=%s-Bedrockerz, schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_roasted.name=%s-Bedrockerz, geröstetes schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_arc.name=%s-Bedrockerz, gebranntes schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_washed.name=%s-Bedrockerz, gewaschenes schwefeliges Nebenprodukt +item.bedrock_ore.grade.solvent_byproduct.name=%s-Bedrockerz, gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_roasted.name=%s-Bedrockerz, geröstetes gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_arc.name=%s-Bedrockerz, gebranntes gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_washed.name=%s-Bedrockerz, gewaschenes gelöstes Nebenprodukt +item.bedrock_ore.grade.rad_byproduct.name=%s-Bedrockerz, gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_roasted.name=%s-Bedrockerz, geröstetes gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_arc.name=%s-Bedrockerz, gebranntes gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_washed.name=%s-Bedrockerz, gewaschenes gereinigtes Nebenprodukt +item.bedrock_ore.type.actinide.name=Actinoide +item.bedrock_ore.type.crystal.name=Kristall +item.bedrock_ore.type.heavy.name=Schwermetall +item.bedrock_ore.type.light.name=Leichtmetall +item.bedrock_ore.type.nonmetal.name=Nichtmetall +item.bedrock_ore.type.rare.name=Seltenerden item.beta.name=Beta-Features item.big_sword.name=Großes Schwert item.billet_am_mix.name=Reaktorfähiges Americiumbillet diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4d6007cde..26cdf1b9b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1474,6 +1474,7 @@ hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam hbmfluid.unsaturateds=Unsaturated Hydrocarbons +hbmfluid.vitriol=Vitriol hbmfluid.wastefluid=Liquid Nuclear Waste hbmfluid.wastegas=Gaseous Nuclear Waste hbmfluid.water=Water @@ -1483,8 +1484,6 @@ hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX - - hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1966,6 +1965,38 @@ item.battery_su.name=SU-Battery item.battery_su_l.name=Large SU-Battery item.battery_trixite.name=Off-Brand Spark Battery item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s Bedrock Ore +item.bedrock_ore.grade.base_roasted.name=Roasted %s Bedrock Ore +item.bedrock_ore.grade.base_washed.name=Washed %s Bedrock Ore +item.bedrock_ore.grade.primary.name=%s Bedrock Ore, Primary Fraction +item.bedrock_ore.grade.primary_roasted.name=%s Bedrock Ore, Roasted Primary Fraction +item.bedrock_ore.grade.primary_sulfuric.name=%s Bedrock Ore, Sulfuric Primary Fraction +item.bedrock_ore.grade.primary_nosulfuric.name=%s Bedrock Ore, Separated Sulfuric Primary Fraction +item.bedrock_ore.grade.primary_solvent.name=%s Bedrock Ore, Dissolved Primary Fraction +item.bedrock_ore.grade.primary_nosolvent.name=%s Bedrock Ore, Separated Dissolved Primary Fraction +item.bedrock_ore.grade.primary_rad.name=%s Bedrock Ore, Cleaned Primary Fraction +item.bedrock_ore.grade.primary_norad.name=%s Bedrock Ore, Separated Cleaned Primary Fraction +item.bedrock_ore.grade.primary_first.name=%s Bedrock Ore, Primary Fraction, Higher Weight +item.bedrock_ore.grade.primary_second.name=%s Bedrock Ore, Primary Fraction, Lower Weight +item.bedrock_ore.grade.crumbs.name=%s Bedrock Ore Crumbs +item.bedrock_ore.grade.sulfuric_byproduct.name=%s Bedrock Ore, Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_roasted.name=%s Bedrock Ore, Roasted Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_arc.name=%s Bedrock Ore, Seared Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_washed.name=%s Bedrock Ore, Washed Sulfuric Byproduct +item.bedrock_ore.grade.solvent_byproduct.name=%s Bedrock Ore, Dissolved Byproduct +item.bedrock_ore.grade.solvent_roasted.name=%s Bedrock Ore, Roasted Dissolved Byproduct +item.bedrock_ore.grade.solvent_arc.name=%s Bedrock Ore, Seared Dissolved Byproduct +item.bedrock_ore.grade.solvent_washed.name=%s Bedrock Ore, Washed Dissolved Byproduct +item.bedrock_ore.grade.rad_byproduct.name=%s Bedrock Ore, Cleaned Byproduct +item.bedrock_ore.grade.rad_roasted.name=%s Bedrock Ore, Roasted Cleaned Byproduct +item.bedrock_ore.grade.rad_arc.name=%s Bedrock Ore, Seared Cleaned Byproduct +item.bedrock_ore.grade.rad_washed.name=%s Bedrock Ore, Washed Cleaned Byproduct +item.bedrock_ore.type.actinide.name=Actinide +item.bedrock_ore.type.crystal.name=Crystalline +item.bedrock_ore.type.heavy.name=Heavy Metal +item.bedrock_ore.type.light.name=Light Metal +item.bedrock_ore.type.nonmetal.name=Non-Metal +item.bedrock_ore.type.rare.name=Rare Earth item.beta.name=Beta Features item.big_sword.name=Great Sword item.billet_actinium.name=Actinium-227 Billet diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png b/src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png new file mode 100644 index 0000000000000000000000000000000000000000..c716b615472db55c1944d102c0f8da36c850643e GIT binary patch literal 491 zcmV%;Wf`W}%YB}%O42~5$82pZQ0 zR~d@>2h^Y6zy7Z43V?_ZVIbQe8!lv&ht!4sT@{H;k`d_qm&}Xh|My)hHcvr z5k#cGu+BO5eMdwNjkawoqXJ~5hG8f~|NQ)5`@ZLTz4Cs)nWm}W?)#n)LV=RkaU3zm z&~@Ec*1qpqmIV>PTFd!-=5#tSP16BV=0|Hy2!U_8coxDRj4=CO4NB>%M*nVz8ut}XJIe&Wx|#q0002ovPDHLkV1lK}Lx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png new file mode 100644 index 0000000000000000000000000000000000000000..12dd41f208b8d33c2c1c219a7348394bbb717d9d GIT binary patch literal 1242 zcmV<01SR{4P)g?9J@+{UpTYZduNIn4S6UpSd~l@bcC3 zzak=o#ao}%%{#wY5D}5n#Z-h;Yq7oL$WBe5fs{psiQ&>M%|AU zI_mb>W++;8Le{qSD$6fkzi(~Z#4AO_D>xCa5RF0`L7|NxUMV16p%L*aQ^YGcHN`7e zLp;A(kip`uS69KVy9YKmcBZaFp?kn*7f+#k;PB_Ssq4%a`}Na?m5Koy9_Q2dKU3q? zz%yROqD3bpG+z1i(Znl7UBxS(^@vvq2|at|)kg=tqLSD{bGggqurPge50Imc@am(9 zS9-dNS3Z3-Ejl5by~*^|AaXvaTq4CP=SU2%XPf8aD(xMYmk5^Y``(8ii)kg=vsyoE1*`tp(f*g%8 z&R!|%Dqi^<>!w8~Bs5-m9qT4u>FFw7b#l!Z+QZZqXv8&RMv$Y8@adzO+CqWG)D}Kb ztqFs%gfvae?)rmx%#HBGD@9x!2q(>p0~w6<04Ft!AV(X)y;n2Fy;pEzYKu%UwFR6s zr?z0%-2;rejo^TZ5zHJoV_X~vCoT@mR7w{I(xMZhdG8g4?g2*KMzHHPqLZmDFd0)@ zz=^3XGR4J#a7udSK+I0D7rr{%m(%0s@c@0a5fs`8;*}z;cvZh$#|JGsA-?e{WU@Kp zl_ITp6*3zFqwa(-wFRQlqBG}vgFG$T2;!9@jd&FjtwdSB$z7!r3cCqtHfBXd{SM zHM<9wA|kTAz7)MJ;#H!GBG;F@LcHpLtFXHVmr*S{rFcb)mTHl=*Ow~A?XqQuPHo}C ze4*<_b}i3hH{Q1B119&op!}R1U5uAkR+mMj`hQtjT^_HqdvJNTPE{_S9AvgdKP+9xOf_s0|h$w|(MOLMDx_CymB65wDchi#>}XYcn0M%F0oy{8&A5 z)#cK4wbr7GH_7#H@m2o5{&Ulw>w;@A))(sWs%RCr%R;6s z>3CIewbC}$%~?wEDw&G|%Y&h52Q&Ig^WwlczZU)fug|qkUq;=bn% Date: Thu, 27 Jun 2024 22:19:57 +0200 Subject: [PATCH 17/17] the almighty perlin noise --- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../inventory/recipes/ArcFurnaceRecipes.java | 8 +-- src/main/java/com/hbm/items/ModItems.java | 9 ++- .../hbm/items/special/ItemBedrockOreBase.java | 57 ++++++++++++++++++ .../hbm/items/special/ItemBedrockOreNew.java | 5 ++ .../hbm/items/tool/ItemOreDensityScanner.java | 42 +++++++++++++ .../java/com/hbm/main/ModEventHandler.java | 10 +++ .../machine/TileEntityMachineExcavator.java | 5 ++ .../assets/hbm/textures/items/bedrock_ore.png | Bin 2968 -> 3125 bytes .../hbm/textures/items/bedrock_ore_new.png | Bin 0 -> 552 bytes .../textures/items/bedrock_ore_new_base.png | Bin 0 -> 310 bytes .../textures/items/bedrock_ore_new_blank.png | Bin 0 -> 307 bytes .../textures/items/ore_density_scanner.png | Bin 0 -> 345 bytes 13 files changed, 131 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemBedrockOreBase.java create mode 100644 src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_new_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_new_blank.png create mode 100644 src/main/resources/assets/hbm/textures/items/ore_density_scanner.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 9b9f95a4d..28652267a 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -131,6 +131,7 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ore_density_scanner, 1), new Object[] { "VVV", "CSC", "GGG", " S ", 'V', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_CHASSIS), 'G', GOLD.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index 80db4da72..e99642cfa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -57,10 +57,10 @@ public class ArcFurnaceRecipes extends SerializableRecipe { for(BedrockOreType type : BedrockOreType.values()) { recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 3))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(5)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(2)))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(2)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(5)))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 95cf47526..f58d01323 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -213,6 +213,7 @@ public class ModItems { public static Item ore_seared; //public static Item ore_radcleaned; public static Item ore_enriched; //final stage + public static Item bedrock_ore_base; public static Item bedrock_ore; public static Item billet_uranium; @@ -1262,6 +1263,7 @@ public class ModItems { public static Item geiger_counter; public static Item digamma_diagnostic; public static Item pollution_detector; + public static Item ore_density_scanner; public static Item survey_scanner; public static Item mirror_tool; public static Item rbmk_tool; @@ -2721,7 +2723,8 @@ public class ModItems { ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); - bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_base"); + bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -4602,6 +4605,7 @@ public class ModItems { geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); + ore_density_scanner = new ItemOreDensityScanner().setUnlocalizedName("ore_density_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ore_density_scanner"); survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); @@ -5939,9 +5943,9 @@ public class ModItems { GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName()); GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName()); GameRegistry.registerItem(ore_seared, ore_seared.getUnlocalizedName()); - //GameRegistry.registerItem(ore_radcleaned, ore_radcleaned.getUnlocalizedName()); GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName()); GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); //Crystals @@ -6845,6 +6849,7 @@ public class ModItems { GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); + GameRegistry.registerItem(ore_density_scanner, ore_density_scanner.getUnlocalizedName()); GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java b/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java new file mode 100644 index 000000000..a20220d8e --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java @@ -0,0 +1,57 @@ +package com.hbm.items.special; + +import java.util.List; +import java.util.Random; + +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.items.tool.ItemOreDensityScanner; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; +import net.minecraft.world.gen.NoiseGeneratorPerlin; + +public class ItemBedrockOreBase extends Item { + + public static double getOreAmount(ItemStack stack, BedrockOreType type) { + if(!stack.hasTagCompound()) return 0; + NBTTagCompound data = stack.getTagCompound(); + return data.getDouble(type.suffix); + } + + public static void setOreAmount(ItemStack stack, int x, int z) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + NBTTagCompound data = stack.getTagCompound(); + + for(BedrockOreType type : BedrockOreType.values()) { + data.setDouble(type.suffix, getOreLevel(x, z, type)); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + for(BedrockOreType type : BedrockOreType.values()) { + double amount = this.getOreAmount(stack, type); + String typeName = StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name"); + list.add(typeName + ": " + ((int) (amount * 100)) / 100D + " (" + ItemOreDensityScanner.translateDensity(amount) + EnumChatFormatting.RESET + ")"); + } + } + + private static NoiseGeneratorPerlin[] ores = new NoiseGeneratorPerlin[BedrockOreType.values().length]; + private static NoiseGeneratorPerlin level; + + public static double getOreLevel(int x, int z, BedrockOreType type) { + + if(level == null) level = new NoiseGeneratorPerlin(new Random(2114043), 4); + if(ores[type.ordinal()] == null) ores[type.ordinal()] = new NoiseGeneratorPerlin(new Random(2082127 + type.ordinal()), 4); + + double scale = 0.01D; + + return MathHelper.clamp_double(Math.abs(level.func_151601_a(x * scale, z * scale) * ores[type.ordinal()].func_151601_a(x * scale, z * scale)) * 0.05, 0, 2); + } +} diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index 15f3550f9..da7713b81 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -32,6 +32,11 @@ import net.minecraftforge.oredict.OreDictionary; public class ItemBedrockOreNew extends Item { public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length]; + + public ItemBedrockOreNew() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } @Override @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java new file mode 100644 index 000000000..ffe5b17f0 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java @@ -0,0 +1,42 @@ +package com.hbm.items.tool; + +import com.hbm.items.special.ItemBedrockOreBase; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class ItemOreDensityScanner extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + + if(!(entity instanceof EntityPlayerMP) || world.getTotalWorldTime() % 5 != 0) return; + + EntityPlayerMP player = (EntityPlayerMP) entity; + + for(BedrockOreType type : BedrockOreType.values()) { + double level = ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket( + StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name") + ": " + ((int) (level * 100) / 100D) + " (" + translateDensity(level) + EnumChatFormatting.RESET + ")", + 777 + type.ordinal(), 4000), player); + } + } + + public static String translateDensity(double density) { + if(density <= 0.1) return EnumChatFormatting.DARK_RED + "Very poor"; + if(density <= 0.35) return EnumChatFormatting.RED + "Poor"; + if(density <= 0.75) return EnumChatFormatting.GOLD + "Low"; + if(density >= 1.9) return EnumChatFormatting.AQUA + "Excellent"; + if(density >= 1.65) return EnumChatFormatting.BLUE + "Very high"; + if(density >= 1.25) return EnumChatFormatting.GREEN + "High"; + return EnumChatFormatting.YELLOW + "Moderate"; + } +} diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 35e25e94b..f3a2293ad 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -51,6 +51,8 @@ import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.ItemModRevive; import com.hbm.items.armor.ItemModShackles; import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.special.ItemBedrockOreBase; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.HbmCollection; @@ -121,6 +123,7 @@ import net.minecraft.util.EntityDamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; @@ -1088,6 +1091,13 @@ public class ModEventHandler { } } + // OREDBG + /*if(!event.player.worldObj.isRemote) { + for(BedrockOreType type : BedrockOreType.values()) { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name") + ": " + ((int) (ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type) * 100) / 100D), 777 + type.ordinal()), (EntityPlayerMP) player); + } + }*/ + // PRISMDBG /*if(!event.player.worldObj.isRemote) { ChunkRadiationHandlerPRISM prism = (ChunkRadiationHandlerPRISM) ChunkRadiationManager.proxy; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index b1768c1ee..2f9414039 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -22,6 +22,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemDrillbit; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.items.special.ItemBedrockOreBase; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; @@ -326,6 +327,10 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements ItemStack stack = ore.resource.copy(); List stacks = new ArrayList(); stacks.add(stack); + + if(stack.getItem() == ModItems.bedrock_ore_base) { + ItemBedrockOreBase.setOreAmount(stack, pos.getX(), pos.getZ()); + } ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore.png index e62d194c0add58a16bc781470bf8876dda628bdd..1de4e8d853107499c18b18c40657e6917b0a7c53 100644 GIT binary patch delta 3104 zcmV+*4BzvZ7qu9WG=J<#L_t(|ob6q|Z`;Tc{*-4JR~W7iW(25G5kNiF3&QJ|A{7la zY6GOCr2bwVN#y}XIyZt!?cV=hF{bpwAO8NmQ?os(071-cSDrD0C{u0?od2j=i#($eM-FNvT-8J9$(^{YY0B`1R6YmoH1p2dGK;O{eB-|7-BM+Ac`VPr_-D~$$FlL;c&>u zmis*bypomg_xobzX}|z5o6Qi0A^QD3Mxzlroeti;dw(a~?DOZ(sq4Bzj%2y=uInO6 z62x(gySuy0K!PAhN25_@=5)%-vK%VqX~I-El9dm`5CAeBzzs1R4$*40aB*>wYb*>y zxUMTcb2(c3j^l_WA!9fkqTlc56!$z&D6a#}K6xs4e*mb}YVdtOmA&A|_x-fn?PjdT zmw@9q;D0x?R;z`{WP%?*e&G1{IAf$FNidtu0Q_1q1X}k+AOm}zms8v{^IV?1fW|;$ zy6-<@gd@6eeSMAh@8839U8NyN`HPDSp}cHOe#Z~PFylphHdIT1zOPoRm`o;cT^GGx zPh7jZyFpj^+?MjXeO&*vFWYcv|-KYwn7qt$AKIF508dWywjfs2caoFT{< zeCFi=$jXxY%d<|(UteEmvTHehDQU|^()KM=hbQ@bfW$N zWPfzXG^jJg>FKE$NYNnpqlny|IxbRPr37H7xJ^5%_9}Rjrubel8bYUh`T=R>pA@pZ zEp|a($pvVp$PhL&zptodsG+4LGZgwC=4E>*f0W_V-)+RRo$kB*ZyyhMRs5?1NorzJnbBy3FbokzQI35*C5TcJE9F~x zx-RRXGyo}2)HX>HD`ofqk|e=kFaRX>RYn>9|7E=?3_}q;0@gtoB2pX~15l@=JSpNh zj+RfGkR%DZ-7a8h1g>j)G+JQIQ5;-(nk~*G z<=DY$wbB|Pj^m8tWIWwiL<7W}h)%Zs+7*kuWu&Ql1oYT^GycQb{XW z{6GvmNs>&GwcG7#H%KH;e1yv`77Mtpn@hOLFewkL$(cL`u@4xHMxqgw;-2Sal9lq{ z+wHa(C|8=hvgdh%lB(JvIe)px0$68#xr7LOfR~q-Xf~VL-^!3ZfZF4X7RVB-%vP8N4}YwU!4)?tKOT=O zvU`y?0Kb&i)ddi4Z*RrtIF2!$PAl}CZEOKpdjPL7;`CT%qsDyzr?bb$$5uH)UKB;( z(HvbH^iw)5k1qB5ee`<0!qS$jNGO z`%qJGhzD$&k8fN42q%g^giN!= zH$Z&$DN{@Z(p367pUf{RR18h>`vf|WHuh+w9G(xY}!(=kyN@&jt z(6wUkDGsa5w;trw`Gv9ttil;9phk*DEsh?|=mD?-K%etCJBxps4N17KbHE8nnl>yW#v zsy;xMnpPcBqVGuwK%d!F8Hzw21?X?c)K?tGh@uGHZhu$IJ{drjVa`>EaF>w}I1r~+ z6(`6p97Rz|OQLA@?v+Zb)oLbS!tW79dkw|YC~Y>Infe6dQ-B8)NNKq^B8nodE2>h-#DqgF^`bsfkGsa)9P?zC3rN2sofM77tjfxI;G26&`+ z0AKGwc7GQ6-XJ%i|6e_MJV0l>N3Rc1xiH@w0Bg6uy}d;gMY#HN`k38oF`Z5;I?s93 z^8&%!p3=?ao8~T^7pNTGAF${7{U@yt*cI5;DVTnzyQYl?Saqu50h|KU7FT9jMUW3r7eP1BIF9wpfWfqt z)?L#YfZ_mre{XYUfT%QYqs*BB8YmH%IF4a*VFJ%A%l(+HO=)R@(0D0}%fEXn&xu;|6fc`BG1k+5L+?%k`V^F6E?cq5k zwn>w7F3yc-V@Tahn_QSHSo$%jGr&W^^Yp9L3IMbP3NmbFTE?S31_}I)44Z%kPb|Ww?t0~BUh0bo9#mp;7w(8JHq1!Fvb*XpB0RmVf(3D1rH$X}=qEdapT z*%^NR{Q1|{uV4RXYLLsHoSXmvPEJm6c6Nr>uV4T5<;xeN{Bt9756~$O%%V2J|Mk7p;oJD-}gx% zMT%yVw`VJ}4djxTz&dm#8-gnVlz)G@p{>kwLs=id4M9*Tz6FW+Noe zexuRAd_I41$^(XY00l)%spVbZ^G_BJ@O@uB3G=EP?L_t(|ob6mOZ`(=|{`Af;USYU8m=T~#MF90wF9_E$MJgI< z)CNdNO8vV!lF9>&bZ&&GauIb8f*K=*SzHqcN#TkBK_I_C2*4}k*$kJv%cbl@)`cGs zSP?b5JF~OoelxRdWN(q-0geBl0UNx`giQ9YA0o#n4{m_Ucz>B?$1Z=OyXO0T)@ro? z0JGW5&ax8j?(VWQP2o5W0Kj!!L{Wrpw`<*A5CjDU_Z^Q4%7%R3&$`_%dc7Xj>ot-j zsnjtk4gj0Y1_03Mbl^A+T-U{Nxx}kiuZ(Sx;>~7L$Wwbsl9Y~x8_x9G!Ue88pFLYc zkn*H>k|a4LJb%x_a=FB2v%z>gR<;uaLDp2!+0V1U=JUw;cX`}px==DMzsBU!Gz>$*tO z6iJfc{{B8UkRS-M>2#W#Ii2#dEQd;YnlKekWaXnM0)U(ca6?Qc6ZCpLTwPri8jGR` zuIq}=T#nYh<2YhT$e2tf7>z~+#XZjx%IiS0PoB!%9{^gd7JT2&WG^`JeLouxhdHb9 zCEz#?_TP>S7``R{_5&VC@))+-|?d;%6So=4b>8$@0-mg=JPpR*F_kH z;@bWFJ=*Oy;y4BX<$9(zk|e=uwaR%~r_&MtxPK8&w%aX|B*FRlIo9hnuCA^Mh9G0` znU@D3D@*P#&pIi8b90lEpUq|s-}l8$kd`7T4?ub2ljXbJZo$CKW)rK`O0>m2w*f%h z%-Zd?5cu-t3*NtfF9u?oc>=$S(;kA9rp{%>WzYs}Fc^p%9t~L6uPjfWx7)4IiTVeS z(|;k?pw1BI=jUP|WrN_4B654`xJ-GK5`dlJHtnd|Yv5&;;cLTa2%YlTTV##DGsyC` zcnAz%B?wM2aJ40P2*KCq*2` z(eh~%(lo_zI0P(>z?B{h27*h-*G$IXF$w-1ppFR$0|Y^k_4|Fn>q&WHb3`qx7=M9e zZHyp$9f87UoZ6bkz>UT~>u^Gy_xpV@U@`&^MiQxMx7!GUAk$G(Za7mYii0apv&EUD z96Q)d#@o5sGzofj06_R1bzm|E{gd%+p*4VRKvnPLIxcS8 z-c!W{%E8%SMPzT09lQK*&jogmL9*f=eEQhs>v+JS`S_vbwPXm`e?R`%oc?3vE3-jW zSqU}L@Am=Z(qnmM__fjCZpY;)F+vFwC7F`ssSTBUp>Iw9B+I!B%TQ;synm7m@c|GV z$H8DQ5Qfmr$ODBgWSDLFfZR8IroMHov`qQUW`lmeUy%QUgsB0Q@}!XKy4Y+sN?OU{ z2V&r9n&y(M!{Jc7K_YqLBV2a9Uc+_WLc&#sNqJyL&g3zOeZX`&6^*DA_dG9`tds}e z@At((xzgN~JY#Lb= zu*<;m96zO{9mf#{lz9b*TolpibdaX0D6+V|zBX=&$=GsYmXkVp{JDF8T%f=er-pP2 z(11Igj;IAtwFN-Aga~|q*VotRcDvf&%8)&P+T)BC$P=sFR+t74?0<~G6*nnAo6Q=s zdyzK)Ka|(i1rYA;?!@OLNw8Qf8uXoQYysGL0IxCP^jK!2#(e;%v!|!0Ryjgm6h+|C z99xSU~YUpbO*_%75fEjaCAWE{#Sbgke}(+VYgJsS6+|>jP|2mY**Rs65;HfTzMS z)D+b5fJ5`~L(8846%HB@$kGp%5C04vF3gN#M7CzLy!>PPe~kR2?*ZYT0jAR_mdmA) zsR6KJlfN3ucz`v&HX1;X@d|PdnO+ki@;vXsSjBjN4nMp{AAb+f$rR+6yj4WVG+TTF z#Alx}#Z(|orLU{i%6db@$57RKW8E{=%fSnG-^7v@TE z=w_1)uIfX#*WlnXWQ2CRZQQ7p(pX&wvO+2sHn}^kRrwLBt0GbDHEbX+jiLdbC?3Gq zJCL76zJE6;4CucfetJAWXS^q`4^X)<-x~lsx4*l)LmbEW@Xy6lcCW=^v1sT#=Sj~C z1g}D+o5?rL=X746QNKUn$n*O@wLajvz_w1o^gG=(Z9KrLQw<-tF09bh2gpC;Y46L+ zOQpP=9_PQ)Uem<`NB}@7pH|888Ua949AW5}4}X*h5ddR$n)V^`?@ZSK4IAXj(_d9_ zfl5{`cs6ly8zm^e$WMW*>i+rfWG-R4ro9Jn3QSvEnPrthK0sXt-9VEh(JuoA(^gt{ zO=|#(1MvO5&6xqB(!7l-X9j4XL|~F6fysplJhLqKW4cx_05LOFr#8_T$8idE`c#^N z5`QD8X1djC8C{r-S&6dymevF0wPyojl)U7gj;#aww>S_?Gi`Ej!d{O-og%b{=akqc zP0qPEH=d0lbu(>pVXk21$Dqytj|I=uZ?{_j&=x4ju$gHYPx=@n@HaB-0~$QBKvOV< zU^CM??Ee@v!~^(D?)&}#lOkMxpH!KU$A4~Ct3C#;>I04;#}DlP7_8qPaOnK}q2+)3 zcz`h`NJZ3pcW?wK&9DN%YPG6-c=@r1pMMpM@c>?{j|x>CkBKMzYWzd~LUm{X04^>r z@csMuzdnEd{BKi(T>k9r3;=L;c7}_K3%q#o;;&DiJ{jeIHFEa=o$^5O9DxZsd4HZC zcrFkIFey(MkH>o}ARmi=F35R+NqN_Gv0kr@Cq97P&F8*juYSgGv rqehJyHI5ud&gbiRz$5Y7#{>Qc1gb7ug}sjZ00000NkvXXu0mjfR!x+M diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png new file mode 100644 index 0000000000000000000000000000000000000000..269bb70396fd2f22f756b760c585cc2f6a50493e GIT binary patch literal 552 zcmV+@0@wYCP)Rq^7X z2d`fI7=orEr67t}X%hafE+b%!~1u*fei$c@rEv!;onN;1<4oRt;gx}@X#^uv&}X;P_FFwLuSOb|~_ zaq~u&m?H3-KIj@d)m#?>84=vOZOhW?eWD*dF2z(b=?u;t2cfB) z20bM3YG;>?2W6fbu*L9U|o<}mFvA_QbzkP<8Ho3KE(`b0SuYIL`d~*In8ekZP%x1G#mc_d_uMq-5 qDd~2*6Xz#l7=|hPxuLx(7jchAohj;0000FVwpq3|c?=uw?!XC!WTU03gZPR~OiD$pt z0vqGoW-1#WUq0`;EC)l>>yWO~n@Zw2XIN&fRctx2wLXxgVfBjL&CVQCSs0u+He3sv zw14+WCk~CJMl-T5n;eu7mUhh2V0<2nv@#X4SmX%vZQYV58uYHlc!ZrkhH_noRbJ#7fUCz7Ul>?|B#l!|iQ}k<)mVz0_2- z;c<>rj%PD=S6a28P-gRnIdAqJFO;!3zd1XuvE#wsTIH2nI-a)wjJ!8{b4A0)>z_D*zGm=r^>bP0l+XkK Dh!J`C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ore_density_scanner.png b/src/main/resources/assets/hbm/textures/items/ore_density_scanner.png new file mode 100644 index 0000000000000000000000000000000000000000..c67517b88bd029d18343adb337b902975f6d2d8b GIT binary patch literal 345 zcmV-f0jB%9gB(yCs5e138F{j=M@!N3BXot|)g+}#VP|G}1lpZ?R}IkpY7)|-0J@5yrc!l2)4 rHmHZzn%B2?#|$f_08mO