diff --git a/build.gradle b/build.gradle index 385bab4673..d195aa671b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,9 @@ buildscript { repositories { maven { url = "https://maven.minecraftforge.net/" } - maven { url = "https://files.minecraftforge.net/maven" } + maven { url = "https://files.minecraftforge.net/maven" } mavenCentral() - maven { + maven { // location of the maven that hosts JEI files name = "Progwml6 maven" url = "https://dvs1.progwml6.com/files/maven/" @@ -24,7 +24,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.9.8' +version = '2.0.0' group = 'com.hbm' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'NTM-Extended-1.12.2' @@ -86,6 +86,18 @@ repositories { name = "jared maven" url = "http://maven.blamejared.com/" } + maven { //GC + name = "galacticraft" + url = "https://maven.galacticraft.net/repository/legacy/" + } + maven { // baubles + name = "mcmoddev" + url = "https://maven.mcmoddev.com" + } + maven { + name = 'CoFH Maven' + url = 'https://maven.covers1624.net' + } } dependencies { @@ -115,10 +127,16 @@ dependencies { // at runtime, use the full JEI jar runtimeOnly fg.deobf("mezz.jei:jei_1.12.2:${version_jei}") - //compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") + //compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") //runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") compileOnly "CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-${version_crafttweaker}" + + compileOnly fg.deobf("dev.galacticraft:galacticraft-legacy:${version_gc}") + + compileOnly fg.deobf("com.azanor:Baubles:${version_baubles}") + + compileOnly fg.deobf("cofh:RedstoneFlux:1.12-${version_redstoneflux}:universal") } // Example for how to get properties into the manifest for reading by the runtime.. @@ -153,4 +171,4 @@ publishing { url "file:///${project.projectDir}/mcmodsrepo" } } -} +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 2a394ac3f2..d038625f56 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,9 @@ org.gradle.daemon=true org.gradle.configureondemand=true org.gradle.parallel=true version_mc=1.12.2 -version=1.9.8 +version=2.0.0 version_jei=4.16.1.302 +version_redstoneflux=2.1.0.6 version_crafttweaker=4.1.14.521 +version_gc=4.0.2.283 +version_baubles=1.12-1.5.2 \ No newline at end of file diff --git a/src/main/java/api/hbm/block/IToolable.java b/src/main/java/api/hbm/block/IToolable.java index b77e269bfa..1efb7efe47 100644 --- a/src/main/java/api/hbm/block/IToolable.java +++ b/src/main/java/api/hbm/block/IToolable.java @@ -3,7 +3,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public interface IToolable { diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 62c3d582bf..7be23d63bd 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -120,6 +120,10 @@ public enum ConnectionPriority { HIGH } + public default boolean isStorage() { //used for batteries + return false; + } + public default void updateStandardConnections(World world, TileEntity te) { updateStandardConnections(world, te.getPos()); } diff --git a/src/main/java/api/hbm/energy/IPowerNet.java b/src/main/java/api/hbm/energy/IPowerNet.java index 4b82df2e95..5aff04a704 100644 --- a/src/main/java/api/hbm/energy/IPowerNet.java +++ b/src/main/java/api/hbm/energy/IPowerNet.java @@ -32,4 +32,5 @@ public interface IPowerNet { public List getSubscribers(); public long transferPower(long power); + public long getTotalTransfer(); } diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index f9025201ba..6226d589dc 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -21,6 +21,9 @@ public class PowerNet implements IPowerNet { private HashMap proxies = new HashMap(); private List subscribers = new ArrayList(); + public static List trackingInstances = null; + protected long totalTransfer = 0; + @Override public void joinNetworks(IPowerNet network) { @@ -119,18 +122,27 @@ public void destroy() { public boolean isValid() { return this.valid; } + + @Override + public long getTotalTransfer() { + return this.totalTransfer; + } public long lastCleanup = System.currentTimeMillis(); @Override public long transferPower(long power) { - /*if(lastCleanup + 45 < System.currentTimeMillis()) { - cleanup(this.subscribers); - lastCleanup = System.currentTimeMillis(); - }*/ - - return fairTransfer(this.subscribers, power); + List cache = new ArrayList(); + if(trackingInstances != null && !trackingInstances.isEmpty()) { + cache.addAll(trackingInstances); + } + + trackingInstances = new ArrayList(); + trackingInstances.add(this); + long result = fairTransfer(this.subscribers, power); + trackingInstances.addAll(cache); + return result; } public static void cleanup(List subscribers) { @@ -139,9 +151,86 @@ public static void cleanup(List subscribers) { x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() ); } - + + public static boolean shouldSend(ConnectionPriority senderPrio, ConnectionPriority p, IEnergyConnector x){ + return (x.getPriority() == p) && (!x.isStorage() || (senderPrio.compareTo(p) <= 0)); + } + + public static long fairTransferWithPrio(ConnectionPriority senderPrio, List subscribers, long power) { + + if(power <= 0) return 0; + + if(subscribers.isEmpty()) + return power; + + cleanup(subscribers); + + ConnectionPriority[] priorities = new ConnectionPriority[] {ConnectionPriority.HIGH, ConnectionPriority.NORMAL, ConnectionPriority.LOW}; + + long totalTransfer = 0; + + for(ConnectionPriority p : priorities) { + + List subList = new ArrayList(); + subscribers.forEach(x -> { + if(shouldSend(senderPrio, p, x)) { + subList.add(x); + } + }); + + if(subList.isEmpty()) + continue; + + List weight = new ArrayList(); + long totalReq = 0; + + for(IEnergyConnector con : subList) { + long req = con.getTransferWeight(); + weight.add(req); + totalReq += req; + } + + if(totalReq == 0) + continue; + + long totalGiven = 0; + + for(int i = 0; i < subList.size(); i++) { + IEnergyConnector con = subList.get(i); + long req = weight.get(i); + double fraction = (double)req / (double)totalReq; + + long given = (long) Math.floor(fraction * power); + + totalGiven += (given - con.transferPower(given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorld().markChunkDirty(tile.getPos(), tile); + } + } + + power -= totalGiven; + totalTransfer += totalGiven; + } + + if(trackingInstances != null) { + + for(int i = 0; i < trackingInstances.size(); i++) { + PowerNet net = trackingInstances.get(i); + net.totalTransfer += totalTransfer; + } + + trackingInstances.clear(); + } + + return power; + } + public static long fairTransfer(List subscribers, long power) { + if(power <= 0) return 0; + if(subscribers.isEmpty()) return power; @@ -149,6 +238,8 @@ public static long fairTransfer(List subscribers, long power) ConnectionPriority[] priorities = new ConnectionPriority[] {ConnectionPriority.HIGH, ConnectionPriority.NORMAL, ConnectionPriority.LOW}; + long totalTransfer = 0; + for(ConnectionPriority p : priorities) { List subList = new ArrayList(); @@ -183,9 +274,25 @@ public static long fairTransfer(List subscribers, long power) long given = (long) Math.floor(fraction * power); totalGiven += (given - con.transferPower(given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorld().markChunkDirty(tile.getPos(), tile); + } } power -= totalGiven; + totalTransfer += totalGiven; + } + + if(trackingInstances != null) { + + for(int i = 0; i < trackingInstances.size(); i++) { + PowerNet net = trackingInstances.get(i); + net.totalTransfer += totalTransfer; + } + + trackingInstances.clear(); } return power; diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyConnection.java b/src/main/java/cofh/redstoneflux/api/IEnergyConnection.java deleted file mode 100644 index a840e90926..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyConnection.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import net.minecraft.util.EnumFacing; - -/** - * Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not - * accept it; otherwise just use IEnergyHandler. - * - * Note that {@link IEnergyHandler} is an extension of this. - * - * @author King Lemming - */ -public interface IEnergyConnection { - - /** - * Returns TRUE if the TileEntity can connect on a given side. - */ - boolean canConnectEnergy(EnumFacing from); - -} diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyContainerItem.java b/src/main/java/cofh/redstoneflux/api/IEnergyContainerItem.java deleted file mode 100644 index 0d859b34d2..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyContainerItem.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import cofh.redstoneflux.impl.ItemEnergyContainer; -import net.minecraft.item.ItemStack; - -/** - * Implement this interface on Item classes that support external manipulation of their internal energy storages. - * - * A reference implementation is provided {@link ItemEnergyContainer}. - * - * @author King Lemming - */ -public interface IEnergyContainerItem { - - /** - * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. - * - * @param container ItemStack to be charged. - * @param maxReceive Maximum amount of energy to be sent into the item. - * @param simulate If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received by the item. - */ - int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); - - /** - * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally - * discharged. - * - * @param container ItemStack to be discharged. - * @param maxExtract Maximum amount of energy to be extracted from the item. - * @param simulate If TRUE, the discharge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the item. - */ - int extractEnergy(ItemStack container, int maxExtract, boolean simulate); - - /** - * Get the amount of energy currently stored in the container item. - */ - int getEnergyStored(ItemStack container); - - /** - * Get the max amount of energy that can be stored in the container item. - */ - int getMaxEnergyStored(ItemStack container); - -} diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyHandler.java b/src/main/java/cofh/redstoneflux/api/IEnergyHandler.java deleted file mode 100644 index 53c5c14526..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import cofh.redstoneflux.impl.TileEnergyHandler; -import net.minecraft.util.EnumFacing; - -/** - * Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - * - * A reference implementation is provided {@link TileEnergyHandler}. - * - * Note that {@link IEnergyReceiver} and {@link IEnergyProvider} are extensions of this. - * - * @author King Lemming - */ -public interface IEnergyHandler extends IEnergyConnection { - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(EnumFacing from); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(EnumFacing from); - -} diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyProvider.java b/src/main/java/cofh/redstoneflux/api/IEnergyProvider.java deleted file mode 100644 index b06a805509..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyProvider.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import cofh.redstoneflux.impl.TileEnergyHandler; -import net.minecraft.util.EnumFacing; - -/** - * Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - * - * A reference implementation is provided {@link TileEnergyHandler}. - * - * @author King Lemming - */ -public interface IEnergyProvider extends IEnergyHandler { - - /** - * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. - * - * @param from Orientation the energy is extracted from. - * @param maxExtract Maximum amount of energy to extract. - * @param simulate If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted. - */ - int extractEnergy(EnumFacing from, int maxExtract, boolean simulate); - -} diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyReceiver.java b/src/main/java/cofh/redstoneflux/api/IEnergyReceiver.java deleted file mode 100644 index 852886f3b5..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyReceiver.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import cofh.redstoneflux.impl.TileEnergyHandler; -import net.minecraft.util.EnumFacing; - -/** - * Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - * - * A reference implementation is provided {@link TileEnergyHandler}. - * - * @author King Lemming - */ -public interface IEnergyReceiver extends IEnergyHandler { - - /** - * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. - * - * @param from Orientation the energy is received from. - * @param maxReceive Maximum amount of energy to receive. - * @param simulate If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received. - */ - int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate); - -} diff --git a/src/main/java/cofh/redstoneflux/api/IEnergyStorage.java b/src/main/java/cofh/redstoneflux/api/IEnergyStorage.java deleted file mode 100644 index 70b5d58179..0000000000 --- a/src/main/java/cofh/redstoneflux/api/IEnergyStorage.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.api; - -import cofh.redstoneflux.impl.EnergyStorage; - -/** - * An energy storage is the unit of interaction with Energy inventories.
- * This is not to be implemented on TileEntities. This is for internal use only. - * - * A reference implementation can be found at {@link EnergyStorage}. - * - * @author King Lemming - */ -public interface IEnergyStorage { - - /** - * Adds energy to the storage. Returns quantity of energy that was accepted. - * - * @param maxReceive Maximum amount of energy to be inserted. - * @param simulate If TRUE, the insertion will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) accepted by the storage. - */ - int receiveEnergy(int maxReceive, boolean simulate); - - /** - * Removes energy from the storage. Returns quantity of energy that was removed. - * - * @param maxExtract Maximum amount of energy to be extracted. - * @param simulate If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the storage. - */ - int extractEnergy(int maxExtract, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(); - -} diff --git a/src/main/java/cofh/redstoneflux/impl/EnergyStorage.java b/src/main/java/cofh/redstoneflux/impl/EnergyStorage.java deleted file mode 100644 index 81caf091b5..0000000000 --- a/src/main/java/cofh/redstoneflux/impl/EnergyStorage.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.impl; - -import cofh.redstoneflux.api.IEnergyStorage; -import net.minecraft.nbt.NBTTagCompound; - -/** - * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own. - * - * @author King Lemming - */ -public class EnergyStorage implements IEnergyStorage { - - protected int energy; - protected int capacity; - protected int maxReceive; - protected int maxExtract; - - public EnergyStorage(int capacity) { - - this(capacity, capacity, capacity); - } - - public EnergyStorage(int capacity, int maxTransfer) { - - this(capacity, maxTransfer, maxTransfer); - } - - public EnergyStorage(int capacity, int maxReceive, int maxExtract) { - - this.capacity = capacity; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } - - public EnergyStorage readFromNBT(NBTTagCompound nbt) { - - this.energy = nbt.getInteger("Energy"); - - if (energy > capacity) { - energy = capacity; - } - return this; - } - - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - - if (energy < 0) { - energy = 0; - } - nbt.setInteger("Energy", energy); - return nbt; - } - - public EnergyStorage setCapacity(int capacity) { - - this.capacity = capacity; - - if (energy > capacity) { - energy = capacity; - } - return this; - } - - public EnergyStorage setMaxTransfer(int maxTransfer) { - - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - return this; - } - - public EnergyStorage setMaxReceive(int maxReceive) { - - this.maxReceive = maxReceive; - return this; - } - - public EnergyStorage setMaxExtract(int maxExtract) { - - this.maxExtract = maxExtract; - return this; - } - - public int getMaxReceive() { - - return maxReceive; - } - - public int getMaxExtract() { - - return maxExtract; - } - - /** - * This function is included to allow for server to client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers are guaranteed to have it. - */ - public void setEnergyStored(int energy) { - - this.energy = energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /** - * This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this externally, as not all IEnergyHandlers are guaranteed to have it. - */ - public void modifyEnergyStored(int energy) { - - this.energy += energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /* IEnergyStorage */ - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - - int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); - - if (!simulate) { - energy += energyReceived; - } - return energyReceived; - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - - int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - - if (!simulate) { - energy -= energyExtracted; - } - return energyExtracted; - } - - @Override - public int getEnergyStored() { - - return energy; - } - - @Override - public int getMaxEnergyStored() { - - return capacity; - } - -} diff --git a/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainer.java b/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainer.java deleted file mode 100644 index f121994e21..0000000000 --- a/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainer.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.impl; - -import cofh.redstoneflux.api.IEnergyContainerItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -/** - * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own. - * - * @author King Lemming - */ -public class ItemEnergyContainer extends Item implements IEnergyContainerItem { - - public static final String ENERGY = "Energy"; - - protected int capacity; - protected int maxReceive; - protected int maxExtract; - - public ItemEnergyContainer() { - - } - - public ItemEnergyContainer(int capacity) { - - this(capacity, capacity, capacity); - } - - public ItemEnergyContainer(int capacity, int maxTransfer) { - - this(capacity, maxTransfer, maxTransfer); - } - - public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) { - - this.capacity = capacity; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } - - public ItemEnergyContainer setCapacity(int capacity) { - - this.capacity = capacity; - return this; - } - - public ItemEnergyContainer setMaxTransfer(int maxTransfer) { - - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - return this; - } - - public ItemEnergyContainer setMaxReceive(int maxReceive) { - - this.maxReceive = maxReceive; - return this; - } - - public ItemEnergyContainer setMaxExtract(int maxExtract) { - - this.maxExtract = maxExtract; - return this; - } - - /* IEnergyContainerItem */ - @Override - public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) { - - if (!container.hasTagCompound()) { - container.setTagCompound(new NBTTagCompound()); - } - int stored = Math.min(container.getTagCompound().getInteger(ENERGY), getMaxEnergyStored(container)); - int energyReceived = Math.min(capacity - stored, Math.min(this.maxReceive, maxReceive)); - - if (!simulate) { - stored += energyReceived; - container.getTagCompound().setInteger(ENERGY, stored); - } - return energyReceived; - } - - @Override - public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) { - - if (container.getTagCompound() == null || !container.getTagCompound().hasKey(ENERGY)) { - return 0; - } - int stored = Math.min(container.getTagCompound().getInteger(ENERGY), getMaxEnergyStored(container)); - int energyExtracted = Math.min(stored, Math.min(this.maxExtract, maxExtract)); - - if (!simulate) { - stored -= energyExtracted; - container.getTagCompound().setInteger(ENERGY, stored); - } - return energyExtracted; - } - - @Override - public int getEnergyStored(ItemStack container) { - - if (container.getTagCompound() == null || !container.getTagCompound().hasKey(ENERGY)) { - return 0; - } - return Math.min(container.getTagCompound().getInteger(ENERGY), getMaxEnergyStored(container)); - } - - @Override - public int getMaxEnergyStored(ItemStack container) { - - return capacity; - } - -} diff --git a/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainerCap.java b/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainerCap.java deleted file mode 100644 index ccfef5120b..0000000000 --- a/src/main/java/cofh/redstoneflux/impl/ItemEnergyContainerCap.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.impl; - -import cofh.redstoneflux.util.EnergyContainerItemWrapper; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.capabilities.ICapabilityProvider; - -/** - * This class is a simple extension of {@link ItemEnergyContainer}. It exposes the Forge Energy Capability via the {@link EnergyContainerItemWrapper} class. - * - * Use/extend this or implement your own. This particular implementation allows for an item to both send and receive energy. - * - * @author King Lemming - */ -public class ItemEnergyContainerCap extends ItemEnergyContainer { - - /* CAPABILITIES */ - @Override - public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) { - - return new EnergyContainerItemWrapper(stack, this); - } - -} diff --git a/src/main/java/cofh/redstoneflux/impl/TileEnergyHandler.java b/src/main/java/cofh/redstoneflux/impl/TileEnergyHandler.java deleted file mode 100644 index 31239ef37a..0000000000 --- a/src/main/java/cofh/redstoneflux/impl/TileEnergyHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.impl; - -import cofh.redstoneflux.api.IEnergyProvider; -import cofh.redstoneflux.api.IEnergyReceiver; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -/** - * Reference implementation of {@link IEnergyReceiver} and {@link IEnergyProvider}. Use/extend this or implement your own. - * - * This class is really meant to summarize how each interface is properly used. - * - * @author King Lemming - */ -public class TileEnergyHandler extends TileEntity implements IEnergyReceiver, IEnergyProvider { - - protected EnergyStorage storage = new EnergyStorage(32000); - - @Override - public void readFromNBT(NBTTagCompound nbt) { - - super.readFromNBT(nbt); - storage.readFromNBT(nbt); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - - super.writeToNBT(nbt); - storage.writeToNBT(nbt); - return nbt; - } - - /* IEnergyConnection */ - @Override - public boolean canConnectEnergy(EnumFacing from) { - - return true; - } - - /* IEnergyReceiver */ - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) { - - return storage.receiveEnergy(maxReceive, simulate); - } - - /* IEnergyProvider */ - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) { - - return storage.extractEnergy(maxExtract, simulate); - } - - /* IEnergyHandler */ - @Override - public int getEnergyStored(EnumFacing from) { - - return storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from) { - - return storage.getMaxEnergyStored(); - } - -} diff --git a/src/main/java/cofh/redstoneflux/util/EnergyContainerItemWrapper.java b/src/main/java/cofh/redstoneflux/util/EnergyContainerItemWrapper.java deleted file mode 100644 index ac9c039bfc..0000000000 --- a/src/main/java/cofh/redstoneflux/util/EnergyContainerItemWrapper.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * (C) 2014-2018 Team CoFH / CoFH / Cult of the Full Hub - * http://www.teamcofh.com - */ -package cofh.redstoneflux.util; - -import cofh.redstoneflux.api.IEnergyContainerItem; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.energy.CapabilityEnergy; - -/** - * This class provides a simple way to wrap an IEnergyContainerItem to allow for capability support. It will seamlessly allow for Forge Energy to be supported in addition to RF. - * - * @author King Lemming - */ -public class EnergyContainerItemWrapper implements ICapabilityProvider { - - final ItemStack stack; - final IEnergyContainerItem container; - - final boolean canExtract; - final boolean canReceive; - - final net.minecraftforge.energy.IEnergyStorage energyCap; - - public EnergyContainerItemWrapper(ItemStack stackIn, IEnergyContainerItem containerIn, boolean extractIn, boolean receiveIn) { - - this.stack = stackIn; - this.container = containerIn; - - this.canExtract = extractIn; - this.canReceive = receiveIn; - - this.energyCap = new net.minecraftforge.energy.IEnergyStorage() { - - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - - return container.receiveEnergy(stack, maxReceive, simulate); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - - return container.extractEnergy(stack, maxExtract, simulate); - } - - @Override - public int getEnergyStored() { - - return container.getEnergyStored(stack); - } - - @Override - public int getMaxEnergyStored() { - - return container.getMaxEnergyStored(stack); - } - - @Override - public boolean canExtract() { - - return canExtract; - } - - @Override - public boolean canReceive() { - - return canReceive; - } - }; - } - - public EnergyContainerItemWrapper(ItemStack stackIn, IEnergyContainerItem containerIn) { - - this(stackIn, containerIn, true, true); - } - - /* ICapabilityProvider */ - @Override - public boolean hasCapability(Capability capability, EnumFacing from) { - - return capability == CapabilityEnergy.ENERGY; - } - - @Override - public T getCapability(Capability capability, final EnumFacing from) { - - if (!hasCapability(capability, from)) { - return null; - } - return CapabilityEnergy.ENERGY.cast(energyCap); - } - -} diff --git a/src/main/java/com/hbm/blocks/BlockBase.java b/src/main/java/com/hbm/blocks/BlockBase.java index 9fe9180c16..063aca3390 100644 --- a/src/main/java/com/hbm/blocks/BlockBase.java +++ b/src/main/java/com/hbm/blocks/BlockBase.java @@ -3,8 +3,8 @@ import java.util.List; import com.hbm.main.MainRegistry; - import com.hbm.util.I18nUtil; + import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4f5d1212fa..1a3ad468be 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -34,7 +34,6 @@ import com.hbm.blocks.bomb.NukeMan; import com.hbm.blocks.bomb.NukeMike; import com.hbm.blocks.bomb.NukeN2; -import com.hbm.blocks.bomb.NukeN45; import com.hbm.blocks.bomb.NukePrototype; import com.hbm.blocks.bomb.NukeSolinium; import com.hbm.blocks.bomb.NukeTsar; @@ -76,6 +75,7 @@ import com.hbm.blocks.generic.BlockGrate; import com.hbm.blocks.generic.BlockHazard; import com.hbm.blocks.generic.BlockHazardFuel; +import com.hbm.blocks.generic.BlockHazardMeta; import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; import com.hbm.blocks.generic.BlockHazardFalling; import com.hbm.blocks.generic.BlockJungleCrate; @@ -92,7 +92,7 @@ import com.hbm.blocks.generic.BlockNetherCoal; import com.hbm.blocks.generic.BlockNoDrop; import com.hbm.blocks.generic.BlockNuclearWaste; -import com.hbm.blocks.generic.BlockOre; +import com.hbm.blocks.generic.BlockNTMOre; import com.hbm.blocks.generic.BlockOutgas; import com.hbm.blocks.generic.BlockPinkLog; import com.hbm.blocks.generic.BlockGenericSlab; @@ -154,9 +154,16 @@ import com.hbm.blocks.machine.rbmk.RBMKCooler; import com.hbm.blocks.machine.rbmk.RBMKHeater; import com.hbm.blocks.machine.rbmk.RBMKCraneConsole; -import com.hbm.blocks.network.*; import com.hbm.blocks.network.BlockConveyor; import com.hbm.blocks.network.BlockConveyorExpress; +import com.hbm.blocks.network.BlockConveyorDouble; +import com.hbm.blocks.network.CraneExtractor; +import com.hbm.blocks.network.CraneInserter; +import com.hbm.blocks.network.BlockFluidPipeMk2; +import com.hbm.blocks.network.BlockFluidPipeSolid; +import com.hbm.blocks.network.BlockFluidPipeSolidRadResistant; +import com.hbm.blocks.network.RadioTorchSender; +import com.hbm.blocks.network.RadioTorchReceiver; import com.hbm.blocks.network.energy.BlockCable; import com.hbm.blocks.network.energy.CableSwitch; import com.hbm.blocks.network.energy.CableDiode; @@ -169,6 +176,7 @@ import com.hbm.blocks.network.energy.WireCoatedRadResistant; import com.hbm.blocks.network.energy.BlockConverterRfHe; import com.hbm.blocks.network.energy.BlockConverterHeRf; +import com.hbm.blocks.network.energy.BlockCableGauge; import com.hbm.blocks.test.KeypadTest; import com.hbm.blocks.test.TestObjTester; import com.hbm.blocks.test.TestRender; @@ -254,7 +262,7 @@ public SoundEvent getBreakSound() { public static final Block reinforced_brick = new BlockRadResistant(Material.ROCK, "reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F); public static final Block brick_compound = new BlockRadResistant(Material.ROCK, "brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F); public static final Block brick_light = new BlockBase(Material.ROCK, "brick_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F); - public static final Block brick_asbestos = new BlockOutgas(Material.ROCK, true, 20, true, "brick_asbestos").addAsbestos(8).toBlock().setHardness(15.0F).setCreativeTab(MainRegistry.blockTab).setResistance(1000.0F); + public static final Block brick_asbestos = new BlockOutgas(true, 20, true, "brick_asbestos").addAsbestos(8).toBlock().setHardness(15.0F).setCreativeTab(MainRegistry.blockTab).setResistance(1000.0F); public static final Block reinforced_sand = new BlockBase(Material.ROCK, "reinforced_sand").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(400.0F); public static final Block brick_obsidian = new BlockBase(Material.ROCK, "brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F); public static final Block cmb_brick = new BlockBase(Material.ROCK, "cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F); @@ -278,8 +286,9 @@ public SoundEvent getBreakSound() { public static final Block concrete_green = new BlockBase(Material.ROCK, "concrete_green").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); public static final Block concrete_red = new BlockBase(Material.ROCK, "concrete_red").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); public static final Block concrete_black = new BlockBase(Material.ROCK, "concrete_black").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); + public static final Block concrete_hazard = new BlockBase(Material.ROCK, "concrete_hazard").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); - public static final Block concrete_asbestos = new BlockOutgas(Material.ROCK, true, 20, true, "concrete_asbestos").addAsbestos(6).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); + public static final Block concrete_asbestos = new BlockOutgas(true, 20, true, "concrete_asbestos").addAsbestos(6).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); public static final Block concrete_pillar = new BlockRotatablePillar(Material.ROCK, "concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F); public static final Block ducrete_smooth = new BlockRadResistant(Material.ROCK, "ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F); @@ -288,7 +297,7 @@ public SoundEvent getBreakSound() { public static final Block ducrete_reinforced = new BlockRadResistant(Material.ROCK, "ducrete_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(24000.0F); public static final Block tile_lab = new BlockClean(Material.ROCK, "tile_lab").setSoundType(SoundType.GLASS).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F); public static final Block tile_lab_cracked = new BlockClean(Material.ROCK, "tile_lab_cracked").setSoundType(SoundType.GLASS).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F); - public static final Block tile_lab_broken = new BlockOutgas(Material.ROCK, true, 40, true, "tile_lab_broken").addAsbestos(6).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F); + public static final Block tile_lab_broken = new BlockOutgas(true, 40, true, "tile_lab_broken").addAsbestos(6).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F); //stairs public static final Block reinforced_stone_stairs = new BlockGenericStairs(reinforced_stone.getDefaultState(), "reinforced_stone_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2250.0F); @@ -375,24 +384,24 @@ public SoundEvent getBreakSound() { public static final Block block_electrical_scrap = new BlockFallingBase(Material.IRON, "block_electrical_scrap", SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F); //Ores - public static final Block ore_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block ore_uranium_scorched = new BlockOutgas(Material.ROCK, true, 15, true, "ore_uranium_scorched").addRadiation(0.5F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_schrabidium = new BlockOre(Material.ROCK, "ore_schrabidium", 3, 300).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_uranium = new BlockOutgas(true, 20, true, "ore_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_uranium_scorched = new BlockOutgas(true, 15, true, "ore_uranium_scorched").addRadiation(0.5F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_schrabidium = new BlockNTMOre("ore_schrabidium", 3, 300).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block ore_thorium = new BlockOre(Material.ROCK, "ore_thorium", 2).addRadiation(ItemHazard.ore * ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_titanium = new BlockOre(Material.ROCK, "ore_titanium", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_sulfur = new BlockOre(Material.ROCK, "ore_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_niter = new BlockOre(Material.ROCK, "ore_niter", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_copper = new BlockOre(Material.ROCK, "ore_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_tungsten = new BlockOre(Material.ROCK, "ore_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_aluminium = new BlockOre(Material.ROCK, "ore_aluminium", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_fluorite = new BlockOre(Material.ROCK, "ore_fluorite", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_lead = new BlockOre(Material.ROCK, "ore_lead", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_beryllium = new BlockOre(Material.ROCK, "ore_beryllium", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); - public static final Block ore_lignite = new BlockOre(Material.ROCK, "ore_lignite", 0).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); - public static final Block ore_asbestos = new BlockOre(Material.ROCK, "ore_asbestos", 1, 6).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); - public static final Block ore_rare = new BlockOre(Material.ROCK, "ore_rare", 2, 12).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_thorium = new BlockNTMOre("ore_thorium", 2).addRadiation(ItemHazard.ore * ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_titanium = new BlockNTMOre("ore_titanium", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_sulfur = new BlockNTMOre("ore_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_niter = new BlockNTMOre("ore_niter", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_copper = new BlockNTMOre("ore_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_tungsten = new BlockNTMOre("ore_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_aluminium = new BlockNTMOre("ore_aluminium", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_fluorite = new BlockNTMOre("ore_fluorite", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_lead = new BlockNTMOre("ore_lead", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_beryllium = new BlockNTMOre("ore_beryllium", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); + public static final Block ore_lignite = new BlockNTMOre("ore_lignite", 0).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); + public static final Block ore_asbestos = new BlockNTMOre("ore_asbestos", 1, 6).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); + public static final Block ore_rare = new BlockNTMOre("ore_rare", 2, 12).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_coal_oil = new BlockCoalOil(Material.ROCK, "ore_coal_oil").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); public static final Block ore_coal_oil_burning = new BlockCoalBurning(Material.ROCK, "ore_coal_oil_burning").setCreativeTab(MainRegistry.resourceTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F); @@ -401,16 +410,16 @@ public SoundEvent getBreakSound() { public static final Block cluster_aluminium = new BlockCluster(Material.ROCK, "cluster_aluminium").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); public static final Block cluster_copper = new BlockCluster(Material.ROCK, "cluster_copper").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); - public static final Block ore_cobalt = new BlockOre(Material.ROCK, "ore_cobalt", 3, 15).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_cinnebar = new BlockOre(Material.ROCK, "ore_cinnebar", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_coltan = new BlockOre(Material.ROCK, "ore_coltan", 3, 20).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(10.0F); + public static final Block ore_cobalt = new BlockNTMOre("ore_cobalt", 3, 15).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_cinnebar = new BlockNTMOre("ore_cinnebar", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_coltan = new BlockNTMOre("ore_coltan", 3, 20).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(10.0F); - public static final Block ore_reiium = new BlockOre(Material.ROCK, "ore_reiium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_weidanium = new BlockOre(Material.ROCK, "ore_weidanium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_australium = new BlockOre(Material.ROCK, "ore_australium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_verticium = new BlockOre(Material.ROCK, "ore_verticium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_unobtainium = new BlockOre(Material.ROCK, "ore_unobtainium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_daffergon = new BlockOre(Material.ROCK, "ore_daffergon", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_reiium = new BlockNTMOre("ore_reiium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_weidanium = new BlockNTMOre("ore_weidanium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_australium = new BlockNTMOre("ore_australium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_verticium = new BlockNTMOre("ore_verticium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_unobtainium = new BlockNTMOre("ore_unobtainium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_daffergon = new BlockNTMOre("ore_daffergon", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block stone_depth = new BlockDepth("stone_depth").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_cinnebar = new BlockDepthOre("ore_depth_cinnebar").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_zirconium = new BlockDepthOre("ore_depth_zirconium").setCreativeTab(MainRegistry.resourceTab); @@ -423,53 +432,53 @@ public SoundEvent getBreakSound() { public static final Block ore_bedrock_oil = new BlockBase(Material.ROCK, "ore_bedrock_oil").setCreativeTab(MainRegistry.resourceTab).setBlockUnbreakable().setResistance(3_600_000); public static final Block ore_bedrock_block = new BlockBedrockOreTE("ore_bedrock_block").setCreativeTab(MainRegistry.resourceTab).setBlockUnbreakable().setResistance(3_600_000); - public static final Block ore_oil = new BlockOre(Material.ROCK, "ore_oil", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_oil = new BlockNTMOre("ore_oil", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_oil_empty = new BlockBase(Material.ROCK, "ore_oil_empty").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_oil_sand = new BlockFallingBase(Material.SAND, "ore_oil_sand", SoundType.SAND).setCreativeTab(MainRegistry.resourceTab).setHardness(0.5F).setResistance(1.0F); public static final Block stone_gneiss = new BlockBase(Material.ROCK, "stone_gneiss").setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_iron = new BlockOre(Material.ROCK, "ore_gneiss_iron", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_gold = new BlockOre(Material.ROCK, "ore_gneiss_gold", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_gneiss_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_uranium_scorched = new BlockOutgas(Material.ROCK, true, 20, true, "ore_gneiss_uranium_scorched").addRadiation(1.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_copper = new BlockOre(Material.ROCK, "ore_gneiss_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_asbestos = new BlockOre(Material.ROCK, "ore_gneiss_asbestos", 2).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_lithium = new BlockOre(Material.ROCK, "ore_gneiss_lithium", 0).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_schrabidium = new BlockOre(Material.ROCK, "ore_gneiss_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_rare = new BlockOre(Material.ROCK, "ore_gneiss_rare", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_gas = new BlockOre(Material.ROCK, "ore_gneiss_gas", 0).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - - public static final Block ore_tikite = new BlockOre(Material.ROCK, "ore_tikite", 4).addRadiation(6.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - - public static final Block ore_nether_coal = new BlockNetherCoal(Material.ROCK, false, 5, true, "ore_nether_coal").setCreativeTab(MainRegistry.resourceTab).setLightLevel(10F/15F).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_gneiss_iron = new BlockNTMOre("ore_gneiss_iron", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_gold = new BlockNTMOre("ore_gneiss_gold", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_uranium = new BlockOutgas(true, 20, true, "ore_gneiss_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_uranium_scorched = new BlockOutgas(true, 20, true, "ore_gneiss_uranium_scorched").addRadiation(1.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_copper = new BlockNTMOre("ore_gneiss_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_asbestos = new BlockNTMOre("ore_gneiss_asbestos", 2).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_lithium = new BlockNTMOre("ore_gneiss_lithium", 0).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_schrabidium = new BlockNTMOre("ore_gneiss_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_rare = new BlockNTMOre("ore_gneiss_rare", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_gas = new BlockNTMOre("ore_gneiss_gas", 0).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + + public static final Block ore_tikite = new BlockNTMOre("ore_tikite", 4).addRadiation(6.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + + public static final Block ore_nether_coal = new BlockNetherCoal(false, 5, true, "ore_nether_coal").setCreativeTab(MainRegistry.resourceTab).setLightLevel(10F/15F).setHardness(0.4F).setResistance(10.0F); public static final Block ore_nether_smoldering = new BlockSmolder(Material.ROCK, "ore_nether_smoldering").setCreativeTab(MainRegistry.resourceTab).setLightLevel(1F).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_cobalt = new BlockOre(Material.ROCK, "ore_nether_cobalt", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_tungsten = new BlockOre(Material.ROCK, "ore_nether_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_sulfur = new BlockOre(Material.ROCK, "ore_nether_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_fire = new BlockOre(Material.ROCK, "ore_nether_fire", 1).addFire(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_nether_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(0.4F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block ore_nether_uranium_scorched = new BlockOutgas(Material.ROCK, true, 20, true, "ore_nether_uranium_scorched").addRadiation(2.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_plutonium = new BlockOre(Material.ROCK, "ore_nether_plutonium", 3).addRadiation(ItemHazard.pu).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_schrabidium = new BlockOre(Material.ROCK, "ore_nether_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_nether_cobalt = new BlockNTMOre("ore_nether_cobalt", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_tungsten = new BlockNTMOre("ore_nether_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_sulfur = new BlockNTMOre("ore_nether_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_fire = new BlockNTMOre("ore_nether_fire", 1).addFire(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_uranium = new BlockOutgas(true, 20, true, "ore_nether_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(0.4F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_nether_uranium_scorched = new BlockOutgas(true, 20, true, "ore_nether_uranium_scorched").addRadiation(2.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_plutonium = new BlockNTMOre("ore_nether_plutonium", 3).addRadiation(ItemHazard.pu).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_schrabidium = new BlockNTMOre("ore_nether_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block stone_depth_nether = new BlockDepth("stone_depth_nether").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_nether_neodymium = new BlockDepthOre("ore_depth_nether_neodymium").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_nether_nitan = new BlockDepthOre("ore_depth_nether_nitan").setCreativeTab(MainRegistry.resourceTab); - public static final Block block_meteor = new BlockOre(Material.ROCK, "block_meteor", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); - public static final Block block_meteor_cobble = new BlockOre(Material.ROCK, "block_meteor_cobble", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); - public static final Block block_meteor_broken = new BlockOre(Material.ROCK, "block_meteor_broken", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); + public static final Block block_meteor = new BlockNTMOre("block_meteor", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); + public static final Block block_meteor_cobble = new BlockNTMOre("block_meteor_cobble", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); + public static final Block block_meteor_broken = new BlockNTMOre("block_meteor_broken", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); public static final Block block_meteor_molten = new BlockHazard(Material.ROCK, "block_meteor_molten").addFire(3).toBlock().setTickRandomly(true).setLightLevel(0.75F).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); - public static final Block block_meteor_treasure = new BlockOre(Material.ROCK, "block_meteor_treasure", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); - public static final Block ore_meteor_uranium = new BlockOre(Material.ROCK, "ore_meteor_uranium", 2, 30).addRadiation(0.25F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_thorium = new BlockOre(Material.ROCK, "ore_meteor_thorium", 2, 30).addRadiation(ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_titanium = new BlockOre(Material.ROCK, "ore_meteor_titanium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_sulfur = new BlockOre(Material.ROCK, "ore_meteor_sulfur", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_copper = new BlockOre(Material.ROCK, "ore_meteor_copper", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_tungsten = new BlockOre(Material.ROCK, "ore_meteor_tungsten", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_aluminium = new BlockOre(Material.ROCK, "ore_meteor_aluminium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_lead = new BlockOre(Material.ROCK, "ore_meteor_lead", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_lithium = new BlockOre(Material.ROCK, "ore_meteor_lithium", 0, 30).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_starmetal = new BlockOre(Material.ROCK, "ore_meteor_starmetal", 3, 60).setCreativeTab(MainRegistry.resourceTab).setHardness(10.0F).setResistance(100.0F); + public static final Block block_meteor_treasure = new BlockNTMOre("block_meteor_treasure", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); + public static final Block ore_meteor_uranium = new BlockNTMOre("ore_meteor_uranium", 2, 30).addRadiation(0.25F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_thorium = new BlockNTMOre("ore_meteor_thorium", 2, 30).addRadiation(ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_titanium = new BlockNTMOre("ore_meteor_titanium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_sulfur = new BlockNTMOre("ore_meteor_sulfur", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_copper = new BlockNTMOre("ore_meteor_copper", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_tungsten = new BlockNTMOre("ore_meteor_tungsten", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_aluminium = new BlockNTMOre("ore_meteor_aluminium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_lead = new BlockNTMOre("ore_meteor_lead", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_lithium = new BlockNTMOre("ore_meteor_lithium", 0, 30).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_starmetal = new BlockNTMOre("ore_meteor_starmetal", 3, 60).setCreativeTab(MainRegistry.resourceTab).setHardness(10.0F).setResistance(100.0F); public static final Block meteor_polished = new BlockBase(Material.ROCK, "meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); public static final Block meteor_brick = new BlockBase(Material.ROCK, "meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); @@ -557,7 +566,7 @@ public SoundEvent getBreakSound() { public static final Block deco_steel = new BlockBase(Material.IRON, "deco_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block deco_lead = new BlockBase(Material.IRON, "deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block deco_beryllium = new BlockBase(Material.IRON, "deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); - public static final Block deco_asbestos = new BlockOutgas(Material.IRON, true, 40, true, "deco_asbestos").addAsbestos(2).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block deco_asbestos = new BlockOutgas(true, 40, true, "deco_asbestos").addAsbestos(2).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block deco_rbmk = new BlockClean(Material.IRON, "deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block deco_rbmk_smooth = new BlockClean(Material.IRON, "deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); @@ -611,16 +620,21 @@ public SoundEvent getBreakSound() { public static final Block block_waste = new BlockNuclearWaste("block_waste").makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.powder * ItemHazard.block).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_waste_painted = new BlockNuclearWaste("block_waste_painted").makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.powder * ItemHazard.block).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_waste_vitrified = new BlockNuclearWaste("block_waste_vitrified").makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.powder * 0.5F * ItemHazard.block).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block waste_mycelium = new WasteEarth(Material.GRASS, SoundType.GROUND, true, "waste_mycelium").addRadiation(25F).toBlock().setLightLevel(0.25F).setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_earth = new WasteEarth(Material.GRASS, SoundType.GROUND, true, "waste_earth").addRadiation(4F).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_dirt = new WasteEarth(Material.GROUND, SoundType.GROUND, true, "waste_dirt").addRadiation(1F).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_gravel = new WasteSand(Material.GROUND, SoundType.GROUND, "waste_gravel").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block waste_sand = new WasteSand(Material.SAND, SoundType.SAND, "waste_sand").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_sandstone = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "waste_sandstone").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(3.0F).setResistance(6.0F); + public static final Block waste_sand = new WasteSand(Material.SAND, SoundType.SAND, "waste_sand").addRadiation(ItemHazard.trx*ItemHazard.nugget*2).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_trinitite = new WasteSand(Material.SAND, SoundType.SAND, "waste_trinitite").addRadiation(ItemHazard.trx).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); - public static final Block waste_sand_red = new WasteSand(Material.SAND, SoundType.SAND, "waste_sand_red").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_sandstone_red = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "waste_sandstone_red").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(3.0F).setResistance(6.0F); + public static final Block waste_sand_red = new WasteSand(Material.SAND, SoundType.SAND, "waste_sand_red").addRadiation(ItemHazard.trx*ItemHazard.nugget*2).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_trinitite_red = new WasteSand(Material.SAND, SoundType.SAND, "waste_trinitite_red").addRadiation(ItemHazard.trx).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_terracotta = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "waste_terracotta").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(4.0F).setResistance(8.0F); + public static final Block waste_log = new WasteLog(Material.WOOD, SoundType.WOOD, "waste_log").addCoal(2).toBlock().setHardness(5.0F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); - public static final Block waste_planks = new BlockOre(Material.WOOD, SoundType.WOOD, "waste_planks", 0).addCoal(1).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_planks = new BlockNTMOre(SoundType.WOOD, "waste_planks", 0).addCoal(1).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_leaves = new WasteLeaves("waste_leaves").addRadiation(0.15F).toBlock().setHardness(0.3F).setResistance(0.3F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_grass_tall = new WasteGrassTall(Material.PLANTS, "waste_grass_tall").setCreativeTab(MainRegistry.resourceTab); @@ -654,13 +668,13 @@ public SoundEvent getBreakSound() { public static final Block block_tritium = new BlockRotatablePillarHazard(Material.GLASS, SoundType.GLASS, "block_tritium").addRadiation(4.5F).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(2.0F); public static final Block block_smore = new BlockBase(Material.ROCK, "block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - public static final Block sellafield_slaked = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_slaked").addRadiation(2.5F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_0 = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_0").addRadiation(5.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_1 = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_1").addRadiation(10.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_2 = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_2").addRadiation(20.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_3 = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_3").addRadiation(40.0F).addFire(2).toBlock().setHardness(5.0F).setResistance(7F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_4 = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_4").addRadiation(80.0F).addFire(10).toBlock().setHardness(5.0F).setResistance(8F).setCreativeTab(MainRegistry.resourceTab); - public static final Block sellafield_core = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_core").addRadiation(2000.0F).addFire(15).toBlock().setHardness(10.0F).setResistance(9F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_slaked = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_slaked").addRadiation(2.5F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_0 = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_0").addRadiation(5.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_1 = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_1").addRadiation(10.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_2 = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_2").addRadiation(20.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_3 = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_3").addRadiation(40.0F).addFire(2).toBlock().setHardness(5.0F).setResistance(7F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_4 = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_4").addRadiation(80.0F).addFire(10).toBlock().setHardness(5.0F).setResistance(8F).setCreativeTab(MainRegistry.resourceTab); + public static final Block sellafield_core = new BlockHazardMeta(Material.ROCK, SoundType.STONE, "sellafield_core").addRadiation(2000.0F).addFire(15).toBlock().setHardness(10.0F).setResistance(9F).setCreativeTab(MainRegistry.resourceTab); public static final Block baleonitite_slaked = new BlockHazard(Material.ROCK, SoundType.STONE, "baleonitite_slaked").addRadiation(25F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); public static final Block baleonitite_0 = new BlockHazard(Material.ROCK, SoundType.STONE, "baleonitite_0").addRadiation(50.0F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); @@ -680,7 +694,7 @@ public SoundEvent getBreakSound() { public static final Block block_polymer = new BlockBeaconable(Material.ROCK, "block_polymer").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(10.0F); public static final Block block_bakelite = new BlockBeaconable(Material.ROCK, "block_bakelite").setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(10.0F); public static final Block block_rubber = new BlockBeaconable(Material.ROCK, "block_rubber").setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(10.0F); - public static final Block block_asbestos = new BlockOutgas(Material.ROCK, true, 4, true, "block_asbestos").addAsbestos(50).toBlock().setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab); + public static final Block block_asbestos = new BlockOutgas(true, 4, true, "block_asbestos").addAsbestos(50).toBlock().setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab); public static final Block block_cobalt = new BlockBase(Material.IRON, "block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_lithium = new BlockLithium(Material.IRON, "block_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_zirconium = new BlockBeaconable(Material.IRON, "block_zirconium").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); @@ -720,9 +734,9 @@ public SoundEvent getBreakSound() { public static final Block stone_porous = new BlockPorous("stone_porous").setCreativeTab(MainRegistry.resourceTab); public static final Block basalt = new BlockBase(Material.ROCK, "basalt").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block basalt_sulfur = new BlockOre(Material.ROCK, "basalt_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block basalt_fluorite = new BlockOre(Material.ROCK, "basalt_fluorite", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block basalt_asbestos = new BlockOutgas(Material.ROCK, true, 5, true, "basalt_asbestos").addAsbestos(15).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block basalt_sulfur = new BlockNTMOre("basalt_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block basalt_fluorite = new BlockNTMOre("basalt_fluorite", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block basalt_asbestos = new BlockOutgas(true, 5, true, "basalt_asbestos").addAsbestos(15).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block basalt_gem = new BlockCluster(Material.ROCK, "basalt_gem").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block basalt_smooth = new BlockBase(Material.ROCK, "basalt_smooth").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block basalt_brick = new BlockBase(Material.ROCK, "basalt_brick").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); @@ -766,8 +780,7 @@ public SoundEvent getBreakSound() { public static final Block nuke_n2 = new NukeN2(Material.IRON, "nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); public static final int guiID_nuke_n2 = 61; - public static final Block nuke_n45 = new NukeN45(Material.IRON, "nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - public static final int guiID_nuke_n45 = 77; + public static final int guiID_nuke_n45 = 77; //unused public static final int guiID_nuke_fstbmb = 97; public static final Block nuke_fstbmb = new NukeBalefire(Material.IRON, guiID_nuke_fstbmb, "nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); @@ -793,10 +806,12 @@ public SoundEvent getBreakSound() { public static final Block therm_exo = new BombThermo(Material.IRON, "therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); public static final Block det_cord = new DetCord(Material.IRON, "det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); + public static final Block det_miner = new DetMiner(Material.IRON, "det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); public static final Block det_charge = new DetCord(Material.IRON, "det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); public static final Block block_semtex = new BlockSemtex(Material.TNT, "block_semtex").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.nukeTab).setHardness(2.0F).setResistance(2.0F); + public static final Block det_n2 = new DetCord(Material.IRON, "det_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); public static final Block det_nuke = new DetCord(Material.IRON, "det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); - public static final Block det_miner = new DetMiner(Material.IRON, "det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); + public static final Block det_bale = new DetCord(Material.IRON, "det_bale").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F); public static final Block red_barrel = new RedBarrel(Material.IRON, "red_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F); public static final Block pink_barrel = new RedBarrel(Material.IRON, "pink_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F); public static final Block yellow_barrel = new YellowBarrel(Material.IRON, "yellow_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F); @@ -812,7 +827,8 @@ public SoundEvent getBreakSound() { public static final Block cable_detector = new CableDetector(Material.IRON, "cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block machine_detector = new PowerDetector(Material.IRON, "machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block cable_diode = new CableDiode(Material.IRON, "cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - + public static final Block red_cable_gauge = new BlockCableGauge(Material.IRON, "red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block red_pylon = new PylonRedWire(Material.IRON, "red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block red_pylon_large = new PylonLarge(Material.IRON, "red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block substation = new Substation(Material.IRON,"substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1091,7 +1107,7 @@ public SoundEvent getBreakSound() { public static final Block pribris_digamma = new RBMKDebrisDigamma("pribris_digamma").addDigamma(0.05F).addFire(300).toBlock().setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(6000.0F); public static final Block block_corium = new BlockHazard(Material.IRON, "block_corium").makeBeaconable().addRad3d(150000).addRadiation(10000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(9000.0F); - public static final Block block_corium_cobble = new BlockOutgas(Material.IRON, true, 1, true, true, "block_corium_cobble").addRadiation(1000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); + public static final Block block_corium_cobble = new BlockOutgas(true, 1, true, true, "block_corium_cobble").addRadiation(1000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); public static final Block machine_assembler = new MachineAssembler(Material.IRON, "machine_assembler").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(100.0F); public static final int guiID_machine_assembler = 48; @@ -1179,9 +1195,8 @@ public SoundEvent getBreakSound() { public static final Block machine_flare = new MachineGasFlare(Material.IRON, "machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block machine_drill = new MachineMiningDrill(Material.IRON, "machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); public static final Block drill_pipe = new BlockNoDrop(Material.IRON, "drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - public static final int guiID_machine_drill = 45; + public static final int guiID_ = 45; //unused public static final Block machine_excavator = new MachineExcavator(Material.IRON, "machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); @@ -1324,7 +1339,7 @@ public SoundEvent getBreakSound() { //Fwatz stuff public static final Block fwatz_conductor = new BlockReactor(Material.IRON, "fwatz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block fwatz_cooler = new BlockReactor(Material.IRON, "fwatz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block fwatz_tank = new BlockNTMGlass(Material.IRON, BlockRenderLayer.CUTOUT, "fwatz_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block fwatz_tank = new BlockNTMGlass(Material.IRON, BlockRenderLayer.CUTOUT, true, "fwatz_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block fwatz_scaffold = new BlockBase(Material.IRON, "fwatz_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block fwatz_hatch = new FWatzHatch(Material.IRON, "fwatz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block fwatz_computer = new BlockBase(Material.IRON, "fwatz_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1426,7 +1441,7 @@ public SoundEvent getBreakSound() { public static final Block gas_coal = new BlockGasCoal("gas_coal").setCreativeTab(MainRegistry.resourceTab); public static final Block gas_flammable = new BlockGasFlammable("gas_flammable").setCreativeTab(MainRegistry.resourceTab); public static final Block gas_explosive = new BlockGasExplosive("gas_explosive").setCreativeTab(MainRegistry.resourceTab); - public static final Block ancient_scrap = new BlockOutgas(Material.IRON, true, 1, true, true, "ancient_scrap").addRadiation(150F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); + public static final Block ancient_scrap = new BlockOutgas(true, 1, true, true, "ancient_scrap").addRadiation(150F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); public static final Block railgun_plasma = new RailgunPlasma(Material.IRON, "railgun_plasma").setSoundType(SoundType.METAL).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab); @@ -1438,23 +1453,16 @@ public SoundEvent getBreakSound() { public static final Block radio_torch_receiver = new RadioTorchReceiver("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); //Drillgon200: Removed, by order of lord Bob. - //public static final Block oil_duct_solid = new OilDuctSolid(Material.IRON, "oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //public static final Block oil_duct = new BlockOilDuct(Material.IRON, "oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //public static final Block gas_duct_solid = new GasDuctSolid(Material.IRON, "gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //public static final Block gas_duct = new BlockGasDuct(Material.IRON, "gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block fluid_duct = new BlockFluidDuct(Material.IRON, "fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - + //Alcater: excecuting removal of classes/registry/render public static final Block fluid_duct_mk2 = new BlockFluidPipeMk2(Material.IRON, "fluid_duct_mk2").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.templateTab); public static final Block fluid_duct_solid = new BlockFluidPipeSolid(Material.IRON, "fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.templateTab); public static final Block fluid_duct_solid_sealed = new BlockFluidPipeSolidRadResistant(Material.IRON, "fluid_duct_solid_sealed").setHardness(15.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.templateTab); - public static final Block conveyor = new BlockConveyor(Material.IRON, "conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - public static final Block conveyor_double = new BlockConveyorDouble(Material.IRON, "conveyor_double").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - public static final Block conveyor_express = new BlockConveyorExpress(Material.IRON, "conveyor_express").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - public static final Block crane_ejector = new CraneExtractor(Material.IRON, "crane_ejector").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - public static final int guiID_crane_ejector = 135; - public static final Block crane_inserter = new CraneInserter(Material.IRON, "crane_inserter").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - public static final int guiID_crane_inserter = 136; + public static final Block conveyor = new BlockConveyor(Material.IRON, "conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab); + // public static final Block conveyor_double = new BlockConveyorDouble(Material.IRON, "conveyor_double").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block conveyor_express = new BlockConveyorExpress(Material.IRON, "conveyor_express").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block crane_ejector = new CraneExtractor(Material.IRON, "crane_ejector").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block crane_inserter = new CraneInserter(Material.IRON, "crane_inserter").setHardness(3.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab); public static final Block chain = new BlockChain(Material.IRON, "dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); public static final Block ladder_sturdy = new BlockNTMLadder("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); @@ -1479,8 +1487,8 @@ public SoundEvent getBreakSound() { //Control panel public static final int guiID_control_panel = 106; - public static final Block control0 = new BlockControlPanel(Material.IRON, "control_panel0").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); - + public static final Block control_panel_custom = new BlockControlPanel(Material.IRON, "control_panel_custom").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab); + //Fluids public static final Material fluidtoxic = new MaterialLiquid(MapColor.YELLOW).setReplaceable(); public static Block toxic_block; @@ -1564,9 +1572,6 @@ public Material setImmovableMobility() { public static final Block dummy_block_flare = new DummyBlockFlare(Material.IRON, "dummy_block_flare", false).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); public static final Block dummy_port_flare = new DummyBlockFlare(Material.IRON, "dummy_port_flare", true).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - public static final Block dummy_block_drill = new DummyBlockDrill(Material.IRON, "dummy_block_drill", false).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - public static final Block dummy_port_drill = new DummyBlockDrill(Material.IRON, "dummy_port_drill", true).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - public static final Block dummy_block_turbofan = new DummyBlockTurbofan(Material.IRON, "dummy_block_turbofan", false).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); public static final Block dummy_port_turbofan = new DummyBlockTurbofan(Material.IRON, "dummy_port_turbofan", true).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); diff --git a/src/main/java/com/hbm/blocks/bomb/BombMulti.java b/src/main/java/com/hbm/blocks/bomb/BombMulti.java index 698546cabe..69233c8f8d 100644 --- a/src/main/java/com/hbm/blocks/bomb/BombMulti.java +++ b/src/main/java/com/hbm/blocks/bomb/BombMulti.java @@ -156,7 +156,7 @@ public boolean igniteTestBomb(World world, int x, int y, int z) if(this.clusterCount > 0) { - ExplosionChaos.cluster(world, x, y, z, this.clusterCount, 1); + ExplosionChaos.cluster(world, x, y, z, this.clusterCount, 0.5); } if(this.fireRadius > 0) diff --git a/src/main/java/com/hbm/blocks/bomb/DetCord.java b/src/main/java/com/hbm/blocks/bomb/DetCord.java index 8ffb6de412..8807c9e470 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetCord.java +++ b/src/main/java/com/hbm/blocks/bomb/DetCord.java @@ -5,8 +5,9 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.logic.EntityBalefire; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.IBomb; @@ -58,21 +59,40 @@ public void explode(World world, BlockPos pos) { world.createExplosion(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1.5F, true); } if(this == ModBlocks.det_charge) { - ExplosionLarge.explode(world, pos.getX(), pos.getY(), pos.getZ(), 15, true, false, false); + ExplosionLarge.explode(world, pos.getX(), pos.getY(), pos.getZ(), 20, true, false, false); + } + if(this == ModBlocks.det_n2) { + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int)(BombConfig.n2Radius/12) * 5, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, (int)(BombConfig.n2Radius/12) * 5); + } } if(this == ModBlocks.det_nuke) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.missileRadius, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, BombConfig.missileRadius); - entity2.posX = pos.getX(); - entity2.posY = pos.getY(); - entity2.posZ = pos.getZ(); - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, BombConfig.missileRadius); + } + } + if(this == ModBlocks.det_bale) { + EntityBalefire bf = new EntityBalefire(world); + bf.posX = pos.getX() + 0.5; + bf.posY = pos.getY() + 0.5; + bf.posZ = pos.getZ() + 0.5; + bf.destructionRange = (int) 130; + world.spawnEntity(bf); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFacBale(world, pos.getX() + 0.5, pos.getY() + 5, pos.getZ() + 0.5, 130F); + } } } } @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + if(this == ModBlocks.det_n2){ + tooltip.add("§c[Extreme Bomb]§r"); + tooltip.add(" §eRadius: "+((int)(BombConfig.n2Radius/12) * 5)+"m§r"); + } if(this == ModBlocks.det_nuke){ tooltip.add("§2[Nuclear Bomb]§r"); tooltip.add(" §eRadius: "+BombConfig.missileRadius+"m§r"); @@ -81,5 +101,9 @@ public void addInformation(ItemStack stack, World player, List tooltip, tooltip.add(" §aRadius: "+(int)BombConfig.missileRadius*(1+BombConfig.falloutRange/100)+"m§r"); } } + if(this == ModBlocks.det_bale){ + tooltip.add("§a[Balefire Bomb]§r"); + tooltip.add(" §eRadius: 130m§r"); + } } } diff --git a/src/main/java/com/hbm/blocks/bomb/DetMiner.java b/src/main/java/com/hbm/blocks/bomb/DetMiner.java index 0caf444b7a..3854a7335f 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/DetMiner.java @@ -40,8 +40,7 @@ public void explode(World world, BlockPos pos) { ExplosionNT explosion = new ExplosionNT(world, null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 4); explosion.atttributes.add(ExAttrib.ALLDROP); explosion.atttributes.add(ExAttrib.NOHURT); - explosion.doExplosionA(); - explosion.doExplosionB(false); + explosion.explode(); ExplosionLarge.spawnParticles(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 30); } diff --git a/src/main/java/com/hbm/blocks/bomb/Landmine.java b/src/main/java/com/hbm/blocks/bomb/Landmine.java index 275c8b67cf..71ea1adae7 100644 --- a/src/main/java/com/hbm/blocks/bomb/Landmine.java +++ b/src/main/java/com/hbm/blocks/bomb/Landmine.java @@ -5,10 +5,9 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -202,20 +201,13 @@ public void explode(World world, BlockPos pos) { } if (this == ModBlocks.mine_fat) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, x + 0.5, y + 0.5, z + 0.5)); - - if(MainRegistry.polaroidID == 11) { - ExplosionParticleB.spawnMush(world, x + 0.5, y - 3, z + 0.5); - } else { - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(world, x + 0.5, y - 3, z + 0.5); - } else { - ExplosionParticle.spawnMush(world, x + 0.5, y - 3, z + 0.5); - } - } + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, x + 0.5, y + 0.5, z + 0.5)); + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.fatmanRadius); + } } } } - } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 3d64696776..908f821220 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -25,6 +25,7 @@ import com.hbm.entity.missile.EntityMissileMicro; import com.hbm.entity.missile.EntityMissileMirv; import com.hbm.entity.missile.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileN2; import com.hbm.entity.missile.EntityMissileRain; import com.hbm.entity.missile.EntityMissileSchrabidium; import com.hbm.entity.missile.EntityMissileStrong; @@ -129,6 +130,7 @@ public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAc @Override public void explode(World world, BlockPos pos) { TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(pos); + if(entity.clearingTimer > 0) return; int x = pos.getX(); int y = pos.getY(); @@ -158,6 +160,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_incendiary && entity.power >= 75000) { EntityMissileIncendiary missile = new EntityMissileIncendiary(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -168,6 +171,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_cluster && entity.power >= 75000) { EntityMissileCluster missile = new EntityMissileCluster(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -178,6 +182,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_buster && entity.power >= 75000) { EntityMissileBunkerBuster missile = new EntityMissileBunkerBuster(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -188,6 +193,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_strong && entity.power >= 75000) { EntityMissileStrong missile = new EntityMissileStrong(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -198,6 +204,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_incendiary_strong && entity.power >= 75000) { EntityMissileIncendiaryStrong missile = new EntityMissileIncendiaryStrong(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -208,6 +215,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_cluster_strong && entity.power >= 75000) { EntityMissileClusterStrong missile = new EntityMissileClusterStrong(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -218,6 +226,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_buster_strong && entity.power >= 75000) { EntityMissileBusterStrong missile = new EntityMissileBusterStrong(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -228,6 +237,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_burst && entity.power >= 75000) { EntityMissileBurst missile = new EntityMissileBurst(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -237,6 +247,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_inferno && entity.power >= 75000) { EntityMissileInferno missile = new EntityMissileInferno(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -246,6 +257,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_rain && entity.power >= 75000) { EntityMissileRain missile = new EntityMissileRain(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -255,6 +267,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_drill && entity.power >= 75000) { EntityMissileDrill missile = new EntityMissileDrill(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -264,6 +277,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_nuclear && entity.power >= 75000) { EntityMissileNuclear missile = new EntityMissileNuclear(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -274,6 +288,18 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; + } + if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_n2 && entity.power >= 75000) { + EntityMissileN2 missile = new EntityMissileN2(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); + missile.setAcceleration(0.8D); + if (!world.isRemote) + world.spawnEntity(missile); + entity.power -= 75000; + + entity.inventory.setStackInSlot(0, ItemStack.EMPTY); + world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_endo && entity.power >= 75000) { EntityMissileEndo missile = new EntityMissileEndo(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -284,6 +310,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_exo && entity.power >= 75000) { EntityMissileExo missile = new EntityMissileExo(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -294,6 +321,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_nuclear_cluster && entity.power >= 75000) { EntityMissileMirv missile = new EntityMissileMirv(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -304,6 +332,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_doomsday && entity.power >= 75000) { EntityMissileDoomsday missile = new EntityMissileDoomsday(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -314,6 +343,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_taint && entity.power >= 75000) { EntityMissileTaint missile = new EntityMissileTaint(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -324,6 +354,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_micro && entity.power >= 75000) { EntityMissileMicro missile = new EntityMissileMicro(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -334,6 +365,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_bhole && entity.power >= 75000) { EntityMissileBHole missile = new EntityMissileBHole(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -344,6 +376,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_schrabidium && entity.power >= 75000) { EntityMissileSchrabidium missile = new EntityMissileSchrabidium(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -354,6 +387,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_emp && entity.power >= 75000) { EntityMissileEMP missile = new EntityMissileEMP(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -364,6 +398,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_emp_strong && entity.power >= 75000) { EntityMissileEMPStrong missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -374,6 +409,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if(entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_volcano) { EntityMissileVolcano missile = new EntityMissileVolcano(world, x + 0.5F, y + 1.5F, z + 0.5F, xCoord, zCoord); @@ -384,6 +420,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_carrier && entity.power >= 75000) { @@ -403,6 +440,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.rocketTakeoff, SoundCategory.BLOCKS, 100.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } if (entity.inventory.getStackInSlot(0).getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { @@ -418,6 +456,7 @@ public void explode(World world, BlockPos pos) { entity.inventory.setStackInSlot(0, ItemStack.EMPTY); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.missileTakeoff, SoundCategory.BLOCKS, 2.0F, 1.0F); + entity.clearingTimer = TileEntityLaunchPad.clearingDuraction; } } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java b/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java index d46877e5fc..057ca7f8d7 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java @@ -2,11 +2,11 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.machine.BlockMachineBase; import com.hbm.interfaces.IBomb; import com.hbm.tileentity.bomb.TileEntityNukeBalefire; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; @@ -15,7 +15,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -84,7 +83,7 @@ public void explode(World world, BlockPos pos) { @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.GREEN+"["+ I18nUtil.resolveKey("trait.balefirebomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" 250m§r"); + tooltip.add("§a["+ I18nUtil.resolveKey("trait.balefirebomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", 250)+"§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java index fd4e84eef8..db97e639f6 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java @@ -2,18 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeBoy; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -35,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -94,16 +91,10 @@ public boolean igniteTestBomb(World world, int x, int y, int z) { if(!world.isRemote) { world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); // x,y,z,sound,volume,pitch - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.boyRadius, x + 0.5, y + 0.5, z + 0.5)); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.boyRadius, x + 0.5, y + 0.5, z + 0.5)); - if(GeneralConfig.enableNukeClouds) { - world.spawnEntity(EntityNukeCloudSmall.statFac(world, x, y, z, BombConfig.boyRadius)); - } else { - EntityNukeCloudSmall entity2 = new EntityNukeCloudNoShroom(world, BombConfig.boyRadius); - entity2.posX = x; - entity2.posY = y - 11; - entity2.posZ = z; - world.spawnEntity(entity2); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x, y, z, BombConfig.boyRadius); } } return false; @@ -192,11 +183,11 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.boyRadius+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.boyRadius)+"§r"); if(!BombConfig.disableNuclear){ - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); - tooltip.add(TextFormatting.GREEN+I18nUtil.resolveKey("desc.radius")+" "+(int)BombConfig.boyRadius*(1+BombConfig.falloutRange/100)+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", (int)BombConfig.boyRadius*(1+BombConfig.falloutRange/100))+"§r"); } } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index 3da50f4325..2ade5684f4 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -2,15 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudSolinium; import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityFallingNuke; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; @@ -19,7 +20,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -39,7 +39,6 @@ import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -155,7 +154,9 @@ public static void explodeCustom(World world, double xCoord, double yCoord, doub bf.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); bf.destructionRange = (int) bale; world.spawnEntity(bf); - world.spawnEntity(EntityNukeCloudSmall.statFacBale(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, bale)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFacBale(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, bale); + } /// HYDROGEN /// } else if(hydro > 0) { @@ -164,8 +165,10 @@ public static void explodeCustom(World world, double xCoord, double yCoord, doub hydro = Math.min(hydro, BombConfig.maxCustomHydroRadius); dirty *= 0.25F; - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); + } /// NUCLEAR /// } else if(nuke > 0) { @@ -173,16 +176,20 @@ public static void explodeCustom(World world, double xCoord, double yCoord, doub nuke += tnt / 2; nuke = Math.min(nuke, BombConfig.maxCustomNukeRadius); - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); + } /// NON-NUCLEAR /// } else if(tnt >= 75) { tnt = Math.min(tnt, BombConfig.maxCustomTNTRadius); - world.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(world, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); + } } else if(tnt > 0) { ExplosionLarge.explode(world, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); @@ -273,6 +280,6 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) { @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.LIGHT_PURPLE+"["+ I18nUtil.resolveKey("trait.modularbomb")+"]"+"§r"); + tooltip.add("§d["+ I18nUtil.resolveKey("trait.modularbomb")+"]§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeFleija.java b/src/main/java/com/hbm/blocks/bomb/NukeFleija.java index 1c4c6d6a06..0743dd69f9 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeFleija.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeFleija.java @@ -3,6 +3,7 @@ import java.util.Random; import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudFleija; @@ -12,7 +13,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeFleija; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -33,7 +33,6 @@ import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -225,7 +224,7 @@ protected BlockStateContainer createBlockState() { @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.AQUA+"["+ I18nUtil.resolveKey("trait.schrabbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.fleijaRadius+"m§r"); + tooltip.add("§b["+ I18nUtil.resolveKey("trait.schrabbomb")+"]§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.fleijaRadius)+"§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java index 38306fb382..645e12ef2a 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java @@ -2,18 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeGadget; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -35,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -95,19 +92,9 @@ public boolean igniteTestBomb(World world, int x, int y, int z) { world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); // x,y,z,sound,volume,pitch - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); - if (GeneralConfig.enableNukeClouds) { - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, BombConfig.gadgetRadius); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); - } else { - EntityNukeCloudSmall entity2 = new EntityNukeCloudNoShroom(world, BombConfig.gadgetRadius); - entity2.posX = x; - entity2.posY = y - 15; - entity2.posZ = z; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); + if (BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); } } @@ -200,11 +187,11 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.gadgetRadius+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.gadgetRadius)+"§r"); if(!BombConfig.disableNuclear){ - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); - tooltip.add(TextFormatting.GREEN+I18nUtil.resolveKey("desc.radius")+" "+(int)BombConfig.gadgetRadius*(1+BombConfig.falloutRange/100)+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", (int)BombConfig.gadgetRadius*(1+BombConfig.falloutRange/100))+"§r"); } } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMan.java b/src/main/java/com/hbm/blocks/bomb/NukeMan.java index cb85d74d30..9699d2e297 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMan.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMan.java @@ -3,18 +3,16 @@ import java.util.Random; import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeMan; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -35,7 +33,6 @@ import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -149,24 +146,14 @@ public boolean igniteTestBomb(World world, int x, int y, int z) { if (!world.isRemote) { - if(world.getTileEntity(new BlockPos(x, y, z)) instanceof TileEntityNukeMan) - ((TileEntityNukeMan)world.getTileEntity(new BlockPos(x, y, z))).clearSlots(); - world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); - if (GeneralConfig.enableNukeClouds) { - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, BombConfig.manRadius); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); - } else { - EntityNukeCloudSmall entity2 = new EntityNukeCloudNoShroom(world, BombConfig.manRadius); - entity2.posX = x; - entity2.posY = y - 17; - entity2.posZ = z; - world.spawnEntity(entity2); - } + if(world.getTileEntity(new BlockPos(x, y, z)) instanceof TileEntityNukeMan) + ((TileEntityNukeMan)world.getTileEntity(new BlockPos(x, y, z))).clearSlots(); + world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); + + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); + if (BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); + } } return false; @@ -230,11 +217,11 @@ public void explode(World world, BlockPos pos) { @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.manRadius+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.nuclearbomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.manRadius)+"§r"); if(!BombConfig.disableNuclear){ - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); - tooltip.add(TextFormatting.GREEN+I18nUtil.resolveKey("desc.radius")+" "+(int)BombConfig.manRadius*(1+BombConfig.falloutRange/100)+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", (int)BombConfig.manRadius*(1+BombConfig.falloutRange/100))+"§r"); } } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMike.java b/src/main/java/com/hbm/blocks/bomb/NukeMike.java index 72ac7a0d2b..35d7f686ba 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMike.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMike.java @@ -2,18 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeMike; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -35,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -106,21 +103,10 @@ public boolean igniteTestBomb(World world, int x, int y, int z, int r) { if(!world.isRemote) { world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); - if(GeneralConfig.enableNukeClouds) { - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, r); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); - } else { - EntityNukeCloudSmall entity2 = new EntityNukeCloudNoShroom(world, r); - entity2.posX = x; - entity2.posY = y - (r / 10); - entity2.posZ = z; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } - } return false; @@ -211,11 +197,11 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.GOLD+"["+ I18nUtil.resolveKey("trait.thermobomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.mikeRadius+"m§r"); + tooltip.add("§6["+ I18nUtil.resolveKey("trait.thermobomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.mikeRadius)+"§r"); if(!BombConfig.disableNuclear){ - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); - tooltip.add(TextFormatting.GREEN+ I18nUtil.resolveKey("desc.radius")+" "+(int)BombConfig.mikeRadius*(1+BombConfig.falloutRange/100)+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", (int)BombConfig.mikeRadius*(1+BombConfig.falloutRange/100))+"§r"); } } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN2.java b/src/main/java/com/hbm/blocks/bomb/NukeN2.java index 51397cdc51..fd222aa169 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeN2.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeN2.java @@ -2,16 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeN2; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -33,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -100,12 +99,10 @@ public boolean igniteTestBomb(World world, int x, int y, int z, int r) { world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, r); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); + } } return false; @@ -190,10 +187,10 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.RED+"["+ I18nUtil.resolveKey("trait.extremebomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.n2Radius+"m§r"); + tooltip.add("§c["+ I18nUtil.resolveKey("trait.extremebomb")+"]§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.n2Radius)+"§r"); tooltip.add(""); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.chargeadds")+" "+(int)(BombConfig.n2Radius/12)+"m§r"); + tooltip.add("§e"+I18nUtil.resolveKey("desc.chargeadds", (int)(BombConfig.n2Radius/12))+"§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN45.java b/src/main/java/com/hbm/blocks/bomb/NukeN45.java deleted file mode 100644 index 86a79b1e80..0000000000 --- a/src/main/java/com/hbm/blocks/bomb/NukeN45.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IBomb; -import com.hbm.lib.InventoryHelper; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import com.hbm.util.I18nUtil; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class NukeN45 extends BlockContainer implements IBomb { - - public NukeN45(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityNukeN45(); - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - InventoryHelper.dropInventoryItems(worldIn, pos, worldIn.getTileEntity(pos)); - super.breakBlock(worldIn, pos, state); - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(pos); - if(entity != null) - { - player.openGui(MainRegistry.instance, ModBlocks.guiID_nuke_n45, world, pos.getX(), pos.getY(), pos.getZ()); - } - return true; - } else { - return false; - } - } - - @Override - public void explode(World world, BlockPos pos) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(pos); - - if(entity.getType() == 100) { - entity.primed = true; - } else if(!entity.primed && entity.getType() > 0) { - int t = entity.getType(); - entity.clearSlots(); - TileEntityNukeN45.explode(world, pos.getX(), pos.getY(), pos.getZ(), t); - } - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.LIGHT_PURPLE+"["+ I18nUtil.resolveKey("trait.modularbomb")+"]"+"§r"); - } -} diff --git a/src/main/java/com/hbm/blocks/bomb/NukePrototype.java b/src/main/java/com/hbm/blocks/bomb/NukePrototype.java index ced52c38a5..a6fccfa3b2 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukePrototype.java +++ b/src/main/java/com/hbm/blocks/bomb/NukePrototype.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudFleija; @@ -12,7 +13,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukePrototype; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -34,7 +34,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -220,7 +219,7 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.AQUA+"["+ I18nUtil.resolveKey("trait.schrabbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.prototypeRadius+"m§r"); + tooltip.add("§b["+ I18nUtil.resolveKey("trait.schrabbomb")+"]§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.prototypeRadius)+"§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java b/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java index 07fddc2db7..811e2eeef8 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudSolinium; @@ -11,7 +12,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeSolinium; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -33,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -197,10 +196,10 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.DARK_AQUA+"["+ I18nUtil.resolveKey("trait.soliniumbomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.soliniumRadius+"m§r"); + tooltip.add("§3["+ I18nUtil.resolveKey("trait.soliniumbomb")+"]§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.soliniumRadius)+"§r"); tooltip.add(""); - tooltip.add(TextFormatting.LIGHT_PURPLE+I18nUtil.resolveKey("desc.nukesolinium1")+"§r"); - tooltip.add(TextFormatting.LIGHT_PURPLE+I18nUtil.resolveKey("desc.nukesolinium2")+"§r"); + tooltip.add("§d"+I18nUtil.resolveKey("desc.nukesolinium1")+"§r"); + tooltip.add("§d"+I18nUtil.resolveKey("desc.nukesolinium2")+"§r"); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java index e2701fada4..1109dd5835 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java @@ -2,16 +2,16 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeTsar; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -33,7 +33,6 @@ import net.minecraft.util.Rotation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -116,38 +115,42 @@ public boolean igniteTestBomb(World world, int x, int y, int z, int r) { if(!world.isRemote) { world.playSound(null, x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, r); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); + } } return false; } @Override - public void explode(World world, BlockPos pos) { - TileEntityNukeTsar entity = (TileEntityNukeTsar) world.getTileEntity(pos); + public void explode(World worldIn, BlockPos pos) { + TileEntityNukeTsar entity = (TileEntityNukeTsar) worldIn.getTileEntity(pos); boolean isReady = entity.isReady(); boolean isStage1Filled = entity.isStage1Filled(); boolean isStage2Filled = entity.isStage2Filled(); - if(isStage2Filled) { - this.onBlockDestroyedByPlayer(world, pos, world.getBlockState(pos)); + boolean isStage3Filled = entity.isStage3Filled(); + if(isStage3Filled) { + this.onBlockDestroyedByPlayer(worldIn, pos, worldIn.getBlockState(pos)); entity.clearSlots(); - world.setBlockToAir(pos); - igniteTestBomb(world, pos.getX(), pos.getY(), pos.getZ(), BombConfig.tsarRadius); + worldIn.setBlockToAir(pos); + igniteTestBomb(worldIn, pos.getX(), pos.getY(), pos.getZ(), BombConfig.tsarRadius); }else if(isStage1Filled) { - this.onBlockDestroyedByPlayer(world, pos, world.getBlockState(pos)); + this.onBlockDestroyedByPlayer(worldIn, pos, worldIn.getBlockState(pos)); + entity.clearSlots(); + worldIn.setBlockToAir(pos); + igniteTestBomb(worldIn, pos.getX(), pos.getY(), pos.getZ(), BombConfig.tsarRadius/2); + }else if(isStage2Filled) { + this.onBlockDestroyedByPlayer(worldIn, pos, worldIn.getBlockState(pos)); entity.clearSlots(); - world.setBlockToAir(pos); - igniteTestBomb(world, pos.getX(), pos.getY(), pos.getZ(), BombConfig.mikeRadius); + worldIn.setBlockToAir(pos); + igniteTestBomb(worldIn, pos.getX(), pos.getY(), pos.getZ(), BombConfig.tsarRadius/3); }else if(isReady) { - this.onBlockDestroyedByPlayer(world, pos, world.getBlockState(pos)); + this.onBlockDestroyedByPlayer(worldIn, pos, worldIn.getBlockState(pos)); entity.clearSlots(); - world.setBlockToAir(pos); - igniteTestBomb(world, pos.getX(), pos.getY(), pos.getZ(), BombConfig.manRadius); - } + worldIn.setBlockToAir(pos); + igniteTestBomb(worldIn, pos.getX(), pos.getY(), pos.getZ(), BombConfig.tsarRadius/5); + } } @Override @@ -217,11 +220,11 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(TextFormatting.GOLD+"["+ I18nUtil.resolveKey("trait.thermobomb")+"]"+"§r"); - tooltip.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.radius")+" "+BombConfig.tsarRadius+"m§r"); + tooltip.add("§6["+ I18nUtil.resolveKey("trait.thermobomb")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", BombConfig.tsarRadius)+"§r"); if(!BombConfig.disableNuclear){ - tooltip.add(TextFormatting.DARK_GREEN+"["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); - tooltip.add(TextFormatting.GREEN+ I18nUtil.resolveKey("desc.radius")+" "+(int)BombConfig.tsarRadius*(1+BombConfig.falloutRange/100)+"m§r"); + tooltip.add("§2["+ I18nUtil.resolveKey("trait.fallout")+"]"+"§r"); + tooltip.add(" §e"+I18nUtil.resolveKey("desc.radius", (int)BombConfig.tsarRadius*(1+BombConfig.falloutRange/100))+"§r"); } } } diff --git a/src/main/java/com/hbm/blocks/bomb/RailgunPlasma.java b/src/main/java/com/hbm/blocks/bomb/RailgunPlasma.java index 65118d952e..9ffe00e5d5 100644 --- a/src/main/java/com/hbm/blocks/bomb/RailgunPlasma.java +++ b/src/main/java/com/hbm/blocks/bomb/RailgunPlasma.java @@ -2,12 +2,12 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityRailgun; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.SoundType; diff --git a/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java b/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java index 0406005f09..bfb147284a 100644 --- a/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java @@ -62,17 +62,17 @@ else if(entityIn instanceof EntityFallingBlock) public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborBlock, BlockPos neighbourPos) { super.neighborChanged(state, world, pos, neighborBlock, neighbourPos); if(reactToBlocks(world, pos.east())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(reactToBlocks(world, pos.west())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(reactToBlocks(world, pos.up())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(reactToBlocks(world, pos.down())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(reactToBlocks(world, pos.south())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(reactToBlocks(world, pos.north())) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); } public boolean reactToBlocks(World world, BlockPos pos) { diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java index 8e7167a77a..e7b9a5a915 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java @@ -30,7 +30,7 @@ public void randomDisplayTick(IBlockState stateIn, World world, BlockPos pos, Ra @Override public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entity){ - ContaminationUtil.applyCoal(entity, 10, 1); + ContaminationUtil.applyCoal(entity, 5, 1, 5); } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 438e2f42b1..c38a5d0c17 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -51,29 +51,32 @@ public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn) { public void printHook(Pre event, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); - + if(!(te instanceof TileEntityBedrockOre)) return; TileEntityBedrockOre ore = (TileEntityBedrockOre) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("desc.ore")+" "+(I18nUtil.resolveKey("desc.bedrock_ore."+BedrockOreRegistry.getOreName(ore.oreName)))); - text.add(I18nUtil.resolveKey("desc.tier")+" " + ore.tier); + text.add(I18nUtil.resolveKey("desc.bedrockore", BedrockOreRegistry.getOreName(ore.oreName))); + text.add(I18nUtil.resolveKey("desc.bedrocktier", ore.tier)); if(ore.acidRequirement != null) { - text.add(I18nUtil.resolveKey("desc.requires")+" " + ore.acidRequirement.amount + "mB " + ore.acidRequirement.getFluid().getLocalizedName(ore.acidRequirement)); + text.add(I18nUtil.resolveKey("desc.bedrockrequires", ore.acidRequirement.amount, ore.acidRequirement.getFluid().getLocalizedName(ore.acidRequirement))); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } - + public static class TileEntityBedrockOre extends TileEntity { - + public String oreName; public int color; public int tier; public FluidStack acidRequirement; + + public TileEntityBedrockOre() { + } public TileEntityBedrockOre(String oreName) { this.oreName = oreName; @@ -90,7 +93,6 @@ public TileEntityBedrockOre setOre(String oreName){ this.markDirty(); return this; } - @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 50d52b50cf..d51310d1a7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -160,7 +160,7 @@ public static void setDrops() { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_drill), 4); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_excavator), 4); BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDepth.java b/src/main/java/com/hbm/blocks/generic/BlockDepth.java index fc48430948..6d3aa71210 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDepth.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDepth.java @@ -1,8 +1,8 @@ package com.hbm.blocks.generic; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.util.I18nUtil; +import com.hbm.blocks.ModBlocks; import api.hbm.item.IDepthRockTool; import net.minecraft.block.Block; @@ -12,7 +12,6 @@ import net.minecraft.client.util.ITooltipFlag; import net.minecraft.util.math.BlockPos; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockDepth extends Block { @@ -39,13 +38,13 @@ public float getPlayerRelativeBlockHardness(IBlockState state, EntityPlayer play } @Override - public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { - super.addInformation(stack, world, list, flagIn); + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + super.addInformation(stack, player, tooltip, advanced); float hardness = this.getExplosionResistance(null); - list.add(TextFormatting.LIGHT_PURPLE + "[" + I18nUtil.resolveKey("trait.unmineable") + "]"); - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("trait.destroybyexplosion")); + tooltip.add("§d[" + I18nUtil.resolveKey("trait.unmineable") + "]"); + tooltip.add("§e" + I18nUtil.resolveKey("trait.destroybyexplosion")); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index c3323db87e..bffe820203 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -2,16 +2,19 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IAnimatedDoor; import com.hbm.interfaces.IDoor; import com.hbm.interfaces.IRadResistantBlock; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.ForgeDirection; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; -import com.hbm.util.I18nUtil; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.item.ItemStack; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; @@ -27,11 +30,12 @@ import net.minecraft.util.Rotation; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class BlockDoorGeneric extends BlockDummyable implements IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class BlockDoorGeneric extends BlockDummyable implements IRadResistantBlock, IPartialSealableBlock { public DoorDecl type; private boolean isRadResistant; @@ -42,6 +46,21 @@ public BlockDoorGeneric(Material materialIn, DoorDecl type, boolean isRadResista this.isRadResistant = isRadResistant; } + public boolean isSealed(World world, BlockPos blockPos, EnumFacing direction){ + if (world != null) { + int[] corePos = findCore(world, blockPos.getX(), blockPos.getY(), blockPos.getZ()); + if(corePos != null){ + TileEntity core = world.getTileEntity(new BlockPos(corePos[0], corePos[1], corePos[2])); + if (core != null && IDoor.class.isAssignableFrom(core.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) core).getState() == IDoor.DoorState.CLOSED; + } + } + } + + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta){ if(meta >= 12) @@ -65,19 +84,22 @@ public boolean isFullCube(IBlockState state) { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(!world.isRemote && !playerIn.isSneaking()) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ + if(world.isRemote) { + return true; + } else if(player.getHeldItem(hand).getItem() instanceof ItemLock || player.getHeldItem(hand).getItem() == ModItems.key_kit) { + return false; + + } if(!player.isSneaking()) { int[] pos1 = findCore(world, pos.getX(), pos.getY(), pos.getZ()); if(pos1 == null) return false; TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(new BlockPos(pos1[0], pos1[1], pos1[2])); - if(door != null) { - return door.tryToggle(playerIn); + if(door != null && door.canAccess(player)) { + return door.tryToggle(player); } } - if(!playerIn.isSneaking()) - return true; return false; } @@ -164,31 +186,32 @@ public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { } @Override - public boolean isRadResistant(World worldIn, BlockPos blockPos){ + public boolean isRadResistant(World world, BlockPos blockPos){ if (!this.isRadResistant) return false; - if (worldIn != null) { - TileEntity entity = worldIn.getTileEntity(blockPos); - if (entity != null) { - if (IDoor.class.isAssignableFrom(entity.getClass())) { + if (world != null) { + int[] corePos = findCore(world, blockPos.getX(), blockPos.getY(), blockPos.getZ()); + if(corePos != null){ + TileEntity core = world.getTileEntity(new BlockPos(corePos[0], corePos[1], corePos[2])); + if (core != null && IDoor.class.isAssignableFrom(core.getClass())) { // Doors should be rad resistant only when closed - return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + return ((IDoor) core).getState() == IDoor.DoorState.CLOSED; } } } - return true; + return false; } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); if(this.isRadResistant){ - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); } if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGenericSlab.java b/src/main/java/com/hbm/blocks/generic/BlockGenericSlab.java index f037bc53dd..8c30a96701 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGenericSlab.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGenericSlab.java @@ -3,9 +3,9 @@ import java.util.List; import java.util.Random; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; @@ -18,7 +18,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockGenericSlab extends BlockSlab { @@ -37,10 +36,10 @@ public BlockGenericSlab(Material materialIn, boolean isDouble, String s) { } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java b/src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java index cb6c0b3905..305d978a8d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java @@ -2,16 +2,15 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.Block; import net.minecraft.block.BlockStairs; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockGenericStairs extends BlockStairs { @@ -25,10 +24,10 @@ public BlockGenericStairs(IBlockState modelState, String s) { } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 5c9d573592..be8bc1b2ab 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -178,7 +178,7 @@ public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand){ if(this.rad3d > 0){ - ContaminationUtil.radiate(worldIn, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, this.rad3d, this.module.fire * 5000); + ContaminationUtil.radiate(worldIn, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, this.rad3d, 0, this.module.fire * 5000, 0, 0); worldIn.scheduleUpdate(pos, this, this.tickRate(worldIn)); } if(this == ModBlocks.block_meteor_molten) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazardMeta.java b/src/main/java/com/hbm/blocks/generic/BlockHazardMeta.java new file mode 100644 index 0000000000..c9f388fcde --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockHazardMeta.java @@ -0,0 +1,37 @@ +package com.hbm.blocks.generic; + +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.block.SoundType; +import net.minecraft.world.World; + +public class BlockHazardMeta extends BlockHazard { + + public static final PropertyInteger META = PropertyInteger.create("meta", 0, 15); + + public BlockHazardMeta(Material m, String s){ + super(m, s); + } + + public BlockHazardMeta(Material mat, SoundType type, String s) { + super(mat, type, s); + } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, new IProperty[]{META}); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(META); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return this.getDefaultState().withProperty(META, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java index d5de6cb331..36f44f649b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java @@ -3,11 +3,11 @@ import java.util.Random; import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IRadResistantBlock; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.SoundType; @@ -17,7 +17,6 @@ import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.math.BlockPos; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockNTMGlass extends BlockBreakable implements IRadResistantBlock { @@ -80,7 +79,7 @@ public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { @Override public int quantityDropped(IBlockState state, int fortune, Random random) { - return 0; + return doesDrop ? 1 : 0; } @Override @@ -99,14 +98,14 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ } @Override - public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { - super.addInformation(stack, world, list, flagIn); + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + super.addInformation(stack, player, tooltip, advanced); float hardness = this.getExplosionResistance(null); if(this.isRadResistant){ - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); } if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMOre.java b/src/main/java/com/hbm/blocks/generic/BlockNTMOre.java index 6ea97cbad5..4175fba5c2 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMOre.java @@ -67,7 +67,9 @@ public ItemHazardModule getModule() { @Override public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune){ - return xp; + if(this.getItemDropped(state, RANDOM, fortune) != Item.getItemFromBlock(this)) + return xp; + return 0; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java b/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java index c38c7bf3ec..cd216b579b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java @@ -62,5 +62,4 @@ public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, } } } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockPinkLog.java b/src/main/java/com/hbm/blocks/generic/BlockPinkLog.java index f1ff2de31f..b4c13a501e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPinkLog.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPinkLog.java @@ -1,13 +1,22 @@ package com.hbm.blocks.generic; +import java.util.List; + import com.hbm.blocks.ModBlocks; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.ItemStack; import net.minecraft.block.Block; import net.minecraft.block.BlockLog; import net.minecraft.block.SoundType; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public class BlockPinkLog extends BlockLog { @@ -39,4 +48,11 @@ protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {LOG_AXIS}); } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + tooltip.add(I18n.format(this.getUnlocalizedName()+".desc")); + super.addInformation(stack, player, tooltip, advanced); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPorous.java b/src/main/java/com/hbm/blocks/generic/BlockPorous.java index 8d6bc801be..4468aa9f4f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPorous.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPorous.java @@ -24,7 +24,7 @@ public BlockPorous(String s) { this.setUnlocalizedName(s); this.setRegistryName(s); this.setHardness(1.5F); //stone tier - this.setResistance(300.0F); //ha + this.setResistance(30.0F); //ha ModBlocks.ALL_BLOCKS.add(this); } diff --git a/src/main/java/com/hbm/blocks/generic/BlockRadResistant.java b/src/main/java/com/hbm/blocks/generic/BlockRadResistant.java index fb49e286c2..3f8aa5122b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockRadResistant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockRadResistant.java @@ -1,10 +1,11 @@ package com.hbm.blocks.generic; import java.util.List; + +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IRadResistantBlock; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.SoundType; @@ -13,7 +14,6 @@ import net.minecraft.client.util.ITooltipFlag; import net.minecraft.util.math.BlockPos; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockRadResistant extends Block implements IRadResistantBlock { @@ -49,12 +49,12 @@ public Block setSoundType(SoundType sound) { } @Override - public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { - super.addInformation(stack, world, list, flagIn); + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + super.addInformation(stack, player, tooltip, advanced); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); float hardness = this.getExplosionResistance(null); - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java index 516a007fd9..09153a7502 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java +++ b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java @@ -1,9 +1,10 @@ package com.hbm.blocks.generic; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.util.I18nUtil; +import com.hbm.blocks.ModBlocks; + import net.minecraft.block.Block; import net.minecraft.block.BlockRotatedPillar; import net.minecraft.client.util.ITooltipFlag; @@ -11,7 +12,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Item; import net.minecraft.block.material.Material; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockRotatablePillar extends BlockRotatedPillar { @@ -32,14 +32,14 @@ public Block setSoundType(SoundType sound) { @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_schrabidium_cluster)){ - tooltip.add("Balefire nukes create small amounts of euphemium inside this block"); + tooltip.add(I18nUtil.resolveKey("tile.block_schrabidium_cluster.desc")); } if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_euphemium_cluster)){ - tooltip.add("Balefire nukes have created small amounts of euphemium inside this block"); + tooltip.add(I18nUtil.resolveKey("tile.block_euphemium_cluster.desc")); } float hardness = this.getExplosionResistance(null); if(hardness > 50){ - tooltip.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrateRadResistant.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrateRadResistant.java index 8895eb2e7b..416b4e55f4 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrateRadResistant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrateRadResistant.java @@ -2,16 +2,15 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IRadResistantBlock; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.util.math.BlockPos; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockStorageCrateRadResistant extends BlockStorageCrate implements IRadResistantBlock { @@ -40,10 +39,10 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { super.addInformation(stack, player, tooltip, advanced); - tooltip.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); float hardness = this.getExplosionResistance(null); if(hardness > 50){ - tooltip.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/generic/RedBarrel.java b/src/main/java/com/hbm/blocks/generic/RedBarrel.java index 76b5f8d8cd..14396a5950 100644 --- a/src/main/java/com/hbm/blocks/generic/RedBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/RedBarrel.java @@ -21,6 +21,7 @@ import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; public class RedBarrel extends Block { @@ -41,9 +42,10 @@ public void addInformation(ItemStack stack, World player, List tooltip, @Override public void onBlockDestroyedByExplosion(World worldIn, BlockPos pos, Explosion explosionIn) { - if (!worldIn.isRemote) - { - explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); + if(!worldIn.isRemote && worldIn instanceof WorldServer) { + ((WorldServer)worldIn).addScheduledTask(() -> { + explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); + }); } } @@ -51,10 +53,12 @@ public void onBlockDestroyedByExplosion(World worldIn, BlockPos pos, Explosion e public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { if ((this == ModBlocks.red_barrel || this == ModBlocks.pink_barrel) && worldIn.getBlockState(pos.east()).getBlock() == Blocks.FIRE || worldIn.getBlockState(pos.west()).getBlock() == Blocks.FIRE || worldIn.getBlockState(pos.up()).getBlock() == Blocks.FIRE || worldIn.getBlockState(pos.down()).getBlock() == Blocks.FIRE || worldIn.getBlockState(pos.south()).getBlock() == Blocks.FIRE || worldIn.getBlockState(pos.north()).getBlock() == Blocks.FIRE) { - if(!worldIn.isRemote){ - explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); - worldIn.setBlockState(pos, Blocks.AIR.getDefaultState()); - } + if(!worldIn.isRemote && worldIn instanceof WorldServer) { + ((WorldServer)worldIn).addScheduledTask(() -> { + explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); + worldIn.setBlockState(pos, Blocks.AIR.getDefaultState()); + }); + } } } diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index 4562930e63..d85449e725 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -16,6 +16,9 @@ import net.minecraft.block.BlockMushroom; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -33,6 +36,7 @@ public class WasteEarth extends Block implements IItemHazard { + public static final PropertyInteger META = PropertyInteger.create("meta", 0, 15); ItemHazardModule module; public WasteEarth(Material materialIn, boolean tick, String s) { @@ -46,11 +50,26 @@ public WasteEarth(Material materialIn, boolean tick, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public WasteEarth(Material materialIn, SoundType type, boolean tick, String s) { this(materialIn, tick, s); setSoundType(type); } - + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, new IProperty[]{META}); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(META); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return this.getDefaultState().withProperty(META, meta); + } @Override public ItemHazardModule getModule() { @@ -128,9 +147,8 @@ public void updateTick(World world, BlockPos pos1, IBlockState state, Random ran if(this == ModBlocks.waste_earth || this == ModBlocks.waste_dirt || this == ModBlocks.waste_mycelium) { - if(GeneralConfig.enableAutoCleanup || (world.getLightBrightness(new BlockPos(x, y + 1, z)) < 4 && world.getBlockLightOpacity(new BlockPos(x, y + 1, z)) > 2)) { + if(GeneralConfig.enableAutoCleanup) { world.setBlockState(new BlockPos(x, y, z), Blocks.DIRT.getDefaultState()); - } if(world.getBlockState(new BlockPos(x, y + 1, z)).getBlock() instanceof BlockMushroom) { diff --git a/src/main/java/com/hbm/blocks/generic/WasteGrassTall.java b/src/main/java/com/hbm/blocks/generic/WasteGrassTall.java index 16e46dd972..db851fd3a3 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteGrassTall.java +++ b/src/main/java/com/hbm/blocks/generic/WasteGrassTall.java @@ -13,6 +13,9 @@ import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.material.MapColor; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; @@ -22,6 +25,8 @@ public class WasteGrassTall extends BlockBush { + public static final PropertyInteger META = PropertyInteger.create("meta", 0, 15); + public WasteGrassTall(Material materialIn, String s) { super(materialIn); this.setUnlocalizedName(s); @@ -36,10 +41,7 @@ public boolean canBlockStay(World world, BlockPos pos, IBlockState state){ Block block = world.getBlockState(pos.down()).getBlock(); return block == ModBlocks.waste_earth || block == ModBlocks.waste_mycelium || block == ModBlocks.waste_dirt; } - else - { - return false; - } + return false; } @Override @@ -72,4 +74,19 @@ public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos po { return MapColor.GRASS; } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, new IProperty[]{META}); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(META); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return this.getDefaultState().withProperty(META, meta); + } } diff --git a/src/main/java/com/hbm/blocks/generic/WasteLeaves.java b/src/main/java/com/hbm/blocks/generic/WasteLeaves.java index d9a06936f6..98052d9235 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteLeaves.java +++ b/src/main/java/com/hbm/blocks/generic/WasteLeaves.java @@ -1,7 +1,6 @@ package com.hbm.blocks.generic; import java.util.Random; -import java.util.List; import java.util.ArrayList; import com.hbm.blocks.ModBlocks; @@ -12,7 +11,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockOldLeaf; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -30,14 +29,14 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class WasteLeaves extends BlockLeaves implements IItemHazard { +public class WasteLeaves extends BlockOldLeaf implements IItemHazard { ItemHazardModule module; public WasteLeaves(String s) { this.setUnlocalizedName(s); this.setRegistryName(s); - this.setDefaultState(this.blockState.getBaseState().withProperty(CHECK_DECAY, Boolean.valueOf(false)).withProperty(DECAYABLE, Boolean.valueOf(false))); + this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, BlockPlanks.EnumType.OAK).withProperty(CHECK_DECAY, Boolean.valueOf(false)).withProperty(DECAYABLE, Boolean.valueOf(false))); this.setTickRandomly(false); this.module = new ItemHazardModule(); ModBlocks.ALL_BLOCKS.add(this); @@ -45,7 +44,7 @@ public WasteLeaves(String s) { @Override protected BlockStateContainer createBlockState(){ - return new BlockStateContainer(this, CHECK_DECAY, DECAYABLE); + return new BlockStateContainer(this, VARIANT, CHECK_DECAY, DECAYABLE); } @Override @@ -68,11 +67,24 @@ public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(DECAYABLE, (meta & 4) == 0).withProperty(CHECK_DECAY, (meta & 8) > 0); } + @Override + public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand){ + return; + } + @Override public ItemHazardModule getModule() { return module; } + @Override + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune){ + if(RANDOM.nextInt(4) == 0) + drops.add(new ItemStack(Item.getItemFromBlock(Blocks.DEADBUSH))); + if(RANDOM.nextInt(3) == 0) + drops.add(new ItemStack(Items.STICK)); + } + @Override public Item getItemDropped(IBlockState state, Random rand, int fortune){ if(rand.nextInt(4) == 0) @@ -80,16 +92,32 @@ public Item getItemDropped(IBlockState state, Random rand, int fortune){ return null; } - public BlockPlanks.EnumType getWoodType(int meta){ - return null; - } - - public List onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune){ - List output = new ArrayList(); + public NonNullList onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune){ + NonNullList output = NonNullList.create(); output.add(new ItemStack(ModBlocks.waste_leaves, fortune+1)); return output; } + @Override + protected int getSaplingDropChance(IBlockState state){ + return 0; + } + + @Override + public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune){ + return; + } + + @Override + protected void dropApple(World worldIn, BlockPos pos, IBlockState state, int chance){ + return; + } + + @Override + public BlockPlanks.EnumType getWoodType(int meta){ + return BlockPlanks.EnumType.OAK; + } + @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { diff --git a/src/main/java/com/hbm/blocks/generic/WasteSand.java b/src/main/java/com/hbm/blocks/generic/WasteSand.java index c08cc3dbab..9bee9d95ab 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteSand.java +++ b/src/main/java/com/hbm/blocks/generic/WasteSand.java @@ -17,6 +17,9 @@ import net.minecraft.block.BlockMushroom; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -34,6 +37,7 @@ public class WasteSand extends BlockFalling implements IItemHazard { + public static final PropertyInteger META = PropertyInteger.create("meta", 0, 15); ItemHazardModule module; public WasteSand(Material materialIn, String s) { @@ -62,6 +66,21 @@ public ItemHazardModule getModule() { public int quantityDropped(IBlockState state, int fortune, Random random) { return 1; } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, new IProperty[]{META}); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(META); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return this.getDefaultState().withProperty(META, meta); + } @Override public void onEntityWalk(World worldIn, BlockPos pos, Entity entity) { diff --git a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java index 3418978d3c..4561f8bb08 100644 --- a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java @@ -16,6 +16,7 @@ import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -34,9 +35,10 @@ public YellowBarrel(Material materialIn, String s) { @Override public void onBlockDestroyedByExplosion(World worldIn, BlockPos pos, Explosion explosionIn) { - if (!worldIn.isRemote) - { - explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); + if (!worldIn.isRemote && worldIn instanceof WorldServer) { + ((WorldServer)worldIn).addScheduledTask(() -> { + explode(worldIn, pos.getX(), pos.getY(), pos.getZ()); + }); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlastDoor.java b/src/main/java/com/hbm/blocks/machine/BlastDoor.java index d9558b231d..76b83690b3 100644 --- a/src/main/java/com/hbm/blocks/machine/BlastDoor.java +++ b/src/main/java/com/hbm/blocks/machine/BlastDoor.java @@ -2,14 +2,17 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IDoor; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IMultiBlock; +import com.hbm.interfaces.IRadResistantBlock; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.machine.TileEntityBlastDoor; -import com.hbm.util.I18nUtil; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; @@ -26,11 +29,12 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class BlastDoor extends BlockContainer implements IBomb, IMultiBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class BlastDoor extends BlockContainer implements IBomb, IMultiBlock, IPartialSealableBlock, IRadResistantBlock { public static final PropertyDirection FACING = BlockHorizontal.FACING; @@ -42,6 +46,33 @@ public BlastDoor(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World world, BlockPos blockPos, EnumFacing direction){ + if(world != null) { + TileEntity entity = world.getTileEntity(blockPos); + if (entity != null) { + if (IDoor.class.isAssignableFrom(entity.getClass())) { + // Doors should be rad sealed when closed + return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + } + } + } + return false; + } + + @Override + public boolean isRadResistant(World worldIn, BlockPos blockPos) { + // Door should be rad resistant only when closed + if (worldIn != null) { + TileEntity entity = worldIn.getTileEntity(blockPos); + if (entity != null) { + if (IDoor.class.isAssignableFrom(entity.getClass())) { + return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityBlastDoor(); @@ -150,11 +181,11 @@ public IBlockState getStateFromMeta(int meta) { } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockSiloHatch.java b/src/main/java/com/hbm/blocks/machine/BlockSiloHatch.java index d3f5859666..0165cb316f 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockSiloHatch.java +++ b/src/main/java/com/hbm/blocks/machine/BlockSiloHatch.java @@ -12,6 +12,7 @@ import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.machine.TileEntitySiloHatch; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; @@ -30,8 +31,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class BlockSiloHatch extends BlockContainer implements IBomb, IMultiBlock, IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class BlockSiloHatch extends BlockContainer implements IBomb, IMultiBlock, IRadResistantBlock, IPartialSealableBlock { public static final PropertyDirection FACING = BlockHorizontal.FACING; @@ -43,6 +46,19 @@ public BlockSiloHatch(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World world, BlockPos blockPos, EnumFacing direction){ + if(world != null) { + TileEntity entity = world.getTileEntity(blockPos); + if (entity != null) { + if (IDoor.class.isAssignableFrom(entity.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntitySiloHatch(); diff --git a/src/main/java/com/hbm/blocks/machine/BlockSlidingBlastDoor.java b/src/main/java/com/hbm/blocks/machine/BlockSlidingBlastDoor.java index 55c0c86c7d..da5d5d65df 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockSlidingBlastDoor.java +++ b/src/main/java/com/hbm/blocks/machine/BlockSlidingBlastDoor.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IAnimatedDoor; import com.hbm.interfaces.IDoor; @@ -13,9 +14,9 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntitySlidingBlastDoorKeypad; import com.hbm.tileentity.machine.TileEntitySlidingBlastDoor; -import com.hbm.util.I18nUtil; import com.hbm.util.KeypadClient; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; @@ -27,18 +28,34 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.fml.common.Optional; -public class BlockSlidingBlastDoor extends BlockDummyable implements IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class BlockSlidingBlastDoor extends BlockDummyable implements IRadResistantBlock, IPartialSealableBlock { public BlockSlidingBlastDoor(Material materialIn, String s) { super(materialIn, s); } + public boolean isSealed(World world, BlockPos blockPos, EnumFacing direction){ + if (world != null) { + int[] corePos = findCore(world, blockPos.getX(), blockPos.getY(), blockPos.getZ()); + if(corePos != null){ + TileEntity core = world.getTileEntity(new BlockPos(corePos[0], corePos[1], corePos[2])); + if (core != null && IDoor.class.isAssignableFrom(core.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) core).getState() == IDoor.DoorState.CLOSED; + } + } + } + + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { if(this == ModBlocks.sliding_blast_door_keypad) { @@ -50,16 +67,16 @@ public TileEntity createNewTileEntity(World worldIn, int meta) { } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } if(this == ModBlocks.sliding_blast_door){ - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("desc.varwin") + " " + hardness); + tooltip.add(I18nUtil.resolveKey("desc.varwin")); } else if(this == ModBlocks.sliding_blast_door_2){ - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("desc.varkey") + " " + hardness); + tooltip.add(I18nUtil.resolveKey("desc.varkey")); } } @@ -150,6 +167,11 @@ public int getOffset() { return 0; } + @Override + public boolean isOpaqueCube(IBlockState state) { + return false; + } + @Override protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); @@ -178,24 +200,20 @@ public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { } @Override - public boolean isRadResistant(World worldIn, BlockPos blockPos){ - - //MainRegistry.logger.info("isRadResistant"); - if (worldIn != null) { - //MainRegistry.logger.info("checking door @ " + blockPos); - TileEntity entity = worldIn.getTileEntity(blockPos); - if (entity != null) { - //MainRegistry.logger.info("tile entity " + entity); - if (IDoor.class.isAssignableFrom(entity.getClass())) { + public boolean isRadResistant(World world, BlockPos blockPos){ + + if (world != null) { + int[] corePos = findCore(world, blockPos.getX(), blockPos.getY(), blockPos.getZ()); + if(corePos != null){ + TileEntity core = world.getTileEntity(new BlockPos(corePos[0], corePos[1], corePos[2])); + if (core != null && IDoor.class.isAssignableFrom(core.getClass())) { // Doors should be rad resistant only when closed - //MainRegistry.logger.info("door state: " + (((IDoor) entity).getState() == IDoor.DoorState.CLOSED)); - //MainRegistry.logger.info("door pos: " + blockPos); - return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + return ((IDoor) core).getState() == IDoor.DoorState.CLOSED; } } } - return true; + return false; } } diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockBlast.java b/src/main/java/com/hbm/blocks/machine/DummyBlockBlast.java index f07bf153df..aa3f521c5d 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockBlast.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockBlast.java @@ -13,6 +13,7 @@ import com.hbm.tileentity.machine.TileEntityBlastDoor; import com.hbm.tileentity.machine.TileEntityDummy; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -28,8 +29,10 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class DummyBlockBlast extends BlockContainer implements IDummy, IBomb, IRadResistantBlock{ +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class DummyBlockBlast extends BlockContainer implements IDummy, IBomb, IRadResistantBlock, IPartialSealableBlock { public static boolean safeBreak = false; @@ -41,6 +44,24 @@ public DummyBlockBlast(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World worldIn, BlockPos blockPos, EnumFacing direction){ + if (worldIn != null) + { + TileEntity te = worldIn.getTileEntity(blockPos); + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { + + TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); + if (actualTileEntity != null) { + if (IDoor.class.isAssignableFrom(actualTileEntity.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) actualTileEntity).getState() == IDoor.DoorState.CLOSED; + } + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityDummy(); @@ -149,7 +170,7 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ // Door should be rad resistant only when closed if (worldIn != null) { TileEntity te = worldIn.getTileEntity(blockPos); - if(te != null && te instanceof TileEntityDummy) { + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); if (actualTileEntity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java b/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java deleted file mode 100644 index 6334383cc1..0000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class DummyBlockDrill extends DummyOldBase { - - public static boolean safeBreak = false; - - public DummyBlockDrill(Material materialIn, String s, boolean port) { - super(materialIn, s, port); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) { - if(!safeBreak) { - TileEntity te = world.getTileEntity(pos); - if(te != null && te instanceof TileEntityDummy) { - if(!world.isRemote) - world.destroyBlock(((TileEntityDummy)te).target, true); - } - } - world.removeTileEntity(pos); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.INVISIBLE; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - @Override - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) { - return false; - } - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Items.AIR; - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(Item.getItemFromBlock(ModBlocks.machine_drill)); - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(pos); - if(te != null && te instanceof TileEntityDummy) { - BlockPos a = ((TileEntityDummy)te).target; - - TileEntityMachineMiningDrill entity = (TileEntityMachineMiningDrill) world.getTileEntity(a); - if(entity != null) - { - player.openGui(MainRegistry.instance, ModBlocks.guiID_machine_drill, world, a.getX(), a.getY(), a.getZ()); - } - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockSiloHatch.java b/src/main/java/com/hbm/blocks/machine/DummyBlockSiloHatch.java index b33005fd21..f636c88f4c 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockSiloHatch.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockSiloHatch.java @@ -13,6 +13,7 @@ import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntitySiloHatch; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -28,8 +29,10 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class DummyBlockSiloHatch extends BlockContainer implements IDummy, IBomb, IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class DummyBlockSiloHatch extends BlockContainer implements IDummy, IBomb, IRadResistantBlock, IPartialSealableBlock { public static boolean safeBreak = false; @@ -41,6 +44,24 @@ public DummyBlockSiloHatch(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World worldIn, BlockPos blockPos, EnumFacing direction){ + if (worldIn != null) + { + TileEntity te = worldIn.getTileEntity(blockPos); + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { + + TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); + if (actualTileEntity != null) { + if (IDoor.class.isAssignableFrom(actualTileEntity.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) actualTileEntity).getState() == IDoor.DoorState.CLOSED; + } + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityDummy(); @@ -149,7 +170,7 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ if (worldIn != null) { TileEntity te = worldIn.getTileEntity(blockPos); - if(te != null && te instanceof TileEntityDummy) { + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); if (actualTileEntity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockVault.java b/src/main/java/com/hbm/blocks/machine/DummyBlockVault.java index 5c9b1d3e33..2398b90431 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockVault.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockVault.java @@ -13,6 +13,7 @@ import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityVaultDoor; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -28,8 +29,10 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class DummyBlockVault extends BlockContainer implements IDummy, IBomb, IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class DummyBlockVault extends BlockContainer implements IDummy, IBomb, IRadResistantBlock, IPartialSealableBlock { public static boolean safeBreak = false; @@ -41,6 +44,24 @@ public DummyBlockVault(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World worldIn, BlockPos blockPos, EnumFacing direction){ + if (worldIn != null) + { + TileEntity te = worldIn.getTileEntity(blockPos); + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { + + TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); + if (actualTileEntity != null) { + if (IDoor.class.isAssignableFrom(actualTileEntity.getClass())) { + // Doors should be sealed only when closed + return ((IDoor) actualTileEntity).getState() == IDoor.DoorState.CLOSED; + } + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityDummy(); @@ -164,8 +185,7 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ if (worldIn != null) { TileEntity te = worldIn.getTileEntity(blockPos); - if(te != null && te instanceof TileEntityDummy) { - + if(te != null && te instanceof TileEntityDummy && ((TileEntityDummy) te).target != null) { TileEntity actualTileEntity = worldIn.getTileEntity(((TileEntityDummy) te).target); if (actualTileEntity != null) { if (IDoor.class.isAssignableFrom(actualTileEntity.getClass())) { @@ -175,8 +195,6 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ } } } - - return true; + return false; } - } diff --git a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java b/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java deleted file mode 100644 index 7789c775ae..0000000000 --- a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.conductor.TileEntityFFDuctBase; -import com.hbm.tileentity.conductor.TileEntityFFGasDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class GasDuctSolid extends BlockContainer { - - public GasDuctSolid(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityFFGasDuctSolid(); - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if(worldIn.getTileEntity(pos) != null && worldIn.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)worldIn.getTileEntity(pos)).breakBlock(); - } - super.breakBlock(worldIn, pos, state); - } - - @Override - public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor) { - if(world.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)world.getTileEntity(pos)).onNeighborBlockChange(); - } - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.MODEL; - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index a320de2ac3..c0a207a2e1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -52,7 +52,7 @@ public MachineBattery(Material materialIn, long power, String s) { @Override public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityMachineBattery(getMaxPower()); + return new TileEntityMachineBattery(); } public long getMaxPower() { diff --git a/src/main/java/com/hbm/blocks/machine/MachineCharger.java b/src/main/java/com/hbm/blocks/machine/MachineCharger.java index 3b02d954e6..195a95b237 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCharger.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCharger.java @@ -50,7 +50,10 @@ public EnumBlockRenderType getRenderType(IBlockState state) { @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add("§aMax Chargerate: "+Library.getShortNumber(20 * maxThroughput)+"HE/s"); + if(maxThroughput == Long.MAX_VALUE / 20L) + tooltip.add("§aMax Chargerate: Infinite HE/s"); + else + tooltip.add("§aMax Chargerate: "+Library.getShortNumber(20 * maxThroughput)+"HE/s"); this.addStandardInfo(tooltip); super.addInformation(stack, player, tooltip, advanced); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java index 162a1e1816..e642efeddb 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java @@ -1,8 +1,11 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; +import com.hbm.inventory.EngineRecipes.FuelGrade; import com.hbm.tileentity.machine.TileEntityMachineDiesel; import net.minecraft.block.BlockContainer; @@ -10,6 +13,9 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.client.resources.I18n; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -60,4 +66,18 @@ public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; } + @Override + public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { + list.add(I18n.format("trait.fuelefficiency")); + for(FuelGrade grade : FuelGrade.values()) { + Double efficiency = TileEntityMachineDiesel.fuelEfficiency.get(grade); + + if(efficiency != null) { + int eff = (int) (efficiency * 100); + list.add(" "+I18n.format("trait.fuelefficiency.desc", I18n.format(grade.getGrade()), eff)); + } + } + + super.addInformation(stack, worldIn, list, flagIn); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineForceField.java b/src/main/java/com/hbm/blocks/machine/MachineForceField.java index 666acc0628..15373f122c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineForceField.java +++ b/src/main/java/com/hbm/blocks/machine/MachineForceField.java @@ -65,8 +65,6 @@ public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Rand if(te.color == 0xFF0000) world.spawnParticle(EnumParticleTypes.LAVA, f + f4, f1, f2 + f5, 0.0D, 0.0D, 0.0D); - else - world.spawnParticle(EnumParticleTypes.REDSTONE, f + f4, f1, f2 + f5, 0.0D, 0.0D, 0.0D); } } else if(te.cooldown > 0) { for(int i = 0; i < 4; i++) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java b/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java deleted file mode 100644 index c03874d9b3..0000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java +++ /dev/null @@ -1,267 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiBlock; -import com.hbm.lib.InventoryHelper; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.BlockHorizontal; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class MachineMiningDrill extends BlockContainer implements IMultiBlock { - - public static final PropertyDirection FACING = BlockHorizontal.FACING; - - public MachineMiningDrill(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityMachineMiningDrill(); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(ModBlocks.machine_drill); - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(ModBlocks.machine_drill); - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - - @Override - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) { - return false; - } - - @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { - //int i = MathHelper.floor(placer.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - EnumFacing e = placer.getHorizontalFacing().getOpposite(); - world.setBlockState(pos, state.withProperty(FACING, e)); - - if(e.getAxis() == EnumFacing.Axis.X){ - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(-1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(-1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - } else if(e.getAxis() == EnumFacing.Axis.Z){ - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(0, 0, 1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(0, 0, 1)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(0, 0, -1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(0, 0, -1)); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - } - - /*if (i == 0) { - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(-1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(-1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - } - if (i == 1) { - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(0, 0, 1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(0, 0, 1)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(0, 0, -1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(0, 0, -1)); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - } - if (i == 2) { - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(-1, 0, 0), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(-1, 0, 0)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - } - if (i == 3) { - if(MultiblockHandler.checkSpace(world, pos, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, pos, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlockState(pos.add(0, 0, 1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te = world.getTileEntity(pos.add(0, 0, 1)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.target = pos; - } - world.setBlockState(pos.add(0, 0, -1), ModBlocks.dummy_port_drill.getDefaultState()); - TileEntity te2 = world.getTileEntity(pos.add(0, 0, -1)); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.target = pos; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.destroyBlock(pos, true); - }*/ - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - InventoryHelper.dropInventoryItems(worldIn, pos, worldIn.getTileEntity(pos)); - super.breakBlock(worldIn, pos, state); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { FACING }); - } - - @Override - public int getMetaFromState(IBlockState state) { - return ((EnumFacing) state.getValue(FACING)).getIndex(); - } - - @Override - public IBlockState getStateFromMeta(int meta) { - EnumFacing enumfacing = EnumFacing.getFront(meta); - - if(enumfacing.getAxis() == EnumFacing.Axis.Y) { - enumfacing = EnumFacing.NORTH; - } - - return this.getDefaultState().withProperty(FACING, enumfacing); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java index 2061d74dcf..44b6818ed7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java @@ -1,8 +1,11 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.lib.InventoryHelper; import com.hbm.main.MainRegistry; +import com.hbm.inventory.EngineRecipes.FuelGrade; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import net.minecraft.block.BlockContainer; @@ -14,6 +17,8 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; @@ -137,4 +142,18 @@ public IBlockState withRotation(IBlockState state, Rotation rot) { public IBlockState withMirror(IBlockState state, Mirror mirrorIn) { return state.withRotation(mirrorIn.toRotation((EnumFacing) state.getValue(FACING))); } + + @Override + public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { + list.add(I18n.format("trait.fuelefficiency")); + for(FuelGrade grade : FuelGrade.values()) { + Double efficiency = TileEntityMachineSeleniumEngine.fuelEfficiency.get(grade); + + if(efficiency != null) { + int eff = (int) (efficiency * 100); + list.add(" "+I18n.format("trait.fuelefficiency.desc", I18n.format(grade.getGrade()), eff)); + } + } + super.addInformation(stack, worldIn, list, flagIn); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index 026b6056ca..cad53c5d04 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -5,9 +5,9 @@ import com.hbm.items.ModItems; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ITooltipProvider; import com.hbm.main.MainRegistry; import com.hbm.lib.ForgeDirection; +import com.hbm.inventory.EngineRecipes.FuelGrade; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; @@ -15,6 +15,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -22,7 +23,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -public class MachineTurbofan extends BlockDummyable implements ITooltipProvider { +public class MachineTurbofan extends BlockDummyable { public MachineTurbofan(Material materialIn, String s) { super(materialIn, s); @@ -83,7 +84,8 @@ protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, i @Override public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - this.addStandardInfo(list); + list.add(I18n.format("trait.fuelefficiency")); + list.add(" "+I18n.format("trait.fuelefficiency.desc", I18n.format(FuelGrade.AERO.getGrade()), 100)); super.addInformation(stack, worldIn, list, flagIn); } } diff --git a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java b/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java deleted file mode 100644 index 5135324e4a..0000000000 --- a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.conductor.TileEntityFFDuctBase; -import com.hbm.tileentity.conductor.TileEntityFFOilDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class OilDuctSolid extends BlockContainer { - - public OilDuctSolid(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityFFOilDuctSolid(); - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if(worldIn.getTileEntity(pos) != null && worldIn.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)worldIn.getTileEntity(pos)).breakBlock(); - } - super.breakBlock(worldIn, pos, state); - } - - @Override - public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor) { - if(world.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)world.getTileEntity(pos)).onNeighborBlockChange(); - } - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.MODEL; - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/Radiobox.java b/src/main/java/com/hbm/blocks/machine/Radiobox.java index 21f68a7632..3477a216bd 100644 --- a/src/main/java/com/hbm/blocks/machine/Radiobox.java +++ b/src/main/java/com/hbm/blocks/machine/Radiobox.java @@ -65,8 +65,11 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En } else if(!player.isSneaking()) { TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(pos); + boolean wasInfinite = false; + if(box != null) + wasInfinite = box.infinite; - if(player.getHeldItem(hand).getItem() == ModItems.battery_spark && !box.infinite) { + if(player.getHeldItem(hand).getItem() == ModItems.battery_spark && !wasInfinite) { player.getHeldItem(hand).shrink(1); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, HBMSoundHandler.upgradePlug, SoundCategory.BLOCKS, 1.5F, 1.0F); box.infinite = true; @@ -81,6 +84,7 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En world.setBlockState(pos, world.getBlockState(pos).withProperty(STATE, false)); world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), HBMSoundHandler.reactorStart, SoundCategory.BLOCKS, 1.0F, 0.85F); } + ((TileEntityRadiobox)world.getTileEntity(pos)).infinite = wasInfinite; return true; } else { @@ -94,7 +98,7 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En public void breakBlock(World world, BlockPos pos, IBlockState state) { TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(pos); - if(box.infinite) { + if(box != null && box.infinite) { world.spawnEntity(new EntityItem(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, ItemBattery.getEmptyBattery(ModItems.battery_spark))); } super.breakBlock(world, pos, state); diff --git a/src/main/java/com/hbm/blocks/machine/VaultDoor.java b/src/main/java/com/hbm/blocks/machine/VaultDoor.java index c2d50119cc..31b560a3aa 100644 --- a/src/main/java/com/hbm/blocks/machine/VaultDoor.java +++ b/src/main/java/com/hbm/blocks/machine/VaultDoor.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IDoor; import com.hbm.interfaces.IBomb; @@ -12,7 +13,7 @@ import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.machine.TileEntityVaultDoor; -import com.hbm.util.I18nUtil; +import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; @@ -30,11 +31,12 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class VaultDoor extends BlockContainer implements IBomb, IMultiBlock, IRadResistantBlock { +@Optional.InterfaceList({@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock", modid = "galacticraftcore")}) +public class VaultDoor extends BlockContainer implements IBomb, IMultiBlock, IRadResistantBlock, IPartialSealableBlock { public static final PropertyDirection FACING = BlockHorizontal.FACING; @@ -46,6 +48,19 @@ public VaultDoor(Material materialIn, String s) { ModBlocks.ALL_BLOCKS.add(this); } + public boolean isSealed(World world, BlockPos blockPos, EnumFacing direction){ + if(world != null) { + TileEntity entity = world.getTileEntity(blockPos); + if (entity != null) { + if (IDoor.class.isAssignableFrom(entity.getClass())) { + // Doors should be rad sealed when closed + return ((IDoor) entity).getState() == IDoor.DoorState.CLOSED; + } + } + } + return false; + } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityVaultDoor(); @@ -228,8 +243,7 @@ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, Entity @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; } else if(player.getHeldItem(hand).getItem() instanceof ItemLock || player.getHeldItem(hand).getItem() == ModItems.key_kit) { return false; @@ -335,15 +349,15 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos) { } } - return true; + return false; } @Override - public void addInformation(ItemStack stack, World player, List list, ITooltipFlag advanced) { + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { float hardness = this.getExplosionResistance(null); - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); if(hardness > 50){ - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 5dea45e02f..13551664d1 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -5,6 +5,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.lib.ForgeDirection; +import com.hbm.util.ContaminationUtil; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -42,6 +43,8 @@ public void updateTick(World world, BlockPos pos, IBlockState state, Random rand } ForgeDirection dir = ForgeDirection.getOrientation(world.rand.nextInt(6)); + + ContaminationUtil.radiate(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, 0, 0, 50); //Foam helps stop the fire; Boron smothers it. 1.66% chance every 100-120 seconds for one side int chance = world.getBlockState(new BlockPos(pos.getX() + dir.offsetX, pos.getY() + dir.offsetY, pos.getZ() + dir.offsetZ)).getBlock() == ModBlocks.sand_boron ? 10 : 100; diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisDigamma.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisDigamma.java index f3284a0f3e..3b35c0e89e 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisDigamma.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisDigamma.java @@ -23,7 +23,7 @@ public RBMKDebrisDigamma(String s){ public void updateTick(World world, BlockPos pos, IBlockState state, Random rand){ if(!world.isRemote) { - ContaminationUtil.radiate(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, 0, 200F, 0F); + ContaminationUtil.radiate(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, 0, 200F, 0, 0, 0); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = world.getBlockState(new BlockPos(pos.getX() + dir.offsetX, pos.getY() + dir.offsetY, pos.getZ() + dir.offsetZ)).getBlock(); if((b instanceof RBMKDebris && b != this) || b == ModBlocks.corium_block || b == ModBlocks.block_corium) diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 561b680d8d..5110328c53 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -49,7 +49,7 @@ public void updateTick(World world, BlockPos pos, IBlockState state, Random rand //Boron sand helps stop the fission reaction; 0.66% chance every 20-40 ticks for one side int chance = world.getBlockState(new BlockPos(pos.getX() + dir.offsetX, pos.getY() + dir.offsetY, pos.getZ() + dir.offsetZ)).getBlock() == ModBlocks.sand_boron ? 25 : 1000; - ContaminationUtil.radiate(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, 100F * chance, 40F * chance); + ContaminationUtil.radiate(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 32, 100F * chance, 0, 40F * chance); if(rand.nextInt(5) == 0) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 441582844d..e2d95c637f 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -7,6 +7,7 @@ import com.hbm.lib.ForgeDirection; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityCraneBase; + import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java deleted file mode 100644 index bb445c8b5e..0000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.conductor.TileEntityFFDuctBase; -import com.hbm.tileentity.conductor.TileEntityFFFluidDuct; - -import com.hbm.util.I18nUtil; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockFluidDuct extends BlockContainer { - - private static final float p = 1F / 16F; - private static final AxisAlignedBB DUCT_BB = new AxisAlignedBB(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - - public BlockFluidDuct(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - this.setCreativeTab(MainRegistry.machineTab); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityFFFluidDuct(); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) { - if (world.getTileEntity(pos) instanceof TileEntityFFFluidDuct) { - TileEntityFFFluidDuct cable = (TileEntityFFFluidDuct) world.getTileEntity(pos); - - if (cable != null) { - float p = 1F / 16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - return new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return DUCT_BB; - } - - @Override - public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { - tooltip.add(I18nUtil.resolveKey("desc.breakgame")); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(ModBlocks.fluid_duct_mk2); - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if(worldIn.getTileEntity(pos) != null && worldIn.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)worldIn.getTileEntity(pos)).breakBlock(); - } - super.breakBlock(worldIn, pos, state); - } - - @Override - public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor) { - if(world.getTileEntity(pos) != null && world.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)world.getTileEntity(pos)).onNeighborBlockChange(); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java b/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java index 3fa508f27f..6b3229dcd5 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java @@ -30,7 +30,6 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; @@ -237,7 +236,7 @@ public void printHook(Pre event, World world, int x, int y, int z) { List text = new ArrayList(); if(ductFluid == null){ - text.add(TextFormatting.GRAY + I18nUtil.resolveKey("desc.none")); + text.add("§7" + I18nUtil.resolveKey("desc.none")); } else{ int color = ModForgeFluids.getFluidColor(ductFluid); text.add("&[" + color + "&]" +I18nUtil.resolveKey(ductFluid.getUnlocalizedName())); diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolid.java index 19d97f9ffd..0d7e68c8f1 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolid.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolid.java @@ -27,7 +27,6 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; @@ -154,7 +153,7 @@ public void printHook(Pre event, World world, int x, int y, int z) { List text = new ArrayList(); if(ductFluid == null){ - text.add(TextFormatting.GRAY + I18nUtil.resolveKey("desc.none")); + text.add("§7" + I18nUtil.resolveKey("desc.none")); } else{ int color = ModForgeFluids.getFluidColor(ductFluid); text.add("&[" + color + "&]" +I18nUtil.resolveKey(ductFluid.getUnlocalizedName())); diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolidRadResistant.java b/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolidRadResistant.java index 625b3f628c..25c27d495d 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolidRadResistant.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidPipeSolidRadResistant.java @@ -11,7 +11,6 @@ import net.minecraft.client.util.ITooltipFlag; import net.minecraft.util.math.BlockPos; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class BlockFluidPipeSolidRadResistant extends BlockFluidPipeSolid implements IRadResistantBlock { @@ -40,10 +39,10 @@ public boolean isRadResistant(World worldIn, BlockPos blockPos){ @Override public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { super.addInformation(stack, player, tooltip, advanced); - tooltip.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.radshield") + "]"); + tooltip.add("§2[" + I18nUtil.resolveKey("trait.radshield") + "]"); float hardness = this.getExplosionResistance(null); if(hardness > 50){ - tooltip.add(TextFormatting.GOLD + I18nUtil.resolveKey("trait.blastres") + " " + hardness); + tooltip.add("§6" + I18nUtil.resolveKey("trait.blastres", hardness)); } } } diff --git a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java b/src/main/java/com/hbm/blocks/network/BlockGasDuct.java deleted file mode 100644 index 4190bbb02a..0000000000 --- a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.conductor.TileEntityFFDuctBase; -import com.hbm.tileentity.conductor.TileEntityFFGasDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockGasDuct extends BlockContainer { - - private static final float p = 1F / 16F; - private static final AxisAlignedBB DUCT_BB = new AxisAlignedBB(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - - public BlockGasDuct(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityFFGasDuct(); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) { - if (world.getTileEntity(pos) instanceof TileEntityFFGasDuct) { - TileEntityFFGasDuct cable = (TileEntityFFGasDuct) world.getTileEntity(pos); - - if (cable != null) { - float p = 1F / 16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - return new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return DUCT_BB; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if(worldIn.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)worldIn.getTileEntity(pos)).breakBlock(); - } - super.breakBlock(worldIn, pos, state); - } - - @Override - public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor) { - if(world.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)world.getTileEntity(pos)).onNeighborBlockChange(); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java b/src/main/java/com/hbm/blocks/network/BlockOilDuct.java deleted file mode 100644 index 0f9087abf3..0000000000 --- a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.conductor.TileEntityFFDuctBase; -import com.hbm.tileentity.conductor.TileEntityFFOilDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockOilDuct extends BlockContainer { - - private static final float p = 1F / 16F; - private static final AxisAlignedBB DUCT_BB = new AxisAlignedBB(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - - public BlockOilDuct(Material materialIn, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityFFOilDuct(); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) { - if (world.getTileEntity(pos) instanceof TileEntityFFOilDuct) { - TileEntityFFOilDuct cable = (TileEntityFFOilDuct) world.getTileEntity(pos); - - if (cable != null) { - float p = 1F / 16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - return new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return DUCT_BB; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state) { - return false; - } - - @Override - public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if(worldIn.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)worldIn.getTileEntity(pos)).breakBlock(); - } - super.breakBlock(worldIn, pos, state); - } - - @Override - public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor) { - if(world.getTileEntity(pos) instanceof TileEntityFFDuctBase) { - ((TileEntityFFDuctBase)world.getTileEntity(pos)).onNeighborBlockChange(); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 45d7441a9c..888877bb2b 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -6,11 +6,12 @@ import com.hbm.lib.ForgeDirection; import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneInserter; +import com.hbm.tileentity.TileEntityMachineBase; + import net.minecraft.block.BlockHorizontal; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -18,6 +19,7 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.items.IItemHandler; public class CraneInserter extends BlockCraneBase implements IEnterableBlock { public CraneInserter(Material materialIn, String s) { @@ -42,98 +44,23 @@ public boolean canItemEnter(World world, int x, int y, int z, EnumFacing dir, IC @Override public void onItemEnter(World world, int x, int y, int z, EnumFacing dir, IConveyorItem entity) { - BlockPos pos = new BlockPos(x, y, z); - EnumFacing outputDirection = getOutputSide(world, pos); - TileEntity te = world.getTileEntity(pos.offset(outputDirection)); - if (entity == null || entity.getItemStack() == ItemStack.EMPTY || entity.getItemStack().getCount() <= 0) { return; } ItemStack toAdd = entity.getItemStack().copy(); + + TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); + boolean worked = false; + if(te instanceof TileEntityCraneInserter) + worked = ((TileEntityCraneInserter)te).tryFillTeDirect(toAdd); - int[] access = null; - if(te!=null){ - if (te instanceof ISidedInventory) { - ISidedInventory sided = (ISidedInventory) te; - access = masquerade(sided, EnumFacing.getFront(outputDirection.getOpposite().ordinal())); - } - - if (te instanceof IInventory) { - IInventory inv = (IInventory) te; - - addToInventory(inv, access, toAdd, outputDirection.getOpposite().ordinal()); - } - } - - if(toAdd.getCount() > 0) { - addToInventory( (TileEntityCraneInserter) world.getTileEntity(pos), null, toAdd, outputDirection.getOpposite().ordinal()); - } - if(toAdd.getCount() > 0) { + if(!worked) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); world.spawnEntity(drop); } } - public static int[] masquerade(ISidedInventory sided, EnumFacing side) { - if(sided instanceof TileEntityFurnace) { - return new int[] {1, 0}; - } - - return sided.getSlotsForFace(side); - } - - public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) { - - ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - int limit = inv.getInventoryStackLimit(); - - int size = access == null ? inv.getSizeInventory() : access.length; - - for(int i = 0; i < size; i++) { - int index = access == null ? i : access[i]; - ItemStack stack = inv.getStackInSlot(index); - - if(!stack.isEmpty() && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.getCount() < Math.min(stack.getMaxStackSize(), limit) - && ((sided == null || sided.canInsertItem(index, toAdd, EnumFacing.values()[side])) && inv.isItemValidForSlot(index, toAdd))) { - - int stackLimit = Math.min(stack.getMaxStackSize(), limit); - int amount = Math.min(toAdd.getCount(), stackLimit - stack.getCount()); - - stack.grow(amount); - toAdd.shrink(amount); - inv.markDirty(); - - if(toAdd.getCount() == 0) { - return ItemStack.EMPTY; - } - } - } - - for(int i = 0; i < size; i++) { - int index = access == null ? i : access[i]; - ItemStack stack = inv.getStackInSlot(index); - - if(stack.isEmpty() && ((sided == null || sided.canInsertItem(index, toAdd, EnumFacing.values()[side])) && inv.isItemValidForSlot(index, toAdd))) { - - int amount = Math.min(toAdd.getCount(), limit); - - ItemStack newStack = toAdd.copy(); - newStack.setCount(amount); - inv.setInventorySlotContents(index, newStack); - toAdd.shrink(amount); - inv.markDirty(); - - if(toAdd.getCount() == 0) { - return ItemStack.EMPTY; - } - } - } - - return toAdd; - } - - @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { this.dropContents(world, pos, state, 9, 20); diff --git a/src/main/java/com/hbm/blocks/network/energy/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/energy/BlockCableGauge.java new file mode 100644 index 0000000000..bb39b1a421 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/energy/BlockCableGauge.java @@ -0,0 +1,176 @@ +package com.hbm.blocks.network.energy; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.main.MainRegistry; +import com.hbm.lib.Library; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.energy.TileEntityCableBaseNT; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.block.BlockHorizontal; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyDirection; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.Mirror; +import net.minecraft.util.Rotation; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.fml.common.Optional; + +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +public class BlockCableGauge extends BlockContainer implements ILookOverlay, ITooltipProvider { + + public static final PropertyDirection FACING = BlockHorizontal.FACING; + + public BlockCableGauge(Material materialIn, String s) { + super(materialIn); + this.setUnlocalizedName(s); + this.setRegistryName(s); + this.setCreativeTab(MainRegistry.blockTab); + + ModBlocks.ALL_BLOCKS.add(this); + } + + @Override + protected BlockStateContainer createBlockState(){ + return new BlockStateContainer(this, new IProperty[] { FACING }); + } + + @Override + public int getMetaFromState(IBlockState state){ + return ((EnumFacing)state.getValue(FACING)).getIndex(); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + EnumFacing enumfacing = EnumFacing.getFront(meta); + if (enumfacing.getAxis() == EnumFacing.Axis.Y) { + enumfacing = EnumFacing.NORTH; + } + return this.getDefaultState().withProperty(FACING, enumfacing); + } + + @Override + public IBlockState withRotation(IBlockState state, Rotation rot){ + return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING))); + } + + @Override + public IBlockState withMirror(IBlockState state, Mirror mirrorIn){ + return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING))); + } + + @Override + public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { + worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2); + } + + @Override + public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) { + return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCableGauge(); + } + + @Override + public EnumBlockRenderType getRenderType(IBlockState state) { + return EnumBlockRenderType.MODEL; + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + this.addStandardInfo(tooltip); + super.addInformation(stack, player, tooltip, advanced); + } + + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z){ + TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); + + if(!(te instanceof TileEntityCableGauge)) + return; + + TileEntityCableGauge diode = (TileEntityCableGauge) te; + + List text = new ArrayList(); + text.add(Library.getShortNumber(diode.deltaLastSecond) + "HE/s"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver, SimpleComponent { + + private long lastMeasurement = 10; + private long deltaSecond = 0; + public long deltaLastSecond = 0; + + @Override + public void update() { + super.update(); + + if(!world.isRemote) { + + if(network != null) { + long total = network.getTotalTransfer(); + long deltaTick = total - this.lastMeasurement; + this.lastMeasurement = total; + + try { + if(world.getTotalWorldTime() % 20 == 0) { + this.deltaLastSecond = this.deltaSecond; + this.deltaSecond = 0; + NBTTagCompound data = new NBTTagCompound(); + data.setLong("deltaS", deltaLastSecond); + INBTPacketReceiver.networkPack(this, data, 25); + } + this.deltaSecond += deltaTick; + + } catch(Exception ex) { } + } + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); + } + + @Override + public String getComponentName() { + return "power_gauge"; + } + + @Callback(doc = "getPowerPerS(); returns the power(long) per s traveling through the gauge.") + public Object[] getPowerPerS(Context context, Arguments args) { + return new Object[] {deltaLastSecond}; + } + } +} diff --git a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java index ffd6b7fa66..6db4c7b530 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java +++ b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java @@ -1,29 +1,21 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretChekhov; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretChekhov extends BlockDummyable { +public class TurretChekhov extends TurretBaseNT { public TurretChekhov(Material materialIn, String s){ super(materialIn, s); } - + @Override public TileEntity createNewTileEntity(World worldIn, int meta){ if(meta >= 12) @@ -32,35 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_chekhov, world, x, y, z); } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_chekhov, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } - } diff --git a/src/main/java/com/hbm/blocks/turret/TurretFriendly.java b/src/main/java/com/hbm/blocks/turret/TurretFriendly.java index 6994dfb6e9..1415395e09 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretFriendly.java +++ b/src/main/java/com/hbm/blocks/turret/TurretFriendly.java @@ -1,29 +1,21 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretFriendly; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretFriendly extends BlockDummyable { +public class TurretFriendly extends TurretBaseNT { public TurretFriendly(Material materialIn, String s){ super(materialIn, s); } - + @Override public TileEntity createNewTileEntity(World worldIn, int meta){ if(meta >= 12) @@ -32,34 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; - } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_friendly, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_friendly, world, x, y, z); } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretFritz.java b/src/main/java/com/hbm/blocks/turret/TurretFritz.java index ee8eeac28e..744e30a637 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretFritz.java +++ b/src/main/java/com/hbm/blocks/turret/TurretFritz.java @@ -27,5 +27,4 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ public void openGUI(World world, EntityPlayer player, int x, int y, int z){ player.openGui(MainRegistry.instance, ModBlocks.guiID_fritz, world, x, y, z); } - } diff --git a/src/main/java/com/hbm/blocks/turret/TurretHoward.java b/src/main/java/com/hbm/blocks/turret/TurretHoward.java index b155c922c9..b90427e3dd 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHoward.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHoward.java @@ -1,24 +1,16 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretHoward; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretHoward extends BlockDummyable { +public class TurretHoward extends TurretBaseNT { public TurretHoward(Material materialIn, String s){ super(materialIn, s); @@ -32,35 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_howard, world, x, y, z); } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_howard, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } - } diff --git a/src/main/java/com/hbm/blocks/turret/TurretJeremy.java b/src/main/java/com/hbm/blocks/turret/TurretJeremy.java index 7e6f627d3f..4d439f1292 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretJeremy.java +++ b/src/main/java/com/hbm/blocks/turret/TurretJeremy.java @@ -1,24 +1,16 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretJeremy; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretJeremy extends BlockDummyable { +public class TurretJeremy extends TurretBaseNT { public TurretJeremy(Material materialIn, String s){ super(materialIn, s); @@ -30,37 +22,10 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ return new TileEntityTurretJeremy(); return new TileEntityProxyCombo(true, true, false); } - - @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; - } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_jeremy, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } + @Override + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_jeremy, world, x, y, z); } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java b/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java index c86dd2e690..a22490feaf 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java +++ b/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java @@ -1,24 +1,16 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretMaxwell; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretMaxwell extends BlockDummyable { +public class TurretMaxwell extends TurretBaseNT { public TurretMaxwell(Material materialIn, String s){ super(materialIn, s); @@ -32,35 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_maxwell, world, x, y, z); } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_maxwell, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } - } diff --git a/src/main/java/com/hbm/blocks/turret/TurretRichard.java b/src/main/java/com/hbm/blocks/turret/TurretRichard.java index 62a0502b4a..db36f6fc18 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretRichard.java +++ b/src/main/java/com/hbm/blocks/turret/TurretRichard.java @@ -1,29 +1,21 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretRichard; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretRichard extends BlockDummyable { +public class TurretRichard extends TurretBaseNT { public TurretRichard(Material materialIn, String s){ super(materialIn, s); } - + @Override public TileEntity createNewTileEntity(World worldIn, int meta){ if(meta >= 12) @@ -32,34 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; - } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_richard, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_richard, world, x, y, z); } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretTauon.java b/src/main/java/com/hbm/blocks/turret/TurretTauon.java index c34ac9810c..f36795c140 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretTauon.java +++ b/src/main/java/com/hbm/blocks/turret/TurretTauon.java @@ -1,24 +1,16 @@ package com.hbm.blocks.turret; -import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretTauon; import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -public class TurretTauon extends BlockDummyable { +public class TurretTauon extends TurretBaseNT { public TurretTauon(Material materialIn, String s){ super(materialIn, s); @@ -32,35 +24,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta){ } @Override - public int[] getDimensions(){ - return new int[] { 0, 0, 1, 0, 1, 0 }; + public void openGUI(World world, EntityPlayer player, int x, int y, int z){ + player.openGui(MainRegistry.instance, ModBlocks.guiID_tauon, world, x, y, z); } - - @Override - public int getOffset(){ - return 0; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos){ - return new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ){ - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, bpos.getX(), bpos.getY(), bpos.getZ()); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_tauon, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } - } diff --git a/src/main/java/com/hbm/capability/HbmLivingCapability.java b/src/main/java/com/hbm/capability/HbmLivingCapability.java index 268e8b4bc6..da2d7109c6 100644 --- a/src/main/java/com/hbm/capability/HbmLivingCapability.java +++ b/src/main/java/com/hbm/capability/HbmLivingCapability.java @@ -89,7 +89,7 @@ public float getNeutrons() { @Override public void setNeutrons(float neutrons) { - this.neutrons = MathHelper.clamp(neutrons, 0, 2500); + this.neutrons = Math.max(neutrons, 0); } @Override diff --git a/src/main/java/com/hbm/command/CommandRadiation.java b/src/main/java/com/hbm/command/CommandRadiation.java index 8fd1e8e0cb..df29ca7a2e 100644 --- a/src/main/java/com/hbm/command/CommandRadiation.java +++ b/src/main/java/com/hbm/command/CommandRadiation.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.capability.HbmLivingCapability; -import com.hbm.entity.particle.EntityFogFX; import com.hbm.saveddata.RadiationSavedData; import net.minecraft.command.CommandBase; @@ -90,10 +89,6 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args return; } else if (args.length == 1 && (args[0].equals("clearall") || args[0].equals("reset"))) { RadiationSavedData.getData(sender.getEntityWorld()).jettisonData(); - for (Entity e : sender.getEntityWorld().loadedEntityList) { - if (e instanceof EntityFogFX) - e.setDead(); - } sender.sendMessage(new TextComponentTranslation("commands.hbmrad.removeall", sender.getEntityWorld().provider.getDimension())); return; diff --git a/src/main/java/com/hbm/config/BedrockOreJsonConfig.java b/src/main/java/com/hbm/config/BedrockOreJsonConfig.java index e79bd715f8..6608163371 100644 --- a/src/main/java/com/hbm/config/BedrockOreJsonConfig.java +++ b/src/main/java/com/hbm/config/BedrockOreJsonConfig.java @@ -44,14 +44,31 @@ public static boolean isOreAllowed(int dimID, String ore){ } public static void setDefaults() { - addEntry(0, 30, Arrays.asList( + addEntry(0, 15, Arrays.asList( "orePlutonium", "oreQuartz", "oreInfernalCoal", "oreRedPhosphorus", "oreSchrabidium", "oreNeodymium", - "oreNitanium" + "oreNitanium", + "oreDesh", + "oreCheese", + "oreMercury", + "oreCarbon", + "oreCrystal", + "oreWhiteGem", + "oreRedGem", + "oreBlueGem", + "oreDarkIron", + "oreDenseCoal", + "oreBlueDiamond", + "oreRedDiamond", + "oreGreenDiamond", + "oreYellowDiamond", + "orePurpleDiamond", + "oreAdrite", + "oreSteel" ), false); addEntry(-1, 60, Arrays.asList( "orePlutonium", @@ -60,8 +77,39 @@ public static void setDefaults() { "oreRedPhosphorus", "oreSchrabidium", "oreNeodymium", - "oreNitanium" + "oreTungsten", + "oreUranium", + "oreSulfur", + "oreNitanium", + "oreCobalt", + "oreAdrite" ), true); + addEntry(-6, 30, Arrays.asList(//Mining Dim + "orePlutonium", + "oreQuartz", + "oreInfernalCoal", + "oreRedPhosphorus", + "oreSchrabidium", + "oreNeodymium", + "oreNitanium", + "oreDesh", + "oreCheese", + "oreMercury", + "oreCarbon", + "oreCrystal", + "oreRedGem", + "oreWhiteGem", + "oreBlueGem", + "oreDarkIron", + "oreDenseCoal", + "oreBlueDiamond", + "oreRedDiamond", + "oreGreenDiamond", + "oreYellowDiamond", + "orePurpleDiamond", + "oreAdrite", + "oreSteel" + ), false); } public static void addEntry(int dimID, int rarity, List ores, Boolean isWhiteList){ diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index d9a4e1af40..e8b6af538d 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -31,15 +31,16 @@ public class BombConfig { public static int maxCustomSolRadius = 1000; public static int maxCustomEuphLvl = 20; - public static int mk4 = 1024; + public static int mk5 = 30; public static int blastSpeed = 1024; + public static int nukeTickSpacing = 4; public static int falloutRange = 100; - public static int fChunkSpeed = 10; - public static boolean evaporateWater = true; - public static boolean fillCraterWithWater = true; - public static int oceanHeight = 0; + public static int fChunkSpeed = 5; + public static int falloutMS = 30; + public static boolean spawnFire = false; public static int limitExplosionLifespan = 0; - public static boolean disableNuclear; + public static boolean disableNuclear = false; + public static boolean enableNukeClouds = true; public static void loadFromConfig(Configuration config) { final String CATEGORY_NUKES = "03_nukes"; @@ -135,21 +136,34 @@ public static void loadFromConfig(Configuration config) { propBlastSpeed.setComment("Base speed of MK3 system (old and schrabidium) detonations (Blocks / tick)"); blastSpeed = propBlastSpeed.getInt(); // fallout range - Property propFalloutRange = config.get(CATEGORY_NUKE, "6.02_blastSpeedNew", 1024); - propFalloutRange.setComment("Base speed of MK4 system (new) detonations (Blocks / tick)"); - mk4 = propFalloutRange.getInt(); + Property propTickRange = config.get(CATEGORY_NUKE, "6.02_mk5TickSpacing", 4); + propTickRange.setComment("Do mk5 chunk processing ever nth tick"); + nukeTickSpacing = propTickRange.getInt(); + // fallout range + Property propFalloutRange = config.get(CATEGORY_NUKE, "6.02_mk5BlastTime", 30); + propFalloutRange.setComment("Maximum amount of milliseconds per tick allocated for mk5 chunk processing"); + mk5 = propFalloutRange.getInt(); // fallout speed Property falloutRangeProp = config.get(CATEGORY_NUKE, "6.03_falloutRange", 100); falloutRangeProp.setComment("Radius of fallout area (base radius * value in percent)"); falloutRange = falloutRangeProp.getInt(); - // new explosion speed - Property falloutChunkSpeed = config.get(CATEGORY_NUKE, "6.04_falloutChunkSpeed", 10); + // fallout speed + Property falloutChunkSpeed = config.get(CATEGORY_NUKE, "6.04_falloutChunkSpeed", 5); falloutChunkSpeed.setComment("Process a Chunk every nth tick by the fallout rain"); fChunkSpeed = falloutChunkSpeed.getInt(); + // new explosion speed + Property falloutMSProp = config.get(CATEGORY_NUKE, "6.04_falloutTime", 30); + falloutMSProp.setComment("Maximum amount of milliseconds per tick allocated for fallout chunk processing"); + falloutMS = falloutMSProp.getInt(); + Property spawnFireP = config.get(CATEGORY_NUKE, "6.05_falloutFireSpawn", false); + spawnFireP.setComment("Weither to spawn fire after the nuke. Is off to increase TPS"); + spawnFire = spawnFireP.getBoolean(); //Whether fallout and nuclear radiation is enabled at all Property disableNuclearP = config.get(CATEGORY_NUKE, "6.06_disableNuclear", false); disableNuclearP.setComment("Disable the nuclear part of nukes"); disableNuclear = disableNuclearP.getBoolean(); - } + enableNukeClouds = config.get(CATEGORY_NUKE, "6.07_enableMushroomClouds", true).getBoolean(true); + + } } diff --git a/src/main/java/com/hbm/config/CompatibilityConfig.java b/src/main/java/com/hbm/config/CompatibilityConfig.java index d948a545ac..df979c2b06 100644 --- a/src/main/java/com/hbm/config/CompatibilityConfig.java +++ b/src/main/java/com/hbm/config/CompatibilityConfig.java @@ -3,12 +3,14 @@ import java.util.HashMap; import java.util.HashSet; +import net.minecraft.world.World; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; public class CompatibilityConfig { public static HashMap dimensionRad; + public static HashSet bedrockOreBlacklist; public static HashMap uraniumSpawn; public static HashMap thoriumSpawn; @@ -77,7 +79,6 @@ public class CompatibilityConfig { public static HashMap capsuleStructure; public static HashMap broadcaster; public static HashMap minefreq; - public static HashMap radminefreq; public static HashMap radfreq; public static HashMap vaultfreq; public static HashMap arcticStructure; @@ -103,6 +104,10 @@ public class CompatibilityConfig { public static boolean doFillCraterWithWater = true; public static HashMap fillCraterWithWater; + public static boolean peaceDimensionsIsWhitelist = true; + public static HashSet peaceDimensions; + + public static void loadFromConfig(Configuration config) { final String CATEGORY_DIMRAD = "01_dimension_radiation"; @@ -112,37 +117,105 @@ public static void loadFromConfig(Configuration config) { final String CATEGORY_METEOR = "05_dimension_meteors"; final String CATEGORY_MOB = "06_mobs"; final String CATEGORY_NUKES = "07_nukes"; + final String CATEGORY_BORES = "08_bedrockOres"; String dimRadComment = "Amount of background radiation in the dimension in Rad/s - (Int:Float)"; - dimensionRad = CommonConfig.createConfigHashMap(config, CATEGORY_DIMRAD, "01.01_dimensionRadiation", dimRadComment, "Int", "Float", new String[]{ "0:0.0", "-1:0.666", "1:0.001", "-28:0.245", "-27:0.0288", "-26:0.0288", "-29:0.0212", "-30:10", "-31:0.1" }, ":"); + dimensionRad = CommonConfig.createConfigHashMap(config, CATEGORY_DIMRAD, "01.01_dimensionRadiation", dimRadComment, "Int", "Float", new String[]{ + "-1:0.666", //Nether + "1:0.01", //End + + "-13:2.5", //Mercury + "-61:5", //Mercury - Orbit + "-60:5", //Mercury - Orbit (Static) + + "-27:0.05", //Earth - Orbit + "-26:0.05", //Earth - Orbit (Static) + + "-28:0.3", //Moon + + "-29:0.1", //Mars + "-67:0.15", //Mars - Orbit + "-66:0.15", //Mars - Orbit (Static) + + "-1502:0.3", //Phobos + "-1503:0.4", //Deimos + + "-30:1", //Asteroides + + "-31:0.05", //Venus + "-63:4", //Venus - Orbit + "-62:4", //Venus - Orbit (Static) + + "-20:5", //Ceres + "-65:5", //Ceres - Orbit + "-64:5", //Ceres - Orbit (Static) + + "-15:5", //Jupiter + "-69:20", //Jupiter - Orbit + "-68:20", //Jupiter - Orbit (Static) + + "-1500:6", //IO + "-1501:5", //Europa + "-1506:4.5", //Ganymede + "-1505:4", //Callisto + + "-16:6", //Saturn + "-71:16", //Saturn - Orbit + "-70:16", //Saturn - Orbit (Static) + + "-1507:4", //Rhea + "-1508:2", //Titan + "-1511:1", //Iapetus + + "-17:5", //Uranus + "-73:12", //Uranus - Orbit + "-72:12", //Uranus - Orbit (Static) + + "-1510:4", //Titania + "-1509:2", //Oberon + + "-18:4", //Neptune + "-75:8", //Neptune - Orbit + "-74:8", //Neptune - Orbit (Static) + + "-1504:1.5", //Triton + + "-19:0.3", //Pluto + "-77:0.3", //Pluto - Orbit + "-76:0.3", //Pluto - Orbit (Static) + + "-21:0.1", //Eris + "-79:0.1", //Eris - Orbit + "-78:0.1", //Eris - Orbit (Static) + }, ":"); //Ores - uraniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.01_uraniumSpawnrate", "Amount of uranium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7" }, ":"); - titaniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.02_titaniumSpawnrate", "Amount of titanium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:8" }, ":"); - sulfurSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.03_sulfurSpawnrate", "Amount of sulfur ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5" }, ":"); - aluminiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.04_aluminiumSpawnrate", "Amount of aluminium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7" }, ":"); - copperSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.05_copperSpawnrate", "Amount of copper ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:12" }, ":"); - fluoriteSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.06_fluoriteSpawnrate", "Amount of fluorite ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - niterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.07_niterSpawnrate", "Amount of niter ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - tungstenSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.08_tungstenSpawnrate", "Amount of tungsten ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:10" }, ":"); - leadSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.09_leadSpawnrate", "Amount of lead ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - berylliumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.10_berylliumSpawnrate", "Amount of beryllium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - thoriumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.11_thoriumSpawnrate", "Amount of thorium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7" }, ":"); - ligniteSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.12_ligniteSpawnrate", "Amount of lignite ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2" }, ":"); - asbestosSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.13_asbestosSpawnRate", "Amount of asbestos ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2" }, ":"); - lithiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.14_lithiumSpawnRate", "Amount of schist lithium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - rareSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.15_rareEarthSpawnRate", "Amount of rare earth ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6" }, ":"); - oilcoalSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.16_oilCoalSpawnRate", "Spawns an oily coal vein every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:128" }, ":"); - gassshaleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.17_gasShaleSpawnRate", "Amount of oil shale veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5" }, ":"); - explosivebubbleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.18_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:80" }, ":"); - gasbubbleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.19_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:40" }, ":"); - cinnebarSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.20_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:1" }, ":"); - cobaltSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.21_cobaltSpawnRate", "Amount of cobalt ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2" }, ":"); + uraniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.01_uraniumSpawnrate", "Amount of uranium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7", "-6:7" }, ":"); + titaniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.02_titaniumSpawnrate", "Amount of titanium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:8", "-6:8" }, ":"); + sulfurSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.03_sulfurSpawnrate", "Amount of sulfur ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5", "-6:5" }, ":"); + aluminiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.04_aluminiumSpawnrate", "Amount of aluminium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7", "-6:7" }, ":"); + copperSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.05_copperSpawnrate", "Amount of copper ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:12", "-6:12" }, ":"); + fluoriteSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.06_fluoriteSpawnrate", "Amount of fluorite ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + niterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.07_niterSpawnrate", "Amount of niter ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + tungstenSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.08_tungstenSpawnrate", "Amount of tungsten ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:10", "-6:10" }, ":"); + leadSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.09_leadSpawnrate", "Amount of lead ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + berylliumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.10_berylliumSpawnrate", "Amount of beryllium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + thoriumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.11_thoriumSpawnrate", "Amount of thorium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:7", "-6:7" }, ":"); + ligniteSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.12_ligniteSpawnrate", "Amount of lignite ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2", "-6:2" }, ":"); + asbestosSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.13_asbestosSpawnRate", "Amount of asbestos ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2", "-6:2" }, ":"); + lithiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.14_lithiumSpawnRate", "Amount of schist lithium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + rareSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.15_rareEarthSpawnRate", "Amount of rare earth ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:6", "-6:6" }, ":"); + oilcoalSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.16_oilCoalSpawnRate", "Spawns an oily coal vein every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:128", "-6:128" }, ":"); + gassshaleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.17_gasShaleSpawnRate", "Amount of oil shale veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5", "-6:5" }, ":"); + explosivebubbleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.18_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:80", "-6:80" }, ":"); + gasbubbleSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.19_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:40", "-6:40" }, ":"); + cinnebarSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.20_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:1", "-6:1" }, ":"); + cobaltSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.21_cobaltSpawnRate", "Amount of cobalt ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2", "-6:2" }, ":"); - ironClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.22_ironClusterSpawn", "Amount of iron cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:4" }, ":"); - titaniumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.23_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2" }, ":"); - aluminiumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_aluminiumClusterSpawn", "Amount of aluminium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3" }, ":"); - copperClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_copperClusterSpawn", "Amount of copper cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3" }, ":"); + ironClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.22_ironClusterSpawn", "Amount of iron cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:4", "-6:4" }, ":"); + titaniumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.23_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2", "-6:2" }, ":"); + aluminiumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_aluminiumClusterSpawn", "Amount of aluminium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3", "-6:3" }, ":"); + copperClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_copperClusterSpawn", "Amount of copper cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3", "-6:3" }, ":"); reiiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.25_reiiumSpawnRate", "Amount of reiium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-29:1" }, ":"); weidaniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.26_weidaniumSpawnRate", "Amount of weidanium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-31:1" }, ":"); @@ -151,7 +224,7 @@ public static void loadFromConfig(Configuration config) { unobtainiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.29_unobtainiumSpawnRate", "Amount of unobtainium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-28:1" }, ":"); daffergonSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.30_daffergonSpawnRate", "Amount of daffergon ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-30:1" }, ":"); - bedrockOilSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.31_bedrockOilSpawnRate", "Spawn bedrock oil every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:200" }, ":"); + bedrockOilSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.31_bedrockOilSpawnRate", "Spawn bedrock oil every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:200", "-6:200" }, ":"); netherUraniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "02.N00_uraniumSpawnrate", "Amount of nether uranium per chunk - (Int:Int)", "Int", "Int", new String[]{ "-1:8" }, ":"); netherTungstenSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "02.N01_tungstenSpawnrate", "Amount of nether tungsten per chunk - (Int:Int)", "Int", "Int", new String[]{ "-1:10" }, ":"); @@ -180,7 +253,6 @@ public static void loadFromConfig(Configuration config) { barrelStructure = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.13_barrelSpawn", "Spawn waste tank on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5000" }, ":"); broadcaster = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.14_broadcasterSpawn", "Spawn corrupt broadcaster on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5000" }, ":"); minefreq = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.15_landmineSpawn", "Spawn AP landmine on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:64" }, ":"); - radminefreq = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.16_sellafiteChunkSpawn", "Spawn sellafield block on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:128" }, ":"); radfreq = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.17_radHotsoptSpawn", "Spawn big radiation hotspot on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:5000" }, ":"); vaultfreq = CommonConfig.createConfigHashMap(config, CATEGORY_DIMSTRUC, "03.18_vaultSpawn", "Spawn locked safe on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2500" }, ":"); @@ -195,26 +267,154 @@ public static void loadFromConfig(Configuration config) { jungleStructure = CommonConfig.createConfigHashMap(config, CATEGORY_DUNGEON, "03.26_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2000" }, ":"); pyramidStructure = CommonConfig.createConfigHashMap(config, CATEGORY_DUNGEON, "03.27_pyramidSpawn", "Spawn pyramid on every nTH chunk - (Int:Int)", "Int", "Int", new String[]{ "0:4000" }, ":"); - meteorStrikeChance = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.01_meteorStrikeChance", "The probability of a meteor spawning per tick (an average of once every nTH ticks) - (Int:Int)", "Int", "Int", new String[]{ "0:"+20 * 60 * 60 * 5, "-28:"+20 * 60, "-27:"+20 * 60 * 10, "-26:"+20 * 60 * 10, "-29:"+20 * 60 * 13, "-30:"+20 * 60 * 1000, "-31:"+20 * 60 * 35 }, ":"); - meteorShowerChance = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.02_meteorShowerChance", "The probability of a meteor spawning during meteor shower per tick (an average of once every nTH ticks) - (Int:Int)", "Int", "Int", new String[]{ "0:"+20 * 60 * 15, "-28:"+20 * 60, "-27:"+20 * 60 * 10, "-26:"+20 * 60 * 10, "-29:"+20 * 60 * 13, "-30:"+20 * 60 * 1000, "-31:"+20 * 60 * 35 }, ":"); - meteorShowerDuration = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.03_meteorShowerDuration", "Max duration of meteor shower in ticks - (Int:Int)", "Int", "Int", new String[]{ "0:"+20 * 60 * 30, "-28:"+20 * 60 * 60, "-27:"+20 * 60 * 3, "-26:"+20 * 60 * 3, "-29:"+20 * 60 * 60, "-30:"+20*10, "-31:"+20 * 60 }, ":"); + meteorStrikeChance = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.01_meteorStrikeChance", "The probability of a meteor spawning per tick (an average of once every nTH ticks) - (Int:Int)", "Int", "Int", new String[]{ + "0:"+20 * 10 * 00 * 5, //Earth + "-28:"+20 * 10 * 5, //Moon + "-29:"+20 * 10 * 13, //Mars + "-31:"+20 * 10 * 60 * 15, //Venus + "-13:"+20 * 10 * 30, //Mercury + "-20:"+20 * 10 * 60 * 10, //Ceres + "-1500:"+20 * 10 * 3, //IO + "-1501:"+20 * 10 * 25, //Europa + "-1506:"+20 * 10 * 60, //Ganymede + "-1505:"+20 * 10 * 60 * 2, //Callisto + "-1507:"+20 * 10 * 6, //Rhea + "-1508:"+20 * 10 * 60 * 8, //Titan + "-1511:"+20 * 10 * 60 * 4, //Iapetus + "-1510:"+20 * 10 * 60 * 3, //Titania + "-1509:"+20 * 10 * 60 * 9, //Oberon + "-1504:"+20 * 10 * 60 * 20 //Triton + }, ":"); + meteorShowerChance = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.02_meteorShowerChance", "The probability of a meteor spawning during meteor shower per tick (an average of once every nTH ticks) - (Int:Int)", "Int", "Int", new String[]{ + "0:"+20 * 60 * 60 * 5, //Earth + "-28:"+20 * 60 * 5, //Moon + "-29:"+20 * 60 * 13, //Mars + "-31:"+20 * 60 * 60 * 15, //Venus + "-13:"+20 * 60 * 30, //Mercury + "-20:"+20 * 60 * 60 * 10, //Ceres + "-1500:"+20 * 60 * 3, //IO + "-1501:"+20 * 60 * 25, //Europa + "-1506:"+20 * 60 * 60, //Ganymede + "-1505:"+20 * 60 * 60 * 2, //Callisto + "-1507:"+20 * 60 * 6, //Rhea + "-1508:"+20 * 60 * 60 * 8, //Titan + "-1511:"+20 * 60 * 60 * 4, //Iapetus + "-1510:"+20 * 60 * 60 * 3, //Titania + "-1509:"+20 * 60 * 60 * 9, //Oberon + "-1504:"+20 * 60 * 60 * 20 //Triton + }, ":"); + meteorShowerDuration = CommonConfig.createConfigHashMap(config, CATEGORY_METEOR, "05.03_meteorShowerDuration", "Max duration of meteor shower in ticks - (Int:Int)", "Int", "Int", new String[]{ + "0:"+20 * 60 * 5, //Earth + "-28:"+20 * 5, //Moon + "-29:"+20 * 13, //Mars + "-31:"+20 * 60 * 15, //Venus + "-13:"+20 * 30, //Mercury + "-20:"+20 * 60 * 10, //Ceres + "-1500:"+20 * 3, //IO + "-1501:"+20 * 25, //Europa + "-1506:"+20 * 60, //Ganymede + "-1505:"+20 * 60 * 2, //Callisto + "-1507:"+20 * 6, //Rhea + "-1508:"+20 * 60 * 8, //Titan + "-1511:"+20 * 60 * 4, //Iapetus + "-1510:"+20 * 60 * 3, //Titania + "-1509:"+20 * 60 * 9, //Oberon + "-1504:"+20 * 60 * 20 //Triton + }, ":"); - String mobModRadComment = "Amount of radiation resistance the all mobs of that mod get. Radresistance s is calculated as s=(1-0.1^r). So a resistance value of 3.0 means that 99.9%=(1-0.1^3.0) of the radiation gets blocked. - (String:Float)"; - mobModRadresistance = CommonConfig.createConfigHashMap(config, CATEGORY_MOB, "06.01_mobModRadresistance", mobModRadComment, "String", "Float", new String[]{ "biomesoplenty=0.5" }, "="); - mobModRadimmune = CommonConfig.createConfigHashSet(config, CATEGORY_MOB, "06.02_mobModRadimmune", "List of mods whose entities should all be immune to radiation. - (String)", "String", new String[]{ "srparasites" }); + String mobModRadComment = "Amount of radiation resistance all the mobs of that mod get. Radresistance s is calculated as s=(1-0.1^r). So a resistance value of 3.0 means that 99.9%=(1-0.1^3.0) of the radiation gets blocked. - (String:Float)"; + mobModRadresistance = CommonConfig.createConfigHashMap(config, CATEGORY_MOB, "06.01_mob_Mod_Radresistance", mobModRadComment, "String", "Float", new String[]{ + "srparasites=0.2" + }, "="); + - String mobRadComment = "Amount of radiation resistance the mob gets. Radresistance s is calculated as s=(1-0.1^r). So a resistance value of 3.0 means that 99.9%=(1-0.1^3.0) of the radiation gets blocked. - (String:Float)"; - mobRadresistance = CommonConfig.createConfigHashMap(config, CATEGORY_MOB, "06.03_mobRadresistance", mobRadComment, "String", "Float", new String[]{ "biomesoplenty:entity.wasp=2.0" }, "="); - mobRadimmune = CommonConfig.createConfigHashSet(config, CATEGORY_MOB, "06.04_mobRadimmune", "List of mobs that are immune to radiation. - (String)", "String", new String[]{ "minecraft:entity.Slime", "minecraft:entity.Vex" }); + String mobRadComment = "Amount of radiation resistance the mob gets. Radresistance s is calculated as s=(1-0.1^r). So a resistance value of 3.0 means that 99.9%=(1-0.1^3.0) of the radiation gets blocked. - (String:Float)"; + mobRadresistance = CommonConfig.createConfigHashMap(config, CATEGORY_MOB, "06.02_mob_Radresistance", mobRadComment, "String", "Float", new String[]{ + "minecraft:parrot=0.5", + "minecraft:rabbit=1.0", + "techguns:ghastling=1.2", + "minecraft:enderman=1.5", + "minecraft:blaze=2.0", + "techguns:alienbug=2.2", + "minecraft:bat=2.5", + "minecraft:ghast=3.0", + "mutantbeasts:mutant_creeper=3.2", + "minecraft:squid=3.5", + "minecraft:spider=4.0", + "mutantbeasts:mutant_enderman=4.2", + "techguns:outcast=4.5", + "minecraft:cave_spider=5.0", + "minecraft:silverfish=6.0", + "techguns:stormtrooper=6.4", + "techguns:cyberdemon=6.5", + "minecraft:endermite=7.0", + "pvj:pvj_beach_starfish=7.5", + "pvj:pvj_clam=7.8", + "minecraft:shulker=8.0", + "pvj:pvj_starfish=8.2", + "techguns:attackhelicopter=8.5", + "minecraft:ender_dragon=9.0", + "pvj:pvj_snail=9.1", + "pvj:pvj_firefly=10.0", + "pvj:pvj_fly=11.0" + }, "="); + mobModRadimmune = CommonConfig.createConfigHashSet(config, CATEGORY_MOB, "06.03_mob_Mod_Radimmune", "List of mods whose entities should all be immune to radiation. - (String)", "String", new String[]{ + "biomesoplenty", + "galacticraftcore", + "galacticraftplanets", + "extraplanets" + }); + mobRadimmune = CommonConfig.createConfigHashSet(config, CATEGORY_MOB, "06.04_mob_Radimmune", "List of mobs that are immune to radiation. - (String)", "String", new String[]{ + "minecraft:magma_cube", + "minecraft:slime", + "minecraft:vex", + "minecraft:villager_golem", + "minecraft:snowman", + "minecraft:witch", + "pvj:pvj_icecube", + "tconstruct:blueslime", + "mutantbeasts:mutant_snow_golem", + "mutantbeasts:mutant_zombie", + "mutantbeasts:mutant_skeleton", + "techguns:zombieminer", + "techguns:zombiefarmer", + "techguns:zombiesoldier", + "techguns:zombiepigmansoldier", + "techguns:zombiepoliceman", + "techguns:skeletonsoldier", + "techguns:supermutantbasic", + "techguns:supermutantelite", + "techguns:supermutantheavy" + }); mobGear = CommonConfig.createConfigBool(config, CATEGORY_MOB, "06.05_mobGear", "If true then mobs will be given gear (armor/weapons/gasmasks) from this mod when spawned", true); modLoot = CommonConfig.createConfigBool(config, CATEGORY_MOB, "06.06_modLoot", "If true then this mod will generarte loot for chests", true); - doEvaporateWater = CommonConfig.createConfigBool(config, CATEGORY_NUKES, "07.01_doEvaporateWater", "If true then nukes will evaporate water in range if it is in a wet place. It creates a short lagg spike instead of long medium lagg.", true); - evaporateWater = CommonConfig.createConfigHashSet(config, CATEGORY_NUKES, "07.02_evaporateWater", "List of dimIDs where nukes evaporate water in range. - (Int)", "Int", new String[]{ "0" }); doFillCraterWithWater = CommonConfig.createConfigBool(config, CATEGORY_NUKES, "07.04_doFillCraterWithWater", "If true then nukes will fill the crater with water if it is in a wet place. It creates a bit of lagg but looks better than without it.", true); fillCraterWithWater = CommonConfig.createConfigHashMap(config, CATEGORY_NUKES, "07.04_fillCraterWithWater", "Waterlevel per dimension which the nuke uses to fill the crater. {+n=>waterlevel height, 0=>dimension waterlevel, -n=> n blocks below dimension waterlevel } - (Int:Int)", "Int", "Int", new String[]{ "0:0" }, ":"); + + peaceDimensionsIsWhitelist = CommonConfig.createConfigBool(config, CATEGORY_NUKES, "07.05_peaceDimensionsIsWhitelist", "If true then the listed dimensions below are all peacefull. If false then the listed dimensions are the only ones where destruction happens.", true); + peaceDimensions = CommonConfig.createConfigHashSet(config, CATEGORY_BORES, "07.06_peaceDimensions", "List of Dimensions where block destruction and damage is disabled (Used for server lobbies/science servers/pvp arenas) - (Int)", "Int", new String[]{ + }); + + bedrockOreBlacklist = CommonConfig.createConfigHashSet(config, CATEGORY_BORES, "08.01_bedrockOreBlacklist", "List of OreDict entries that should not have bedrock ores - (String)", "String", new String[]{ + "oreTh232", + "oreThorium232", + "oreVolcanic", + "oreSteel" + }); + } + + public static boolean isWarDim(World world){ + return isWarDim(world.provider.getDimension()); + } + + public static boolean isWarDim(int dimID){ + if(peaceDimensionsIsWhitelist) + return !peaceDimensions.contains(dimID); + else + return peaceDimensions.contains(dimID); } } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 1b32665118..eac855e569 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -16,7 +16,8 @@ public class GeneralConfig { - public static boolean enableDebugMode = true; + public static boolean enableDebugMode = false; + public static boolean enableSkybox = true; public static boolean enableWelcomeMessage = true; public static int rfConversionRate = 1; public static boolean enableMycelium = false; @@ -26,7 +27,6 @@ public class GeneralConfig { public static boolean enableMines = true; public static boolean enableRad = true; public static boolean enableNITAN = true; - public static boolean enableNukeClouds = true; public static boolean enableAutoCleanup = false; public static boolean enableMeteorStrikes = true; public static boolean enableMeteorShowers = true; @@ -83,6 +83,7 @@ public class GeneralConfig { public static void loadFromConfig(Configuration config){ final String CATEGORY_GENERAL = "01_general"; enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false).getBoolean(false); + enableSkybox = config.get(CATEGORY_GENERAL, "1.00_enableSkybox", true).getBoolean(true); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false).getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false).getBoolean(false); enableDungeons = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true).getBoolean(true); @@ -90,7 +91,6 @@ public static void loadFromConfig(Configuration config){ enableMines = config.get(CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true).getBoolean(true); enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true).getBoolean(true); enableNITAN = config.get(CATEGORY_GENERAL, "1.07_enableNITANChestSpawn", true).getBoolean(true); - enableNukeClouds = config.get(CATEGORY_GENERAL, "1.08_enableMushroomClouds", true).getBoolean(true); enableAutoCleanup = config.get(CATEGORY_GENERAL, "1.09_enableAutomaticRadCleanup", false).getBoolean(false); enableMeteorStrikes = config.get(CATEGORY_GENERAL, "1.10_enableMeteorStrikes", true).getBoolean(true); enableMeteorShowers = config.get(CATEGORY_GENERAL, "1.11_enableMeteorShowers", true).getBoolean(true); @@ -117,6 +117,7 @@ public static void loadFromConfig(Configuration config){ useShaders = false; } useShaders = false; + useShaders2 = config.get(CATEGORY_GENERAL, "1.23_enableShaders2", false).getBoolean(false); Property ssg_anim = config.get(CATEGORY_GENERAL, "1.24_ssgAnimType", true); ssg_anim.setComment("Which supershotgun reload animation to use. True is Drillgon's animation, false is Bob's animation"); ssgAnim = ssg_anim.getBoolean(); @@ -146,7 +147,6 @@ public static void loadFromConfig(Configuration config){ jei = config.get(CATEGORY_GENERAL, "1.28_enableJei", true).getBoolean(true); changelog = config.get(CATEGORY_GENERAL, "1.28_enableChangelog", true).getBoolean(true); duckButton = config.get(CATEGORY_GENERAL, "1.28_enableDuckButton", true).getBoolean(true); - useShaders2 = config.get(CATEGORY_GENERAL, "1.29_enableShaders2", false).getBoolean(false); bloom = config.get(CATEGORY_GENERAL, "1.30_enableBloom", true).getBoolean(true); heatDistortion = config.get(CATEGORY_GENERAL, "1.30_enableHeatDistortion", true).getBoolean(true); @@ -207,5 +207,4 @@ public static void loadFromConfig(Configuration config){ enableBabyMode = false; } } - } diff --git a/src/main/java/com/hbm/config/MachineConfig.java b/src/main/java/com/hbm/config/MachineConfig.java index 908a984c10..c99a1ca351 100644 --- a/src/main/java/com/hbm/config/MachineConfig.java +++ b/src/main/java/com/hbm/config/MachineConfig.java @@ -66,8 +66,8 @@ public static void loadFromConfig(Configuration config) { oilPerDepositBlockMinDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(2, "oilPerDepositBlockMinDerrick"), "Controls how much crude oil at minimum is extracted per deposit block for Oil Derricks", 500); oilPerDepositBlockMaxExtraDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(3, "oilPerDepositBlockMaxExtraDerrick"), "Controls how much extra crude oil can be extracted per deposit block for Oil Derricks", 0); - gasPerDepositBlockMinDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(4, "gasPerDepositBlockMinDerrick"), "Controls how much natrual gas at minimum is extracted per deposit block for Oil Derricks", 100); - gasPerDepositBlockMaxExtraDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(5, "gasPerDepositBlockMaxExtraDerrick"), "Controls how much extra natrual gas can be extracted per deposit block for Oil Derricks", 401); + gasPerDepositBlockMinDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(4, "gasPerDepositBlockMinDerrick"), "Controls how much natural gas at minimum is extracted per deposit block for Oil Derricks", 100); + gasPerDepositBlockMaxExtraDerrick = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(5, "gasPerDepositBlockMaxExtraDerrick"), "Controls how much extra natural gas can be extracted per deposit block for Oil Derricks", 401); // Pumpjack settings delayPerOperationPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(6, "delayPerOperationPumpjack"), "Controls how much delay between extraction or drilling operations for Pumpjacks", 25); @@ -75,8 +75,8 @@ public static void loadFromConfig(Configuration config) { oilPerDepositBlockMinPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(8, "oilPerDepositBlockMinPumpjack"), "Controls how much crude oil at minimum is extracted per deposit block for Pumpjacks", 650); oilPerDepositBlockMaxExtraPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(9, "oilPerDepositBlockMaxExtraPumpjack"), "Controls how much extra crude oil can be extracted per deposit block for Pumpjacks", 0); - gasPerDepositBlockMinPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(10, "gasPerDepositBlockMinPumpjack"), "Controls how much natrual gas at minimum is extracted per deposit block for Pumpjacks", 110); - gasPerDepositBlockMaxExtraPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(11, "gasPerDepositBlockMaxExtraPumpjack"), "Controls how much extra natrual gas can be extracted per deposit block for Pumpjacks", 401); + gasPerDepositBlockMinPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(10, "gasPerDepositBlockMinPumpjack"), "Controls how much natural gas at minimum is extracted per deposit block for Pumpjacks", 110); + gasPerDepositBlockMaxExtraPumpjack = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(11, "gasPerDepositBlockMaxExtraPumpjack"), "Controls how much extra natural gas can be extracted per deposit block for Pumpjacks", 401); // Fracking tower settings delayPerOperationFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(12, "delayPerOperationFrackingTower"), "Controls how much delay between extraction or drilling operations for Fracking towers", 20); @@ -86,13 +86,13 @@ public static void loadFromConfig(Configuration config) { oilPerDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(16, "oilPerDepositBlockMinFrackingTower"), "Controls how much crude oil at minimum is extracted per deposit block for Fracking towers", 1000); oilPerDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(17, "oilPerDepositBlockMaxExtraFrackingTower"), "Controls how much extra crude oil can be extracted per deposit block for Fracking towers", 0); - gasPerDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(18, "gasPerDepositBlockMinFrackingTower"), "Controls how much natrual gas at minimum is extracted per deposit block for Fracking towers", 200); - gasPerDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(19, "gasPerDepositBlockMaxExtraFrackingTower"), "Controls how much extra natrual gas can be extracted per deposit block for Fracking towers", 401); + gasPerDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(18, "gasPerDepositBlockMinFrackingTower"), "Controls how much natural gas at minimum is extracted per deposit block for Fracking towers", 200); + gasPerDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(19, "gasPerDepositBlockMaxExtraFrackingTower"), "Controls how much extra natural gas can be extracted per deposit block for Fracking towers", 401); oilPerBedrockDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(20, "oilPerBedrockDepositBlockMinFrackingTower"), "Controls how much crude oil at minimum is extracted per bedrock deposit block for Fracking towers", 100); oilPerBedrockDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(21, "oilPerBedrockDepositBlockMaxExtraFrackingTower"), "Controls how much extra crude oil can be extracted per bedrock deposit block for Fracking towers", 0); - gasPerBedrockDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(22, "gasPerBedrockDepositBlockMinFrackingTower"), "Controls how much natrual gas at minimum is extracted per bedrock deposit block for Fracking towers", 10); - gasPerBedrockDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(23, "gasPerBedrockDepositBlockMaxExtraFrackingTower"), "Controls how much extra natrual gas can be extracted per bedrock deposit block for Fracking towers", 50); + gasPerBedrockDepositBlockMinFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(22, "gasPerBedrockDepositBlockMinFrackingTower"), "Controls how much natural gas at minimum is extracted per bedrock deposit block for Fracking towers", 10); + gasPerBedrockDepositBlockMaxExtraFrackingTower = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(23, "gasPerBedrockDepositBlockMaxExtraFrackingTower"), "Controls how much extra natural gas can be extracted per bedrock deposit block for Fracking towers", 50); uuMixerFluidRatio = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(24, "uuMixerFluidRatio"), "How much mB of UU-Matter is used per mB of output fluid", 100); uuMixerFluidListIsWhitelist = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, generateConfigName(25, "uuMixerFluidListIsWhitelist"), "If true then the follwing list of fluids is a whitelist. Otherwise it is a Blacklist", false); diff --git a/src/main/java/com/hbm/config/PotionConfig.java b/src/main/java/com/hbm/config/PotionConfig.java index c4dabe3be6..c6df7ddf1d 100644 --- a/src/main/java/com/hbm/config/PotionConfig.java +++ b/src/main/java/com/hbm/config/PotionConfig.java @@ -1,48 +1,29 @@ package com.hbm.config; +import java.util.HashSet; + import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; public class PotionConfig { - public static int taintID = 62; - public static int radiationID = 63; - public static int bangID = 64; - public static int mutationID = 65; - public static int radxID = 66; - public static int leadID = 67; - public static boolean doJumpBoost = true; public static int potionSickness = 0; - + public static HashSet potionBlacklist; + public static void loadFromConfig(Configuration config){ final String CATEGORY_POTION = "08_potion_effects"; - doJumpBoost = CommonConfig.createConfigBool(config, CATEGORY_POTION, "8.x_doJumpBoost", "Whether Servos and Armors should give Jumpboost", true); - Property propTaintID = config.get(CATEGORY_POTION, "8.00_taintPotionID", 62); - propTaintID.setComment("What potion ID the taint effect will have"); - taintID = propTaintID.getInt(); - Property propRadiationID = config.get(CATEGORY_POTION, "8.01_radiationPotionID", 63); - propRadiationID.setComment("What potion ID the radiation effect will have"); - radiationID = propRadiationID.getInt(); - Property propBangID = config.get(CATEGORY_POTION, "8.02_bangPotionID", 64); - propBangID.setComment("What potion ID the B93 timebomb effect will have"); - bangID = propBangID.getInt(); - Property propMutationID = config.get(CATEGORY_POTION, "8.03_mutationPotionID", 65); - propMutationID.setComment("What potion ID the taint mutation effect will have"); - mutationID = propMutationID.getInt(); - Property propRadxID = config.get(CATEGORY_POTION, "8.04_radxPotionID", 66); - propRadxID.setComment("What potion ID the Rad-X effect will have"); - radxID = propRadxID.getInt(); - Property propLeadID = config.get(CATEGORY_POTION, "8.05_leadPotionID", 67); - propLeadID.setComment("What potion ID the lead poisoning effect will have"); - leadID = propLeadID.getInt(); - - String s = CommonConfig.createConfigString(config, CATEGORY_POTION, "8.S0_potionSickness", "Valid configs include \"NORMAL\" and \"TERRARIA\", otherwise potion sickness is turned off", "OFF"); - + potionBlacklist = CommonConfig.createConfigHashSet(config, CATEGORY_POTION, "08.01_hazmatPotionBlacklist", "List of Potions that get blocked while wearing a hazmat suit with bacteria protection - (String)", "String", new String[]{ + "srparasites:coth", + "srparasites:viral" + }); + doJumpBoost = CommonConfig.createConfigBool(config, CATEGORY_POTION, "8.02_doJumpBoost", "Whether Servos and Armors should give Jumpboost", true); + String s = CommonConfig.createConfigString(config, CATEGORY_POTION, "8.03_potionSickness", "Valid configs include \"NORMAL\" and \"TERRARIA\", otherwise potion sickness is turned off", "OFF"); if("normal".equals(s.toLowerCase())) potionSickness = 1; if("terraria".equals(s.toLowerCase())) potionSickness = 2; + } } diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 734b4e3594..f23fbedd1f 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -15,11 +15,12 @@ public class RadiationConfig { public static int blocksFallCh = 100; //Drillgon200: Not sure why I put these here, but oh well. - public static int railgunDamage = 100; + public static int railgunDamage = 1000; public static int railgunBuffer = 500000000; public static int railgunUse = 250000000; public static int fireDuration = 4 * 20; public static boolean neutronActivation = true; + public static int neutronActivationThreshold = 15; public static int geigerX = 16; public static int geigerY = 2; @@ -66,11 +67,12 @@ public static void loadFromConfig(Configuration config) { fogCh = CommonConfig.setDef(RadiationConfig.fogCh, 20); neutronActivation = CommonConfig.createConfigBool(config, CATEGORY_RAD, "7.01_itemContamination", "Whether high radiation levels should radiate items in inventory", true); + neutronActivationThreshold = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.01_itemContaminationThreshold", "Minimum recieved Rads/s threshold at which items get irradiated", 15); geigerX = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.02_geigerX", "X Coordinate of the geiger counter gui (x=0 is on the right)", 16); geigerY = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.03_geigerY", "Y Coordinate of the geiger counter gui (y=0 is on the bottom)", 2); digammaX = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.04_digammaX", "X Coordinate of the digamma diagnostic gui (x=0 is on the right)", 16); - digammaY = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.05_digammaY", "Y Coordinate of the digamma diagnostic counter gui (y=0 is on the bottom)", 18); + digammaY = CommonConfig.createConfigInt(config, CATEGORY_RAD, "7.05_digammaY", "Y Coordinate of the digamma diagnostic gui (y=0 is on the bottom)", 18); } } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 81557ae0d1..6531f3f057 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -60,7 +60,6 @@ public class WorldConfig { public static int capsuleStructure = 100; public static int broadcaster = 5000; public static int minefreq = 64; - public static int radminefreq = 128; public static int radfreq = 5000; public static int vaultfreq = 2500; public static int arcticStructure = 500; @@ -131,7 +130,6 @@ public static void loadFromCompatibilityConfig() { barrelStructure = convertToInt(CompatibilityConfig.barrelStructure.get(0)); broadcaster = convertToInt(CompatibilityConfig.broadcaster.get(0)); minefreq = convertToInt(CompatibilityConfig.minefreq.get(0)); - radminefreq = convertToInt(CompatibilityConfig.radminefreq.get(0)); radfreq = convertToInt(CompatibilityConfig.radfreq.get(0)); vaultfreq = convertToInt(CompatibilityConfig.vaultfreq.get(0)); geyserWater = convertToInt(CompatibilityConfig.geyserWater.get(0)); diff --git a/src/main/java/com/hbm/crafting/handlers/SmallReactorFuelCraftingHandler.java b/src/main/java/com/hbm/crafting/handlers/SmallReactorFuelCraftingHandler.java new file mode 100644 index 0000000000..c9647b6793 --- /dev/null +++ b/src/main/java/com/hbm/crafting/handlers/SmallReactorFuelCraftingHandler.java @@ -0,0 +1,99 @@ +package com.hbm.crafting.handlers; + +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFuelRod; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; + +public class SmallReactorFuelCraftingHandler extends net.minecraftforge.registries.IForgeRegistryEntry.Impl implements IRecipe { + + /** + * The only rules for matching is that the item is fuel (meta and NBT don't matter) and that it's the only stack in the grid + */ + @Override + public boolean matches(InventoryCrafting inventory, World world) { + if(!hasExactlyOneStack(inventory)) + return false; + + ItemStack stack = getFirstStack(inventory); + + if(stack.getItem() instanceof ItemFuelRod){ + return ItemFuelRod.getLifeTime(stack) == 0; + } + return false; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inventory) { + if(!hasExactlyOneStack(inventory)) + return ItemStack.EMPTY; + + ItemStack stack = getFirstStack(inventory); + + if(stack.getItem() instanceof ItemFuelRod) { + if(ItemFuelRod.getLifeTime(stack) == 0){ + return ((ItemFuelRod)stack.getItem()).getUncrafting(); + } + } + + return ItemStack.EMPTY; + } + + @Override + public ItemStack getRecipeOutput() { + return ItemStack.EMPTY; + } + + private boolean hasExactlyOneStack(InventoryCrafting inventory) { + + boolean hasOne = false; + + for(int i = 0; i < 3; ++i) { + for(int j = 0; j < 3; ++j) { + + ItemStack stack = inventory.getStackInRowAndColumn(j, i); + + if(!stack.isEmpty()) { + + if(!hasOne) + hasOne = true; + else + return false; + } + } + } + + return hasOne; + } + + private ItemStack getFirstStack(InventoryCrafting inventory) { + + for(int i = 0; i < 3; ++i) { + for(int j = 0; j < 3; ++j) { + + ItemStack stack = inventory.getStackInRowAndColumn(j, i); + + if(stack != null && !stack.isEmpty()) { + return stack; + } + } + } + + return ItemStack.EMPTY; + } + + @Override + public boolean isDynamic(){ + return true; + } + + @Override + public boolean canFit(int width, int height){ + return width >= 1 && height >= 1; + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/effect/EntityBlackHole.java b/src/main/java/com/hbm/entity/effect/EntityBlackHole.java index ee4670325c..2f3e0b685e 100644 --- a/src/main/java/com/hbm/entity/effect/EntityBlackHole.java +++ b/src/main/java/com/hbm/entity/effect/EntityBlackHole.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Set; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.projectile.EntityRubble; import com.hbm.interfaces.IConstantRenderer; import com.hbm.items.ModItems; @@ -51,7 +52,10 @@ public boolean isImmuneToExplosions() { @Override public void onUpdate() { super.onUpdate(); - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } float size = this.dataManager.get(SIZE); if(!world.isRemote) { diff --git a/src/main/java/com/hbm/entity/effect/EntityCloudFleija.java b/src/main/java/com/hbm/entity/effect/EntityCloudFleija.java index cea2b59139..cfc837d469 100644 --- a/src/main/java/com/hbm/entity/effect/EntityCloudFleija.java +++ b/src/main/java/com/hbm/entity/effect/EntityCloudFleija.java @@ -1,5 +1,7 @@ package com.hbm.entity.effect; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.entity.Entity; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.nbt.NBTTagCompound; @@ -49,6 +51,10 @@ public float getBrightness() { } @Override public void onUpdate() { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } this.age++; this.world.spawnEntity(new EntityLightningBolt(this.world, this.posX, this.posY + 200, this.posZ, true)); diff --git a/src/main/java/com/hbm/entity/effect/EntityCloudFleijaRainbow.java b/src/main/java/com/hbm/entity/effect/EntityCloudFleijaRainbow.java index ec7576cfd1..6029796b15 100644 --- a/src/main/java/com/hbm/entity/effect/EntityCloudFleijaRainbow.java +++ b/src/main/java/com/hbm/entity/effect/EntityCloudFleijaRainbow.java @@ -1,5 +1,7 @@ package com.hbm.entity.effect; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.entity.Entity; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.nbt.NBTTagCompound; @@ -55,6 +57,10 @@ public EntityCloudFleijaRainbow(World p_i1582_1_, int maxAge) { @Override public void onUpdate() { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } this.age++; this.world.spawnEntity(new EntityLightningBolt(this.world, this.posX, this.posY + 200, this.posZ, true)); diff --git a/src/main/java/com/hbm/entity/effect/EntityCloudSolinium.java b/src/main/java/com/hbm/entity/effect/EntityCloudSolinium.java index 170a339869..41f9905b8d 100644 --- a/src/main/java/com/hbm/entity/effect/EntityCloudSolinium.java +++ b/src/main/java/com/hbm/entity/effect/EntityCloudSolinium.java @@ -1,5 +1,7 @@ package com.hbm.entity.effect; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.entity.Entity; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.nbt.NBTTagCompound; @@ -54,6 +56,10 @@ public float getBrightness() @Override public void onUpdate() { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } this.age++; this.world.spawnEntity(new EntityLightningBolt(this.world, this.posX, this.posY + 200, this.posZ, true)); diff --git a/src/main/java/com/hbm/entity/effect/EntityDrying.java b/src/main/java/com/hbm/entity/effect/EntityDrying.java deleted file mode 100644 index f99352f125..0000000000 --- a/src/main/java/com/hbm/entity/effect/EntityDrying.java +++ /dev/null @@ -1,238 +0,0 @@ -package com.hbm.entity.effect; - -import java.util.*; - -import com.hbm.config.BombConfig; -import com.hbm.config.RadiationConfig; -import com.hbm.config.CompatibilityConfig; -import com.hbm.interfaces.IConstantRenderer; -import com.hbm.render.amlfrom1710.Vec3; -import com.hbm.saveddata.AuxSavedData; - -//Chunkloading stuff -import java.util.ArrayList; -import java.util.List; -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.main.MainRegistry; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -import net.minecraft.util.math.ChunkPos; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockPos.MutableBlockPos; -import net.minecraft.world.World; - -public class EntityDrying extends Entity implements IConstantRenderer, IChunkLoader { - private static final DataParameter SCALE = EntityDataManager.createKey(EntityDrying.class, DataSerializers.VARINT); - public int revProgress; - public int radProgress; - public boolean done=false; - - public boolean dryingmode=true; - - private Ticket loaderTicket; - - - private int maxArea = 1; - private int areaProcessed = 0; - - private int speed = (int)(BombConfig.mk4/2F); - - private int xlast; - - private int waterLevel; - - public EntityDrying(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(4, 20); - this.ignoreFrustumCheck = false; - this.isImmuneToFire = true; - - this.waterLevel = getInt(CompatibilityConfig.fillCraterWithWater.get(world.provider.getDimension())); - if(this.waterLevel == 0){ - this.waterLevel = world.getSeaLevel(); - } else if(this.waterLevel < 0 && this.waterLevel > -world.getSeaLevel()){ - this.waterLevel = world.getSeaLevel() - this.waterLevel; - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ); - } - - @Override - public boolean isInRangeToRender3d(double x, double y, double z) { - return true; - } - - @Override - public boolean isInRangeToRenderDist(double distance) { - return true; - } - - public EntityDrying(World p_i1582_1_, int maxage) { - super(p_i1582_1_); - this.setSize(4, 20); - this.isImmuneToFire = true; - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); - this.dataManager.register(SCALE, Integer.valueOf(0)); - } - - @Override - public void init(Ticket ticket) { - if(!world.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkPos(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - @Override - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!world.isRemote && loaderTicket != null) - { - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ - 1)); - - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - - @Override - public void onUpdate() { - - if(!world.isRemote) { - int radius = getScale(); - int counter = 0; - - if(this.areaProcessed < this.maxArea && this.xlast < radius){ - for(int x = (int)(this.posX + this.xlast); x <= this.posX + radius; x++) { - for(int z = (int)(this.posZ - radius) ; z <= this.posZ + radius; z++) { - if(counter <= speed){ - this.dry(new MutableBlockPos(x, 0, z)); - this.areaProcessed+=1; - counter+=1; - }else{ - return; - } - } - this.xlast+=1; - } - }else{ - done=true; - this.setDead(); - if(RadiationConfig.rain > 0 && getScale() > 150) { - world.getWorldInfo().setRaining(true); - world.getWorldInfo().setThundering(true); - world.getWorldInfo().setRainTime(RadiationConfig.rain); - world.getWorldInfo().setThunderTime(RadiationConfig.rain); - AuxSavedData.setThunder(world, RadiationConfig.rain); - } - } - } - } - - private static int getInt(Object e){ - if(e == null) - return 0; - return (int)e; - } - - private void dry(MutableBlockPos pos) { - if(dryingmode){ - for(int y = 255; y > 1; y--) { - pos.setY(y); - if(!world.isAirBlock(pos)){ - Block b = world.getBlockState(pos).getBlock(); - if(b == Blocks.WATER || b == Blocks.FLOWING_WATER){ - world.setBlockToAir(pos); - } - } - } - } else { - if(CompatibilityConfig.doFillCraterWithWater && waterLevel > 1){ - for(int y = waterLevel-1; y > 1; y--) { - pos.setY(y); - if(world.isAirBlock(pos)){ - world.setBlockState(pos, Blocks.WATER.getDefaultState()); - } else if(world.getBlockState(pos).getBlock() == Blocks.FLOWING_WATER){ - world.setBlockState(pos, Blocks.WATER.getDefaultState()); - } - } - } - } - } - - - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - setScale(p_70037_1_.getInteger("scale")); - revProgress = p_70037_1_.getInteger("revProgress"); - radProgress = p_70037_1_.getInteger("radProgress"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setInteger("scale", getScale()); - p_70014_1_.setInteger("revProgress", revProgress); - p_70014_1_.setInteger("radProgress", radProgress); - - } - - public void setScale(int i) { - this.dataManager.set(SCALE, Integer.valueOf(i)); - this.maxArea = i * i * 8; - this.xlast = -i; - if(i > 150) - this.speed = (int)(BombConfig.mk4); - } - - public int getScale() { - - int scale = this.dataManager.get(SCALE); - - return scale == 0 ? 1 : scale; - } -} diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 2422812e53..d0a024d6a2 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -6,6 +6,7 @@ import com.hbm.config.BombConfig; import com.hbm.config.RadiationConfig; import com.hbm.config.VersatileConfig; +import com.hbm.config.CompatibilityConfig; import com.hbm.interfaces.IConstantRenderer; import com.hbm.render.amlfrom1710.Vec3; import com.hbm.saveddata.AuxSavedData; @@ -26,12 +27,15 @@ import net.minecraft.block.BlockSand; import net.minecraft.block.BlockDirt; import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockGrass; +import net.minecraft.block.BlockGravel; import net.minecraft.block.BlockOre; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.init.Blocks; import net.minecraft.block.Block; +import net.minecraft.block.BlockStone; import net.minecraft.block.BlockLog; import net.minecraft.block.BlockLeaves; import net.minecraft.block.material.Material; @@ -44,12 +48,15 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; +import net.minecraft.client.Minecraft; public class EntityFalloutRain extends Entity implements IConstantRenderer, IChunkLoader { private static final DataParameter SCALE = EntityDataManager.createKey(EntityFalloutRain.class, DataSerializers.VARINT); - public int revProgress; - public int radProgress; - public boolean done=false; + public boolean done = false; + public boolean doFallout = false; + public boolean doFlood = false; + public int waterLevel = 0; + public boolean spawnFire = false; private Ticket loaderTicket; @@ -65,16 +72,33 @@ public class EntityFalloutRain extends Entity implements IConstantRenderer, IChu private boolean firstTick = true; private final List chunksToProcess = new ArrayList<>(); private final List outerChunksToProcess = new ArrayList<>(); + private int falloutTickNumber = 0; - private static int tickDelayStatic = BombConfig.fChunkSpeed; - private int tickDelay = 0; + public EntityFalloutRain(World world) { + super(world); + this.setSize(4, 20); + this.ignoreFrustumCheck = false; + this.isImmuneToFire = true; + + this.waterLevel = getInt(CompatibilityConfig.fillCraterWithWater.get(world.provider.getDimension())); + if(this.waterLevel == 0){ + this.waterLevel = world.getSeaLevel(); + } else if(this.waterLevel < 0 && this.waterLevel > -world.getSeaLevel()){ + this.waterLevel = world.getSeaLevel() - this.waterLevel; + } + this.spawnFire = BombConfig.spawnFire; + } - public EntityFalloutRain(World p_i1582_1_) { + public EntityFalloutRain(World p_i1582_1_, int maxage) { super(p_i1582_1_); this.setSize(4, 20); - this.ignoreFrustumCheck = false; this.isImmuneToFire = true; + } + private static int getInt(Object e){ + if(e == null) + return 0; + return (int)e; } @Override @@ -92,12 +116,6 @@ public boolean isInRangeToRenderDist(double distance) { return true; } - public EntityFalloutRain(World p_i1582_1_, int maxage) { - super(p_i1582_1_); - this.setSize(4, 20); - this.isImmuneToFire = true; - } - @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); @@ -153,7 +171,7 @@ public void loadNeighboringChunks(int newChunkX, int newChunkZ) { private void gatherChunks() { Set chunks = new LinkedHashSet<>(); // LinkedHashSet preserves insertion order Set outerChunks = new LinkedHashSet<>(); - int outerRange = getScale(); + int outerRange = doFallout ? getScale() : fallingRadius; // Basically defines something like the step size, but as indirect proportion. The actual angle used for rotation will always end up at 360° for angle == adjustedMaxAngle // So yea, I mathematically worked out that 20 is a good value for this, with the minimum possible being 18 in order to reach all chunks int adjustedMaxAngle = 20 * outerRange / 32; // step size = 20 * chunks / 2 @@ -183,59 +201,69 @@ private void unloadAllChunks() { } } + public void stompAround(){ + if (!chunksToProcess.isEmpty()) { + long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { + stomp(new MutableBlockPos(x, 0, z), Math.hypot(x - posX, z - posZ)); + } + } + + } else if (!outerChunksToProcess.isEmpty()) { + long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { + double distance = Math.hypot(x - posX, z - posZ); + if(distance <= getScale()) { + stomp(new MutableBlockPos(x, 0, z), distance); + } + } + } + + } else { + setDead(); + } + } + @Override public void onUpdate() { if(!world.isRemote) { - if(firstTick) { - if (chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + } else if(firstTick) { + if(chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); firstTick = false; } - - - if(tickDelay == 0) { - tickDelay = tickDelayStatic; - - if (!chunksToProcess.isEmpty()) { - long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { - stomp(new MutableBlockPos(x, 0, z), Math.hypot(x - posX, z - posZ)); - } - } - - } else if (!outerChunksToProcess.isEmpty()) { - long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { - double distance = Math.hypot(x - posX, z - posZ); - if(distance <= getScale()) { - stomp(new MutableBlockPos(x, 0, z), distance); - } - } + if(falloutTickNumber >= BombConfig.fChunkSpeed){ + if(!this.isDead) { + long start = System.currentTimeMillis(); + while(!this.isDead && System.currentTimeMillis() < start + BombConfig.falloutMS){ + stompAround(); } - - } else { - setDead(); } + falloutTickNumber = 0; } - - tickDelay--; - + falloutTickNumber++; if(this.isDead) { unloadAllChunks(); this.done = true; - if(RadiationConfig.rain > 0 && getScale() > 150) { - world.getWorldInfo().setRaining(true); - world.getWorldInfo().setThundering(true); - world.getWorldInfo().setRainTime(RadiationConfig.rain); - world.getWorldInfo().setThunderTime(RadiationConfig.rain); - AuxSavedData.setThunder(world, RadiationConfig.rain); + if(RadiationConfig.rain > 0) { + if((doFallout && getScale() > 100) || (doFlood && getScale() > 50)){ + world.getWorldInfo().setRaining(true); + world.getWorldInfo().setRainTime(RadiationConfig.rain); + } + if((doFallout && getScale() > 150) || (doFlood && getScale() > 100)){ + world.getWorldInfo().setThundering(true); + world.getWorldInfo().setThunderTime(RadiationConfig.rain); + AuxSavedData.setThunder(world, RadiationConfig.rain); + } } } } @@ -260,7 +288,7 @@ private void letFall(World world, MutableBlockPos pos, int lastGapHeight, int co if(!b.isReplaceable(world, pos)){ float hardness = b.getExplosionResistance(null); - if(hardness >= 0 && hardness < 50 && i!=bottomHeight){ + if(hardness >= 0 && hardness < 50 && i != bottomHeight){ gapPos.setY(bottomHeight); world.setBlockState(gapPos, world.getBlockState(pos)); world.setBlockToAir(pos); @@ -270,14 +298,7 @@ private void letFall(World world, MutableBlockPos pos, int lastGapHeight, int co } } - - private void stomp(MutableBlockPos pos, double dist) { - if(dist > s0){ - if(world.rand.nextFloat() > 0.05F+(5F*(s0/dist)-4F)){ - return; - } - } - + private int[] doFallout(MutableBlockPos pos, double dist){ int stoneDepth = 0; int maxStoneDepth = 0; @@ -334,14 +355,13 @@ else if(dist <= s6) break; } - if(dist < s2 && bblock.isFlammable(world, pos, EnumFacing.UP)) { - if(world.isAirBlock(pos.add(0, 1, 0))) - world.setBlockState(pos.add(0, 1, 0), Blocks.FIRE.getDefaultState()); + if(spawnFire && dist < s2 && bblock.isFlammable(world, pos, EnumFacing.UP) && world.isAirBlock(pos.add(0, 1, 0))) { + world.setBlockState(pos.add(0, 1, 0), Blocks.FIRE.getDefaultState()); } if(bblock == ModBlocks.waste_leaves){ if(!(dist > s1 || (dist > fallingRadius && (world.rand.nextFloat() < (-5F*(fallingRadius/dist)+5F))))){ - world.setBlockState(pos, Blocks.AIR.getDefaultState(), 1); + world.setBlockToAir(pos); } continue; } @@ -351,7 +371,7 @@ else if(dist <= s6) world.setBlockState(pos, ModBlocks.waste_leaves.getDefaultState(), 1); } else { - world.setBlockState(pos, Blocks.AIR.getDefaultState(), 1); + world.setBlockToAir(pos); } continue; } @@ -371,43 +391,46 @@ else if(dist <= s6) continue; } - else if(bblock == Blocks.STONE) { - if(dist > s1 || stoneDepth==maxStoneDepth) - world.setBlockState(pos, ModBlocks.sellafield_slaked.getDefaultState()); - else if(dist > s2 || stoneDepth==maxStoneDepth-1) - world.setBlockState(pos, ModBlocks.sellafield_0.getDefaultState()); - else if(dist > s3 || stoneDepth==maxStoneDepth-2) - world.setBlockState(pos, ModBlocks.sellafield_1.getDefaultState()); - else if(dist > s4 || stoneDepth==maxStoneDepth-3) - world.setBlockState(pos, ModBlocks.sellafield_2.getDefaultState()); - else if(dist > s5 || stoneDepth==maxStoneDepth-4) - world.setBlockState(pos, ModBlocks.sellafield_3.getDefaultState()); - else if(dist > s6 || stoneDepth==maxStoneDepth-5) - world.setBlockState(pos, ModBlocks.sellafield_4.getDefaultState()); - else if(dist <= s6 || stoneDepth==maxStoneDepth-6) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + else if(bblock instanceof BlockStone || bblock == Blocks.COBBLESTONE) { + double ranDist = dist * (1D + world.rand.nextDouble()*0.1D); + if(ranDist > s1 || stoneDepth==maxStoneDepth) + world.setBlockState(pos, ModBlocks.sellafield_slaked.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s2 || stoneDepth==maxStoneDepth-1) + world.setBlockState(pos, ModBlocks.sellafield_0.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s3 || stoneDepth==maxStoneDepth-2) + world.setBlockState(pos, ModBlocks.sellafield_1.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s4 || stoneDepth==maxStoneDepth-3) + world.setBlockState(pos, ModBlocks.sellafield_2.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s5 || stoneDepth==maxStoneDepth-4) + world.setBlockState(pos, ModBlocks.sellafield_3.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s6 || stoneDepth==maxStoneDepth-5) + world.setBlockState(pos, ModBlocks.sellafield_4.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist <= s6 || stoneDepth==maxStoneDepth-6) + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); else break; continue; - } else if(bblock == Blocks.GRASS) { - world.setBlockState(pos, ModBlocks.waste_earth.getDefaultState()); + } else if(bblock instanceof BlockGrass) { + placeBlockFromDist(dist, ModBlocks.waste_earth, pos); continue; - } else if(bblock == Blocks.GRAVEL) { - world.setBlockState(pos, ModBlocks.waste_gravel.getDefaultState()); + } else if(bblock instanceof BlockGravel) { + placeBlockFromDist(dist, ModBlocks.waste_gravel, pos); continue; - } else if(bblock == Blocks.DIRT) { + } else if(bblock instanceof BlockDirt) { BlockDirt.DirtType meta = b.getValue(BlockDirt.VARIANT); if(meta == BlockDirt.DirtType.DIRT) - world.setBlockState(pos, ModBlocks.waste_dirt.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_dirt, pos); else if(meta == BlockDirt.DirtType.COARSE_DIRT) - world.setBlockState(pos, ModBlocks.waste_gravel.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_gravel, pos); else if(meta == BlockDirt.DirtType.PODZOL) - world.setBlockState(pos, ModBlocks.waste_mycelium.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_mycelium, pos); + continue; + } else if(bblock == Blocks.FARMLAND) { + placeBlockFromDist(dist, ModBlocks.waste_dirt, pos); continue; - } else if(bblock == Blocks.SNOW_LAYER) { world.setBlockState(pos, ModBlocks.fallout.getDefaultState()); continue; @@ -417,23 +440,33 @@ else if(meta == BlockDirt.DirtType.PODZOL) continue; } else if(bblock instanceof BlockBush) { if(world.getBlockState(pos.add(0, -1, 0)).getBlock() == Blocks.GRASS){ - world.setBlockState(pos.add(0, -1, 0), ModBlocks.waste_earth.getDefaultState()); - world.setBlockState(pos, ModBlocks.waste_grass_tall.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_earth, pos.add(0, -1, 0)); + placeBlockFromDist(dist, ModBlocks.waste_grass_tall, pos); } else if(world.getBlockState(pos.add(0, -1, 0)).getBlock() == Blocks.MYCELIUM){ - world.setBlockState(pos.add(0, -1, 0), ModBlocks.waste_mycelium.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_mycelium, pos.add(0, -1, 0)); world.setBlockState(pos, ModBlocks.mush.getDefaultState()); } continue; } else if(bblock == Blocks.MYCELIUM) { - world.setBlockState(pos, ModBlocks.waste_mycelium.getDefaultState()); + placeBlockFromDist(dist, ModBlocks.waste_mycelium, pos); + continue; + + } else if(bblock == Blocks.SANDSTONE) { + placeBlockFromDist(dist, ModBlocks.waste_sandstone, pos); continue; - } else if(bblock == Blocks.SAND) { + } else if(bblock == Blocks.RED_SANDSTONE) { + placeBlockFromDist(dist, ModBlocks.waste_sandstone_red, pos); + continue; + } else if(bblock == Blocks.HARDENED_CLAY || bblock == Blocks.STAINED_HARDENED_CLAY) { + placeBlockFromDist(dist, ModBlocks.waste_terracotta, pos); + continue; + } else if(bblock instanceof BlockSand) { BlockSand.EnumType meta = b.getValue(BlockSand.VARIANT); if(rand.nextInt(60) == 0) { - world.setBlockState(pos, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_trinitite.getDefaultState() : ModBlocks.waste_trinitite_red.getDefaultState()); + placeBlockFromDist(dist, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_trinitite : ModBlocks.waste_trinitite_red, pos); } else { - world.setBlockState(pos, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_sand.getDefaultState() : ModBlocks.waste_sand_red.getDefaultState()); + placeBlockFromDist(dist, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_sand : ModBlocks.waste_sand_red, pos); } continue; } @@ -484,27 +517,31 @@ else if(bmaterial == Material.WOOD && bblock != ModBlocks.waste_log) { continue; } else if(b.getBlock() == ModBlocks.sellafield_4) { - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); continue; } else if(b.getBlock() == ModBlocks.sellafield_3) { - world.setBlockState(pos, ModBlocks.sellafield_4.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_4.getStateFromMeta(world.rand.nextInt(4))); continue; } else if(b.getBlock() == ModBlocks.sellafield_2) { - world.setBlockState(pos, ModBlocks.sellafield_3.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_3.getStateFromMeta(world.rand.nextInt(4))); continue; } else if(b.getBlock() == ModBlocks.sellafield_1) { - world.setBlockState(pos, ModBlocks.sellafield_2.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_2.getStateFromMeta(world.rand.nextInt(4))); continue; } else if(b.getBlock() == ModBlocks.sellafield_0) { - world.setBlockState(pos, ModBlocks.sellafield_1.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_1.getStateFromMeta(world.rand.nextInt(4))); continue; } else if(b.getBlock() == ModBlocks.sellafield_slaked) { - world.setBlockState(pos, ModBlocks.sellafield_0.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_0.getStateFromMeta(world.rand.nextInt(4))); + continue; + } + else if(b.getBlock() == Blocks.VINE) { + world.setBlockToAir(pos); continue; } else if(bblock == ModBlocks.ore_uranium) { @@ -548,37 +585,164 @@ else if(bblock.getExplosionResistance(null) > 200){ break; } } - if(dist < fallingRadius && gapFound) - letFall(world, pos, lastGapHeight, contactHeight); + return new int[]{gapFound ? 1 : 0, lastGapHeight, contactHeight}; + } + + private int[] doNoFallout(MutableBlockPos pos, double dist){ + int stoneDepth = 0; + int maxStoneDepth = 6; + + boolean lastReachedStone = false; + boolean reachedStone = false; + int contactHeight = 420; + int lastGapHeight = 420; + boolean gapFound = false; + for(int y = 255; y >= 0; y--) { + pos.setY(y); + IBlockState b = world.getBlockState(pos); + Block bblock = b.getBlock(); + Material bmaterial = b.getMaterial(); + lastReachedStone = reachedStone; + + if(bblock.isCollidable() && contactHeight == 420) + contactHeight = Math.min(y+1, 255); + + if(reachedStone && bmaterial != Material.AIR){ + stoneDepth++; + } + else{ + reachedStone = b.getMaterial() == Material.ROCK; + } + if(reachedStone && stoneDepth > maxStoneDepth){ + break; + } + + if(bmaterial == Material.AIR || bmaterial.isLiquid()){ + if(y < contactHeight){ + gapFound = true; + lastGapHeight = y; + } + } + } + return new int[]{gapFound ? 1 : 0, lastGapHeight, contactHeight}; + } + + public void placeBlockFromDist(double dist, Block b, BlockPos pos){ + double ranDist = dist * (1D + world.rand.nextDouble()*0.2); + if(ranDist > s1) + world.setBlockState(pos, b.getStateFromMeta(0)); + else if(ranDist > s2) + world.setBlockState(pos, b.getStateFromMeta(1)); + else if(ranDist > s3) + world.setBlockState(pos, b.getStateFromMeta(2)); + else if(ranDist > s4) + world.setBlockState(pos, b.getStateFromMeta(3)); + else if(ranDist > s5) + world.setBlockState(pos, b.getStateFromMeta(4)); + else if(ranDist > s6) + world.setBlockState(pos, b.getStateFromMeta(5)); + else if(ranDist <= s6) + world.setBlockState(pos, b.getStateFromMeta(6)); + } + + private void flood(MutableBlockPos pos){ + if(CompatibilityConfig.doFillCraterWithWater && waterLevel > 1){ + for(int y = waterLevel-1; y > 1; y--) { + pos.setY(y); + if(world.isAirBlock(pos) || world.getBlockState(pos).getBlock() == Blocks.FLOWING_WATER){ + world.setBlockState(pos, Blocks.WATER.getDefaultState()); + } + } + } + } + + private void drain(MutableBlockPos pos){ + for(int y = 255; y > 1; y--) { + pos.setY(y); + if(!world.isAirBlock(pos) && (world.getBlockState(pos).getBlock() == Blocks.WATER || world.getBlockState(pos).getBlock() == Blocks.FLOWING_WATER)){ + world.setBlockToAir(pos); + } + } + } + + private void stomp(MutableBlockPos pos, double dist) { + if(dist > s0){ + if(world.rand.nextFloat() > 0.05F+(5F*(s0/dist)-4F)){ + return; + } + } + int[] gapData = null; + if(doFallout) + gapData = doFallout(pos, dist); + else + gapData = doNoFallout(pos, dist); + + if(dist < fallingRadius){ + if(gapData != null && gapData[0] == 1) + letFall(world, pos, gapData[1], gapData[2]); + if(doFlood) + flood(pos); + else + drain(pos); + } } @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - setScale(p_70037_1_.getInteger("scale"), p_70037_1_.getInteger("dropRadius")); - revProgress = p_70037_1_.getInteger("revProgress"); - radProgress = p_70037_1_.getInteger("radProgress"); + protected void readEntityFromNBT(NBTTagCompound nbt) { + setScale(nbt.getInteger("scale"), nbt.getInteger("dropRadius")); + if(nbt.hasKey("chunks")) + chunksToProcess.addAll(readChunksFromIntArray(nbt.getIntArray("chunks"))); + if(nbt.hasKey("outerChunks")) + outerChunksToProcess.addAll(readChunksFromIntArray(nbt.getIntArray("outerChunks"))); + doFallout = nbt.getBoolean("doFallout"); + doFlood = nbt.getBoolean("doFlood"); + } + + private Collection readChunksFromIntArray(int[] data) { + List coords = new ArrayList<>(); + boolean firstPart = true; + int x = 0; + for (int coord : data) { + if (firstPart) + x = coord; + else + coords.add(ChunkPos.asLong(x, coord)); + firstPart = !firstPart; + } + return coords; } @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setInteger("scale", getScale()); - p_70014_1_.setInteger("dropRadius", fallingRadius); - p_70014_1_.setInteger("revProgress", revProgress); - p_70014_1_.setInteger("radProgress", radProgress); + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("scale", getScale()); + nbt.setInteger("dropRadius", fallingRadius); + nbt.setBoolean("doFallout", doFallout); + nbt.setBoolean("doFlood", doFlood); + + nbt.setIntArray("chunks", writeChunksToIntArray(chunksToProcess)); + nbt.setIntArray("outerChunks", writeChunksToIntArray(outerChunksToProcess)); + } + private int[] writeChunksToIntArray(List coords) { + int[] data = new int[coords.size() * 2]; + for (int i = 0; i < coords.size(); i++) { + data[i * 2] = (int) (coords.get(i) & Integer.MAX_VALUE); + data[i * 2 + 1] = (int) (coords.get(i) >> 32 & Integer.MAX_VALUE); + } + return data; } public void setScale(int i, int craterRadius) { this.dataManager.set(SCALE, Integer.valueOf(i)); - this.s0 = 0.80D * i; - this.s1 = 0.75D * i; - this.s2 = 0.55D * i; - this.s3 = 0.25D * i; - this.s4 = 0.15D * i; - this.s5 = 0.08D * i; - this.s6 = 0.05D * i; + this.s0 = 0.8D * i; + this.s1 = 0.65D * i; + this.s2 = 0.5D * i; + this.s3 = 0.4D * i; + this.s4 = 0.3D * i; + this.s5 = 0.2D * i; + this.s6 = 0.1D * i; this.fallingRadius = craterRadius; } diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java b/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java index 4fcae82e8f..98e3063b55 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java @@ -4,19 +4,19 @@ import com.hbm.config.BombConfig; import com.hbm.config.RadiationConfig; import com.hbm.config.VersatileConfig; +import com.hbm.config.CompatibilityConfig; import com.hbm.interfaces.IConstantRenderer; import com.hbm.render.amlfrom1710.Vec3; import com.hbm.saveddata.AuxSavedData; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; //Chunkloading stuff import java.util.ArrayList; import java.util.List; + import com.hbm.entity.logic.IChunkLoader; import com.hbm.main.MainRegistry; import com.hbm.blocks.generic.WasteLog; + import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; @@ -27,7 +27,10 @@ import net.minecraft.block.BlockSand; import net.minecraft.block.BlockDirt; import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockGrass; +import net.minecraft.block.BlockGravel; import net.minecraft.block.Block; +import net.minecraft.block.BlockStone; import net.minecraft.block.BlockLog; import net.minecraft.block.BlockLeaves; import net.minecraft.block.state.IBlockState; @@ -150,16 +153,29 @@ public void loadNeighboringChunks(int newChunkX, int newChunkZ) { } } + private void unloadAllChunks() { + if(loaderTicket != null){ + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + @Override public void onUpdate() { if(!world.isRemote) { - ContaminationUtil.radiate(world, (int)posX, (int)posY, (int)posZ, radius, (float)Math.pow(radius, 2), 0); + if(!CompatibilityConfig.isWarDim(world)){ + this.done=true; + unloadAllChunks(); + this.setDead(); + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int rayCounter = 0; for(int sample = currentSample; sample < this.maxSamples; sample++){ this.currentSample = sample; - if(rayCounter > BombConfig.mk4){ + if(rayCounter > 2048){ break; } double fy = (2D * sample / (maxSamples - 1D)) - 1D; // y goes from 1 to -1 @@ -172,6 +188,7 @@ public void onUpdate() { if(this.currentSample >= this.maxSamples-1) { this.done=true; + unloadAllChunks(); this.setDead(); } } @@ -187,21 +204,22 @@ private void stompRadRay(MutableBlockPos pos, double directionX, double directio IBlockState b = world.getBlockState(pos); Block bblock = b.getBlock(); - if(bblock == Blocks.STONE) { - if(l > s1) - world.setBlockState(pos, ModBlocks.sellafield_slaked.getDefaultState()); - else if(l > s2) - world.setBlockState(pos, ModBlocks.sellafield_0.getDefaultState()); - else if(l > s3) - world.setBlockState(pos, ModBlocks.sellafield_1.getDefaultState()); - else if(l > s4) - world.setBlockState(pos, ModBlocks.sellafield_2.getDefaultState()); - else if(l > s5) - world.setBlockState(pos, ModBlocks.sellafield_3.getDefaultState()); - else if(l > s6) - world.setBlockState(pos, ModBlocks.sellafield_4.getDefaultState()); - else if(l <= s6) - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + if(bblock instanceof BlockStone || bblock == Blocks.COBBLESTONE) { + double ranDist = l * (1D + world.rand.nextDouble()*0.1D); + if(ranDist > s1) + world.setBlockState(pos, ModBlocks.sellafield_slaked.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s2) + world.setBlockState(pos, ModBlocks.sellafield_0.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s3) + world.setBlockState(pos, ModBlocks.sellafield_1.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s4) + world.setBlockState(pos, ModBlocks.sellafield_2.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s5) + world.setBlockState(pos, ModBlocks.sellafield_3.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist > s6) + world.setBlockState(pos, ModBlocks.sellafield_4.getStateFromMeta(world.rand.nextInt(4))); + else if(ranDist <= s6) + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); return; } else if(bblock == Blocks.BEDROCK || bblock == ModBlocks.ore_bedrock_oil || bblock == ModBlocks.ore_bedrock_block){ @@ -211,32 +229,31 @@ else if(l <= s6) } else if(bblock instanceof BlockLeaves) { if(l > s1){ world.setBlockState(pos, ModBlocks.waste_leaves.getDefaultState()); - } - else{ + }else{ world.setBlockToAir(pos); - world.scheduleBlockUpdate(pos, world.getBlockState(pos).getBlock(), 0, 2); } continue; - } else if(bblock instanceof BlockBush && world.getBlockState(pos.add(0, -1, 0)).getBlock() == Blocks.GRASS) { - world.setBlockState(pos.add(0, -1, 0), ModBlocks.waste_earth.getDefaultState()); - world.setBlockState(pos, ModBlocks.waste_grass_tall.getDefaultState()); + } else if(bblock instanceof BlockBush && world.getBlockState(pos.add(0, -1, 0)).getBlock() instanceof BlockGrass) { + placeBlockFromDist(l, ModBlocks.waste_earth, pos.add(0, -1, 0)); + placeBlockFromDist(l, ModBlocks.waste_grass_tall, pos); continue; - } else if(bblock == Blocks.GRASS) { - world.setBlockState(pos, ModBlocks.waste_earth.getDefaultState()); + } else if(bblock instanceof BlockGrass) { + placeBlockFromDist(l, ModBlocks.waste_earth, pos); return; - - } else if(bblock == Blocks.DIRT) { + } else if(bblock instanceof BlockDirt) { BlockDirt.DirtType meta = b.getValue(BlockDirt.VARIANT); if(meta == BlockDirt.DirtType.DIRT) - world.setBlockState(pos, ModBlocks.waste_dirt.getDefaultState()); + placeBlockFromDist(l, ModBlocks.waste_dirt, pos); else if(meta == BlockDirt.DirtType.COARSE_DIRT) - world.setBlockState(pos, ModBlocks.waste_gravel.getDefaultState()); + placeBlockFromDist(l, ModBlocks.waste_gravel, pos); else if(meta == BlockDirt.DirtType.PODZOL) - world.setBlockState(pos, ModBlocks.waste_mycelium.getDefaultState()); + placeBlockFromDist(l, ModBlocks.waste_mycelium, pos); return; - + } else if(bblock == Blocks.FARMLAND) { + placeBlockFromDist(l, ModBlocks.waste_dirt, pos); + continue; } else if(bblock == Blocks.SNOW_LAYER) { world.setBlockState(pos, ModBlocks.fallout.getDefaultState()); continue; @@ -246,19 +263,29 @@ else if(meta == BlockDirt.DirtType.PODZOL) continue; } else if(bblock == Blocks.MYCELIUM) { - world.setBlockState(pos, ModBlocks.waste_mycelium.getDefaultState()); + placeBlockFromDist(l, ModBlocks.waste_mycelium, pos); + return; + + } else if(bblock instanceof BlockGravel) { + placeBlockFromDist(l, ModBlocks.waste_gravel, pos); return; - } else if(bblock == Blocks.GRAVEL) { - world.setBlockState(pos, ModBlocks.waste_gravel.getDefaultState()); + } else if(bblock == Blocks.SANDSTONE) { + placeBlockFromDist(l, ModBlocks.waste_sandstone, pos); + return; + } else if(bblock == Blocks.RED_SANDSTONE) { + placeBlockFromDist(l, ModBlocks.waste_sandstone_red, pos); + return; + } else if(bblock == Blocks.HARDENED_CLAY || bblock == Blocks.STAINED_HARDENED_CLAY) { + placeBlockFromDist(l, ModBlocks.waste_terracotta, pos); return; - } else if(bblock == Blocks.SAND) { + } else if(bblock instanceof BlockSand) { BlockSand.EnumType meta = b.getValue(BlockSand.VARIANT); if(rand.nextInt(60) == 0) { - world.setBlockState(pos, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_trinitite.getDefaultState() : ModBlocks.waste_trinitite_red.getDefaultState()); + placeBlockFromDist(l, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_trinitite : ModBlocks.waste_trinitite_red, pos); } else { - world.setBlockState(pos, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_sand.getDefaultState() : ModBlocks.waste_sand_red.getDefaultState()); + placeBlockFromDist(l, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_sand : ModBlocks.waste_sand_red, pos); } return; @@ -301,6 +328,9 @@ else if(meta == BlockDirt.DirtType.PODZOL) if(l < s0) world.setBlockState(pos, ModBlocks.waste_planks.getDefaultState()); return; + } else if(b.getBlock() == Blocks.VINE) { + world.setBlockToAir(pos); + continue; } else if(bblock == ModBlocks.ore_uranium) { if(l <= s6){ @@ -339,7 +369,23 @@ else if(meta == BlockDirt.DirtType.PODZOL) } } - + public void placeBlockFromDist(double dist, Block b, BlockPos pos){ + double ranDist = dist * (1D + world.rand.nextDouble()*0.2); + if(ranDist > s1) + world.setBlockState(pos, b.getStateFromMeta(0)); + else if(ranDist > s2) + world.setBlockState(pos, b.getStateFromMeta(1)); + else if(ranDist > s3) + world.setBlockState(pos, b.getStateFromMeta(2)); + else if(ranDist > s4) + world.setBlockState(pos, b.getStateFromMeta(3)); + else if(ranDist > s5) + world.setBlockState(pos, b.getStateFromMeta(4)); + else if(ranDist > s6) + world.setBlockState(pos, b.getStateFromMeta(5)); + else if(ranDist <= s6) + world.setBlockState(pos, b.getStateFromMeta(6)); + } @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { @@ -355,13 +401,13 @@ protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { public void setScale(int i) { this.dataManager.set(SCALE, Integer.valueOf(i)); - s0 = 0.9 * i; - s1 = 0.75 * i; - s2 = 0.6 * i; - s3 = 0.4 * i; - s4 = 0.3 * i; - s5 = 0.2 * i; - s6 = 0.1 * i; + s0 = 0.84 * i; + s1 = 0.74 * i; + s2 = 0.64 * i; + s3 = 0.54 * i; + s4 = 0.44 * i; + s5 = 0.34 * i; + s6 = 0.24 * i; radius = i; maxSamples = (int)(Math.PI * Math.pow(i, 2)); } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java deleted file mode 100644 index 63007383b9..0000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.hbm.entity.effect; - -import com.hbm.interfaces.IConstantRenderer; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityNukeCloudBig extends Entity implements IConstantRenderer { - - public int maxAge = 1000; - public int age; - public float scale = 0; - public float ring = 0; - public float height = 0; - - public EntityNukeCloudBig(World worldIn) { - super(worldIn); - this.setSize(1, 80); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - scale = 0; - ring = 0; - height = 0; - } - - public EntityNukeCloudBig(World p_i1582_1_, int maxAge) { - super(p_i1582_1_); - this.setSize(20, 40); - this.isImmuneToFire = true; - this.maxAge = maxAge; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender() - { - return 15728880; - } - - @Override - public float getBrightness() - { - return 1.0F; - } - - @Override - public void onUpdate() { - this.age++; - this.world.spawnEntity(new EntityLightningBolt(this.world, this.posX, this.posY + 200, this.posZ, true)); - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); - } - ring += 0.1F; - - if(age < 150) - { - height = -60F + ((age - 100) * 60 / 50); - if(scale < 1.5) - { - scale += 0.02; - } - } - - if(age > 100) - { - if(scale < 1.5) - { - scale += 0.02; - } - } else { - scale = 0; - } - } - - @Override - protected void entityInit() { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound compound) { - if(compound.hasKey("age")) - age = compound.getInteger("age"); - if(compound.hasKey("maxage")) - maxAge = compound.getInteger("maxage"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound compound) { - compound.setInteger("age", age); - compound.setInteger("maxage", maxAge); - } - -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudNoShroom.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudNoShroom.java deleted file mode 100644 index 46f8b4dd2d..0000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudNoShroom.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.hbm.entity.effect; - -import net.minecraft.world.World; - -public class EntityNukeCloudNoShroom extends EntityNukeCloudSmall { - - public EntityNukeCloudNoShroom(World p_i1582_1_) { - super(p_i1582_1_, 100.0F); - } - - public EntityNukeCloudNoShroom(World p_i1582_1_, float radius) { - super(p_i1582_1_, radius); - } -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java deleted file mode 100644 index c408ac68de..0000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.entity.effect; - -import java.util.ArrayList; - -import com.hbm.interfaces.IConstantRenderer; -import com.hbm.render.amlfrom1710.Vec3; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityNukeCloudSmall extends Entity implements IConstantRenderer { - // 16 - public static final DataParameter AGE = EntityDataManager.createKey(EntityNukeCloudSmall.class, - DataSerializers.VARINT); - // 17 - public static final DataParameter MAXAGE = EntityDataManager.createKey(EntityNukeCloudSmall.class, - DataSerializers.VARINT); - // 18 - public static final DataParameter SCALE = EntityDataManager.createKey(EntityNukeCloudSmall.class, - DataSerializers.FLOAT); - // I really don't know. Some documentation would have been nice - // 19 - public static final DataParameter TYPE = EntityDataManager.createKey(EntityNukeCloudSmall.class, - DataSerializers.BYTE); - public int maxAge; - public int age; - public static int cloudletLife = 50; - public float sizeFactor = 1; - public ArrayList cloudlets = new ArrayList<>(); - - public EntityNukeCloudSmall(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(20, 40); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - this.maxAge = 275000; - } - - public EntityNukeCloudSmall(World p_i1582_1_, float radius) { - this(p_i1582_1_); - this.setSize(20, 40); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - - int maxLifetime = (int)Math.max(600, 0.25F * Math.pow(radius+16F, 2)); - - this.isImmuneToFire = true; - this.maxAge = maxLifetime; - this.sizeFactor = (float)(Math.pow(this.dataManager.get(SCALE), 2) / 15129); - this.dataManager.set(AGE, 0); - this.dataManager.set(SCALE, radius * 0.005F); - this.dataManager.set(MAXAGE, maxLifetime); - this.noClip = true; - } - - @Override - public void onUpdate() { - this.age++; - - if(this.age < 460F * this.sizeFactor){ - world.setLastLightningBolt(2); - } - - if (this.age >= maxAge) { - this.age = 0; - this.setDead(); - } - int cloudCount = age * 3; - - Vec3 vec = Vec3.createVectorHelper(age * 2, 0, 0); - - int toRem = 0; - - for(int i = 0; i < this.cloudlets.size(); i++) { - - if(age > cloudlets.get(i).age + cloudletLife) - toRem = i; - else - break; - } - - for(int i = 0; i < toRem; i++) - this.cloudlets.remove(0); - - if(age < 200) { - for(int i = 0; i < cloudCount; i++) { - vec.rotateAroundY((float)(Math.PI * 2 * world.rand.nextDouble())); - - this.cloudlets.add(new Cloudlet(vec.xCoord, world.getHeight((int) (vec.xCoord + posX), (int) (vec.zCoord + posZ)), vec.zCoord, age)); - } - } - - this.dataManager.set(AGE, age); - } - - @Override - protected void entityInit() { - this.dataManager.register(MAXAGE, maxAge); - this.dataManager.register(AGE, age); - this.dataManager.register(SCALE, 1.0F); - this.dataManager.register(TYPE, Byte.valueOf((byte) 0)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - if (nbt.hasKey("maxAge")) - maxAge = nbt.getShort("maxAge"); - if (nbt.hasKey("age")) - age = nbt.getShort("age"); - if (nbt.hasKey("scale")) - this.dataManager.set(SCALE, nbt.getFloat("scale")); - if(nbt.hasKey("type")) - this.dataManager.set(TYPE, nbt.getByte("type")); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("maxAge", (short) maxAge); - p_70014_1_.setShort("age", (short) age); - p_70014_1_.setFloat("scale", this.dataManager.get(SCALE)); - p_70014_1_.setByte("type", this.dataManager.get(TYPE)); - } - - public static EntityNukeCloudSmall statFac(World world, double x, double y, double z, float radius) { - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, radius); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.age = 0; - cloud.dataManager.set(AGE, 0); - cloud.dataManager.set(TYPE, (byte) 0); - cloud.sizeFactor = (float)(Math.pow(radius, 2) / 15129); - - return cloud; - } - - public static EntityNukeCloudSmall statFacBale(World world, double x, double y, double z, float radius) { - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, radius); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.age = 0; - cloud.dataManager.set(AGE, 0); - cloud.dataManager.set(TYPE, (byte) 1); - cloud.sizeFactor = (float)(Math.pow(radius, 2) / 15129); - - return cloud; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return distance < 2500000; - } - - public static class Cloudlet { - - public double posX; - public double posY; - public double posZ; - public int age; - - public Cloudlet(double posX, double posY, double posZ, int age) { - this.posX = posX; - this.posY = posY; - this.posZ = posZ; - this.age = age; - } - } -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java new file mode 100644 index 0000000000..88d8b6babd --- /dev/null +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -0,0 +1,594 @@ +package com.hbm.entity.effect; + +import java.util.ArrayList; + +import com.hbm.interfaces.IConstantRenderer; +import com.hbm.render.amlfrom1710.Vec3; + +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.datasync.DataParameter; +import net.minecraft.network.datasync.DataSerializers; +import net.minecraft.network.datasync.EntityDataManager; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; + +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +/* + * Toroidial Convection Simulation Explosion Effect + * Tor Ex + */ +public class EntityNukeTorex extends Entity implements IConstantRenderer { + + public static final DataParameter SCALE = EntityDataManager.createKey(EntityNukeTorex.class, DataSerializers.FLOAT); + public static final DataParameter AGE = EntityDataManager.createKey(EntityNukeTorex.class, DataSerializers.VARINT); + public static final DataParameter TYPE = EntityDataManager.createKey(EntityNukeTorex.class, DataSerializers.BYTE); + + public static final int firstCondenseHeight = 130; + public static final int secondCondenseHeight = 170; + public static final int blastWaveHeadstart = 5; + public static final int maxCloudlets = 18_000; + + //Nuke colors + public static final double nr1 = 2.5; + public static final double ng1 = 1.3; + public static final double nb1 = 0.4; + public static final double nr2 = 0.1; + public static final double ng2 = 0.075; + public static final double nb2 = 0.05; + + //Balefire colors + public static final double br1 = 1; + public static final double bg1 = 2; + public static final double bb1 = 0.5; + public static final double br2 = 0.1; + public static final double bg2 = 0.1; + public static final double bb2 = 0.1; + + public double coreHeight = 3; + public double convectionHeight = 3; + public double torusWidth = 3; + public double rollerSize = 1; + public double heat = 1; + public double lastSpawnY = -1; + public ArrayList cloudlets = new ArrayList(); + public int maxAge = 1000; + public int age; + public float humidity = -1; + + public EntityNukeTorex(World p_i1582_1_) { + super(p_i1582_1_); + this.setSize(20F, 40F); + this.dataManager.set(AGE, 0); + this.isImmuneToFire = true; + this.ignoreFrustumCheck = true; + } + + @Override + protected void entityInit() { + this.dataManager.register(AGE, 0); + this.dataManager.register(SCALE, 1.0F); + this.dataManager.register(TYPE, Byte.valueOf((byte) 0)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + if (nbt.hasKey("age")) + this.dataManager.set(AGE, nbt.getInteger("age")); + if (nbt.hasKey("scale")) + setScale(nbt.getFloat("scale")); + if (nbt.hasKey("type")) + this.dataManager.set(TYPE, nbt.getByte("type")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("age", this.dataManager.get(AGE)); + nbt.setFloat("scale", this.dataManager.get(SCALE)); + nbt.setByte("type", this.dataManager.get(TYPE)); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + @Override + public void onUpdate() { + age = this.getAge(); + double s = this.getScale(); + double cs = 1.5; + + if(world.isRemote) { + + if(age == 1) this.setScale((float) s); + + if(humidity == -1) humidity = world.getBiome(this.getPosition()).getRainfall(); + + if(lastSpawnY == -1) { + lastSpawnY = posY - 3; + } + + int spawnTarget = Math.max(world.getHeight((int) Math.floor(posX), (int) Math.floor(posZ)) - 3, 1); + double moveSpeed = 0.5D; + + if(Math.abs(spawnTarget - lastSpawnY) < moveSpeed) { + lastSpawnY = spawnTarget; + } else { + lastSpawnY += moveSpeed * Math.signum(spawnTarget - lastSpawnY); + } + + // spawn mush clouds + double range = (torusWidth - rollerSize) * 0.5; + double simSpeed = getSimulationSpeed(); + int toSpawn = (int) Math.ceil(10 * simSpeed * simSpeed * Math.min(1, maxCloudlets/(double)cloudlets.size())); + int lifetime = Math.min((age * age) + 200, maxAge - age + 200); + + + for(int i = 0; i < toSpawn; i++) { + double x = posX + rand.nextGaussian() * range; + double z = posZ + rand.nextGaussian() * range; + Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); + cloud.setScale(2F + age * 0.0025F * (float) s, 2F + age * 0.0025F * 6F * (float) (cs * s)); + cloudlets.add(cloud); + } + + if(age < 120 * s){ + world.setLastLightningBolt(2); + } + + // spawn shock clouds + if(age < 150) { + + int cloudCount = Math.min(age * 2, 100); + int shockLife = Math.max(400 - age * 20, 50); + + for(int i = 0; i < cloudCount; i++) { + Vec3 vec = Vec3.createVectorHelper((age + rand.nextDouble() * 2)*1.5, 0, 0); + float rot = (float) (Math.PI * 2 * rand.nextDouble()); + vec.rotateAroundY(rot); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, world.getHeight((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife, TorexType.SHOCK) + .setScale((float)s * 5F, (float)s * 2F).setMotion(MathHelper.clamp(0.25 * age - 5, 0, 1))); + } + } + + // spawn ring clouds + if(age < 200) { + lifetime *= s; + for(int i = 0; i < 2; i++) { + Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); + cloud.setScale(1F + age * 0.0025F * (float) (cs * s), 1F + age * 0.0025F * 5F * (float) (cs * s)); + cloudlets.add(cloud); + } + } + + if(this.humidity > 0){ + // spawn lower condensation clouds + spawnCondensationClouds(age, this.humidity, firstCondenseHeight, 80, 4, s, cs); + + // spawn upper condensation clouds + spawnCondensationClouds(age, this.humidity, secondCondenseHeight, 80, 2, s, cs); + } + + for(Cloudlet cloud : cloudlets) { + cloud.update(); + } + + coreHeight += 0.15/* * s*/; + torusWidth += 0.05/* * s*/; + rollerSize = torusWidth * 0.35; + convectionHeight = coreHeight + rollerSize; + + int maxHeat = (int) (50 * s); + heat = maxHeat - Math.pow((maxHeat * age) / maxAge, 0.6); + + cloudlets.removeIf(x -> x.isDead); + } + + if(!world.isRemote && age > maxAge) { + this.setDead(); + } + setAge(age+1); + } + + public void spawnCondensationClouds(int age, float humidity, int height, int count, int spreadAngle, double s, double cs){ + if((posY + age) > height && age < 220) { + + for(int i = 0; i < (int)(5 * humidity * count/(double)spreadAngle); i++) { + for(int j = 1; j < spreadAngle; j++) { + float angle = (float) (Math.PI * 2 * rand.nextDouble()); + Vec3 vec = Vec3.createVectorHelper(0, age, 0); + vec.rotateAroundZ((float)Math.acos((height-posY)/(age))+(float)Math.toRadians(humidity*humidity*90*j*(0.1*rand.nextDouble()-0.05))); + vec.rotateAroundY(angle); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + vec.yCoord, posZ + vec.zCoord, angle, 0, (int) ((20 + age / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(3F * (float) (cs * s), 4F * (float) (cs * s)); + cloudlets.add(cloud); + } + } + } + } + + public void setAge(int age) { + this.dataManager.set(AGE, age); + } + + public EntityNukeTorex setScale(float scale) { + if(!world.isRemote) + this.dataManager.set(SCALE, scale); + this.coreHeight = this.coreHeight * scale; + this.convectionHeight = this.convectionHeight * scale; + this.torusWidth = this.torusWidth * scale; + this.rollerSize = this.rollerSize * scale; + this.maxAge = (int) (45 * 20 * scale); + return this; + } + + public EntityNukeTorex setType(int type) { + this.dataManager.set(TYPE, (byte) type); + return this; + } + + public int getAge() { + return this.dataManager.get(AGE); + } + + public double getScale() { + return this.dataManager.get(SCALE); + } + + public byte getType() { + return this.dataManager.get(TYPE); + } + + public double getSimulationSpeed() { + + int simSlow = maxAge / 4; + int life = getAge(); + + if(life > maxAge) { + return 0D; + } + + if(life > simSlow) { + return 1D - ((double)(life - simSlow) / (double)(maxAge - simSlow)); + } + + return 1.0D; + } + + public float getAlpha() { + + int fadeOut = maxAge * 3 / 4; + int life = getAge(); + + if(life > fadeOut) { + float fac = (float)(life - fadeOut) / (float)(maxAge - fadeOut); + return 1F - fac; + } + + return 1.0F; + } + + public Vec3 getInterpColor(double interp, byte type) { + if(type == 0){ + return Vec3.createVectorHelper( + (nr2 + (nr1 - nr2) * interp), + (ng2 + (ng1 - ng2) * interp), + (nb2 + (nb1 - nb2) * interp)); + } + return Vec3.createVectorHelper( + (br2 + (br1 - br2) * interp), + (bg2 + (bg1 - bg2) * interp), + (bb2 + (bb1 - bb2) * interp)); + } + + public class Cloudlet { + + public double posX; + public double posY; + public double posZ; + public double prevPosX; + public double prevPosY; + public double prevPosZ; + public double motionX; + public double motionY; + public double motionZ; + public int age; + public int cloudletLife; + public float angle; + public boolean isDead = false; + float rangeMod = 1.0F; + public float colorMod = 1.0F; + public Vec3 color; + public Vec3 prevColor; + public TorexType type; + private float startingScale = 3F; + private float growingScale = 5F; + + public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge) { + this(posX, posY, posZ, angle, age, maxAge, TorexType.STANDARD); + } + + public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge, TorexType type) { + this.posX = posX; + this.posY = posY; + this.posZ = posZ; + this.age = age; + this.cloudletLife = maxAge; + this.angle = angle; + this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; + this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.type = type; + + this.updateColor(); + } + + private double motionMult = 1F; + private double motionConvectionMult = 0.5F; + private double motionLiftMult = 0.625F; + private double motionRingMult = 0.5F; + private double motionCondensationMult = 1F; + private double motionShockwaveMult = 1F; + + + private void update() { + age++; + + if(age > cloudletLife) { + this.isDead = true; + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); + double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); + double simPosZ = EntityNukeTorex.this.posZ + 0D; + + if(this.type == TorexType.STANDARD) { + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.RING) { + Vec3 motion = getRingMotion(simPosX, simPosZ); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } else if(this.type == TorexType.CONDENSATION) { + Vec3 motion = getCondensationMotion(); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } else if(this.type == TorexType.SHOCK) { + Vec3 motion = getShockwaveMotion(); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } + + double mult = this.motionMult * getSimulationSpeed(); + + this.posX += this.motionX * mult; + this.posY += this.motionY * mult; + this.posZ += this.motionZ * mult; + + this.updateColor(); + } + + private Vec3 getCondensationMotion() { + Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ).normalize(); + double speed = motionCondensationMult * EntityNukeTorex.this.getScale() * 0.125D; + delta.xCoord *= speed; + delta.yCoord = 0; + delta.zCoord *= speed; + return delta; + } + + private Vec3 getShockwaveMotion() { + Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ).normalize(); + double speed = motionShockwaveMult * EntityNukeTorex.this.getScale() * 0.25D; + delta.xCoord *= speed; + delta.yCoord = 0; + delta.zCoord *= speed; + return delta; + } + + private Vec3 getRingMotion(double simPosX, double simPosZ) { + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod * 0.25; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + double speed = motionRingMult * 0.5D; + motion.xCoord *= speed; + motion.yCoord *= speed; + motion.zCoord *= speed; + + return motion; + } + + /* simulated on a 2D-plane along the X/Y axis */ + private Vec3 getConvectionMotion(double simPosX, double simPosZ) { + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + motion.xCoord *= motionConvectionMult; + motion.yCoord *= motionConvectionMult; + motion.zCoord *= motionConvectionMult; + + return motion; + } + + private Vec3 getLiftMotion(double simPosX, double simPosZ) { + double scale = MathHelper.clamp(1D - (simPosX - (EntityNukeTorex.this.posX + torusWidth)), 0, 1) * motionLiftMult; + + Vec3 motion = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, (EntityNukeTorex.this.posY + convectionHeight) - this.posY, EntityNukeTorex.this.posZ - this.posZ); + + motion = motion.normalize(); + motion.xCoord *= scale; + motion.yCoord *= scale; + motion.zCoord *= scale; + + return motion; + } + + private void updateColor() { + this.prevColor = this.color; + + double exX = EntityNukeTorex.this.posX; + double exY = EntityNukeTorex.this.posY + EntityNukeTorex.this.coreHeight; + double exZ = EntityNukeTorex.this.posZ; + + double distX = exX - posX; + double distY = exY - posY; + double distZ = exZ - posZ; + + double distSq = distX * distX + distY * distY + distZ * distZ; + distSq /= this.type == TorexType.SHOCK ? EntityNukeTorex.this.heat * 3 : EntityNukeTorex.this.heat; + + double col = 2D / Math.max(distSq, 1); //col goes from 2-0 + + byte type = EntityNukeTorex.this.getType(); + + this.color = EntityNukeTorex.this.getInterpColor(col, type); + } + + public Vec3 getInterpPos(float interp) { + return Vec3.createVectorHelper( + prevPosX + (posX - prevPosX) * interp, + prevPosY + (posY - prevPosY) * interp, + prevPosZ + (posZ - prevPosZ) * interp); + } + + public Vec3 getInterpColor(float interp) { + + if(this.type == TorexType.CONDENSATION) { + return Vec3.createVectorHelper(1F, 1F, 1F); + } + + double greying = 0; + + if(this.type == TorexType.RING) { + greying += 0.05; + } + + return Vec3.createVectorHelper( + (prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp) + greying, + (prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp) + greying, + (prevColor.zCoord + (color.zCoord - prevColor.zCoord) * interp) + greying); + } + + public float getAlpha() { + float alpha = (1F - ((float)age / (float)cloudletLife)) * EntityNukeTorex.this.getAlpha(); + if(this.type == TorexType.CONDENSATION) alpha *= 0.25; + return MathHelper.clamp(alpha, 0.0001F, 1F); + } + + + public float getScale() { + return startingScale + ((float)age / (float)cloudletLife) * growingScale; + } + + public Cloudlet setScale(float start, float grow) { + this.startingScale = start; + this.growingScale = grow; + return this; + } + + public Cloudlet setMotion(double mult) { + this.motionMult = mult; + return this; + } + } + + public static enum TorexType { + STANDARD, + RING, + CONDENSATION, + SHOCK + } + + public static void statFac(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp(scale * 0.01F, 0.25F, 5F)); + torex.setPosition(x, y, z); + world.spawnEntity(torex); + } + + public static void statFacBale(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp(scale * 0.01F, 0.25F, 5F)).setType(1); + torex.setPosition(x, y, z); + world.spawnEntity(torex); + } +} diff --git a/src/main/java/com/hbm/entity/effect/EntityRagingVortex.java b/src/main/java/com/hbm/entity/effect/EntityRagingVortex.java index 4f98e5c2a5..ac290f1680 100644 --- a/src/main/java/com/hbm/entity/effect/EntityRagingVortex.java +++ b/src/main/java/com/hbm/entity/effect/EntityRagingVortex.java @@ -1,5 +1,7 @@ package com.hbm.entity.effect; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -20,7 +22,10 @@ public EntityRagingVortex(World world, float size) { @Override public void onUpdate() { - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } timer++; if(timer <= 20) diff --git a/src/main/java/com/hbm/entity/effect/EntityRainDrop.java b/src/main/java/com/hbm/entity/effect/EntityRainDrop.java deleted file mode 100644 index cd1d34692a..0000000000 --- a/src/main/java/com/hbm/entity/effect/EntityRainDrop.java +++ /dev/null @@ -1,330 +0,0 @@ -package com.hbm.entity.effect; - -import java.util.*; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.config.RadiationConfig; -import com.hbm.config.VersatileConfig; -import com.hbm.interfaces.IConstantRenderer; -import com.hbm.render.amlfrom1710.Vec3; -import com.hbm.saveddata.AuxSavedData; - -//Chunkloading stuff -import java.util.ArrayList; -import java.util.List; -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.main.MainRegistry; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -import net.minecraft.util.math.ChunkPos; - - -import net.minecraft.block.BlockHugeMushroom; -import net.minecraft.block.BlockSand; -import net.minecraft.block.BlockDirt; -import net.minecraft.block.BlockBush; -import net.minecraft.block.BlockOre; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityFallingBlock; -import net.minecraft.init.Blocks; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockPos.MutableBlockPos; -import net.minecraft.world.World; - -public class EntityRainDrop extends Entity implements IConstantRenderer, IChunkLoader { - private static final DataParameter SCALE = EntityDataManager.createKey(EntityRainDrop.class, DataSerializers.VARINT); - public int revProgress; - public int radProgress; - public boolean done=false; - - private Ticket loaderTicket; - - private double fallingRadius; - - private boolean firstTick = true; - private final List chunksToProcess = new ArrayList<>(); - private final List outerChunksToProcess = new ArrayList<>(); - - private static int tickDelayStatic = BombConfig.fChunkSpeed; - private int tickDelay = 0; - - public EntityRainDrop(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(4, 20); - this.ignoreFrustumCheck = false; - this.isImmuneToFire = true; - - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ); - } - - @Override - public boolean isInRangeToRender3d(double x, double y, double z) { - return true; - } - - @Override - public boolean isInRangeToRenderDist(double distance) { - return true; - } - - public EntityRainDrop(World p_i1582_1_, int maxage) { - super(p_i1582_1_); - this.setSize(4, 20); - this.isImmuneToFire = true; - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); - this.dataManager.register(SCALE, Integer.valueOf(0)); - } - - @Override - public void init(Ticket ticket) { - if(!world.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkPos(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - @Override - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!world.isRemote && loaderTicket != null) - { - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ - 1)); - - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - private void unloadAllChunks() { - if(loaderTicket != null){ - for(ChunkPos chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - } - } - - private void gatherChunks() { - Set chunks = new LinkedHashSet<>(); // LinkedHashSet preserves insertion order - Set outerChunks = new LinkedHashSet<>(); - int outerRange = getScale(); - // Basically defines something like the step size, but as indirect proportion. The actual angle used for rotation will always end up at 360° for angle == adjustedMaxAngle - // So yea, I mathematically worked out that 20 is a good value for this, with the minimum possible being 18 in order to reach all chunks - int adjustedMaxAngle = 20 * outerRange / 32; // step size = 20 * chunks / 2 - for (int angle = 0; angle <= adjustedMaxAngle; angle++) { - Vec3 vector = Vec3.createVectorHelper(outerRange, 0, 0); - vector.rotateAroundY((float) (angle * Math.PI / 180.0 / (adjustedMaxAngle / 360.0))); // Ugh, mutable data classes (also, ugh, radians; it uses degrees in 1.18; took me two hours to debug) - outerChunks.add(ChunkPos.asLong((int) (posX + vector.xCoord) >> 4, (int) (posZ + vector.zCoord) >> 4)); - } - for (int distance = 0; distance <= outerRange; distance += 8) for (int angle = 0; angle <= adjustedMaxAngle; angle++) { - Vec3 vector = Vec3.createVectorHelper(distance, 0, 0); - vector.rotateAroundY((float) (angle * Math.PI / 180.0 / (adjustedMaxAngle / 360.0))); - long chunkCoord = ChunkPos.asLong((int) (posX + vector.xCoord) >> 4, (int) (posZ + vector.zCoord) >> 4); - if (!outerChunks.contains(chunkCoord)) chunks.add(chunkCoord); - } - - chunksToProcess.addAll(chunks); - outerChunksToProcess.addAll(outerChunks); - Collections.reverse(chunksToProcess); // So it starts nicely from the middle - Collections.reverse(outerChunksToProcess); - } - - @Override - public void onUpdate() { - - if(!world.isRemote) { - if(firstTick) { - if (chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); - firstTick = false; - } - - - if(tickDelay == 0) { - tickDelay = tickDelayStatic; - - if (!chunksToProcess.isEmpty()) { - long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { - stomp(new MutableBlockPos(x, 0, z), Math.hypot(x - posX, z - posZ) * 100F / (float)getScale()); - } - } - - } else if (!outerChunksToProcess.isEmpty()) { - long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { - double distance = Math.hypot(x - posX, z - posZ); - if(distance <= getScale()) { - stomp(new MutableBlockPos(x, 0, z), distance * 100F / (float)getScale()); - } - } - } - - } else { - setDead(); - } - } - - tickDelay--; - - - if(this.isDead) { - unloadAllChunks(); - this.done = true; - if(RadiationConfig.rain > 0 && getScale() > 150) { - world.getWorldInfo().setRaining(true); - world.getWorldInfo().setThundering(true); - world.getWorldInfo().setRainTime(RadiationConfig.rain); - world.getWorldInfo().setThunderTime(RadiationConfig.rain); - AuxSavedData.setThunder(world, RadiationConfig.rain); - } - } - } - } - - private void letFall(World world, MutableBlockPos pos, int lastGapHeight, int contactHeight){ - int fallChance = RadiationConfig.blocksFallCh; - if(fallChance < 1) - return; - if(fallChance < 100){ - int chance = world.rand.nextInt(100); - if(chance < fallChance) - return; - } - - int bottomHeight = lastGapHeight; - MutableBlockPos gapPos = new MutableBlockPos(pos.getX(), 0, pos.getZ()); - - for(int i = lastGapHeight; i <= contactHeight; i++) { - pos.setY(i); - Block b = world.getBlockState(pos).getBlock(); - if(!b.isReplaceable(world, pos)){ - - float hardness = b.getExplosionResistance(null); - if(hardness > 0 && hardness < 10 && i!=bottomHeight){ - gapPos.setY(bottomHeight); - world.setBlockState(gapPos, world.getBlockState(pos)); - world.setBlockToAir(pos); - } - bottomHeight++; - } - } - } - - private void stomp(MutableBlockPos pos, double dist) { - int stoneDepth = 0; - int maxStoneDepth = 6; - - boolean lastReachedStone = false; - boolean reachedStone = false; - int contactHeight = 420; - int lastGapHeight = 420; - boolean gapFound = false; - for(int y = 255; y >= 0; y--) { - pos.setY(y); - IBlockState b = world.getBlockState(pos); - Block bblock = b.getBlock(); - Material bmaterial = b.getMaterial(); - lastReachedStone = reachedStone; - - if(bblock.isCollidable() && contactHeight == 420) - contactHeight = Math.min(y+1, 255); - - if(reachedStone && bmaterial != Material.AIR){ - stoneDepth++; - } - else{ - reachedStone = b.getMaterial() == Material.ROCK; - } - if(reachedStone && stoneDepth > maxStoneDepth){ - break; - } - - if(bmaterial == Material.AIR || bmaterial.isLiquid()){ - if(y < contactHeight){ - gapFound = true; - lastGapHeight = y; - } - } - } - if(gapFound) - letFall(world, pos, lastGapHeight, contactHeight); - } - - - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - setScale(p_70037_1_.getInteger("scale")); - revProgress = p_70037_1_.getInteger("revProgress"); - radProgress = p_70037_1_.getInteger("radProgress"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setInteger("scale", getScale()); - p_70014_1_.setInteger("revProgress", revProgress); - p_70014_1_.setInteger("radProgress", radProgress); - - } - - public void setScale(int i) { - this.dataManager.set(SCALE, Integer.valueOf(i+16)); - } - - public int getScale() { - - int scale = this.dataManager.get(SCALE); - - return scale == 0 ? 1 : scale; - } -} diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java index ce6c966b86..30df893de9 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java @@ -2,6 +2,7 @@ import org.apache.logging.log4j.Level; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.GeneralConfig; import com.hbm.main.MainRegistry; @@ -76,8 +77,11 @@ public void onUpdate() { } @Override - protected void onImpact(RayTraceResult p_70184_1_) - { + protected void onImpact(RayTraceResult p_70184_1_) { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if (p_70184_1_.entityHit != null) { byte b0 = 0; diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java index 01a47e61ac..3947eb7db9 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java @@ -4,6 +4,7 @@ import org.apache.logging.log4j.Level; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.GeneralConfig; import com.hbm.lib.HBMSoundHandler; import com.hbm.main.MainRegistry; @@ -180,6 +181,10 @@ public void onUpdate() { timer++; if (timer >= getMaxTimer() && !world.isRemote) { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } explode(); String s = "null"; @@ -331,119 +336,6 @@ public void moveBounce(double x, double y, double z) { } } - /*public void onUpdate() { - this.lastTickPosX = this.posX; - this.lastTickPosY = this.posY; - this.lastTickPosZ = this.posZ; - super.onUpdate(); - - // Bounce here - - boolean bounce = false; - Vec3d vec3 = new Vec3d(this.posX, this.posY, this.posZ); - Vec3d vec31 = new Vec3d(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - RayTraceResult movingobjectposition = this.world.rayTraceBlocks(vec3, vec31, false, true, true); - - if (movingobjectposition != null) { - vec31 = new Vec3d(movingobjectposition.hitVec.x, movingobjectposition.hitVec.y, movingobjectposition.hitVec.z); - - float mod = 0.6F; - this.posX += (movingobjectposition.hitVec.x - this.posX) * mod; - this.posY += (movingobjectposition.hitVec.y - this.posY) * mod; - this.posZ += (movingobjectposition.hitVec.z - this.posZ) * mod; - System.out.println(movingobjectposition.hitVec.y - this.posY); - switch (movingobjectposition.sideHit.getAxis()) { - case Y: - motionY *= -1; - break; - case Z: - motionZ *= -1; - break; - case X: - motionX *= -1; - break; - - } - - bounce = true; - - Vec3d mot = new Vec3d(motionX, motionY, motionZ); - if (mot.lengthVector() > 0.05) - world.playSound(null, this.posX, this.posY, this.posZ, HBMSoundHandler.grenadeBounce, SoundCategory.HOSTILE, 2.0F, 1.0F); - - motionX *= getBounceMod(); - motionY *= getBounceMod(); - motionZ *= getBounceMod(); - } - - // Bounce here [END] - - if (!bounce) { - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - System.out.println(motionY); - } - - float f1 = MathHelper.sqrt(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, (double) f1) * 180.0D / Math.PI); 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; - } - - this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; - float f2 = 0.99F; - - - if (this.isInWater()) { - for (int i = 0; i < 4; ++i) { - float f4 = 0.25F; - this.world.spawnParticle(EnumParticleTypes.WATER_BUBBLE, this.posX - this.motionX * (double) f4, this.posY - this.motionY * (double) f4, this.posZ - this.motionZ * (double) f4, this.motionX, this.motionY, this.motionZ); - } - - f2 = 0.8F; - } - - if (!bounce) { - this.motionX *= (double) f2; - this.motionY *= (double) f2; - this.motionZ *= (double) f2; - float f3 = this.getGravityVelocity(); - this.motionY -= (double) f3; - - } - - this.setPosition(this.posX, this.posY, this.posZ); - - timer++; - - if (timer >= getMaxTimer() && !world.isRemote) { - explode(); - - String s = "null"; - - if (thrower != null && thrower instanceof EntityPlayer) - s = ((EntityPlayer) thrower).getDisplayName().getUnformattedText(); - - if (MainRegistry.enableExtendedLogging) - MainRegistry.logger.log(Level.INFO, "[GREN] Set off grenade at " + ((int) posX) + " / " + ((int) posY) + " / " + ((int) posZ) + " by " + s + "!"); - } - }*/ - @Override protected void readEntityFromNBT(NBTTagCompound nbt) { timer = nbt.getInteger("timer"); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCluster.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCluster.java index 52afd561a0..5ef04ff736 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCluster.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCluster.java @@ -32,7 +32,7 @@ public void explode() { if (!this.world.isRemote) { this.setDead(); - ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 10, 50); + ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 10, 0.25); this.world.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeNuclear.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeNuclear.java index 641f9c93c7..5c76643003 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeNuclear.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeNuclear.java @@ -3,9 +3,8 @@ import java.util.Random; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; @@ -39,11 +38,11 @@ public void explode() { { this.setDead(); - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)BombConfig.fatmanRadius/2, posX + 0.5, posY + 0.5, posZ + 0.5)); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.nukaRadius, posX + 0.5, posY + 0.5, posZ + 0.5)); if(rand.nextInt(100) == 0){ - ExplosionParticleB.spawnMush(world, posX + 0.5, posY - 3, posZ + 0.5); + EntityNukeTorex.statFacBale(world, posX + 0.5, posY + 0.5, posZ + 0.5, BombConfig.nukaRadius); } else { - ExplosionParticle.spawnMush(world, posX + 0.5, posY - 3, posZ + 0.5); + EntityNukeTorex.statFac(world, posX + 0.5, posY + 0.5, posZ + 0.5, BombConfig.nukaRadius); } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBalefire.java b/src/main/java/com/hbm/entity/logic/EntityBalefire.java index abc924b7af..86ecfc863c 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBalefire.java +++ b/src/main/java/com/hbm/entity/logic/EntityBalefire.java @@ -1,8 +1,9 @@ package com.hbm.entity.logic; - import java.util.ArrayList; import java.util.List; + +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.logic.IChunkLoader; import com.hbm.main.MainRegistry; import net.minecraftforge.common.ForgeChunkManager; @@ -13,8 +14,8 @@ import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; +import com.hbm.util.ContaminationUtil; import com.hbm.explosion.ExplosionBalefire; -import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; @@ -45,7 +46,6 @@ protected void readEntityFromNBT(NBTTagCompound nbt) { exp.readFromNbt(nbt, "exp_"); this.did = true; - } @Override @@ -68,7 +68,10 @@ public EntityBalefire(World p_i1582_1_) { @Override public void onUpdate() { super.onUpdate(); - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if(!this.did) { if(GeneralConfig.enableExtendedLogging && !world.isRemote) @@ -99,7 +102,7 @@ public void onUpdate() { { if(!mute) this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.AMBIENT, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - ExplosionNukeGeneric.dealDamage(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2); + ContaminationUtil.radiate(this.world, this.posX, this.posY, this.posZ, this.destructionRange*2D, this.destructionRange*2000F, 0F, this.destructionRange*100F, this.destructionRange*500F); } age++; diff --git a/src/main/java/com/hbm/entity/logic/EntityBlast.java b/src/main/java/com/hbm/entity/logic/EntityBlast.java index 34248fa278..42beef34c3 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityBlast.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.RadiationConfig; import com.hbm.lib.ModDamageSource; import com.hbm.lib.Library; @@ -34,7 +35,10 @@ public EntityBlast(World p_i1582_1_) { public void onUpdate() { if(!world.isRemote) { - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } fire(); if(this.ticksExisted < exCount) { @@ -108,5 +112,4 @@ protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setFloat("exSize", this.exSize); nbt.setBoolean("exFire", this.exFire); } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 86375cfbbd..e7073ac492 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.GeneralConfig; import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBombletZeta; @@ -97,123 +98,115 @@ public boolean isBomberAlive(){ @Override public void onUpdate() { - //super.onUpdate(); - this.lastTickPosX = this.prevPosX = posX; - this.lastTickPosY = this.prevPosY = posY; - this.lastTickPosZ = this.prevPosZ = posZ; + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + + if(!world.isRemote) { + + this.getDataManager().set(HEALTH, health); + + if(health > 0) + PacketDispatcher.wrapper.sendToAll(new LoopedEntitySoundPacket(this.getEntityId())); + } else { + health = this.getDataManager().get(HEALTH); + } + + this.rotation(); + + if(this.health <= 0) { + motionY -= 0.025; + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } + for(int i = 0; i < 10; i++) + this.world.spawnEntity(new EntityGasFlameFX(this.world, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0)); + + if(world.getBlockState(new BlockPos((int)posX, (int)posY, (int)posZ)).isNormalCube() && !world.isRemote) { + this.setDead(); - if(!world.isRemote) { - - this.getDataManager().set(HEALTH, health); - - if(health > 0) - PacketDispatcher.wrapper.sendToAll(new LoopedEntitySoundPacket(this.getEntityId())); - } else { - health = this.getDataManager().get(HEALTH); - } + ExplosionLarge.explodeFire(world, posX, posY, posZ, 25, true, false, true); + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.planeCrash, SoundCategory.HOSTILE, 10.0F, 1.0F, true); - this.rotation(); + return; + } + } + + if(this.ticksExisted > timer) + this.setDead(); + + if(!world.isRemote && this.health > 0 && this.ticksExisted > bombStart && this.ticksExisted < bombStop && this.ticksExisted % bombRate == 0) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } + if(type == 3) { + + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F, true); + ExplosionChaos.spawnChlorine(world, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); - if(this.health <= 0) { - motionY -= 0.025; - - for(int i = 0; i < 10; i++) - this.world.spawnEntity(new EntityGasFlameFX(this.world, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0)); - - if(world.getBlockState(new BlockPos((int)posX, (int)posY, (int)posZ)).isNormalCube() && !world.isRemote) { - this.setDead(); - - /*worldObj.setBlock((int)posX, (int)posY, (int)posZ, ModBlocks.bomber); - TileEntityBomber te = (TileEntityBomber)worldObj.getTileEntity((int)posX, (int)posY, (int)posZ); - - if(te != null) { - te.yaw = (int)(this.rotationYaw); - te.pitch = (int)(this.rotationPitch); - - te.type = this.getDataWatcher().getWatchableObjectByte(16); - }*/ - - ExplosionLarge.explodeFire(world, posX, posY, posZ, 25, true, false, true); - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.planeCrash, SoundCategory.HOSTILE, 10.0F, 1.0F, true); - - return; - } - } + } else if(type == 5) { - if(this.ticksExisted > timer) - this.setDead(); + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.missileTakeoff, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); + EntityRocketHoming rocket = new EntityRocketHoming(world); + rocket.setIsCritical(true); + //rocket.motionX = motionX; + //rocket.motionZ = motionZ; + rocket.motionY = -1; + rocket.shootingEntity = this; + rocket.homingRadius = 50; + rocket.homingMod = 5; - if(!world.isRemote && this.health > 0 && this.ticksExisted > bombStart && this.ticksExisted < bombStop && this.ticksExisted % bombRate == 0) { - - if(type == 3) { - - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F, true); - ExplosionChaos.spawnChlorine(world, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); - - } else if(type == 5) { - - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.missileTakeoff, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); - EntityRocketHoming rocket = new EntityRocketHoming(world); - rocket.setIsCritical(true); - //rocket.motionX = motionX; - //rocket.motionZ = motionZ; - rocket.motionY = -1; - rocket.shootingEntity = this; - rocket.homingRadius = 50; - rocket.homingMod = 5; - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - world.spawnEntity(rocket); - - } else if(type == 6) { - - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.missileTakeoff, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); - EntityBoxcar rocket = new EntityBoxcar(world); - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - world.spawnEntity(rocket); - - } else if(type == 7) { - - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F, true); - ExplosionChaos.spawnChlorine(world, this.posX, world.getHeight((int)this.posX, (int)this.posZ) + 2, this.posZ, 10, 1, 2); - - } else { - - world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.bombWhistle, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); - - EntityBombletZeta zeta = new EntityBombletZeta(world); - /*zeta.prevRotationYaw = zeta.rotationYaw = this.rotationYaw; - zeta.prevRotationPitch = zeta.rotationPitch = this.rotationPitch;*/ - - zeta.rotation(); - - zeta.type = type; - - zeta.posX = posX + rand.nextDouble() - 0.5; - zeta.posY = posY - rand.nextDouble(); - zeta.posZ = posZ + rand.nextDouble() - 0.5; - - if(type == 0) { - zeta.motionX = motionX + rand.nextGaussian() * 0.15; - zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; - } else { - zeta.motionX = motionX; - zeta.motionZ = motionZ; - } - - world.spawnEntity(zeta); - } + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + + world.spawnEntity(rocket); + + } else if(type == 6) { + + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.missileTakeoff, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); + EntityBoxcar rocket = new EntityBoxcar(world); + + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + + world.spawnEntity(rocket); + + } else if(type == 7) { + + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F, true); + ExplosionChaos.spawnChlorine(world, this.posX, world.getHeight((int)this.posX, (int)this.posZ) + 2, this.posZ, 10, 1, 2); + + } else { + + world.playSound((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), HBMSoundHandler.bombWhistle, SoundCategory.HOSTILE, 10.0F, 0.9F + rand.nextFloat() * 0.2F, true); + + EntityBombletZeta zeta = new EntityBombletZeta(world); + + zeta.rotation(); + + zeta.type = type; + + zeta.posX = posX + rand.nextDouble() - 0.5; + zeta.posY = posY - rand.nextDouble(); + zeta.posZ = posZ + rand.nextDouble() - 0.5; + + if(type == 0) { + zeta.motionX = motionX + rand.nextGaussian() * 0.15; + zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; + } else { + zeta.motionX = motionX; + zeta.motionZ = motionZ; } + + world.spawnEntity(zeta); + } + } } public void fac(World world, double x, double y, double z) { diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index 7f8d4bfa40..9285b9d0d6 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -1,5 +1,6 @@ package com.hbm.entity.logic; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IConstantRenderer; @@ -30,29 +31,22 @@ public void onUpdate() { if(this.ticksExisted >= maxAge && !world.isRemote) { this.setDead(); - /*new ExplosionNT(worldObj, null, posX, posY, posZ, 35).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(worldObj, null, posX + 10, posY, posZ, 20).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(worldObj, null, posX - 10, posY, posZ, 20).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(worldObj, null, posX, posY, posZ + 10, 20).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(worldObj, null, posX, posY, posZ - 10, 20).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - - for(int k = 1; k < 6; k++) - new ExplosionNT(worldObj, null, posX, posY - k * 7, posZ, 20).addAllAttrib(ExplosionNT.nukeAttribs).explode();*/ - - world.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(world, 40, posX, posY, posZ).mute()); - - int count = 100; - for(int i = 0; i < count; i++) { - - Vec3 vec = Vec3.createVectorHelper(0.2, 0, 0); - vec.rotateAroundY((float)(2 * Math.PI * i / (float)count)); + if(CompatibilityConfig.isWarDim(world)){ + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, 40, posX, posY, posZ).mute()); - EntityBulletBase laser = new EntityBulletBase(world, BulletConfigSyncingUtil.MASKMAN_BOLT); - laser.setPosition(posX, posY + 2, posZ); - laser.motionX = vec.xCoord; - laser.motionZ = vec.zCoord; - laser.motionY = -0.01; - world.spawnEntity(laser); + int count = 100; + for(int i = 0; i < count; i++) { + + Vec3 vec = Vec3.createVectorHelper(0.2, 0, 0); + vec.rotateAroundY((float)(2 * Math.PI * i / (float)count)); + + EntityBulletBase laser = new EntityBulletBase(world, BulletConfigSyncingUtil.MASKMAN_BOLT); + laser.setPosition(posX, posY + 2, posZ); + laser.motionX = vec.xCoord; + laser.motionZ = vec.zCoord; + laser.motionY = -0.01; + world.spawnEntity(laser); + } } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/entity/logic/EntityEMP.java b/src/main/java/com/hbm/entity/logic/EntityEMP.java index ab0c28138f..503bce8406 100644 --- a/src/main/java/com/hbm/entity/logic/EntityEMP.java +++ b/src/main/java/com/hbm/entity/logic/EntityEMP.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.logic.IChunkLoader; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; @@ -39,6 +40,10 @@ public EntityEMP(World p_i1582_1_) { public void onUpdate() { if(!world.isRemote) { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if(machines == null) { allocate(); } else { diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 30a83fae5f..f150b239b6 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -6,11 +6,13 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.logic.IChunkLoader; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.lib.HBMSoundHandler; +import com.hbm.util.ContaminationUtil; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; @@ -25,9 +27,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityFalloutRain; import com.hbm.explosion.ExplosionFleija; -import com.hbm.explosion.ExplosionHurtUtil; import com.hbm.explosion.ExplosionNukeAdvanced; -import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionSolinium; import com.hbm.explosion.ExplosionDrying; import com.hbm.interfaces.Spaghetti; @@ -141,9 +141,13 @@ public EntityNukeExplosionMK3(World p_i1582_1_) { @Override public void onUpdate() { super.onUpdate(); - if(world.isRemote) return; + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } + if(!this.did) { if(GeneralConfig.enableExtendedLogging && !world.isRemote) @@ -197,9 +201,9 @@ public void onUpdate() { { this.world.playSound(this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.AMBIENT, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F, true); if(waste || extType != 1) { - ExplosionNukeGeneric.dealDamage(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2); + ContaminationUtil.radiate(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 1D, 0F, 0F, 0F, this.destructionRange * 2F, this.destructionRange); } else { - ExplosionHurtUtil.doRadiation(world, posX, posY, posZ, 15000, 250000, this.destructionRange); + ContaminationUtil.radiate(world, posX, posY, posZ, this.destructionRange, 250000F); } } else { if (!did2 && waste) { diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java deleted file mode 100644 index 1f87882ce3..0000000000 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ /dev/null @@ -1,310 +0,0 @@ -package com.hbm.entity.logic; - -import java.util.ArrayList; -import java.util.List; -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.entity.mob.EntityGlowingOne; -import com.hbm.main.MainRegistry; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -import net.minecraft.util.math.ChunkPos; - -import org.apache.logging.log4j.Level; - -import com.hbm.render.amlfrom1710.Vec3; -import com.hbm.config.BombConfig; -import com.hbm.config.GeneralConfig; -import com.hbm.config.CompatibilityConfig; -import com.hbm.entity.effect.EntityFalloutUnderGround; -import com.hbm.entity.effect.EntityFalloutRain; -import com.hbm.entity.effect.EntityRainDrop; -import com.hbm.entity.effect.EntityDrying; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.explosion.ExplosionNukeRay; -import com.hbm.main.MainRegistry; -import com.hbm.saveddata.RadiationSavedData; -import com.hbm.util.ContaminationUtil; - -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos.MutableBlockPos; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Biomes; -import net.minecraft.world.biome.Biome; -import net.minecraft.entity.Entity; -import net.minecraft.init.SoundEvents; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.SoundCategory; -import net.minecraft.world.World; -import net.minecraft.util.math.BlockPos; - -public class EntityNukeExplosionMK4 extends Entity implements IChunkLoader { - // Strength of the blast - public int radius; - // How many rays are calculated per tick - public int speed; - - public boolean mute = false; - - public boolean fallout = true; - private boolean floodPlease = false; - private int falloutAdd = 0; - private Ticket loaderTicket; - - ExplosionNukeRay explosion; - EntityFalloutUnderGround falloutBall; - EntityDrying dryingBomb; - EntityFalloutRain falloutRain; - EntityRainDrop rainDrop; - EntityDrying waterBomb; - - public EntityNukeExplosionMK4(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityNukeExplosionMK4(World world, int radius, int speed) { - super(world); - this.radius = radius; - this.speed = speed; - } - - @Override - public void onUpdate() { - if(radius == 0) { - this.setDead(); - return; - } - - if(!world.isRemote && fallout && falloutRain == null) { - RadiationSavedData.getData(world); - - // float radMax = (float) (length / 2F * Math.pow(length, 2) / 35F); - float radMax = Math.min((float) (Math.pow(radius, 2.5) * 17.5F), 1500000); - // System.out.println(radMax); - float rad = radMax / 10F; - RadiationSavedData.incrementRad(world, this.getPosition(), rad, radMax); - ContaminationUtil.radiate(world, this.posX, this.posY, this.posZ, radius*1.5, radMax * 0.1F); - EntityGlowingOne.convertInRadiusToGlow(world, this.posX, this.posY, this.posZ, radius*1.5); - } - - if(!mute) { - this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.AMBIENT, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - if(rand.nextInt(5) == 0) - this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.AMBIENT, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - } - ExplosionNukeGeneric.dealDamage(this.world, this.posX, this.posY, this.posZ, this.radius * 2); - - if(CompatibilityConfig.doEvaporateWater && dryingBomb == null){ - dryingBomb = new EntityDrying(this.world); - dryingBomb.posX = this.posX; - dryingBomb.posY = this.posY; - dryingBomb.posZ = this.posZ; - dryingBomb.setScale(this.radius+16); - this.world.spawnEntity(dryingBomb); - } - if(!CompatibilityConfig.doEvaporateWater || (CompatibilityConfig.doEvaporateWater && dryingBomb.done)){ - - if(explosion == null) { - - explosion = new ExplosionNukeRay(world, (int) this.posX, (int) this.posY, (int) this.posZ, this.radius); - } - if(!explosion.isAusf3Complete) { - explosion.collectTipMk6(speed); - } else if(explosion.getStoredSize() > 0) { - explosion.processTip(BombConfig.mk4); - } else if(fallout) { - if(falloutBall == null){ - falloutBall = new EntityFalloutUnderGround(this.world); - falloutBall.posX = this.posX; - falloutBall.posY = this.posY; - falloutBall.posZ = this.posZ; - falloutBall.setScale((int) (this.radius * (BombConfig.falloutRange / 100F) + falloutAdd)); - this.world.spawnEntity(falloutBall); - } - if(falloutBall.done){ - if(CompatibilityConfig.doFillCraterWithWater && floodPlease){ - if(waterBomb == null){ - waterBomb = new EntityDrying(this.world); - waterBomb.posX = this.posX; - waterBomb.posY = this.posY; - waterBomb.posZ = this.posZ; - waterBomb.dryingmode = false; - waterBomb.setScale(this.radius+18); - this.world.spawnEntity(waterBomb); - } else if(waterBomb.done){ - if(!explosion.isContained){ - falloutRain = new EntityFalloutRain(this.world); - falloutRain.posX = this.posX; - falloutRain.posY = this.posY; - falloutRain.posZ = this.posZ; - falloutRain.setScale((int) (this.radius * (1F+(BombConfig.falloutRange / 100F)) + falloutAdd), this.radius+4); - this.world.spawnEntity(falloutRain); - } - this.setDead(); - } - } else { - if(!explosion.isContained){ - falloutRain = new EntityFalloutRain(this.world); - falloutRain.posX = this.posX; - falloutRain.posY = this.posY; - falloutRain.posZ = this.posZ; - falloutRain.setScale((int) (this.radius * (1F+(BombConfig.falloutRange / 100F)) + falloutAdd), this.radius+4); - this.world.spawnEntity(falloutRain); - } - this.setDead(); - } - } - } else { - if(CompatibilityConfig.doFillCraterWithWater && floodPlease){ - if(waterBomb == null){ - waterBomb = new EntityDrying(this.world); - waterBomb.posX = this.posX; - waterBomb.posY = this.posY; - waterBomb.posZ = this.posZ; - waterBomb.dryingmode = false; - waterBomb.setScale(this.radius+18); - this.world.spawnEntity(waterBomb); - } else if(waterBomb.done){ - rainDrop = new EntityRainDrop(this.world); - rainDrop.posX = this.posX; - rainDrop.posY = this.posY; - rainDrop.posZ = this.posZ; - rainDrop.setScale((int)this.radius+16); - this.world.spawnEntity(rainDrop); - this.setDead(); - } - }else { - rainDrop = new EntityRainDrop(this.world); - rainDrop.posX = this.posX; - rainDrop.posY = this.posY; - rainDrop.posZ = this.posZ; - rainDrop.setScale((int)this.radius+16); - this.world.spawnEntity(rainDrop); - this.setDead(); - } - } - } - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); - } - - @Override - public void init(Ticket ticket) { - if(!world.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkPos(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - @Override - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!world.isRemote && loaderTicket != null) - { - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkPos(newChunkX, newChunkZ - 1)); - - for(ChunkPos chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - private static boolean isWet(World world, BlockPos pos){ - Biome b = world.getBiome(pos); - return b.getTempCategory() == Biome.TempCategory.OCEAN || b.isHighHumidity() || b == Biomes.BEACH || b == Biomes.OCEAN || b == Biomes.RIVER || b == Biomes.DEEP_OCEAN || b == Biomes.FROZEN_OCEAN || b == Biomes.FROZEN_RIVER || b == Biomes.STONE_BEACH || b == Biomes.SWAMPLAND; - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - - } - - public static EntityNukeExplosionMK4 statFac(World world, int r, double x, double y, double z) { - if(GeneralConfig.enableExtendedLogging && !world.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized explosion at " + x + " / " + y + " / " + z + " with radius " + r + "!"); - - if(r == 0) - r = 25; - - EntityNukeExplosionMK4 mk4 = new EntityNukeExplosionMK4(world); - mk4.radius = (int) (r); - mk4.speed = (int) 1000*BombConfig.mk4/r; - mk4.setPosition(x, y, z); - mk4.floodPlease = isWet(world, new BlockPos(x, y, z)); - if(BombConfig.disableNuclear) - mk4.fallout = false; - return mk4; - } - - public static EntityNukeExplosionMK4 statFacExperimental(World world, int r, double x, double y, double z) { - - if(GeneralConfig.enableExtendedLogging && !world.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized eX explosion at " + x + " / " + y + " / " + z + " with radius " + r + "!"); - - EntityNukeExplosionMK4 mk4 = new EntityNukeExplosionMK4(world); - mk4.radius = (int) (r); - mk4.speed = (int) 1000*BombConfig.mk4/r; - mk4.setPosition(x, y, z); - mk4.floodPlease = isWet(world, new BlockPos(x, y, z)); - if(BombConfig.disableNuclear) - mk4.fallout = false; - return mk4; - } - - public static EntityNukeExplosionMK4 statFacNoRad(World world, int r, double x, double y, double z) { - - if(GeneralConfig.enableExtendedLogging && !world.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized nR explosion at " + x + " / " + y + " / " + z + " with radius " + r + "!"); - - EntityNukeExplosionMK4 mk4 = new EntityNukeExplosionMK4(world); - mk4.radius = (int) (r); - mk4.speed = (int) 1000*BombConfig.mk4/r; - mk4.setPosition(x, y, z); - mk4.floodPlease = isWet(world, new BlockPos(x, y, z)); - mk4.fallout = false; - return mk4; - } - - public EntityNukeExplosionMK4 moreFallout(int fallout) { - falloutAdd = fallout; - return this; - } - - public EntityNukeExplosionMK4 mute() { - this.mute = true; - return this; - } -} diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java new file mode 100644 index 0000000000..60ba163c33 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -0,0 +1,295 @@ + +package com.hbm.entity.logic; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.config.BombConfig; +import com.hbm.config.CompatibilityConfig; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.mob.EntityGlowingOne; +import com.hbm.main.MainRegistry; + +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; +import net.minecraft.util.math.ChunkPos; + +import org.apache.logging.log4j.Level; + +import com.hbm.render.amlfrom1710.Vec3; +import com.hbm.config.BombConfig; +import com.hbm.config.GeneralConfig; +import com.hbm.config.CompatibilityConfig; +import com.hbm.util.ContaminationUtil; +import com.hbm.entity.effect.EntityFalloutUnderGround; +import com.hbm.entity.effect.EntityFalloutRain; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.ExplosionNukeRayBatched; +import com.hbm.main.MainRegistry; + +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos.MutableBlockPos; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Biomes; +import net.minecraft.world.biome.Biome; +import net.minecraft.entity.Entity; +import net.minecraft.init.SoundEvents; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.SoundCategory; +import net.minecraft.world.World; +import net.minecraft.util.math.BlockPos; + +public class EntityNukeExplosionMK5 extends Entity implements IChunkLoader { + //Strength of the blast + public int strength; + //How many rays are calculated per tick + public int speed; + public int radius; + + public boolean mute = false; + public boolean spawnFire = false; + + public boolean fallout = true; + private boolean floodPlease = false; + private int falloutAdd = 0; + private Ticket loaderTicket; + + ExplosionNukeRayBatched explosion; + EntityFalloutUnderGround falloutBall; + EntityFalloutRain falloutRain; + + private int nukeTickNumber = 0; + + + public EntityNukeExplosionMK5(World world) { + super(world); + } + + public EntityNukeExplosionMK5(World world, int strength, int speed, int radius) { + super(world); + this.strength = strength; + this.speed = speed; + this.radius = radius; + } + + @Override + public void onUpdate() { + if(strength == 0 || !CompatibilityConfig.isWarDim(world)) { + this.clearLoadedChunks(); + this.unloadMainChunk(); + this.setDead(); + return; + } + //load own chunk + loadMainChunk(); + + float rads = 0; + + //radiate until there is fallout rain + if(!world.isRemote && fallout && falloutRain == null) { + rads = 0.2F * (float)Math.pow(radius, 3) * (float)Math.pow(0.5, this.ticksExisted*0.025); + if(ticksExisted == 42) + EntityGlowingOne.convertInRadiusToGlow(world, this.posX, this.posY, this.posZ, radius * 1.5); + } + + ContaminationUtil.radiate(world, this.posX, this.posY, this.posZ, radius * 2, rads, 0F, (float)Math.pow(radius, 3) * (float)Math.pow(0.5, this.ticksExisted*0.0125), (float)Math.pow(radius, 3) * 0.01F, this.ticksExisted * 1.5F); + + //make some noise + if(!mute) { + if(this.radius > 15){ + this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.AMBIENT, this.radius * 0.05F, 0.8F + this.rand.nextFloat() * 0.2F); + }else{ + if(rand.nextInt(5) == 0) + this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.AMBIENT, this.radius * 0.05F, 0.8F + this.rand.nextFloat() * 0.2F); + } + } + + //Create Explosion Rays + if(explosion == null) { + explosion = new ExplosionNukeRayBatched(world, (int) this.posX, (int) this.posY, (int) this.posZ, this.strength, this.radius); + } + + //Calculating crater + if(!explosion.isAusf3Complete) { + explosion.collectTip(speed * 10); + + //Excecuting destruction + } else if(explosion.perChunk.size() > 0) { + if(nukeTickNumber >= BombConfig.nukeTickSpacing){ + long start = System.currentTimeMillis(); + while(explosion.perChunk.size() > 0 && System.currentTimeMillis() < start + BombConfig.mk5){ + explosion.processChunk(); + } + nukeTickNumber = 0; + } + nukeTickNumber++; + + } else { + boolean craterReady = true; + if(fallout) { + //Do radial Fallout + if(falloutBall == null){ + falloutBall = new EntityFalloutUnderGround(this.world); + falloutBall.posX = this.posX; + falloutBall.posY = this.posY; + falloutBall.posZ = this.posZ; + falloutBall.setScale((int) (this.radius * (BombConfig.falloutRange / 100F) + falloutAdd)); + this.world.spawnEntity(falloutBall); + } + //Wait for falloutBall to be done + craterReady = falloutBall.done; + } + if(!craterReady) return; + + + falloutRain = new EntityFalloutRain(this.world); + falloutRain.doFallout = fallout && !explosion.isContained; + falloutRain.doFlood = floodPlease; + falloutRain.posX = this.posX; + falloutRain.posY = this.posY; + falloutRain.posZ = this.posZ; + if(spawnFire) + falloutRain.spawnFire = true; + falloutRain.setScale((int) ((this.radius * 2.5F + falloutAdd) * BombConfig.falloutRange * 0.01F), this.radius+4); + this.world.spawnEntity(falloutRain); + this.clearLoadedChunks(); + unloadMainChunk(); + this.setDead(); + } + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); + } + + @Override + public void init(Ticket ticket) { + if(!world.isRemote && ticket != null) { + + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkPos(chunkCoordX, chunkCoordZ)); + } + } + + + List loadedChunks = new ArrayList(); + @Override + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!world.isRemote && loaderTicket != null) + { + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + + loadedChunks.clear(); + loadedChunks.add(new ChunkPos(newChunkX, newChunkZ)); + loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ + 1)); + loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ - 1)); + loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ - 1)); + loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ + 1)); + loadedChunks.add(new ChunkPos(newChunkX + 1, newChunkZ)); + loadedChunks.add(new ChunkPos(newChunkX, newChunkZ + 1)); + loadedChunks.add(new ChunkPos(newChunkX - 1, newChunkZ)); + loadedChunks.add(new ChunkPos(newChunkX, newChunkZ - 1)); + + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + public void clearLoadedChunks() { + if(!world.isRemote && loaderTicket != null && loadedChunks != null) { + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + private ChunkPos mainChunk; + public void loadMainChunk() { + if(!world.isRemote && loaderTicket != null && this.mainChunk == null) { + this.mainChunk = new ChunkPos((int) Math.floor(this.posX / 16D), (int) Math.floor(this.posZ / 16D)); + ForgeChunkManager.forceChunk(loaderTicket, this.mainChunk); + } + } + public void unloadMainChunk() { + if(!world.isRemote && loaderTicket != null && this.mainChunk != null) { + ForgeChunkManager.unforceChunk(loaderTicket, this.mainChunk); + } + } + + private static boolean isWet(World world, BlockPos pos){ + Biome b = world.getBiome(pos); + return b.getTempCategory() == Biome.TempCategory.OCEAN || b.isHighHumidity() || b == Biomes.BEACH || b == Biomes.OCEAN || b == Biomes.RIVER || b == Biomes.DEEP_OCEAN || b == Biomes.FROZEN_OCEAN || b == Biomes.FROZEN_RIVER || b == Biomes.STONE_BEACH || b == Biomes.SWAMPLAND; + } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + + } + + public static EntityNukeExplosionMK5 statFac(World world, int r, double x, double y, double z) { + if(GeneralConfig.enableExtendedLogging && !world.isRemote) + MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized explosion at " + x + " / " + y + " / " + z + " with radius " + r + "!"); + + if(r == 0) + r = 25; + + EntityNukeExplosionMK5 mk5 = new EntityNukeExplosionMK5(world); + + mk5.strength = (int)(2*r); + mk5.speed = (int)Math.ceil(100000 / mk5.strength); + mk5.radius = r; + + mk5.setPosition(x, y, z); + mk5.floodPlease = isWet(world, new BlockPos(x, y, z)); + if(BombConfig.disableNuclear) + mk5.fallout = false; + return mk5; + } + + public static EntityNukeExplosionMK5 statFacFire(World world, int r, double x, double y, double z) { + + EntityNukeExplosionMK5 mk5 = statFac(world, r, x, y ,z); + mk5.spawnFire = true; + return mk5; + } + + public static EntityNukeExplosionMK5 statFacNoRad(World world, int r, double x, double y, double z) { + + EntityNukeExplosionMK5 mk5 = statFac(world, r, x, y ,z); + mk5.fallout = false; + return mk5; + } + + public static EntityNukeExplosionMK5 statFacNoRadFire(World world, int r, double x, double y, double z) { + + EntityNukeExplosionMK5 mk5 = statFac(world, r, x, y ,z); + mk5.fallout = false; + mk5.spawnFire = true; + return mk5; + } + + public EntityNukeExplosionMK5 moreFallout(int fallout) { + falloutAdd = fallout; + return this; + } + + public EntityNukeExplosionMK5 mute() { + this.mute = true; + return this; + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionPlus.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionPlus.java index d1c879aa4e..3432ded901 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionPlus.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionPlus.java @@ -1,9 +1,10 @@ package com.hbm.entity.logic; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.effect.EntityFalloutRain; import com.hbm.explosion.ExplosionFleija; import com.hbm.explosion.ExplosionNukeAdvanced; -import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; import net.minecraft.init.SoundEvents; @@ -34,7 +35,10 @@ public EntityNukeExplosionPlus(World worldIn) { @Override public void onUpdate() { super.onUpdate(); - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if(!this.did) { if(this.waste) @@ -73,7 +77,7 @@ public void onUpdate() { if(!flag) { this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.HOSTILE, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - ExplosionNukeGeneric.dealDamage(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2); + ContaminationUtil.radiate(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2, this.destructionRange * 10, 0, this.destructionRange * 2, this.destructionRange * 3); } else { if (!did2 && waste) { EntityFalloutRain fallout = new EntityFalloutRain(this.world, (this.wasteRange) * 10); diff --git a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java index afe2112776..cb85983dd8 100644 --- a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.List; + +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.logic.IChunkLoader; import com.hbm.main.MainRegistry; import net.minecraftforge.common.ForgeChunkManager; @@ -12,7 +14,7 @@ import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; -import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.util.ContaminationUtil; import com.hbm.explosion.ExplosionTom; import com.hbm.main.MainRegistry; @@ -38,7 +40,10 @@ public EntityTomBlast(World worldIn) { @Override public void onUpdate() { super.onUpdate(); - + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if(!this.did) { if(GeneralConfig.enableExtendedLogging && !world.isRemote) @@ -67,7 +72,7 @@ public void onUpdate() { if(!flag) { this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.HOSTILE, 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - ExplosionNukeGeneric.dealDamage(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2); + ContaminationUtil.radiate(this.world, this.posX, this.posY, this.posZ, this.destructionRange * 2, 0, 0, this.destructionRange * 2, this.destructionRange * 4); } age++; diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index 6e93d26a1d..91f73afe7d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -6,8 +6,8 @@ import api.hbm.entity.IRadarDetectable; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.explosion.ExplosionLarge; @@ -83,14 +83,13 @@ public void onUpdate() { { if(!this.world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.mirvRadius, posX, posY, posZ)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.world, BombConfig.mirvRadius); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.mirvRadius, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.mirvRadius); + } } this.setDead(); + ForgeChunkManager.unforceChunk(loaderTicket, new ChunkPos(chunkCoordX, chunkCoordZ)); } this.world.spawnEntity(new EntitySmokeFX(this.world, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); @@ -125,7 +124,7 @@ protected void rotation() { @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 5000; + return distance < 25000; } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index bc9676bd23..7b52230cea 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -35,28 +35,27 @@ public class EntityMissileAntiBallistic extends EntityMissileBaseAdvanced { public EntityMissileAntiBallistic(World p_i1582_1_) { super(p_i1582_1_); this.motionY = 0.5; - + this.setSize(1F, 8F); this.velocity = 0.0; } @Override public void onUpdate() { + double oldPosY = this.posY; if(this.ticksExisted < 10){ ExplosionLarge.spawnParticlesRadial(world, posX, posY, posZ, 15); return; } else if(this.ticksExisted < 60){ - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - if(this.world.isRemote) { + this.motionY = 0.5; + this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI), (float)(Math.atan2(this.motionY, MathHelper.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI) - 90); + + if(this.world.isRemote) { MainRegistry.proxy.spawnParticle(posX, posY, posZ, "exHydrogen", new float[]{(float)(this.motionX * -3D), (float)(this.motionY * -3D), (float)(this.motionZ * -3D)}); } return; } this.getDataManager().set(HEALTH, Integer.valueOf(this.health)); - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; if(this.velocity < 20) this.velocity += 0.05; @@ -68,9 +67,8 @@ public void onUpdate() { this.motionY = targetVec[1] * velocity; this.motionZ = targetVec[2] * velocity; } - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - + this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI), (float)(Math.atan2(this.motionY, MathHelper.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI) - 90); + if(this.world.isRemote) { MainRegistry.proxy.spawnParticle(posX, posY, posZ, "exDark", new float[]{(float)(this.motionX * -3D), (float)(this.motionY * -3D), (float)(this.motionZ * -3D)}); } @@ -95,6 +93,7 @@ public void onUpdate() { this.chunkZ = (int) (posZ / 16); loadNeighboringChunks(this.chunkX, this.chunkZ); } + this.prevPosY = oldPosY; } private double[] targetMissile() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java index 3d3170b21f..0eaf18fcee 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java @@ -13,10 +13,12 @@ public class EntityMissileBHole extends EntityMissileBaseAdvanced { public EntityMissileBHole(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 7F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index a8d1b9504f..b65cf845b6 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -65,9 +65,6 @@ public EntityMissileBaseAdvanced(World worldIn) { public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { super(world); this.ignoreFrustumCheck = true; - /*this.posX = x; - this.posY = y; - this.posZ = z;*/ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; @@ -80,8 +77,7 @@ public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, decelY *= 2; velocity = 0.0; - - this.setSize(1.5F, 1.5F); + this.setSize(1.5F, 9F); } public void setAcceleration(double multiplier){ @@ -162,6 +158,34 @@ public void loadNeighboringChunks(int newChunkX, int newChunkZ) { } } + public void clearLoadedChunks() { + if(!world.isRemote && loaderTicket != null && loadedChunks != null) { + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + private ChunkPos mainChunk; + public void loadMainChunk() { + if(!world.isRemote && loaderTicket != null){ + ChunkPos currentChunk = new ChunkPos((int) Math.floor(this.posX / 16D), (int) Math.floor(this.posZ / 16D)); + if(mainChunk == null){ + ForgeChunkManager.forceChunk(loaderTicket, currentChunk); + this.mainChunk = currentChunk; + } else if(!mainChunk.equals(currentChunk)){ + ForgeChunkManager.forceChunk(loaderTicket, currentChunk); + ForgeChunkManager.unforceChunk(loaderTicket, this.mainChunk); + this.mainChunk = currentChunk; + } + } + } + public void unloadMainChunk() { + if(!world.isRemote && loaderTicket != null && this.mainChunk != null) { + ForgeChunkManager.unforceChunk(loaderTicket, this.mainChunk); + } + } + @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); @@ -203,43 +227,23 @@ protected void writeEntityToNBT(NBTTagCompound nbt) { } - protected void rotation() { - float f2 = MathHelper.sqrt(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 public void onUpdate() { + super.onUpdate(); + + //load own chunk + loadMainChunk(); + if(this.ticksExisted < 10){ ExplosionLarge.spawnParticlesRadial(world, posX, posY, posZ, 15); return; } this.getDataManager().set(HEALTH, Integer.valueOf(this.health)); - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); - - this.rotation(); - - + + double oldPosY = this.posY; + this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI), (float)(Math.atan2(this.motionY, MathHelper.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI) - 90); + this.prevPosY = oldPosY; + this.motionY -= decelY * velocity; Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); @@ -275,15 +279,19 @@ public void onUpdate() { this.setLocationAndAngles((int)this.posX, world.getHeight((int)this.posX, (int)this.posZ), (int)this.posZ, 0, 0); } if (!this.world.isRemote) { - if(this.ticksExisted > 60) + if(this.ticksExisted > 100) onImpact(); } + this.clearLoadedChunks(); + unloadMainChunk(); this.setDead(); return; } - if (motionY < -1 && this.isCluster && !world.isRemote) { + if (this.isCluster && !world.isRemote && posY < 300 && motionY < -1) { cluster(); + this.clearLoadedChunks(); + unloadMainChunk(); this.setDead(); return; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java index c4030cd95d..0991cc5543 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.render.amlfrom1710.Vec3; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; @@ -13,22 +14,17 @@ public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { public EntityMissileBunkerBuster(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 6F); } public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 6F); } @Override public void onImpact() { - for(int i = 0; i < 15; i++) - { - this.world.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); - } - - ExplosionLarge.spawnParticles(world, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnShrapnels(world, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnRubble(world, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.buster(world, this.posX, this.posY, this.posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), 15, 15); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java index fc1db0cbb7..1a162f2c91 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java @@ -13,16 +13,16 @@ public class EntityMissileBurst extends EntityMissileBaseAdvanced { public EntityMissileBurst(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(2F, 18F); } public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(2F, 18F); } @Override public void onImpact() { - for(int i = 0; i < 4; i++) - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); ExplosionLarge.explode(world, posX, posY, posZ, 50.0F, true, true, true); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java index dff8f90fd4..f24fad3172 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.render.amlfrom1710.Vec3; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; @@ -13,21 +14,17 @@ public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { public EntityMissileBusterStrong(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 11F); } public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.5F, 11F); } @Override public void onImpact() { - for(int i = 0; i < 20; i++) - { - this.world.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); - } - ExplosionLarge.spawnParticles(world, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnShrapnels(world, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnRubble(world, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.buster(world, this.posX, this.posY, this.posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), 20, 20); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java index 8763241b3d..ee8b0f3d74 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java @@ -13,17 +13,18 @@ public class EntityMissileCluster extends EntityMissileBaseAdvanced { public EntityMissileCluster(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 6F); } public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; + this.setSize(1F, 6F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); - ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); + ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 0.25); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java index cffae709c8..2f2f3087f3 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java @@ -13,17 +13,18 @@ public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { public EntityMissileClusterStrong(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 11F); } public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; + this.setSize(1.5F, 11F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); - ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); + ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 0.25, 7); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index ba9e84ef05..f5b6225672 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -6,9 +6,10 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; import com.hbm.interfaces.IConstantRenderer; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; @@ -102,7 +103,7 @@ public EntityMissileCustom(World world, float x, float y, float z, int a, int b, this.fuel = (Float)fuselage.attributes[1]; this.consumption = (Float)thruster.attributes[1]; - this.setSize(1.5F, 1.5F); + this.setSize(1.5F, 11F); } @Override @@ -177,6 +178,34 @@ public void loadNeighboringChunks(int newChunkX, int newChunkZ) { } } + public void clearLoadedChunks() { + if(!world.isRemote && loaderTicket != null && loadedChunks != null) { + for(ChunkPos chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + private ChunkPos mainChunk; + public void loadMainChunk() { + if(!world.isRemote && loaderTicket != null){ + ChunkPos currentChunk = new ChunkPos((int) Math.floor(this.posX / 16D), (int) Math.floor(this.posZ / 16D)); + if(mainChunk == null){ + ForgeChunkManager.forceChunk(loaderTicket, currentChunk); + this.mainChunk = currentChunk; + } else if(!mainChunk.equals(currentChunk)){ + ForgeChunkManager.forceChunk(loaderTicket, currentChunk); + ForgeChunkManager.unforceChunk(loaderTicket, this.mainChunk); + this.mainChunk = currentChunk; + } + } + } + public void unloadMainChunk() { + if(!world.isRemote && loaderTicket != null && this.mainChunk != null) { + ForgeChunkManager.unforceChunk(loaderTicket, this.mainChunk); + } + } + @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, world, Type.ENTITY)); @@ -240,30 +269,11 @@ protected void writeEntityToNBT(NBTTagCompound nbt) { } } - protected void rotation() { - float f2 = MathHelper.sqrt(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 public void onUpdate() { + super.onUpdate(); + //load own chunk + loadMainChunk(); if(this.ticksExisted < 10){ ExplosionLarge.spawnParticlesRadial(world, posX, posY, posZ, 15); return; @@ -271,12 +281,10 @@ public void onUpdate() { this.getDataManager().set(HEALTH, this.health); - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); - - this.rotation(); + double oldPosY = this.posY; + this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI), (float)(Math.atan2(this.motionY, MathHelper.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI) - 90); + this.prevPosY = oldPosY; + if(fuel > 0 || world.isRemote) { @@ -316,9 +324,11 @@ public void onUpdate() { this.setLocationAndAngles((int)this.posX, world.getHeight((int)this.posX, (int)this.posZ), (int)this.posZ, 0, 0); } if (!this.world.isRemote) { - if(this.ticksExisted > 60) + if(this.ticksExisted > 100) onImpact(); } + this.clearLoadedChunks(); + unloadMainChunk(); this.setDead(); return; } @@ -421,18 +431,15 @@ public void onImpact() { case CLUSTER: break; case BUSTER: - ExplosionLarge.buster(world, posX, posY, posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), strength, strength * 4); + ExplosionLarge.buster(world, posX, posY, posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), strength, strength); break; case NUCLEAR: case TX: case MIRV: - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int) strength, posX, posY, posZ)); - - EntityNukeCloudSmall nuke = new EntityNukeCloudSmall(world, strength); - nuke.posX = posX; - nuke.posY = posY; - nuke.posZ = posZ; - world.spawnEntity(nuke); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, (int) strength, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, posX, posY, posZ, strength); + } break; case VOLCANO: ExplosionLarge.buster(world, posX, posY, posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), strength, strength * 2); @@ -452,16 +459,16 @@ public void onImpact() { bf.posZ = this.posZ; bf.destructionRange = (int) strength; world.spawnEntity(bf); - world.spawnEntity(EntityNukeCloudSmall.statFacBale(world, posX, posY + 5, posZ, strength)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, posX, posY, posZ, strength); + } break; case N2: - world.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(world, (int) strength, posX, posY, posZ)); + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall n2 = new EntityNukeCloudSmall(world, strength); - n2.posX = posX; - n2.posY = posY; - n2.posZ = posZ; - world.spawnEntity(n2); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, posX, posY, posZ, strength); + } break; case TAINT: int r = (int) strength; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 56e900f6f4..d521d8260f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -12,10 +12,12 @@ public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { public EntityMissileDoomsday(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 12F); } public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.5F, 12F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java index 5800bdcae7..68b9f5d686 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.render.amlfrom1710.Vec3; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; @@ -13,21 +14,17 @@ public class EntityMissileDrill extends EntityMissileBaseAdvanced { public EntityMissileDrill(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(2F, 18F); } public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(2F, 18F); } @Override public void onImpact() { - for(int i = 0; i < 30; i++) - { - this.world.createExplosion(this, this.posX, this.posY - i, this.posZ, 10F, true); - } - ExplosionLarge.spawnParticles(world, this.posX, this.posY, this.posZ, 25); - ExplosionLarge.spawnShrapnels(world, this.posX, this.posY, this.posZ, 12); - ExplosionLarge.spawnRubble(world, this.posX, this.posY, this.posZ, 12); + ExplosionLarge.buster(world, this.posX, this.posY, this.posZ, Vec3.createVectorHelper(motionX, motionY, motionZ), 30, 30); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java index 965f6c8b78..28588e93f0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java @@ -15,10 +15,12 @@ public class EntityMissileEMP extends EntityMissileBaseAdvanced { public EntityMissileEMP(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 7F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java index 9690fcf9a4..acf9ce0f47 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java @@ -13,10 +13,12 @@ public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { public EntityMissileEMPStrong(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 11F); } public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.5F, 11F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java index 3f6ea04330..9c805469b3 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java @@ -13,15 +13,16 @@ public class EntityMissileEndo extends EntityMissileBaseAdvanced { public EntityMissileEndo(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.25F, 10F); } public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.25F, 10F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); ExplosionThermo.freeze(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 30); ExplosionThermo.freezer(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 40); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java index ce1209935d..852b3b76c1 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java @@ -13,15 +13,16 @@ public class EntityMissileExo extends EntityMissileBaseAdvanced { public EntityMissileExo(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.25F, 10F); } public EntityMissileExo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.25F, 10F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); ExplosionThermo.scorch(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 30); ExplosionThermo.setEntitiesOnFire(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 40); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java index 95892d57eb..e18604bfc5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java @@ -13,15 +13,17 @@ public class EntityMissileGeneric extends EntityMissileBaseAdvanced { public EntityMissileGeneric(World worldIn) { super(worldIn); + this.setSize(1F, 6F); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 6F); } @Override public void onImpact() { - ExplosionLarge.explode(world, posX, posY, posZ, 10.0F, true, true, true); + ExplosionLarge.explode(world, posX, posY, posZ, 15.0F, true, true, true); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java index 909a850f81..a98229aa3e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java @@ -13,10 +13,12 @@ public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { public EntityMissileIncendiary(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 6F); } public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 6F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java index 77f8ea6520..78577d0c5e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java @@ -15,15 +15,17 @@ public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { public EntityMissileIncendiaryStrong(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 11F); } public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.5F, 11F); } @Override public void onImpact() { - ExplosionLarge.explodeFire(world, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); + ExplosionLarge.explodeFire(world, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 20.0F, true, true, true); ExplosionChaos.flameDeath(this.world, new BlockPos((int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F)), 25); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java index b884ac9e86..f4f66c79fa 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java @@ -15,15 +15,17 @@ public class EntityMissileInferno extends EntityMissileBaseAdvanced { public EntityMissileInferno(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(2F, 18F); } public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(2F, 18F); } @Override public void onImpact() { - ExplosionLarge.explodeFire(world, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); + ExplosionLarge.explodeFire(world, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 40.0F, true, true, true); ExplosionChaos.burn(this.world, new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ), 10); ExplosionChaos.flameDeath(this.world, new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ), 25); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java index e5029ea508..986236e7e5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java @@ -4,9 +4,8 @@ import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -17,10 +16,12 @@ public class EntityMissileMicro extends EntityMissileBaseAdvanced { public EntityMissileMicro(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 7F); } @Override @@ -28,22 +29,13 @@ public void onImpact() { if (!this.world.isRemote) { - this.world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); + this.world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); - if(MainRegistry.polaroidID == 11) - if(rand.nextInt(100) >= 0) - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } - else - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0){ + EntityNukeTorex.statFacBale(world, this.posX, this.posY, this.posZ, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, BombConfig.fatmanRadius); + } } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java index 6a73afd517..4993cc7411 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; @@ -15,21 +15,21 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { public EntityMissileMirv(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 11F); } public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 11F); } @Override public void onImpact() { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.missileRadius * 2, posX, posY, posZ)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.world, BombConfig.missileRadius * 2F); - entity2.posX = this.posX; - entity2.posY = this.posY - 9; - entity2.posZ = this.posZ; - this.world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius * 2, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, BombConfig.missileRadius * 2F); + } } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileN2.java b/src/main/java/com/hbm/entity/missile/EntityMissileN2.java new file mode 100644 index 0000000000..94a263a29b --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileN2.java @@ -0,0 +1,57 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMissileN2 extends EntityMissileBaseAdvanced { + + public EntityMissileN2(World p_i1582_1_) { + super(p_i1582_1_); + this.setSize(1F, 11F); + } + + public EntityMissileN2(World world, float x, float y, float z, int a, int b) { + super(world, x, y, z, a, b); + this.setSize(1F, 11F); + } + + @Override + public void onImpact() { + + this.world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int)(BombConfig.n2Radius/12) * 5, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, (int)(BombConfig.n2Radius/12) * 5); + } + } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + + return list; + } + + @Override + public ItemStack getDebrisRareDrop() { + return new ItemStack(ModItems.warhead_n2); + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER4; + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java index 7906647828..84fbf90643 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; @@ -15,21 +15,21 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { public EntityMissileNuclear(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 11F); } public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 11F); } @Override public void onImpact() { - this.world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.missileRadius, posX, posY, posZ)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.world, BombConfig.missileRadius); - entity2.posX = this.posX; - entity2.posY = this.posY/* - 9*/; - entity2.posZ = this.posZ; - this.world.spawnEntity(entity2); + this.world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, BombConfig.missileRadius); + } } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java index e8a787a9e1..c1fe0b55e9 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; @@ -13,17 +14,18 @@ public class EntityMissileRain extends EntityMissileBaseAdvanced { public EntityMissileRain(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileRain(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; + this.setSize(1F, 7F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); - ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); + ExplosionChaos.cluster(this.world, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 0.25, 10); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java index 89d968daf3..317faf7d45 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java @@ -15,10 +15,12 @@ public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { public EntityMissileSchrabidium(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 7F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java index 4addbc8518..79e5257ae2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java @@ -13,10 +13,12 @@ public class EntityMissileStrong extends EntityMissileBaseAdvanced { public EntityMissileStrong(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1.5F, 11F); } public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1.5F, 11F); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java index 30a5aa7898..cb3217b38c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java @@ -16,15 +16,17 @@ public class EntityMissileTaint extends EntityMissileBaseAdvanced { public EntityMissileTaint(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 7F); } public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 7F); } @Override public void onImpact() { - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + this.world.createExplosion(this, this.posX, this.posY, this.posZ, 5.0F, true); MutableBlockPos pos = new BlockPos.MutableBlockPos(); for (int i = 0; i < 100; i++) { int a = rand.nextInt(11) + (int) this.posX - 5; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java b/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java index 1fc6072994..43611c1baf 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java @@ -15,10 +15,12 @@ public class EntityMissileVolcano extends EntityMissileBaseAdvanced { public EntityMissileVolcano(World p_i1582_1_) { super(p_i1582_1_); + this.setSize(1F, 11F); } public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); + this.setSize(1F, 11F); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java index d72a1f9ad1..4760185a1c 100644 --- a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java +++ b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java @@ -7,7 +7,9 @@ import com.hbm.entity.mob.ai.EntityAIMaskmanMinigun; import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; +import com.hbm.handler.ArmorUtil; import com.hbm.main.AdvancementManager; + import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; @@ -18,8 +20,11 @@ import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.projectile.EntityEgg; +import net.minecraft.item.ItemStack; import net.minecraft.init.Items; import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.world.BossInfo; import net.minecraft.world.BossInfoServer; import net.minecraft.world.World; @@ -60,6 +65,13 @@ protected void applyEntityAttributes() { @Override public boolean attackEntityFrom(DamageSource source, float amount) { + + if(source instanceof EntityDamageSourceIndirect && ((EntityDamageSourceIndirect) source).getImmediateSource() instanceof EntityEgg && rand.nextInt(10) == 0) { + this.experienceValue = 0; + this.setHealth(0); + return true; + } + if(source.isFireDamage()) amount = 0; if(source.isMagicDamage()) @@ -68,8 +80,9 @@ public boolean attackEntityFrom(DamageSource source, float amount) { amount *= 0.25F; if(source.isExplosion()) amount *= 0.5F; - if(amount > 50) - amount = 50; + if(amount > 50) { + amount = 50 + (amount - 50) * 0.25F; + } return super.attackEntityFrom(source, amount); } @@ -90,7 +103,7 @@ public void onUpdate() { public void onDeath(DamageSource cause) { super.onDeath(cause); List players = world.getEntitiesWithinAABB(EntityPlayer.class, this.getEntityBoundingBox().grow(50, 50, 50)); - + for(EntityPlayer player : players) { AdvancementManager.grantAchievement(player, AdvancementManager.bossMaskman); } @@ -128,11 +141,14 @@ public void removeTrackingPlayer(EntityPlayerMP player) { @Override protected void dropFewItems(boolean wasRecentlyHit, int lootingModifier) { if(!world.isRemote){ + + ItemStack mask = new ItemStack(ModItems.gas_mask_m65); + ArmorUtil.installGasMaskFilter(mask, new ItemStack(ModItems.gas_mask_filter_combo)); + + this.entityDropItem(mask, 0F); this.dropItem(ModItems.coin_maskman, 1); - this.dropItem(ModItems.gas_mask_m65, 1); this.dropItem(ModItems.v1, 1); this.dropItem(Items.SKULL, 1); } } - } diff --git a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java index 983fb7fb50..d6973e20e1 100644 --- a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -3,16 +3,13 @@ import java.util.List; import com.hbm.interfaces.IRadiationImmune; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.mob.ai.EntityAINuclearCreeperSwell; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.ModDamageSource; import com.hbm.main.AdvancementManager; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; @@ -365,20 +362,19 @@ private void explode(){ boolean flag = this.world.getGameRules().getBoolean("mobGriefing"); if(this.getPowered()) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - world.playSound(null, posX, posY + 0.5, posZ, HBMSoundHandler.mukeExplosion, SoundCategory.HOSTILE, 15.0F, 1.0F); - + EntityNukeTorex.statFac(world, posX, posY, posZ, 70); if(flag) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, 50, posX, posY, posZ).mute()); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, 70, posX, posY, posZ)); } else { - ExplosionNukeGeneric.dealDamage(world, posX, posY + 0.5, posZ, 100); + ContaminationUtil.radiate(world, posX, posY + 0.5, posZ, 70, 1000, 0, 100, 500); } } else { - - ExplosionNukeSmall.explode(world, posX, posY + 0.5, posZ, ExplosionNukeSmall.medium); + EntityNukeTorex.statFac(world, posX, posY, posZ, 20); + if(flag) { + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, 20, posX, posY, posZ)); + } else { + ContaminationUtil.radiate(world, posX, posY + 0.5, posZ, 20, 1000, 0, 100, 500); + } } this.setDead(); diff --git a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java index edc106d9ed..08537bc41b 100644 --- a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java +++ b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java @@ -60,7 +60,6 @@ public EntityRADBeast makeLeader() { @Override public void onDeath(DamageSource cause) { - super.onDeath(cause); if(this.getMaxHealth() > 150) { List players = world.getEntitiesWithinAABB(EntityPlayer.class, this.getEntityBoundingBox().grow(50, 50, 50)); @@ -68,6 +67,7 @@ public void onDeath(DamageSource cause) { AdvancementManager.grantAchievement(player, AdvancementManager.achMeltdown); } } + super.onDeath(cause); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityUFO.java b/src/main/java/com/hbm/entity/mob/EntityUFO.java index e44a34eead..88468dcfb7 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFO.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFO.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; @@ -17,6 +16,8 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityFlying; @@ -51,7 +52,7 @@ public class EntityUFO extends EntityFlying implements IMob, IRadiationImmune { public static final DataParameter BEAM = EntityDataManager.createKey(EntityUFO.class, DataSerializers.BOOLEAN); public static final DataParameter WAYPOINT = EntityDataManager.createKey(EntityUFO.class, DataSerializers.BLOCK_POS); - private final BossInfoServer bossInfo = (BossInfoServer)(new BossInfoServer(this.getDisplayName(), BossInfo.Color.PURPLE, BossInfo.Overlay.PROGRESS)); + private final BossInfoServer bossInfo = (BossInfoServer)(new BossInfoServer(this.getDisplayName(), BossInfo.Color.RED, BossInfo.Overlay.PROGRESS)); public int courseChangeCooldown; public int scanCooldown; @@ -313,11 +314,10 @@ protected void onDeathUpdate() { } if(this.deathTime == 19 && !world.isRemote) { - world.newExplosion(this, posX, posY, posZ, 10F, true, true); - ExplosionNukeSmall.explode(world, posX, posY, posZ, ExplosionNukeSmall.medium); - + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, 25); + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, 25, posX + 0.5, posY + 0.5, posZ + 0.5)); + List players = world.getEntitiesWithinAABB(EntityPlayer.class, this.getEntityBoundingBox().grow(200, 200, 200)); - for(EntityPlayer player : players) { AdvancementManager.grantAchievement(player, AdvancementManager.bossUFO); player.inventory.addItemStackToInventory(new ItemStack(ModItems.coin_ufo)); diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java index bbed243ad6..55efb56f32 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java @@ -5,6 +5,7 @@ import com.hbm.entity.mob.EntityAINearestAttackableTargetNT; import com.hbm.items.ModItems; import com.hbm.main.AdvancementManager; + import net.minecraft.entity.Entity; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -31,7 +32,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase { //TODO: clean-room implementation of the movement behavior classes (again) - private final BossInfoServer bossInfo = (BossInfoServer)(new BossInfoServer(this.getDisplayName(), BossInfo.Color.PURPLE, BossInfo.Overlay.PROGRESS)); + private final BossInfoServer bossInfo = (BossInfoServer)(new BossInfoServer(this.getDisplayName(), BossInfo.Color.GREEN, BossInfo.Overlay.PROGRESS)); private final WormMovementHeadNT movement = new WormMovementHeadNT(this); public EntityBOTPrimeHead(World world) { @@ -140,17 +141,19 @@ protected void updateAITasks() { this.attackCounter = 0; } } - - @Override - public void onDeath(DamageSource cause) { - super.onDeath(cause); - List players = world.getEntitiesWithinAABB(EntityPlayer.class, this.getEntityBoundingBox().grow(200, 200, 200)); + protected void onDeathUpdate() { - for(EntityPlayer player : players) { - AdvancementManager.grantAchievement(player, AdvancementManager.bossWorm); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.coin_worm)); + if(this.deathTime == 19 && !world.isRemote) { + + List players = world.getEntitiesWithinAABB(EntityPlayer.class, this.getEntityBoundingBox().grow(200, 200, 200)); + for(EntityPlayer player : players) { + AdvancementManager.grantAchievement(player, AdvancementManager.bossWorm); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.coin_worm)); + } } + + super.onDeathUpdate(); } @Override diff --git a/src/main/java/com/hbm/entity/particle/EntityFogFX.java b/src/main/java/com/hbm/entity/particle/EntityFogFX.java deleted file mode 100644 index 8b3affa286..0000000000 --- a/src/main/java/com/hbm/entity/particle/EntityFogFX.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityFogFX extends EntityModFX { - public EntityFogFX(World world) { - super(world, 0, 0, 0); - - } - - public EntityFogFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) { - - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityFogFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = 0.3F; - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 400) - { - maxAge = 400; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBaleflare.java b/src/main/java/com/hbm/entity/projectile/EntityBaleflare.java index 3dce0df9fb..19b16576d4 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBaleflare.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBaleflare.java @@ -2,10 +2,11 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.explosion.ExplosionParticleB; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -267,8 +268,7 @@ public void onUpdate() bf.posZ = this.posZ; bf.destructionRange = BombConfig.fatmanRadius; world.spawnEntity(bf); - - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); + EntityNukeTorex.statFacBale(world, this.posX, this.posY, this.posZ, BombConfig.fatmanRadius); } this.setDead(); } @@ -344,7 +344,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityBeamVortex.java b/src/main/java/com/hbm/entity/projectile/EntityBeamVortex.java index 6672efafe9..86d601ab83 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBeamVortex.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBeamVortex.java @@ -46,13 +46,6 @@ public void onUpdate() { world.spawnParticle(EnumParticleTypes.CLOUD, pos.hitVec.x, pos.hitVec.y, pos.hitVec.z, 0, 0, 0); world.playSound(null, pos.hitVec.x, pos.hitVec.y, pos.hitVec.z, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, 1, 1); - - //List list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.hitVec.x - 1, pos.hitVec.y - 1, pos.hitVec.z - 1, pos.hitVec.x + 1, pos.hitVec.y + 1, pos.hitVec.z + 1)); - - //for(Entity e : list) - // e.attackEntityFrom(ModDamageSource.radiation, 5); } } - - } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java index 252b1884ea..3f2f73d8ce 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java @@ -1,13 +1,12 @@ package com.hbm.entity.projectile; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.IConstantRenderer; import com.hbm.lib.HBMSoundHandler; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; +import com.hbm.entity.effect.EntityNukeTorex; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; @@ -76,12 +75,11 @@ public void onUpdate() { ExplosionChaos.spawnChlorine(world, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0); } if(type == 4) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ).mute()); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ).mute()); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - if(rand.nextInt(100) == 0) data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, this.posX, this.posY, this.posZ, (int) (BombConfig.fatmanRadius * 1.5)); + } world.playSound(null, posX, posY, posZ, HBMSoundHandler.mukeExplosion, SoundCategory.HOSTILE, 15.0F, 1.0F); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 9499849d0a..c69d3b5533 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.IConstantRenderer; @@ -57,15 +58,17 @@ public void onUpdate() { ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 2); ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 1.5); ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 1); - - List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boxcar, 1000); - } - - if(!world.isRemote) - world.setBlockState(new BlockPos((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5)), ModBlocks.boxcar.getDefaultState()); + if(CompatibilityConfig.isWarDim(world)){ + + List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boxcar, 1000); + } + + if(!world.isRemote) + world.setBlockState(new BlockPos((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5)), ModBlocks.boxcar.getDefaultState()); + } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBuilding.java b/src/main/java/com/hbm/entity/projectile/EntityBuilding.java index a4e9c1a126..a89c972ff1 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBuilding.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBuilding.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.ModDamageSource; @@ -29,7 +30,6 @@ public EntityBuilding(World p_i1582_1_) { @Override public void onUpdate() { - this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; @@ -49,27 +49,28 @@ public void onUpdate() { ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 4); ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 3); ExplosionLarge.spawnShock(world, posX, posY + 1, posZ, 24, 3); - - List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, - new AxisAlignedBB(posX - 8, posY - 8, posZ - 8, posX + 8, posY + 8, posZ + 8)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.building, 1000); - } - - for(int i = 0; i < 250; i++) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ((float) (-rand.nextFloat() * Math.PI / 2)); - vec.rotateAroundY((float) (rand.nextFloat() * Math.PI * 2)); - - EntityRubble rubble = new EntityRubble(world, posX, posY + 3, posZ); - rubble.setMetaBasedOnBlock(Blocks.BRICK_BLOCK, 0); - rubble.motionX = vec.xCoord; - rubble.motionY = vec.yCoord; - rubble.motionZ = vec.zCoord; - world.spawnEntity(rubble); - } + if(CompatibilityConfig.isWarDim(world)){ + List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, + new AxisAlignedBB(posX - 8, posY - 8, posZ - 8, posX + 8, posY + 8, posZ + 8)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.building, 1000); + } + + for(int i = 0; i < 250; i++) { + + Vec3 vec = Vec3.createVectorHelper(1, 0, 0); + vec.rotateAroundZ((float) (-rand.nextFloat() * Math.PI / 2)); + vec.rotateAroundY((float) (rand.nextFloat() * Math.PI * 2)); + + EntityRubble rubble = new EntityRubble(world, posX, posY + 3, posZ); + rubble.setMetaBasedOnBlock(Blocks.BRICK_BLOCK, 0); + rubble.motionX = vec.xCoord; + rubble.motionY = vec.yCoord; + rubble.motionZ = vec.zCoord; + world.spawnEntity(rubble); + } + } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBullet.java b/src/main/java/com/hbm/entity/projectile/EntityBullet.java index bd9766b286..09f888bc7b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBullet.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBullet.java @@ -3,6 +3,7 @@ import java.lang.reflect.Field; import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.EntityGrenadeTau; import com.hbm.blocks.generic.RedBarrel; @@ -394,7 +395,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) { + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { // TODO: Remove test feature in release version if (!(movingobjectposition.entityHit instanceof EntityItemFrame) || movingobjectposition.entityHit instanceof EntityItemFrame && (((EntityItemFrame) movingobjectposition.entityHit).getDisplayedItem() == null || ((EntityItemFrame) movingobjectposition.entityHit).getDisplayedItem() != null && ((EntityItemFrame) movingobjectposition.entityHit).getDisplayedItem().getItem() != ModItems.flame_pony)) { @@ -840,5 +841,4 @@ public boolean isInRangeToRenderDist(double distance) { d0 = d0 * 64.0D * getRenderDistanceWeight(); return distance < d0 * d0; } - } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java index 09960f071b..f00fa8c31c 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java @@ -5,12 +5,13 @@ import javax.annotation.Nullable; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; @@ -309,7 +310,7 @@ public void onUpdate() { if (movement != null) { // handle entity collision - if (movement.entityHit != null) { + if (movement.entityHit != null && CompatibilityConfig.isWarDim(world)) { DamageSource damagesource = null; @@ -479,10 +480,6 @@ public void onUpdate() { MainRegistry.proxy.effectNT(nbt); } } - // this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - - // this.prevRotationPitch) * 0.2F; - // this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - - // this.prevRotationYaw) * 0.2F; } private void doHitVFX(@Nullable BlockPos pos, RayTraceResult hit){ @@ -514,14 +511,18 @@ private void doHitVFX(@Nullable BlockPos pos, RayTraceResult hit){ private void onBlockImpact(BlockPos pos, RayTraceResult hit) { if(config.bImpact != null) config.bImpact.behaveBlockHit(this, pos.getX(), pos.getY(), pos.getZ()); - if (!world.isRemote) + if(!world.isRemote){ this.setDead(); + } IBlockState blockstate = world.getBlockState(pos); Block block = blockstate.getBlock(); doHitVFX(pos, hit); + if(!CompatibilityConfig.isWarDim(world)){ + return; + } if (config.incendiary > 0 && !this.world.isRemote) { if (world.rand.nextInt(3) == 0 && world.getBlockState(new BlockPos((int) posX, (int) posY, (int) posZ)).getBlock() == Blocks.AIR) world.setBlockState(new BlockPos((int) posX, (int) posY, (int) posZ), Blocks.FIRE.getDefaultState()); @@ -590,7 +591,7 @@ private void onBlockImpact(BlockPos pos, RayTraceResult hit) { } if (config.nuke > 0 && !world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, config.nuke, posX, posY, posZ).mute()); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, config.nuke, posX, posY, posZ).mute()); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); @@ -617,6 +618,9 @@ private void onRicochet(BlockPos pos) { // for when a bullet dies by hitting an entity private void onEntityImpact(Entity e, RayTraceResult rt) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } onEntityHurt(e, rt, false); onBlockImpact(new BlockPos(e), rt); @@ -626,10 +630,11 @@ private void onEntityImpact(Entity e, RayTraceResult rt) { // for when a bullet hurts an entity, not necessarily dying private void onEntityHurt(Entity e, RayTraceResult rt, boolean doVFX) { - if(doVFX) doHitVFX(null, rt); - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } if(config.bHurt != null) config.bHurt.behaveEntityHurt(this, e); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBurningFOEQ.java b/src/main/java/com/hbm/entity/projectile/EntityBurningFOEQ.java index aecf30cbdd..42eb6b8143 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBurningFOEQ.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBurningFOEQ.java @@ -1,5 +1,6 @@ package com.hbm.entity.projectile; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.interfaces.IConstantRenderer; @@ -27,14 +28,6 @@ public void onUpdate() { this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ if(motionY > -4) motionY -= 0.1; @@ -43,19 +36,13 @@ public void onUpdate() { if(this.world.getBlockState(new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ)).getBlock() != Blocks.AIR) { - if(!this.world.isRemote) { + if(!this.world.isRemote && CompatibilityConfig.isWarDim(world)) { for(int i = 0; i < 25; i++) ExplosionLarge.explode(world, this.posX + 0.5F + rand.nextGaussian() * 5, this.posY + 0.5F + rand.nextGaussian() * 5, this.posZ + 0.5F + rand.nextGaussian() * 5, 10.0F, rand.nextBoolean(), false, false); ExplosionNukeGeneric.waste(world, (int)this.posX, (int)this.posY, (int)this.posZ, 35); } this.setDead(); } - - //if(!this.worldObj.isRemote) { - // Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ); - // vec.normalize(); - // worldObj.spawnEntityInWorld(new EntityDSmokeFX(worldObj, posX/* - vec.xCoord * 30*/ + rand.nextGaussian() * 0.5, posY/* - vec.yCoord * 30*/ + rand.nextGaussian() * 0.5, posZ/* - vec.zCoord * 30*/ + rand.nextGaussian() * 0.5, 0, 0, 0)); - //} } public void rotation() { diff --git a/src/main/java/com/hbm/entity/projectile/EntityChopperMine.java b/src/main/java/com/hbm/entity/projectile/EntityChopperMine.java index 134fb9e29c..3e99dc83f7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChopperMine.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChopperMine.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.lib.HBMSoundHandler; import net.minecraft.block.material.Material; @@ -76,7 +77,7 @@ public void onUpdate() { this.posZ + this.motionZ); if (movingobjectposition != null) { - vec3 = new Vec3d(movingobjectposition.hitVec.x, movingobjectposition.hitVec.y,movingobjectposition.hitVec.z); + vec3 = new Vec3d(movingobjectposition.hitVec.x, movingobjectposition.hitVec.y, movingobjectposition.hitVec.z); } Entity entity = null; @@ -110,8 +111,8 @@ public void onUpdate() { if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) { - - world.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); + if(CompatibilityConfig.isWarDim(world)) + world.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); this.setDead(); } @@ -123,8 +124,9 @@ public void onUpdate() { world.playSound(null, this.posX, this.posY, this.posZ, HBMSoundHandler.nullMine, SoundCategory.HOSTILE, 10.0F, 1F); if(timer >= 100 || world.getBlockState(new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ)).getMaterial() != Material.AIR) - { - world.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); + { + if(CompatibilityConfig.isWarDim(world)) + world.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); this.setDead(); } @@ -140,5 +142,4 @@ public void onUpdate() { timer++; } - } diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java index 575308b6d5..ede326689b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -312,7 +313,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java index 8ee6e5ab4d..02065ca981 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.items.ModItems; @@ -324,7 +325,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java index 2b978474ae..853bcd8029 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.HBMSoundHandler; @@ -51,14 +52,13 @@ public void onUpdate() { { this.world.playSound(null, this.posX, this.posY, this.posZ, HBMSoundHandler.alarmGambit, SoundCategory.BLOCKS, 10000.0F, 1F); this.setDead(); - - List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boat, 1000); - } - - if(!world.isRemote) { + if(!world.isRemote && CompatibilityConfig.isWarDim(world)){ + List list = (List)world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boat, 1000); + } + ExplosionLarge.explode(world, posX, posY, posZ - 6, 2, true, false, false); ExplosionLarge.explode(world, posX, posY, posZ - 3, 2, true, false, false); ExplosionLarge.explode(world, posX, posY, posZ, 2, true, false, false); diff --git a/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java b/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java index 42c28f5ac0..120af0f79e 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java @@ -94,26 +94,6 @@ public EntityExplosiveBeam(World p_i1755_1_, EntityLivingBase p_i1755_2_, Entity } } -/* public EntityExplosiveBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - EntityExplosiveBeam.setRenderDistanceWeight(10.0D); - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.shoot(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } -*/ public EntityExplosiveBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, boolean offHand) { super(p_i1756_1_); diff --git a/src/main/java/com/hbm/entity/projectile/EntityFire.java b/src/main/java/com/hbm/entity/projectile/EntityFire.java index cc44e37a69..fc295ac5a2 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityFire.java +++ b/src/main/java/com/hbm/entity/projectile/EntityFire.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -233,7 +234,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityLN2.java b/src/main/java/com/hbm/entity/projectile/EntityLN2.java index fe75b3b802..244c486a22 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityLN2.java +++ b/src/main/java/com/hbm/entity/projectile/EntityLN2.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionThermo; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -318,7 +319,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityLaser.java b/src/main/java/com/hbm/entity/projectile/EntityLaser.java index cbe6445062..924e59cd4d 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityLaser.java +++ b/src/main/java/com/hbm/entity/projectile/EntityLaser.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.render.amlfrom1710.Vec3; @@ -78,10 +79,12 @@ public void onUpdate() { world.spawnParticle(EnumParticleTypes.CLOUD, pos.hitVec.x, pos.hitVec.y, pos.hitVec.z, 0, 0, 0); world.playSound(pos.hitVec.x, pos.hitVec.y, pos.hitVec.z, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.PLAYERS, 1, 1, true); - List list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.hitVec.x - 1, pos.hitVec.y - 1, pos.hitVec.z - 1, pos.hitVec.x + 1, pos.hitVec.y + 1, pos.hitVec.z + 1)); - - for(Entity e : list) - e.attackEntityFrom(ModDamageSource.radiation, 5); + if(CompatibilityConfig.isWarDim(world)){ + List list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.hitVec.x - 1, pos.hitVec.y - 1, pos.hitVec.z - 1, pos.hitVec.x + 1, pos.hitVec.y + 1, pos.hitVec.z + 1)); + + for(Entity e : list) + e.attackEntityFrom(ModDamageSource.radiation, 5); + } } } @@ -103,5 +106,4 @@ public int getBrightnessForRender() { public float getBrightness() { return 1.0F; } - } diff --git a/src/main/java/com/hbm/entity/projectile/EntityLaserBeam.java b/src/main/java/com/hbm/entity/projectile/EntityLaserBeam.java index 643d43d098..dceb5b0692 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityLaserBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityLaserBeam.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionChaos; import com.hbm.lib.ModDamageSource; @@ -119,7 +120,7 @@ public void setVelocity(double x, double y, double z) { @Override public void onUpdate() { -super.onUpdate(); + super.onUpdate(); if(this.ticksExisted > 100) this.setDead(); @@ -127,7 +128,6 @@ public void onUpdate() { if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); } IBlockState blockstate = world.getBlockState(new BlockPos(this.field_145791_d, this.field_145792_e, this.field_145789_f)); @@ -206,7 +206,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { @@ -368,5 +368,4 @@ protected void writeEntityToNBT(NBTTagCompound compound) { compound.setByte("pickup", (byte)this.canBePickedUp); compound.setDouble("damage", this.damage); } - } diff --git a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java index b3cee16d5a..1b83bbfd35 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java @@ -1,5 +1,6 @@ package com.hbm.entity.projectile; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.GeneralConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.HBMSoundHandler; @@ -47,7 +48,7 @@ public void onUpdate() { if(this.world.getBlockState(new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ)).getMaterial() != Material.AIR) { - if(!this.world.isRemote) + if(!this.world.isRemote && CompatibilityConfig.isWarDim(world)) { world.createExplosion(this, this.posX, this.posY, this.posZ, 5 + rand.nextFloat(), !safe); if(GeneralConfig.enableMeteorTails) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityMinerBeam.java b/src/main/java/com/hbm/entity/projectile/EntityMinerBeam.java index 63a93e4cdf..647741f565 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMinerBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMinerBeam.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.lib.ModDamageSource; import net.minecraft.block.Block; @@ -137,7 +138,7 @@ public void onUpdate() { if (blockstate.getMaterial() != Material.AIR) { - if(!world.isRemote) { + if(!world.isRemote && CompatibilityConfig.isWarDim(world)) { this.dropMinedItem(this.world, field_145791_d, field_145792_e, field_145789_f); } this.setDead(); @@ -208,7 +209,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityMiniMIRV.java b/src/main/java/com/hbm/entity/projectile/EntityMiniMIRV.java index a5b09152ef..8cecc564bc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMiniMIRV.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMiniMIRV.java @@ -2,11 +2,12 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; +import com.hbm.main.MainRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -265,14 +266,13 @@ public void onUpdate() { if (!this.world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, posX, posY, posZ, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.fatmanRadius); + } } this.setDead(); } @@ -337,7 +337,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { @@ -397,14 +397,13 @@ public void onUpdate() { if (!this.world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); - - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); + + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, posX, posY, posZ, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.fatmanRadius); + } } this.setDead(); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityMiniNuke.java b/src/main/java/com/hbm/entity/projectile/EntityMiniNuke.java index a1c9a0e92e..86245d1103 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMiniNuke.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMiniNuke.java @@ -2,10 +2,10 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.main.MainRegistry; import net.minecraft.block.Block; @@ -252,23 +252,14 @@ public void onUpdate() { if (!this.world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); //Perma-baleflare mode if the polaroid's glitched - if(MainRegistry.polaroidID == 11) - if(rand.nextInt(100) >= 0) //edited - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } - else - if(rand.nextInt(100) == 0) //original - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, posX, posY, posZ, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.fatmanRadius); + } } this.setDead(); } @@ -333,7 +324,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { @@ -393,14 +384,12 @@ public void onUpdate() { if (!this.world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); - - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } else { - ExplosionParticle.spawnMush(this.world, (int)this.posX, (int)this.posY - 3, (int)this.posZ); - } + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ)); + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, posX, posY, posZ, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.fatmanRadius); + } } this.setDead(); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index 9ac51888ea..236757c01a 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -3,13 +3,13 @@ import java.util.List; import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntityVortex; import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.potion.HbmPotion; @@ -101,27 +101,6 @@ public EntityModBeam(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLiving this.shoot(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); } } - - /*public EntityModBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - }*/ public EntityModBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, EnumHand hand) { @@ -558,8 +537,10 @@ private void explode() { } else { this.world.playSound(null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.HOSTILE, 100.0f, this.world.rand.nextFloat() * 0.1F + 0.9F); - this.world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.gadgetRadius, posX, posY, posZ)); - this.world.spawnEntity(EntityNukeCloudSmall.statFac(world, posX, posY, posZ, BombConfig.gadgetRadius)); + this.world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, posX, posY, posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, posX, posY, posZ, BombConfig.gadgetRadius); + } } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java b/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java index c6b1d24d21..8bb370b4de 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionThermo; import com.hbm.items.ModItems; @@ -107,27 +108,6 @@ public EntityPlasmaBeam(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLiv this.shoot(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); } } - - /*public EntityPlasmaBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - if(p_i1756_1_.isRemote) - setRenderDistanceWeight(10.0D); - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.shoot(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - }*/ public EntityPlasmaBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, EnumHand hand) { @@ -333,7 +313,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityRainbow.java b/src/main/java/com/hbm/entity/projectile/EntityRainbow.java index d36269fdac..816d601ebe 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRainbow.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRainbow.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.explosion.ExplosionChaos; import com.hbm.lib.ModDamageSource; @@ -303,7 +304,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) { + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { f2 = MathHelper.sqrt(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); int k = MathHelper.ceil(f2 * this.damage); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocket.java b/src/main/java/com/hbm/entity/projectile/EntityRocket.java index e20a0d0f51..08514121bd 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocket.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; @@ -53,7 +54,8 @@ public class EntityRocket extends Entity implements IProjectile { private double damage = 2.0D; /** The amount of knockback an arrow applies when it hits a mob. */ private int knockbackStrength; - + public int explosionSize = 5; + public EntityRocket(World worldIn) { super(worldIn); if(worldIn.isRemote) @@ -209,40 +211,10 @@ public void onUpdate() { if (this.inGround) { - /*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block == this.field_145790_g && j == this.inData) - { - ++this.ticksInGround; - - if (this.ticksInGround == 1200) - { - this.setDead(); - } - } - else - { - this.inGround = false; - this.motionX *= (double)(this.rand.nextFloat() * 0.2F); - this.motionY *= (double)(this.rand.nextFloat() * 0.2F); - this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); - this.ticksInGround = 0; - this.ticksInAir = 0; - }*/ - if (!this.world.isRemote) { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - ExplosionLarge.explode(world, posX, posY, posZ, 5, true, false, true); - /*EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 20; - explosion.posX = this.posX; - explosion.posY = this.posY; - explosion.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(explosion);*/ + ExplosionLarge.explode(world, posX, posY, posZ, explosionSize, true, false, true); } this.setDead(); } @@ -307,7 +279,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { @@ -367,8 +339,7 @@ public void onUpdate() { { if (!this.world.isRemote) { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - ExplosionLarge.explode(world, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.explode(world, posX, posY, posZ, explosionSize, true, false, true); } this.setDead(); } @@ -377,8 +348,7 @@ public void onUpdate() { { if (!this.world.isRemote) { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - ExplosionLarge.explode(world, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.explode(world, posX, posY, posZ, explosionSize, true, false, true); } this.setDead(); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index 89c34e91e4..16274f1eb6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.explosion.ExplosionLarge; @@ -220,40 +221,9 @@ public void onUpdate() { if (this.inGround) { - /*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block == this.field_145790_g && j == this.inData) - { - ++this.ticksInGround; - - if (this.ticksInGround == 1200) - { - this.setDead(); - } - } - else - { - this.inGround = false; - this.motionX *= (double)(this.rand.nextFloat() * 0.2F); - this.motionY *= (double)(this.rand.nextFloat() * 0.2F); - this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); - this.ticksInGround = 0; - this.ticksInAir = 0; - }*/ - - if (!this.world.isRemote) { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); ExplosionLarge.explode(world, posX, posY, posZ, 5, true, false, true); - /*EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 20; - explosion.posX = this.posX; - explosion.posY = this.posY; - explosion.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(explosion);*/ } this.setDead(); } @@ -318,7 +288,7 @@ public void onUpdate() { float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java index fb0bb9cab9..4949aa7be5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.items.ModItems; @@ -244,29 +245,8 @@ public void onUpdate() if (this.inGround) { - /*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block == this.field_145790_g && j == this.inData) - { - ++this.ticksInGround; - - if (this.ticksInGround == 1200) - { - this.setDead(); - } - } - else - { - this.inGround = false; - this.motionX *= (double)(this.rand.nextFloat() * 0.2F); - this.motionY *= (double)(this.rand.nextFloat() * 0.2F); - this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); - this.ticksInGround = 0; - this.ticksInAir = 0; - }*/ - - - if (!this.world.isRemote) + + if (!this.world.isRemote && CompatibilityConfig.isWarDim(world)) { BlockPos schrabPos = new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ); this.world.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); @@ -339,7 +319,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { @@ -442,12 +422,9 @@ public void onUpdate() } } - if (true) + for (i = 0; i < 4; ++i) { - for (i = 0; i < 4; ++i) - { - this.world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, this.posX, this.posY, this.posZ, 0, 0, 0 /*this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ*/); - } + this.world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, this.posX, this.posY, this.posZ, 0, 0, 0 /*this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ*/); } this.posX += this.motionX; @@ -456,28 +433,6 @@ public void onUpdate() f2 = MathHelper.sqrt(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, (double)f2) * 180.0D / Math.PI); 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; - }*/ - - //this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - //this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; float f3 = 0.99F; f1 = 0.05F; diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index 8be29748bf..7430a26e58 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -1,5 +1,6 @@ package com.hbm.entity.projectile; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; @@ -52,7 +53,11 @@ public void onUpdate() { @Override protected void onImpact(RayTraceResult mop) - { + { + if(!CompatibilityConfig.isWarDim(world)){ + this.setDead(); + return; + } if (mop.entityHit != null) { byte b0 = 15; diff --git a/src/main/java/com/hbm/entity/projectile/EntitySparkBeam.java b/src/main/java/com/hbm/entity/projectile/EntitySparkBeam.java index c0af29cd0b..6ebb57a109 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySparkBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySparkBeam.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.explosion.ExplosionLarge; import net.minecraft.block.Block; @@ -94,25 +95,6 @@ public EntitySparkBeam(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivi this.shoot(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); } } - - /*public EntitySparkBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.shoot(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - }*/ public EntitySparkBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, EnumHand hand) { @@ -311,7 +293,7 @@ public void onUpdate() float f2; float f4; - if (movingobjectposition != null) + if (movingobjectposition != null && CompatibilityConfig.isWarDim(world)) { if (movingobjectposition.entityHit != null) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityTom.java b/src/main/java/com/hbm/entity/projectile/EntityTom.java index 8e489f874b..82f6a08464 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityTom.java +++ b/src/main/java/com/hbm/entity/projectile/EntityTom.java @@ -1,5 +1,6 @@ package com.hbm.entity.projectile; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.effect.EntityCloudTom; import com.hbm.entity.logic.EntityTomBlast; import com.hbm.interfaces.IConstantRenderer; @@ -39,12 +40,14 @@ public void onUpdate() { if(this.world.getBlockState(new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ)).getBlock() != Blocks.AIR) { if(!this.world.isRemote) { - EntityTomBlast tom = new EntityTomBlast(world); - tom.posX = posX; - tom.posY = posY; - tom.posZ = posZ; - tom.destructionRange = 500; - world.spawnEntity(tom); + if(CompatibilityConfig.isWarDim(world)){ + EntityTomBlast tom = new EntityTomBlast(world); + tom.posX = posX; + tom.posY = posY; + tom.posZ = posZ; + tom.destructionRange = 500; + world.spawnEntity(tom); + } EntityCloudTom cloud = new EntityCloudTom(world, 500); cloud.setLocationAndAngles(posX, posY, posZ, 0, 0); diff --git a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java index 05e54f5c04..d76234bef0 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java +++ b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java @@ -34,8 +34,8 @@ public void onUpdate() { super.onUpdate(); if(!world.isRemote) { - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 0), new TargetPoint(this.dimension, posX, posY, posZ, 75)); + if(this.ticksExisted % 4 == 0) + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 0), new TargetPoint(this.dimension, posX, posY, posZ, 75)); if(this.ticksExisted > 80) { this.setDead(); diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 1aa8c687f0..68d49ea246 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.generic.EntityGrenadeTau; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.particle.EntityChlorineFX; @@ -54,6 +55,9 @@ public class ExplosionChaos { private static Random rand = new Random(); public static void explode(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength; int r2 = r * r; @@ -81,12 +85,14 @@ public static void destruction(World world, BlockPos pos) { if(b == Blocks.BEDROCK || b == ModBlocks.reinforced_brick || b == ModBlocks.reinforced_sand || b == ModBlocks.reinforced_glass || b == ModBlocks.reinforced_lamp_on || b == ModBlocks.reinforced_lamp_off) { } else { - world.setBlockState(pos, Blocks.AIR.getDefaultState()); + world.setBlockToAir(pos); } } public static void spawnExplosion(World world, int x, int y, int z, int bound) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } int randX; int randY; int randZ; @@ -161,6 +167,9 @@ public static void spawnExplosion(World world, int x, int y, int z, int bound) { // Drillgon200: Descriptive method names anyone? // Alcater: Ill write this down - maybe ill need it later. c stands for cloudPoisoning public static void c(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } float f = bombStartStrength; int i; int j; @@ -232,7 +241,9 @@ public static void c(World world, int x, int y, int z, int bombStartStrength) { * @param bound */ public static void flameDeath(World world, BlockPos pos, int bound) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos mPos = new BlockPos.MutableBlockPos(pos); MutableBlockPos mPosUp = new BlockPos.MutableBlockPos(pos.up()); @@ -271,7 +282,9 @@ public static void flameDeath(World world, BlockPos pos, int bound) { * @param bound */ public static void burn(World world, BlockPos pos, int bound) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos mPos = new BlockPos.MutableBlockPos(pos); MutableBlockPos mPosUp = new BlockPos.MutableBlockPos(pos.up()); @@ -301,7 +314,9 @@ public static void burn(World world, BlockPos pos, int bound) { } public static void spawnChlorine(World world, double x, double y, double z, int count, double speed, int type) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } for(int i = 0; i < count; i++) { EntityModFX fx = null; @@ -324,6 +339,9 @@ public static void spawnChlorine(World world, double x, double y, double z, int } // Alcater: pc for pinkCouldPoisoning public static void pc(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } float f = bombStartStrength; int i; int j; @@ -377,6 +395,9 @@ public static void pc(World world, int x, int y, int z, int bombStartStrength) { //Alcater: used by grenades and Chlorine seal gas blocks public static void poison(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } float f = bombStartStrength; int i; int j; @@ -425,27 +446,24 @@ public static void poison(World world, int x, int y, int z, int bombStartStrengt bombStartStrength = (int) f; } - public static void cluster(World world, int x, int y, int z, int count, int gravity) { + public static void cluster(World world, int x, int y, int z, int count, double gravity) { + cluster(world, x, y, z, count, gravity, 5); + } - double d1 = 0; - double d2 = 0; - double d3 = 0; + public static void cluster(World world, int x, int y, int z, int count, double gravity, int size) { + + double mx = 0; + double my = 0; + double mz = 0; EntityRocket fragment; for(int i = 0; i < count; i++) { - d1 = rand.nextDouble(); - d2 = rand.nextDouble(); - d3 = rand.nextDouble(); + mx = rand.nextGaussian() * 0.1 * size; + my = rand.nextGaussian(); + mz = rand.nextGaussian() * 0.1 * size; - if(rand.nextInt(2) == 0) { - d1 *= -1; - } - - if(rand.nextInt(2) == 0) { - d3 *= -1; - } - - fragment = new EntityRocket(world, x, y, z, d1, d2, d3, 0.0125D); + fragment = new EntityRocket(world, x, y, z, mx, my, mz, gravity); + fragment.explosionSize = size; world.spawnEntity(fragment); } } @@ -540,6 +558,9 @@ public static void miniMirv(World world, double x, double y, double z) { } public static void explodeZOMG(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength; int r2 = r * r; @@ -629,7 +650,9 @@ public static void schrab(World world, int x, int y, int z, int count, int gravi @SuppressWarnings("deprecation") public static void pulse(World world, int x, int y, int z, int bombStartStrength) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } int r = bombStartStrength; int r2 = r * r; int r22 = r2 / 2; @@ -656,56 +679,12 @@ public static void pDestruction(World world, int x, int y, int z) { IBlockState state = world.getBlockState(pos); EntityFallingBlock entityfallingblock = new EntityFallingBlock(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), state); world.spawnEntity(entityfallingblock); - - /* - if (Blocks.air.getBlockHardness(world, x, y, z) != Float.POSITIVE_INFINITY) { - Block b = world.getBlockState(pos).getBlock(); - TileEntity t = world.getTileEntity(x, y, z); - - if (b == Blocks.sandstone || b == Blocks.sandstone_stairs) - world.setBlockState(pos, Blocks.sand); - else if (t != null && t instanceof ISource) - world.setBlockState(pos, ModBlocks.block_electrical_scrap); - else if (t != null && t instanceof IConductor) - world.setBlockState(pos, ModBlocks.block_electrical_scrap); - else if (t != null && t instanceof IConsumer) - world.setBlockState(pos, ModBlocks.block_electrical_scrap); - else if (b == Blocks.sand) - world.setBlockState(pos, Blocks.sand); - else if (b == Blocks.gravel) - world.setBlockState(pos, Blocks.gravel); - else if (b == ModBlocks.gravel_obsidian) - world.setBlockState(pos, ModBlocks.gravel_obsidian); - else if (b == ModBlocks.block_electrical_scrap) - world.setBlockState(pos, ModBlocks.block_electrical_scrap); - else if (b == ModBlocks.block_scrap) - world.setBlockState(pos, ModBlocks.block_scrap); - else if (b == ModBlocks.brick_obsidian) - world.setBlockState(pos, ModBlocks.gravel_obsidian); - else if (b.getMaterial() == Material.anvil) - world.setBlockState(pos, Blocks.gravel); - else if (b.getMaterial() == Material.clay) - world.setBlockState(pos, Blocks.sand); - else if (b.getMaterial() == Material.grass) - world.setBlockState(pos, Blocks.sand); - else if (b.getMaterial() == Material.ground) - world.setBlockState(pos, Blocks.sand); - else if (b.getMaterial() == Material.iron) - world.setBlockState(pos, Blocks.gravel); - else if (b.getMaterial() == Material.piston) - world.setBlockState(pos, Blocks.gravel); - else if (b.getMaterial() == Material.rock) - world.setBlockState(pos, Blocks.gravel); - else if (b.getMaterial() == Material.sand) - world.setBlockState(pos, Blocks.sand); - else if (b.getMaterial() == Material.tnt) - world.setBlockState(pos, ModBlocks.block_scrap); - else - world.setBlockState(pos, Blocks.air); - }*/ } public static void plasma(World world, int x, int y, int z, int radius) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = radius; int r2 = r * r; @@ -817,7 +796,9 @@ public static void zomg(World world, double x, double y, double z, int count, En } public static void spawnVolley(World world, double x, double y, double z, int count, double speed) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } for(int i = 0; i < count; i++) { EntityModFX fx = new EntityOrangeFX(world, x, y, z, 0.0, 0.0, 0.0); @@ -836,6 +817,9 @@ public static void floater(World world, BlockPos pos, int radi, int height) { } public static void floater(World world, int x, int y, int z, int radi, int height) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); IBlockState save; @@ -921,6 +905,9 @@ public static void move(World world, int x, int y, int z, int radius, int a, int } public static void levelDown(World world, int x, int y, int z, int radius) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); if(!world.isRemote) for(int i = x - radius; i <= x + radius; i++) @@ -950,94 +937,111 @@ public static void decontaminate(World world, BlockPos pos) { // if (!world.isRemote) { Random random = new Random(); + IBlockState b = world.getBlockState(pos); + Block bblock = b.getBlock(); - if(world.getBlockState(pos).getBlock() == ModBlocks.waste_earth && random.nextInt(3) != 0) { + if(bblock == ModBlocks.waste_earth && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.GRASS.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_dirt && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_dirt && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.DIRT.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_sand && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_sand && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.SAND.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_sand_red && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_sand_red && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.SAND.getStateFromMeta(1)); } + + else if(bblock == Blocks.SANDSTONE && random.nextInt(3) != 0) { + world.setBlockState(pos, ModBlocks.waste_sandstone.getDefaultState()); + } + + else if((bblock == Blocks.HARDENED_CLAY || bblock == Blocks.STAINED_HARDENED_CLAY) && random.nextInt(3) != 0) { + world.setBlockState(pos, ModBlocks.waste_sandstone_red.getDefaultState()); + } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_grass_tall && random.nextInt(3) != 0) { + else if(bblock == Blocks.RED_SANDSTONE && random.nextInt(3) != 0) { + world.setBlockState(pos, ModBlocks.waste_sandstone_red.getDefaultState()); + } + + else if(bblock == ModBlocks.waste_grass_tall && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.TALLGRASS.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_gravel && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_gravel && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.GRAVEL.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_mycelium && random.nextInt(5) == 0) { + else if(bblock == ModBlocks.waste_mycelium && random.nextInt(5) == 0) { world.setBlockState(pos, Blocks.MYCELIUM.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_leaves && random.nextInt(5) != 0) { + else if(bblock == ModBlocks.waste_leaves && random.nextInt(5) != 0) { world.setBlockState(pos, Blocks.LEAVES.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_trinitite && random.nextInt(3) == 0) { + else if(bblock == ModBlocks.waste_trinitite && random.nextInt(3) == 0) { world.setBlockState(pos, Blocks.SAND.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_trinitite_red && random.nextInt(3) == 0) { + else if(bblock == ModBlocks.waste_trinitite_red && random.nextInt(3) == 0) { world.setBlockState(pos, Blocks.SAND.getDefaultState().withProperty(BlockSand.VARIANT, BlockSand.EnumType.RED_SAND), 2); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_log && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_log && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.LOG.getDefaultState().withProperty(BlockLog.LOG_AXIS, BlockLog.EnumAxis.fromFacingAxis(world.getBlockState(pos).getValue(BlockLog.AXIS)))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.waste_planks && random.nextInt(3) != 0) { + else if(bblock == ModBlocks.waste_planks && random.nextInt(3) != 0) { world.setBlockState(pos, Blocks.PLANKS.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.block_trinitite && random.nextInt(10) == 0) { + else if(bblock == ModBlocks.block_trinitite && random.nextInt(10) == 0) { world.setBlockState(pos, ModBlocks.block_lead.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.block_waste && random.nextInt(10) == 0) { + else if(bblock == ModBlocks.block_waste && random.nextInt(10) == 0) { world.setBlockState(pos, ModBlocks.block_lead.getDefaultState()); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_core && random.nextInt(10) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_4.getDefaultState()); + else if(bblock == ModBlocks.sellafield_core && random.nextInt(10) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_4.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_4 && random.nextInt(5) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_3.getDefaultState()); + else if(bblock == ModBlocks.sellafield_4 && random.nextInt(5) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_3.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_3 && random.nextInt(5) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_2.getDefaultState()); + else if(bblock == ModBlocks.sellafield_3 && random.nextInt(5) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_2.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_2 && random.nextInt(5) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_1.getDefaultState()); + else if(bblock == ModBlocks.sellafield_2 && random.nextInt(5) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_1.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_1 && random.nextInt(5) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_0.getDefaultState()); + else if(bblock == ModBlocks.sellafield_1 && random.nextInt(5) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_0.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_0 && random.nextInt(5) == 0) { - world.setBlockState(pos, ModBlocks.sellafield_slaked.getDefaultState()); + else if(bblock == ModBlocks.sellafield_0 && random.nextInt(5) == 0) { + world.setBlockState(pos, ModBlocks.sellafield_slaked.getStateFromMeta(world.rand.nextInt(4))); } - else if(world.getBlockState(pos).getBlock() == ModBlocks.sellafield_slaked && random.nextInt(5) == 0) { + else if(bblock == ModBlocks.sellafield_slaked && random.nextInt(5) == 0) { world.setBlockState(pos, Blocks.STONE.getDefaultState()); } } public static void hardenVirus(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength; int r2 = r * r; @@ -1061,6 +1065,9 @@ public static void hardenVirus(World world, int x, int y, int z, int bombStartSt } public static void spreadVirus(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength; int r2 = r * r; diff --git a/src/main/java/com/hbm/explosion/ExplosionDrying.java b/src/main/java/com/hbm/explosion/ExplosionDrying.java index 108e3ecb62..372546d6b9 100644 --- a/src/main/java/com/hbm/explosion/ExplosionDrying.java +++ b/src/main/java/com/hbm/explosion/ExplosionDrying.java @@ -74,8 +74,7 @@ public ExplosionDrying(int x, int y, int z, World world, int rad, float coeffici this.nlimit = this.radius2 * 4; } - public boolean update() - { + public boolean update(){ breakColumn(this.lastposX, this.lastposZ); this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); int shell2 = this.shell * 2; diff --git a/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java b/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java deleted file mode 100644 index 9032cc49e6..0000000000 --- a/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.explosion; - -import java.util.List; - -import com.hbm.render.amlfrom1710.Vec3; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.world.World; - -public class ExplosionHurtUtil { - - /** - * Adds radiation to entities in an AoE - * @param world - * @param x - * @param y - * @param z - * @param outer The least amount of radiation received on the very edge of the AoE - * @param inner The greatest amount of radiation received on the very center of the AoE - * @param radius - */ - public static void doRadiation(World world, double x, double y, double z, float outer, float inner, double radius) { - - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(x - radius, y - radius, z - radius, x + radius, y + radius, z + radius)); - - for(EntityLivingBase entity : entities) { - - Vec3 vec = Vec3.createVectorHelper(x - entity.posX, y - entity.posY, z - entity.posZ); - - double dist = vec.lengthVector(); - - if(dist > radius) - continue; - - double interpolation = 1 - (dist / radius); - float rad = (float) (outer + (inner - outer) * interpolation); - - ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad); - } - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 8b26cb2fe0..3aa08398b1 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,10 +3,13 @@ import java.util.List; import java.util.Random; +import com.hbm.config.CompatibilityConfig; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; +import com.hbm.util.ContaminationUtil; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.render.amlfrom1710.Vec3; @@ -104,7 +107,9 @@ public static void spawnShrapnels(World world, double x, double y, double z, int @SuppressWarnings("deprecation") public static void jolt(World world, double posX, double posY, double posZ, double strength, int count, double vel) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } for(int j = 0; j < count; j++) { double phi = rand.nextDouble() * (Math.PI * 2); @@ -211,13 +216,17 @@ public static void spawnMissileDebris(World world, double x, double y, double z, } public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { - world.createExplosion(null, x, y, z, strength, true); + if(CompatibilityConfig.isWarDim(world)){ + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int)strength, x, y, z)); + + ContaminationUtil.radiate(world, x, y, z, strength, 0, 0, 0, strength*15F); + } if (cloud) - spawnParticles(world, x, y, z, cloudFunction((int) strength)); + spawnParticles(world, x, y+2, z, cloudFunction((int) strength)); if (rubble) - spawnRubble(world, x, y, z, rubbleFunction((int) strength)); + spawnRubble(world, x, y+2, z, rubbleFunction((int) strength)); if (shrapnel) - spawnShrapnels(world, x, y, z, shrapnelFunction((int) strength)); + spawnShrapnels(world, x, y+2, z, shrapnelFunction((int) strength)); } public static int cloudFunction(int i) { @@ -234,13 +243,17 @@ public static int shrapnelFunction(int i) { } public static void explodeFire(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { - world.newExplosion((Entity)null, (float)x, (float)y, (float)z, strength, true, true); + if(CompatibilityConfig.isWarDim(world)){ + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRadFire(world, (int)strength, x, y, z)); + + ContaminationUtil.radiate(world, x, y, z, strength, 0, 0, strength*20F, strength*5F); + } if(cloud) - spawnParticles(world, x, y, z, cloudFunction((int)strength)); + spawnParticles(world, x, y+2, z, cloudFunction((int)strength)); if(rubble) - spawnRubble(world, x, y, z, rubbleFunction((int)strength)); + spawnRubble(world, x, y+2, z, rubbleFunction((int)strength)); if(shrapnel) - spawnShrapnels(world, x, y, z, shrapnelFunction((int)strength)); + spawnShrapnels(world, x, y+2, z, shrapnelFunction((int)strength)); } public static void spawnOilSpills(World world, double x, double y, double z, int count) { @@ -260,10 +273,15 @@ public static void spawnOilSpills(World world, double x, double y, double z, int public static void buster(World world, double x, double y, double z, Vec3 vector, float strength, float depth) { vector = vector.normalize(); - - for(int i = 0; i < depth; i += 2) { - - world.createExplosion((Entity)null, x + vector.xCoord * i, y + vector.yCoord * i, z + vector.zCoord * i, strength, true); + if(CompatibilityConfig.isWarDim(world)){ + for(int i = 0; i <= depth; i += 3) { + + ContaminationUtil.radiate(world, x + vector.xCoord * i, y + vector.yCoord * i, z + vector.zCoord * i, strength, 0, 0, 0, strength*10F); + world.spawnEntity(EntityNukeExplosionMK5.statFacNoRad(world, (int)strength, x + vector.xCoord * i, y + vector.yCoord * i, z + vector.zCoord * i)); + } } + spawnParticles(world, x, y+2, z, cloudFunction((int)strength)); + spawnRubble(world, x, y+2, z, rubbleFunction((int)strength)); + spawnShrapnels(world, x, y+2, z, shrapnelFunction((int)strength)); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index cb8c1ea9d1..38d086ee2a 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -10,6 +10,7 @@ import java.util.Set; import com.google.common.collect.Lists; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.render.amlfrom1710.Vec3; @@ -77,11 +78,13 @@ public ExplosionNT overrideResolution(int res) { } public void explode() { - doExplosionA(); - doExplosionB(false); + if(CompatibilityConfig.isWarDim(worldObj)){ + doNTExplosionA(); + doNTExplosionB(false); + } } - public void doExplosionA() { + private void doNTExplosionA() { float f = this.explosionSize; HashSet hashset = new HashSet(); int i; @@ -182,7 +185,7 @@ public void doExplosionA() { } } - public void doExplosionB(boolean p_77279_1_) { + private void doNTExplosionB(boolean p_77279_1_) { if(!has(ExAttrib.NOSOUND)) this.worldObj.playSound(null, this.explosionX, this.explosionY, this.explosionZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 4.0F, (1.0F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.2F) * 0.7F); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java index 27a27f7526..3d572c7184 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java @@ -1,5 +1,7 @@ package com.hbm.explosion; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; @@ -74,8 +76,10 @@ public ExplosionNukeAdvanced(int x, int y, int z, World world, int rad, float co this.nlimit = this.radius2 * 4; //How many total columns should be broken (radius ^ 2 is one quadrant, there are 4 quadrants) } - public boolean update() - { + public boolean update() { + if(!CompatibilityConfig.isWarDim(worldObj)){ + return true; + } switch(this.type) { case 0: @@ -107,7 +111,7 @@ private void breakColumn(int x, int z) { pos.setPos(this.posX + x, this.posY + y, this.posZ + z); if(y<8){//only spare blocks that are mostly below epicenter - y-= ExplosionNukeGeneric.destruction(this.worldObj, pos);//spare blocks below + y -= ExplosionNukeGeneric.destruction(this.worldObj, pos);//spare blocks below }else{//don't spare blocks above epicenter ExplosionNukeGeneric.destruction(this.worldObj, pos); } @@ -125,7 +129,7 @@ private void vapor(int x, int z) for (int y = dist; y > -dist * this.explosionCoefficient; y--) { pos.setPos(this.posX + x, this.posY + y, this.posZ + z); - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, pos); + y -= ExplosionNukeGeneric.vaporDest(this.worldObj, pos); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index d18092a6c1..4392f8c03a 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -13,20 +13,12 @@ import org.apache.logging.log4j.Level; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.WasteLog; import com.hbm.config.VersatileConfig; -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.grenade.EntityGrenadeASchrab; -import com.hbm.entity.grenade.EntityGrenadeNuclear; -import com.hbm.entity.missile.EntityMIRV; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.entity.projectile.EntityExplosiveBeam; -import com.hbm.entity.projectile.EntityMiniMIRV; -import com.hbm.entity.projectile.EntityMiniNuke; import com.hbm.handler.ArmorUtil; -import com.hbm.interfaces.Spaghetti; +import com.hbm.entity.effect.EntityBlackHole; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; @@ -46,7 +38,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; @@ -66,55 +57,11 @@ public class ExplosionNukeGeneric { private final static Random random = new Random(); - - /*public static void detonateTestBomb(World world, int x, int y, int z, int bombStartStrength) { - int r = bombStartStrength; - int r2 = r * r; - int r22 = r2 / 2; - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (r22 >= 25) { - if (ZZ < r22 + world.rand.nextInt(r22 / 25)) { - if (Y >= y) - destruction(world, X, Y, Z); - } - } else { - if (ZZ < r22) { - if (Y >= y) - destruction(world, X, Y, Z); - } - } - } - } - } - - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy * 50; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (ZZ < r22) { - if (Y < y) - destruction(world, X, Y, Z); - } - } - } - } -} -*/ public static void empBlast(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength; int r2 = r * r; @@ -137,69 +84,6 @@ public static void empBlast(World world, int x, int y, int z, int bombStartStren } } - public static void dealDamage(World world, double x, double y, double z, double radius) { - dealDamage(world, x, y, z, radius, 250F); - } - - public static void dealDamage(World world, double x, double y, double z, double radius, float maxDamage) { - List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(x, y, z, x, y, z).grow(radius, radius, radius)); - - for(Entity e : list) { - - double dist = e.getDistance(x, y, z); - - if(dist <= radius) { - - double entX = e.posX; - double entY = e.posY + e.getEyeHeight(); - double entZ = e.posZ; - - if(!isExplosionExempt(e) && !Library.isObstructed(world, x, y, z, entX, entY, entZ)) { - - double damage = maxDamage * (radius - dist) / radius; - e.attackEntityFrom(ModDamageSource.nuclearBlast, (float)damage); - e.setFire(5); - - double knockX = e.posX - x; - double knockY = e.posY + e.getEyeHeight() - y; - double knockZ = e.posZ - z; - - Vec3d knock = new Vec3d(knockX, knockY, knockZ); - knock = knock.normalize(); - - e.motionX += knock.x * 0.2D; - e.motionY += knock.y * 0.2D; - e.motionZ += knock.z * 0.2D; - } - } - } - - } - - @Spaghetti("just look at it") - private static boolean isExplosionExempt(Entity e) { - - if (e instanceof EntityOcelot || - e instanceof EntityNukeCloudSmall || - e instanceof EntityMIRV || - e instanceof EntityMiniNuke || - e instanceof EntityMiniMIRV || - e instanceof EntityGrenadeASchrab || - e instanceof EntityGrenadeNuclear || - e instanceof EntityExplosiveBeam || - e instanceof EntityBulletBase || - e instanceof EntityPlayer && - ArmorUtil.checkArmor((EntityPlayer) e, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { - return true; - } - - if (e instanceof EntityPlayerMP && (((EntityPlayerMP)e).isCreative() || ((EntityPlayerMP)e).isSpectator())) { - return true; - } - - return false; - } - public static void succ(World world, int x, int y, int z, int radius) { int i; int j; @@ -247,87 +131,6 @@ public static void succ(World world, int x, int y, int z, int radius) { } } - public static boolean dedify(World world, int x, int y, int z, int radius) { - int i; - int j; - int k; - double d5; - double d6; - double d7; - double wat = radius; - - // bombStartStrength *= 2.0F; - i = MathHelper.floor(x - wat - 1.0D); - j = MathHelper.floor(x + wat + 1.0D); - k = MathHelper.floor(y - wat - 1.0D); - int i2 = MathHelper.floor(y + wat + 1.0D); - int l = MathHelper.floor(z - wat - 1.0D); - int j2 = MathHelper.floor(z + wat + 1.0D); - List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(i, k, l, j, i2, j2)); - - for (int i1 = 0; i1 < list.size(); ++i1) { - Entity entity = (Entity) list.get(i1); - double d4 = entity.getDistance(x, y, z) / radius; - - if (d4 <= 1.0D) { - d5 = entity.posX - x; - d6 = entity.posY + entity.getEyeHeight() - y; - d7 = entity.posZ - z; - double d9 = MathHelper.sqrt(d5 * d5 + d6 * d6 + d7 * d7); - if (d9 < wat && !(entity instanceof EntityPlayer - && ArmorUtil.checkArmor((EntityPlayer) entity, ModItems.euphemium_helmet, - ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots))) { - d5 /= d9; - d6 /= d9; - d7 /= d9; - // double d10 = (double)world.getBlockDensity(vec3, - // entity.boundingBox); - // if(d10 > 0) isOccupied = true; - - if(entity instanceof EntityItem && ((EntityItem)entity).getItem().getItem() == ModItems.flame_pony) { - entity.setDead(); - return true; - } - if(entity instanceof EntityItem && ((EntityItem)entity).getItem().getItem() == ModItems.pellet_antimatter) { - entity.setDead(); - return true; - } - - if (!(entity instanceof EntityPlayerMP && ((EntityPlayerMP) entity).interactionManager.getGameType() == GameType.CREATIVE)) { - entity.attackEntityFrom(ModDamageSource.blackhole, 1000F); - } - - if(!(entity instanceof EntityLivingBase) && !(entity instanceof EntityPlayerMP) && !(entity instanceof EntityBlackHole)) { - if(random.nextInt(8) == 0) - entity.setDead(); - } - } - } - } - - return false; - } - - /*public static void vapor(World world, int x, int y, int z, int bombStartStrength) { - int r = bombStartStrength * 2; - int r2 = r * r; - int r22 = r2 / 2; - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (ZZ < r22) - vaporDest(world, X, Y, Z); - } - } - } - } -*/ @SuppressWarnings("deprecation") public static int destruction(World world, BlockPos pos) { int rand; @@ -397,6 +200,9 @@ public static int vaporDest(World world, BlockPos pos) { } public static void waste(World world, int x, int y, int z, int radius) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = radius; int r2 = r * r; @@ -480,7 +286,7 @@ else if (b == Blocks.BROWN_MUSHROOM_BLOCK) { } } - else if(b == Blocks.DIRT) { + else if(b == Blocks.DIRT || b == Blocks.FARMLAND) { world.setBlockState(pos, ModBlocks.waste_dirt.getDefaultState()); } @@ -497,7 +303,7 @@ else if(b instanceof BlockBush || b == Blocks.TALLGRASS) { } else if(b == Blocks.STONE){ - world.setBlockState(pos, ModBlocks.sellafield_slaked.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_slaked.getStateFromMeta(world.rand.nextInt(4))); } else if(b == Blocks.BEDROCK){ @@ -547,6 +353,9 @@ else if (b == ModBlocks.ore_gneiss_uranium) { } public static void wasteNoSchrab(World world, BlockPos pos, int radius) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); @@ -626,7 +435,7 @@ else if(b instanceof BlockBush || b == Blocks.TALLGRASS) { } else if(b == Blocks.STONE){ - world.setBlockState(pos, ModBlocks.sellafield_slaked.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_slaked.getStateFromMeta(world.rand.nextInt(4))); } else if(b == Blocks.BEDROCK){ @@ -675,7 +484,9 @@ else if (b == Blocks.RED_MUSHROOM_BLOCK) { public static void emp(World world, BlockPos pos) { if (!world.isRemote) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } Block b = world.getBlockState(pos).getBlock(); TileEntity te = world.getTileEntity(pos); @@ -767,6 +578,7 @@ public static void loadSoliniumFromFile(){ public static void solinium(World world, BlockPos pos) { if (!world.isRemote) { + IBlockState b = world.getBlockState(pos); Material m = b.getMaterial(); @@ -803,16 +615,36 @@ public static void solinium(World world, BlockPos pos) { return; } + if(b.getBlock() == ModBlocks.toxic_block) { + world.setBlockToAir(pos); + return; + } + if(b.getBlock() == ModBlocks.waste_trinitite || b.getBlock() == ModBlocks.waste_sand) { world.setBlockState(pos, Blocks.SAND.getDefaultState()); return; } + if(b.getBlock() == ModBlocks.waste_terracotta) { + world.setBlockState(pos, Blocks.STAINED_HARDENED_CLAY.getDefaultState()); + return; + } + if(b.getBlock() == ModBlocks.waste_trinitite_red) { world.setBlockState(pos, Blocks.SAND.getStateFromMeta(1)); return; } + if(b.getBlock() == ModBlocks.waste_sandstone) { + world.setBlockState(pos, Blocks.SANDSTONE.getDefaultState()); + return; + } + + if(b.getBlock() == ModBlocks.waste_sandstone_red) { + world.setBlockState(pos, Blocks.RED_SANDSTONE.getDefaultState()); + return; + } + if(b.getBlock() == ModBlocks.waste_gravel) { world.setBlockState(pos, Blocks.GRAVEL.getDefaultState()); return; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java deleted file mode 100644 index cb7bc9d427..0000000000 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ /dev/null @@ -1,376 +0,0 @@ -package com.hbm.explosion; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import com.hbm.lib.Library; -import com.hbm.render.amlfrom1710.Vec3; - -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockPos.MutableBlockPos; -import net.minecraft.world.Explosion; -import net.minecraft.world.World; - -public class ExplosionNukeRay { - private int maxSamples; - private double phi; - public boolean isContained=true; - - World world; - float posX; - float posY; - float posZ; - int radius; - int processed; - int currentSample; - - private List affectedBlocks = new ArrayList(); - public boolean isAusf3Complete = false; - public Random rand = new Random(); - - public ExplosionNukeRay(World world, int x, int y, int z, int radius) { - this.world = world; - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - this.radius = radius; - //Ausf3, must be double - //this.startY = strength; - //Mk 4.5, must be int32 - this.currentSample = 0; - this.maxSamples = (int) (5 * Math.PI * Math.pow(radius, 2)); - this.phi = 2 * Math.PI * ((1 + Math.sqrt(5))/2); - } - - //currently used by mk4 - @SuppressWarnings("deprecation") - public void collectTipMk6(int count) { - MutableBlockPos pos = new BlockPos.MutableBlockPos(); - int raysProcessed = 0; - - FloatTriplet lastPos = new FloatTriplet(posX, posY, posZ); - for(int s = currentSample; s < this.maxSamples; s++) { - FloatTriplet direction = this.getNormalFibVec(s); - float rayEnergy = (float)radius * 0.7F; - for(int l = 0; l < this.radius+1; l++){ - float x0 = (float) (posX + direction.xCoord * l); - float y0 = (float) (posY + direction.yCoord * l); - float z0 = (float) (posZ + direction.zCoord * l); - if(y0 < 1 || y0 > 256){ - if(affectedBlocks.size() < Integer.MAX_VALUE - 100) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - - pos.setPos(x0, y0, z0); - rayEnergy -= Math.pow(getNukeResistance(pos), 7F * (l/this.radius)+0.5F); - - if(rayEnergy > 0 && world.getBlockState(pos).getBlock() != Blocks.AIR){ - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(rayEnergy <= 0 || l == this.radius) { - if(isContained){ - if(l == this.radius){ - isContained = false; - } - } - if(affectedBlocks.size() < Integer.MAX_VALUE - 100) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - } - raysProcessed++; - if(raysProcessed >= count) { - currentSample = s; - return; - } - } - isAusf3Complete = true; - } - - private float getNukeResistance(MutableBlockPos pos){ - if(world.getBlockState(pos).getMaterial().isLiquid()) - return 0.1F; - else - return world.getBlockState(pos).getBlock().getExplosionResistance(null)+0.1F; - } - - // private FloatTriplet getNormalFibVec(int sample){ - // double fy = (2D * sample / (this.maxSamples - 1D)) - 1D; // y goes from 1 to -1 - // double fr = Math.sqrt(1D - fy * fy); // radius at y - - // double theta = phi * sample; // golden angle increment - // return new FloatTriplet((float)(Math.cos(theta) * fr), (float)fy, (float)(Math.sin(theta) * fr)); - // } - - private FloatTriplet getNormalFibVec(int sample){ - double angle1 = Math.acos((sample * 2D/ (double)this.maxSamples) - 1D); - double angle2 = phi * sample; - double x = Math.sin(angle1) * Math.cos(angle2); - double y = Math.cos(angle1); - double z = Math.sin(angle1) * Math.sin(angle2); - - return new FloatTriplet((float)x, (float)y, (float)z); - } - - // //currently used by mk4 - // @SuppressWarnings("deprecation") - // public void collectTipMk4_5(int count) { - // MutableBlockPos pos = new BlockPos.MutableBlockPos(); - // int raysProcessed = 0; - - // double bow = Math.PI * this.strength; - // double bowCount = Math.ceil(bow); - - // //Axial - // //StartY starts at this.length - // for(int v = startY; v <= bowCount; v++) { - - // float part = (float) (Math.PI/bow); - // float rot = part * -v; - - // Vec3 heightVec = Vec3.createVectorHelper(0, -strength, 0); - // heightVec.rotateAroundZ(rot); - - // double y = heightVec.yCoord; - - // double sectionRad = Math.sqrt(Math.pow(strength, 2) - Math.pow(y, 2)); - // double circumference = 2 * Math.PI * sectionRad; - - // //Radial - // //StartCir starts at circumference - // for(int r = startCir; r < circumference; r ++) { - - // Vec3 vec = Vec3.createVectorHelper(sectionRad, y, 0); - // vec = vec.normalize(); - // /*if(y > 0) - // vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - // /*if(y < 0) - // vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - // vec.rotateAroundY((float) (360 / circumference * r)); - - // int length = (int)Math.ceil(strength); - - // float res = strength; - - // FloatTriplet lastPos = null; - - // for(int i = 0; i < length; i ++) { - - // if(i > this.length) - // break; - - // float x0 = (float) (posX + (vec.xCoord * i)); - // float y0 = (float) (posY + (vec.yCoord * i)); - // float z0 = (float) (posZ + (vec.zCoord * i)); - // pos.setPos(x0, y0, z0); - // double fac = 100 - ((double) i) / ((double) length) * 100; - // fac *= 0.07D; - - // if(!world.getBlockState(pos).getMaterial().isLiquid()) - // res -= Math.pow(world.getBlockState(pos).getBlock().getExplosionResistance(null), 7.5D - fac); - // else - // res -= Math.pow(Blocks.AIR.getExplosionResistance(null), 7.5D - fac); - - // if(res > 0 && world.getBlockState(pos).getBlock() != Blocks.AIR) { - // lastPos = new FloatTriplet(x0, y0, z0); - // } - - // if(res <= 0 || i + 1 >= this.length) { - // if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - // affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - // } - // break; - // } - // } - - // raysProcessed++; - - // if(raysProcessed >= count) { - // startY = v; - // startCir = startCir + 1; - // return; - // } - // } - // } - - // isAusf3Complete = true; - // } - - public void processTip(int count) { - MutableBlockPos pos = new BlockPos.MutableBlockPos(); - int processedBlocks = 0; - int braker = 0; - - for(int l = 0; l < Integer.MAX_VALUE; l++) { - - if(processedBlocks >= count) - return; - - if(braker >= count * 50) - return; - - if(l > affectedBlocks.size() - 1) - break; - - if(affectedBlocks.isEmpty()) - return; - - int in = affectedBlocks.size() - 1; - - float x = affectedBlocks.get(in).xCoord; - float y = affectedBlocks.get(in).yCoord; - float z = affectedBlocks.get(in).zCoord; - pos.setPos(x, y, z); - world.setBlockToAir(pos); - - Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); - double pX = vec.xCoord / vec.lengthVector(); - double pY = vec.yCoord / vec.lengthVector(); - double pZ = vec.zCoord / vec.lengthVector(); - - for(int i = 0; i < vec.lengthVector(); i ++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); - pos.setPos(x0, y0, z0); - if(!world.isAirBlock(pos)) { - world.setBlockToAir(pos); - world.scheduleBlockUpdate(pos, world.getBlockState(pos).getBlock(), 0, 0); - processedBlocks++; - } - - braker++; - } - affectedBlocks.remove(in); - } - processed += count; - } - - - public void collectTip(int count) { - MutableBlockPos pos = new BlockPos.MutableBlockPos(); - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(this.radius); - - float res = this.radius; - - FloatTriplet lastPos = null; - Explosion dummy = Library.explosionDummy(world, x, y, z); - - for(int i = 0; i < length; i ++) { - - if(i > this.radius) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - pos.setPos(x0, y0, z0); - if(!world.getBlockState(pos).getMaterial().isLiquid()) - res -= Math.pow(world.getBlockState(pos).getBlock().getExplosionResistance(world, pos, null, dummy), 1.25); - else - res -= Math.pow(Blocks.AIR.getExplosionResistance(world, pos, null, dummy), 1.25); - - if(res > 0 && world.getBlockState(pos).getBlock() != Blocks.AIR) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.radius) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } - - - @SuppressWarnings("deprecation") - public void collectTipExperimental(int count) { - MutableBlockPos pos = new BlockPos.MutableBlockPos(); - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(this.radius); - - float res = this.radius; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.radius) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - pos.setPos(x0, y0, z0); - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlockState(pos).getMaterial().isLiquid()) - res -= Math.pow(world.getBlockState(pos).getBlock().getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.AIR.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlockState(pos).getBlock() != Blocks.AIR) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.radius) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } - - - - - public void deleteStorage() { - this.affectedBlocks.clear(); - } - - public int getStoredSize() { - return this.affectedBlocks.size(); - } - - public int getProgress() { - return this.processed; - } - - public class FloatTriplet { - public float xCoord; - public float yCoord; - public float zCoord; - - public FloatTriplet(float x, float y, float z) { - xCoord = x; - yCoord = y; - zCoord = z; - } - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java new file mode 100644 index 0000000000..17a8966d93 --- /dev/null +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -0,0 +1,257 @@ +package com.hbm.explosion; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import com.hbm.config.CompatibilityConfig; +import com.hbm.render.amlfrom1710.Vec3; + +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.math.BlockPos.MutableBlockPos; + +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class ExplosionNukeRayBatched { + + public HashMap> perChunk = new HashMap(); //for future: optimize blockmap further by using sub-chunks instead of chunks + public List orderedChunks = new ArrayList(); + private CoordComparator comparator = new CoordComparator(); + public boolean isContained = true; + int posX; + int posY; + int posZ; + World world; + + int strength; + int radius; + + int gspNumMax; + int gspNum; + double gspX; + double gspY; + + public boolean isAusf3Complete = false; + + public ExplosionNukeRayBatched(World world, int x, int y, int z, int strength, int radius) { + this.world = world; + this.posX = x; + this.posY = y; + this.posZ = z; + this.strength = strength; + this.radius = radius; + + // Total number of points + this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength, 2)); + this.gspNum = 1; + + // The beginning of the generalized spiral points + this.gspX = Math.PI; + this.gspY = 0.0; + } + + private void generateGspUp(){ + if (this.gspNum < this.gspNumMax) { + int k = this.gspNum + 1; + double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); + this.gspX = Math.acos(hk); + + double prev_lon = this.gspY; + double lon = prev_lon + 3.6 / Math.sqrt(this.gspNumMax) / Math.sqrt(1.0 - hk * hk); + this.gspY = lon % (Math.PI * 2); + } else { + this.gspX = 0.0; + this.gspY = 0.0; + } + this.gspNum++; + } + + // Get Cartesian coordinates for spherical coordinates + private Vec3 getSpherical2cartesian(){ + double dx = Math.sin(this.gspX) * Math.cos(this.gspY); + double dz = Math.sin(this.gspX) * Math.sin(this.gspY); + double dy = Math.cos(this.gspX); + return Vec3.createVectorHelper(dx, dy, dz); + } + + public void collectTip(int count) { + if(!CompatibilityConfig.isWarDim(world)){ + isAusf3Complete = true; + return; + } + MutableBlockPos pos = new BlockPos.MutableBlockPos(); + int rayProcessed = 0; + double fac = 1; + while (this.gspNumMax >= this.gspNum){ + // Get Cartesian coordinates for spherical coordinates + Vec3 vec = this.getSpherical2cartesian(); + + int radius = (int)Math.ceil(this.radius); + float rayStrength = strength * 0.3F; + + FloatTriplet lastPos = null; + HashSet chunkCoords = new HashSet(); + + for(int r = 0; r < radius+1; r ++) { + + float x0 = (float) (posX + (vec.xCoord * r)); + float y0 = (float) (posY + (vec.yCoord * r)); + float z0 = (float) (posZ + (vec.zCoord * r)); + + int iX = (int) Math.floor(x0); + int iY = (int) Math.floor(y0); + int iZ = (int) Math.floor(z0); + + pos.setPos(iX, iY, iZ); + IBlockState blockState = world.getBlockState(pos); + if(blockState.getBlock().getExplosionResistance(null) >= 2_000_000) + break; + + fac = 3 * ((double) r) / ((double) radius); + rayStrength -= Math.pow(getNukeResistance(blockState)+1, fac)-1; + + //save block positions in to-destroy-list until rayStrength is 0 + if(rayStrength > 0){ + lastPos = new FloatTriplet(x0, y0, z0); + if(blockState.getBlock() != Blocks.AIR) { + //all-air chunks don't need to be buffered at all + ChunkPos chunkPos = new ChunkPos(iX >> 4, iZ >> 4); + chunkCoords.add(chunkPos); + } + if(isContained && r == radius) { + isContained = false; + } + } else { + break; + } + } + + //saving the ray endpoints per chunk + for(ChunkPos cPos : chunkCoords) { + List triplets = perChunk.get(cPos); + + if(triplets == null) { + triplets = new ArrayList(); + perChunk.put(cPos, triplets); //we re-use the same pos instead of using individualized per-chunk ones to save on RAM + } + + triplets.add(lastPos); + } + + // Raise one generalized spiral points + this.generateGspUp(); + + rayProcessed++; + if(rayProcessed >= count) { + return; + } + } + + orderedChunks.addAll(perChunk.keySet()); + orderedChunks.sort(comparator); + + isAusf3Complete = true; + } + + public static float getNukeResistance(IBlockState blockState) { + if(blockState.getMaterial().isLiquid()){ + return 0.1F; + } else { + if(blockState.getBlock() == Blocks.SANDSTONE) return 4F; + if(blockState.getBlock() == Blocks.OBSIDIAN) return 18F; + return blockState.getBlock().getExplosionResistance(null); + } + } + + /** little comparator for roughly sorting chunks by distance to the center */ + public class CoordComparator implements Comparator { + + @Override + public int compare(ChunkPos o1, ChunkPos o2) { + + int chunkX = ExplosionNukeRayBatched.this.posX >> 4; + int chunkZ = ExplosionNukeRayBatched.this.posZ >> 4; + + int diff1 = Math.abs((chunkX - (int) (o1.getXStart() >> 4))) + Math.abs((chunkZ - (int) (o1.getZStart() >> 4))); + int diff2 = Math.abs((chunkX - (int) (o2.getXStart() >> 4))) + Math.abs((chunkZ - (int) (o2.getZStart() >> 4))); + + return diff1 > diff2 ? 1 : diff1 < diff2 ? -1 : 0; + } + } + + public void processChunk() { + if(!CompatibilityConfig.isWarDim(world)){ + this.perChunk.clear(); + } + if(this.perChunk.isEmpty()) return; + + ChunkPos coord = orderedChunks.get(0); + List list = perChunk.get(coord); + HashSet toRem = new HashSet(); + + int chunkX = coord.getXStart() >> 4; + int chunkZ = coord.getZStart() >> 4; + + int enter = (int) (Math.min( + Math.abs(posX - (chunkX << 4)), + Math.abs(posZ - (chunkZ << 4)) + )) - 16; //jump ahead to cut back on NOPs + + enter = Math.max(enter, 0); + + for(FloatTriplet triplet : list) { + float x = triplet.xCoord; + float y = triplet.yCoord; + float z = triplet.zCoord; + Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); + double vLen = vec.lengthVector(); + double pX = vec.xCoord / vLen; + double pY = vec.yCoord / vLen; + double pZ = vec.zCoord / vLen; + + boolean inChunk = false; + for(int i = enter; i < vLen; i++) { + int x0 = (int) Math.floor(posX + pX * i); + int y0 = (int) Math.floor(posY + pY * i); + int z0 = (int) Math.floor(posZ + pZ * i); + + if(x0 >> 4 != chunkX || z0 >> 4 != chunkZ) { + if(inChunk) { + break; + } else { + continue; + } + } + + inChunk = true; + if(world.getBlockState(new BlockPos(x0, y0, z0)).getBlock() != Blocks.AIR) { + toRem.add(new BlockPos(x0, y0, z0)); + } + } + } + for(BlockPos pos : toRem) { + world.setBlockToAir(pos); + } + + perChunk.remove(coord); + orderedChunks.remove(0); + } + + public class FloatTriplet { + public float xCoord; + public float yCoord; + public float zCoord; + + public FloatTriplet(float x, float y, float z) { + xCoord = x; + yCoord = y; + zCoord = z; + } + } +} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java deleted file mode 100644 index 00a3afabcd..0000000000 --- a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.explosion; - -import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.lib.HBMSoundHandler; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.saveddata.RadiationSavedData; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; - -public class ExplosionNukeSmall { - - public static final int safe = 0; - public static final int tots = 1; - public static final int low = 2; - public static final int medium = 3; - public static final int high = 4; - - public static void explode(World world, double posX, double posY, double posZ, int size) { - - - //all sizes have the same animation except tiny tots - NBTTagCompound data = new NBTTagCompound(); - if(size == tots) - data.setString("type", "tinytot"); - else - data.setString("type", "muke"); - if(MainRegistry.polaroidID == 11 || world.rand.nextInt(100) == 0) - data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(world.provider.getDimension(), posX, posY, posZ, 250)); - world.playSound(null, posX, posY, posZ, HBMSoundHandler.mukeExplosion, SoundCategory.HOSTILE, 15.0F, 1.0F); - - //no shrapnels for large mukes and tinty tots - if(size != high && size != tots) - ExplosionLarge.spawnShrapnels(world, posX, posY, posZ, 25); - - if(size == safe) { - ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 45); - - } else if(size > safe && size < high) { - - switch(size) { - case 1: new ExplosionNT(world, null, posX, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).overrideResolution(32).explode(); - ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 30); break; - - case 2: new ExplosionNT(world, null, posX, posY, posZ, 15F).addAllAttrib(ExplosionNT.nukeAttribs).overrideResolution(64).explode(); - ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 45); break; - - case 3: new ExplosionNT(world, null, posX, posY, posZ, 20F).addAllAttrib(ExplosionNT.nukeAttribs).overrideResolution(64).explode(); - /*new ExplosionNT(world, null, posX + 7, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(world, null, posX - 7, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(world, null, posX, posY, posZ + 7, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode(); - new ExplosionNT(world, null, posX, posY, posZ - 7, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();*/ - ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 55); break; - } - - } else if(size == high) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ).mute()); - } - - //radiation is 50 RAD/s in the epicenter, times the radMod - float radMod = size * 0.33F; - - //radMod for safe nukes is the same as for low yield - if(size == safe) - radMod = 0.66F; - - for(int i = -2; i <= 2; i++) - for(int j = -2; j <= 2; j++) - if(i + j < 4) - RadiationSavedData.incrementRad(world, new BlockPos((int)posX + i * 16, posY, (int)posZ + j * 16), 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod, 1000); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/ExplosionParticle.java b/src/main/java/com/hbm/explosion/ExplosionParticle.java deleted file mode 100644 index 187e161fce..0000000000 --- a/src/main/java/com/hbm/explosion/ExplosionParticle.java +++ /dev/null @@ -1,673 +0,0 @@ -package com.hbm.explosion; - -import com.hbm.entity.particle.EntitySmokeFX; - -import net.minecraft.world.World; - -public class ExplosionParticle { - public static void spawnMush(World world, double x, double y, double z) - { - x -= 6; - z -= 6; - - /*world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 0, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 0, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 14, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 14, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 3, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 3, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 3, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 3, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 3, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 4, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 4, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 4, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 4, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 5, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 5, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 5, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 5, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 5, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 7, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 7, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 7, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 7, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 7, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 8, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 8, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 8, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 8, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 1, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 1, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 13, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 13, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 2, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 2, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 12, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 12, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 3, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 3, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 11, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 11, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 4, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 5, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 4, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 10, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 5, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 9, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 9, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 10, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 17, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 17, (double) z + 6, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 7, (double) y + 17, (double) z + 7, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 6, (double) y + 17, (double) z + 8, 0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, (double)x + 8, (double) y + 17, (double) z + 8, 0.0, 0.0, 0.0));*/ - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 0, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 0, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 0, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 0, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 0, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 0, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 0, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 0, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 1, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 1, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 1, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 1, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 1, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 1, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 1, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 2, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 2, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 2, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 2, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 2, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 2, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 2, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 2, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0)); - y += 2; - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0)); - - /*world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 6, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 6, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 6, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 6, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 6, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 6, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 6, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 6, z + 9,0.0, 0.0, 0.0));*/ - y--; - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 7, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 7, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 7, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 7, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 8, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 9, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 9, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 9, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 9, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 9, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 9, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 10, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 10, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 10, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 10, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 10, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 10, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 11, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 11, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 11, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 11, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 11, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 11, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 11, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 11, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 10,0.0, 0.0, 0.0)); - // - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - // - y -= 2; - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - y += 2; - // - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 13, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 0, y + 13, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 12, y + 13, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 13, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 14, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 14, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 14, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 14, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 14, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 14, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 14, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 14, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 14, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 14, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 3, y + 14, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 9, y + 14, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 15, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 15, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 15, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 2, y + 15, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 10, y + 15, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 4, y + 15, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 8, y + 15, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 6, y + 15, z + 10,0.0, 0.0, 0.0)); - /*world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 17, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 17, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 5, y + 17, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntitySmokeFX(world, x + 7, y + 17, z + 7,0.0, 0.0, 0.0));*/ - - - - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionParticleB.java b/src/main/java/com/hbm/explosion/ExplosionParticleB.java deleted file mode 100644 index 9abad98010..0000000000 --- a/src/main/java/com/hbm/explosion/ExplosionParticleB.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.hbm.explosion; - -import com.hbm.entity.particle.EntityBSmokeFX; - -import net.minecraft.world.World; - -public class ExplosionParticleB { - public static void spawnMush(World world, double x, double y, double z) - { - x -= 6; - z -= 6; - - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 0, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 0, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 0, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 0, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 0, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 0, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 0, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 0, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 0, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 0, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 0, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 0, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 1, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 1, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 1, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 1, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 1, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 1, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 1, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 1, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 1, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 2, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 2, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 2, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 2, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 2, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 2, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 2, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 2, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0)); - y += 2; - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0)); - y--; - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 7, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 7, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 7, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 7, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 8, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 9, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 9, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 9, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 9, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 9, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 9, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 9, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 10, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 10, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 10, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 10, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 10, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 10, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 10, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 11, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 11, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 11, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 11, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 11, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 11, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 11, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 11, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 10,0.0, 0.0, 0.0)); - // - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - // - y -= 2; - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0)); - y += 2; - // - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 13, z + 0,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 0, y + 13, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 12, y + 13, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 13, z + 12,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 14, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 14, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 14, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 14, z + 3,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 14, z + 5,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 5, y + 14, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 7, y + 14, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 14, z + 7,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 14, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 14, z + 9,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 3, y + 14, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 9, y + 14, z + 10,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 15, z + 2,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 15, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 15, z + 4,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 2, y + 15, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 10, y + 15, z + 6,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 4, y + 15, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 8, y + 15, z + 8,0.0, 0.0, 0.0)); - world.spawnEntity(new EntityBSmokeFX(world, x + 6, y + 15, z + 10,0.0, 0.0, 0.0)); - - - - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionSolinium.java b/src/main/java/com/hbm/explosion/ExplosionSolinium.java index 7ef8b68885..de0035f91f 100644 --- a/src/main/java/com/hbm/explosion/ExplosionSolinium.java +++ b/src/main/java/com/hbm/explosion/ExplosionSolinium.java @@ -1,5 +1,7 @@ package com.hbm.explosion; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; @@ -74,8 +76,10 @@ public ExplosionSolinium(int x, int y, int z, World world, int rad, float coeffi this.nlimit = this.radius2 * 4; } - public boolean update() - { + public boolean update() { + if(!CompatibilityConfig.isWarDim(worldObj)){ + return true; + } breakColumn(this.lastposX, this.lastposZ); this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); int shell2 = this.shell * 2; diff --git a/src/main/java/com/hbm/explosion/ExplosionThermo.java b/src/main/java/com/hbm/explosion/ExplosionThermo.java index 5ea8fff69f..a21e502f11 100644 --- a/src/main/java/com/hbm/explosion/ExplosionThermo.java +++ b/src/main/java/com/hbm/explosion/ExplosionThermo.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.WasteLog; import com.hbm.handler.ArmorUtil; @@ -28,6 +29,9 @@ public class ExplosionThermo { public static void freeze(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength * 2; int r2 = r * r; @@ -50,6 +54,9 @@ public static void freeze(World world, int x, int y, int z, int bombStartStrengt } public static void scorch(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength * 2; int r2 = r * r; @@ -184,6 +191,9 @@ public static void freezeDest(World world, BlockPos pos) { } public static void freezer(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } float f = bombStartStrength; int i; int j; @@ -234,7 +244,9 @@ public static void freezer(World world, int x, int y, int z, int bombStartStreng } public static void setEntitiesOnFire(World world, double x, double y, double z, int radius) { - + if(!CompatibilityConfig.isWarDim(world)){ + return; + } List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(x - radius, y - radius, z - radius, x + radius, y + radius, z + radius)); for(Entity e : list) { @@ -253,6 +265,9 @@ public static void setEntitiesOnFire(World world, double x, double y, double z, } public static void scorchLight(World world, int x, int y, int z, int bombStartStrength) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bombStartStrength * 2; int r2 = r*r; @@ -333,6 +348,9 @@ public static void scorchDestLight(World world, BlockPos pos) { } } public static void snow(World world, int x, int y, int z, int bound) { + if(!CompatibilityConfig.isWarDim(world)){ + return; + } MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = bound; @@ -360,6 +378,5 @@ public static void snow(World world, int x, int y, int z, int bound) { } } } - } } diff --git a/src/main/java/com/hbm/explosion/ExplosionTom.java b/src/main/java/com/hbm/explosion/ExplosionTom.java index a71db35852..3f9c6bef78 100644 --- a/src/main/java/com/hbm/explosion/ExplosionTom.java +++ b/src/main/java/com/hbm/explosion/ExplosionTom.java @@ -1,5 +1,7 @@ package com.hbm.explosion; +import com.hbm.config.CompatibilityConfig; + import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; @@ -65,8 +67,10 @@ public ExplosionTom(int x, int y, int z, World world, int rad) this.nlimit = this.radius2 * 4; } - public boolean update() - { + public boolean update() { + if(!CompatibilityConfig.isWarDim(worldObj)){ + return true; + } breakColumn(this.lastposX, this.lastposZ); this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); int shell2 = this.shell * 2; diff --git a/src/main/java/com/hbm/forgefluid/FFPipeNetworkMk2.java b/src/main/java/com/hbm/forgefluid/FFPipeNetworkMk2.java index d64f8a3c9e..376ef109dd 100644 --- a/src/main/java/com/hbm/forgefluid/FFPipeNetworkMk2.java +++ b/src/main/java/com/hbm/forgefluid/FFPipeNetworkMk2.java @@ -107,8 +107,13 @@ public void checkForRemoval(TileEntity te) { return; if(te instanceof IFluidPipeMk2) { pipes.remove(te.getPos()); - } else if(te.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { - fillables.remove(te.getPos()); + } else{ + try{ + if(te.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { + fillables.remove(te.getPos()); + } + } catch(Throwable t){ + } } } diff --git a/src/main/java/com/hbm/forgefluid/FFUtils.java b/src/main/java/com/hbm/forgefluid/FFUtils.java index 3fbc83d06c..d938cb94a4 100644 --- a/src/main/java/com/hbm/forgefluid/FFUtils.java +++ b/src/main/java/com/hbm/forgefluid/FFUtils.java @@ -12,6 +12,7 @@ import com.hbm.interfaces.IItemFluidHandler; import com.hbm.inventory.FluidCombustionRecipes; import com.hbm.inventory.HeatRecipes; +import com.hbm.inventory.EngineRecipes; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.items.ModItems; import com.hbm.items.armor.JetpackBase; @@ -235,9 +236,17 @@ public static void addFluidInfo(Fluid fluid, List texts){ if (FluidCombustionRecipes.hasFuelRecipe(fluid)) { if(isKeyPressed){ - String energy = Library.getShortNumber(FluidCombustionRecipes.getFlameEnergy(fluid) * 1000L); texts.add("§6["+I18n.format("trait.flammable")+"]"); - texts.add(" "+I18n.format("trait.flammable.desc", energy)); + texts.add(" "+I18n.format("trait.flammable.desc", Library.getShortNumber(FluidCombustionRecipes.getFlameEnergy(fluid) * 1000L))); + } + hasInfo = true; + } + if (EngineRecipes.hasFuelRecipe(fluid)) { + if(isKeyPressed){ + texts.add("§c["+I18n.format("trait.combustable")+"]"); + + texts.add(" "+I18n.format("trait.combustable.desc", Library.getShortNumber(EngineRecipes.getEnergy(fluid)))); + texts.add(" "+I18n.format("trait.combustable.desc2", I18n.format(EngineRecipes.getFuelGrade(fluid).getGrade()))); } hasInfo = true; } @@ -337,10 +346,14 @@ public static boolean fillFluid(TileEntity tileEntity, FluidTank tank, World wor return false; } } - IFluidHandler tef = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); - if(tef != null && tef.fill(new FluidStack(tank.getFluid(), Math.min(maxDrain, tank.getFluidAmount())), false) > 0) { - tank.drain(tef.fill(new FluidStack(tank.getFluid(), Math.min(maxDrain, tank.getFluidAmount())), true), true); - return true; + try{ + IFluidHandler tef = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); + if(tef != null && tef.fill(new FluidStack(tank.getFluid(), Math.min(maxDrain, tank.getFluidAmount())), false) > 0) { + tank.drain(tef.fill(new FluidStack(tank.getFluid(), Math.min(maxDrain, tank.getFluidAmount())), true), true); + return true; + } + } catch(Throwable t){ + return false; } } return false; @@ -359,7 +372,7 @@ public static boolean fillFluid(TileEntity tileEntity, FluidTank tank, World wor * - the output slot. * @return true if something was actually filled */ - public static boolean fillFromFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ + public static boolean fillFromFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ // fills fluid from item into tank if(slots == null || tank == null || slots.getSlots() < slot1 || slots.getSlots() < slot2 || slots.getStackInSlot(slot1) == null || slots.getStackInSlot(slot1).isEmpty()) { return false; } @@ -518,6 +531,10 @@ public static boolean checkRestrictions(ItemStack stack, Predicate f return false; } + public static boolean isEmtpyFluidTank(ItemStack stack){ + return stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null) && FluidUtil.getFluidContained(stack) == null; + } + /** * Fills a tank from a fluid handler item. * @@ -530,7 +547,7 @@ public static boolean checkRestrictions(ItemStack stack, Predicate f * @param slot2 * - the output slot */ - public static boolean fillFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ + public static boolean fillFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ //fills fluid from tank into item if(slots == null || tank == null || tank.getFluid() == null || slots.getSlots() < slot1 || slots.getSlots() < slot2 || slots.getStackInSlot(slot1) == null || slots.getStackInSlot(slot1).isEmpty()) { return false; } @@ -580,12 +597,15 @@ public static boolean fillFluidContainer(IItemHandlerModifiable slots, FluidTank } // Ah yes, hacky special methods to make stacks drain. - private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ + private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots, FluidTank tank, int slot1, int slot2){ //drains tank into item ItemStack in = slots.getStackInSlot(slot1); ItemStack out = slots.getStackInSlot(slot2); + ItemStack in1 = in.copy(); + in1.setCount(1); + // Fluid Tank override - if(tank.getFluid() != null && in.getItem() == ModItems.fluid_tank_full && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemFluidTank.isEmptyTank(in) && ((ItemFluidTank.isFullTank(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { + if(tank.getFluid() != null && in.getItem() == ModItems.fluid_tank_full && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemFluidTank.isEmptyTank(in1) && ((ItemFluidTank.isFullTank(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { FluidStack f = tank.drain(1000, true); if(f == null) return false; @@ -600,7 +620,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } // Fluid barrel override - if(tank.getFluid() != null && in.getItem() == ModItems.fluid_barrel_full && tank.drain(16000, false) != null && tank.drain(16000, false).amount == 16000 && ItemFluidTank.isEmptyBarrel(in) && ((ItemFluidTank.isFullBarrel(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { + if(tank.getFluid() != null && in.getItem() == ModItems.fluid_barrel_full && tank.drain(16000, false) != null && tank.drain(16000, false).amount == 16000 && ItemFluidTank.isEmptyBarrel(in1) && ((ItemFluidTank.isFullBarrel(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { FluidStack f = tank.drain(16000, true); if(f == null) return false; @@ -615,7 +635,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } // Canister override - if(tank.getFluid() != null && in.getItem() == ModItems.canister_generic && SpecialContainerFillLists.EnumCanister.contains(tank.getFluid().getFluid()) && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemFluidCanister.isEmptyCanister(in) && ((ItemFluidCanister.isFullCanister(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { + if(tank.getFluid() != null && in.getItem() == ModItems.canister_generic && SpecialContainerFillLists.EnumCanister.contains(tank.getFluid().getFluid()) && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemFluidCanister.isEmptyCanister(in1) && ((ItemFluidCanister.isFullCanister(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { FluidStack f = tank.drain(1000, true); if(f == null) return false; @@ -630,7 +650,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } // Gas canister override - if(tank.getFluid() != null && in.getItem() == ModItems.gas_canister && SpecialContainerFillLists.EnumGasCanister.contains(tank.getFluid().getFluid()) && tank.drain(4000, false) != null && tank.drain(4000, false).amount == 4000 && ItemGasCanister.isEmptyCanister(in) && ((ItemGasCanister.isFullCanister(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { + if(tank.getFluid() != null && in.getItem() == ModItems.gas_canister && SpecialContainerFillLists.EnumGasCanister.contains(tank.getFluid().getFluid()) && tank.drain(4000, false) != null && tank.drain(4000, false).amount == 4000 && ItemGasCanister.isEmptyCanister(in1) && ((ItemGasCanister.isFullCanister(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { FluidStack f = tank.drain(4000, true); if(f == null) return false; @@ -646,7 +666,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots // Cell override - if(tank.getFluid() != null && in.getItem() == ModItems.cell && SpecialContainerFillLists.EnumCell.contains(tank.getFluid().getFluid()) && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemCell.isEmptyCell(in) && ((ItemCell.isFullCell(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { + if(tank.getFluid() != null && in.getItem() == ModItems.cell && SpecialContainerFillLists.EnumCell.contains(tank.getFluid().getFluid()) && tank.drain(1000, false) != null && tank.drain(1000, false).amount == 1000 && ItemCell.isEmptyCell(in1) && ((ItemCell.isFullCell(out, tank.getFluid().getFluid()) && out.getCount() < 64) || out.isEmpty())) { FluidStack f = tank.drain(1000, true); if(f == null) return false; @@ -663,7 +683,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots // Rod override (extra messy because I don't feel like restarting // minecraft to make a helper method) if(in.getItem() == ModItems.rod_empty) { - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 1000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 1000 && out.isEmpty()) { tank.drain(1000, true); in.shrink(1); @@ -674,7 +694,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 1000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 1000 && out.isEmpty()) { tank.drain(1000, true); in.shrink(1); @@ -685,7 +705,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 1000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 1000 && out.isEmpty()) { tank.drain(1000, true); in.shrink(1); @@ -698,7 +718,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } } if(in.getItem() == ModItems.rod_dual_empty) { - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 2000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 2000 && out.isEmpty()) { tank.drain(2000, true); in.shrink(1); @@ -709,7 +729,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 2000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 2000 && out.isEmpty()) { tank.drain(2000, true); in.shrink(1); @@ -720,7 +740,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 2000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 2000 && out.isEmpty()) { tank.drain(2000, true); in.shrink(1); @@ -733,7 +753,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } } if(in.getItem() == ModItems.rod_quad_empty) { - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 4000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.coolant && tank.getFluid().amount >= 4000 && out.isEmpty()) { tank.drain(4000, true); in.shrink(1); @@ -744,7 +764,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 4000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == ModForgeFluids.tritium && tank.getFluid().amount >= 4000 && out.isEmpty()) { tank.drain(4000, true); in.shrink(1); @@ -755,7 +775,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots } return true; } - if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 4000 && (out.isEmpty() || in.getCount() == 1)) { + if(tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluid().amount >= 4000 && out.isEmpty()) { tank.drain(4000, true); in.shrink(1); @@ -801,7 +821,7 @@ private static boolean trySpecialFillFluidContainer(IItemHandlerModifiable slots return false; } - private static boolean moveItems(IItemHandlerModifiable slots, int in, int out, boolean shouldUseContainerItem){ + public static boolean moveItems(IItemHandlerModifiable slots, int in, int out, boolean shouldUseContainerItem){ if(slots.getStackInSlot(in) != null && !slots.getStackInSlot(in).isEmpty()) { if(shouldUseContainerItem && slots.getStackInSlot(in).getItem().hasContainerItem(slots.getStackInSlot(in))) { slots.setStackInSlot(in, slots.getStackInSlot(in).getItem().getContainerItem(slots.getStackInSlot(in))); diff --git a/src/main/java/com/hbm/forgefluid/HbmFluidHandlerItemStack.java b/src/main/java/com/hbm/forgefluid/HbmFluidHandlerItemStack.java index e08defe458..319ff1ef02 100644 --- a/src/main/java/com/hbm/forgefluid/HbmFluidHandlerItemStack.java +++ b/src/main/java/com/hbm/forgefluid/HbmFluidHandlerItemStack.java @@ -119,6 +119,4 @@ public T getCapability(Capability capability, EnumFacing facing) { public ItemStack getContainer() { return container; } - - } diff --git a/src/main/java/com/hbm/forgefluid/ModForgeFluids.java b/src/main/java/com/hbm/forgefluid/ModForgeFluids.java index c84f76867d..378cb58738 100644 --- a/src/main/java/com/hbm/forgefluid/ModForgeFluids.java +++ b/src/main/java/com/hbm/forgefluid/ModForgeFluids.java @@ -124,7 +124,7 @@ public class ModForgeFluids { public static Fluid experience = new Fluid("experience", new ResourceLocation(RefStrings.MODID, "blocks/forgefluid/experience_still"), new ResourceLocation(RefStrings.MODID, "blocks/forgefluid/experience_flowing"), null, Color.WHITE); //Block fluids - public static Fluid toxic_fluid = new ToxicFluid("toxic_fluid").setDensity(2500).setViscosity(2000).setLuminosity(15).setTemperature(220+273); + public static Fluid toxic_fluid = new ToxicFluid("toxic_fluid").setDensity(2500).setViscosity(2000).setTemperature(70+273); public static Fluid radwater_fluid = new RadWaterFluid("radwater_fluid").setDensity(1000); public static Fluid mud_fluid = new MudFluid().setDensity(2500).setViscosity(3000).setLuminosity(5).setTemperature(1773); public static Fluid schrabidic = new SchrabidicFluid("schrabidic").setDensity(31200).setViscosity(500); diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index dc27463430..ca488a32e6 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -74,7 +74,7 @@ public static boolean isApplicable(ItemStack armor, ItemStack mod) { */ public static void applyMod(ItemStack armor, ItemStack mod) { - if(mod == null | mod.isEmpty()) return; + if(mod == null || mod.isEmpty() || armor == null || armor.isEmpty()) return; if(!armor.hasTagCompound()) armor.setTagCompound(new NBTTagCompound()); diff --git a/src/main/java/com/hbm/handler/ArmorUtil.java b/src/main/java/com/hbm/handler/ArmorUtil.java index 4130b11df7..cc376c47b2 100644 --- a/src/main/java/com/hbm/handler/ArmorUtil.java +++ b/src/main/java/com/hbm/handler/ArmorUtil.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.potion.HbmPotion; @@ -11,7 +12,6 @@ import com.hbm.util.Compat; import api.hbm.item.IGasMask; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -22,7 +22,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.fml.relauncher.ReflectionHelper; @@ -175,7 +174,7 @@ public static boolean checkForFiend(EntityPlayer player) { // Drillgon200: Is there a reason for this method? I don't know and I don't // care to find out. // Alcater: Looks like some kind of hazmat tier 2 check - public static boolean checkForHaz2(EntityPlayer player) { + public static boolean checkForHaz2(EntityLivingBase player) { if(checkArmor(player, ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots) || checkArmor(player, ModItems.paa_helmet, ModItems.paa_plate, ModItems.paa_legs, ModItems.paa_boots) || @@ -193,7 +192,16 @@ public static boolean checkForHaz2(EntityPlayer player) { return false; } - public static boolean checkForHazmat(EntityPlayer player) { + public static boolean checkForHazmatOnly(EntityLivingBase player) { + if(ArmorUtil.checkArmor(player, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots) || + ArmorUtil.checkArmor(player, ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red) || + ArmorUtil.checkArmor(player, ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey)){ + return true; + } + return false; + } + + public static boolean checkForHazmat(EntityLivingBase player) { if(ArmorUtil.checkArmor(player, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots) || ArmorUtil.checkArmor(player, ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red) || ArmorUtil.checkArmor(player, ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey) || @@ -210,7 +218,7 @@ public static boolean checkForHazmat(EntityPlayer player) { return false; } - public static boolean checkForAsbestos(EntityPlayer player) { + public static boolean checkForAsbestos(EntityLivingBase player) { if(ArmorUtil.checkArmor(player, ModItems.asbestos_helmet, ModItems.asbestos_plate, ModItems.asbestos_legs, ModItems.asbestos_boots)) { return true; @@ -219,8 +227,11 @@ public static boolean checkForAsbestos(EntityPlayer player) { return false; } - public static boolean checkArmor(EntityPlayer player, Item helm, Item chest, Item leg, Item shoe) { - if(player.inventory.armorInventory.get(0).getItem() == shoe && player.inventory.armorInventory.get(1).getItem() == leg && player.inventory.armorInventory.get(2).getItem() == chest && player.inventory.armorInventory.get(3).getItem() == helm) { + public static boolean checkArmor(EntityLivingBase player, Item helm, Item chest, Item leg, Item shoe) { + if(player.getItemStackFromSlot(EntityEquipmentSlot.FEET).getItem() == shoe && + player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).getItem() == leg && + player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() == chest && + player.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem() == helm) { return true; } @@ -443,11 +454,11 @@ public static void addGasMaskTooltip(ItemStack mask, World world, List l ItemStack filter = ((IGasMask)mask.getItem()).getFilter(mask); if(filter == null) { - list.add(TextFormatting.RED + I18nUtil.resolveKey("desc.nofilter")); + list.add("§c" + I18nUtil.resolveKey("desc.nofilter")); return; } - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("desc.infilter")); + list.add("§6" + I18nUtil.resolveKey("desc.infilter")); int meta = filter.getItemDamage(); int max = filter.getMaxDamage(); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 19d788d2fc..ccf07e7eeb 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -29,6 +29,7 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Blocks; import net.minecraft.init.MobEffects; import net.minecraft.item.ItemStack; @@ -123,25 +124,35 @@ private static void handleRadiation(EntityLivingBase entity) { return; Random rand = new Random(entity.getEntityId()); + int r600 = rand.nextInt(600); + int r1200 = rand.nextInt(1200); - if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) { + if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + r600) % 600 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "bloodvomit"); + nbt.setString("type", "vomit"); + nbt.setString("mode", "blood"); + nbt.setInteger("count", 25); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - world.playSound(null, ix, iy, iz, HBMSoundHandler.vomit, SoundCategory.NEUTRAL, 1.0F, 1.0F); - entity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 60, 19)); - } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + rand.nextInt(1200)) % 1200 == 0) { + if((world.getTotalWorldTime() + r600) % 600 == 1) { + world.playSound(null, ix, iy, iz, HBMSoundHandler.vomit, SoundCategory.NEUTRAL, 1.0F, 1.0F); + entity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 60, 19)); + } + + } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); + nbt.setString("mode", "normal"); + nbt.setInteger("count", 15); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - world.playSound(null, ix, iy, iz, HBMSoundHandler.vomit, SoundCategory.NEUTRAL, 1.0F, 1.0F); - entity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 60, 19)); - + if((world.getTotalWorldTime() + r1200) % 1200 == 1) { + world.playSound(null, ix, iy, iz, HBMSoundHandler.vomit, SoundCategory.NEUTRAL, 1.0F, 1.0F); + entity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 60, 19)); + } } if(HbmLivingProps.getRadiation(entity) > 900 && (world.getTotalWorldTime() + rand.nextInt(10)) % 10 == 0) { @@ -282,7 +293,7 @@ private static void handleContagion(EntityLivingBase entity) { entity.attackEntityFrom(ModDamageSource.mku, 2F); } - if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20) { + if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); @@ -385,4 +396,9 @@ else if(total > 0.25D) { } } } + + private static boolean canVomit(Entity e) { + if(e.isCreatureType(EnumCreatureType.WATER_CREATURE, false)) return false; + return true; + } } diff --git a/src/main/java/com/hbm/handler/GuiHandler.java b/src/main/java/com/hbm/handler/GuiHandler.java index a2b44f75dd..604c7a2771 100644 --- a/src/main/java/com/hbm/handler/GuiHandler.java +++ b/src/main/java/com/hbm/handler/GuiHandler.java @@ -21,7 +21,6 @@ import com.hbm.tileentity.bomb.TileEntityNukeMan; import com.hbm.tileentity.bomb.TileEntityNukeMike; import com.hbm.tileentity.bomb.TileEntityNukeN2; -import com.hbm.tileentity.bomb.TileEntityNukeN45; import com.hbm.tileentity.bomb.TileEntityNukePrototype; import com.hbm.tileentity.bomb.TileEntityNukeSolinium; import com.hbm.tileentity.bomb.TileEntityNukeTsar; @@ -72,7 +71,6 @@ import com.hbm.tileentity.machine.TileEntityMachineIGenerator; import com.hbm.tileentity.machine.TileEntityMachineKeyForge; import com.hbm.tileentity.machine.TileEntityMachineLargeTurbine; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; import com.hbm.tileentity.machine.TileEntityMachinePlasmaHeater; @@ -115,8 +113,6 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKStorage; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKHeater; -import com.hbm.tileentity.network.TileEntityCraneExtractor; -import com.hbm.tileentity.network.TileEntityCraneInserter; import com.hbm.tileentity.turret.TileEntityTurretChekhov; import com.hbm.tileentity.turret.TileEntityTurretFriendly; import com.hbm.tileentity.turret.TileEntityTurretFritz; @@ -181,16 +177,6 @@ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int return new ContainerMachineAssembler(player.inventory, (TileEntityMachineAssembler) entity); } return null; - case ModBlocks.guiID_crane_ejector: - if(entity instanceof TileEntityCraneExtractor){ - return new ContainerCraneExtractor(player.inventory, (TileEntityCraneExtractor) entity); - } - return null; - case ModBlocks.guiID_crane_inserter: - if(entity instanceof TileEntityCraneInserter){ - return new ContainerCraneInserter(player.inventory, (TileEntityCraneInserter) entity); - } - return null; case ModBlocks.guiID_machine_chemplant: if(entity instanceof TileEntityMachineChemplant) { return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); @@ -406,11 +392,6 @@ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int return new ContainerMachineFrackingTower(player.inventory, (TileEntityMachineFrackingTower) entity); } return null; - case ModBlocks.guiID_machine_drill: - if(entity instanceof TileEntityMachineMiningDrill) { - return new ContainerMachineMiningDrill(player.inventory, (TileEntityMachineMiningDrill) entity); - } - return null; case ModBlocks.guiID_machine_turbofan: if(entity instanceof TileEntityMachineTurbofan) { return new ContainerMachineTurbofan(player.inventory, (TileEntityMachineTurbofan) entity); @@ -481,11 +462,6 @@ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int return new ContainerNukeN2(player.inventory, (TileEntityNukeN2) entity); } return null; - case ModBlocks.guiID_nuke_n45: - if(entity instanceof TileEntityNukeN45) { - return new ContainerNukeN45(player.inventory, (TileEntityNukeN45) entity); - } - return null; case ModBlocks.guiID_nuke_custom: if(entity instanceof TileEntityNukeCustom) { return new ContainerNukeCustom(player.inventory, (TileEntityNukeCustom) entity); @@ -1025,11 +1001,6 @@ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int return new GUIMachineFrackingTower(player.inventory, (TileEntityMachineFrackingTower) entity); } return null; - case ModBlocks.guiID_machine_drill: - if(entity instanceof TileEntityMachineMiningDrill) { - return new GUIMachineMiningDrill(player.inventory, (TileEntityMachineMiningDrill) entity); - } - return null; case ModBlocks.guiID_machine_turbofan: if(entity instanceof TileEntityMachineTurbofan) { return new GUIMachineTurbofan(player.inventory, (TileEntityMachineTurbofan) entity); @@ -1100,11 +1071,6 @@ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int return new GUINukeN2(player.inventory, (TileEntityNukeN2) entity); } return null; - case ModBlocks.guiID_nuke_n45: - if(entity instanceof TileEntityNukeN45) { - return new GUINukeN45(player.inventory, (TileEntityNukeN45) entity); - } - return null; case ModBlocks.guiID_nuke_custom: if(entity instanceof TileEntityNukeCustom) { return new GUINukeCustom(player.inventory, (TileEntityNukeCustom) entity); diff --git a/src/main/java/com/hbm/handler/JetpackHandler.java b/src/main/java/com/hbm/handler/JetpackHandler.java index 485a4168d5..f0f62e94ae 100644 --- a/src/main/java/com/hbm/handler/JetpackHandler.java +++ b/src/main/java/com/hbm/handler/JetpackHandler.java @@ -294,13 +294,12 @@ public static void serverTick(){ int drain = (int) Math.ceil(getDrain(tank.getFluid() == null ? null : tank.getFluid().getFluid())*info.thrust); if(info.thrust < 0.0001) drain = 0; + tank.drain(drain, true); setTank(player, tank); } - if(info.dirty){ - PacketDispatcher.wrapper.sendToAllTracking(new JetpackSyncPacket(player), player); - info.dirty = false; - } + if(player.motionY > -0.5) player.fallDistance = 0; + PacketDispatcher.wrapper.sendToAllTracking(new JetpackSyncPacket(player), player); } } } @@ -317,6 +316,23 @@ public static void playerLoggedIn(PlayerLoggedInEvent e){ } } + public static void loadNBT(EntityPlayer player){ + ItemStack stack = player.inventory.armorInventory.get(2); + if(stack.hasTagCompound() && stack.getTagCompound().hasKey(JETPACK_NBT)){ + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(JETPACK_NBT); + JetpackInfo j = new JetpackInfo(player.world.isRemote); + j.readFromNBT(tag); + put(player, j); + PacketDispatcher.wrapper.sendToAllTracking(new JetpackSyncPacket(player), (EntityPlayerMP) player); + } + } + + public static void worldLoad(WorldEvent.Load e){ + for(EntityPlayer player : e.getWorld().playerEntities){ + loadNBT(player); + } + } + public static void saveNBT(EntityPlayer player){ if(hasJetpack(player)){ JetpackInfo info = get(player); @@ -600,13 +616,11 @@ public static void preRenderPlayer(EntityPlayer player){ protected static float interpolateRotation(float prevYawOffset, float yawOffset, float partialTicks){ float f; - for (f = yawOffset - prevYawOffset; f < -180.0F; f += 360.0F) - { + for (f = yawOffset - prevYawOffset; f < -180.0F; f += 360.0F) { ; } - while (f >= 180.0F) - { + while (f >= 180.0F) { f -= 360.0F; } @@ -757,91 +771,7 @@ public static void clientTick(ClientTickEvent e){ j.dirty = false; } } - /*for(EntityPlayer player : p.world.playerEntities){ - JetpackInfo j = get(player); - if(j != null){ - if(player == Minecraft.getMinecraft().player){ - if(j.failureTicks > 0) - j.dirty = true; - j.failureTicks = Math.max(0, j.failureTicks-1); - } - j.prevPrevPosX = player.prevPosX; - j.prevPrevPosZ = player.prevPosZ; - Iterator it = j.booster_particles.iterator(); - while(it.hasNext()){ - Particle part = it.next(); - part.onUpdate(); - if(!part.isAlive()) - it.remove(); - } - it = j.distortion_particles.iterator(); - while(it.hasNext()){ - Particle part = it.next(); - part.onUpdate(); - if(!part.isAlive()) - it.remove(); - } - it = j.brightness_particles.iterator(); - while(it.hasNext()){ - Particle part = it.next(); - part.onUpdate(); - if(!part.isAlive()) - it.remove(); - } - if(jetpackActive(player) && !player.onGround ){ - ColorGradient grad = new ColorGradient( - new float[]{1, 0.918F, 0.882F, 1, 0}, - new float[]{0.887F, 1, 0, 1, 0.177F}, - new float[]{1, 0.19F, 0, 1, 0.336F}, - new float[]{1, 0.14F, 0, 1, 0.85F}, - new float[]{1, 0.14F, 0, 0, 1}); - if(j.thrust > 0.05F){ - float thrust = j.thrust - 0.4F; - float speed = -1-2*thrust; - float scale = 4+2*thrust; - int numParticles = 3; - for(int i = 0; i < numParticles; i ++){ - float iN = (float)i/(float)numParticles; - float randX = (float) (p.world.rand.nextGaussian()*0.05F); - float randZ = (float) (p.world.rand.nextGaussian()*0.05F); - j.booster_particles.add(new ParticleRocketPlasma(p.world, -1.8, iN*speed, 4, scale, grad) - .motion(randX-0.1F, speed, randZ)); - randX = (float) (p.world.rand.nextGaussian()*0.05F); - randZ = (float) (p.world.rand.nextGaussian()*0.05F); - j.booster_particles.add(new ParticleRocketPlasma(p.world, 1.8, iN*speed, 4, scale, grad) - .motion(randX+0.1F, speed, randZ)); - } - if(player.world.getWorldTime()%(2-player.world.rand.nextInt(2)) == 0){ - j.brightness_particles.add(new ParticleFakeBrightness(p.world, 1.8, -1, 4, 20+thrust*10, 6+player.world.rand.nextInt(2)) - .color(1, 0.6F, 0.5F, MathHelper.clamp(0.05F+thrust*0.1F, 0, 1)) - .enableLocalSpaceCorrection()); - j.brightness_particles.add(new ParticleFakeBrightness(p.world, -1.8, -1, 4, 20+thrust*10, 6+player.world.rand.nextInt(2)) - .color(1, 0.6F, 0.5F, MathHelper.clamp(0.05F+thrust*0.1F, 0, 1)) - .enableLocalSpaceCorrection()); - } - if(player.world.rand.nextInt(2) == 0){ - j.distortion_particles.add(new ParticleHeatDistortion(p.world, 1.8, -1, 4, 5+thrust, 1.5F+thrust*3, 5, player.world.rand.nextFloat()*20) - .motion(0.1F, speed*0.5F, 0) - .enableLocalSpaceCorrection()); - } - if(player.world.rand.nextInt(2) == 0){ - j.distortion_particles.add(new ParticleHeatDistortion(p.world, -1.8, -1, 4, 5+thrust, 1.5F+thrust*3, 5, player.world.rand.nextFloat()*20) - .motion(-0.1F, speed*0.5F, 0) - .enableLocalSpaceCorrection()); - } - } - } - player.ignoreFrustumCheck = true; - - //SYNC - if(player == Minecraft.getMinecraft().player && j.dirty){ - PacketDispatcher.wrapper.sendToServer(new JetpackSyncPacket(player)); - j.dirty = false; - } - } - }*/ } - } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/handler/RadiationSystemNT.java b/src/main/java/com/hbm/handler/RadiationSystemNT.java index 116fbe8f04..0ecbe2939f 100644 --- a/src/main/java/com/hbm/handler/RadiationSystemNT.java +++ b/src/main/java/com/hbm/handler/RadiationSystemNT.java @@ -309,7 +309,7 @@ private static void updateEntityContamination(World world, boolean updateData) { if(entity instanceof EntityPlayer){ EntityPlayer player = (EntityPlayer) entity; if(RadiationConfig.neutronActivation){ - double recievedRadiation = ContaminationUtil.getNoNeutronPlayerRads(player)*0.00004D-0.0002D; //5Rad/s threshold + double recievedRadiation = ContaminationUtil.getNoNeutronPlayerRads(player)*0.00004D-(0.00004D * RadiationConfig.neutronActivationThreshold); //20Rad/s threshold float neutronRads = ContaminationUtil.getPlayerNeutronRads(player); if(neutronRads > 0){ ContaminationUtil.contaminate(player, ContaminationUtil.HazardType.NEUTRON, ContaminationUtil.ContaminationType.CREATIVE, neutronRads * 0.05F); diff --git a/src/main/java/com/hbm/handler/RadiationWorldHandler.java b/src/main/java/com/hbm/handler/RadiationWorldHandler.java index 7dbd90c1e3..b56ae573bb 100644 --- a/src/main/java/com/hbm/handler/RadiationWorldHandler.java +++ b/src/main/java/com/hbm/handler/RadiationWorldHandler.java @@ -69,9 +69,14 @@ public static void handleWorldDestruction(World world) { if(bblock == Blocks.GRASS) { world.setBlockState(pos, ModBlocks.waste_earth.getDefaultState()); - } else if(bblock == Blocks.DIRT) { + } else if(bblock == Blocks.DIRT || bblock == Blocks.FARMLAND) { world.setBlockState(pos, ModBlocks.waste_dirt.getDefaultState()); - + } else if(bblock == Blocks.SANDSTONE) { + world.setBlockState(pos, ModBlocks.waste_sandstone.getDefaultState()); + } else if(bblock == Blocks.RED_SANDSTONE) { + world.setBlockState(pos, ModBlocks.waste_sandstone_red.getDefaultState()); + } else if(bblock == Blocks.HARDENED_CLAY || bblock == Blocks.STAINED_HARDENED_CLAY) { + world.setBlockState(pos, ModBlocks.waste_terracotta.getDefaultState()); } else if(bblock == Blocks.SAND) { BlockSand.EnumType meta = b.getValue(BlockSand.VARIANT); if(world.rand.nextInt(60) == 0) { @@ -167,6 +172,12 @@ public static void handleWorldDestruction(World world) { } else { world.setBlockState(pos, meta == BlockSand.EnumType.SAND ? ModBlocks.waste_sand.getDefaultState() : ModBlocks.waste_sand_red.getDefaultState()); } + } else if(bblock == Blocks.SANDSTONE) { + world.setBlockState(pos, ModBlocks.waste_sandstone.getDefaultState()); + } else if(bblock == Blocks.RED_SANDSTONE) { + world.setBlockState(pos, ModBlocks.waste_sandstone_red.getDefaultState()); + } else if(bblock == Blocks.HARDENED_CLAY || bblock == Blocks.STAINED_HARDENED_CLAY) { + world.setBlockState(pos, ModBlocks.waste_terracotta.getDefaultState()); } else if(bblock == Blocks.GRAVEL) { world.setBlockState(pos, ModBlocks.waste_gravel.getDefaultState()); diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index b571fb935b..49c90325f3 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -509,8 +509,7 @@ public void onDig(World world, int x, int y, int z, EntityPlayer player, IBlockS ex.addAttrib(ExAttrib.ALLDROP); ex.addAttrib(ExAttrib.NOHURT); ex.addAttrib(ExAttrib.NOPARTICLE); - ex.doExplosionA(); - ex.doExplosionB(false); + ex.explode(); player.world.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); } diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 67f1f59647..d5e3f25e3c 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -3,9 +3,11 @@ import java.util.List; import java.util.Random; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.particle.EntityBSmokeFX; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.handler.ArmorUtil; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; @@ -284,23 +286,23 @@ public static IBulletImpactBehavior getPhosphorousEffect(final int radius, final @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - List hit = bullet.world.getEntitiesWithinAABBExcludingEntity(bullet, new AxisAlignedBB(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); - - for(Entity e : hit) { + if(CompatibilityConfig.isWarDim(bullet.world)){ + List hit = bullet.world.getEntitiesWithinAABBExcludingEntity(bullet, new AxisAlignedBB(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); - if(!Library.isObstructed(bullet.world, bullet.posX, bullet.posY, bullet.posZ, e.posX, e.posY + e.getEyeHeight(), e.posZ)) { - e.setFire(5); + for(Entity e : hit) { - if(e instanceof EntityLivingBase) { + if(!Library.isObstructed(bullet.world, bullet.posX, bullet.posY, bullet.posZ, e.posX, e.posY + e.getEyeHeight(), e.posZ)) { + e.setFire(5); - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus, duration, 0, true, false); - eff.getCurativeItems().clear(); - ((EntityLivingBase)e).addPotionEffect(eff); + if(e instanceof EntityLivingBase) { + + PotionEffect eff = new PotionEffect(HbmPotion.phosphorus, duration, 0, true, false); + eff.getCurativeItems().clear(); + ((EntityLivingBase)e).addPotionEffect(eff); + } } } } - NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); data.setString("mode", "flame"); @@ -498,8 +500,9 @@ public static void nuclearExplosion(EntityBulletBase bullet, int x, int y, int z posY = y + 1.5; posZ = z + 0.5; } - - ExplosionNukeSmall.explode(bullet.world, posX, posY, posZ, size); + if(size > 0) + bullet.world.spawnEntity(EntityNukeExplosionMK5.statFac(bullet.world, size, posX, posY, posZ)); + EntityNukeTorex.statFac(bullet.world, posX, posY, posZ, size == 0 ? 15 : size); } } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 4366ec99d1..1ab05e60b0 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -272,8 +272,7 @@ public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { ExplosionNT explosion = new ExplosionNT(bullet.world, null, bullet.posX, bullet.posY, bullet.posZ, 4); explosion.atttributes.add(ExAttrib.ALLDROP); explosion.atttributes.add(ExAttrib.NOHURT); - explosion.doExplosionA(); - explosion.doExplosionB(false); + explosion.explode(); ExplosionLarge.spawnParticles(bullet.world, bullet.posX, bullet.posY, bullet.posZ, 15); } @@ -305,8 +304,7 @@ public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { ExplosionNT explosion = new ExplosionNT(bullet.world, null, bullet.posX, bullet.posY, bullet.posZ, 6); explosion.atttributes.add(ExAttrib.BALEFIRE); - explosion.doExplosionA(); - explosion.doExplosionB(false); + explosion.explode(); ExplosionLarge.spawnParticles(bullet.world, bullet.posX, bullet.posY, bullet.posZ, 30); } diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index d626b226bf..3406cb44ce 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -71,7 +71,7 @@ public static BulletConfiguration getShellW9Config() { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 1); + BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 25); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 9868f6652d..838f3cca73 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -129,7 +129,7 @@ public static BulletConfiguration getNukeConfig() { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 3); + BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 35); } }; @@ -145,7 +145,7 @@ public static BulletConfiguration getNukeLowConfig() { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 2); + BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 20); } }; @@ -161,7 +161,7 @@ public static BulletConfiguration getNukeHighConfig() { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 4); + BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 50); } }; @@ -181,7 +181,7 @@ public static BulletConfiguration getNukeTotsConfig() { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 1); + BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 10); } }; @@ -464,8 +464,7 @@ public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { .addAttrib(ExAttrib.NODROP) .addAttrib(ExAttrib.NOHURT) .overrideResolution(64); - exp.doExplosionA(); - exp.doExplosionB(false); + exp.explode(); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index eee550f965..8e94e6bd45 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -4,11 +4,11 @@ import java.util.Random; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.util.ContaminationUtil; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.main.MainRegistry; @@ -324,7 +324,7 @@ public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { bullet.world.playSound(null, bullet.posX, bullet.posY, bullet.posZ, HBMSoundHandler.ufoBlast, SoundCategory.HOSTILE, 5.0F, 0.9F + bullet.world.rand.nextFloat() * 0.2F); bullet.world.playSound(null, bullet.posX, bullet.posY, bullet.posZ, SoundEvents.ENTITY_FIREWORK_BLAST, SoundCategory.HOSTILE, 5.0F, 0.5F); - ExplosionNukeGeneric.dealDamage(bullet.world, bullet.posX, bullet.posY, bullet.posZ, 10, 50); + ContaminationUtil.radiate(bullet.world, bullet.posX, bullet.posY, bullet.posZ, 50, 0, 0, 500); for(int i = 0; i < 3; i++) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/handler/jei/JEIConfig.java b/src/main/java/com/hbm/handler/jei/JEIConfig.java index 229fe9e01d..7a78239f44 100644 --- a/src/main/java/com/hbm/handler/jei/JEIConfig.java +++ b/src/main/java/com/hbm/handler/jei/JEIConfig.java @@ -248,7 +248,6 @@ public void register(IModRegistry registry) { blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_centrifuge)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_chemplant)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_cyclotron)); - blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_drill)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_flare)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_fluidtank)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_block_pumpjack)); @@ -262,7 +261,6 @@ public void register(IModRegistry registry) { blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_assembler)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_chemplant)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_cyclotron)); - blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_drill)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_flare)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_fluidtank)); blacklist.addIngredientToBlacklist(new ItemStack(ModBlocks.dummy_port_pumpjack)); diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeBase.java b/src/main/java/com/hbm/hazard/type/HazardTypeBase.java index 3659cf89e0..fbf2e8ada5 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeBase.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeBase.java @@ -17,7 +17,7 @@ public abstract class HazardTypeBase { * Does the thing. Called by HazardEntry.applyHazard * @param target the holder * @param level the final level after calculating all the modifiers - * @param stack the stack that is being updated + * @param the stack that is being updated */ public abstract void onUpdate(EntityLivingBase target, float level, ItemStack stack); diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index 4bf8386bc7..7505799465 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -50,11 +50,10 @@ public void addHazardInformation(EntityPlayer player, List list, float l list.add(TextFormatting.GREEN + "[" + I18nUtil.resolveKey("trait.radioactive") + "]"); String rad = "" + (Math.floor(level* 1000) / 1000); - String radS = " " + I18nUtil.resolveKey("desc.rads"); - list.add(TextFormatting.YELLOW + rad + radS); + list.add(TextFormatting.YELLOW + (rad + " RAD/s")); if(stack.getCount() > 1) { - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.stack") + " " + (Math.floor(level * 1000 * stack.getCount()) / 1000) + radS); + list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.stack")+" " + ((Math.floor(level * 1000 * stack.getCount()) / 1000) + " RAD/s")); } } diff --git a/src/main/java/com/hbm/inventory/AnvilRecipes.java b/src/main/java/com/hbm/inventory/AnvilRecipes.java index 68660912d6..a6aa2e0eac 100644 --- a/src/main/java/com/hbm/inventory/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/AnvilRecipes.java @@ -79,7 +79,6 @@ public static void registerSmithing() { * ////// ////// // // ////// // // // ////// ////// // // ////// // // */ public static void registerConstruction() { - registerConstructionRecipes(); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(IRON.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GOLD.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_gold))).setTier(3)); @@ -108,6 +107,7 @@ public static void registerConstruction() { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DIAMOND.dust()), new AnvilOutput(new ItemStack(Items.DIAMOND))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(EMERALD.dust()), new AnvilOutput(new ItemStack(Items.EMERALD))).setTier(3)); + registerConstructionRecipes(); registerConstructionAmmo(); registerConstructionUpgrades(); registerConstructionRecycling(); @@ -265,6 +265,15 @@ public static void registerConstructionRecipes() { new ComparableStack(ModItems.coil_copper_torus, 2) }, new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModBlocks.steel_wall, 2), + new OreDictStack(REDSTONE.dust(), 4), + new ComparableStack(Blocks.LEVER, 2), + new ComparableStack(ModItems.wire_advanced_alloy, 3) + }, + new AnvilOutput(new ItemStack(ModBlocks.bm_power_box))).setTier(5)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { @@ -555,7 +564,7 @@ public static void registerConstructionRecycling() { new AnvilOutput[] { new AnvilOutput(new ItemStack(Items.REDSTONE, 4)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 2)), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 2)), + new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 2)), new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1)) } ).setTier(4)); @@ -565,7 +574,7 @@ public static void registerConstructionRecycling() { new AnvilOutput(new ItemStack(Items.REDSTONE, 2)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 1)), + new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1), 0.75F) } ).setTier(4)); diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 827467f1db..91c0bb7f49 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -242,7 +242,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] { new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack(KEY_BROWN, 3), }, 200); //makeRecipe(new ComparableStack(ModItems.generator_front, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), new ComparableStack(ModItems.wire_gold, 4), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] { new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new NbtComparableStack(ItemFluidCanister.getFullCanister(ModForgeFluids.kerosene, 3)), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] { new NbtComparableStack(ItemFluidTank.getFullBarrel(ModForgeFluids.kerosene, 16)), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), }, 4800); + makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] { new NbtComparableStack(ItemFluidTank.getFullBarrel(ModForgeFluids.kerosene, 16)), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), }, 4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] { new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.TNT, 2), }, 100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] { new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), }, 150); makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] { new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), }, 200); @@ -255,6 +255,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.warhead_buster_small, 1), new AStack[] { new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModBlocks.det_cord, 8), }, 100); makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] { new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), }, 150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] { new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), }, 200); + makeRecipe(new ComparableStack(ModItems.warhead_n2, 1), new AStack[] { new ComparableStack(ModItems.n2_charge, 5), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack(STEEL.plate(), 20), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), }, 300); makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] { new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), }, 300); makeRecipe(new ComparableStack(ModItems.warhead_mirvlet, 1), new AStack[] { new OreDictStack(W.ingot(), 1), new OreDictStack(STEEL.plate(), 3), new OreDictStack(PU239.ingot(), 1), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 1) }, 100); makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.deuterium, 6)), }, 500); @@ -322,11 +323,11 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.fuse, 1), new AStack[] { new OreDictStack(STEEL.plate(), 2), new ComparableStack(Blocks.GLASS_PANE, 1), new ComparableStack(ModItems.wire_aluminium, 1), }, 100); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] { new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.REDSTONE_BLOCK, 2), }, 200); makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] { new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] { new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(LI.dust(), 1), }, 50); - makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] { new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(BE.dust(), 1), }, 50); - makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] { new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), }, 50); - makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] { new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), }, 50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] { new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(PU.dust(), 1), }, 50); + makeRecipe(new ComparableStack(ModItems.part_lithium, 4), new AStack[] { new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), }, 50); + makeRecipe(new ComparableStack(ModItems.part_beryllium, 4), new AStack[] { new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), }, 50); + makeRecipe(new ComparableStack(ModItems.part_carbon, 4), new AStack[] { new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), }, 50); + makeRecipe(new ComparableStack(ModItems.part_copper, 4), new AStack[] { new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), }, 50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 4), new AStack[] { new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(PU.dust(), 1), }, 50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] { new OreDictStack(STEEL.plate(), 1), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 150); //makeRecipe(new ComparableStack(ModItems.limiter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.wire_copper, 4), },150); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] { new ComparableStack(ModBlocks.block_meteor, 1), }, 50); @@ -335,10 +336,10 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] { new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), }, 200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new ComparableStack(Items.REDSTONE, 2), new ComparableStack(ModBlocks.steel_roof, 5), }, 50); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new ComparableStack(Items.REDSTONE, 4), new ComparableStack(ModBlocks.steel_roof, 5), }, 100); - makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 128), new OreDictStack(W.ingot(), 32), new OreDictStack(PB.plate(), 48), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.bolt_tungsten, 18), new ComparableStack(ModItems.bolt_dura_steel, 27), new ComparableStack(ModItems.motor, 5), }, 200); - makeRecipe(new ComparableStack(ModBlocks.blast_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new OreDictStack(PB.plate(), 12), new OreDictStack(ALLOY.plate(), 3), new ComparableStack(ModItems.plate_polymer, 3), new ComparableStack(ModItems.bolt_tungsten, 3), new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 1), }, 300); - makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door_2, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.circuit_gold, 3), new ComparableStack(Blocks.QUARTZ_BLOCK, 10), new ComparableStack(ModItems.plate_polymer, 3), new ComparableStack(ModItems.bolt_tungsten, 3), new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 2), }, 300); - makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), new ComparableStack(Blocks.QUARTZ_BLOCK, 10), new ComparableStack(ModItems.plate_polymer, 3), new ComparableStack(ModItems.bolt_tungsten, 3), new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 2), }, 300); + makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 128), new OreDictStack(W.ingot(), 32), new OreDictStack(PB.plate(), 48), new OreDictStack(ALLOY.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.bolt_tungsten, 18), new ComparableStack(ModItems.bolt_dura_steel, 27), new ComparableStack(ModItems.motor, 5), }, 200); + makeRecipe(new ComparableStack(ModBlocks.blast_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new OreDictStack(PB.plate(), 12), new OreDictStack(ALLOY.plate(), 3), new OreDictStack(ANY_RUBBER.ingot(), 3), new ComparableStack(ModItems.bolt_tungsten, 3), new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 1), }, 300); + makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door_2, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.circuit_gold, 3), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new ComparableStack(ModItems.motor, 2), }, 300); + makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new ComparableStack(ModItems.motor, 2), }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] { new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] { new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1), }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_reactor, 1), new AStack[] { new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4) }, 150); @@ -432,12 +433,11 @@ private static void registerDefaults() { }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 28), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.thermo_element, 3), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] { new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new NbtComparableStack(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)), }, 160); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] { new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new NbtComparableStack(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)), }, 160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.wire_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 4), new ComparableStack(ModItems.circuit_red_copper, 2), new ComparableStack(ModItems.plate_polymer, 8), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[]{new OreDictStack(STEEL.ingot(), 48), new OreDictStack(ANY_RESISTANTALLOY.dust(), 8), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.hull_big_steel, 12), new ComparableStack(ModItems.tank_steel, 8), new ComparableStack(ModItems.motor_desh, 4), new ComparableStack(ModItems.coil_tungsten, 24), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.circuit_gold, 3)}, 400); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.GLASS, 4), new ComparableStack(ModItems.circuit_gold, 1), }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_big_steel, 4), }, 150); - makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] { new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.DIAMOND, 5), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_saturnite_battery, 1), }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), }, 500); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] { new OreDictStack(TI.ingot(), 6), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(CMB.plate(), 4), new ComparableStack(ModItems.telepad, 1), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 4), }, 300); @@ -474,7 +474,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] { new ComparableStack(ModItems.dysfunctional_reactor, 1), new ComparableStack(ModItems.hull_small_steel, 2), new OreDictStack(EUPH.ingot(), 3), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModItems.wire_gold, 16), }, 500); makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] { new ComparableStack(ModItems.hull_small_aluminium, 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack(KEY_WHITE, 4), }, 400); makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] { new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 10), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack(KEY_CYAN, 4), }, 400); - makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), new ComparableStack(ModItems.pipes_steel, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack(KEY_BLACK, 12), }, 300); + makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_copper, 12), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 3), new OreDictStack(KEY_BLACK, 12), }, 300); makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] { new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack(KEY_GRAY, 6), }, 600); makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] { new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack(KEY_GRAY, 4), }, 300); makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] { new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), }, 250); @@ -503,6 +503,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] { new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), }, 350); makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] { new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), }, 350); makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] { new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), }, 350); + makeRecipe(new ComparableStack(ModItems.missile_n2, 1), new AStack[] { new ComparableStack(ModItems.warhead_n2, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 500); makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] { new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 500); makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] { new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), }, 600); makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[]{new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1)}, 600); @@ -558,7 +559,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] { new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.gun_xvl1456_ammo, 1), }, 300); makeRecipe(new ComparableStack(ModItems.grenade_schrabidium, 1), new AStack[] { new ComparableStack(ModItems.grenade_flare, 1), new OreDictStack(SA326.dust(), 1), new OreDictStack(OreDictManager.getReflector(), 2), }, 300); makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] { new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), }, 200); - makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] { new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), new ComparableStack(ModItems.ingot_radspice, 1), }, 300); + makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] { new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), new ComparableStack(ModItems.nugget_radspice, 1), }, 300); makeRecipe(new ComparableStack(ModItems.grenade_solinium, 1), new AStack[] { new OreDictStack(CMB.plate(), 6), new OreDictStack(UNOBTAINIUM.ingot(), 3), new ComparableStack(ModItems.coil_gold, 12), new ComparableStack(ModItems.solinium_propellant, 1), new ComparableStack(ModItems.solinium_igniter, 1), new ComparableStack(ModItems.solinium_core, 1), }, 400); makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] { new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), }, 500); makeRecipe(new ComparableStack(ModItems.multitool_dig, 1), new AStack[] { new ComparableStack(ModItems.rod_reiium, 1), new ComparableStack(ModItems.rod_weidanium, 1), new ComparableStack(ModItems.rod_australium, 1), new ComparableStack(ModItems.rod_verticium, 1), new ComparableStack(ModItems.rod_unobtainium, 1), new ComparableStack(ModItems.rod_daffergon, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.ducttape, 1), }, 600); @@ -590,7 +591,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_big_titanium, 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModBlocks.fwatz_computer, 2), new ComparableStack(ModItems.crystal_xen, 1), }, 2500); makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] { new ComparableStack(ModItems.component_limiter, 5), new OreDictStack(STEEL.plate(), 64), new OreDictStack(TI.plate(), 128), new ComparableStack(ModItems.plate_dineutronium, 16), new ComparableStack(ModItems.circuit_schrabidium, 6), new ComparableStack(ModItems.pipes_steel, 16), new ComparableStack(ModItems.motor, 12), new ComparableStack(ModItems.coil_advanced_torus, 12), new ComparableStack(ModItems.entanglement_kit, 1), }, 6000); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] { new ComparableStack(ModItems.component_emitter, 16), new OreDictStack(STEEL.plate(), 128), new OreDictStack(TI.plate(), 192), new ComparableStack(ModItems.plate_dineutronium, 32), new ComparableStack(ModItems.circuit_schrabidium, 12), new ComparableStack(ModItems.coil_advanced_torus, 24), new ComparableStack(ModItems.entanglement_kit, 3), new ComparableStack(ModItems.crystal_horn, 1), new ComparableStack(ModBlocks.fwatz_core, 1), }, 6000); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), }, 300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(ANY_RUBBER.ingot(), 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] { new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), }, 1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] { new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), }, 100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] { new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), }, 100); @@ -641,12 +642,12 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_mirv, 1), new AStack[] { new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 16), new ComparableStack(ModItems.warhead_mirvlet, 7), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), }, 600); 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_targeting_tier5, 1), }, 400); makeRecipe(new ComparableStack(ModItems.missile_soyuz0, 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_targeting_tier4, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 40), new ComparableStack(ModItems.hull_big_steel, 24), 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_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), }, 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_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), }, 600); 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 ComparableStack(ModBlocks.block_dura_steel, 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48) }, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_vaporwave, 1), new AStack[] { new OreDictStack(DNT.block(), 16), new ComparableStack(ModBlocks.block_euphemium_cluster, 16), new OreDictStack(SBD.dust(), 64), new ComparableStack(ModItems.powder_spark_mix, 48), new ComparableStack(ModItems.powder_daffergon, 48) }, 4800); - makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), new OreDictStack(STEEL.block(), 32), new ComparableStack(ModBlocks.block_dura_steel, 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), new ComparableStack(ModItems.coil_magnetized_tungsten, 24), new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), new OreDictStack(FIBER.ingot(), 64), new ComparableStack(ModItems.ingot_radspice, 64) }, 1200); + makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), new ComparableStack(ModBlocks.block_dura_steel, 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), new ComparableStack(ModItems.coil_magnetized_tungsten, 24), new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), new OreDictStack(FIBER.ingot(), 64), new ComparableStack(ModItems.ingot_radspice, 64) }, 1200); makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 6), new OreDictStack(W.ingot(), 6), @@ -955,7 +956,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate(), 32), - new ComparableStack(ModItems.plate_polymer, 16), + new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_tantalium, 20), }, 300); @@ -1021,7 +1022,7 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(PB.plate(), 32), new OreDictStack(STEEL.plate(), 48), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 6), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 24), new OreDictStack(KEY_CYAN, 8)}, 1000); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 6), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.bolt_dura_steel, 1), new OreDictStack(KEY_LIGHTGRAY, 1)}, 300); makeRecipe(new ComparableStack(ModBlocks.sliding_gate_door, 1), new AStack[]{new OreDictStack(PB.plate(), 4), new OreDictStack(STEEL.plate(), 12), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(KEY_WHITE, 2)}, 500); - makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), new ComparableStack(ModItems.plate_polymer, 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_YELLOW, 4)}, 5000); + makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), new OreDictStack(ANY_RUBBER.ingot(), 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_YELLOW, 4)}, 5000); makeRecipe(new ComparableStack(ModBlocks.control_panel_custom, 1), new AStack[]{new ComparableStack(ModItems.circuit_targeting_tier5), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.wire_copper, 24), new ComparableStack(ModBlocks.pole_top)}, 100); makeRecipe(new ComparableStack(ModBlocks.railgun_plasma, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModBlocks.machine_desh_battery, 4), new ComparableStack(ModItems.coil_copper, 16), new ComparableStack(ModItems.coil_copper_torus, 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 2), new OreDictStack(ANY_PLASTIC.ingot(), 4)}, 500); diff --git a/src/main/java/com/hbm/inventory/BedrockOreRegistry.java b/src/main/java/com/hbm/inventory/BedrockOreRegistry.java index 42f8f13392..7875c3866d 100644 --- a/src/main/java/com/hbm/inventory/BedrockOreRegistry.java +++ b/src/main/java/com/hbm/inventory/BedrockOreRegistry.java @@ -5,17 +5,20 @@ import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.HashSet; import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.Spaghetti; import com.hbm.lib.Library; import com.hbm.config.BedrockOreJsonConfig; +import com.hbm.config.CompatibilityConfig; import com.hbm.util.WeightedRandomObject; import net.minecraft.init.Items; import net.minecraft.init.Blocks; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemBlock; import net.minecraft.util.WeightedRandom; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.fluids.FluidStack; @@ -29,6 +32,7 @@ public class BedrockOreRegistry { public static HashMap oreResults = new HashMap(); public static HashMap oreColors = new HashMap(); + public static HashMap oreNames = new HashMap(); public static HashMap oreTiers = new HashMap(); public static HashMap> oreCasino = new HashMap(); @@ -38,39 +42,68 @@ public static void registerBedrockOres(){ fillOreCasino(); } + public static boolean is3DBlock(String ore){ + boolean isBlock = false; + for(ItemStack item : OreDictionary.getOres(ore)) + isBlock |= (item != null && !item.isEmpty() && item.getItem() instanceof ItemBlock); + if(isBlock) return true; + return false; + } + + public static boolean isActualItem(String ore){ + boolean isActualItem = false; + for(ItemStack item : OreDictionary.getOres(ore)) + isActualItem |= (item != null && !item.isEmpty() && item.getItem() != Items.AIR); + if(isActualItem) return true; + return false; + } + + public static boolean tryRegister(int index, String oreName, String output){ + if(OreDictionary.doesOreNameExist(output) && isActualItem(output)){ + oreIndexes.put(index, oreName); + oreToIndexes.put(oreName, index); + oreResults.put(oreName, output); + oreTiers.put(oreName, Math.max(1, 1+getDirectOreTier(oreName))); + return true; + } + return false; + } + public static void collectBedrockOres(){ int index = 0; for(String oreName : OreDictionary.getOreNames()){ - if(oreName.startsWith("ore")){ + if(oreName.startsWith("ore") && is3DBlock(oreName) && !CompatibilityConfig.bedrockOreBlacklist.contains(oreName)){ + String resourceName = oreName.substring(3); - String oreGem = "gem"+resourceName; - if(OreDictionary.doesOreNameExist(oreGem)){ - oreIndexes.put(index, oreName); - oreToIndexes.put(oreName, index); + String oreOutput = "gem"+resourceName; + if(tryRegister(index, oreName, oreOutput)){ + index++; + continue; + } + + oreOutput = "dust"+resourceName; + if(tryRegister(index, oreName, oreOutput)){ index++; - oreResults.put(oreName, oreGem); - oreTiers.put(oreName, Math.max(1, 1+getDirectOreTier(oreName))); continue; } - String oreDust = "dust"+resourceName; - if(OreDictionary.doesOreNameExist(oreDust)){ - oreIndexes.put(index, oreName); - oreToIndexes.put(oreName, index); + oreOutput = "ingot"+resourceName; + if(tryRegister(index, oreName, oreOutput)){ index++; - oreResults.put(oreName, oreDust); - oreTiers.put(oreName, Math.max(1, 1+getDirectOreTier(oreName))); continue; } - String oreIngot = "ingot"+resourceName; - if(OreDictionary.doesOreNameExist(oreIngot)){ - oreIndexes.put(index, oreName); - oreToIndexes.put(oreName, index); + oreOutput = "item"+resourceName; + if(tryRegister(index, oreName, oreOutput)){ index++; - oreResults.put(oreName, oreIngot); - oreTiers.put(oreName, Math.max(1, 1+getDirectOreTier(oreName))); + continue; + } + + oreOutput = "food"+resourceName; + if(tryRegister(index, oreName, oreOutput)){ + index++; + continue; } } } @@ -100,12 +133,12 @@ public static FluidStack getFluidRequirement(int tier){ } public static int getTierWeight(int tier){ - if(tier == 1) return 64; + if(tier <= 1) return 64; if(tier == 2) return 48; if(tier == 3) return 32; if(tier == 4) return 8; if(tier == 5) return 2; - if(tier == 6) return 1; + if(tier >= 6) return 1; return 1; } @@ -146,7 +179,7 @@ public static int getDirectOreTier(String oreName){ } public static String getOreName(String oreName){ - return oreName.substring(3).replaceAll("([A-Z])", "$1").trim(); + return oreName.substring(3).replaceAll("([A-Z])", " $1").trim(); } public static void registerOreColors(){ @@ -172,7 +205,6 @@ public static void registerScannerOreColors(){ } } - public static int getOreScanColor(String ore){ Integer x = oreScanColors.get(ore); if(x == null) return 0; diff --git a/src/main/java/com/hbm/inventory/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/ChemplantRecipes.java index 5e3301d75d..b1b4edb2b9 100644 --- a/src/main/java/com/hbm/inventory/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/ChemplantRecipes.java @@ -167,7 +167,7 @@ public static void registerRecipes() { makeRecipe(EnumChemistryTemplate.DYN_SCHRAB, new AStack[] {new ComparableStack(ModItems.particle_higgs, 1), new OreDictStack(U.ingot(), 8), new ComparableStack(ModItems.catalyst_clay, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.coolant, 1000) }, new AStack[] { new ComparableStack(ModItems.particle_empty, 1), new ComparableStack(ModItems.ingot_schrabidium, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.watz, 50) }, 20*30); - makeRecipe(EnumChemistryTemplate.DYN_STR, new AStack[] {new ComparableStack(ModItems.particle_strange, 1), new ComparableStack(ModItems.nugget_radspice, 8), new ComparableStack(ModItems.catalyst_clay, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.cryogel, 1000) }, new AStack[] { new ComparableStack(ModItems.particle_empty, 1), new ComparableStack(ModItems.egg_balefire, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.watz, 200) }, 20*60); + makeRecipe(EnumChemistryTemplate.DYN_STR, new AStack[] {new ComparableStack(ModItems.particle_strange, 1), new ComparableStack(ModItems.nugget_radspice, 8), new ComparableStack(ModItems.catalyst_clay, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.cryogel, 1000) }, new AStack[] { new ComparableStack(ModItems.particle_empty, 1), new ComparableStack(ModItems.egg_balefire, 4) }, new FluidStack[]{ new FluidStack(ModForgeFluids.watz, 200) }, 20*60); makeRecipe(EnumChemistryTemplate.DYN_EUPH, new AStack[] {new ComparableStack(ModItems.particle_dark, 1), new OreDictStack(SA327.ingot(), 8), new ComparableStack(ModItems.catalyst_clay, 16) }, new FluidStack[]{ new FluidStack(ModForgeFluids.cryogel, 2000) }, new AStack[] { new ComparableStack(ModItems.particle_empty, 1), new ComparableStack(ModItems.ingot_euphemium, 8) }, new FluidStack[]{ new FluidStack(ModForgeFluids.watz, 100) }, 20*60*2); diff --git a/src/main/java/com/hbm/inventory/DFCRecipes.java b/src/main/java/com/hbm/inventory/DFCRecipes.java index a6408d2572..5701fb19d0 100644 --- a/src/main/java/com/hbm/inventory/DFCRecipes.java +++ b/src/main/java/com/hbm/inventory/DFCRecipes.java @@ -83,8 +83,7 @@ public static void register() { DFCRecipes.setRecipe(420000000000L, U238.nugget(), new ItemStack(ModItems.nugget_u238m2)); DFCRecipes.setRecipe(690000000000L, ModItems.gun_uboinik, new ItemStack(ModItems.gun_supershotgun)); - DFCRecipes.setRecipe(1000000000000L, ModItems.undefined, new ItemStack(ModItems.glitch)); - DFCRecipes.setRecipe(12000000000000L, ModItems.battery_spark_cell_power, new ItemStack(ModItems.battery_creative)); + DFCRecipes.setRecipe(8000000000000L, ModItems.undefined, new ItemStack(ModItems.glitch)); DFCRecipes.setRecipe(69000000000000L, Items.WRITABLE_BOOK, new ItemStack(ModItems.book_of_)); } diff --git a/src/main/java/com/hbm/inventory/DiFurnaceRecipes.java b/src/main/java/com/hbm/inventory/DiFurnaceRecipes.java index 86c50ecf05..8067a34419 100644 --- a/src/main/java/com/hbm/inventory/DiFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/DiFurnaceRecipes.java @@ -104,14 +104,23 @@ public static void registerFuels(){ addFuel(new OreDictStack(COAL.block()), 2000); addFuel(new OreDictStack(LIGNITE.gem()), 150); addFuel(new OreDictStack(LIGNITE.dust()), 150); + addFuel(new OreDictStack(LIGNITE.block()), 1500); + addFuel(new ComparableStack(ModItems.briquette_lignite), 200); + addFuel(new OreDictStack("gemCharcoal"), 150); + addFuel(new OreDictStack("blockCharcoal"), 1500); addFuel(new OreDictStack("fuelCoke"), 400); addFuel(new OreDictStack(ANY_COKE.gem()), 400); + addFuel(new OreDictStack(ANY_COKE.block()), 4000); addFuel(new ComparableStack(Items.LAVA_BUCKET), 12800); addFuel(new ComparableStack(Items.BLAZE_ROD), 1000); addFuel(new ComparableStack(Items.BLAZE_POWDER), 300); addFuel(new ComparableStack(Items.COAL, 1, 1), 200); addFuel(new ComparableStack(ModItems.solid_fuel), 400); - addFuel(new ComparableStack(ModItems.briquette_lignite), 200); + addFuel(new ComparableStack(ModItems.solid_fuel_presto), 800); + addFuel(new ComparableStack(ModItems.solid_fuel_presto_triplet), 2400); + addFuel(new ComparableStack(ModBlocks.block_solid_fuel), 4000); + addFuel(new ComparableStack(ModBlocks.block_solid_fuel_presto), 8000); + addFuel(new ComparableStack(ModBlocks.block_solid_fuel_presto_triplet), 12800); } public static void addRecipe(AStack inputTop, AStack inputBottom, ItemStack output){ diff --git a/src/main/java/com/hbm/inventory/EngineRecipes.java b/src/main/java/com/hbm/inventory/EngineRecipes.java new file mode 100644 index 0000000000..3169c921c2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/EngineRecipes.java @@ -0,0 +1,119 @@ +package com.hbm.inventory; + +import java.util.HashSet; +import java.util.HashMap; +import java.util.Map; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockBaseVisualFluidConnectable; +import com.hbm.forgefluid.ModForgeFluids; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidRegistry; + +public class EngineRecipes { + + public static HashMap combustionEnergies = new HashMap(); + public static HashMap fuelGrades = new HashMap(); + + //for 1000 mb + public static void registerEngineRecipes() { + addFuel(ModForgeFluids.hydrogen, FuelGrade.HIGH, 10_000); + addFuel(ModForgeFluids.deuterium, FuelGrade.HIGH, 10_000); + addFuel(ModForgeFluids.tritium, FuelGrade.HIGH, 10_000); + addFuel(ModForgeFluids.heavyoil, FuelGrade.LOW, 25_000); + addFuel(ModForgeFluids.heatingoil, FuelGrade.LOW, 100_000); + addFuel(ModForgeFluids.reclaimed, FuelGrade.LOW, 200_000); + addFuel(ModForgeFluids.petroil, FuelGrade.MEDIUM, 300_000); + addFuel(ModForgeFluids.naphtha, FuelGrade.MEDIUM, 200_000); + addFuel(ModForgeFluids.diesel, FuelGrade.HIGH, 500_000); + addFuel(ModForgeFluids.lightoil, FuelGrade.MEDIUM, 500_000); + addFuel(ModForgeFluids.kerosene, FuelGrade.AERO, 1_250_000); + addFuel(ModForgeFluids.biogas, FuelGrade.AERO, 500_000); + addFuel(ModForgeFluids.biofuel, FuelGrade.HIGH, 400_000); + addFuel(ModForgeFluids.nitan, FuelGrade.HIGH, 5_000_000); + addFuel(ModForgeFluids.balefire, FuelGrade.HIGH, 2_500_000); + addFuel(ModForgeFluids.gasoline, FuelGrade.HIGH, 1_000_000); + addFuel(ModForgeFluids.ethanol, FuelGrade.HIGH, 200_000); + addFuel(ModForgeFluids.fishoil, FuelGrade.LOW, 50_000); + addFuel(ModForgeFluids.sunfloweroil, FuelGrade.LOW, 80_000); + addFuel(ModForgeFluids.gas, FuelGrade.GAS, 100_000); + addFuel(ModForgeFluids.petroleum, FuelGrade.GAS, 300_000); + addFuel(ModForgeFluids.aromatics, FuelGrade.GAS, 150_000); + addFuel(ModForgeFluids.unsaturateds, FuelGrade.GAS, 250_000); + + //Compat + addFuel("biofuel", FuelGrade.HIGH, 400_000); //galacticraft & industrialforegoing + addFuel("petroil", FuelGrade.MEDIUM, 300_000); //galacticraft + addFuel("refined_fuel", FuelGrade.HIGH, 1_000_000); //thermalfoundation + addFuel("refined_biofuel", FuelGrade.HIGH, 400_000); //thermalfoundation + + } + + public static enum FuelGrade { + LOW("trait.fuelgrade.low"), //heating and industrial oil < star engine, iGen + MEDIUM("trait.fuelgrade.medium"), //petroil < diesel generator + HIGH("trait.fuelgrade.high"), //diesel, gasoline < HP engine + AERO("trait.fuelgrade.aero"), //kerosene and other light aviation fuels < turbofan + GAS("trait.fuelgrade.gas"); //fuel gasses like NG, PG and syngas < gas turbine + + private String grade; + + private FuelGrade(String grade) { + this.grade = grade; + } + + public String getGrade() { + return this.grade; + } + } + + public static long getEnergy(Fluid f){ + if(f != null) + return combustionEnergies.get(f); + return 0; + } + + public static FuelGrade getFuelGrade(Fluid f){ + if(f != null) + return fuelGrades.get(f); + return null; + } + + public static boolean isAero(Fluid f){ + return getFuelGrade(f) == FuelGrade.AERO; + } + + public static void addFuel(Fluid f, FuelGrade g, long power){ + if(f != null && power > 0){ + combustionEnergies.put(f, power); + fuelGrades.put(f, g); + } + } + + public static boolean hasFuelRecipe(Fluid f){ + if(f == null) return false; + return combustionEnergies.containsKey(f); + } + + public static void addFuel(String f, FuelGrade g, long power){ + if(FluidRegistry.isFluidRegistered(f)){ + addFuel(FluidRegistry.getFluid(f), g, power); + } + } + + public static void removeFuel(Fluid f){ + if(f != null){ + combustionEnergies.remove(f); + fuelGrades.remove(f); + } + } + + public static void removeFuel(String f){ + if(FluidRegistry.isFluidRegistered(f)){ + removeFuel(FluidRegistry.getFluid(f)); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/FusionRecipes.java b/src/main/java/com/hbm/inventory/FusionRecipes.java index f0fab7a2f8..c340ad6042 100644 --- a/src/main/java/com/hbm/inventory/FusionRecipes.java +++ b/src/main/java/com/hbm/inventory/FusionRecipes.java @@ -18,7 +18,7 @@ public static int getByproductChance(Fluid plasma) { } else if(plasma == ModForgeFluids.plasma_xm){ return 2400; } else if(plasma == ModForgeFluids.plasma_put){ - return 1600; + return 2400; } else if(plasma == ModForgeFluids.plasma_bf){ return 150; } @@ -35,7 +35,7 @@ public static ItemStack getByproduct(Fluid plasma) { } else if(plasma == ModForgeFluids.plasma_xm){ return new ItemStack(ModItems.powder_chlorophyte); } else if(plasma == ModForgeFluids.plasma_put){ - return new ItemStack(ModItems.powder_xe135_tiny); + return new ItemStack(ModItems.powder_xe135); } else if(plasma == ModForgeFluids.plasma_bf){ return new ItemStack(ModItems.powder_balefire); } diff --git a/src/main/java/com/hbm/inventory/HeatRecipes.java b/src/main/java/com/hbm/inventory/HeatRecipes.java index 2687f417b5..bbec648dbb 100644 --- a/src/main/java/com/hbm/inventory/HeatRecipes.java +++ b/src/main/java/com/hbm/inventory/HeatRecipes.java @@ -39,6 +39,7 @@ public static void registerHeatRecipes() { //Compat addBoilRecipe("crude_oil", 1, "hotoil", 1, 300); //thermalfoundation + addBoilRecipe("oil_medium", 1, "hotoil", 1, 300); addBoilRecipe("oilgc", 1, "hotoil", 1, 300); //galacticraft addBoilRecipe("biofuel", 1, "fuel", 1, 100); //galacticraft & industrialforegoing addBoilRecipe("petroil", 1, "fuel", 1, 100); //galacticraft diff --git a/src/main/java/com/hbm/inventory/MagicRecipes.java b/src/main/java/com/hbm/inventory/MagicRecipes.java index c2c24d594a..e2dfeffdf3 100644 --- a/src/main/java/com/hbm/inventory/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/MagicRecipes.java @@ -80,7 +80,7 @@ public static void register() { new ComparableStack(ModItems.blades_desh), new ComparableStack(ModItems.diamond_gavel))); recipes.add(new MagicRecipe(new ItemStack(ModBlocks.hadron_coil_mese), - new ComparableStack(ModBlocks.hadron_coil_starmetal), + new ComparableStack(ModBlocks.hadron_coil_chlorophyte), new ComparableStack(ModItems.powder_dineutronium), new ComparableStack(ModItems.plate_desh), new OreDictStack(GOLD.ingot()))); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 67cbd2e4d0..224b584a4d 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -173,6 +173,7 @@ public class OreDictManager { public static final DictFrame POLYMER = new DictFrame("Polymer"); public static final DictFrame BAKELITE = new DictFrame("Bakelite"); public static final DictFrame RUBBER = new DictFrame("Rubber"); + public static final DictFrame LATEX = new DictFrame("Latex"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); public static final DictFrame DESH = new DictFrame("WorkersAlloy"); @@ -264,6 +265,8 @@ public class OreDictManager { /* * COLLECTIONS */ + /** Any form of elastic polymer */ + public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER); /** Any post oil polymer like teflon ("polymer") or bakelite */ public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable /** Any post nuclear steel like TCA or CDA */ @@ -337,6 +340,7 @@ public static void registerOres() { POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); RUBBER .ingot(ingot_rubber) .block(block_rubber); + LATEX .ingot(ingot_biorubber) .gem(ball_resin); MAGTUNG .ingot(ingot_magnetized_tungsten).dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .block(block_combine_steel) .plate(plate_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); @@ -379,16 +383,16 @@ public static void registerOres() { CS .ingot(ingot_caesium) .dust(powder_caesium); CS137 .rad(HazardRegistry.cs137) .hot(3F) .hydro(3F) .dust(powder_cs137) .dustSmall(powder_cs137_tiny); AT .ingot(ingot_astatine) .dust(powder_astatine); - AT209 .rad(HazardRegistry.at209) .hot(20F) .dust(powder_at209); + AT209 .rad(HazardRegistry.at209) .hot(20F) .dust(powder_at209) .dustSmall(powder_at209_tiny); XE135 .rad(HazardRegistry.xe135) .hot(10F) .dust(powder_xe135) .dustSmall(powder_xe135_tiny); TS .ingot(ingot_tennessine) .dust(powder_tennessine); NP237 .rad(HazardRegistry.np237) .nugget(nugget_neptunium) .billet(billet_neptunium) .ingot(ingot_neptunium) .dust(powder_neptunium) .block(block_neptunium); PO210 .rad(HazardRegistry.po210) .hot(3) .nugget(nugget_polonium) .billet(billet_polonium) .ingot(ingot_polonium) .dust(powder_polonium) .block(block_polonium); TC99 .rad(HazardRegistry.tc99) .nugget(nugget_technetium) .billet(billet_technetium) .ingot(ingot_technetium); RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); - AC227 .rad(HazardRegistry.ac227) .nugget(nugget_ac227) .billet(billet_ac227) .ingot(ingot_ac227) .dust(powder_ac227); - AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198) .block(block_au198); - PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209) .dust(powder_pb209); + AC227 .rad(HazardRegistry.ac227) .nugget(nugget_ac227) .billet(billet_ac227) .ingot(ingot_ac227) .dust(powder_ac227) .dustSmall(powder_ac227_tiny); + AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198) .dustSmall(powder_au198_tiny) .block(block_au198); + PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209) .dust(powder_pb209) .dustSmall(powder_pb209_tiny); GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); AUSTRALIUM .nugget(nugget_australium) .billet(billet_australium) .ingot(ingot_australium) .dust(powder_australium) .block(block_australium) .ore(ore_australium); @@ -505,6 +509,7 @@ public static String getReflector() { } public static void registerGroups() { + ANY_RUBBER.addPrefix(INGOT, true); ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true); ANY_TAR.addPrefix(ANY, false); diff --git a/src/main/java/com/hbm/inventory/PressRecipes.java b/src/main/java/com/hbm/inventory/PressRecipes.java index a6de037d73..f97d8b1118 100644 --- a/src/main/java/com/hbm/inventory/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/PressRecipes.java @@ -12,6 +12,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -53,6 +54,8 @@ public static void registerOverrides() { addRecipe(PressType.FLAT, new ComparableStack(ModItems.powder_lignite), new ItemStack(ModItems.briquette_lignite)); addRecipe(PressType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), new ItemStack(ModItems.meteorite_sword_hardened)); addRecipe(PressType.FLAT, new OreDictStack("fuelCoke"), new ItemStack(ModItems.ingot_graphite)); + addRecipe(PressType.FLAT, new OreDictStack("sugarcane"), new ItemStack(Items.PAPER, 2)); + addRecipe(PressType.FLAT, new ComparableStack(Blocks.LOG, 1, 3), new ItemStack(ModItems.ball_resin, 1)); addRecipe(PressType.PLATE, new OreDictStack(IRON.ingot()), new ItemStack(ModItems.plate_iron)); addRecipe(PressType.PLATE, new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.plate_gold)); diff --git a/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java b/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java index 706484ca8b..80178a68dd 100644 --- a/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java +++ b/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java @@ -43,6 +43,7 @@ public static void registerOverrides() { addRecipe(360000, GOLD.ingot(), new ItemStack(ModItems.ingot_au198)); addRecipe(360000 * ItemHazard.nugget, GOLD.nugget(), new ItemStack(ModItems.nugget_au198)); addRecipe(360000 * ItemHazard.powder, GOLD.dust(), new ItemStack(ModItems.powder_au198)); + addRecipe(360000 * ItemHazard.powder_tiny, GOLD.dustTiny(), new ItemStack(ModItems.powder_au198_tiny)); addRecipe(360000 * ItemHazard.powder * ItemHazard.block, ModBlocks.sand_gold, new ItemStack(ModBlocks.sand_gold198)); addRecipe(360000 * ItemHazard.block, GOLD.block(), new ItemStack(ModBlocks.block_au198)); @@ -123,6 +124,7 @@ public static void registerOverrides() { addRecipe(14000000, PB.ingot(), new ItemStack(ModItems.ingot_pb209)); addRecipe(14000000 * ItemHazard.nugget, PB.nugget(), new ItemStack(ModItems.nugget_pb209)); addRecipe(14000000 * ItemHazard.powder, PB.dust(), new ItemStack(ModItems.powder_pb209)); + addRecipe(14000000 * ItemHazard.powder_tiny, PB.dustTiny(), new ItemStack(ModItems.powder_pb209_tiny)); addRecipe(1800000, NB.ingot(), new ItemStack(ModItems.ingot_technetium)); addRecipe(32000, ModItems.nugget_unobtainium_lesser, new ItemStack(ModItems.nugget_unobtainium)); @@ -151,7 +153,8 @@ public static void addRecipe(int requiredFlux, Block in, ItemStack out) { } public static void addRecipe(int requiredFlux, String in, ItemStack out) { - rbmkOutgasserRecipes.put(new ComparableStack(OreDictionary.getOres(in).get(0)), new Object[] {requiredFlux, out}); + if(!OreDictionary.getOres(in).isEmpty() && OreDictionary.getOres(in).get(0) != null && !OreDictionary.getOres(in).get(0).isEmpty()) + rbmkOutgasserRecipes.put(new ComparableStack(OreDictionary.getOres(in).get(0)), new Object[] {requiredFlux, out}); } public static void addRecipe(float requiredFlux, String in, ItemStack out) { diff --git a/src/main/java/com/hbm/inventory/RefineryRecipes.java b/src/main/java/com/hbm/inventory/RefineryRecipes.java index dcfcda2af8..426ab40c4e 100644 --- a/src/main/java/com/hbm/inventory/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/RefineryRecipes.java @@ -45,9 +45,9 @@ public static void registerRefineryRecipes() { refineryRecipesMap.put(ModForgeFluids.toxic_fluid, new Pair(new FluidStack[]{ new FluidStack(ModForgeFluids.wastefluid, 50), - new FluidStack(ModForgeFluids.corium_fluid, 5), - new FluidStack(ModForgeFluids.watz, 1), - new FluidStack(ModForgeFluids.wastegas, 30) }, + new FluidStack(ModForgeFluids.wastegas, 40), + new FluidStack(ModForgeFluids.corium_fluid, 4), + new FluidStack(ModForgeFluids.watz, 1)}, new ItemStack(ModItems.nuclear_waste_tiny, 1))); } diff --git a/src/main/java/com/hbm/inventory/SILEXRecipes.java b/src/main/java/com/hbm/inventory/SILEXRecipes.java index d025af12cb..56e95b3c46 100644 --- a/src/main/java/com/hbm/inventory/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/SILEXRecipes.java @@ -801,11 +801,9 @@ public static void register() { ); recipes.put(new ComparableStack(ModBlocks.ancient_scrap, 1), new SILEXRecipe(1000, 640, EnumWavelengths.DRX) .addOut(new WeightedRandomObject(new ItemStack(ModBlocks.block_electrical_scrap), 720)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 200)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.chlorine_pinwheel), 45)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.ingot_electronium), 30)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.glitch), 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.singularity_spark), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.chlorine_pinwheel), 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.ingot_electronium), 1)) ); diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index 466d054470..234d99ffa1 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -47,6 +47,15 @@ public static void registerShredder() { if(name.length() > 5 && name.substring(0, 5).equals("ingot")) { ItemStack dust = getDustByName(name.substring(5)); + if(dust != null && dust.getItem() != ModItems.scrap) { + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), dust); + } + } + } else if(name.length() > 6 && name.substring(0, 6).equals("nugget")) { + ItemStack dust = getTinyDustByName(name.substring(6)); + if(dust != null && dust.getItem() != ModItems.scrap) { for(ItemStack stack : matches) { @@ -58,7 +67,7 @@ public static void registerShredder() { if(dust != null && dust.getItem() != ModItems.scrap) { - dust.setCount(2);; + dust.setCount(2); for(ItemStack stack : matches) { shredderRecipes.put(new ComparableStack(stack), dust); @@ -69,7 +78,7 @@ public static void registerShredder() { if(dust != null && dust.getItem() != ModItems.scrap) { - dust.setCount(9);; + dust.setCount(9); for(ItemStack stack : matches) { shredderRecipes.put(new ComparableStack(stack), dust); @@ -159,7 +168,7 @@ public static void registerOverrides() { ShredderRecipes.setRecipe(ModItems.ingot_schrabidate, new ItemStack(ModItems.powder_schrabidate, 1)); ShredderRecipes.setRecipe(ModBlocks.block_schrabidate, new ItemStack(ModItems.powder_schrabidate, 9)); ShredderRecipes.setRecipe(ModItems.coal_infernal, new ItemStack(ModItems.powder_coal, 3)); - ShredderRecipes.setRecipe(Items.REEDS, new ItemStack(Items.PAPER, 3)); + ShredderRecipes.setRecipe(Items.REEDS, new ItemStack(Items.SUGAR, 2)); ShredderRecipes.setRecipe(Items.FERMENTED_SPIDER_EYE, new ItemStack(ModItems.powder_poison, 3)); ShredderRecipes.setRecipe(Items.POISONOUS_POTATO, new ItemStack(ModItems.powder_poison, 1)); @@ -305,11 +314,25 @@ public static void registerOverrides() { ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); } } + setRecipe("crystalEnder", "dustEnder"); + setRecipe("crystalFluix", "dustFluix"); + setRecipe("crystalCertusQuartz", "dustCertusQuartz"); + setRecipe("enderpearl", "dustEnderPearl"); } public static ItemStack getDustByName(String name) { - List matches = OreDictionary.getOres("dust" + name); + return getOredictByName("dust" + name); + } + + public static ItemStack getTinyDustByName(String name) { + + return getOredictByName("dustTiny" + name); + } + + public static ItemStack getOredictByName(String name) { + + List matches = OreDictionary.getOres(name); if(matches != null && !matches.isEmpty()) return matches.get(0).copy(); @@ -331,6 +354,11 @@ public static void setRecipe(ItemStack in, ItemStack out) { shredderRecipes.put(new ComparableStack(in), out); } + public static void setRecipe(String in, String out) { + if(OreDictionary.doesOreNameExist(in) && OreDictionary.doesOreNameExist(out)) + setRecipe(getOredictByName(in), getOredictByName(out)); + } + public static void removeRecipe(ItemStack in) { shredderRecipes.remove(new ComparableStack(in)); diff --git a/src/main/java/com/hbm/inventory/SlotPattern.java b/src/main/java/com/hbm/inventory/SlotPattern.java index d4bd562e98..975a3b14fd 100644 --- a/src/main/java/com/hbm/inventory/SlotPattern.java +++ b/src/main/java/com/hbm/inventory/SlotPattern.java @@ -1,8 +1,8 @@ package com.hbm.inventory; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.IItemHandler; @@ -31,6 +31,12 @@ public SlotPattern disableHover() { return this; } + @Override + public boolean isItemValid(ItemStack stack) { + return stack != null && stack.getCount() == 1; + } + + @Override @SideOnly(Side.CLIENT) public boolean isEnabled() { diff --git a/src/main/java/com/hbm/inventory/StorageDrumRecipes.java b/src/main/java/com/hbm/inventory/StorageDrumRecipes.java index 56384ee184..1dcdecedf6 100644 --- a/src/main/java/com/hbm/inventory/StorageDrumRecipes.java +++ b/src/main/java/com/hbm/inventory/StorageDrumRecipes.java @@ -57,14 +57,6 @@ public static void registerRecipes() { addRecipe(new ComparableStack(ModItems.ingot_au198, 1), new ItemStack(ModItems.bottle_mercury, 1), (int)(VersatileConfig.getShortDecayChance()*0.01), 500, 500); addRecipe(new ComparableStack(ModItems.nugget_au198, 1), new ItemStack(ModItems.nugget_mercury, 1), (int)(VersatileConfig.getShortDecayChance()*0.001), 50, 50); - - addRecipe(new ComparableStack(ModItems.powder_i131, 1), new ItemStack(ModItems.powder_iodine, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); - addRecipe(new ComparableStack(ModItems.powder_i131_tiny, 1), new ItemStack(ModItems.powder_iodine_tiny, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); - - addRecipe(new ComparableStack(ModItems.powder_co60, 1), new ItemStack(ModItems.powder_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); - addRecipe(new ComparableStack(ModItems.powder_co60_tiny, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); - addRecipe(new ComparableStack(ModItems.ingot_co60, 1), new ItemStack(ModItems.ingot_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); - addRecipe(new ComparableStack(ModItems.nugget_co60, 1), new ItemStack(ModItems.nugget_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); } public static void addRecipe(ComparableStack input, ItemStack output, int chance, int wasteLiquid, int wasteGas){ diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index 8193e51b75..a93af4f95c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -21,20 +21,20 @@ public ContainerCraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtract //filter for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new SlotPattern(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotPattern(extractor.inventory, j + i * 3, 71 + j * 18, 17 + i * 18)); } } //buffer for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new SlotItemHandler(extractor, 9 + j + i * 3, 8 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotItemHandler(extractor.inventory, 9 + j + i * 3, 8 + j * 18, 17 + i * 18)); } } //upgrades - this.addSlotToContainer(new SlotUpgrade(extractor, 18, 152, 23)); - this.addSlotToContainer(new SlotUpgrade(extractor, 19, 152, 47)); + this.addSlotToContainer(new SlotUpgrade(extractor.inventory, 18, 152, 23)); + this.addSlotToContainer(new SlotUpgrade(extractor.inventory, 19, 152, 47)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -82,42 +82,4 @@ public ItemStack transferStackInSlot(EntityPlayer player, int slot) { public boolean canInteractWith(EntityPlayer player) { return extractor.isUseableByPlayer(player); } - - - public ItemStack slotClick(int index, int button, ClickType mode, EntityPlayer player) { - - //L/R: 0 - //M3: 3 - //SHIFT: 1 - //DRAG: 5 - - if(index < 0 || index > 8) { - return super.slotClick(index, button, mode, player); - } - - Slot slot = this.getSlot(index); - - ItemStack ret = ItemStack.EMPTY; - ItemStack held = player.inventory.getItemStack(); - - if(slot.getHasStack()) - ret = slot.getStack().copy(); - - if(button == 1 && mode == ClickType.PICKUP && slot.getHasStack()) { - extractor.nextMode(index); - return ret; - - } else { - slot.putStack(held != ItemStack.EMPTY ? held.copy() : ItemStack.EMPTY); - - if(slot.getHasStack()) { - slot.getStack().setCount(1); - } - - slot.onSlotChanged(); - extractor.matcher.initPatternStandard(extractor.getWorld(), slot.getStack(), index); - - return ret; - } - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java index a0b685ec04..5f42ba1247 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -6,6 +6,7 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraftforge.items.SlotItemHandler; public class ContainerCraneInserter extends Container { protected TileEntityCraneInserter inserter; @@ -15,7 +16,7 @@ public ContainerCraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter for(int i = 0; i < 3; i++) { for(int j = 0; j < 7; j++) { - this.addSlotToContainer(new Slot(inserter, j + i * 7, 26 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotItemHandler(inserter.inventory, j + i * 7, 26 + j * 18, 17 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java index 860e17e668..32d8588c7d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java @@ -93,5 +93,4 @@ public void detectAndSendChanges() { public boolean canInteractWith(EntityPlayer playerIn) { return diFurnace.isUseableByPlayer(playerIn); } - } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java deleted file mode 100644 index 40203c4427..0000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.items.SlotItemHandler; - -public class ContainerMachineMiningDrill extends Container { - - private TileEntityMachineMiningDrill nukeBoy; - - private int warning; - - public ContainerMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - - nukeBoy = tedf; - - // Battery - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 0, 44, 53)); - // Outputs - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 1, 80, 17)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 2, 98, 17)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 3, 116, 17)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 4, 80, 35)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 5, 98, 35)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 6, 116, 35)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 7, 80, 53)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 8, 98, 53)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 9, 116, 53)); - // Upgrades - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 10, 152, 17)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 11, 152, 35)); - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 12, 152, 53)); - - 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)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = ItemStack.EMPTY; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= 12) { - if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) { - return ItemStack.EMPTY; - } - } else if(!this.mergeItemStack(var5, 0, 13, false)) { - return ItemStack.EMPTY; - } - - if(var5.isEmpty()) { - var4.putStack(ItemStack.EMPTY); - } else { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); - } - - @Override - public void addListener(IContainerListener listener) { - super.addListener(listener); - listener.sendWindowProperty(this, 1, this.nukeBoy.warning); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.listeners.size(); i++) { - IContainerListener par1 = (IContainerListener) this.listeners.get(i); - - if(this.warning != this.nukeBoy.warning) { - par1.sendWindowProperty(this, 1, this.nukeBoy.warning); - } - } - - this.warning = this.nukeBoy.warning; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) { - nukeBoy.warning = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java b/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java deleted file mode 100644 index 57a682590b..0000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.items.SlotItemHandler; - -public class ContainerNukeN45 extends Container { - - private TileEntityNukeN45 diFurnace; - - public ContainerNukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - - diFurnace = tedf; - - //Payload - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 0, 44, 35)); - //Range up - this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 1, 116, 35)); - - 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)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = ItemStack.EMPTY; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 1) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { - return ItemStack.EMPTY; - } - } - else if (!this.mergeItemStack(var5, 0, 2, false)) - { - return ItemStack.EMPTY; - } - - if (var5.isEmpty()) - { - var4.putStack(ItemStack.EMPTY); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java index 7977f9aac8..b29a60a940 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java +++ b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java @@ -30,7 +30,7 @@ public ContainerNukeTsar(InventoryPlayer invPlayer, TileEntityNukeTsar tedf) { this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 5, 111, 102)); // Uranium coating this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 6, 129, 102)); // Deuterium tank - //Stage 1 + //Stage 2 this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 7, 155, 102)); // Uranium coating this.addSlotToContainer(new SlotItemHandler(tedf.inventory, 8, 173, 102)); // Deuterium tank diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java index b6a22b4c91..328e639210 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java @@ -23,7 +23,7 @@ public GUICraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter tedf) @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.inserter.getDisplayName().getUnformattedText(); + String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 01579139c2..7fe500e34b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -51,7 +51,6 @@ else if(battery.powerDelta < 0) deltaText = TextFormatting.YELLOW + "0HE/s"; String[] info = new String[] { Library.getShortNumber(battery.power)+"HE/"+Library.getShortNumber(battery.getMaxPower())+"HE", deltaText}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 71, guiTop + 69 - 52, 34, 52, mouseX, mouseY, info); String lang = null; @@ -104,7 +103,7 @@ protected void mouseClicked(int x, int y, int i) throws IOException { @Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName()); - name += (" (" + Library.getShortNumber(this.battery.power) + " HE)"); + name += (" (" + Library.getShortNumber(battery.power) + " HE)"); this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java index fc4ad76892..a607007ab3 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java @@ -32,16 +32,9 @@ public void drawScreen(int mouseX, int mouseY, float f) { FFUtils.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52, diFurnace.tank, diFurnace.tankType); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.powerCap); - String[] text = new String[] { "Accepted Fuels:", - " Diesel (500 HE/t)", - " Petroil (300 HE/t)", - " Biofuel (400 HE/t)", - " NITAN Superfuel (5000 HE/t)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - String[] text1 = new String[] { "Fuel consumption rate:", - " 10 mB/t", - " 200 mB/s", + " 1 mB/t", + " 20 mB/s", "(Consumption rate is constant)" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); @@ -79,24 +72,11 @@ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2 drawTexturedModalRect(guiLeft + 43 + 18 * 4, guiTop + 34, 208, 0, 18, 18); } - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); if(!diFurnace.hasAcceptableFuel()) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - //diFurnace.tank.renderTank(this, guiLeft + 80, guiTop + 69, diFurnace.tank.getTankType().textureX() * FluidTank.x, diFurnace.tank.getTankType().textureY() * FluidTank.y, 16, 52); FFUtils.drawLiquid(diFurnace.tank, guiLeft, guiTop, this.zLevel, 16, 52, 80, 97); - /*Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.missileNuclear_tex); - GL11.glPushMatrix(); - GL11.glTranslatef(guiLeft + 88, guiTop + 110, 50); - GL11.glRotatef(System.currentTimeMillis() / 10 % 360, 0, -1, 0); - GL11.glTranslatef(60, 0, 0); - GL11.glScalef(16, 16, 16); - GL11.glRotatef(90, 1, 0, 0); - GL11.glRotatef(-90, 0, 0, 1); - GL11.glScalef(-1, -1, -1); - ResourceManager.missileNuclear.renderAll(); - GL11.glPopMatrix();*/ } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java b/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java deleted file mode 100644 index b72661ee4b..0000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineMiningDrill; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineMiningDrill extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_drill.png"); - private TileEntityMachineMiningDrill diFurnace; - - public GUIMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - super(new ContainerMachineMiningDrill(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, diFurnace.power, TileEntityMachineMiningDrill.maxPower); - - String[] text = new String[] { "Acceptable upgrades:", - " -Red (speed)", - " -Blue (energy saving)", - " -Green (drill radius)", - "Max upgrade level is 3"}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 39, 8, 8, guiLeft + 141, guiTop + 39 + 16, text); - super.renderHoveredToolTip(mouseX, mouseY); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); - this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - super.drawDefaultBackground(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - int k = diFurnace.warning; - if(k == 2) - drawTexturedModalRect(guiLeft + 43, guiTop + 16, 192, 0, 18, 18); - if(k == 1) - drawTexturedModalRect(guiLeft + 43, guiTop + 16, 210, 0, 18, 18); - - this.drawInfoPanel(guiLeft + 141, guiTop + 39, 8, 8, 8); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java index f648f8845a..fa4f54d7b8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java @@ -4,6 +4,7 @@ import com.hbm.inventory.container.ContainerMachineRTG; import com.hbm.lib.RefStrings; +import com.hbm.lib.Library; import com.hbm.tileentity.machine.TileEntityMachineRTG; import net.minecraft.client.Minecraft; @@ -29,7 +30,7 @@ public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, rtg.power, rtg.maxPower); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, mouseX+8, mouseY-8, new String[] {"RTG Heat " + rtg.heat + "/" + rtg.heatMax, "RTG Power " + rtg.heat*100+"HE/s"}); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, mouseX+8, mouseY-8, new String[] {"RTG Heat " + rtg.heat + "/" + rtg.heatMax, "RTG Power " + Library.getShortNumber(rtg.heat*100)+"HE/s"}); String[] text = new String[] { "Heat to Power Conversion 1:5" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java index 6e48a3421e..2b9767d50d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java @@ -32,23 +32,9 @@ public void drawScreen(int mouseX, int mouseY, float f) { FFUtils.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52, diFurnace.tank, diFurnace.tankType); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, diFurnace.power, diFurnace.powerCap); - String[] text = new String[] { "Accepted Fuels:", - " Industrial Oil (50 HE/t)", - " Heating Oil (75 HE/t)", - " Diesel (225 HE/t)", - " Kerosene (300 HE/t)", - " Reclaimed Oil (100 HE/t)", - " Petroil (125 HE/t)", - " Biofuel (200 HE/t)", - " NITAN Superfuel (2500 HE/t)", - "(These numbers are base values,", - "actual output is based", - "on piston count)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - String[] text1 = new String[] { "Fuel consumption rate:", - " 5 mB/t", - " 100 mB/s", + " 1 mB/t", + " 20 mB/s", "(Consumption rate per piston)" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); @@ -108,7 +94,6 @@ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2 if(!diFurnace.hasAcceptableFuel()) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 48, 16, 16, 7); - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); FFUtils.drawLiquid(diFurnace.tank, guiLeft, guiTop, zLevel, 16, 52, 80 + 36, 98); diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java b/src/main/java/com/hbm/inventory/gui/GUINukeN45.java deleted file mode 100644 index 2a6cd9d6bc..0000000000 --- a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUINukeN45 extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_n45.png"); - private TileEntityNukeN45 diFurnace; - - public GUINukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - super(new ContainerNukeN45(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - String[] text = new String[] { "The first slot holds the payload.", - "Acceptable payloads:", - " -Det Cord", - " -TNT", - " -Explosive Charge", - " -Nuclear Charge", - "Using detonator while in mine mode will", - "arm the mine, set to explode when", - "it detects a large entity nearby."}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "The second slot is for green machine", - "upgrades. Entity detection range increases", - "by 5 blocks for every level.", - "When left empty, the mine can not be armed", - "an will behave like a regular bomb." }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.primed) - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 121, guiTop + 22, 6, 8, mouseX, mouseY, new String[]{ "Mine armed!" } ); - super.renderHoveredToolTip(mouseX, mouseY); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); - this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - super.drawDefaultBackground(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.primed) { - drawTexturedModalRect(guiLeft + 121, guiTop + 22, 176, 0, 6, 8); - } - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 546a4bbcc2..94662c3058 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -64,6 +64,7 @@ import com.hbm.items.armor.ItemModPads; import com.hbm.items.armor.ItemModPolish; import com.hbm.items.armor.ItemModQuartz; +import com.hbm.items.armor.ItemModRadar; import com.hbm.items.armor.ItemModRevive; import com.hbm.items.armor.ItemModSerum; import com.hbm.items.armor.ItemModServos; @@ -269,6 +270,7 @@ import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.items.weapon.ItemMissile.Rarity; import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.items.weapon.ItemMissileStandard; import com.hbm.items.weapon.ItemSwordCutter; import com.hbm.items.weapon.ItemTurretAmmo; import com.hbm.items.weapon.WeaponizedCell; @@ -470,6 +472,7 @@ public class ModItems { public static final Item medal_ghoul = new ItemModMedal("medal_ghoul", 2.5F).setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item servo_set = new ItemModServos("servo_set").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item servo_set_desh = new ItemModServos("servo_set_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); + public static final Item pocket_ptsd = new ItemModRadar("pocket_ptsd", 1000).setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item v1 = new ItemModV1("v1").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item protection_charm = new ItemModCharm("protection_charm").setCreativeTab(MainRegistry.consumableTab); public static final Item meteor_charm = new ItemModCharm("meteor_charm").setCreativeTab(MainRegistry.consumableTab); @@ -553,9 +556,10 @@ public class ModItems { public static final Item battery_sc_gold = new ItemSelfcharger(2500, "battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_sc_lead = new ItemSelfcharger(5000, "battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_sc_americium = new ItemSelfcharger(10000, "battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_sc_schrabidium = new ItemSelfcharger(25000, "battery_sc_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_sc_balefire = new ItemSelfcharger(50000, "battery_sc_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_sc_balefire = new ItemSelfcharger(25000, "battery_sc_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_sc_schrabidium = new ItemSelfcharger(50000, "battery_sc_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_sc_yharonite = new ItemSelfcharger(500000, "battery_sc_yharonite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_sc_electronium = new ItemSelfcharger(50000000000L, "battery_sc_electronium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_creative = new ItemSelfcharger(Long.MAX_VALUE, "battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); @@ -576,9 +580,9 @@ public class ModItems { public static final Item battery_lithium_cell_6 = new ItemBattery(750000 * 6, 1000, 1000, "battery_lithium_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_schrabidium = new ItemBattery(1000000, 5000, 5000, "battery_schrabidium").setMaxStackSize(1); - public static final Item battery_schrabidium_cell = new ItemBattery(3000000, 5000, 5000, "battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 5000, 5000, "battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 5000, 5000, "battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_schrabidium_cell = new ItemBattery(3000000, 15000, 15000, "battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 30000, 30000, "battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 60000, 60000, "battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_trixite = new ItemBattery(5000000, 40000, 200000, "battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_spark = new ItemBattery(100000000, 2000000, 2000000, "battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); @@ -586,9 +590,9 @@ public class ModItems { public static final Item battery_spark_cell_25 = new ItemBattery(100000000L * 25L, 2000000, 2000000, "battery_spark_cell_25").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_spark_cell_100 = new ItemBattery(1000000000L * 10L, 1000000L * 5L, 1000000L * 5L, "battery_spark_cell_100").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_spark_cell_1000 = new ItemBattery(1000000000L * 100L, 10000000L * 5L, 10000000L * 5L, "battery_spark_cell_1000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_spark_cell_2500 = new ItemBattery(1000000000L * 250L, 10000000L * 5L, 10000000L * 5L, "battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_spark_cell_10000 = new ItemBattery(1000000000L * 1000L, 100000000L * 5L, 100000000L * 5L, "battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item battery_spark_cell_power = new ItemBattery(1000000000L * 100000L, 100000000L * 500L, 100000000L * 500L, "battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_spark_cell_2500 = new ItemBattery(1000000000L * 250L, 100000000L * 5L, 100000000L * 5L, "battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_spark_cell_10000 = new ItemBattery(1000000000L * 1000L, 1000000000L * 5L, 1000000000L * 5L, "battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item battery_spark_cell_power = new ItemBattery(1000000000L * 100000L, 1000000000L * 500L, 1000000000L * 500L, "battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_potato = new ItemBattery(100, 0, 100, "battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_potatos = new ItemPotatos(5000, 0, 100, "battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); @@ -649,7 +653,6 @@ public class ModItems { public static final Item upgrade_stack_2 = new ItemMachineUpgrade("upgrade_stack_2", UpgradeType.SPEED, 1).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item upgrade_stack_3 = new ItemMachineUpgrade("upgrade_stack_3", UpgradeType.SPEED, 1).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - //Fluid handling items public static final Item canister_generic = new ItemFluidCanister("canister_fuel", 1000).setCreativeTab(MainRegistry.controlTab); public static final Item canister_napalm = new ItemCustomLore("canister_napalm").setCreativeTab(MainRegistry.controlTab); @@ -699,6 +702,7 @@ public class ModItems { public static final Item liquidator_helmet = new ArmorLiquidator(MainRegistry.aMatLiquidator, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/liquidator_helmet.png", "liquidator_helmet") .setThreshold(1.0F) .setBlastProtection(0.25F) + .setProtectionLevel(80F) .setFireproof(true) .setStep(HBMSoundHandler.iron) .setJump(HBMSoundHandler.ironJump) @@ -712,17 +716,17 @@ public class ModItems { public static final Item hazmat_paa_legs = new ArmorHazmat(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.LEGS, "hazmat_paa_legs").setMaxStackSize(1); public static final Item hazmat_paa_boots = new ArmorHazmat(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.FEET, "hazmat_paa_boots").setMaxStackSize(1); - public static final Item paa_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/paa_1.png", "paa_helmet").setCap(4F).setMod(0.2F).setBlastProtection(0.5F).addEffect(new PotionEffect(MobEffects.HASTE, 20, 0)).addEffect(new PotionEffect(MobEffects.SPEED, 20, 0)).addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 20, 0)).setFireproof(true).setMaxStackSize(1); + public static final Item paa_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/paa_1.png", "paa_helmet").setCap(4F).setMod(0.2F).setBlastProtection(0.5F).setProtectionLevel(200F).addEffect(new PotionEffect(MobEffects.HASTE, 30, 0)).addEffect(new PotionEffect(MobEffects.SPEED, 30, 0)).addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 30, 0)).setFireproof(true).setMaxStackSize(1); public static final Item paa_plate = new ArmorFSB(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/paa_1.png", "paa_plate").cloneStats((ArmorFSB) paa_helmet).setMaxStackSize(1); public static final Item paa_legs = new ArmorFSB(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/paa_2.png", "paa_legs").cloneStats((ArmorFSB) paa_helmet).setMaxStackSize(1); public static final Item paa_boots = new ArmorFSB(MainRegistry.enumArmorMaterialPaa, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/paa_1.png", "paa_boots").cloneStats((ArmorFSB) paa_helmet).setMaxStackSize(1); public static final Item australium_iii = new ArmorAustralium(MainRegistry.enumArmorMaterialAusIII, -1, EntityEquipmentSlot.CHEST, "australium_iii").setMaxStackSize(1); - public static final Item asbestos_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_helmet").setFireproof(true).setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setMaxStackSize(1); - public static final Item asbestos_plate = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_plate").setFireproof(true).setMaxStackSize(1); - public static final Item asbestos_legs = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/asbestos_2.png", "asbestos_legs").setFireproof(true).setMaxStackSize(1); - public static final Item asbestos_boots = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_boots").setFireproof(true).setMaxStackSize(1); + public static final Item asbestos_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_helmet").setThreshold(2.0F).setFireproof(true).setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setMaxStackSize(1); + public static final Item asbestos_plate = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_plate").setThreshold(2.0F).setFireproof(true).setMaxStackSize(1); + public static final Item asbestos_legs = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/asbestos_2.png", "asbestos_legs").setThreshold(2.0F).setFireproof(true).setMaxStackSize(1); + public static final Item asbestos_boots = new ArmorFSB(MainRegistry.enumArmorMaterialAsbestos, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/asbestos_1.png", "asbestos_boots").setThreshold(2.0F).setFireproof(true).setMaxStackSize(1); public static final Item euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, -1, EntityEquipmentSlot.HEAD, "euphemium_helmet").setMaxStackSize(1); @@ -744,32 +748,33 @@ public class ModItems { .addHitAbility(new WeaponAbility.BeheaderAbility()); - public static final Item steel_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialSteel, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/steel_1.png", "steel_helmet").setMod(0.9F).setMaxStackSize(1); + public static final Item steel_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialSteel, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/steel_1.png", "steel_helmet").setMod(0.9F).setProtectionLevel(20F).setMaxStackSize(1); public static final Item steel_plate = new ArmorFSB(MainRegistry.enumArmorMaterialSteel, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/steel_1.png", "steel_plate").cloneStats((ArmorFSB) steel_helmet).setMaxStackSize(1); public static final Item steel_legs = new ArmorFSB(MainRegistry.enumArmorMaterialSteel, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/steel_2.png", "steel_legs").cloneStats((ArmorFSB) steel_helmet).setMaxStackSize(1); public static final Item steel_boots = new ArmorFSB(MainRegistry.enumArmorMaterialSteel, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/steel_1.png", "steel_boots").cloneStats((ArmorFSB) steel_helmet).setMaxStackSize(1); - public static final Item titanium_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialTitanium, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/titanium_1.png", "titanium_helmet").setMod(0.85F).setMaxStackSize(1); + public static final Item titanium_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialTitanium, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/titanium_1.png", "titanium_helmet").setMod(0.85F).setProtectionLevel(30F).setMaxStackSize(1); public static final Item titanium_plate = new ArmorFSB(MainRegistry.enumArmorMaterialTitanium, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/titanium_1.png", "titanium_plate").cloneStats((ArmorFSB) titanium_helmet).setMaxStackSize(1); public static final Item titanium_legs = new ArmorFSB(MainRegistry.enumArmorMaterialTitanium, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/titanium_2.png", "titanium_legs").cloneStats((ArmorFSB) titanium_helmet).setMaxStackSize(1); public static final Item titanium_boots = new ArmorFSB(MainRegistry.enumArmorMaterialTitanium, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/titanium_1.png", "titanium_boots").cloneStats((ArmorFSB) titanium_helmet).setMaxStackSize(1); - public static final Item alloy_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialAlloy, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/alloy_1.png", "alloy_helmet").setMod(0.8F).setMaxStackSize(1); + public static final Item alloy_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialAlloy, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/alloy_1.png", "alloy_helmet").setMod(0.8F).setProtectionLevel(50F).setMaxStackSize(1); public static final Item alloy_plate = new ArmorFSB(MainRegistry.enumArmorMaterialAlloy, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/alloy_1.png", "alloy_plate").cloneStats((ArmorFSB) alloy_helmet).setMaxStackSize(1); public static final Item alloy_legs = new ArmorFSB(MainRegistry.enumArmorMaterialAlloy, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/alloy_2.png", "alloy_legs").cloneStats((ArmorFSB) alloy_helmet).setMaxStackSize(1); public static final Item alloy_boots = new ArmorFSB(MainRegistry.enumArmorMaterialAlloy, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/alloy_1.png", "alloy_boots").cloneStats((ArmorFSB) alloy_helmet).setMaxStackSize(1); - public static final Item cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/cobalt_1.png", "cobalt_helmet").setMod(0.75F); + public static final Item cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/cobalt_1.png", "cobalt_helmet").setProtectionLevel(75F).setMod(0.75F); public static final Item cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/cobalt_1.png", "cobalt_plate").cloneStats((ArmorFSB) cobalt_helmet); public static final Item cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/cobalt_2.png", "cobalt_legs").cloneStats((ArmorFSB) cobalt_helmet); public static final Item cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/cobalt_1.png", "cobalt_boots").cloneStats((ArmorFSB) cobalt_helmet); - public static final Item security_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialSecurity, 7, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/security_1.png", "security_helmet").setMod(0.65F).setMaxStackSize(1); + public static final Item security_helmet = new ArmorFSB(MainRegistry.enumArmorMaterialSecurity, 7, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/security_1.png", "security_helmet").setMod(0.65F).setProjectileProtection(0.5F).setProtectionLevel(100F).setMaxStackSize(1); public static final Item security_plate = new ArmorFSB(MainRegistry.enumArmorMaterialSecurity, 7, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/security_1.png", "security_plate").cloneStats((ArmorFSB) security_helmet).setMaxStackSize(1); public static final Item security_legs = new ArmorFSB(MainRegistry.enumArmorMaterialSecurity, 7, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/security_2.png", "security_legs").cloneStats((ArmorFSB) security_helmet).setMaxStackSize(1); public static final Item security_boots = new ArmorFSB(MainRegistry.enumArmorMaterialSecurity, 7, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/security_1.png", "security_boots").cloneStats((ArmorFSB) security_helmet).setMaxStackSize(1); public static final Item starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", "starmetal_helmet").setMod(0.5F).setCap(15F) + .setProtectionLevel(200F) .setFireproof(true); public static final Item starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/starmetal_1.png", "starmetal_plate").cloneStats((ArmorFSB) starmetal_helmet); public static final Item starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/starmetal_2.png", "starmetal_legs").cloneStats((ArmorFSB) starmetal_helmet); @@ -779,6 +784,7 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.SPEED, 30, 2)) .addEffect(new PotionEffect(MobEffects.HASTE, 30, 0)) .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 0)) + .setProtectionLevel(400F) .setFireproof(true); public static final Item cmb_plate = new ArmorFSB(MainRegistry.enumArmorMaterialCmb, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/cmb_1.png", "cmb_plate").cloneStats((ArmorFSB) cmb_helmet).setMaxStackSize(1); public static final Item cmb_legs = new ArmorFSB(MainRegistry.enumArmorMaterialCmb, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/cmb_2.png", "cmb_legs").cloneStats((ArmorFSB) cmb_helmet).setMaxStackSize(1); @@ -789,6 +795,7 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 2)) .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 1)) .addEffect(new PotionEffect(MobEffects.SPEED, 30, 2)) + .setProtectionLevel(600F) .setFireproof(true); public static final Item schrabidium_plate = new ArmorFSB(MainRegistry.enumArmorMaterialSchrabidium, -1, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/schrabidium_1.png", "schrabidium_plate").cloneStats((ArmorFSB) schrabidium_helmet).setMaxStackSize(1); public static final Item schrabidium_legs = new ArmorFSB(MainRegistry.enumArmorMaterialSchrabidium, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/schrabidium_2.png", "schrabidium_legs").cloneStats((ArmorFSB) schrabidium_helmet).setCap(4F).setMod(0.1F).setMaxStackSize(1); @@ -799,8 +806,9 @@ public class ModItems { .setFireproof(true) .enableVATS(true) .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 0)) - .addEffect(new PotionEffect(MobEffects.SPEED, 30, 1)) + .addEffect(new PotionEffect(MobEffects.SPEED, 30, 0)) .setBlastProtection(0.5F) + .setProtectionLevel(100F) .addResistance("fall", 0).setCreativeTab(CreativeTabs.COMBAT); public static final Item t45_plate = new ArmorT45(MainRegistry.enumArmorMaterialT45, -1, EntityEquipmentSlot.CHEST, 1000000, 10000, 1000, 5, "t45_plate").cloneStats((ArmorFSB) t45_helmet).setCreativeTab(CreativeTabs.COMBAT); public static final Item t45_legs = new ArmorT45(MainRegistry.enumArmorMaterialT45, -1, EntityEquipmentSlot.LEGS, 1000000, 10000, 1000, 5, "t45_legs").cloneStats((ArmorFSB) t45_helmet).setCreativeTab(CreativeTabs.COMBAT); @@ -814,6 +822,7 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 0)) .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 0)) .setBlastProtection(0.25F) + .setProtectionLevel(200F) .setStep(HBMSoundHandler.iron) .setJump(HBMSoundHandler.ironJump) .setFall(HBMSoundHandler.ironLand) @@ -832,6 +841,7 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 0)) .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 0)) .setBlastProtection(0.25F) + .setProtectionLevel(200F) .setStep(HBMSoundHandler.iron) .setJump(HBMSoundHandler.ironJump) .setFall(HBMSoundHandler.ironLand) @@ -841,12 +851,13 @@ public class ModItems { public static final Item ajro_legs = new ArmorAJRO(MainRegistry.aMatAJR, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25, "ajro_legs").cloneStats((ArmorFSB) ajro_helmet); public static final Item ajro_boots = new ArmorAJRO(MainRegistry.aMatAJR, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25, "ajro_boots").cloneStats((ArmorFSB) ajro_helmet); - public static final Item hev_helmet = new ArmorHEV(MainRegistry.aMatHEV, 7, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 5000000, 10000, 2500, 100, "hev_helmet").setMod(0.25F).setCap(4.0F).setThreshold(2.0F) + public static final Item hev_helmet = new ArmorHEV(MainRegistry.aMatHEV, 7, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 5000000, 10000, 2500, 100, "hev_helmet").setCap(4.0F).setThreshold(2.0F) .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 0)) .addEffect(new PotionEffect(MobEffects.SPEED, 30, 1)) .addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 30, 0)) .enableFlashlight(new Vec3d(0, -0.1, 0.8)) .setBlastProtection(0.25F) + .setProtectionLevel(400F) .setMod(0.2F) .setFireproof(true) .setHasGeigerSound(true) @@ -866,7 +877,7 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.SATURATION, 30, 0)) .addEffect(new PotionEffect(HbmPotion.radx, 30, 0)) .setBlastProtection(0.5F) - //.setGravity(0.02D) + .setProtectionLevel(500F) .setStep(HBMSoundHandler.iron) .setJump(HBMSoundHandler.ironJump) .setFall(HBMSoundHandler.ironLand) @@ -876,7 +887,7 @@ public class ModItems { public static final Item bj_legs = new ArmorBJ(MainRegistry.aMatBJ, 7, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100, "bj_legs").cloneStats((ArmorFSB) bj_helmet); public static final Item bj_boots = new ArmorBJ(MainRegistry.aMatBJ, 7, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100, "bj_boots").cloneStats((ArmorFSB) bj_helmet); - public static final Item rpa_helmet = new ArmorRPA(MainRegistry.aMatRPA, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 50000000, 100000, 20000, 500, "RPA_helmet").setMod(0.25F).setCap(6.0F).setThreshold(4F) + public static final Item rpa_helmet = new ArmorRPA(MainRegistry.aMatRPA, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 50000000, 100000, 20000, 500, "RPA_helmet").setCap(6.0F) .setFireproof(true) .enableVATS(true) .setHasGeigerSound(true) @@ -885,6 +896,8 @@ public class ModItems { .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 3)) .addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 30, 0)) .setBlastProtection(0.25F) + .setProjectileProtection(0.25F) + .setProtectionLevel(1500) .setMod(0.1F) .setThreshold(20.0F) .setStep(HBMSoundHandler.poweredStep) @@ -896,10 +909,11 @@ public class ModItems { public static final Item rpa_legs = new ArmorRPA(MainRegistry.aMatRPA, -1, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/starmetal_2.png", 50000000, 100000, 20000, 500, "RPA_legs").cloneStats((ArmorFSB) rpa_helmet); public static final Item rpa_boots = new ArmorRPA(MainRegistry.aMatRPA, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/starmetal_1.png", 50000000, 100000, 20000, 500, "RPA_boots").cloneStats((ArmorFSB) rpa_helmet); - public static final Item fau_helmet = new ArmorDigamma(MainRegistry.aMatFau, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100000000, 100000, 25000, 1000, "fau_helmet").setMod(0.25F).setCap(4.0F).setThreshold(2.0F) + public static final Item fau_helmet = new ArmorDigamma(MainRegistry.aMatFau, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100000000, 100000, 25000, 1000, "fau_helmet").setCap(4.0F).setThreshold(5.0F) .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 1)) .addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 30, 0)) .setBlastProtection(0.05F) + .setProtectionLevel(1000F) .setMod(0.05F) .setHasGeigerSound(true) .enableThermalSight(true) @@ -915,7 +929,7 @@ public class ModItems { public static final Item fau_boots = new ArmorDigamma(MainRegistry.aMatFau, -1, EntityEquipmentSlot.FEET, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100000000, 100000, 25000, 1000, "fau_boots").cloneStats((ArmorFSB) fau_helmet); public static final Item dns_helmet = new ArmorDNT(MainRegistry.aMatDNS, -1, EntityEquipmentSlot.HEAD, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 10000, "dns_helmet") - .addEffect(new PotionEffect(MobEffects.STRENGTH, 20, 9)) + .addEffect(new PotionEffect(MobEffects.STRENGTH, 30, 9)) .addEffect(new PotionEffect(MobEffects.HASTE, 30, 7)) .addEffect(new PotionEffect(MobEffects.JUMP_BOOST, 30, 2)) .addEffect(new PotionEffect(MobEffects.WATER_BREATHING, 30, 0)) @@ -1103,6 +1117,7 @@ public class ModItems { public static final Item ingot_polymer = new ItemCustomLore("ingot_polymer").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_bakelite = new ItemCustomLore("ingot_bakelite").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_rubber = new ItemCustomLore("ingot_rubber").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_biorubber = new ItemCustomLore("ingot_biorubber").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_desh = new ItemCustomLore("ingot_desh").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_saturnite = new ItemCustomLore("ingot_saturnite").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_ferrouranium = new ItemHazard("ingot_ferrouranium").addRadiation(ItemHazard.u * 0.5F).toItem().setCreativeTab(MainRegistry.partsTab); @@ -1174,7 +1189,7 @@ public class ModItems { public static final Item ingot_ra226 = new ItemHazard(ItemHazard.ra226, "ingot_ra226").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ingot_ac227 = new ItemHazard(ItemHazard.ac227, "ingot_ac227").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_gh336 = new ItemHazard(ItemHazard.gh336, "ingot_gh336").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_radspice = new ItemHazard(ItemHazard.radspice, "ingot_radspice").addFire(15).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_radspice = new ItemHazard(ItemHazard.radspice, "ingot_radspice").addFire(15).addToxic(2).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ingot_electronium = new ItemUnstable(30, 6000, "ingot_electronium").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_reiium = new ItemCustomLore("ingot_reiium").setCreativeTab(MainRegistry.partsTab); @@ -1298,7 +1313,7 @@ public class ModItems { public static final Item nugget_au198 = new ItemHazard(ItemHazard.au198 * ItemHazard.nugget, "nugget_au198").addFire(15).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item nugget_ra226 = new ItemHazard(ItemHazard.ra226 * ItemHazard.nugget, "nugget_ra226").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); - public static final Item nugget_radspice = new ItemHazard(ItemHazard.radspice * ItemHazard.nugget, "nugget_radspice").addFire(15).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item nugget_radspice = new ItemHazard(ItemHazard.radspice * ItemHazard.nugget, "nugget_radspice").addFire(15).addToxic(1).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item nugget_reiium = new ItemCustomLore("nugget_reiium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_weidanium = new ItemCustomLore("nugget_weidanium").setCreativeTab(MainRegistry.partsTab); @@ -1422,7 +1437,9 @@ public class ModItems { public static final Item powder_sr90 = new ItemContaminating(ItemHazard.sr90 * ItemHazard.powder, true, "powder_sr90").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_sr90_tiny = new ItemContaminating(ItemHazard.sr90 * ItemHazard.powder_tiny, true, "powder_sr90_tiny").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_at209 = new ItemContaminating(ItemHazard.at209 * ItemHazard.powder, "powder_at209").addFire(15).addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item powder_at209_tiny = new ItemContaminating(ItemHazard.at209 * ItemHazard.powder_tiny, "powder_at209_tiny").addFire(15).addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_pb209 = new ItemContaminating(ItemHazard.pb209 * ItemHazard.powder, "powder_pb209").addToxic(4).addFire(15).addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item powder_pb209_tiny = new ItemContaminating(ItemHazard.pb209 * ItemHazard.powder_tiny, "powder_pb209_tiny").addToxic(4).addFire(15).addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_i131 = new ItemContaminating(ItemHazard.i131 * ItemHazard.powder, "powder_i131").addFire(15).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_i131_tiny = new ItemContaminating(ItemHazard.i131 * ItemHazard.powder_tiny, true, "powder_i131_tiny").setCreativeTab(MainRegistry.partsTab); public static final Item powder_cs137 = new ItemContaminating(ItemHazard.cs137 * ItemHazard.powder, "powder_cs137").addHydroReactivity().addFire(5).toItem().setCreativeTab(MainRegistry.partsTab); @@ -1430,16 +1447,19 @@ public class ModItems { public static final Item powder_xe135 = new ItemContaminating(ItemHazard.xe135 * ItemHazard.powder, "powder_xe135").addCryogenic(6).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_xe135_tiny = new ItemContaminating(ItemHazard.xe135 * ItemHazard.powder_tiny, "powder_xe135_tiny").addCryogenic(1).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_au198 = new ItemContaminating(ItemHazard.au198 * ItemHazard.powder, "powder_au198").addFire(15).toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item powder_au198_tiny = new ItemContaminating(ItemHazard.au198 * ItemHazard.powder_tiny, "powder_au198_tiny").addFire(15).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_ra226 = new ItemContaminating(ItemHazard.ra226 * ItemHazard.powder, "powder_ra226").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item powder_ac227 = new ItemContaminating(ItemHazard.ac227 * ItemHazard.powder, "powder_ac227").setCreativeTab(MainRegistry.partsTab); - public static final Item powder_radspice = new ItemContaminating(ItemHazard.radspice * ItemHazard.powder, "powder_radspice").addFire(15).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item powder_ac227_tiny = new ItemContaminating(ItemHazard.ac227 * ItemHazard.powder_tiny, "powder_ac227_tiny").setCreativeTab(MainRegistry.partsTab); + public static final Item powder_radspice = new ItemContaminating(ItemHazard.radspice * ItemHazard.powder, "powder_radspice").addFire(15).addToxic(3).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item powder_radspice_tiny = new ItemContaminating(ItemHazard.radspice * ItemHazard.powder_tiny, "powder_radspice_tiny").addFire(15).addToxic(1).addBlinding().addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item sulfur = new ItemBase("sulfur").setCreativeTab(MainRegistry.partsTab); public static final Item niter = new ItemBase("niter").setCreativeTab(MainRegistry.partsTab); public static final Item fluorite = new ItemBase("fluorite").setCreativeTab(MainRegistry.partsTab); public static final Item lithium = new ItemHazard("lithium").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ingot_semtex = new ItemLemon(4, 5, true, "ingot_semtex").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_c4 = new ItemBase("ingot_c4").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_c4 = new ItemFuel("ingot_c4", 1600).setCreativeTab(MainRegistry.partsTab); public static final Item trinitite = new ItemHazard(5F, "trinitite").setCreativeTab(MainRegistry.partsTab); public static final Item nuclear_waste_long = new ItemWasteLong(50F, "nuclear_waste_long").setCreativeTab(MainRegistry.partsTab); @@ -1679,8 +1699,9 @@ public class ModItems { public static final Item flywheel_beryllium = new ItemBase("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab); public static final Item component_limiter = new ItemBase("component_limiter").setCreativeTab(MainRegistry.partsTab); public static final Item component_emitter = new ItemBase("component_emitter").setCreativeTab(MainRegistry.partsTab); - public static final Item biomass = new ItemBase("biomass").setCreativeTab(MainRegistry.partsTab); + public static final Item biomass = new ItemFuel("biomass", 20).setCreativeTab(MainRegistry.partsTab); public static final Item biomass_compressed = new ItemFuel("biomass_compressed", 800).setCreativeTab(MainRegistry.partsTab); + public static final Item ball_resin = new ItemFuel("ball_resin", 80).setCreativeTab(MainRegistry.partsTab); public static final Item cordite = new ItemHazard("cordite").addExplosive(2).addCoal(1).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ballistite = new ItemHazard("ballistite").addExplosive(1).addCoal(1).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ball_dynamite = new ItemHazard("ball_dynamite").addExplosive(2).toItem().setCreativeTab(MainRegistry.partsTab); @@ -1689,7 +1710,7 @@ public class ModItems { public static final Item piston_pneumatic = new ItemBase("piston_pneumatic").setCreativeTab(MainRegistry.partsTab); public static final Item piston_hydraulic = new ItemBase("piston_hydraulic").setCreativeTab(MainRegistry.partsTab); public static final Item piston_electro = new ItemBase("piston_electro").setCreativeTab(MainRegistry.partsTab); - + //BedrockOres public static final Item ore_bedrock = new ItemBedrockOre("ore_bedrock").setCreativeTab(MainRegistry.partsTab); public static final Item ore_bedrock_centrifuged = new ItemBedrockOre("ore_bedrock_centrifuged").setCreativeTab(MainRegistry.partsTab); //Centri @@ -1836,10 +1857,10 @@ public class ModItems { public static final Item definitelyfood = new ItemLemon(2, 5, false, "definitelyfood").setCreativeTab(MainRegistry.consumableTab); public static final Item med_ipecac = new ItemLemon(0, 0, false, "med_ipecac").setCreativeTab(MainRegistry.consumableTab); public static final Item med_ptsd = new ItemLemon(0, 0, false, "med_ptsd").setCreativeTab(MainRegistry.consumableTab); - //public static final Item med_schizophrenia = new ItemLemon(0, 0, false, "med_schizophrenia").setCreativeTab(MainRegistry.consumableTab); + public static final Item med_schizophrenia = new ItemLemon(0, 0, false, "med_schizophrenia").setCreativeTab(null); public static final Item loops = new ItemLemon(4, 5, false, "loops").setCreativeTab(MainRegistry.consumableTab); public static final Item loop_stew = new ItemLemon(10, 10, false, "loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); - public static final Item fooditem = new ItemLemon(2, 5, false, "fooditem").setCreativeTab(MainRegistry.consumableTab); + public static final Item fooditem = new ItemLemon(2, 5, false, "fooditem").setCreativeTab(null); public static final Item twinkie = new ItemLemon(3, 5, false, "twinkie").setCreativeTab(MainRegistry.consumableTab); public static final Item static_sandwich = new ItemLemon(6, 5, false, "static_sandwich").setCreativeTab(MainRegistry.consumableTab); public static final Item canteen_13 = new ItemCanteen(1 * 60, "canteen_13").setCreativeTab(MainRegistry.consumableTab); @@ -1900,25 +1921,26 @@ public class ModItems { public static final Item can_breen = new ItemEnergy("can_breen").setContainerItem(ModItems.can_empty).setCreativeTab(MainRegistry.consumableTab); //Tools - public static final Item steel_sword = new ItemSwordAbility(6F, 0, MainRegistry.enumToolMaterialSteel, "steel_sword").setMaxStackSize(1); - public static final Item steel_pickaxe = new ItemToolAbility(4F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.PICKAXE, "steel_pickaxe").setMaxStackSize(1); - public static final Item steel_axe = new ItemToolAbility(5F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.AXE, "steel_axe") - .addHitAbility(new WeaponAbility.BeheaderAbility()).setMaxStackSize(1); - public static final Item steel_shovel = new ItemToolAbility(3F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SHOVEL, "steel_shovel").setMaxStackSize(1); - public static final Item steel_hoe = new ModHoe(MainRegistry.enumToolMaterialSteel, "steel_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS);; - public static final Item titanium_sword = new ItemSwordAbility(6.5F, 0, MainRegistry.enumToolMaterialTitanium, "titanium_sword").setMaxStackSize(1); public static final Item titanium_pickaxe = new ItemToolAbility(4.5F, -2.8F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.PICKAXE, "titanium_pickaxe").setMaxStackSize(1); public static final Item titanium_axe = new ItemToolAbility(5.5F, -2.8F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.AXE, "titanium_axe") .addHitAbility(new WeaponAbility.BeheaderAbility()).setMaxStackSize(1); public static final Item titanium_shovel = new ItemToolAbility(3.5F, -2.8F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.SHOVEL, "titanium_shovel").setMaxStackSize(1); - public static final Item titanium_hoe = new ModHoe(MainRegistry.enumToolMaterialTitanium, "titanium_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS);; + public static final Item titanium_hoe = new ModHoe(MainRegistry.enumToolMaterialTitanium, "titanium_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS); + + public static final Item steel_sword = new ItemSwordAbility(6F, 0, MainRegistry.enumToolMaterialSteel, "steel_sword").setMaxStackSize(1); + public static final Item steel_pickaxe = new ItemToolAbility(4F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.PICKAXE, "steel_pickaxe").addBreakAbility(new ToolAbility.RecursionAbility(2)).setMaxStackSize(1); + public static final Item steel_axe = new ItemToolAbility(5F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.AXE, "steel_axe") + .addHitAbility(new WeaponAbility.BeheaderAbility()).addBreakAbility(new ToolAbility.RecursionAbility(2)).setMaxStackSize(1); + public static final Item steel_shovel = new ItemToolAbility(3F, -2.8F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SHOVEL, "steel_shovel").addBreakAbility(new ToolAbility.RecursionAbility(2)).setMaxStackSize(1); + public static final Item steel_hoe = new ModHoe(MainRegistry.enumToolMaterialSteel, "steel_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS); public static final Item alloy_sword = new ItemSwordAbility(9F, 0, MainRegistry.enumToolMaterialAlloy, "alloy_sword") .addHitAbility(new WeaponAbility.StunAbility(2)); public static final Item alloy_pickaxe = new ItemToolAbility(6F, -2.8F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.PICKAXE, "alloy_pickaxe") - .addBreakAbility(new ToolAbility.RecursionAbility(3)); + .addBreakAbility(new ToolAbility.RecursionAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()); public static final Item alloy_axe = new ItemToolAbility(7F, -2.8F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.AXE, "alloy_axe") .addBreakAbility(new ToolAbility.RecursionAbility(3)) @@ -1928,30 +1950,6 @@ public class ModItems { .addBreakAbility(new ToolAbility.RecursionAbility(3)); public static final Item alloy_hoe = new ModHoe(MainRegistry.enumToolMaterialAlloy, "alloy_hoe").setCreativeTab(CreativeTabs.TOOLS); - public static final Item cmb_sword = new ItemSwordAbility(50F, 0, MainRegistry.enumToolMaterialCmb, "cmb_sword") - .addHitAbility(new WeaponAbility.StunAbility(2)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)); - - public static final Item cmb_pickaxe = new ItemToolAbility(10, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.PICKAXE, "cmb_pickaxe") - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)); - - public static final Item cmb_axe = new ItemToolAbility(12.5F, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.AXE, "cmb_axe") - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()); - - public static final Item cmb_shovel = new ItemToolAbility(8, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SHOVEL, "cmb_shovel") - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)); - - public static final Item cmb_hoe = new ModHoe(MainRegistry.enumToolMaterialCmb, "cmb_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS); public static final Item elec_sword = new ItemSwordAbilityPower(15F, 0, MainRegistry.enumToolMaterialElec, 500000, 1000, 100, "elec_sword") .addHitAbility(new WeaponAbility.StunAbility(5)); @@ -2100,6 +2098,31 @@ public class ModItems { .addHitAbility(new WeaponAbility.StunAbility(3)); public static final Item starmetal_hoe = new ModHoe(matStarmetal, "starmetal_hoe").setCreativeTab(CreativeTabs.TOOLS); + public static final Item cmb_sword = new ItemSwordAbility(50F, 0, MainRegistry.enumToolMaterialCmb, "cmb_sword") + .addHitAbility(new WeaponAbility.StunAbility(2)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)); + + public static final Item cmb_pickaxe = new ItemToolAbility(10, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.PICKAXE, "cmb_pickaxe") + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)); + + public static final Item cmb_axe = new ItemToolAbility(12.5F, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.AXE, "cmb_axe") + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)) + .addHitAbility(new WeaponAbility.BeheaderAbility()); + + public static final Item cmb_shovel = new ItemToolAbility(8, -2.8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SHOVEL, "cmb_shovel") + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)); + + public static final Item cmb_hoe = new ModHoe(MainRegistry.enumToolMaterialCmb, "cmb_hoe").setMaxStackSize(1).setCreativeTab(CreativeTabs.TOOLS); + public static final ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); public static final Item bismuth_pickaxe = new ItemToolAbility(15F, -2.8F, 0, matBismuth, EnumToolType.MINER, "bismuth_pickaxe") .addBreakAbility(new ToolAbility.HammerAbility(2)) @@ -3128,11 +3151,11 @@ public class ModItems { public static final Item gadget_wireing = new ItemGadget(0F, "gadget_wireing").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item gadget_core = new ItemGadget(5F, "gadget_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); - public static final Item boy_igniter = new ItemBoy(0F, "boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); - public static final Item boy_propellant = new ItemBoy(0F, "boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); - public static final Item boy_bullet = new ItemBoy(1.5F, "boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); - public static final Item boy_target = new ItemBoy(5F, "boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item boy_shielding = new ItemBoy(0F, "boy_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item boy_target = new ItemBoy(5F, "boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item boy_bullet = new ItemBoy(1.5F, "boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item boy_propellant = new ItemBoy(0F, "boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item boy_igniter = new ItemBoy(0F, "boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item man_core = new ItemManMike(5F, "man_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item man_explosive = new ItemBase("man_explosive").setCreativeTab(MainRegistry.nukeTab); @@ -3153,7 +3176,7 @@ public class ModItems { public static final Item solinium_igniter = new ItemSolinium(0F, false, "solinium_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item solinium_propellant = new ItemSolinium(0F, false, "solinium_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); - public static final Item n2_charge = new ItemN2("n2_charge").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item n2_charge = new ItemN2("n2_charge").setMaxStackSize(12).setCreativeTab(MainRegistry.nukeTab); public static final Item egg_balefire_shard = new ItemHazard(ItemHazard.bf * ItemHazard.nugget, true, "egg_balefire_shard").setMaxStackSize(16).setCreativeTab(MainRegistry.nukeTab); public static final Item egg_balefire = new ItemHazard(ItemHazard.bf, true, "egg_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); @@ -3215,32 +3238,33 @@ public class ModItems { public static final Item designator_manual = new ItemDesignatorManual("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item missile_assembly = new ItemBase("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab); - public static final Item missile_generic = new ItemBase("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_strong = new ItemBase("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_burst = new ItemBase("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_incendiary = new ItemBase("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_incendiary_strong = new ItemBase("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_inferno = new ItemBase("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_cluster = new ItemBase("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_cluster_strong = new ItemBase("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_rain = new ItemBase("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_buster = new ItemBase("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_buster_strong = new ItemBase("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_drill = new ItemBase("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_nuclear = new ItemCustomLore("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_nuclear_cluster = new ItemCustomLore("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_volcano = new ItemCustomLore("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_emp_strong = new ItemBase("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_endo = new ItemBase("missile_endo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_exo = new ItemBase("missile_exo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_doomsday = new ItemBase("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_taint = new ItemBase("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_micro = new ItemCustomLore("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_bhole = new ItemBase("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_schrabidium = new ItemBase("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_emp = new ItemBase("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_anti_ballistic = new ItemBase("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item missile_carrier = new ItemBase("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); + public static final Item missile_generic = new ItemMissileStandard("missile_generic").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_strong = new ItemMissileStandard("missile_strong").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_burst = new ItemMissileStandard("missile_burst").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_incendiary = new ItemMissileStandard("missile_incendiary").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_incendiary_strong = new ItemMissileStandard("missile_incendiary_strong").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_inferno = new ItemMissileStandard("missile_inferno").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_cluster = new ItemMissileStandard("missile_cluster").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_cluster_strong = new ItemMissileStandard("missile_cluster_strong").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_rain = new ItemMissileStandard("missile_rain").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_buster = new ItemMissileStandard("missile_buster").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_buster_strong = new ItemMissileStandard("missile_buster_strong").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_drill = new ItemMissileStandard("missile_drill").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_n2 = new ItemMissileStandard("missile_n2").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_nuclear = new ItemMissileStandard("missile_nuclear").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_nuclear_cluster = new ItemMissileStandard("missile_nuclear_cluster").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_volcano = new ItemMissileStandard("missile_volcano").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_emp_strong = new ItemMissileStandard("missile_emp_strong").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_endo = new ItemMissileStandard("missile_endo").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_exo = new ItemMissileStandard("missile_exo").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_doomsday = new ItemMissileStandard("missile_doomsday").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_taint = new ItemMissileStandard("missile_taint").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_micro = new ItemMissileStandard("missile_micro").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_bhole = new ItemMissileStandard("missile_bhole").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_schrabidium = new ItemMissileStandard("missile_schrabidium").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_emp = new ItemMissileStandard("missile_emp").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_anti_ballistic = new ItemMissileStandard("missile_anti_ballistic").setCreativeTab(MainRegistry.missileTab); + public static final Item missile_carrier = new ItemMissileStandard("missile_carrier").setCreativeTab(MainRegistry.missileTab); public static final Item missile_soyuz_lander = new ItemCustomLore("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item missile_soyuz0 = new ItemSoyuz("missile_soyuz0").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item missile_soyuz1 = new ItemSoyuz("missile_soyuz1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); @@ -3258,6 +3282,7 @@ public class ModItems { public static final Item warhead_incendiary_large = new ItemBase("warhead_incendiary_large").setCreativeTab(MainRegistry.partsTab); public static final Item warhead_cluster_large = new ItemBase("warhead_cluster_large").setCreativeTab(MainRegistry.partsTab); public static final Item warhead_buster_large = new ItemBase("warhead_buster_large").setCreativeTab(MainRegistry.partsTab); + public static final Item warhead_n2 = new ItemBase("warhead_n2").setCreativeTab(MainRegistry.partsTab); public static final Item warhead_nuclear = new ItemBase("warhead_nuclear").setCreativeTab(MainRegistry.partsTab); public static final Item warhead_mirvlet = new ItemBase("warhead_mirvlet").setCreativeTab(MainRegistry.partsTab); public static final Item warhead_mirv = new ItemBase("warhead_mirv").setCreativeTab(MainRegistry.partsTab); @@ -3420,7 +3445,7 @@ public class ModItems { public static final Item mp_warhead_10_he = new ItemMissile("mp_warhead_10_he").makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item mp_warhead_10_incendiary = new ItemMissile("mp_warhead_10_incendiary").makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); - public static final Item mp_warhead_10_buster = new ItemMissile("mp_warhead_10_buster").makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); + public static final Item mp_warhead_10_buster = new ItemMissile("mp_warhead_10_buster").makeWarhead(WarheadType.BUSTER, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item mp_warhead_10_nuclear = new ItemMissile("mp_warhead_10_nuclear").makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item mp_warhead_10_nuclear_large = new ItemMissile("mp_warhead_10_nuclear_large").makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); public static final Item mp_warhead_10_taint = new ItemMissile("mp_warhead_10_taint").makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab); diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 72f0d1f639..3a99b97031 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -80,18 +80,6 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { player.getAttributeMap().applyAttributeModifiers(multimap); } - if(!world.isRemote) { - - /// JET /// - if(hasFSBArmor(player) && (props.isJetpackActive() || (!player.onGround && !player.isSneaking() && props.getEnableBackpack()))) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "jetpack_dns"); - data.setInteger("player", player.getEntityId()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 100)); - } - } - if(hasFSBArmor(player)) { ArmorUtil.resetFlightTime(player); @@ -103,7 +91,8 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { player.fallDistance = 0; - world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.immolatorShoot, SoundCategory.PLAYERS, 0.125F, 1.5F); + if(world.getTotalWorldTime() % 4 == 0) + world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.immolatorShoot, SoundCategory.PLAYERS, 0.125F, 1.5F); } else if(!player.isSneaking() && !player.onGround && props.getEnableBackpack()) { player.fallDistance = 0; @@ -122,8 +111,8 @@ else if(player.motionY < 0) player.motionX += player.getLookVec().x * 0.25 * player.moveForward; player.motionZ += player.getLookVec().z * 0.25 * player.moveForward; } - - world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.immolatorShoot, SoundCategory.PLAYERS, 0.125F, 1.5F); + if(world.getTotalWorldTime() % 4 == 0) + world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.immolatorShoot, SoundCategory.PLAYERS, 0.125F, 1.5F); } if(player.isSneaking() && !player.onGround) { @@ -137,18 +126,14 @@ public void handleAttack(LivingAttackEvent event, ArmorFSB chestplate) { EntityLivingBase e = event.getEntityLiving(); - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { + if(ArmorFSB.hasFSBArmor(e)) { - if(event.getSource().isExplosion()) { - return; - } - - e.world.playSound(null, e.posX, e.posY, e.posZ, SoundEvents.BLOCK_ANVIL_BREAK, SoundCategory.PLAYERS, 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); - event.setCanceled(true); + if(event.getSource().isExplosion()) { + return; } + + e.world.playSound(null, e.posX, e.posY, e.posZ, SoundEvents.BLOCK_ANVIL_BREAK, SoundCategory.PLAYERS, 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); } } @@ -157,18 +142,14 @@ public void handleHurt(LivingHurtEvent event, ArmorFSB chestplate) { EntityLivingBase e = event.getEntityLiving(); - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { + if(ArmorFSB.hasFSBArmor(e)) { - if(event.getSource().isExplosion()) { - event.setAmount(event.getAmount()*0.001F); - return; - } - - event.setAmount(0); + if(event.getSource().isExplosion()) { + event.setAmount(event.getAmount()*0.001F); + return; } + + event.setAmount(0); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index f98a255d51..0691cbab19 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -102,14 +102,14 @@ private ItemSelfcharger getHeldSCBattery(EntityLivingBase entity){ } @Override - public void onArmorTick(World world, EntityPlayer entity, ItemStack itemStack) { - if(this.drain > 0 && ArmorFSB.hasFSBArmor(entity)) { + public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { + if(this.drain > 0 && ArmorFSB.hasFSBArmor(player)) { long netto_drain = drain; - ItemSelfcharger sc_battery = this.getHeldSCBattery(entity); + ItemSelfcharger sc_battery = this.getHeldSCBattery(player); if(sc_battery != null){ netto_drain = netto_drain - (sc_battery.getDischargeRate()/4L); } - this.dischargeBattery(itemStack, netto_drain); + this.dischargeBattery(stack, netto_drain); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index a55fd36f4d..6ae9384d84 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -57,7 +57,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT List haz = getBlacklist(stack); if(!haz.isEmpty()) { - list.add(TextFormatting.RED + I18nUtil.resolveKey("hazard.neverProtects")); + list.add("§c"+I18nUtil.resolveKey("hazard.neverProtects")); for(HazardClass clazz : haz) { list.add("§4 -" + I18nUtil.resolveKey(clazz.lang)); diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index d906259221..5052401efa 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -6,12 +6,14 @@ import com.hbm.items.ModItems; import com.hbm.items.gear.ArmorFSB; +import net.minecraft.util.DamageSource; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; +import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ItemModPads extends ItemArmorMod { @@ -43,6 +45,13 @@ public void addDesc(List list, ItemStack stack, ItemStack armor) { else list.add(TextFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + + if(event.getSource() == DamageSource.FALL) + event.setAmount(event.getAmount() * damageMod); + } @Override public void modUpdate(EntityLivingBase entity, ItemStack armor) { diff --git a/src/main/java/com/hbm/items/armor/ItemModRadar.java b/src/main/java/com/hbm/items/armor/ItemModRadar.java new file mode 100644 index 0000000000..a86858dc22 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModRadar.java @@ -0,0 +1,68 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; +import com.hbm.lib.HBMSoundHandler; +import com.hbm.capability.HbmLivingProps; + +import api.hbm.entity.IRadarDetectable; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.SoundCategory; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemModRadar extends ItemArmorMod { + + public int range; + public ItemModRadar(String s, int range){ + super(ArmorModHandler.extra, true, false, false, false, s); + this.range = range; + } + + @Override + public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn){ + list.add("§eAlerts when incoming missiles are detected"); + list.add("§eRange: "+range+"m"); + super.addInformation(stack, worldIn, list, flagIn); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor){ + list.add("§5 " + stack.getDisplayName() + " (Range: "+range+"m)"); + } + + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor){ + if(entity.ticksExisted % 10 == 0 && isApproachingMissileDetected(entity, this.range)){ + entity.playSound(HBMSoundHandler.nullRadar, 1.0F, 1.0F); + } + } + + public boolean isEntityApproaching(EntityLivingBase entity, Entity e){ + boolean xAxisApproaching = (entity.posX < e.posX && e.motionX < 0) || (entity.posX > e.posX && e.motionX > 0); + boolean zAxisApproaching = (entity.posZ < e.posZ && e.motionZ < 0) || (entity.posZ > e.posZ && e.motionZ > 0); + return xAxisApproaching && zAxisApproaching; + } + + private boolean isApproachingMissileDetected(EntityLivingBase entity, int r) { + + List list = entity.world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(entity.posX - r, 0D, entity.posZ - r, entity.posX + r, 10_000D, entity.posZ + r)); + for(Entity e : list) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + return false; + } + + if(e instanceof IRadarDetectable && e.motionY <= 0 && isEntityApproaching(entity, e)){ + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index 3961ce7299..f361d6876e 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -149,7 +149,5 @@ public static void setFuel(ItemStack stack, int i) { } stack.getTagCompound().setInteger("fuel", i); - } - } diff --git a/src/main/java/com/hbm/items/food/ItemFoodHazard.java b/src/main/java/com/hbm/items/food/ItemFoodHazard.java index fbffc835ff..10c39f9194 100644 --- a/src/main/java/com/hbm/items/food/ItemFoodHazard.java +++ b/src/main/java/com/hbm/items/food/ItemFoodHazard.java @@ -6,8 +6,8 @@ import com.hbm.interfaces.IItemHazard; import com.hbm.modules.ItemHazardModule; import com.hbm.config.BombConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.explosion.ExplosionParticle; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; @@ -105,10 +105,8 @@ protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) player.addPotionEffect(new PotionEffect(MobEffects.FIRE_RESISTANCE, 60 * 20, 0)); player.addPotionEffect(new PotionEffect(MobEffects.HASTE, 60 * 20, 10)); player.addPotionEffect(new PotionEffect(MobEffects.SPEED, 60 * 20, 10)); - player.addPotionEffect(new PotionEffect(HbmPotion.bang, 60 * 20, 100)); - worldIn.spawnEntity(EntityNukeExplosionMK4.statFac(worldIn, (int)(BombConfig.fatmanRadius * 1.5), player.posX, player.posY, player.posZ)); - - ExplosionParticle.spawnMush(worldIn, (int)player.posX, (int)player.posY - 3, (int)player.posZ); + worldIn.spawnEntity(EntityNukeExplosionMK5.statFac(worldIn, (int)(BombConfig.fatmanRadius * 1.5), player.posX, player.posY, player.posZ)); + EntityNukeTorex.statFac(worldIn, player.posX, player.posY, player.posZ, (int)(BombConfig.fatmanRadius * 1.5)); } if(stack.getItem() == ModItems.cotton_candy){ player.addPotionEffect(new PotionEffect(MobEffects.WITHER, 5 * 20, 0)); @@ -133,7 +131,6 @@ protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) player.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 600, 4)); player.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 600, 0)); player.addPotionEffect(new PotionEffect(MobEffects.FIRE_RESISTANCE, 600, 0)); - player.addPotionEffect(new PotionEffect(HbmPotion.bang, 30 * 20, 100)); } if(stack.getItem() == ModItems.apple_schrabidium1){ player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 10 * 20, 0)); @@ -148,7 +145,6 @@ protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) player.addPotionEffect(new PotionEffect(MobEffects.HEALTH_BOOST, 1200, 9)); player.addPotionEffect(new PotionEffect(MobEffects.ABSORPTION, 1200, 4)); player.addPotionEffect(new PotionEffect(MobEffects.SATURATION, 1200, 9)); - player.addPotionEffect(new PotionEffect(HbmPotion.bang, 60 * 20, 100)); } if(stack.getItem() == ModItems.apple_schrabidium2){ player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 10 * 20, 0)); diff --git a/src/main/java/com/hbm/items/food/ItemHazardSoup.java b/src/main/java/com/hbm/items/food/ItemHazardSoup.java index 8333c95587..ef315bc864 100644 --- a/src/main/java/com/hbm/items/food/ItemHazardSoup.java +++ b/src/main/java/com/hbm/items/food/ItemHazardSoup.java @@ -3,7 +3,8 @@ import java.util.List; import com.hbm.items.ModItems; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.interfaces.IItemHazard; import com.hbm.modules.ItemHazardModule; @@ -78,7 +79,9 @@ protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) bf.posZ = player.posZ; bf.destructionRange = (int) 25; worldIn.spawnEntity(bf); - worldIn.spawnEntity(EntityNukeCloudSmall.statFacBale(worldIn, player.posX, player.posY, player.posZ, 25)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(worldIn, player.posX, player.posY, player.posZ, 25); + } } if(stack.getItem() == ModItems.balefire_and_ham){ player.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 5 * 20, 0)); @@ -91,7 +94,9 @@ protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) bf.posZ = player.posZ; bf.destructionRange = (int) 50; worldIn.spawnEntity(bf); - worldIn.spawnEntity(EntityNukeCloudSmall.statFacBale(worldIn, player.posX, player.posY, player.posZ, 50)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(worldIn, player.posX, player.posY, player.posZ, 50); + } } } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index da16e70656..c5357fc39f 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -50,6 +50,13 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("Ipecac in a different bottle!"); } + if(this == ModItems.med_schizophrenia) { + list.add("Makes the voices go away. Just for a while."); + list.add(""); + list.add("..."); + list.add("Better not take it."); + } + if(this == ModItems.loops) { list.add("Brøther, may I have some lööps?"); } diff --git a/src/main/java/com/hbm/items/gear/ArmorFSB.java b/src/main/java/com/hbm/items/gear/ArmorFSB.java index 0370c19209..19c101aac4 100644 --- a/src/main/java/com/hbm/items/gear/ArmorFSB.java +++ b/src/main/java/com/hbm/items/gear/ArmorFSB.java @@ -67,9 +67,11 @@ public class ArmorFSB extends ItemArmor { public List effects = new ArrayList(); public HashMap resistance = new HashMap(); public float blastProtection = -1; + public float projectileProtection = -1; public float damageCap = -1; public float damageMod = -1; public float damageThreshold = 0; + public float protectionYield = 50F; public boolean fireproof = false; public boolean noHelmet = false; public boolean vats = false; @@ -207,26 +209,38 @@ public static void handleHurt(LivingHurtEvent event) { } public void handleHurt(LivingHurtEvent event, ArmorFSB chestplate){ - if(event.getAmount() < 100){ - if(!event.getSource().isUnblockable()) - event.setAmount(event.getAmount()-chestplate.damageThreshold); - - if(chestplate.damageMod != -1) { - event.setAmount(event.getAmount()*chestplate.damageMod); - } - if(chestplate.resistance.get(event.getSource().getDamageType()) != null) { - event.setAmount(event.getAmount()*chestplate.resistance.get(event.getSource().getDamageType())); - } + //store any damage above the yield + float overFlow = Math.max(0, event.getAmount() - chestplate.protectionYield); + //reduce the damage to the yield cap if it exceeds the yield + event.setAmount(Math.min(event.getAmount(), chestplate.protectionYield)); - if(chestplate.blastProtection != -1 && event.getSource().isExplosion()) { - event.setAmount(event.getAmount()*chestplate.blastProtection); - } - if(chestplate.damageCap != -1) { - event.setAmount(Math.min(event.getAmount(), chestplate.damageCap)); - } + if(!event.getSource().isUnblockable()) + event.setAmount(event.getAmount()-chestplate.damageThreshold); + + if(chestplate.damageMod != -1) { + event.setAmount(event.getAmount()*chestplate.damageMod); + } + + if(chestplate.resistance.get(event.getSource().getDamageType()) != null) { + event.setAmount(event.getAmount()*chestplate.resistance.get(event.getSource().getDamageType())); } + + if(chestplate.blastProtection != -1 && event.getSource().isExplosion()) { + event.setAmount(event.getAmount()*chestplate.blastProtection); + } + + if(chestplate.projectileProtection != -1 && event.getSource().isProjectile()) { + event.setAmount(event.getAmount()*chestplate.projectileProtection); + } + + if(chestplate.damageCap != -1) { + event.setAmount(Math.min(event.getAmount(), chestplate.damageCap)); + } + + //add back anything that was above the protection yield before + event.setAmount(event.getAmount()+overFlow); } public boolean isArmorEnabled(ItemStack stack) { @@ -260,7 +274,7 @@ public static void handleTick(EntityLivingBase entity, boolean isStart) { entity.motionY -= chestplate.gravity; } - if(chestplate.step != null && entity.world.isRemote && entity.onGround && isStart) { + if(chestplate.step != null && entity.world.isRemote && entity.onGround && isStart && !entity.isSneaking()) { try { if(nextStepDistance == null) @@ -309,9 +323,6 @@ public static void handleFall(EntityLivingBase entity) { if(chestplate.hardLanding && entity.fallDistance > 10) { - // player.playSound(Block.soundTypeAnvil.func_150496_b(), 2.0F, - // 0.5F); - List entities = entity.world.getEntitiesWithinAABBExcludingEntity(entity, entity.getEntityBoundingBox().grow(3, 0, 3)); for(Entity e : entities) { @@ -331,8 +342,9 @@ public static void handleFall(EntityLivingBase entity) { // return; } - if(chestplate.fall != null) + if(chestplate.fall != null && entity.fallDistance > 0.25 && !entity.isSneaking()){ entity.playSound(chestplate.fall, 1.0F, 1.0F); + } } } @@ -400,12 +412,22 @@ public ArmorFSB setGravity(double gravity) { this.gravity = gravity; return this; } + + public ArmorFSB setProtectionLevel(float damageYield) { + this.protectionYield = damageYield; + return this; + } public ArmorFSB setBlastProtection(float blastProtection) { this.blastProtection = blastProtection; return this; } + public ArmorFSB setProjectileProtection(float projectileProtection) { + this.projectileProtection = projectileProtection; + return this; + } + public ArmorFSB setStep(SoundEvent step) { this.step = step; return this; @@ -480,13 +502,15 @@ public ArmorFSB cloneStats(ArmorFSB original) { this.damageCap = original.damageCap; this.damageMod = original.damageMod; this.damageThreshold = original.damageThreshold; - this.fireproof = original.fireproof; + this.protectionYield = original.protectionYield; this.blastProtection = original.blastProtection; + this.projectileProtection = original.projectileProtection; + this.fireproof = original.fireproof; this.noHelmet = original.noHelmet; this.vats = original.vats; + this.thermal = original.thermal; this.geigerSound = original.geigerSound; this.customGeiger = original.customGeiger; - this.thermal = original.thermal; this.hardLanding = original.hardLanding; this.gravity = original.gravity; this.step = original.step; @@ -527,6 +551,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(blastProtection != -1) { list.add(TextFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.blastProtection", blastProtection)); } + + if(projectileProtection != -1) { + list.add(TextFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.projectileProtection", projectileProtection)); + } if(damageCap != -1) { list.add(TextFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", damageCap)); @@ -565,8 +593,12 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } if(gravity != 0) { - list.add(TextFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity)); + list.add(TextFormatting.DARK_AQUA + " " + I18nUtil.resolveKey("armor.gravity", gravity)); } + + if(protectionYield > 0F) { + list.add(TextFormatting.GREEN + " " + I18nUtil.resolveKey("armor.yield", protectionYield)); + } } @Override diff --git a/src/main/java/com/hbm/items/gear/ArmorGasMask.java b/src/main/java/com/hbm/items/gear/ArmorGasMask.java index 750ae68234..e54908f9e3 100644 --- a/src/main/java/com/hbm/items/gear/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/gear/ArmorGasMask.java @@ -94,27 +94,27 @@ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemSta @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { if (stack.getItem() == ModItems.gas_mask) { - return (RefStrings.MODID + ":textures/models/GasMask.png"); + return (RefStrings.MODID + ":textures/armor/GasMask.png"); } if (stack.getItem() == ModItems.gas_mask_m65) { - return (RefStrings.MODID + ":textures/models/ModelM65.png"); + return (RefStrings.MODID + ":textures/armor/ModelM65.png"); } if (stack.getItem() == ModItems.gas_mask_mono) { - return (RefStrings.MODID + ":textures/models/ModelM65Mono.png"); + return (RefStrings.MODID + ":textures/armor/ModelM65Mono.png"); } if(stack.getItem() == ModItems.hazmat_helmet) { return (RefStrings.MODID + ":textures/armor/hazmat_1.png"); } if (stack.getItem() == ModItems.hazmat_helmet_red) { - return (RefStrings.MODID + ":textures/models/ModelHazRed.png"); + return (RefStrings.MODID + ":textures/armor/ModelHazRed.png"); } if (stack.getItem() == ModItems.hazmat_helmet_grey) { - return (RefStrings.MODID + ":textures/models/ModelHazGrey.png"); + return (RefStrings.MODID + ":textures/armor/ModelHazGrey.png"); } if(stack.getItem() == ModItems.hazmat_paa_helmet) { - return (RefStrings.MODID + ":textures/models/ModelHazPaa.png"); + return (RefStrings.MODID + ":textures/armor/ModelHazPaa.png"); } - return "hbm:textures/models/CapeUnknown.png"; + return "hbm:textures/models/capes/CapeUnknown.png"; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/gear/ArmorHazmat.java b/src/main/java/com/hbm/items/gear/ArmorHazmat.java index 1b3b63fd1f..8a712e4c71 100644 --- a/src/main/java/com/hbm/items/gear/ArmorHazmat.java +++ b/src/main/java/com/hbm/items/gear/ArmorHazmat.java @@ -84,5 +84,4 @@ public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledReso GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); super.renderHelmetOverlay(stack, player, resolution, partialTicks); } - } diff --git a/src/main/java/com/hbm/items/gear/ArmorModel.java b/src/main/java/com/hbm/items/gear/ArmorModel.java index 2b265c125c..1359d7d82e 100644 --- a/src/main/java/com/hbm/items/gear/ArmorModel.java +++ b/src/main/java/com/hbm/items/gear/ArmorModel.java @@ -76,27 +76,6 @@ public boolean isValidArmor(ItemStack stack, EntityEquipmentSlot armorType, Enti if (this == ModItems.cape_schrabidium) { return armorType == EntityEquipmentSlot.CHEST; } - /*if (this == ModItems.cape_hbm) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_dafnik) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_lpkukin) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_vertice) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_codered_) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_ayy) { - return armorType == EntityEquipmentSlot.CHEST; - } - if (this == ModItems.cape_nostalgia) { - return armorType == EntityEquipmentSlot.CHEST; - }*/ if (this == ModItems.hat) { return armorType == EntityEquipmentSlot.HEAD; } @@ -122,14 +101,6 @@ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemSta return this.modelCloak; } } - /*if (this == ModItems.cape_hbm || this == ModItems.cape_dafnik || this == ModItems.cape_lpkukin || this == ModItems.cape_vertice || this == ModItems.cape_codered_ || this == ModItems.cape_ayy || this == ModItems.cape_nostalgia) { - if (armorSlot == 1) { - if (this.modelCloak == null) { - this.modelCloak = new ModelCloak(); - } - return this.modelCloak; - } - }*/ if (this == ModItems.hat) { if (armorSlot == EntityEquipmentSlot.HEAD) { if (this.modelHat == null) { @@ -144,7 +115,7 @@ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemSta @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { if (stack.getItem() == ModItems.goggles) { - return "hbm:textures/models/Goggles.png"; + return "hbm:textures/armor/Goggles.png"; } if (stack.getItem() == ModItems.mask_damp) { return "hbm:textures/armor/rag_damp.png"; @@ -152,43 +123,16 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo if (stack.getItem() == ModItems.mask_piss) { return "hbm:textures/armor/rag_piss.png"; } - // if (stack.getItem() == ModItems.cape_test) { - // return "hbm:textures/models/TestCape.png"; - // } if (stack.getItem() == ModItems.cape_radiation) { - return "hbm:textures/models/CapeRadiation.png"; + return "hbm:textures/models/capes/CapeRadiation.png"; } if (stack.getItem() == ModItems.cape_gasmask) { - return "hbm:textures/models/CapeGasMask.png"; + return "hbm:textures/models/capes/CapeGasMask.png"; } if (stack.getItem() == ModItems.cape_schrabidium) { - return "hbm:textures/models/CapeSchrabidium.png"; - } - /*if (stack.getItem() == ModItems.cape_hbm && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.HbMinecraft)) { - if(MainRegistry.polaroidID == 11) - return "hbm:textures/models/CapeHbm.png"; - else - return "hbm:textures/models/CapeHbm2.png"; - } - if (stack.getItem() == ModItems.cape_dafnik && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.Dafnik)) { - return "hbm:textures/models/CapeDafnik.png"; - } - if (stack.getItem() == ModItems.cape_lpkukin && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.LPkukin)) { - return "hbm:textures/models/CapeShield.png"; - } - if (stack.getItem() == ModItems.cape_vertice && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.LordVertice)) { - return "hbm:textures/models/CapeVertice_2.png"; - } - if (stack.getItem() == ModItems.cape_codered_ && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.CodeRed_)) { - return "hbm:textures/models/CapeRed.png"; - } - if (stack.getItem() == ModItems.cape_ayy && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.dxmaster769)) { - return "hbm:textures/models/CapeAyy.png"; + return "hbm:textures/models/capes/CapeSchrabidium.png"; } - if (stack.getItem() == ModItems.cape_nostalgia && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.nostalgia)) { - return "hbm:textures/models/CapeNostalgia.png"; - }*/ - return "hbm:textures/models/CapeUnknown.png"; + return "hbm:textures/models/capes/CapeUnknown.png"; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/gear/ArmorT45.java b/src/main/java/com/hbm/items/gear/ArmorT45.java index 3ad494d759..52d1522a51 100644 --- a/src/main/java/com/hbm/items/gear/ArmorT45.java +++ b/src/main/java/com/hbm/items/gear/ArmorT45.java @@ -85,18 +85,17 @@ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemSta @SideOnly(Side.CLIENT) public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { if (stack.getItem() == ModItems.t45_helmet) { - return "hbm:textures/models/T45Helmet.png"; + return "hbm:textures/armor/T45Helmet.png"; } if (stack.getItem() == ModItems.t45_plate) { - return "hbm:textures/models/T45Chest.png"; + return "hbm:textures/armor/T45Chest.png"; } if (stack.getItem() == ModItems.t45_legs) { - return "hbm:textures/models/T45Legs.png"; + return "hbm:textures/armor/T45Legs.png"; } if (stack.getItem() == ModItems.t45_boots) { - return "hbm:textures/models/T45Boots.png"; + return "hbm:textures/armor/T45Boots.png"; } return super.getArmorTexture(stack, entity, slot, type); } - } diff --git a/src/main/java/com/hbm/items/gear/JetpackBooster.java b/src/main/java/com/hbm/items/gear/JetpackBooster.java index 3737fbe593..f977fce25a 100644 --- a/src/main/java/com/hbm/items/gear/JetpackBooster.java +++ b/src/main/java/com/hbm/items/gear/JetpackBooster.java @@ -66,7 +66,7 @@ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemSta @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "hbm:textures/models/JetPack.png"; + return "hbm:textures/armor/JetPack.png"; } @Override @@ -85,7 +85,6 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 100)); } } - if(getFuel(stack) > 0 && props.isJetpackActive()) { if(player.motionY < 0.6D) player.motionY += 0.1D; @@ -105,5 +104,4 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { this.useUpFuel(player, stack, 1); } } - } diff --git a/src/main/java/com/hbm/items/gear/JetpackBreak.java b/src/main/java/com/hbm/items/gear/JetpackBreak.java index d52d2fd45b..a43621dcc5 100644 --- a/src/main/java/com/hbm/items/gear/JetpackBreak.java +++ b/src/main/java/com/hbm/items/gear/JetpackBreak.java @@ -32,7 +32,7 @@ public JetpackBreak(ArmorMaterial materialIn, int renderIndexIn, EntityEquipment @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "hbm:textures/models/JetPackBlue.png"; + return "hbm:textures/armor/JetPackBlue.png"; } @Override diff --git a/src/main/java/com/hbm/items/gear/JetpackGlider.java b/src/main/java/com/hbm/items/gear/JetpackGlider.java index a11a83cf15..3b2c525ec1 100644 --- a/src/main/java/com/hbm/items/gear/JetpackGlider.java +++ b/src/main/java/com/hbm/items/gear/JetpackGlider.java @@ -97,5 +97,4 @@ public FluidStack drain(ItemStack stack, int maxDrain, boolean doDrain) { setTank(stack, tank); return drain; } - } diff --git a/src/main/java/com/hbm/items/gear/JetpackRegular.java b/src/main/java/com/hbm/items/gear/JetpackRegular.java index 8ad5002e07..abf5e64069 100644 --- a/src/main/java/com/hbm/items/gear/JetpackRegular.java +++ b/src/main/java/com/hbm/items/gear/JetpackRegular.java @@ -32,7 +32,7 @@ public JetpackRegular(ArmorMaterial materialIn, int renderIndexIn, EntityEquipme @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "hbm:textures/models/JetPackRed.png"; + return "hbm:textures/armor/JetPackRed.png"; } @Override @@ -75,7 +75,5 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.flamethrowerShoot, SoundCategory.PLAYERS, 0.25F, 1.5F); this.useUpFuel(player, stack, 5); } - } - } diff --git a/src/main/java/com/hbm/items/gear/JetpackVectorized.java b/src/main/java/com/hbm/items/gear/JetpackVectorized.java index 615a70b1a9..dab6e24da3 100644 --- a/src/main/java/com/hbm/items/gear/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/gear/JetpackVectorized.java @@ -34,7 +34,7 @@ public JetpackVectorized(ArmorMaterial materialIn, int renderIndexIn, EntityEqui @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "hbm:textures/models/JetPackGreen.png"; + return "hbm:textures/armor/JetPackGreen.png"; } @Override @@ -71,7 +71,6 @@ public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 100)); } } - if(getFuel(stack) > 0 && props.getKeyPressed(EnumKeybind.JETPACK) && props.isJetpackActive()) { if(player.motionY < 0.4D) diff --git a/src/main/java/com/hbm/items/gear/RedstoneSword.java b/src/main/java/com/hbm/items/gear/RedstoneSword.java index f89f1169fc..856a915775 100644 --- a/src/main/java/com/hbm/items/gear/RedstoneSword.java +++ b/src/main/java/com/hbm/items/gear/RedstoneSword.java @@ -1,14 +1,18 @@ package com.hbm.items.gear; +import java.util.List; + import com.hbm.interfaces.IHasCustomModel; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.init.Blocks; import net.minecraft.init.SoundEvents; import net.minecraft.item.ItemSword; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,6 +27,7 @@ public class RedstoneSword extends ItemSword implements IHasCustomModel { //Pridenauer you damn bastard. //Drillgon200: ^^ What's this supposed to mean? No idea. + //Alcater: No idea. I am adding a tooltip to pay some respect to this item. public static final ModelResourceLocation rsModel = new ModelResourceLocation("hbm:redstone_sword", "inventory"); @@ -39,6 +44,13 @@ public RedstoneSword(ToolMaterial t, String s){ public boolean isFull3D() { return true; } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { + list.add("§5§lVery first NTM Item"); + } + @Override public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/items/gear/WeaponSpecial.java b/src/main/java/com/hbm/items/gear/WeaponSpecial.java index c78335eab6..3a3c5f86d8 100644 --- a/src/main/java/com/hbm/items/gear/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/gear/WeaponSpecial.java @@ -5,8 +5,9 @@ import java.util.UUID; import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityRubble; import com.hbm.handler.ArmorUtil; import com.hbm.items.ModItems; @@ -140,12 +141,10 @@ public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingB if(attacker.fallDistance >= 20 && !((EntityPlayer)attacker).capabilities.isCreativeMode) { if(!world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, 100, target.posX, target.posY, target.posZ)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 100F); - entity2.posX = target.posX; - entity2.posY = target.posY; - entity2.posZ = target.posZ; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, 100, target.posX, target.posY, target.posZ)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, target.posX, target.posY, target.posZ, 100); + } } } } diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index d58dfcac64..e0af9e6385 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -120,14 +120,14 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT ItemStack output = out.toStack(); list.add("§l" + I18nUtil.resolveKey("info.template_out")); - list.add("§a"+ output.getCount() + "x " + output.getDisplayName()); + list.add(" §a"+ output.getCount() + "x " + output.getDisplayName()); list.add("§l" + I18nUtil.resolveKey("info.template_in_p")); for(Object o : in) { if(o instanceof ComparableStack) { ItemStack input = ((ComparableStack)o).toStack(); - list.add("§c"+ input.getCount() + "x " + input.getDisplayName()); + list.add(" §c"+ input.getCount() + "x " + input.getDisplayName()); } else if(o instanceof OreDictStack) { OreDictStack input = (OreDictStack) o; @@ -135,7 +135,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(ores.size() > 0) { ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); - list.add("§c"+ input.count() + "x " + inStack.getDisplayName()); + list.add(" §c"+ input.count() + "x " + inStack.getDisplayName()); } else { list.add("I AM ERROR - No OrdDict match found for "+o.toString()); } @@ -143,7 +143,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } list.add("§l" + I18nUtil.resolveKey("info.template_time")); - list.add("§3" + Math.floor((float)(getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); + list.add(" §3" + Math.floor((float)(getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); } public static int getProcessTime(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index d4a4b7ce42..91f967237d 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -2,18 +2,17 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import api.hbm.energy.IBatteryItem; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class ItemBattery extends Item implements IBatteryItem { @@ -48,14 +47,14 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT stack.getItem() != ModItems.energy_core) { - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("desc.energystore") + " " + Library.getShortNumber(charge) + "/" + Library.getShortNumber(maxCharge) + "HE§r"); + list.add("§6"+I18nUtil.resolveKey("desc.energystore")+" " + Library.getShortNumber(charge) + "/" + Library.getShortNumber(maxCharge) + "HE§r"); } else { String charge1 = Library.getShortNumber((charge * 100) / this.maxCharge); - list.add(TextFormatting.DARK_GREEN + I18nUtil.resolveKey("desc.energychargecur") + " " + charge1 + "%§r"); + list.add("§2"+I18nUtil.resolveKey("desc.energychargecur")+" " + charge1 + "%§r"); list.add("(" + Library.getShortNumber(charge) + "/" + Library.getShortNumber(maxCharge) + "HE)"); } - list.add(TextFormatting.GREEN + I18nUtil.resolveKey("desc.energychargerate") + " " + Library.getShortNumber(chargeRate * 20) + "HE/" + I18nUtil.resolveKey("desc.second") + "§r"); - list.add(TextFormatting.RED + I18nUtil.resolveKey("desc.energydchargerate") + " " + Library.getShortNumber(dischargeRate * 20) + "HE/" + I18nUtil.resolveKey("desc.second") + "§r"); + list.add("§a"+I18nUtil.resolveKey("desc.energychargerate")+" " + Library.getShortNumber(chargeRate * 20) + "HE/s§r"); + list.add("§c"+I18nUtil.resolveKey("desc.energydchargerate")+" " + Library.getShortNumber(dischargeRate * 20) + "HE/s§r"); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemDrillbit.java b/src/main/java/com/hbm/items/machine/ItemDrillbit.java index b85732cf71..42c1ff7006 100644 --- a/src/main/java/com/hbm/items/machine/ItemDrillbit.java +++ b/src/main/java/com/hbm/items/machine/ItemDrillbit.java @@ -2,13 +2,12 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; public class ItemDrillbit extends Item { @@ -29,11 +28,11 @@ public ItemDrillbit(EnumDrillType drillType, String s) { public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { EnumDrillType type = ((ItemDrillbit)stack.getItem()).drillType; if(type == null) return; - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.speed") + " " + ((int) (type.speed * 100)) + "%"); - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.tier") + " " + type.tier); - if(type.fortune > 0) list.add(TextFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("desc.fortune") + " " + type.fortune); - if(type.vein) list.add(TextFormatting.GREEN + I18nUtil.resolveKey("desc.veinminer")); - if(type.silk) list.add(TextFormatting.GREEN + I18nUtil.resolveKey("desc.silktouch")); + list.add("§e"+I18nUtil.resolveKey("desc.speed")+" " + ((int) (type.speed * 100)) + "%"); + list.add("§e"+I18nUtil.resolveKey("desc.tier")+" " + type.tier); + if(type.fortune > 0) list.add("§d"+I18nUtil.resolveKey("desc.fortune")+" " + type.fortune); + if(type.vein) list.add("§a"+I18nUtil.resolveKey("desc.veinminer")); + if(type.silk) list.add("§a"+I18nUtil.resolveKey("desc.silktouch")); } public static enum EnumDrillType { diff --git a/src/main/java/com/hbm/items/machine/ItemFFFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFFFluidDuct.java index 7b7c852539..093493e34b 100644 --- a/src/main/java/com/hbm/items/machine/ItemFFFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFFFluidDuct.java @@ -2,12 +2,12 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.config.GeneralConfig; import com.hbm.tileentity.conductor.TileEntityFFFluidDuctMk2; -import com.hbm.util.I18nUtil; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index 48c2d2e571..a5b36e953c 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -127,7 +127,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT public static ItemStack getFullBarrel(Fluid f, int amount){ ItemStack stack = new ItemStack(ModItems.fluid_barrel_full, amount, 0); stack.setTagCompound(new NBTTagCompound()); - stack.getTagCompound().setTag(HbmFluidHandlerItemStack.FLUID_NBT_KEY,new FluidStack(f, 16000).writeToNBT(new NBTTagCompound())); + stack.getTagCompound().setTag(HbmFluidHandlerItemStack.FLUID_NBT_KEY, new FluidStack(f, 16000).writeToNBT(new NBTTagCompound())); return stack; } @@ -138,7 +138,7 @@ public static ItemStack getFullBarrel(Fluid f){ public static ItemStack getFullTank(Fluid f, int amount){ ItemStack stack = new ItemStack(ModItems.fluid_tank_full, amount, 0); stack.setTagCompound(new NBTTagCompound()); - stack.getTagCompound().setTag(HbmFluidHandlerItemStack.FLUID_NBT_KEY,new FluidStack(f, 1000).writeToNBT(new NBTTagCompound())); + stack.getTagCompound().setTag(HbmFluidHandlerItemStack.FLUID_NBT_KEY, new FluidStack(f, 1000).writeToNBT(new NBTTagCompound())); return stack; } @@ -189,6 +189,4 @@ public static boolean isFullBarrel(ItemStack stack, Fluid fluid) { return true; return false; } - - } diff --git a/src/main/java/com/hbm/items/machine/ItemFuelRod.java b/src/main/java/com/hbm/items/machine/ItemFuelRod.java index 37134b8b59..e42178c7df 100644 --- a/src/main/java/com/hbm/items/machine/ItemFuelRod.java +++ b/src/main/java/com/hbm/items/machine/ItemFuelRod.java @@ -3,6 +3,7 @@ import java.util.List; import com.hbm.items.special.ItemHazard; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.util.I18nUtil; @@ -78,4 +79,27 @@ public double getDurabilityForDisplay(ItemStack stack) { return (double)getLifeTime(stack) / (double)((ItemFuelRod)stack.getItem()).lifeTime; } + + public ItemStack getUncrafting(){ + if(this == ModItems.rod_uranium_fuel) return new ItemStack(ModItems.billet_uranium_fuel); + if(this == ModItems.rod_dual_uranium_fuel) return new ItemStack(ModItems.billet_uranium_fuel, 2); + if(this == ModItems.rod_quad_uranium_fuel) return new ItemStack(ModItems.billet_uranium_fuel, 4); + + if(this == ModItems.rod_thorium_fuel) return new ItemStack(ModItems.billet_thorium_fuel); + if(this == ModItems.rod_dual_thorium_fuel) return new ItemStack(ModItems.billet_thorium_fuel, 2); + if(this == ModItems.rod_quad_thorium_fuel) return new ItemStack(ModItems.billet_thorium_fuel, 4); + + if(this == ModItems.rod_plutonium_fuel) return new ItemStack(ModItems.billet_plutonium_fuel); + if(this == ModItems.rod_dual_plutonium_fuel) return new ItemStack(ModItems.billet_plutonium_fuel, 2); + if(this == ModItems.rod_quad_plutonium_fuel) return new ItemStack(ModItems.billet_plutonium_fuel, 4); + + if(this == ModItems.rod_mox_fuel) return new ItemStack(ModItems.billet_mox_fuel); + if(this == ModItems.rod_dual_mox_fuel) return new ItemStack(ModItems.billet_mox_fuel, 2); + if(this == ModItems.rod_quad_mox_fuel) return new ItemStack(ModItems.billet_mox_fuel, 4); + + if(this == ModItems.rod_schrabidium_fuel) return new ItemStack(ModItems.billet_schrabidium_fuel); + if(this == ModItems.rod_dual_schrabidium_fuel) return new ItemStack(ModItems.billet_schrabidium_fuel, 2); + if(this == ModItems.rod_quad_schrabidium_fuel) return new ItemStack(ModItems.billet_schrabidium_fuel, 4); + return ItemStack.EMPTY; + } } diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 90d9a41dc6..b42f78782e 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -67,256 +67,256 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(this == ModItems.upgrade_speed_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradesp11")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp11")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradesp12")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp12")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradesp13")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp13")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradesp14")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp14")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradesp15")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp15")); } if(this == ModItems.upgrade_speed_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradesp21")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp21")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradesp22")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp22")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradesp23")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp23")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradesp24")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp24")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradesp25")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp25")); } if(this == ModItems.upgrade_speed_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradesp31")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp31")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradesp32")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp32")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradesp33")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp33")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradesp34")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp34")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradesp35")); + list.add(" "+I18nUtil.resolveKey("desc.upgradesp35")); } if(this == ModItems.upgrade_effect_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeef11")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef11")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradeef12")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef12")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradeef13")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef13")); } if(this == ModItems.upgrade_effect_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeef21")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef21")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradeef22")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef22")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradeef23")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef23")); } if(this == ModItems.upgrade_effect_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeef31")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef31")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade4")); - list.add(I18nUtil.resolveKey("desc.upgradeef32")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef32")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradeef33")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeef33")); } if(this == ModItems.upgrade_power_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradecs11")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs11")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradecs11")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs11")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradecs12")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs12")); } if(this == ModItems.upgrade_power_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradecs21")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs21")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradecs21")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs21")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradecs22")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs22")); } if(this == ModItems.upgrade_power_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade2")); - list.add(I18nUtil.resolveKey("desc.upgradecs31")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs31")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade3")); - list.add(I18nUtil.resolveKey("desc.upgradecs31")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs31")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade5")); - list.add(I18nUtil.resolveKey("desc.upgradecs32")); + list.add(" "+I18nUtil.resolveKey("desc.upgradecs32")); } if(this == ModItems.upgrade_fortune_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeft1")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeft1")); } if(this == ModItems.upgrade_fortune_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeft2")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeft2")); } if(this == ModItems.upgrade_fortune_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade1")); - list.add(I18nUtil.resolveKey("desc.upgradeft3")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeft3")); } if(this == ModItems.upgrade_afterburn_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade6")); - list.add(I18nUtil.resolveKey("desc.upgradeaf1")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeaf1")); } if(this == ModItems.upgrade_afterburn_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade6")); - list.add(I18nUtil.resolveKey("desc.upgradeaf2")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeaf2")); } if(this == ModItems.upgrade_afterburn_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade6")); - list.add(I18nUtil.resolveKey("desc.upgradeaf3")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeaf3")); } if(this == ModItems.upgrade_radius) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade7")); - list.add(I18nUtil.resolveKey("desc.upgraderd")); + list.add(" "+I18nUtil.resolveKey("desc.upgraderd")); list.add(""); - list.add(I18nUtil.resolveKey("desc.upgradestack")); + list.add(" "+I18nUtil.resolveKey("desc.upgradestack")); } if(this == ModItems.upgrade_health) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade8")); - list.add(I18nUtil.resolveKey("desc.upgradeht")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeht")); list.add(""); - list.add(I18nUtil.resolveKey("desc.upgradestack")); + list.add(" "+I18nUtil.resolveKey("desc.upgradestack")); } if(this == ModItems.upgrade_smelter) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade9")); - list.add(I18nUtil.resolveKey("desc.upgrade12")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade12")); } if(this == ModItems.upgrade_shredder) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade9")); - list.add(I18nUtil.resolveKey("desc.upgrade13")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade13")); } if(this == ModItems.upgrade_centrifuge) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade9")); - list.add(I18nUtil.resolveKey("desc.upgrade21")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade21")); } if(this == ModItems.upgrade_crystallizer) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade9")); - list.add(I18nUtil.resolveKey("desc.upgrade14")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade14")); } if(this == ModItems.upgrade_screm) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade9")); - list.add(I18nUtil.resolveKey("desc.upgrade15")); - list.add(I18nUtil.resolveKey("desc.upgrade16")); - list.add(I18nUtil.resolveKey("desc.upgrade17")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade15")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade16")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade17")); list.add(""); list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade11")); - list.add(I18nUtil.resolveKey("desc.upgrade18")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade18")); } if(this == ModItems.upgrade_nullifier) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade10")); - list.add(I18nUtil.resolveKey("desc.upgrade19")); + list.add(" "+I18nUtil.resolveKey("desc.upgrade19")); } if(this == ModItems.upgrade_ejector_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej1")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej1")); } if(this == ModItems.upgrade_ejector_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej2")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej2")); } if(this == ModItems.upgrade_ejector_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej3")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej3")); } if(this == ModItems.upgrade_stack_1) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej4")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej4")); } if(this == ModItems.upgrade_stack_2) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej5")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej5")); } if(this == ModItems.upgrade_stack_3) { list.add(TextFormatting.GOLD+I18nUtil.resolveKey("desc.upgrade22")); - list.add(I18nUtil.resolveKey("desc.upgradeej6")); + list.add(" "+I18nUtil.resolveKey("desc.upgradeej6")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 7a2a9e66fb..cad00304c6 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -22,6 +22,8 @@ import net.minecraft.world.World; public class ItemRBMKRod extends Item implements IItemHazard { + + public static final double xe135HalflifeMulPerTick = 0.9999241662036941; // 0.5^(1/9140) for a 9.14h halflife public ItemRBMKPellet pellet; public String fullName = ""; //full name of the fuel rod @@ -173,7 +175,7 @@ public double burn(World world, ItemStack stack, double inFlux) { inFlux += selfRate; - double xenon = getPoison(stack); + double xenon = getPoison(stack) * xe135HalflifeMulPerTick; xenon -= xenonBurnFunc(inFlux); inFlux *= (1D - getPoisonLevel(stack)); diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 9c76c19bd3..7fb3e0b3e2 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -159,7 +159,7 @@ public void addInformation(ItemStack stack, World world, List list, IToo if (instance.getDoesDecay()) { list.add("§aFuel left: "+((int)(instance.getDecay(instance, stack) * 100000000D))/1000000D + "%§r"); list.add(I18nUtil.resolveKey("desc.item.rtgDecay", new ItemStack(instance.getDecayItem()).getDisplayName())); - list.add("EXTENDED INFO:"); + list.add(""); list.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] halfLife = BobMathUtil.ticksToDate(instance.getHalfLife()); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); diff --git a/src/main/java/com/hbm/items/machine/ItemSatChip.java b/src/main/java/com/hbm/items/machine/ItemSatChip.java index da35857bcb..100560217a 100644 --- a/src/main/java/com/hbm/items/machine/ItemSatChip.java +++ b/src/main/java/com/hbm/items/machine/ItemSatChip.java @@ -2,9 +2,9 @@ import java.util.List; +import com.hbm.util.I18nUtil; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -22,7 +22,7 @@ public ItemSatChip(String s) { @Override public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { - tooltip.add(I18nUtil.resolveKey("desc.satellitefr") +" " + getFreq(stack)); + tooltip.add(I18nUtil.resolveKey("desc.satellitefr", getFreq(stack))); } public static int getFreq(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 9bcea90fd2..f60e8005bd 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -7,9 +7,9 @@ import com.hbm.main.MainRegistry; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; -import com.hbm.util.I18nUtil; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.resources.I18n; @@ -24,7 +24,6 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.relauncher.Side; @@ -63,7 +62,7 @@ public static String getOreTag(ItemStack stack){ @Override @SideOnly(Side.CLIENT) public String getItemStackDisplayName(ItemStack stack) { - return I18n.format(this.getUnlocalizedName() + ".name", I18nUtil.resolveKey("desc.item_bedrock_ore."+BedrockOreRegistry.getOreName(getOreTag(stack)))); + return I18n.format(this.getUnlocalizedName() + ".name", BedrockOreRegistry.getOreName(getOreTag(stack))); } public static int getColor(ItemStack stack){ @@ -84,9 +83,9 @@ public void addInformation(ItemStack stack, World world, List list, IToo if(stack.getItem() == ModItems.ore_bedrock){ String oreName = BedrockOreRegistry.oreIndexes.get(stack.getMetadata()); int tier = BedrockOreRegistry.getOreTier(oreName); - list.add(TextFormatting.GOLD + I18nUtil.resolveKey("desc.tier")+" " +tier); + list.add("§6"+I18nUtil.resolveKey("desc.tier")+" "+tier); FluidStack req = BedrockOreRegistry.getFluidRequirement(tier); - list.add(TextFormatting.YELLOW+I18nUtil.resolveKey("desc.requires")+" " + req.amount + "mB " + req.getFluid().getLocalizedName(req)); + list.add("§e"+I18nUtil.resolveKey("desc.requires")+" " + req.amount + "mB " + req.getFluid().getLocalizedName(req)); } super.addInformation(stack, world, list, flagIn); } diff --git a/src/main/java/com/hbm/items/special/ItemCell.java b/src/main/java/com/hbm/items/special/ItemCell.java index ff7299161b..cbc424ecb0 100644 --- a/src/main/java/com/hbm/items/special/ItemCell.java +++ b/src/main/java/com/hbm/items/special/ItemCell.java @@ -59,7 +59,7 @@ public ItemCell(String s) { @Override public boolean onEntityItemUpdate(EntityItem entityItem) { - if(entityItem.onGround) { + if(entityItem.onGround || entityItem.isBurning()) { if(hasFluid(entityItem.getItem(), ModForgeFluids.aschrab) && WeaponConfig.dropCell) { if(!entityItem.world.isRemote) { entityItem.setDead(); diff --git a/src/main/java/com/hbm/items/special/ItemCigarette.java b/src/main/java/com/hbm/items/special/ItemCigarette.java deleted file mode 100644 index dc8bbec773..0000000000 --- a/src/main/java/com/hbm/items/special/ItemCigarette.java +++ /dev/null @@ -1,70 +0,0 @@ -/**package com.hbm.items.special; - -import java.util.List; - -import com.hbm.capability.HbmLivingProps; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class ItemCigarette extends Item { - - @Override - public EnumAction getItemUseAction(ItemStack stack) { - return EnumAction.BOW; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) { - return 30; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); - return stack; - } - - @Override - public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { - stack.stackSize--; - - if(!world.isRemote) { - HbmLivingProps.incrementBlackLung(player, 2000); - HbmLivingProps.incrementAsbestos(player, 2000); - HbmLivingProps.incrementRadiation(player, 100F); - - world.playSound(player.posX, player.posY, player.posZ, "hbm:player.cough", 1.0F, 1.0F); - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "vomit"); - nbt.setString("mode", "smoke"); - nbt.setInteger("count", 30); - nbt.setInteger("entity", player.getEntityId()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(player.dimension, player.posX, player.posY, player.posZ, 25)); - } - - return stack; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(TextFormatting.RED + "✓ Asbestos filter"); - list.add(TextFormatting.RED + "✓ High in tar"); - list.add(TextFormatting.RED + "✓ Tobacco contains 100% Polonium-210"); - list.add(TextFormatting.RED + "✓ Yum"); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/com/hbm/items/special/ItemContaminating.java b/src/main/java/com/hbm/items/special/ItemContaminating.java index cf43432b80..f1c59ed127 100644 --- a/src/main/java/com/hbm/items/special/ItemContaminating.java +++ b/src/main/java/com/hbm/items/special/ItemContaminating.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.config.CompatibilityConfig; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.blocks.ModBlocks; @@ -40,14 +41,14 @@ public ItemContaminating(float radiation, boolean fire, boolean blinding, String @Override public boolean onEntityItemUpdate(EntityItem entityItem){ boolean m = this.module.onEntityItemUpdate(entityItem); - if(entityItem != null && !entityItem.world.isRemote && entityItem.onGround) { + if(entityItem != null && !entityItem.world.isRemote && (entityItem.onGround || entityItem.isBurning()) && CompatibilityConfig.isWarDim(entityItem.world)) { if(isCleanGround(new BlockPos(entityItem.posX, entityItem.posY, entityItem.posZ), entityItem.world)){ return false; } if(falloutBallRadius > 1){ EntityFalloutUnderGround falloutBall = new EntityFalloutUnderGround(entityItem.world); falloutBall.posX = entityItem.posX; - falloutBall.posY = entityItem.posY; + falloutBall.posY = entityItem.posY+0.5F; falloutBall.posZ = entityItem.posZ; falloutBall.setScale(falloutBallRadius); entityItem.world.spawnEntity(falloutBall); diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 396ca02070..20072bb23f 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -345,33 +345,6 @@ public void addInformation(ItemStack stack, World world, List list, IToo { list.add("Permits passive dispersion of accumulated positive energy."); } - if(this == ModItems.missile_micro) - { - list.add("§2[Nuclear Micro Missile]§r"); - list.add(" §eRadius: "+BombConfig.fatmanRadius+"m§r"); - if(!BombConfig.disableNuclear){ - list.add("§2[Fallout]§r"); - list.add(" §aRadius: "+(int)BombConfig.fatmanRadius*(1+BombConfig.falloutRange/100)+"m§r"); - } - } - if(this == ModItems.missile_nuclear) - { - list.add("§2[Nuclear Missile]§r"); - list.add(" §eRadius: "+BombConfig.missileRadius+"m§r"); - if(!BombConfig.disableNuclear){ - list.add("§2[Fallout]§r"); - list.add(" §aRadius: "+(int)BombConfig.missileRadius*(1+BombConfig.falloutRange/100)+"m§r"); - } - } - if(this == ModItems.missile_nuclear_cluster) - { - list.add("§6[Thermonuclear Missile]§r"); - list.add(" §eRadius: "+BombConfig.missileRadius*2+"m§r"); - if(!BombConfig.disableNuclear){ - list.add("§2[Fallout]§r"); - list.add(" §aRadius: "+(int)BombConfig.missileRadius*2*(1+BombConfig.falloutRange/100)+"m§r"); - } - } if(this == ModItems.factory_core_titanium || this == ModItems.factory_core_advanced) { diff --git a/src/main/java/com/hbm/items/special/ItemDoorSkin.java b/src/main/java/com/hbm/items/special/ItemDoorSkin.java index d1e7daab5c..79f7ae0ce2 100644 --- a/src/main/java/com/hbm/items/special/ItemDoorSkin.java +++ b/src/main/java/com/hbm/items/special/ItemDoorSkin.java @@ -2,6 +2,7 @@ import com.hbm.interfaces.IDoor; import com.hbm.items.ModItems; +import com.hbm.blocks.BlockDummyable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -27,10 +28,16 @@ public ItemDoorSkin(String s, String tex) { @Override public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if(!worldIn.isRemote){ - TileEntity te = worldIn.getTileEntity(pos); - if(te instanceof IDoor){ - if(((IDoor) te).setTexture(tex)){ - return EnumActionResult.SUCCESS; + + if(worldIn.getBlockState(pos).getBlock() instanceof BlockDummyable){ + int[] pos1 = ((BlockDummyable) worldIn.getBlockState(pos).getBlock()).findCore(worldIn, pos.getX(), pos.getY(), pos.getZ()); + if(pos1 != null){ + TileEntity te = worldIn.getTileEntity(new BlockPos(pos1[0], pos1[1], pos1[2])); + if(te instanceof IDoor){ + if(((IDoor) te).setTexture(tex)){ + return EnumActionResult.SUCCESS; + } + } } } } diff --git a/src/main/java/com/hbm/items/special/ItemDrop.java b/src/main/java/com/hbm/items/special/ItemDrop.java index d9be2180b4..aaa4308c75 100644 --- a/src/main/java/com/hbm/items/special/ItemDrop.java +++ b/src/main/java/com/hbm/items/special/ItemDrop.java @@ -85,7 +85,7 @@ public boolean onEntityItemUpdate(EntityItem entityItem) { entityItem.setDead(); } - if(entityItem.onGround) { + if(entityItem.onGround || entityItem.isBurning()) { if(stack.getItem() != null && stack.getItem() == ModItems.pellet_antimatter && WeaponConfig.dropCell) { if(!entityItem.world.isRemote) { diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 9d3f5312d5..45968e2e82 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -9,6 +9,7 @@ import com.hbm.items.machine.ItemFluidTank; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.Library; +import com.hbm.handler.ArmorUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.item.EntityItem; @@ -45,19 +46,28 @@ private void giveHaz(World world, EntityPlayer p, int tier) { } switch(tier) { case 0: - p.inventory.armorInventory.set(3, new ItemStack(ModItems.hazmat_helmet)); + ItemStack mask1 = new ItemStack(ModItems.hazmat_helmet); + ArmorUtil.installGasMaskFilter(mask1, new ItemStack(ModItems.gas_mask_filter)); + + p.inventory.armorInventory.set(3, mask1); p.inventory.armorInventory.set(2, new ItemStack(ModItems.hazmat_plate)); p.inventory.armorInventory.set(1, new ItemStack(ModItems.hazmat_legs)); p.inventory.armorInventory.set(0, new ItemStack(ModItems.hazmat_boots)); break; case 1: - p.inventory.armorInventory.set(3, new ItemStack(ModItems.hazmat_helmet_red)); + ItemStack mask2 = new ItemStack(ModItems.hazmat_helmet_red); + ArmorUtil.installGasMaskFilter(mask2, new ItemStack(ModItems.gas_mask_filter)); + + p.inventory.armorInventory.set(3, mask2); p.inventory.armorInventory.set(2, new ItemStack(ModItems.hazmat_plate_red)); p.inventory.armorInventory.set(1, new ItemStack(ModItems.hazmat_legs_red)); p.inventory.armorInventory.set(0, new ItemStack(ModItems.hazmat_boots_red)); break; case 2: - p.inventory.armorInventory.set(3, new ItemStack(ModItems.hazmat_helmet_grey)); + ItemStack mask3 = new ItemStack(ModItems.hazmat_helmet_grey); + ArmorUtil.installGasMaskFilter(mask3, new ItemStack(ModItems.gas_mask_filter_combo)); + + p.inventory.armorInventory.set(3, mask3); p.inventory.armorInventory.set(2, new ItemStack(ModItems.hazmat_plate_grey)); p.inventory.armorInventory.set(1, new ItemStack(ModItems.hazmat_legs_grey)); p.inventory.armorInventory.set(0, new ItemStack(ModItems.hazmat_boots_grey)); @@ -72,78 +82,64 @@ public ActionResult onItemRightClick(World world, EntityPlayer player if(this == ModItems.nuke_starter_kit) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.template_folder, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_press, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_gascent, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_puf6_tank, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_nuke_furnace_off, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_ext, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_gascent, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_small, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_turbine, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.radx, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_turbine, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.block_niter, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_plate, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_wire, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_steel, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_lead, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_copper, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_m65, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radx, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_filter, 1)); giveHaz(world, player, 1); } if(this == ModItems.nuke_advanced_kit) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_plutonium, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_plutonium, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_steel, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_copper, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_tungsten, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_lead, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_polymer, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_aluminium, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_polymer, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_gascent, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_centrifuge, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_uf6_tank, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_puf6_tank, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_furnace_off, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_small, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_turbine, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_large_turbine, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_radgen, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_grey, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_fluidtank, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 32)); - for(int i = 0; i < 4; i ++) - player.inventory.addItemStackToInventory(ItemFluidTank.getFullBarrel(ModForgeFluids.coolant)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway_strong, 4)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.radx, 4)); - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.pill_iodine, 1))) - player.dropItem(new ItemStack(ModItems.pill_iodine, 1), false); - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.tritium_deuterium_cake, 1))) - player.dropItem(new ItemStack(ModItems.tritium_deuterium_cake, 1), false); - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1))) - player.dropItem(new ItemStack(ModItems.geiger_counter, 1), false); - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner, 1))) - player.dropItem(new ItemStack(ModItems.survey_scanner, 1), false); - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_m65, 1))) - player.dropItem(new ItemStack(ModItems.gas_mask_m65, 1), false); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_filter_combo, 4)); giveHaz(world, player, 2); } @@ -305,6 +301,7 @@ public ActionResult onItemRightClick(World world, EntityPlayer player player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_buster, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_buster_strong, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_drill, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_n2, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear_cluster, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_volcano, 1)); diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index c27e2950f0..8915da4397 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -533,32 +533,32 @@ public void addInformation(ItemStack stack, World worldIn, List tooltip, tooltip.add("Removes all potion effects"); } if (this == ModItems.syringe_awesome) { - tooltip.add("Every good effect for 50 seconds"); + tooltip.add("§2Every good effect for 50 seconds"); } if (this == ModItems.syringe_metal_stimpak) { - tooltip.add("Heals 2.5 hearts"); + tooltip.add("§aHeals 2.5 hearts"); } if(this == ModItems.syringe_metal_medx) { - tooltip.add("Resistance III for 4 minutes"); + tooltip.add("§dResistance III for 4 minutes"); } if(this == ModItems.syringe_metal_psycho) { - tooltip.add("Resistance I for 2 minutes"); - tooltip.add("Strength I for 2 minutes"); + tooltip.add("§dResistance I for 2 minutes"); + tooltip.add("§6Strength I for 2 minutes"); } if(this == ModItems.syringe_metal_super) { - tooltip.add("Heals 25 hearts"); - tooltip.add("Slowness I for 10 seconds"); + tooltip.add("§aHeals 25 hearts"); + tooltip.add("§bSlowness I for 10 seconds"); } if(this == ModItems.syringe_poison) { tooltip.add("Deadly"); } if(this == ModItems.syringe_taint) { - tooltip.add("Tainted I for 60 seconds"); - tooltip.add("Nausea I for 5 seconds"); + tooltip.add("§5Tainted I for 60 seconds"); + tooltip.add("§eNausea I for 5 seconds"); tooltip.add("Cloud damage + taint = ghoulified effect"); } if(this == ModItems.med_bag) { - tooltip.add("Full heal, regardless of max health"); + tooltip.add("§aFull heal, regardless of max health"); tooltip.add("Removes negative effects"); } if(this == ModItems.gas_mask_filter_mono) { diff --git a/src/main/java/com/hbm/items/special/ItemUnstable.java b/src/main/java/com/hbm/items/special/ItemUnstable.java index c44a8132b9..4ac36cbe01 100644 --- a/src/main/java/com/hbm/items/special/ItemUnstable.java +++ b/src/main/java/com/hbm/items/special/ItemUnstable.java @@ -2,14 +2,16 @@ import java.util.List; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.ModDamageSource; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -36,23 +38,40 @@ public ItemUnstable(int radius, int timer, String s) { @Override public void onUpdate(ItemStack stack, World world, Entity entity, int itemSlot, boolean isSelected) { - if(stack.getItemDamage() != 0) - return; this.setTimer(stack, this.getTimer(stack) + 1); if(this.getTimer(stack) == timer && !world.isRemote) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, radius, entity.posX, entity.posY, entity.posZ)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, radius); - entity2.posX = entity.posX; - entity2.posY = entity.posY; - entity2.posZ = entity.posZ; - world.spawnEntity(entity2); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, radius, entity.posX, entity.posY, entity.posZ)); + + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, entity.posX, entity.posY, entity.posZ, radius); + } world.playSound(null, entity.posX, entity.posY, entity.posZ, HBMSoundHandler.oldExplosion, SoundCategory.PLAYERS, 1.0F, 1.0F); entity.attackEntityFrom(ModDamageSource.nuclearBlast, 10000); } } + @Override + public boolean onEntityItemUpdate(EntityItem itemEntity) { + World world = itemEntity.world; + + this.setTimer(itemEntity.getItem(), this.getTimer(itemEntity.getItem()) + 1); + + if(this.getTimer(itemEntity.getItem()) == timer && !world.isRemote) { + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, radius, itemEntity.posX, itemEntity.posY, itemEntity.posZ)); + + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFac(world, itemEntity.posX, itemEntity.posY, itemEntity.posZ, radius); + } + world.playSound(null, itemEntity.posX, itemEntity.posY, itemEntity.posZ, HBMSoundHandler.oldExplosion, SoundCategory.PLAYERS, 1.0F, 1.0F); + itemEntity.attackEntityFrom(ModDamageSource.nuclearBlast, 10000); + itemEntity.setDead(); + return true; + } + return false; + } + private void setTimer(ItemStack stack, int time) { if(!stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound()); diff --git a/src/main/java/com/hbm/items/tool/ItemDesignatorRange.java b/src/main/java/com/hbm/items/tool/ItemDesignatorRange.java index a324cce31a..317dc8afc3 100644 --- a/src/main/java/com/hbm/items/tool/ItemDesignatorRange.java +++ b/src/main/java/com/hbm/items/tool/ItemDesignatorRange.java @@ -73,7 +73,7 @@ public ActionResult onItemRightClick(World world, EntityPlayer player if(world.isRemote) { - player.sendMessage(new TextComponentTranslation(TextFormatting.GREEN + I18nUtil.resolveKey("chat.possetx") + " " + x + ", " + I18nUtil.resolveKey("chat.possetz") + " " + z)); + player.sendMessage(new TextComponentTranslation(TextFormatting.GREEN + I18nUtil.resolveKey("chat.possetxz", x, z))); } world.playSound(player.posX, player.posY, player.posZ, HBMSoundHandler.techBleep, SoundCategory.PLAYERS, 1.0F, 1.0F, true); diff --git a/src/main/java/com/hbm/items/tool/ItemDetonator.java b/src/main/java/com/hbm/items/tool/ItemDetonator.java index 742e08ef0f..0fae20b5c8 100644 --- a/src/main/java/com/hbm/items/tool/ItemDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemDetonator.java @@ -1,19 +1,19 @@ package com.hbm.items.tool; import java.util.List; - -import com.hbm.util.I18nUtil; -import net.minecraft.util.text.TextFormatting; import org.apache.logging.log4j.Level; +import com.hbm.util.I18nUtil; import com.hbm.config.GeneralConfig; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.main.MainRegistry; + import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.util.text.TextFormatting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; @@ -41,9 +41,9 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add(I18nUtil.resolveKey("desc.calldet2")); if(stack.getTagCompound() == null) { - list.add("§eNo position set§r"); + list.add("§e"+I18nUtil.resolveKey("chat.posnoset")+"§r"); } else { - list.add(TextFormatting.GREEN + I18nUtil.resolveKey("chat.possetx") + " " + stack.getTagCompound().getInteger("x") + ", Y: " + stack.getTagCompound().getInteger("y") + ", Z: " + stack.getTagCompound().getInteger("z")+"§r"); + list.add(TextFormatting.GREEN + I18nUtil.resolveKey("chat.possetxyz", stack.getTagCompound().getInteger("x"), stack.getTagCompound().getInteger("y"), stack.getTagCompound().getInteger("z"))+"§r"); } } @@ -79,7 +79,7 @@ public ActionResult onItemRightClick(World world, EntityPlayer player if(stack.getTagCompound() == null) { if(world.isRemote) - player.sendMessage(new TextComponentTranslation("§c[Error]: Position not set.§r")); + player.sendMessage(new TextComponentTranslation("§c"+I18nUtil.resolveKey("chat.posnoseterror")+"§r")); } else { int x = stack.getTagCompound().getInteger("x"); int y = stack.getTagCompound().getInteger("y"); @@ -103,7 +103,7 @@ public ActionResult onItemRightClick(World world, EntityPlayer player } else { if(world.isRemote) { - player.sendMessage(new TextComponentTranslation("§c[Error]: Target incompatible or too far away.§r")); + player.sendMessage(new TextComponentTranslation("§c"+I18nUtil.resolveKey("chat.postoofarerror")+"§r")); } } } diff --git a/src/main/java/com/hbm/items/tool/ItemDigammaDiagnostic.java b/src/main/java/com/hbm/items/tool/ItemDigammaDiagnostic.java index eefb3d1ca4..72000d5a8e 100644 --- a/src/main/java/com/hbm/items/tool/ItemDigammaDiagnostic.java +++ b/src/main/java/com/hbm/items/tool/ItemDigammaDiagnostic.java @@ -4,10 +4,14 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.render.misc.RenderScreenOverlay; import com.hbm.capability.HbmLivingProps; import com.hbm.util.ContaminationUtil; import com.hbm.lib.HBMSoundHandler; +import baubles.api.BaubleType; +import baubles.api.IBauble; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ActionResult; import net.minecraft.util.SoundCategory; @@ -15,8 +19,10 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class ItemDigammaDiagnostic extends Item { +@Optional.InterfaceList({@Optional.Interface(iface = "baubles.api.IBauble", modid = "baubles")}) +public class ItemDigammaDiagnostic extends Item implements IBauble { public ItemDigammaDiagnostic(String s) { this.setUnlocalizedName(s); @@ -81,4 +87,9 @@ public static void playVoices(World world, EntityPlayer player){ } } } + + @Override + public BaubleType getBaubleType(ItemStack itemstack){ + return BaubleType.TRINKET; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemDosimeter.java b/src/main/java/com/hbm/items/tool/ItemDosimeter.java index 8857cefd50..c704e2096a 100644 --- a/src/main/java/com/hbm/items/tool/ItemDosimeter.java +++ b/src/main/java/com/hbm/items/tool/ItemDosimeter.java @@ -10,6 +10,8 @@ import com.hbm.lib.HBMSoundHandler; import com.hbm.util.ContaminationUtil; +import baubles.api.BaubleType; +import baubles.api.IBauble; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -19,8 +21,10 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class ItemDosimeter extends Item { +@Optional.InterfaceList({@Optional.Interface(iface = "baubles.api.IBauble", modid = "baubles")}) +public class ItemDosimeter extends Item implements IBauble { Random rand = new Random(); @@ -80,4 +84,14 @@ public ActionResult onItemRightClick(World world, EntityPlayer player return super.onItemRightClick(world, player, handIn); } + + @Override + public BaubleType getBaubleType(ItemStack itemstack){ + return BaubleType.TRINKET; + } + + @Override + public void onWornTick(ItemStack itemstack, EntityLivingBase player) { + onUpdate(itemstack, player.world, player, 0, true); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java index fd43d71bda..3032de7ac8 100644 --- a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java +++ b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java @@ -6,14 +6,18 @@ import javax.annotation.Nullable; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.Library; import com.hbm.items.ModItems; import com.hbm.items.gear.ArmorFSB; import com.hbm.items.weapon.ItemGunEgon; +import com.hbm.render.misc.RenderScreenOverlay; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.Library; import com.hbm.saveddata.RadiationSavedData; import com.hbm.util.ContaminationUtil; +import baubles.api.BaubleType; +import baubles.api.IBauble; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -27,8 +31,10 @@ import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; -public class ItemGeigerCounter extends Item { +@Optional.InterfaceList({@Optional.Interface(iface = "baubles.api.IBauble", modid = "baubles")}) +public class ItemGeigerCounter extends Item implements IBauble { public ItemGeigerCounter(String s) { this.setUnlocalizedName(s); @@ -51,20 +57,6 @@ public void onUpdate(ItemStack stack, World world, Entity entity, int itemSlot, playGeiger(world, (EntityPlayer)entity); } } - - static void setInt(ItemStack stack, int i, String name) { - if(!stack.hasTagCompound()) - stack.setTagCompound(new NBTTagCompound()); - - stack.getTagCompound().setInteger(name, i); - } - - public static int getInt(ItemStack stack, String name) { - if(stack.hasTagCompound()) - return stack.getTagCompound().getInteger(name); - - return 0; - } public static void playGeiger(World world, EntityPlayer player){ double x = ContaminationUtil.getActualPlayerRads(player); @@ -143,4 +135,14 @@ public ActionResult onItemRightClick(World world, EntityPlayer player public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { return !ItemStack.areItemsEqual(oldStack, newStack); } + + @Override + public BaubleType getBaubleType(ItemStack itemstack){ + return BaubleType.TRINKET; + } + + @Override + public void onWornTick(ItemStack itemstack, EntityLivingBase player) { + onUpdate(itemstack, player.world, player, 0, true); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemGuideBook.java b/src/main/java/com/hbm/items/tool/ItemGuideBook.java index 3cf15380ff..7225554fc8 100644 --- a/src/main/java/com/hbm/items/tool/ItemGuideBook.java +++ b/src/main/java/com/hbm/items/tool/ItemGuideBook.java @@ -58,7 +58,8 @@ public enum BookType { TEST("book.test.cover", 2F, statFacTest()), RBMK("book.rbmk.cover", 1.5F, statFacRBMK()), - MSWORD("book.msword.cover", 1.5F, statFacMSword()); + MSWORD("book.msword.cover", 1.5F, statFacMSword()), + HADRON("book.error.cover", 1.5F, statFacHadron()); public List pages; public float titleScale; @@ -87,6 +88,17 @@ public static List statFacTest() { pages.add(new GuidePage("test test")); return pages; } + + public static List statFacHadron() { + + List pages = new ArrayList(); + + for(int i = 1; i <= 9; i++) { + pages.add(new GuidePage("book.error.page" + i).setScale(2F).addTitle("book.error.title" + i, 0x800000, 1F)); + } + + return pages; + } public static List statFacRBMK() { diff --git a/src/main/java/com/hbm/items/tool/ItemLock.java b/src/main/java/com/hbm/items/tool/ItemLock.java index 593816e099..eaada711b6 100644 --- a/src/main/java/com/hbm/items/tool/ItemLock.java +++ b/src/main/java/com/hbm/items/tool/ItemLock.java @@ -1,10 +1,12 @@ package com.hbm.items.tool; import com.hbm.lib.HBMSoundHandler; +import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumActionResult; @@ -26,47 +28,42 @@ public ItemLock(double mod, String s) { @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { ItemStack stack = player.getHeldItem(hand); - if(getPins(stack) != 0) { - TileEntity te = world.getTileEntity(pos); - - if(te != null && te instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase) te; + if(!world.isRemote && getPins(stack) != 0) { + TileEntity thing; + Block b = world.getBlockState(pos).getBlock(); + + if(b instanceof BlockDummyable){ + int[] cpos = ((BlockDummyable)b).findCore(world, pos.getX(), pos.getY(), pos.getZ()); + if(cpos == null) + return EnumActionResult.FAIL; + thing = world.getTileEntity(new BlockPos(cpos[0], cpos[1], cpos[2])); + } else { + thing = world.getTileEntity(pos); + } + + if(thing != null && thing instanceof TileEntityDummy && ((TileEntityDummy)thing).target != null){ + thing = world.getTileEntity(((TileEntityDummy)thing).target); + } - if (!tile.isLocked() && tile.canLock(player, hand, facing)) { - tile.setPins(getPins(stack)); - tile.lock(); - tile.setMod(this.lockMod); - world.playSound((EntityPlayer) null, player.posX, player.posY, player.posZ, HBMSoundHandler.lockHang, SoundCategory.PLAYERS, 1.0F, 1.0F); - stack.shrink(1); - return EnumActionResult.SUCCESS; - } - return EnumActionResult.FAIL; - } - if(te != null && te instanceof TileEntityDummy) { - - TileEntityDummy dummy = (TileEntityDummy)te; - TileEntity target = world.getTileEntity(dummy.target); + if(thing != null && thing instanceof TileEntityLockableBase) { + TileEntityLockableBase lockTe = (TileEntityLockableBase) thing; - if(target != null && target instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)target; - - if(tile.isLocked()) - return EnumActionResult.FAIL; - - tile.setPins(getPins(stack)); - tile.lock(); - tile.setMod(lockMod); + if(lockTe != null && lockTe instanceof TileEntityLockableBase) { + if(!lockTe.isLocked() && lockTe.canLock(player, hand, facing)) { + lockTe.setPins(getPins(stack)); + lockTe.lock(); + lockTe.setMod(this.lockMod); + world.playSound((EntityPlayer) null, player.posX, player.posY, player.posZ, HBMSoundHandler.lockHang, SoundCategory.PLAYERS, 1.0F, 1.0F); + stack.shrink(1); + return EnumActionResult.SUCCESS; + } - world.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.lockHang, SoundCategory.PLAYERS, 1.0F, 1.0F); - stack.shrink(1); - - return EnumActionResult.SUCCESS; + return EnumActionResult.FAIL; } } } return EnumActionResult.PASS; } - } diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index cb351a2b7d..b0677bb4ee 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -10,6 +10,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.util.I18nUtil; + import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -171,7 +172,7 @@ public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playe public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { if(!this.hitAbility.isEmpty()) { - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.weaponlist")); + list.add(I18nUtil.resolveKey("tool.ability.weaponlist")); for(WeaponAbility ability : this.hitAbility) { list.add(" " + TextFormatting.RED + ability.getFullName()); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index e42daaec5c..f9ea0fe8b9 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -12,12 +12,13 @@ import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.SilkAbility; import com.hbm.handler.WeaponAbility; +import com.hbm.util.I18nUtil; import com.hbm.items.ModItems; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOre; +import com.hbm.blocks.generic.BlockBedrockOreTE; import api.hbm.item.IDepthRockTool; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -184,7 +185,7 @@ public boolean canHarvestBlock(IBlockState state, ItemStack stack) { } public static boolean isForbiddenBlock(Block b){ - return (b == Blocks.BARRIER || b == Blocks.BEDROCK || b == Blocks.COMMAND_BLOCK || b == Blocks.CHAIN_COMMAND_BLOCK || b == Blocks.REPEATING_COMMAND_BLOCK || b == ModBlocks.ore_bedrock_oil || b instanceof BlockBedrockOre ); + return (b == Blocks.BARRIER || b == Blocks.BEDROCK || b == Blocks.COMMAND_BLOCK || b == Blocks.CHAIN_COMMAND_BLOCK || b == Blocks.REPEATING_COMMAND_BLOCK || b == ModBlocks.ore_bedrock_oil || b instanceof BlockBedrockOre || b instanceof BlockBedrockOreTE ); } @Override @@ -284,7 +285,7 @@ public boolean hasEffect(ItemStack stack) { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { if(this.breakAbility.size() > 1) { - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.list")); + list.add(I18nUtil.resolveKey("tool.ability.list")); for(ToolAbility ability : this.breakAbility) { @@ -297,13 +298,13 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } } - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.rightclick")); - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.shiftclick")); + list.add(I18nUtil.resolveKey("tool.ability.rightclick")); + list.add(I18nUtil.resolveKey("tool.ability.shiftclick")); } if(!this.hitAbility.isEmpty()) { - - list.add(TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.weaponlist")); + + list.add(I18nUtil.resolveKey("tool.ability.weaponlist")); for(WeaponAbility ability : this.hitAbility) { list.add(" " + TextFormatting.RED + ability.getFullName()); @@ -311,7 +312,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } if(this.rockBreaker){ - list.add(TextFormatting.LIGHT_PURPLE + "[" + I18nUtil.resolveKey("trait.unmineable") + "]" + TextFormatting.GRAY + I18nUtil.resolveKey("tool.ability.canmine")); + list.add(I18nUtil.resolveKey("trait.unmineable")); } } @@ -350,7 +351,7 @@ private void switchMode(EntityPlayer player, ItemStack stack){ while(getCurrentAbility(stack) != null && !getCurrentAbility(stack).isAllowed()) { player.sendMessage( - new TextComponentString("[" + I18nUtil.resolveKey("chat.ability") + " ") + new TextComponentString("["+I18nUtil.resolveKey("chat.ability")+" ") .appendSibling(new TextComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) .appendSibling(new TextComponentString(getCurrentAbility(stack).getExtension() + " " + I18nUtil.resolveKey("chat.blacklist") +"]")) .setStyle(new Style().setColor(TextFormatting.RED))); diff --git a/src/main/java/com/hbm/items/tool/ItemTurretControl.java b/src/main/java/com/hbm/items/tool/ItemTurretControl.java index 487a712ff5..360f9b5aa1 100644 --- a/src/main/java/com/hbm/items/tool/ItemTurretControl.java +++ b/src/main/java/com/hbm/items/tool/ItemTurretControl.java @@ -3,6 +3,7 @@ import java.util.List; import com.hbm.blocks.turret.TurretBase; +import com.hbm.blocks.turret.TurretBaseNT; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.Library; @@ -26,6 +27,7 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.text.TextComponentTranslation; @@ -77,46 +79,6 @@ public void onUpdate(ItemStack stack, World worldIn, Entity entity, int itemSlot } } } - if(te != null && te instanceof TileEntityTurretBaseNT) { - TileEntityTurretBaseNT turret = (TileEntityTurretBaseNT) te; - - RayTraceResult rpos = Library.rayTrace(player, 200, 1, true, true, false); - - if(pos == null) - rpos = Library.rayTrace(player, 200, 1); - - if(pos != null) { - - Vec3 vecOrigin = Vec3.createVectorHelper(player.posX, player.posY + player.eyeHeight - player.getYOffset(), player.posZ); - Vec3 vecDestination = Vec3.createVectorHelper(rpos.getBlockPos().getX(), rpos.getBlockPos().getY(), rpos.getBlockPos().getZ()); - - //List list = world.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.addCoord(pos.blockX, pos.blockY, pos.blockZ).expand(1.0, 1.0, 1.0)); - List list = worldIn.getEntitiesWithinAABBExcludingEntity(player, player.getEntityBoundingBox().grow(200, 200, 200)); - - for(Entity e : list) { - - if (e.canBeCollidedWith() && e != player) { - - RayTraceResult mop = e.getEntityBoundingBox().expand(0.2, 0.2, 0.2).calculateIntercept(vecOrigin.toVec3d(), vecDestination.toVec3d()); - - if(mop != null) { - - rpos = mop; - rpos.typeOfHit = RayTraceResult.Type.ENTITY; - rpos.entityHit = e; - } - } - } - - if(rpos.typeOfHit == RayTraceResult.Type.ENTITY) { - turret.target = rpos.entityHit; - turret.turnTowards(turret.getEntityPos(rpos.entityHit)); - - } else { - turret.turnTowards(Vec3.createVectorHelper(rpos.getBlockPos().getX() + 0.5, rpos.getBlockPos().getY() + 0.5, rpos.getBlockPos().getZ() + 0.5).toVec3d()); - } - } - } } } } @@ -136,17 +98,37 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT @Override public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if ((worldIn.getBlockState(pos).getBlock() instanceof TurretBase)) { + boolean valid = false; + int x, y, z; + x = y = z = 0; + if (worldIn.getBlockState(pos).getBlock() instanceof TurretBase) { + valid = true; + x = pos.getX(); + y = pos.getY(); + z = pos.getZ(); + } + if(worldIn.getBlockState(pos).getBlock() instanceof TurretBaseNT){ + int[] cPos = ((TurretBaseNT) worldIn.getBlockState(pos).getBlock()).findCore(worldIn, pos.getX(), pos.getY(), pos.getZ()); + if(pos != null){ + x = cPos[0]; + y = cPos[1]; + z = cPos[2]; + + valid = true; + } + } + + if(valid){ ItemStack stack = player.getHeldItem(hand); if (stack.getTagCompound() != null) { - stack.getTagCompound().setInteger("xCoord", pos.getX()); - stack.getTagCompound().setInteger("yCoord", pos.getY()); - stack.getTagCompound().setInteger("zCoord", pos.getZ()); + stack.getTagCompound().setInteger("xCoord", x); + stack.getTagCompound().setInteger("yCoord", y); + stack.getTagCompound().setInteger("zCoord", z); } else { stack.setTagCompound(new NBTTagCompound()); - stack.getTagCompound().setInteger("xCoord", pos.getX()); - stack.getTagCompound().setInteger("yCoord", pos.getY()); - stack.getTagCompound().setInteger("zCoord", pos.getZ()); + stack.getTagCompound().setInteger("xCoord", x); + stack.getTagCompound().setInteger("yCoord", y); + stack.getTagCompound().setInteger("zCoord", z); } if (worldIn.isRemote) { player.sendMessage(new TextComponentTranslation("Turret Linked!")); @@ -212,10 +194,10 @@ public ActionResult onItemRightClick(World worldIn, EntityPlayer play } @Override - public void onUsingTick(ItemStack stack, EntityLivingBase player, int count) { - World world = player.world; + public void onUsingTick(ItemStack stack, EntityLivingBase mob, int count) { + World world = mob.world; - if (stack.hasTagCompound()) { + if (!world.isRemote && stack.hasTagCompound()) { int x = stack.getTagCompound().getInteger("xCoord"); int y = stack.getTagCompound().getInteger("yCoord"); int z = stack.getTagCompound().getInteger("zCoord"); @@ -226,11 +208,58 @@ public void onUsingTick(ItemStack stack, EntityLivingBase player, int count) { if (te != null && te instanceof TileEntityTurretBase) { TileEntityTurretBase turret = (TileEntityTurretBase) te; if (!turret.isAI && turret.ammo > 0) { - if (((TurretBase) world.getBlockState(pos).getBlock()).executeHoldAction(world, stack.getMaxItemUseDuration() - count, player.rotationYaw, player.rotationPitch, pos)) + if (((TurretBase) world.getBlockState(pos).getBlock()).executeHoldAction(world, stack.getMaxItemUseDuration() - count, mob.rotationYaw, mob.rotationPitch, pos)) turret.ammo--; } } } + + if ((world.getBlockState(pos).getBlock() instanceof TurretBaseNT) && (mob instanceof EntityPlayer)) { + EntityPlayer player = (EntityPlayer) mob; + TileEntity te = world.getTileEntity(pos); + + if(te != null && te instanceof TileEntityTurretBaseNT) { + TileEntityTurretBaseNT turret = (TileEntityTurretBaseNT) te; + + RayTraceResult rpos = Library.rayTrace(player, 200, 1, true, true, false); + + if(pos == null) + rpos = Library.rayTrace(player, 200, 1); + + if(pos != null && rpos != null) { + + Vec3 vecOrigin = Vec3.createVectorHelper(player.posX, player.posY + player.eyeHeight - player.getYOffset(), player.posZ); + Vec3 vecDestination = Vec3.createVectorHelper(rpos.getBlockPos().getX(), rpos.getBlockPos().getY(), rpos.getBlockPos().getZ()); + + List list = world.getEntitiesWithinAABBExcludingEntity(player, player.getEntityBoundingBox().grow(200, 200, 200)); + + for(Entity e : list) { + + if (e.canBeCollidedWith() && e != player) { + + RayTraceResult mop = e.getEntityBoundingBox().expand(0.2, 0.2, 0.2).calculateIntercept(vecOrigin.toVec3d(), vecDestination.toVec3d()); + + if(mop != null) { + + rpos = mop; + rpos.typeOfHit = RayTraceResult.Type.ENTITY; + rpos.entityHit = e; + } + } + } + + if(rpos.typeOfHit == RayTraceResult.Type.ENTITY) { + turret.target = rpos.entityHit; + turret.turnTowards(turret.getEntityPos(rpos.entityHit)); + world.playSound(player.posX, player.posY, player.posZ, HBMSoundHandler.techBleep, SoundCategory.PLAYERS, 1.0F, 1.0F, false); + } else if(rpos.typeOfHit == RayTraceResult.Type.BLOCK){ + turret.tPos = vecDestination.toVec3d(); + turret.manualOverride = true; + turret.turnTowards(Vec3.createVectorHelper(rpos.getBlockPos().getX() + 0.5, rpos.getBlockPos().getY() + 0.5, rpos.getBlockPos().getZ() + 0.5).toVec3d()); + } + } + } + } } } } diff --git a/src/main/java/com/hbm/items/weapon/GunFatman.java b/src/main/java/com/hbm/items/weapon/GunFatman.java deleted file mode 100644 index 49ffc5c2ba..0000000000 --- a/src/main/java/com/hbm/items/weapon/GunFatman.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.UUID; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityMiniNuke; -import com.hbm.items.ModItems; -import com.hbm.lib.HBMSoundHandler; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; - -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Enchantments; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; - -public class GunFatman extends Item { - - public GunFatman(String s) { - this.setUnlocalizedName(s); - this.setRegistryName(s); - this.setCreativeTab(MainRegistry.weaponTab); - this.maxStackSize = 1; - this.setMaxDamage(2500); - - ModItems.ALL_ITEMS.add(this); - } - - @Override - public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityLivingBase entityLiving, int timeLeft) { - if(!(entityLiving instanceof EntityPlayer)) - return; - if (entityLiving.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND) == stack && !entityLiving.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND).isEmpty() && entityLiving.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND).getItem() == ModItems.gun_fatman) { - entityLiving.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND).onPlayerStoppedUsing(worldIn, entityLiving, timeLeft); - } - EntityPlayer player = (EntityPlayer)entityLiving; - int j = this.getMaxItemUseDuration(stack) - timeLeft; - - ArrowLooseEvent event = new ArrowLooseEvent(player, stack, worldIn, j, false); - MinecraftForge.EVENT_BUS.post(event); - if (event.isCanceled()) { - return; - } - j = event.getCharge(); - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, stack) > 0; - - if (flag || Library.hasInventoryItem(player.inventory, ModItems.gun_fatman_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 25.0D) { - return; - } - - if (j > 25.0F) { - f = 25.0F; - } - - EntityMiniNuke entityarrow = new EntityMiniNuke(worldIn, player, 3.0F, player.getHeldItem(EnumHand.MAIN_HAND) == stack ? EnumHand.MAIN_HAND : EnumHand.OFF_HAND); - - entityarrow.setIsCritical(true); - entityarrow.gravity = 0.3; - entityarrow.setDamage(1000); - - stack.damageItem(1, player); - // p_77615_2_.playSoundAtEntity(p_77615_3_, "tile.piston.out", 1.0F, - // 0.5F); - worldIn.playSound(null, player.posX, player.posY, player.posZ, HBMSoundHandler.fatmanShoot, SoundCategory.PLAYERS, 1.0F, 1F); - - if (!flag) { - Library.consumeInventoryItem(player.inventory, ModItems.gun_fatman_ammo); - } - - if (!worldIn.isRemote) { - worldIn.spawnEntity(entityarrow); - } - } - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) { - return 7200; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) { - return EnumAction.BOW; - } - - @Override - public ActionResult onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { - playerIn.setActiveHand(handIn); - return super.onItemRightClick(worldIn, playerIn, handIn); - } - - @Override - public Multimap getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) { - Multimap map = super.getAttributeModifiers(slot, stack); - if(slot == EntityEquipmentSlot.MAINHAND || slot == EntityEquipmentSlot.OFFHAND){ - map.put(SharedMonsterAttributes.MOVEMENT_SPEED.getName(), new AttributeModifier(UUID.fromString("91AEAA56-376B-4498-935B-2F7F68070635"), "Weapon modifier", -0.3, 1)); - map.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", 4, 0)); - } - return map; - } - - @Override - public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { - tooltip.add("When normal nukes aren't enough..."); - tooltip.add(""); - tooltip.add("Ammo: Mini Nukes"); - tooltip.add("Damage: 1000"); - tooltip.add("Creates small nuclear explosion."); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGrenade.java index a033d6dce9..49c48fe642 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenade.java @@ -47,7 +47,6 @@ import com.hbm.items.ModItems; import com.hbm.config.BombConfig; -import com.hbm.util.I18nUtil; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; @@ -236,17 +235,17 @@ public EnumRarity getRarity(ItemStack stack) { private String translateFuse() { if(fuse == -1) - return I18nUtil.resolveKey("fuse.impact"); + return "Impact"; if(fuse == 0) - return I18nUtil.resolveKey("fuse.instant"); + return "Instant"; return fuse + "s"; } @Override public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - list.add(I18nUtil.resolveKey("desc.fuse") + " " + translateFuse()); + list.add("Fuse: " + translateFuse()); if (this == ModItems.grenade_if_generic) { list.add(""); @@ -307,14 +306,14 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add(TextFormatting.ITALIC + "If it didn't blow up it means it worked."); } if (this == ModItems.grenade_solinium) { - list.add(TextFormatting.DARK_AQUA + "[" + I18nUtil.resolveKey("trait.soliniumgrenade") + "]"); - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.radius") + " "+(int)BombConfig.soliniumRadius/10+"m§r"); + list.add("§3[Solinium Grenade]§r"); + list.add(" §eRadius: "+(int)BombConfig.soliniumRadius/10+"m§r"); } if (this == ModItems.grenade_nuclear) { - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.nucleargrenade") + "]"); - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.radius") + " "+(int)BombConfig.fatmanRadius/2+"m§r"); - list.add(TextFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("trait.fallout") + "]"); - list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.radius") + " "+(int)(BombConfig.fatmanRadius/2*(1+BombConfig.falloutRange/100))+"m§r"); + list.add("§2[Nuclear Grenade]§r"); + list.add(" §eRadius: "+(int)BombConfig.fatmanRadius/2+"m§r"); + list.add("§2[Fallout]§r"); + list.add(" §aRadius: "+(int)(BombConfig.fatmanRadius/2*(1+BombConfig.falloutRange/100))+"m§r"); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunEgon.java b/src/main/java/com/hbm/items/weapon/ItemGunEgon.java index 8611f847a7..d9d4506d79 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunEgon.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunEgon.java @@ -6,6 +6,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.config.CompatibilityConfig; import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -135,7 +136,7 @@ protected void updateServer(ItemStack stack, World world, EntityPlayer player, i float[] angles = ItemGunEgon.getBeamDirectionOffset(player.world.getWorldTime()+1); Vec3d look = Library.changeByAngle(player.getLook(1), angles[0], angles[1]); RayTraceResult r = Library.rayTraceIncludeEntitiesCustomDirection(player, look, 50, 1); - if(r != null && r.typeOfHit == Type.ENTITY && r.entityHit instanceof EntityLivingBase){ + if(r != null && r.typeOfHit == Type.ENTITY && r.entityHit instanceof EntityLivingBase && CompatibilityConfig.isWarDim(world)){ EntityLivingBase ent = ((EntityLivingBase)r.entityHit); if(ent instanceof EntityPlayer && ((EntityPlayer)ent).isCreative()){ return; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 76040feca1..07707644ba 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -7,6 +7,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.config.CompatibilityConfig; import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; @@ -87,7 +88,7 @@ public void doTauShot(World world, @Nullable Entity player, Vec3d prevPos, Vec3d RayTraceResult r = Library.rayTraceIncludeEntities(world, prevPos, direction.scale(40).add(prevPos), player); if(r == null || r.typeOfHit == Type.MISS){ break; - } else if(r.typeOfHit == Type.ENTITY){ + } else if(r.typeOfHit == Type.ENTITY && CompatibilityConfig.isWarDim(world)){ try { if(hurtResistantTime == null) hurtResistantTime = ReflectionHelper.findField(Entity.class, "hurtResistantTime", "field_70172_ad"); @@ -135,7 +136,7 @@ public void doTauShot(World world, @Nullable Entity player, Vec3d prevPos, Vec3d r2 = Library.rayTraceIncludeEntities(world, vec1, vec2, player); } //Yeah, it's some repeated code, but the alternative was even worse and buggier. - if(r2 != null && r2.typeOfHit == Type.ENTITY){ + if(r2 != null && r2.typeOfHit == Type.ENTITY && CompatibilityConfig.isWarDim(world)){ try { if(hurtResistantTime == null) hurtResistantTime = ReflectionHelper.findField(Entity.class, "hurtResistantTime", "field_70172_ad"); @@ -389,8 +390,10 @@ protected void updateServer(ItemStack stack, World world, EntityPlayer player, i if(c > 200) { setCharge(stack, 0); setItemWear(stack, mainConfig.durability); - player.attackEntityFrom(ModDamageSource.tauBlast, 1000); - world.newExplosion(player, player.posX, player.posY + player.eyeHeight, player.posZ, 5.0F, true, true); + if(CompatibilityConfig.isWarDim(world)){ + player.attackEntityFrom(ModDamageSource.tauBlast, 1000); + world.newExplosion(player, player.posX, player.posY + player.eyeHeight, player.posZ, 5.0F, true, true); + } return; } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java b/src/main/java/com/hbm/items/weapon/ItemGunVortex.java index 1de4830b5c..a3c7a52e6e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunVortex.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.config.CompatibilityConfig; import com.hbm.handler.GunConfiguration; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; @@ -67,18 +68,18 @@ protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack List entsOnBeam = Library.rayTraceEntitiesOnLine(player, 100, 1).getRight(); for(Entity e : entsOnBeam){ - if(!(e instanceof EntityLivingBase)) - continue; - float dmg = 30; - try { - if (ItemGunBase.hurtResistantTime == null) - ItemGunBase.hurtResistantTime = ReflectionHelper.findField(Entity.class, "hurtResistantTime", "field_70172_ad"); - ItemGunBase.hurtResistantTime.setInt(e, 0); - } catch (Exception x){ - x.printStackTrace(); - } + if((e instanceof EntityLivingBase) && CompatibilityConfig.isWarDim(world)){ + float dmg = 30; + try { + if (ItemGunBase.hurtResistantTime == null) + ItemGunBase.hurtResistantTime = ReflectionHelper.findField(Entity.class, "hurtResistantTime", "field_70172_ad"); + ItemGunBase.hurtResistantTime.setInt(e, 0); + } catch (Exception x){ + x.printStackTrace(); + } - e.attackEntityFrom(ModDamageSource.radiation, dmg); + e.attackEntityFrom(ModDamageSource.radiation, dmg); + } } if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) diff --git a/src/main/java/com/hbm/items/weapon/ItemMissileStandard.java b/src/main/java/com/hbm/items/weapon/ItemMissileStandard.java new file mode 100644 index 0000000000..b0ecf4262b --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemMissileStandard.java @@ -0,0 +1,155 @@ +package com.hbm.items.weapon; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.config.BombConfig; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.World; + +public class ItemMissileStandard extends Item { + + public ItemMissileStandard(String s) { + this.setUnlocalizedName(s); + this.setRegistryName(s); + this.setMaxStackSize(1); + this.setCreativeTab(MainRegistry.missileTab); + ModItems.ALL_ITEMS.add(this); + } + + @Override + public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { + //HE + if(this == ModItems.missile_generic) { + list.add("§7[HE Missile I]§r"); + list.add(" §eRadius: 15m§r"); + } + if(this == ModItems.missile_strong) { + list.add("§7[HE Missile II]§r"); + list.add(" §eRadius: 25m§r"); + } + if(this == ModItems.missile_burst) { + list.add("§7[HE Missile III]§r"); + list.add(" §eRadius: 50m§r"); + } + + //IC + if(this == ModItems.missile_incendiary) { + list.add("§6[IC Missile I]§r"); + list.add(" §eRadius: 10m§r"); + } + if(this == ModItems.missile_incendiary_strong) { + list.add("§6[IC Missile II]§r"); + list.add(" §eRadius: 20m§r"); + } + if(this == ModItems.missile_inferno) { + list.add("§6[IC Missile III]§r"); + list.add(" §eRadius: 40m§r"); + } + + //Cluster + if(this == ModItems.missile_cluster) { + list.add("§1[CL Missile I]§r"); + list.add(" §9Radius: 5m§r"); + list.add(" §9Count: 25§r"); + } + if(this == ModItems.missile_cluster_strong) { + list.add("§1[CL Missile II]§r"); + list.add(" §9Radius: 7m§r"); + list.add(" §9Count: 50§r"); + } + if(this == ModItems.missile_rain) { + list.add("§1[CL Missile III]§r"); + list.add(" §9Radius: 10m§r"); + list.add(" §9Count: 100§r"); + } + + //Bunker + if(this == ModItems.missile_buster) { + list.add("§8[BU Missile I]§r"); + list.add(" §7Radius: 15m§r"); + list.add(" §7Depth: 15m§r"); + } + if(this == ModItems.missile_buster_strong) { + list.add("§8[BU Missile II]§r"); + list.add(" §7Radius: 20m§r"); + list.add(" §7Depth: 20m§r"); + } + if(this == ModItems.missile_drill) { + list.add("§8[BU Missile III]§r"); + list.add(" §7Radius: 30m§r"); + list.add(" §7Depth: 30m§r"); + } + + if(this == ModItems.missile_n2) { + list.add("§c[Extreme Missile]§r"); + list.add(" §eMax Radius: "+(int)(BombConfig.n2Radius/12) * 5+"m§r"); + } + if(this == ModItems.missile_nuclear){ + list.add("§2[Nuclear Missile]§r"); + list.add(" §eRadius: "+BombConfig.missileRadius+"m§r"); + if(!BombConfig.disableNuclear){ + list.add("§2[Fallout]§r"); + list.add(" §aRadius: "+(int)BombConfig.missileRadius*(1+BombConfig.falloutRange/100)+"m§r"); + } + } + if(this == ModItems.missile_nuclear_cluster){ + list.add("§6[Thermonuclear Missile]§r"); + list.add(" §eRadius: "+BombConfig.missileRadius*2+"m§r"); + if(!BombConfig.disableNuclear){ + list.add("§2[Fallout]§r"); + list.add(" §aRadius: "+(int)BombConfig.missileRadius*2*(1+BombConfig.falloutRange/100)+"m§r"); + } + } + if(this == ModItems.missile_volcano){ + list.add("§4[Tectonic Missile]§r"); + } + if(this == ModItems.missile_emp_strong){ + list.add("§3[EMP Missile]§r"); + list.add(" §bRadius: 100m§r"); + } + if(this == ModItems.missile_emp){ + list.add("§3[EMP Missile]§r"); + list.add(" §bRadius: 50m§r"); + } + if(this == ModItems.missile_micro){ + list.add("§2[Nuclear Micro Missile]§r"); + list.add(" §eRadius: "+BombConfig.fatmanRadius+"m§r"); + if(!BombConfig.disableNuclear){ + list.add("§2[Fallout]§r"); + list.add(" §aRadius: "+(int)BombConfig.fatmanRadius*(1+BombConfig.falloutRange/100)+"m§r"); + } + } + if(this == ModItems.missile_endo){ + list.add("§3[Thermal Missile]§r"); + list.add(" §bRadius: 30m§r"); + } + if(this == ModItems.missile_exo){ + list.add("§4[Thermal Missile]§r"); + list.add(" §6Radius: 30m§r"); + } + if(this == ModItems.missile_doomsday){ + list.add("§5[Cluster Missile Missile Missile]§r"); + } + if(this == ModItems.missile_taint){ + list.add("§d[Evil Slime Missile]§r"); + } + if(this == ModItems.missile_bhole){ + list.add("§0[Singularity Missile]§r"); + } + if(this == ModItems.missile_schrabidium){ + list.add("§b[Schrabidium Missile]§r"); + list.add(" §eRadius: "+BombConfig.aSchrabRadius+"m§r"); + } + if(this == ModItems.missile_anti_ballistic){ + list.add("§2[AB Missile]§r"); + list.add(" §aOnly targets other missiles§r"); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java index 8c4bea0fb7..79972b2fb0 100644 --- a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java +++ b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java @@ -28,13 +28,12 @@ public WeaponizedCell(String s) { @Override public boolean onEntityItemUpdate(EntityItem item) { - World world = item.world ; + World world = item.world; if(item.ticksExisted > BombConfig.riggedStarTicks || item.isBurning()) { if(!world.isRemote && WeaponConfig.dropStar) { - world.playSound(null, item.posX, item.posY, item.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.AMBIENT, BombConfig.riggedStarRange, world.rand.nextFloat() * 0.1F + 0.9F); EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(world); diff --git a/src/main/java/com/hbm/lib/HBMSoundHandler.java b/src/main/java/com/hbm/lib/HBMSoundHandler.java index 1056505e19..25bc060810 100644 --- a/src/main/java/com/hbm/lib/HBMSoundHandler.java +++ b/src/main/java/com/hbm/lib/HBMSoundHandler.java @@ -80,6 +80,7 @@ public final class HBMSoundHandler { public static SoundEvent zomgShoot; public static SoundEvent jetpackTank; public static SoundEvent nullTau; + public static SoundEvent nullRadar; public static SoundEvent immolatorIgnite; public static SoundEvent immolatorShoot; public static SoundEvent defabSpinup; @@ -128,7 +129,6 @@ public final class HBMSoundHandler { public static SoundEvent lockHang; public static SoundEvent vaultScrapeNew; public static SoundEvent vaultThudNew; - public static SoundEvent minerOperate; public static SoundEvent missileAssembly2; public static SoundEvent sonarPing; public static SoundEvent radawayUse; @@ -341,6 +341,7 @@ public static void init() { zomgShoot = register("weapon.zomgShoot"); jetpackTank = register("item.jetpackTank"); nullTau = register("misc.nullTau"); + nullRadar = register("misc.nullRadar"); immolatorIgnite = register("weapon.immolatorIgnite"); immolatorShoot = register("weapon.immolatorShoot"); defabSpinup = register("weapon.defabSpinup"); @@ -389,7 +390,6 @@ public static void init() { lockHang = register("block.lockHang"); vaultScrapeNew = register("block.vaultScrapeNew"); vaultThudNew = register("block.vaultThudNew"); - minerOperate = register("block.minerOperate"); missileAssembly2 = register("block.missileAssembly2"); sonarPing = register("block.sonarPing"); radawayUse = register("item.radaway"); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 709f643f54..82abe25425 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -76,7 +76,8 @@ private int parseInt(Object e){ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { try{ generateOres(world, rand, chunkX * 16, chunkZ * 16); - generateStructures(world, rand, chunkX * 16, chunkZ * 16); + if(world.getWorldInfo().isMapFeaturesEnabled()) + generateStructures(world, rand, chunkX * 16, chunkZ * 16); } catch(final Throwable t){ System.out.println("NTM Worldgen Error "+t); t.printStackTrace(); @@ -128,8 +129,8 @@ public void generateOres(World world, Random rand, int i, int j){ } //Gneiss - DungeonToolbox.generateOre(world, rand, i, j, 25, 6, 30, 10, ModBlocks.ore_gneiss_iron, ModBlocks.stone_gneiss); - DungeonToolbox.generateOre(world, rand, i, j, 10, 6, 30, 10, ModBlocks.ore_gneiss_gold, ModBlocks.stone_gneiss); + DungeonToolbox.generateOre(world, rand, i, j, dimID == 0 ? 25: 0, 6, 30, 10, ModBlocks.ore_gneiss_iron, ModBlocks.stone_gneiss); + DungeonToolbox.generateOre(world, rand, i, j, dimID == 0 ? 10 : 0, 6, 30, 10, ModBlocks.ore_gneiss_gold, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.uraniumSpawn.get(dimID)) * 3, 6, 30, 10, ModBlocks.ore_gneiss_uranium, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.copperSpawn.get(dimID)) * 3, 6, 30, 10, ModBlocks.ore_gneiss_copper, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.asbestosSpawn.get(dimID)) * 3, 6, 30, 10, ModBlocks.ore_gneiss_asbestos, ModBlocks.stone_gneiss); @@ -178,26 +179,12 @@ public void generateOres(World world, Random rand, int i, int j){ //End ores DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.endTixiteSpawn.get(dimID)), 6, 0, 127, ModBlocks.ore_tikite, Blocks.END_STONE); - if(dimID == 0){ + if(dimID == 0 && GeneralConfig.enable528){ Random colRand = new Random(world.getSeed() + 5); int colX = (int) (colRand.nextGaussian() * 1500); int colZ = (int) (colRand.nextGaussian() * 1500); int colRange = 750; - if((GeneralConfig.enable528BedrockSpawn || GeneralConfig.enable528BedrockDeposit) && rand.nextInt(GeneralConfig.bedrockRate) != 0) { - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); - - if(GeneralConfig.enable528BedrockSpawn || (GeneralConfig.enable528BedrockDeposit && x <= colX + colRange && x >= colX - colRange && z <= colZ + colRange && z >= colZ - colRange)) { - - for(int y = 6; y >= 0; y--) { - if(world.getBlockState(new BlockPos(x, y, z)).getBlock().isReplaceableOreGen(world.getBlockState(new BlockPos(x, y, z)), world, new BlockPos(x, y, z), BlockMatcher.forBlock(Blocks.BEDROCK))) { - world.setBlockState(new BlockPos(x, y, z), ModBlocks.ore_bedrock_coltan.getDefaultState()); - } - } - } - } - if(GeneralConfig.enable528ColtanDeposit) { for (int k = 0; k < 2; k++) { @@ -215,15 +202,9 @@ public void generateOres(World world, Random rand, int i, int j){ } } } - //Australium - for (int k = 0; k < rand.nextInt(4); k++) { - int randPosX = i + rand.nextInt(16); - int randPosY = rand.nextInt(15) + 15; - int randPosZ = j + rand.nextInt(16); - - if(randPosX <= -350 && randPosX >= -450 && randPosZ <= -350 && randPosZ >= -450) - (new WorldGenMinable(ModBlocks.ore_australium.getDefaultState(), 50)).generate(world, rand, new BlockPos(randPosX, randPosY, randPosZ)); - } + + generateBedrockOil(world, rand, i, j, dimID); + generateBedrockOre(world, rand, i, j, dimID); } /** @@ -329,47 +310,10 @@ private void generateSellafieldPool(World world, Random rand, int i, int j, int new Sellafield().generate(world, x, z, r, r * 0.35D); if (GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned raditation hotspot at " + x + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned raditation hotspot at x=" + x + " z=" + z); } } - private void generateSellafieldBlocks(World world, Random rand, int i, int j, int dimID){ - if (GeneralConfig.enableRad) { - int dimRadMineFreq = parseInt(CompatibilityConfig.radminefreq.get(dimID)); - if(dimRadMineFreq > 0 && rand.nextInt(dimRadMineFreq) == 0){ - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); - int y = world.getHeight(x, z); - - - if (world.getBlockState(new BlockPos(x, y-1, z)).isSideSolid(world, new BlockPos(x, y-1, z), EnumFacing.UP)) { - int radi = rand.nextInt(128); - if(radi > 64){ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_0.getDefaultState()); - } - else if(radi > 32){ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_1.getDefaultState()); - } - else if(radi > 16){ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_2.getDefaultState()); - } - else if(radi > 8){ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_3.getDefaultState()); - } - else if(radi > 2){ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_4.getDefaultState()); - } - else{ - world.setBlockState(new BlockPos(x, y, z), ModBlocks.sellafield_core.getDefaultState()); - } - - if (GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned small raditation hotspot at " + x + " " + y + " " + z); - } - } - } - } - private void generateStructures(World world, Random rand, int i, int j) { int dimID = world.provider.getDimension(); @@ -382,7 +326,7 @@ private void generateStructures(World world, Random rand, int i, int j) { if (biome.getDefaultTemperature() >= 1F && biome.getRainfall() > 1F) { generateAStructure(world, rand, i, j, new Radio01(), parseInt(CompatibilityConfig.radioStructure.get(dimID))); } - if (biome.getDefaultTemperature() <= 1F) { + if (biome.getDefaultTemperature() <= 0.5F) { generateAStructure(world, rand, i, j, new Antenna(), parseInt(CompatibilityConfig.antennaStructure.get(dimID))); } if (!biome.canRain() && biome.getDefaultTemperature() >= 2F) { @@ -412,8 +356,6 @@ private void generateStructures(World world, Random rand, int i, int j) { generateAStructure(world, rand, i, j, new Dud(), parseInt(CompatibilityConfig.dudStructure.get(dimID))); if(biome.getTempCategory() == Biome.TempCategory.WARM && biome.getTempCategory() != Biome.TempCategory.OCEAN) generateSellafieldPool(world, rand, i, j, dimID); - generateBedrockOil(world, rand, i, j, dimID); - generateBedrockOre(world, rand, i, j, dimID); if (GeneralConfig.enableMines){ int dimMineFreq = parseInt(CompatibilityConfig.minefreq.get(dimID)); @@ -426,7 +368,7 @@ private void generateStructures(World world, Random rand, int i, int j) { world.setBlockState(new BlockPos(x, y, z), ModBlocks.mine_ap.getDefaultState()); if (GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + y + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned landmine at x=" + x + " y=" + y + " z=" + z); } } } @@ -441,7 +383,7 @@ private void generateStructures(World world, Random rand, int i, int j) { world.setBlockState(new BlockPos(x, y, z), ModBlocks.broadcaster_pc.getDefaultState().withProperty(PinkCloudBroadcaster.FACING, EnumFacing.getFront(rand.nextInt(4) + 2)), 2); if (GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned corrupted broadcaster at " + x + " " + (y) + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned corrupted broadcaster at x=" + x + " y=" + y + " z=" + z); } } @@ -515,7 +457,7 @@ private void generateStructures(World world, Random rand, int i, int j) { } if(GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned capsule at " + x + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned capsule at x=" + x + " z=" + z); } } } @@ -532,7 +474,7 @@ private void generateStructures(World world, Random rand, int i, int j) { } } if(GeneralConfig.enableDebugMode && done) - MainRegistry.logger.info("[Debug] Successfully spawned pink tree at " + x + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned pink tree at x=" + x + " z=" + z); } if(GeneralConfig.enableVaults){ int dimVaultFreq = parseInt(CompatibilityConfig.vaultfreq.get(dimID)); @@ -583,7 +525,7 @@ private void generateStructures(World world, Random rand, int i, int j) { } if (GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned safe at " + x + " " + (y + 1) + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned safe at x=" + x + " y=" + (y + 1) + " z=" + z); } } } @@ -596,13 +538,20 @@ private void generateStructures(World world, Random rand, int i, int j) { CellularDungeonFactory.meteor.generate(world, x, 12, z, rand); if(GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned meteor dungeon at " + x + " 10 " + z); + MainRegistry.logger.info("[Debug] Successfully spawned meteor dungeon at x=" + x + " y=10 z=" + z); int y = world.getHeight(x, z); + int columnY = y; + for(int y1 = y+1; y1 > 1; y1--){ + if(!world.getBlockState(new BlockPos(x, y1, z)).getBlock().isReplaceable(world, new BlockPos(x, y1, z))){ + columnY = y1+1; + break; + } + } for(int f = 0; f < 3; f++) - world.setBlockState(new BlockPos(x, y + f, z), ModBlocks.meteor_pillar.getDefaultState().withProperty(BlockRotatedPillar.AXIS, EnumFacing.Axis.Y)); - world.setBlockState(new BlockPos(x, y + 3, z), ModBlocks.meteor_brick_chiseled.getDefaultState()); + world.setBlockState(new BlockPos(x, columnY + f, z), ModBlocks.meteor_pillar.getDefaultState().withProperty(BlockRotatedPillar.AXIS, EnumFacing.Axis.Y)); + world.setBlockState(new BlockPos(x, columnY + 3, z), ModBlocks.meteor_brick_chiseled.getDefaultState()); for(int f = 0; f < 10; f++) { @@ -621,7 +570,7 @@ private void generateStructures(World world, Random rand, int i, int j) { } } - if(biome.isHighHumidity() && biome.getTempCategory() == Biome.TempCategory.WARM){ + if(biome.isHighHumidity() && biome.getDefaultTemperature() < 1.2 && biome.getDefaultTemperature() > 0.8){ int dimJungleStructure = parseInt(CompatibilityConfig.jungleStructure.get(dimID)); if(dimJungleStructure > 0 && rand.nextInt(dimJungleStructure) == 0) { int x = i + rand.nextInt(16); @@ -632,13 +581,20 @@ private void generateStructures(World world, Random rand, int i, int j) { CellularDungeonFactory.jungle.generate(world, x, 28, z, world.rand); if(GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned jungle dungeon at " + x + " 10 " + z); + MainRegistry.logger.info("[Debug] Successfully spawned jungle dungeon at x=" + x + " y=10 z=" + z); int y = world.getHeight(x, z); + int columnY = y; + for(int y1 = y+1; y1 > 1; y1--){ + if(!world.getBlockState(new BlockPos(x, y1, z)).getBlock().isReplaceable(world, new BlockPos(x, y1, z))){ + columnY = y1+1; + break; + } + } for(int f = 0; f < 3; f++) - world.setBlockState(new BlockPos(x, y + f, z), ModBlocks.deco_titanium.getDefaultState()); - world.setBlockState(new BlockPos(x, y + 3, z), Blocks.REDSTONE_BLOCK.getDefaultState()); + world.setBlockState(new BlockPos(x, columnY + f, z), ModBlocks.deco_titanium.getDefaultState()); + world.setBlockState(new BlockPos(x, columnY + 3, z), Blocks.REDSTONE_BLOCK.getDefaultState()); } } if(biome.getTempCategory() == Biome.TempCategory.COLD){ @@ -672,8 +628,6 @@ private void generateStructures(World world, Random rand, int i, int j) { } } } - - generateSellafieldBlocks(world, rand, i, j, dimID); } if(rand.nextInt(25) == 0) { diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 22a5db195b..bcdb2f169f 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -12,10 +12,12 @@ import javax.imageio.ImageIO; import javax.annotation.Nullable; +import org.apache.logging.log4j.Level; import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Predicates; import com.google.common.collect.Sets; +import com.hbm.main.MainRegistry; import com.hbm.blocks.ModBlocks; import com.hbm.capability.HbmLivingCapability.EntityHbmPropsProvider; import com.hbm.capability.HbmLivingCapability.IEntityHbmProps; @@ -95,6 +97,7 @@ public class Library { public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5"; public static String Drillgon = "41ebd03f-7a12-42f3-b037-0caa4d6f235b"; public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9"; + public static String ege444 = "42ee978c-442a-4cd8-95b6-29e469b6df10"; public static String Doctor17 = "e4ab1199-1c22-4f82-a516-c3238bc2d0d1"; public static String Doctor17PH = "4d0477d7-58da-41a9-a945-e93df8601c5a"; public static String ShimmeringBlaze = "061bc566-ec74-4307-9614-ac3a70d2ef38"; @@ -224,7 +227,7 @@ public static int getColorFromResourceLocation(ResourceLocation r){ BufferedImage image = ImageIO.read(Minecraft.getMinecraft().getResourceManager().getResource(r).getInputStream()); return getRGBfromARGB(image.getRGB(image.getWidth()>>1, image.getHeight()>>1)); } catch(Exception e) { - e.printStackTrace(); + MainRegistry.logger.log(Level.INFO, "[NTM] Fluid Texture not found for "+e.getMessage()); return 0xFFFFFF; } } @@ -311,15 +314,14 @@ public static ItemStack carefulCopy(ItemStack stack) { public static EntityPlayer getClosestPlayerForSound(World world, double x, double y, double z, double radius) { double d4 = -1.0D; EntityPlayer entity = null; - + if(world == null) return null; for (int i = 0; i < world.loadedEntityList.size(); ++i) { Entity entityplayer1 = (Entity)world.loadedEntityList.get(i); if (entityplayer1.isEntityAlive() && entityplayer1 instanceof EntityPlayer) { double d5 = entityplayer1.getDistanceSq(x, y, z); - double d6 = radius; - if ((radius < 0.0D || d5 < d6 * d6) && (d4 == -1.0D || d5 < d4)) { + if ((radius < 0.0D || d5 < radius * radius) && (d4 == -1.0D || d5 < d4)) { d4 = d5; entity = (EntityPlayer)entityplayer1; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index aec6e61798..a768e922c6 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,8 +3,8 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech - Extended Edition"; - public static final String VERSION = "NTM-Extended-1.12.2-1.9.8"; - public static final String CHANGELOG = "§§aAdded Custom Nuke Solinium, Euphemium Rod$§aAdded configurable max values to the custom nuke$§aAdded Chargers and DNT Drill$§aAdded Radresistant 2x1 Door$§aAdded neoveline, coke, lignite, solid fuel, and presto log blocks$§aAdded deco block uncrafting$§aAdded more colors to item tooltips$§bChanged ammo clips to be craftable$§bChanged factory speed and mechanics$§bChanged gas to disappear faster$§bChanged bedrock ore recipe balance$§bChanged laser rendering$§eFixed tool abilities break batteries and crates$§eFixed factory connection issue$§eFixed fiberglass recipe$§eFixed RBMK Melting down below 1.5 k°C"; + public static final String VERSION = "NTM-Extended-1.12.2-2.0.0"; + public static final String CHANGELOG = "§§aAdded more Control panel mechanics$§aAdded Conveyors and Extractor/Inserter$§aAdded Torex Nuke$§aAdded Mk5 Nuke processing$§aAdded scortched nuke craters$§aAdded N² and Balefire charge$§aAdded Launchpad cooldown$§aAdded 7 Blockstates per waste block$§aAdded Galacticraft sealing to all big doors$§aAdded 1.7 Fuel system$§aAdded cable gauge$§aAdded peace dimension config$§aAdded hazmat potion resistance$§aAdded pocket radar$§aAdded Bauble support to rad counters$§bChanged RBMK render to be 4x faster but have stretched side texture$§bChanged Nuke and Missile models$§bChanged Batteries to only send to higher tier then themselves$§bChanged Radar and Forcefuel model$§bChanged Xenon-135 production 6x$§cRemoved N45 Mine$§cRemoved Old Drill$§cRemoved bad recipes$§eFixed crash when moving from reloaded$§eFixed Jetpack and hud sync$§eFixed Jungle dungeon spawning$§eFixed Door locking"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/AdvancementManager.java b/src/main/java/com/hbm/main/AdvancementManager.java index 1801ba9d04..ded72af7b9 100644 --- a/src/main/java/com/hbm/main/AdvancementManager.java +++ b/src/main/java/com/hbm/main/AdvancementManager.java @@ -89,7 +89,7 @@ public static void init(MinecraftServer serv){ bossMeltdown = adv.getAdvancement(new ResourceLocation(RefStrings.MODID, "bossmeltdown")); bossMaskman = adv.getAdvancement(new ResourceLocation(RefStrings.MODID, "bossmaskman")); bossWorm = adv.getAdvancement(new ResourceLocation(RefStrings.MODID, "bossworm")); - bossWorm = adv.getAdvancement(new ResourceLocation(RefStrings.MODID, "bossufo")); + bossUFO = adv.getAdvancement(new ResourceLocation(RefStrings.MODID, "bossufo")); } public static void grantAchievement(EntityPlayerMP player, Advancement a){ diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c492d9da7b..c40ca37da7 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -27,6 +27,7 @@ import com.hbm.blocks.generic.TrappedBrick; import com.hbm.blocks.machine.BlockSeal; import com.hbm.blocks.machine.rbmk.RBMKDebrisRadiating; +import com.hbm.blocks.network.energy.BlockCableGauge.TileEntityCableGauge; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.effect.EntityCloudFleija; @@ -35,9 +36,7 @@ import com.hbm.entity.effect.EntityCloudTom; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.effect.EntityFalloutRain; -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityQuasar; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntitySpear; @@ -90,7 +89,7 @@ import com.hbm.entity.logic.EntityDeathBlast; import com.hbm.entity.logic.EntityEMP; import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.EntityNukeExplosionPlus; import com.hbm.entity.logic.EntityTomBlast; import com.hbm.entity.missile.EntityBobmazon; @@ -121,6 +120,7 @@ import com.hbm.entity.missile.EntityMissileMicro; import com.hbm.entity.missile.EntityMissileMirv; import com.hbm.entity.missile.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileN2; import com.hbm.entity.missile.EntityMissileRain; import com.hbm.entity.missile.EntityMissileSchrabidium; import com.hbm.entity.missile.EntityMissileStrong; @@ -148,7 +148,6 @@ import com.hbm.entity.particle.EntityChlorineFX; import com.hbm.entity.particle.EntityCloudFX; import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.entity.particle.EntityFogFX; import com.hbm.entity.particle.EntityGasFX; import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.particle.EntityOilSpillFX; @@ -218,9 +217,6 @@ import com.hbm.particle.ParticleHaze; import com.hbm.particle.ParticleHbmSpark; import com.hbm.particle.ParticleLetter; -import com.hbm.particle.ParticleMukeCloud; -import com.hbm.particle.ParticleMukeFlash; -import com.hbm.particle.ParticleMukeWave; import com.hbm.particle.ParticlePlasmaBlast; import com.hbm.particle.ParticleRBMKFlame; import com.hbm.particle.ParticleRBMKMush; @@ -265,7 +261,6 @@ import com.hbm.render.entity.RenderBeam4; import com.hbm.render.entity.RenderBeam5; import com.hbm.render.entity.RenderBeam6; -import com.hbm.render.entity.RenderBigNuke; import com.hbm.render.entity.RenderBlackHole; import com.hbm.render.entity.RenderBoat; import com.hbm.render.entity.RenderBobmazon; @@ -297,8 +292,7 @@ import com.hbm.render.entity.RenderMiniMIRV; import com.hbm.render.entity.RenderMiniNuke; import com.hbm.render.entity.RenderMirv; -import com.hbm.render.entity.RenderNoCloud; -import com.hbm.render.entity.RenderNukeMK4; +import com.hbm.render.entity.RenderNukeMK5; import com.hbm.render.entity.RenderRainbow; import com.hbm.render.entity.RenderRocket; import com.hbm.render.entity.RenderSRocket; @@ -310,7 +304,7 @@ import com.hbm.render.entity.TSmokeRenderer; import com.hbm.render.entity.effect.RenderCloudTom; import com.hbm.render.entity.effect.RenderQuasar; -import com.hbm.render.entity.effect.RenderSmallNukeMK4; +import com.hbm.render.entity.effect.RenderTorex; import com.hbm.render.entity.effect.RenderSpear; import com.hbm.render.entity.item.RenderMovingItem; import com.hbm.render.entity.missile.RenderBoosterMissile; @@ -334,7 +328,6 @@ import com.hbm.render.entity.missile.RenderMissileIncendiaryStrong; import com.hbm.render.entity.missile.RenderMissileInferno; import com.hbm.render.entity.missile.RenderMissileMicro; -import com.hbm.render.entity.missile.RenderMissileMirv; import com.hbm.render.entity.missile.RenderMissileNuclear; import com.hbm.render.entity.missile.RenderMissileRain; import com.hbm.render.entity.missile.RenderMissileSchrabidium; @@ -357,7 +350,6 @@ import com.hbm.render.factories.MultiCloudRendererFactory; import com.hbm.render.factories.RenderBurningFOEQFactory; import com.hbm.render.factories.RenderFalloutRainFactory; -import com.hbm.render.factories.RenderFogRenderFactory; import com.hbm.render.factories.RenderNuclearCreeperFactory; import com.hbm.render.factories.RenderRubbleFactory; import com.hbm.render.factories.RenderSSmokeFactory; @@ -377,6 +369,8 @@ import com.hbm.render.item.ItemRenderLibrary; import com.hbm.render.item.ItemRenderMissile; import com.hbm.render.item.ItemRenderMissilePart; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.render.item.ItemRenderMissileGeneric.RenderMissileType; import com.hbm.render.item.ItemRenderMultitool; import com.hbm.render.item.ItemRenderObj; import com.hbm.render.item.ItemRenderShim; @@ -384,7 +378,6 @@ import com.hbm.render.item.ItemRendererMachine; import com.hbm.render.item.ItemRendererMeteorSword; import com.hbm.render.item.ItemRendererBedrockOre; -import com.hbm.render.item.weapon.GunRevolverRender; import com.hbm.render.item.weapon.ItemRedstoneSwordRender; import com.hbm.render.item.weapon.ItemRenderBFLauncher; import com.hbm.render.item.weapon.ItemRenderBigSword; @@ -446,7 +439,6 @@ import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.TileEntityKeypadBase; import com.hbm.tileentity.TileEntitySlidingBlastDoorKeypad; -import com.hbm.tileentity.bomb.RenderNukeMike; import com.hbm.tileentity.bomb.TileEntityBombMulti; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; @@ -461,7 +453,6 @@ import com.hbm.tileentity.bomb.TileEntityNukeMan; import com.hbm.tileentity.bomb.TileEntityNukeMike; import com.hbm.tileentity.bomb.TileEntityNukeN2; -import com.hbm.tileentity.bomb.TileEntityNukeN45; import com.hbm.tileentity.bomb.TileEntityNukePrototype; import com.hbm.tileentity.bomb.TileEntityNukeSolinium; import com.hbm.tileentity.bomb.TileEntityNukeTsar; @@ -470,11 +461,8 @@ import com.hbm.tileentity.network.energy.TileEntityPylon; import com.hbm.tileentity.network.energy.TileEntityPylonLarge; import com.hbm.tileentity.network.energy.TileEntitySubstation; -import com.hbm.tileentity.conductor.TileEntityFFFluidDuct; import com.hbm.tileentity.conductor.TileEntityFFFluidDuctMk2; import com.hbm.tileentity.conductor.TileEntityFFFluidSuccMk2; -import com.hbm.tileentity.conductor.TileEntityFFGasDuct; -import com.hbm.tileentity.conductor.TileEntityFFOilDuct; import com.hbm.tileentity.deco.TileEntityDecoBlock; import com.hbm.tileentity.deco.TileEntityDecoBlockAlt; import com.hbm.tileentity.deco.TileEntityDecoPoleSatelliteReceiver; @@ -524,7 +512,6 @@ import com.hbm.tileentity.machine.TileEntityMachineIGenerator; import com.hbm.tileentity.machine.TileEntityMachineLargeTurbine; import com.hbm.tileentity.machine.TileEntityMachineMiniRTG; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityMachineMixer; import com.hbm.tileentity.machine.TileEntityMachineExcavator; @@ -634,6 +621,7 @@ import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -727,9 +715,7 @@ public void registerRenderInfo() ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeFleija.class, new RenderNukeFleija()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorSmall.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCableBaseNT.class, new RenderCable()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFFFluidDuct.class, new RenderFluidDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFFOilDuct.class, new RenderOilDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFFGasDuct.class, new RenderGasDuct()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCableGauge.class, new RenderCableGauge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCheapo.class, new RenderCheapoTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretRocket.class, new RenderRocketTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretLight.class, new RenderLightTurret()); @@ -764,7 +750,6 @@ public void registerRenderInfo() ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFrackingTower.class, new RenderFrackingTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExcavator.class, new RenderExcavator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineUUCreator.class, new RenderUUCreator()); @@ -778,7 +763,6 @@ public void registerRenderInfo() ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukePrototype.class, new RenderNukePrototype()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN45.class, new RenderNukeN45()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeCustom.class, new RenderNukeCustom()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBombMulti.class, new RenderBombMulti()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrashedBomb.class, new RenderCrashedBomb()); @@ -883,16 +867,15 @@ public void registerRenderInfo() ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceSteel.class, new RenderFurnaceSteel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDoorGeneric.class, new RenderDoorGeneric()); - RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new RenderFogRenderFactory()); RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRendererFactory(new Item[] {ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8})); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRendererFactory(new Item[] {ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8})); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFX.class, new MultiCloudRendererFactory(new Item[]{ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8})); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRendererFactory(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRendererFactory(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudSmall.class, RenderSmallNukeMK4.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityTaintedCreeper.class, new RenderTaintedCreeperFactory()); RenderingRegistry.registerEntityRenderingHandler(EntityNuclearCreeper.class, new RenderNuclearCreeperFactory()); RenderingRegistry.registerEntityRenderingHandler(EntityFalloutRain.class, new RenderFalloutRainFactory()); + RenderingRegistry.registerEntityRenderingHandler(EntityNukeTorex.class, RenderTorex.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRendererFactory(new Item[] {ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8})); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRendererFactory(new Item[] {ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8})); RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new ShrapnelRendererFactory()); @@ -901,7 +884,6 @@ public void registerRenderInfo() RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderBurningFOEQFactory()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, RenderCloudRainbow.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityExplosiveBeam.class, RenderBeam5.FACTORY); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudNoShroom.class, RenderNoCloud.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, RenderCloudFleija.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, RenderBullet.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityGasFlameFX.class, GasFlameRenderer.FACTORY); @@ -927,8 +909,9 @@ public void registerRenderInfo() RenderingRegistry.registerEntityRenderingHandler(EntityMissileInferno.class, RenderMissileInferno.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileRain.class, RenderMissileRain.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDrill.class, RenderMissileDrill.FACTORY); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileN2.class, RenderMissileNuclear.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileNuclear.class, RenderMissileNuclear.FACTORY); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, RenderMissileMirv.FACTORY); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, RenderMissileNuclear.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileEndo.class, RenderMissileEndo.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileExo.class, RenderMissileExo.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityBombletTheta.class, RenderBombletTheta.FACTORY); @@ -950,7 +933,7 @@ public void registerRenderInfo() RenderingRegistry.registerEntityRenderingHandler(EntityModBeam.class, RenderBeam6.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityVortex.class, RenderBlackHole.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityRagingVortex.class, RenderBlackHole.FACTORY); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionMK4.class, RenderNukeMK4.FACTORY); + RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionMK5.class, RenderNukeMK5.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMiniNuke.class, RenderMiniNuke.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMiniMIRV.class, RenderMiniMIRV.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityBaleflare.class, RenderBaleflare.FACTORY); @@ -1017,7 +1000,6 @@ public void doRender(EntityCombineBall entity, double x, double y, double z, flo RenderingRegistry.registerEntityRenderingHandler(EntityOilSpill.class, RenderEmpty.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, SpillRenderer.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityCloudSolinium.class, RenderCloudSolinium.FACTORY); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudBig.class, RenderBigNuke.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionPlus.class, RenderEmpty.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, RenderFallingNuke.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, RenderMissileCustom.FACTORY); @@ -1091,18 +1073,46 @@ public void registerMissileItems(IRegistry r //Iterator> it = MissilePart.parts.entrySet().iterator(); MissilePart.parts.values().forEach(part -> { - part.part.setTileEntityItemStackRenderer(new ItemRenderMissilePart(part)); - ModEventHandlerClient.swapModels(part.part, reg); + registerItemRenderer(part.part, new ItemRenderMissilePart(part), reg); }); - /*while (it.hasNext()) { - Map.Entry pair = it.next(); - MissilePart part = (MissilePart)pair.getValue(); - part.part.setTileEntityItemStackRenderer(new ItemRenderMissilePart(part)); - ModEventHandlerClient.swapModels(part.part, reg); - }*/ - ModItems.missile_custom.setTileEntityItemStackRenderer(new ItemRenderMissile()); - ModEventHandlerClient.swapModels(ModItems.missile_custom, reg); + + registerItemRenderer(ModItems.missile_custom, new ItemRenderMissile(), reg); + + ItemRenderMissileGeneric.init(); + registerItemRenderer(ModItems.missile_taint, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0), reg); + registerItemRenderer(ModItems.missile_micro, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0), reg); + registerItemRenderer(ModItems.missile_bhole, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0), reg); + registerItemRenderer(ModItems.missile_schrabidium, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0), reg); + registerItemRenderer(ModItems.missile_emp, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0), reg); + registerItemRenderer(ModItems.missile_generic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1), reg); + registerItemRenderer(ModItems.missile_incendiary, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1), reg); + registerItemRenderer(ModItems.missile_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1), reg); + registerItemRenderer(ModItems.missile_buster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1), reg); + registerItemRenderer(ModItems.missile_anti_ballistic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ABM), reg); + registerItemRenderer(ModItems.missile_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2), reg); + registerItemRenderer(ModItems.missile_incendiary_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2), reg); + registerItemRenderer(ModItems.missile_cluster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2), reg); + registerItemRenderer(ModItems.missile_buster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2), reg); + registerItemRenderer(ModItems.missile_emp_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2), reg); + registerItemRenderer(ModItems.missile_burst, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3), reg); + registerItemRenderer(ModItems.missile_inferno, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3), reg); + registerItemRenderer(ModItems.missile_rain, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3), reg); + registerItemRenderer(ModItems.missile_drill, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3), reg); + registerItemRenderer(ModItems.missile_nuclear, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR), reg); + registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR), reg); + registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR), reg); + registerItemRenderer(ModItems.missile_n2, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR), reg); + registerItemRenderer(ModItems.missile_endo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL), reg); + registerItemRenderer(ModItems.missile_exo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL), reg); + registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_DOOMSDAY), reg); + registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER), reg); + } + + public static void registerItemRenderer(Item i, TileEntityItemStackRenderer render, IRegistry reg){ + i.setTileEntityItemStackRenderer(render); + ModEventHandlerClient.swapModels(i, reg); } + @Override public void registerTileEntitySpecialRenderer() { @@ -1135,7 +1145,7 @@ public void particleControl(double x, double y, double z, int type) { Minecraft.getMinecraft().effectRenderer.addEffect(contrail); } break; - case 3: + case 3: //Rad Fog ParticleRadiationFog fog = new ParticleRadiationFog(world, x, y, z); Minecraft.getMinecraft().effectRenderer.addEffect(fog); @@ -1456,68 +1466,14 @@ public void effectNT(NBTTagCompound data) { } } - if("muke".equals(type)) { - - ParticleMukeWave wave = new ParticleMukeWave(world, x, y, z); - ParticleMukeFlash flash = new ParticleMukeFlash(world, x, y, z, data.getBoolean("balefire")); - - Minecraft.getMinecraft().effectRenderer.addEffect(wave); - Minecraft.getMinecraft().effectRenderer.addEffect(flash); - - //single swing: HT 15, MHT 15 - //double swing: HT 60, MHT 50 - //vic's immersive swing: HT 100, MHT 50 - - if(player.getDisplayName().equals("Vic4Games")) { - player.hurtTime = 100; - player.maxHurtTime = 50; - } else { - player.hurtTime = 15; - player.maxHurtTime = 15; - } - player.attackedAtYaw = 0F; - } - - if("tinytot".equals(type)) { - - ParticleMukeWave wave = new ParticleMukeWave(world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(wave); - - for(double d = 0.0D; d <= 1.6D; d += 0.1) { - ParticleMukeCloud cloud = new ParticleMukeCloud(world, x, y, z, rand.nextGaussian() * 0.05, d + rand.nextGaussian() * 0.02, rand.nextGaussian() * 0.05); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - for(int i = 0; i < 50; i++) { - ParticleMukeCloud cloud = new ParticleMukeCloud(world, x, y + 0.5, z, rand.nextGaussian() * 0.5, rand.nextInt(5) == 0 ? 0.02 : 0, rand.nextGaussian() * 0.5); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - for(int i = 0; i < 15; i++) { - double ix = rand.nextGaussian() * 0.2; - double iz = rand.nextGaussian() * 0.2; - - if(ix * ix + iz * iz > 0.75) { - ix *= 0.5; - iz *= 0.5; - } - - double iy = 1.6 + (rand.nextDouble() * 2 - 1) * (0.75 - (ix * ix + iz * iz)) * 0.5; - - ParticleMukeCloud cloud = new ParticleMukeCloud(world, x, y, z, ix, iy + rand.nextGaussian() * 0.02, iz); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - if(player.getDisplayName().equals("Vic4Games")) { - player.hurtTime = 100; - player.maxHurtTime = 50; + if("ufo".equals(type)) { + if(GeneralConfig.instancedParticles){ + ParticleRocketFlameInstanced fx = new ParticleRocketFlameInstanced(world, x, y, z); + InstancedParticleRenderer.addParticle(fx); } else { - player.hurtTime = 15; - player.maxHurtTime = 15; + ParticleRocketFlame fx = new ParticleRocketFlame(world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } - player.attackedAtYaw = 0F; - } - - if("ufo".equals(type)) { - ParticleMukeCloud cloud = new ParticleMukeCloud(world, x, y, z, 0, 0, 0); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); return; } @@ -1571,7 +1527,6 @@ public void effectNT(NBTTagCompound data) { Entity e = world.getEntityByID(data.getInteger("entity")); int count = data.getInteger("count"); - if(e instanceof EntityLivingBase) { double ix = e.posX; @@ -1581,7 +1536,6 @@ public void effectNT(NBTTagCompound data) { Vec3d vec = e.getLookVec(); for(int i = 0; i < count; i++) { - if("normal".equals(data.getString("mode"))) { int stateId = Block.getStateId(Blocks.STAINED_HARDENED_CLAY.getDefaultState().withProperty(BlockStainedHardenedClay.COLOR, rand.nextBoolean() ? EnumDyeColor.LIME : EnumDyeColor.GREEN)); Particle fx = new ParticleBlockDust.Factory().createParticle(-1, world, ix, iy, iz, (vec.x + rand.nextGaussian() * 0.2) * 0.2, (vec.y + rand.nextGaussian() * 0.2) * 0.2, (vec.z + rand.nextGaussian() * 0.2) * 0.2, stateId); @@ -1895,16 +1849,6 @@ public void effectNT(NBTTagCompound data) { } return; } - - if("muke".equals(type)) { - - ParticleMukeWave wave = new ParticleMukeWave(world, x, y, z); - ParticleMukeFlash flash = new ParticleMukeFlash(world, x, y, z, data.getBoolean("balefire")); - - Minecraft.getMinecraft().effectRenderer.addEffect(wave); - Minecraft.getMinecraft().effectRenderer.addEffect(flash); - return; - } if("bimpact".equals(type)){ Type hitType = Type.values()[data.getByte("hitType")]; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 68140232d5..9be0bc3ad0 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -8,6 +8,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.crafting.handlers.RBMKFuelCraftingHandler; +import com.hbm.crafting.handlers.SmallReactorFuelCraftingHandler; import com.hbm.forgefluid.ModForgeFluids; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.BedrockOreRegistry; @@ -67,6 +68,7 @@ public static void init(){ addCrafting(); addSmelting(); + hack.getRegistry().register(new SmallReactorFuelCraftingHandler().setRegistryName(new ResourceLocation(RefStrings.MODID, "reactor_fuel_crafting_handler"))); hack.getRegistry().register(new RBMKFuelCraftingHandler().setRegistryName(new ResourceLocation(RefStrings.MODID, "rbmk_fuel_crafting_handler"))); hack.getRegistry().register(new MKUCraftingHandler().setRegistryName(new ResourceLocation(RefStrings.MODID, "mku_crafting_handler"))); } @@ -79,16 +81,13 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { "##", "##", '#', ModItems.powder_balefire }); addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', BAKELITE.dust() }); - addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { "DPD", "ICI", "DLD", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ModItems.plate_polymer, 'D', I.dustTiny() }); + addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { "DPD", "ICI", "DLD", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot(), 'D', I.dustTiny() }); addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.STRING, 'P', BR.dust(), 'C', Blocks.WOOL }); addRecipeAuto(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.FLINT, 'O', ModBlocks.gravel_obsidian }); - addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', POLYMER.ingot() }); - addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.STRING, 'W', Blocks.WOOL }); - addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', Items.BRICK }); addRecipeAuto(new ItemStack(ModBlocks.marker_structure, 1), new Object[] { "L", "G", "R", 'L', LAPIS.dust(), 'G', Items.GLOWSTONE_DUST, 'R', Blocks.REDSTONE_TORCH }); @@ -108,7 +107,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModBlocks.crane_inserter, amount), new Object[] { "CCC", "C C", "CBC", 'C', casing, 'B', ModBlocks.conveyor }); addRecipeAuto(new ItemStack(ModBlocks.crane_ejector, amount), new Object[] { "CCC", "CPC", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', ModItems.piston_pneumatic }); } - + addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', ModItems.wire_aluminium }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier1, 1), new Object[] { "CPC", 'C', ModItems.circuit_aluminium, 'P', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier2, 1), new Object[] { "CPC", 'C', ModItems.circuit_copper, 'P', NETHERQUARTZ.dust() }); @@ -130,8 +129,8 @@ public static void addCrafting(){ addRecipeAuto(ItemCell.getFullCell(ModForgeFluids.deuterium, 8), new Object[] { "DDD", "DTD", "DDD", 'D', new IngredientNBT2(new ItemStack(ModItems.cell)), 'T', ModItems.mike_deut }); addRecipeAuto(new ItemStack(ModItems.canister_generic, 2), new Object[] { "S ", "AA", "AA", 'S', STEEL.plate(), 'A', AL.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.yellow_barrel, 1), new Object[] { "DDD", "DTD", "DDD", 'D', ModItems.nuclear_waste, 'T', ModItems.tank_steel }); - addRecipeAuto(new ItemStack(ModItems.nuclear_waste, 8), new Object[] { "B", 'B', ModBlocks.yellow_barrel }); + addRecipeAuto(new ItemStack(ModBlocks.yellow_barrel, 1), new Object[] { " D ", "LTL", 'D', ModBlocks.block_waste, 'T', ModItems.tank_steel, 'L', PB.plate() }); + addShapelessAuto(new ItemStack(ModItems.nuclear_waste, 9), new Object[] { ModBlocks.yellow_barrel }); addRecipeAuto(new ItemStack(ModItems.gas_canister, 2), new Object[] { "S ", "AA", "AA", 'A', STEEL.plate(), 'S', CU.plate() }); addRecipeAuto(new ItemStack(ModBlocks.vitrified_barrel, 1), new Object[] { "LSL", "PWP", "LSL", 'L', PB.plate(), 'S', Blocks.SAND, 'P', ANY_PLASTIC.ingot(), 'W', ModBlocks.block_waste }); addShapelessAuto(new ItemStack(ModBlocks.block_waste_painted, 1), new Object[] { "dyeYellow", ModBlocks.block_waste }); @@ -344,7 +343,8 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.ingot_desh, 1), new Object[] { "###", "###", "###", '#', DESH.nugget() }); addRecipeAuto(new ItemStack(ModItems.nugget_desh, 9), new Object[] { "#", '#', DESH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.powder_radspice, 1), new Object[] { "ABC", "DEF", "HIJ", 'A', CO60.dust(), 'B', SR90.dust(), 'C', I131.dust(), 'D', CS137.dust(), 'E', XE135.dust(), 'F', AU198.dust(), 'H', PB209.dust(), 'I', AT209.dust(), 'J', AC227.dust() }); + addShapelessAuto(new ItemStack(ModItems.powder_radspice, 1), new Object[] { CO60.dust(), SR90.dust(), I131.dust(), CS137.dust(), XE135.dust(), AU198.dust(), PB209.dust(), AT209.dust(), AC227.dust() }); + addShapelessAuto(new ItemStack(ModItems.powder_radspice_tiny, 1), new Object[] { CO60.dustTiny(), SR90.dustTiny(), I131.dustTiny(), CS137.dustTiny(), XE135.dustTiny(), AU198.dustTiny(), PB209.dustTiny(), AT209.dustTiny(), AC227.dustTiny() }); addRecipeAuto(new ItemStack(ModItems.powder_steel, 1), new Object[] { "###", "###", "###", '#', STEEL.dustTiny() }); addRecipeAuto(new ItemStack(ModItems.powder_steel_tiny, 9), new Object[] { "#", '#', STEEL.dust() }); addRecipeAuto(new ItemStack(ModItems.powder_lithium, 1), new Object[] { "###", "###", "###", '#', LI.dustTiny() }); @@ -417,11 +417,11 @@ public static void addCrafting(){ addRodBilletUnload(ModItems.billet_polonium, ModItems.rod_polonium); addRodBilletUnload(ModItems.billet_schrabidium, ModItems.rod_schrabidium); addRodBilletUnload(ModItems.billet_solinium, ModItems.rod_solinium); - addRodBilletUnload(ModItems.billet_uranium_fuel, ModItems.rod_uranium_fuel); - addRodBilletUnload(ModItems.billet_thorium_fuel, ModItems.rod_thorium_fuel); - addRodBilletUnload(ModItems.billet_plutonium_fuel, ModItems.rod_plutonium_fuel); - addRodBilletUnload(ModItems.billet_mox_fuel, ModItems.rod_mox_fuel); - addRodBilletUnload(ModItems.billet_schrabidium_fuel, ModItems.rod_schrabidium_fuel); + addRodBillet(ModItems.billet_uranium_fuel, ModItems.rod_uranium_fuel); + addRodBillet(ModItems.billet_thorium_fuel, ModItems.rod_thorium_fuel); + addRodBillet(ModItems.billet_plutonium_fuel, ModItems.rod_plutonium_fuel); + addRodBillet(ModItems.billet_mox_fuel, ModItems.rod_mox_fuel); + addRodBillet(ModItems.billet_schrabidium_fuel, ModItems.rod_schrabidium_fuel); addRodBilletUnload(ModItems.billet_nuclear_waste, ModItems.rod_waste ); @@ -474,11 +474,11 @@ public static void addCrafting(){ addDualRodBilletUnload(ModItems.billet_polonium, ModItems.rod_dual_polonium); addDualRodBilletUnload(ModItems.billet_schrabidium, ModItems.rod_dual_schrabidium); addDualRodBilletUnload(ModItems.billet_solinium, ModItems.rod_dual_solinium); - addDualRodBilletUnload(ModItems.billet_uranium_fuel, ModItems.rod_dual_uranium_fuel); - addDualRodBilletUnload(ModItems.billet_thorium_fuel, ModItems.rod_dual_thorium_fuel); - addDualRodBilletUnload(ModItems.billet_plutonium_fuel, ModItems.rod_dual_plutonium_fuel); - addDualRodBilletUnload(ModItems.billet_mox_fuel, ModItems.rod_dual_mox_fuel); - addDualRodBilletUnload(ModItems.billet_schrabidium_fuel, ModItems.rod_dual_schrabidium_fuel); + addDualRodBillet(ModItems.billet_uranium_fuel, ModItems.rod_dual_uranium_fuel); + addDualRodBillet(ModItems.billet_thorium_fuel, ModItems.rod_dual_thorium_fuel); + addDualRodBillet(ModItems.billet_plutonium_fuel, ModItems.rod_dual_plutonium_fuel); + addDualRodBillet(ModItems.billet_mox_fuel, ModItems.rod_dual_mox_fuel); + addDualRodBillet(ModItems.billet_schrabidium_fuel, ModItems.rod_dual_schrabidium_fuel); addDualRodBilletUnload(ModItems.billet_nuclear_waste, ModItems.rod_dual_waste); addDualRodBilletUnload(ModItems.billet_ac227, ModItems.rod_dual_ac227); @@ -540,11 +540,11 @@ public static void addCrafting(){ addQuadRodBilletUnload(ModItems.billet_polonium, ModItems.rod_quad_polonium); addQuadRodBilletUnload(ModItems.billet_schrabidium, ModItems.rod_quad_schrabidium); addQuadRodBilletUnload(ModItems.billet_solinium, ModItems.rod_quad_solinium); - addQuadRodBilletUnload(ModItems.billet_uranium_fuel, ModItems.rod_quad_uranium_fuel); - addQuadRodBilletUnload(ModItems.billet_thorium_fuel, ModItems.rod_quad_thorium_fuel); - addQuadRodBilletUnload(ModItems.billet_plutonium_fuel, ModItems.rod_quad_plutonium_fuel); - addQuadRodBilletUnload(ModItems.billet_mox_fuel, ModItems.rod_quad_mox_fuel); - addQuadRodBilletUnload(ModItems.billet_schrabidium_fuel, ModItems.rod_quad_schrabidium_fuel); + addQuadRodBillet(ModItems.billet_uranium_fuel, ModItems.rod_quad_uranium_fuel); + addQuadRodBillet(ModItems.billet_thorium_fuel, ModItems.rod_quad_thorium_fuel); + addQuadRodBillet(ModItems.billet_plutonium_fuel, ModItems.rod_quad_plutonium_fuel); + addQuadRodBillet(ModItems.billet_mox_fuel, ModItems.rod_quad_mox_fuel); + addQuadRodBillet(ModItems.billet_schrabidium_fuel, ModItems.rod_quad_schrabidium_fuel); addQuadRodBilletUnload(ModItems.billet_nuclear_waste, ModItems.rod_quad_waste); addQuadRodBilletUnload(ModItems.billet_ac227, ModItems.rod_quad_ac227); @@ -577,16 +577,19 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModItems.nugget_verticium, 6), new Object[] { ModItems.rod_verticium }); addShapelessAuto(new ItemStack(ModItems.nugget_euphemium, 6), new Object[] { ModItems.rod_euphemium }); addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { ModItems.rod_balefire }); + addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { ModItems.rod_balefire_blazing }); addShapelessAuto(new ItemStack(ModItems.nugget_lead, 12), new Object[] { ModItems.rod_dual_lead }); addShapelessAuto(new ItemStack(ModItems.lithium, 2), new Object[] { ModItems.rod_dual_lithium }); addShapelessAuto(new ItemStack(ModItems.nugget_cobalt, 12), new Object[] { ModItems.rod_dual_cobalt }); addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 2), new Object[] { ModItems.rod_dual_balefire }); + addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 2), new Object[] { ModItems.rod_dual_balefire_blazing }); addShapelessAuto(new ItemStack(ModItems.nugget_lead, 24), new Object[] { ModItems.rod_quad_lead }); addShapelessAuto(new ItemStack(ModItems.lithium, 4), new Object[] { ModItems.rod_quad_lithium }); addShapelessAuto(new ItemStack(ModItems.nugget_cobalt, 24), new Object[] { ModItems.rod_quad_cobalt }); addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 4), new Object[] { ModItems.rod_quad_balefire }); + addShapelessAuto(new ItemStack(ModItems.egg_balefire_shard, 4), new Object[] { ModItems.rod_quad_balefire_blazing }); addShapelessAuto(new ItemStack(ModItems.waste_uranium_hot, 1), new Object[] { ModItems.rod_uranium_fuel_depleted }); addShapelessAuto(new ItemStack(ModItems.waste_uranium_hot, 2), new Object[] { ModItems.rod_dual_uranium_fuel_depleted }); @@ -688,7 +691,8 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { Items.STICK, Items.STICK, Items.STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.STRING, 'S', Items.SLIME_BALL, 'P', Items.PAPER }); - + addRecipeAuto(new ItemStack(ModItems.ball_resin), new Object[] { "DD", "DD", 'D', Blocks.YELLOW_FLOWER }); + addShapelessAuto(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, new IngredientContainsTag(FluidUtil.getFilledBucket(new FluidStack(ModForgeFluids.mud_fluid, 1000))), ModItems.powder_spark_mix, ModItems.powder_magic }); addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.gun_fatman_ammo }); addShapelessAuto(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole }); @@ -708,6 +712,7 @@ public static void addCrafting(){ 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() }); + addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_cable, ModBlocks.concrete, ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 8), new Object[] { "PMP", "RTR", "PMP", 'P', TI.plate(), 'M', ModItems.magnetron, 'R', Items.COMPARATOR, 'T', ModItems.pellet_rtg }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 8), new Object[] { "PMP", "RTR", "PMP", 'P', STEEL.plate(), 'M', ModItems.magnetron, 'R', Items.REPEATER, 'T', ModItems.pellet_rtg }); addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); @@ -727,10 +732,10 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.IRON_BARS, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.FURNACE, 'B', IRON.block(), 'P', Blocks.PISTON }); - addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.WOOL }); + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.WOOL }); addRecipeAuto(new ItemStack(ModBlocks.factory_titanium_hull, 1), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.factory_titanium_furnace, 1), new Object[] { "HMH", "MFM", "HMH", 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 'M', ModItems.motor, 'F', Item.getItemFromBlock(Blocks.FURNACE) }); @@ -789,7 +794,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.laser_crystal_bismuth, 1), new Object[] {"QUQ", "BCB", "QTQ", 'Q', ModBlocks.glass_quartz, 'U', U.ingot(), 'T', TH232.ingot(), 'B', ANY_BISMOID.nugget(), 'C', ModItems.crystal_rare }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_cmb, 1), new Object[] {"QBQ", "CSC", "QBQ", 'Q', ModBlocks.glass_quartz, 'B', STAR.ingot(), 'C', PB209.nugget(), 'S', XE135.dust() }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_dem, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', CMB.ingot(), 'B', ModItems.demon_core_closed, 'S', GH336.nugget()}); - addRecipeAuto(new ItemStack(ModItems.laser_crystal_bale, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_trinitite, 'D', ModItems.ingot_radspice, 'B', ModItems.rbmk_pellet_balefire, 'S', ModItems.nugget_verticium }); + addRecipeAuto(new ItemStack(ModItems.laser_crystal_bale, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_trinitite, 'D', ModItems.ingot_verticium, 'B', ModItems.rbmk_pellet_balefire, 'S', ModItems.nugget_radspice }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_digamma, 1), new Object[] {"QUQ", "UEU", "QUQ", 'Q', ModBlocks.glass_ash, 'U', ModItems.undefined, 'E', ModItems.ingot_electronium } ); addRecipeAuto(new ItemStack(ModItems.stamp_stone_flat, 1), new Object[] { " R ", "III", "SSS", 'R', REDSTONE.dust(), 'I', "ingotBrick", 'S', "stone" }); @@ -866,6 +871,10 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModBlocks.concrete_yellow, 8), new Object[] {ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, ModBlocks.concrete_smooth, "dyeYellow"}); addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth), new Object[] { ModBlocks.concrete_yellow }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_hazard, 6), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', "dyeYellow", '2', "dyeBlack" }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_hazard, 6), new Object[] { "CCC", "2 1", "CCC", 'C', ModBlocks.concrete_smooth, '1', "dyeYellow", '2', "dyeBlack" }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 6), new Object[] { ModBlocks.concrete_hazard, ModBlocks.concrete_hazard, ModBlocks.concrete_hazard, ModBlocks.concrete_hazard, ModBlocks.concrete_hazard, ModBlocks.concrete_hazard }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 8), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.IRON_BARS }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.CLAY_BALL }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete, 'B', Items.CLAY_BALL }); @@ -973,7 +982,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.PISTON), 'M', ModItems.mechanism_launcher_2 }); addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); - addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); + addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); //addRecipeAuto(new ItemStack(ModItems.gun_bf, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_paa, 'L', OreDictManager.getReflector(), 'W', ModItems.wire_advanced_alloy, 'F', ModItems.gun_mirv }); addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); @@ -1061,7 +1070,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", " P", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); - addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_explosive, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); @@ -1204,7 +1213,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.grenade_if_generic, 1), new Object[] { " C ", "PTP", " P ", 'C', ModItems.coil_tungsten, 'P', STEEL.plate(), 'T', Blocks.TNT }); addRecipeAuto(new ItemStack(ModItems.grenade_if_he, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.GUNPOWDER }); - addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.grenade_if_sticky, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.SLIME_BALL }); addRecipeAuto(new ItemStack(ModItems.grenade_if_impact, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.REDSTONE }); addRecipeAuto(new ItemStack(ModItems.grenade_if_concussion, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.GLOWSTONE_DUST }); @@ -1279,14 +1288,14 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.LEATHER, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.LEATHER, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', Items.LEATHER, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); - addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); - addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); - addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); + addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); + addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); + addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.LEATHER }); - addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.LEATHER }); - addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "A", "B", "A", 'A', ModItems.plate_polymer, 'B', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "A", "B", "A", 'A', ANY_RUBBER.ingot(), 'B', IRON.plate() }); addShapelessAuto(new ItemStack(ModItems.iv_xp_empty, 1), new Object[] { ModItems.iv_empty, ModItems.powder_magic }); addShapelessAuto(new ItemStack(ModItems.radaway, 1), new Object[] { ModItems.iv_blood, COAL.dust(), Items.PUMPKIN_SEEDS}); addShapelessAuto(new ItemStack(ModItems.radaway_strong, 1), new Object[] { ModItems.radaway, ModBlocks.mush }); @@ -1299,6 +1308,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.book_guide, 1, 1), new Object[] { "G", "B", "C", 'B', Items.BOOK, 'G', ModItems.rbmk_lid_glass, 'C', ModItems.rbmk_lid }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, 2), new Object[] { Items.BOOK, ModItems.powder_meteorite }); + addShapelessAuto(new ItemStack(ModItems.book_guide, 1, 3), new Object[] { Items.BOOK, ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); @@ -1377,7 +1387,7 @@ public static void reg2(){ addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', ModItems.wire_copper, 'P', Items.PAPER, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.POTATO, ModItems.wire_aluminium, ModItems.wire_copper }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new IngredientContainsTag(ItemFluidTank.getFullTank(FluidRegistry.WATER)), 'I', ModItems.plate_polymer }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new IngredientContainsTag(ItemFluidTank.getFullTank(FluidRegistry.WATER)), 'I', ANY_RUBBER.ingot() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new IngredientContainsTag(ItemFluidTank.getFullBarrel(FluidRegistry.WATER)), 'I', ANY_PLASTIC.ingot() }); if(GeneralConfig.enableBabyMode) { @@ -1488,17 +1498,17 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.hazmat_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth }); addRecipeAuto(new ItemStack(ModItems.hazmat_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth }); addRecipeAuto(new ItemStack(ModItems.hazmat_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth }); - addShapelessAuto(new ItemStack(ModItems.hazmat_kit, 1), new Object[] { new ItemStack(ModItems.hazmat_helmet, 1, 0), new ItemStack(ModItems.hazmat_plate, 1, 0), new ItemStack(ModItems.hazmat_legs, 1, 0), new ItemStack(ModItems.hazmat_boots, 1, 0) }); + addShapelessAuto(new ItemStack(ModItems.hazmat_kit, 1), new Object[] { new ItemStack(ModItems.gas_mask_filter, 1, 0), new ItemStack(ModItems.hazmat_helmet, 1, 0), new ItemStack(ModItems.hazmat_plate, 1, 0), new ItemStack(ModItems.hazmat_legs, 1, 0), new ItemStack(ModItems.hazmat_boots, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.hazmat_helmet_red, 1), new Object[] { "EEE", "IEI", "EFE", 'E', ModItems.hazmat_cloth_red, 'I', KEY_ANYPANE, 'F', ModItems.gas_mask_filter }); addRecipeAuto(new ItemStack(ModItems.hazmat_plate_red, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth_red }); addRecipeAuto(new ItemStack(ModItems.hazmat_legs_red, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth_red }); addRecipeAuto(new ItemStack(ModItems.hazmat_boots_red, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth_red }); - addShapelessAuto(new ItemStack(ModItems.hazmat_red_kit, 1), new Object[] { new ItemStack(ModItems.hazmat_helmet_red, 1, 0), new ItemStack(ModItems.hazmat_plate_red, 1, 0), new ItemStack(ModItems.hazmat_legs_red, 1, 0), new ItemStack(ModItems.hazmat_boots_red, 1, 0) }); + addShapelessAuto(new ItemStack(ModItems.hazmat_red_kit, 1), new Object[] { new ItemStack(ModItems.gas_mask_filter, 1, 0), new ItemStack(ModItems.hazmat_helmet_red, 1, 0), new ItemStack(ModItems.hazmat_plate_red, 1, 0), new ItemStack(ModItems.hazmat_legs_red, 1, 0), new ItemStack(ModItems.hazmat_boots_red, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.hazmat_helmet_grey, 1), new Object[] { "EEE", "IEI", "EFE", 'E', ModItems.hazmat_cloth_grey, 'I', KEY_ANYPANE, 'F', ModItems.gas_mask_filter }); addRecipeAuto(new ItemStack(ModItems.hazmat_plate_grey, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth_grey }); addRecipeAuto(new ItemStack(ModItems.hazmat_legs_grey, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth_grey }); addRecipeAuto(new ItemStack(ModItems.hazmat_boots_grey, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth_grey }); - addShapelessAuto(new ItemStack(ModItems.hazmat_grey_kit, 1), new Object[] { new ItemStack(ModItems.hazmat_helmet_grey, 1, 0), new ItemStack(ModItems.hazmat_plate_grey, 1, 0), new ItemStack(ModItems.hazmat_legs_grey, 1, 0), new ItemStack(ModItems.hazmat_boots_grey, 1, 0) }); + addShapelessAuto(new ItemStack(ModItems.hazmat_grey_kit, 1), new Object[] { new ItemStack(ModItems.gas_mask_filter_combo, 1, 0), new ItemStack(ModItems.hazmat_helmet_grey, 1, 0), new ItemStack(ModItems.hazmat_plate_grey, 1, 0), new ItemStack(ModItems.hazmat_legs_grey, 1, 0), new ItemStack(ModItems.hazmat_boots_grey, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.asbestos_helmet, 1), new Object[] { "EEE", "EIE", 'E', ModItems.asbestos_cloth, 'I', GOLD.plate() }); addRecipeAuto(new ItemStack(ModItems.asbestos_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.asbestos_cloth }); addRecipeAuto(new ItemStack(ModItems.asbestos_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.asbestos_cloth }); @@ -1516,14 +1526,14 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.goggles, 1), new Object[] { "P P", "GPG", 'G', KEY_ANYPANE, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.gas_mask, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', STEEL.plate(), 'F', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ModItems.plate_polymer, 'F', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.mask_damp, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag }); addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.kerosene)) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.euphemium_helmet, 1), new Object[] { "EEE", "E E", 'E', ModItems.plate_euphemium }); @@ -1669,8 +1679,8 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.grenade_nuke), new Object[] { "CGC", "CGC", "PAP", 'C', ModBlocks.det_charge, 'G', ModItems.grenade_mk2, 'P', ALLOY.plate(), 'A', Blocks.ANVIL }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'L', OreDictManager.getReflector() }); addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.LEATHER, 'I', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.LEATHER, 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.LEATHER, 'I', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.LEATHER, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.grenade_cloud), new Object[] { "SPS", "CAC", "SPS", 'S', S.dust(), 'P', ModItems.powder_poison, 'C', CU.dust(), 'A', new IngredientContainsTag(ItemFluidTank.getFullTank(ModForgeFluids.acid)) }); addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.IRON_BARS, 'C', ModItems.pellet_gas, 'D', Blocks.DISPENSER }); @@ -1689,7 +1699,7 @@ public static void reg2(){ addShapelessAuto(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.BOWL }); addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.gun_calamity_dual, 1), new Object[] { "BBM", " PI", "BBM", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "PGP", "ICI", "PRP", 'P',ModItems.plate_desh, 'G', KEY_ANYPANE, 'I', ANY_PLASTIC.ingot(), 'R', REDSTONE.block(), 'C', ModItems.circuit_targeting_tier4 }); addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); @@ -1773,12 +1783,13 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.mp_stability_15_thin, 1), new Object[] { "A A", "PSP", "PSP", 'A', AL.plate(), 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold }); addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.board_copper, 'T', ModItems.mp_thruster_15_balefire_large }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_kerosene }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_kerosene }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_kerosene }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_solid }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_solid }); - addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_solid }); + + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_kerosene }); + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_kerosene }); + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_kerosene }); + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_solid }); + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_solid }); + addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_solid }); addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_desh, 1), new Object[] { "CCC", "CTC", "CCC", 'C', DESH.ingot(), 'T', ModItems.mp_fuselage_15_solid }); addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_kerosene }); addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_long_kerosene }); @@ -1887,12 +1898,12 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ingot_thorium_fuel, 9), new Object[] { "#", '#', ModBlocks.block_thorium_fuel }); addRecipeAuto(new ItemStack(ModItems.ingot_solinium, 9), new Object[] { "#", '#', SA327.block() }); addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium_fuel, 9), new Object[] { "#", '#', ModBlocks.block_schrabidium_fuel }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.TNT, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.TNT, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_mox_fuel, 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_mox_fuel }); addRecipeAuto(new ItemStack(ModBlocks.block_lithium, 1), new Object[] { "###", "###", "###", '#', LI.ingot() }); @@ -1917,14 +1928,17 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ingot_phosphorus, 9), new Object[] { "#", '#', P_WHITE.block() }); addRecipeAuto(new ItemStack(ModItems.powder_fire, 9), new Object[] { "#", '#', P_RED.block() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 9), new Object[] { "#", '#', ModBlocks.block_insulator }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.STRING, 'W', Blocks.WOOL }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotBrick" }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotNetherBrick" }); + addRecipeAuto(new ItemStack(ModItems.ingot_asbestos, 9), new Object[] { "#", '#', ASBESTOS.block() }); addRecipeAuto(new ItemStack(ModItems.ingot_fiberglass, 9), new Object[] { "#", '#', FIBER.block() }); addRecipeAuto(new ItemStack(ModItems.ingot_cobalt, 9), new Object[] { "#", '#', CO.block() }); - //addShapelessAuto(new ItemStack(ModItems.nugget_thorium_fuel, 6), new Object[] { ModItems.rod_thorium_fuel }); - //addShapelessAuto(new ItemStack(ModItems.nugget_thorium_fuel, 12), new Object[] { ModItems.rod_dual_thorium_fuel }); - //addShapelessAuto(new ItemStack(ModItems.nugget_thorium_fuel, 24), new Object[] { ModItems.rod_quad_thorium_fuel }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P',ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', Items.STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); addShapelessAuto(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.LEVER, ModItems.gun_ks23 }); @@ -1936,7 +1950,9 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ammo_fuel_vaporizer, 1), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel_napalm }); addRecipeAuto(new ItemStack(ModBlocks.det_cord, 8), new Object[] { "TNT", "NGN", "TNT", 'T', STEEL.plate(), 'N', KNO.dust(), 'G', ANY_GUNPOWDER.dust() }); addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.det_n2, 1), new Object[] { "PDT", "DDD", "PDP", 'P', ModItems.plate_steel, 'D', ModItems.n2_charge, 'T', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PDP", "DCD", "PDP", 'P', ModItems.plate_desh, 'D', ModItems.man_explosive8, 'C', ModItems.man_core }); + addRecipeAuto(new ItemStack(ModBlocks.det_bale, 1), new Object[] { "DAP", "DCD", "DBD", 'D', ModItems.plate_titanium, 'A', ModItems.powder_power, 'B', ModItems.powder_magic, 'C', ModItems.egg_balefire, 'P', ModItems.circuit_targeting_tier4 }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 3), new Object[] { "FFF", "ITI", "ITI", 'F', Items.FLINT, 'I', IRON.plate(), 'T', Blocks.TNT }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.FLINT, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); addRecipeAuto(new ItemStack(ModItems.cobalt_helmet, 1), new Object[] { "EEE", "E E", 'E', CO.ingot() }); @@ -1944,7 +1960,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', CO.ingot() }); addRecipeAuto(new ItemStack(ModItems.cobalt_boots, 1), new Object[] { "E E", "E E", 'E', CO.ingot() }); - addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ModItems.plate_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); + addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_canister, 'B', ModItems.titanium_plate }); addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); @@ -2044,7 +2060,7 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.coltass, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', ModItems.cinnebar, 'X', Items.COMPASS }); addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T',TA.nugget(), 'B', ANY_BISMOID.nugget(), 'S', TCALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); - addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); addShapelessAuto(new ItemStack(ModItems.powder_tcalloy, 1), new Object[] { STEEL.dust(), TC99.nugget() }); addRecipeAuto(new ItemStack(ModBlocks.depth_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.stone_depth }); @@ -2068,7 +2084,12 @@ public static void reg3(){ add1To9Pair(ModItems.powder_iodine, ModItems.powder_iodine_tiny); add1To9Pair(ModItems.powder_sr90, ModItems.powder_sr90_tiny); add1To9Pair(ModItems.powder_co60, ModItems.powder_co60_tiny); - + add1To9Pair(ModItems.powder_au198, ModItems.powder_au198_tiny); + add1To9Pair(ModItems.powder_pb209, ModItems.powder_pb209_tiny); + add1To9Pair(ModItems.powder_at209, ModItems.powder_at209_tiny); + add1To9Pair(ModItems.powder_ac227, ModItems.powder_ac227_tiny); + add1To9Pair(ModItems.powder_radspice, ModItems.powder_radspice_tiny); + add1To9Pair(ModItems.ingot_technetium, ModItems.nugget_technetium); add1To9Pair(ModItems.ingot_arsenic, ModItems.nugget_arsenic); add1To9Pair(ModItems.ingot_co60, ModItems.nugget_co60); @@ -2119,9 +2140,10 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N',TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N',TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold }); addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N',TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_schrabidium), new Object[] { "NBN", "PCP", "NBN", 'N', ModItems.nugget_unobtainium_greater, 'B', SA326.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_americium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_balefire), new Object[] { "NBN", "PCP", "NBN", 'N', ModItems.nugget_radspice, 'B', ModItems.pellet_rtg_balefire, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_schrabidium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_yharonite), new Object[] { "NBN", "PCP", "NBN", 'N', DNT.nugget(), 'B', ModItems.billet_yharonite, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_balefire }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_balefire), new Object[] { "NBN", "PCP", "NBN", 'N', ModItems.nugget_radspice, 'B', ModItems.pellet_rtg_balefire, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_americium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_schrabidium), new Object[] { "NBN", "PCP", "NBN", 'N', ModItems.nugget_unobtainium_greater, 'B', SA326.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_balefire }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_yharonite), new Object[] { "NBN", "PCP", "NBN", 'N', DNT.nugget(), 'B', ModItems.billet_yharonite, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_schrabidium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_electronium), new Object[] { "NBN", "PCP", "NBN", 'N', ModItems.nugget_u238m2, 'B', ModItems.glitch, 'P', ModItems.ingot_electronium, 'C', ModItems.battery_sc_yharonite }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "PGP", "PCP", "PGP", 'G', GOLD.dust(), 'C', ModBlocks.hadron_coil_alloy, 'P', IRON.plate() }); @@ -2197,7 +2219,7 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_inlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', IRON.plate(), 'B', ModItems.tank_steel }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_heater, 1), new Object[] { "CIC", "PRP", "CIC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ModItems.plate_polymer, 'G', ModBlocks.steel_grate }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ANY_RUBBER.ingot(), 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.anvil_iron, 1), new Object[] { "III", " B ", "III", 'I', IRON.ingot(), 'B', IRON.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_lead, 1), new Object[] { "III", " B ", "III", 'I', PB.ingot(), 'B', PB.block() }); @@ -2209,7 +2231,7 @@ public static void reg3(){ //Cladding addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), Items.CLAY_BALL, Items.GLASS_BOTTLE }); - addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', COAL.dust(), 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ANY_RUBBER.ingot(), 'C', COAL.dust(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', PB.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P',ModItems.plate_desh, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_paa, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_desh, 'P', ModItems.plate_paa, 'D', ModItems.ducttape }); @@ -2218,7 +2240,7 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.cladding_di, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_euphemium, 'P', ModItems.plate_dineutronium, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_electronium, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_di, 'P', ModItems.ingot_electronium, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_obsidian, 1), new Object[] { "OOO", "PDP", "OOO", 'O', Blocks.OBSIDIAN, 'P', STEEL.plate(), 'D', ModItems.ducttape }); - addRecipeAuto(new ItemStack(ModItems.cladding_iron, 1), new Object[] { "OOO", "PDP", "OOO", 'O', IRON.plate(), 'P', ModItems.plate_polymer, 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModItems.cladding_iron, 1), new Object[] { "OOO", "PDP", "OOO", 'O', IRON.plate(), 'P', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); //Inserts addRecipeAuto(new ItemStack(ModItems.insert_steel, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', STEEL.block() }); @@ -2226,7 +2248,7 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.insert_ferrouranium, 1), new Object[] { "PIP", "IDI", "PIP", 'D', ModItems.insert_kevlar, 'P', ModItems.ducttape, 'I', FERRO.ingot() }); addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ANY_PLASTICEXPLOSIVE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); @@ -2239,11 +2261,11 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', ALLOY.plate(), 'S', ModItems.servo_set }); //Helmet Mods - addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'F', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'F', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE, 'F', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'F', IRON.plate() }); //Boot Mods - addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ModItems.plate_polymer, 'I', IRON.plate(), 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ANY_RUBBER.ingot(), 'I', IRON.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.pads_slime, 1), new Object[] { "SPS", "DSD", "SPS", 'S', KEY_SLIME, 'P', ModItems.pads_rubber, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.plate(), 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'S', ModItems.pads_slime }); @@ -2265,8 +2287,9 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.black_diamond, 1), new Object[] { "NIN", "IGI", "NIN", 'N',AU198.nugget(), 'I', ModItems.ink, 'G', VOLCANIC.gem() }); addRecipeAuto(new ItemStack(ModItems.protection_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', DIAMOND.gem() }); addRecipeAuto(new ItemStack(ModItems.meteor_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', VOLCANIC.gem() }); + addRecipeAuto(new ItemStack(ModItems.pocket_ptsd, 1), new Object[] { " R ", "PBP", "PSP", 'R', ModBlocks.machine_radar, 'P', ANY_PLASTIC.ingot(), 'B', ModItems.battery_sc_polonium, 'S', ModBlocks.machine_siren }); addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.dust(), Items.CLAY_BALL, Items.GLASS_BOTTLE }); - addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', COAL.dust(), 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ANY_RUBBER.ingot(), 'C', COAL.dust(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', PB.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P',ModItems.plate_desh, 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_desh_battery, 'H', ModBlocks.fusion_heater }); @@ -2308,13 +2331,12 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.piston_pneumatic, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.piston_hydraulic, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)) }); addRecipeAuto(new ItemStack(ModItems.piston_electro, 4), new Object[] { " I ", "CPC", " I ", 'I', ANY_RESISTANTALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); - addRecipeAuto(new ItemStack(ModItems.charge_railgun), new Object[] { "PDP", "DDD", "PDP", 'P', STEEL.plate(), 'D', new IngredientContainsTag(ItemFluidTank.getFullTank(ModForgeFluids.deuterium)) }); addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_canister, 4), new Object[] { " B ", "BAB", " B ", 'B', ModItems.ammo_4gauge_kampf, 'A', ModItems.pellet_canister }); addRecipeAuto(new ItemStack(ModItems.ammo_44_chlorophyte, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_44, 'A', ModItems.pellet_chlorophyte }); - addRecipeAuto(new ItemStack(ModItems.ammo_5mm_chlorophyte, 4), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_5mm, 'A', ModItems.pellet_chlorophyte }); + addRecipeAuto(new ItemStack(ModItems.ammo_5mm_chlorophyte, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_5mm, 'A', ModItems.pellet_chlorophyte }); addRecipeAuto(new ItemStack(ModItems.ammo_9mm_chlorophyte, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_9mm, 'A', ModItems.pellet_chlorophyte }); addRecipeAuto(new ItemStack(ModItems.ammo_22lr_chlorophyte, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_22lr, 'A', ModItems.pellet_chlorophyte }); addRecipeAuto(new ItemStack(ModItems.ammo_50bmg_chlorophyte, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', ModItems.pellet_chlorophyte }); @@ -2381,7 +2403,7 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.hand_drill), new Object[] { " D", "S ", " S", 'D', DURA.ingot(), 'S', Items.STICK }); addRecipeAuto(new ItemStack(ModItems.hand_drill_desh), new Object[] { " D", "S ", " S", 'D', DESH.ingot(), 'S', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PCP", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.cobalt_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter }); + addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PCP", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.cobalt_helmet, 'I', ANY_RUBBER.ingot(), 'F', ModItems.gas_mask_filter }); addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.cobalt_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.cobalt_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.cobalt_boots }); @@ -2435,10 +2457,10 @@ public static void reg3(){ addRecipeAuto(new ItemStack(ModItems.peas), new Object[] { " S ", "SNS", " S ", 'S', Items.WHEAT_SEEDS, 'N', GOLD.nugget() }); //Liquidator Suit - addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "IFI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey, 'F', ModItems.gas_mask_filter_mono }); - addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_canister }); - addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); - addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); + addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "IFI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey, 'F', ModItems.gas_mask_filter_mono }); + addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_canister }); + addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); + addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); addRecipeAuto(new ItemStack(ModItems.gas_mask_filter, 1), new Object[] { "I", "F", 'F', ModItems.filter_coal, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.gas_mask_filter_mono, 1), new Object[] { "ZZZ", "ZCZ", "ZZZ", 'Z', ZR.nugget(), 'C', ModItems.catalyst_clay }); @@ -2842,7 +2864,6 @@ public static void addSmelting(){ GameRegistry.addSmelting(ModItems.powder_desh, new ItemStack(ModItems.ingot_desh), 1.0F); GameRegistry.addSmelting(ModItems.powder_cobalt, new ItemStack(ModItems.ingot_cobalt), 1.0F); GameRegistry.addSmelting(ModItems.powder_schrabidate, new ItemStack(ModItems.ingot_schrabidate), 5.0F); - GameRegistry.addSmelting(ModItems.powder_dineutronium, new ItemStack(ModItems.ingot_dineutronium), 5.0F); GameRegistry.addSmelting(ModItems.powder_asbestos, new ItemStack(ModItems.ingot_asbestos), 1.0F); GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F); GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F); @@ -2854,24 +2875,27 @@ public static void addSmelting(){ GameRegistry.addSmelting(ModItems.powder_astatine, new ItemStack(ModItems.ingot_astatine), 1.0F); GameRegistry.addSmelting(ModItems.powder_ac227, new ItemStack(ModItems.ingot_ac227), 1.0F); GameRegistry.addSmelting(ModItems.powder_co60, new ItemStack(ModItems.ingot_co60), 1.0F); - GameRegistry.addSmelting(ModItems.powder_ra226, new ItemStack(ModItems.ingot_ra226), 1.0F); - GameRegistry.addSmelting(ModItems.powder_sr90, new ItemStack(ModItems.ingot_sr90), 1.0F); GameRegistry.addSmelting(ModItems.powder_bromine, new ItemStack(ModItems.ingot_bromine), 1.0F); - GameRegistry.addSmelting(ModItems.powder_caesium, new ItemStack(ModItems.ingot_caesium), 1.0F); GameRegistry.addSmelting(ModItems.powder_cerium, new ItemStack(ModItems.ingot_cerium), 1.0F); GameRegistry.addSmelting(ModItems.powder_caesium, new ItemStack(ModItems.ingot_caesium), 1.0F); GameRegistry.addSmelting(ModItems.powder_iodine, new ItemStack(ModItems.ingot_iodine), 1.0F); GameRegistry.addSmelting(ModItems.powder_i131, new ItemStack(ModItems.ingot_i131), 1.0F); - GameRegistry.addSmelting(ModItems.powder_lanthanium, new ItemStack(ModItems.ingot_lanthanium), 1.0F); GameRegistry.addSmelting(ModItems.powder_neodymium, new ItemStack(ModItems.ingot_neodymium), 1.0F); GameRegistry.addSmelting(ModItems.powder_pb209, new ItemStack(ModItems.ingot_pb209), 1.0F); GameRegistry.addSmelting(ModItems.powder_ra226, new ItemStack(ModItems.ingot_ra226), 1.0F); GameRegistry.addSmelting(ModItems.powder_strontium, new ItemStack(ModItems.ingot_strontium), 1.0F); GameRegistry.addSmelting(ModItems.powder_sr90, new ItemStack(ModItems.ingot_sr90), 1.0F); GameRegistry.addSmelting(ModItems.powder_tennessine, new ItemStack(ModItems.ingot_tennessine), 1.0F); - GameRegistry.addSmelting(ModItems.powder_caesium, new ItemStack(ModItems.ingot_caesium), 1.0F); GameRegistry.addSmelting(ModItems.powder_niobium, new ItemStack(ModItems.ingot_niobium), 1.0F); - + GameRegistry.addSmelting(ModItems.ball_resin, new ItemStack(ModItems.ingot_biorubber), 0.1F); + + GameRegistry.addSmelting(ModItems.powder_cobalt_tiny, new ItemStack(ModItems.nugget_cobalt), 0.1F); + GameRegistry.addSmelting(ModItems.powder_co60_tiny, new ItemStack(ModItems.nugget_co60), 0.1F); + GameRegistry.addSmelting(ModItems.powder_pb209_tiny, new ItemStack(ModItems.nugget_pb209), 0.1F); + GameRegistry.addSmelting(ModItems.powder_sr90_tiny, new ItemStack(ModItems.nugget_sr90), 0.1F); + GameRegistry.addSmelting(ModItems.powder_au198_tiny, new ItemStack(ModItems.nugget_au198), 0.1F); + GameRegistry.addSmelting(ModItems.powder_radspice_tiny, new ItemStack(ModItems.nugget_radspice), 0.1F); + GameRegistry.addSmelting(ModItems.rag_damp, new ItemStack(ModItems.rag), 0.1F); GameRegistry.addSmelting(ModItems.rag_piss, new ItemStack(ModItems.rag), 0.1F); GameRegistry.addSmelting(ModItems.mask_damp, new ItemStack(ModItems.mask_rag), 0.3F); @@ -2890,7 +2914,6 @@ public static void addSmelting(){ GameRegistry.addSmelting(ModItems.powder_euphemium, new ItemStack(ModItems.ingot_euphemium), 10.0F); GameRegistry.addSmelting(ModItems.powder_dineutronium, new ItemStack(ModItems.ingot_dineutronium), 5.0F); - GameRegistry.addSmelting(ModItems.powder_asbestos, new ItemStack(ModItems.ingot_asbestos), 1.0F); GameRegistry.addSmelting(ModItems.powder_osmiridium, new ItemStack(ModItems.ingot_osmiridium), 10.0F); GameRegistry.addSmelting(ModItems.lodestone, new ItemStack(ModItems.crystal_iron, 1), 5.0F); @@ -2941,8 +2964,6 @@ public static void addSmelting(){ GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F); GameRegistry.addSmelting(ModItems.ball_fireclay, new ItemStack(ModItems.ingot_firebrick, 1), 0.1F); - - } public static void addBedrockOreSmelting(){ diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b8eae63041..b51b2894c7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -7,14 +7,13 @@ import java.util.List; import java.util.Random; -import com.hbm.tileentity.network.TileEntityCraneExtractor; -import com.hbm.tileentity.network.TileEntityCraneInserter; import org.apache.logging.log4j.Logger; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockCrate; import com.hbm.blocks.generic.EntityGrenadeTau; import com.hbm.blocks.network.energy.CableDiode.TileEntityDiode; +import com.hbm.blocks.network.energy.BlockCableGauge.TileEntityCableGauge; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.capability.HbmCapability; import com.hbm.capability.HbmLivingCapability; @@ -48,9 +47,7 @@ import com.hbm.entity.effect.EntityCloudTom; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.effect.EntityFalloutRain; -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityQuasar; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntitySpear; @@ -104,7 +101,7 @@ import com.hbm.entity.logic.EntityDeathBlast; import com.hbm.entity.logic.EntityEMP; import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.EntityNukeExplosionPlus; import com.hbm.entity.logic.EntityTomBlast; import com.hbm.entity.logic.IChunkLoader; @@ -136,6 +133,7 @@ import com.hbm.entity.missile.EntityMissileMicro; import com.hbm.entity.missile.EntityMissileMirv; import com.hbm.entity.missile.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileN2; import com.hbm.entity.missile.EntityMissileRain; import com.hbm.entity.missile.EntityMissileSchrabidium; import com.hbm.entity.missile.EntityMissileStrong; @@ -162,7 +160,6 @@ import com.hbm.entity.particle.EntityChlorineFX; import com.hbm.entity.particle.EntityCloudFX; import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.entity.particle.EntityFogFX; import com.hbm.entity.particle.EntityGasFX; import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.particle.EntityOilSpillFX; @@ -248,6 +245,7 @@ import com.hbm.inventory.StorageDrumRecipes; import com.hbm.inventory.NuclearTransmutationRecipes; import com.hbm.inventory.HeatRecipes; +import com.hbm.inventory.EngineRecipes; import com.hbm.inventory.PressRecipes; import com.hbm.inventory.FluidCombustionRecipes; import com.hbm.inventory.BedrockOreRegistry; @@ -260,6 +258,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.potion.HbmDetox; import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.TileEntityKeypadBase; @@ -283,7 +282,6 @@ import com.hbm.tileentity.bomb.TileEntityNukeMan; import com.hbm.tileentity.bomb.TileEntityNukeMike; import com.hbm.tileentity.bomb.TileEntityNukeN2; -import com.hbm.tileentity.bomb.TileEntityNukeN45; import com.hbm.tileentity.bomb.TileEntityNukePrototype; import com.hbm.tileentity.bomb.TileEntityNukeSolinium; import com.hbm.tileentity.bomb.TileEntityNukeTsar; @@ -291,15 +289,10 @@ import com.hbm.tileentity.network.energy.TileEntityCableBaseNT; import com.hbm.tileentity.network.energy.TileEntityCableSwitch; import com.hbm.tileentity.network.energy.TileEntityMachineDetector; -import com.hbm.tileentity.conductor.TileEntityFFFluidDuct; import com.hbm.tileentity.conductor.TileEntityFFFluidDuctMk2; import com.hbm.tileentity.conductor.TileEntityFFFluidSuccMk2; import com.hbm.tileentity.conductor.TileEntityFFFluidDuctMk2Solid; import com.hbm.tileentity.conductor.TileEntityFFFluidSuccMk2Solid; -import com.hbm.tileentity.conductor.TileEntityFFGasDuct; -import com.hbm.tileentity.conductor.TileEntityFFGasDuctSolid; -import com.hbm.tileentity.conductor.TileEntityFFOilDuct; -import com.hbm.tileentity.conductor.TileEntityFFOilDuctSolid; import com.hbm.tileentity.deco.TileEntityDecoBlock; import com.hbm.tileentity.deco.TileEntityDecoBlockAlt; import com.hbm.tileentity.deco.TileEntityDecoPoleSatelliteReceiver; @@ -353,6 +346,8 @@ import com.hbm.tileentity.turret.TileEntityTurretTauon; import com.hbm.tileentity.network.TileEntityRadioTorchSender; import com.hbm.tileentity.network.TileEntityRadioTorchReceiver; +import com.hbm.tileentity.network.TileEntityCraneExtractor; +import com.hbm.tileentity.network.TileEntityCraneInserter; import com.hbm.world.feature.SchistStratum; import com.hbm.world.generator.CellularDungeonFactory; @@ -522,7 +517,7 @@ public void preInit(FMLPreInitializationEvent event) { polaroidID = rand.nextInt(18) + 1; } - if(SharedMonsterAttributes.MAX_HEALTH.clampValue(Integer.MAX_VALUE) <= 2000) + if(SharedMonsterAttributes.MAX_HEALTH.clampValue(Integer.MAX_VALUE) <= 2000){ try{ @SuppressWarnings("deprecation") Field f = ReflectionHelper.findField(RangedAttribute.class, "maximumValue", "field_111118_b"); @@ -530,8 +525,8 @@ public void preInit(FMLPreInitializationEvent event) { modifiersField.setAccessible(true); modifiersField.setInt(f, f.getModifiers() & ~Modifier.FINAL); f.set(SharedMonsterAttributes.MAX_HEALTH, Integer.MAX_VALUE); - } catch(Exception e){} - + } catch(Throwable e){} + } proxy.checkGLCaps(); reloadConfig(); @@ -605,8 +600,6 @@ public void preInit(FMLPreInitializationEvent event) { aMatDNS.setRepairItem(new ItemStack(ModItems.plate_armor_dnt)); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); - GameRegistry.registerTileEntity(TileEntityCraneExtractor.class, new ResourceLocation(RefStrings.MODID, "tileentity_craneejector")); - GameRegistry.registerTileEntity(TileEntityCraneInserter.class, new ResourceLocation(RefStrings.MODID, "tileentity_craneinserter")); GameRegistry.registerTileEntity(TileEntityDummy.class, new ResourceLocation(RefStrings.MODID, "tileentity_dummy")); GameRegistry.registerTileEntity(TileEntityMachineAssembler.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_assembler")); GameRegistry.registerTileEntity(TileEntityDiFurnace.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_difurnace")); @@ -625,13 +618,13 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityMachineRTG.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_rtg_grey")); GameRegistry.registerTileEntity(TileEntityCableBaseNT.class, new ResourceLocation(RefStrings.MODID, "tileentity_cable")); GameRegistry.registerTileEntity(TileEntityDiode.class, new ResourceLocation(RefStrings.MODID, "tileentity_cable_diode")); + GameRegistry.registerTileEntity(TileEntityCableGauge.class, new ResourceLocation(RefStrings.MODID, "tileentity_cable_gauge")); GameRegistry.registerTileEntity(TileEntityBedrockOre.class, new ResourceLocation(RefStrings.MODID, "tileentity_ore_bedrock")); GameRegistry.registerTileEntity(TileEntityMachineBattery.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_battery")); GameRegistry.registerTileEntity(TileEntityMachineTransformer.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_transformer")); GameRegistry.registerTileEntity(TileEntityConverterHeRf.class, new ResourceLocation(RefStrings.MODID, "tileentity_converter_he_rf")); GameRegistry.registerTileEntity(TileEntityConverterRfHe.class, new ResourceLocation(RefStrings.MODID, "tileentity_converter_rf_he")); GameRegistry.registerTileEntity(TileEntityMachineTurbine.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_turbine")); - GameRegistry.registerTileEntity(TileEntityFFFluidDuct.class, new ResourceLocation(RefStrings.MODID, "tileentity_ff_fluidduct")); GameRegistry.registerTileEntity(TileEntityTurretSpitfire.class, new ResourceLocation(RefStrings.MODID, "tileentity_turret_spitfire")); GameRegistry.registerTileEntity(TileEntityTurretCIWS.class, new ResourceLocation(RefStrings.MODID, "tileentity_turret_ciws")); GameRegistry.registerTileEntity(TileEntityTurretCheapo.class, new ResourceLocation(RefStrings.MODID, "tileentity_turret_cheapo")); @@ -659,10 +652,6 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityDummyFluidPort.class, new ResourceLocation(RefStrings.MODID, "tileentity_dummy_fluid_port")); GameRegistry.registerTileEntity(TileEntityMachineFluidTank.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_fluidtank")); GameRegistry.registerTileEntity(TileEntityCableSwitch.class, new ResourceLocation(RefStrings.MODID, "tileentity_cable_switch")); - GameRegistry.registerTileEntity(TileEntityFFOilDuctSolid.class, new ResourceLocation(RefStrings.MODID, "tileentity_ff_oil_duct_solid")); - GameRegistry.registerTileEntity(TileEntityFFGasDuctSolid.class, new ResourceLocation(RefStrings.MODID, "tileentity_ff_gas_duct_solid")); - GameRegistry.registerTileEntity(TileEntityFFOilDuct.class, new ResourceLocation(RefStrings.MODID, "tileentity_ff_oil_duct")); - GameRegistry.registerTileEntity(TileEntityFFGasDuct.class, new ResourceLocation(RefStrings.MODID, "tileentity_ff_gas_duct")); GameRegistry.registerTileEntity(TileEntityMachineRefinery.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_refinery")); GameRegistry.registerTileEntity(TileEntityMachineCyclotron.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_cyclotron")); GameRegistry.registerTileEntity(TileEntityMachineSchrabidiumTransmutator.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_schrabidium_transmutator")); @@ -693,7 +682,6 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityMachineFrackingTower.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_fracking_tower")); GameRegistry.registerTileEntity(TileEntityMachineCatalyticCracker.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_catalytic_cracker")); GameRegistry.registerTileEntity(TileEntityMachineGasFlare.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_gas_flare")); - GameRegistry.registerTileEntity(TileEntityMachineMiningDrill.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_mining_drill")); GameRegistry.registerTileEntity(TileEntityMachineExcavator.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_excavator")); GameRegistry.registerTileEntity(TileEntityMachineTurbofan.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_turbofan")); GameRegistry.registerTileEntity(TileEntityMachineCMBFactory.class, new ResourceLocation(RefStrings.MODID, "tileentity_machine_cmb_factory")); @@ -722,7 +710,6 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityNukePrototype.class, new ResourceLocation(RefStrings.MODID, "tileentity_nuke_prototype")); GameRegistry.registerTileEntity(TileEntityNukeSolinium.class, new ResourceLocation(RefStrings.MODID, "tileentity_nuke_solinium")); GameRegistry.registerTileEntity(TileEntityNukeN2.class, new ResourceLocation(RefStrings.MODID, "tileentity_nuke_n2")); - GameRegistry.registerTileEntity(TileEntityNukeN45.class, new ResourceLocation(RefStrings.MODID, "tileentity_nuke_n45")); GameRegistry.registerTileEntity(TileEntityNukeCustom.class, new ResourceLocation(RefStrings.MODID, "tileentity_nuke_custom")); GameRegistry.registerTileEntity(TileEntityBombMulti.class, new ResourceLocation(RefStrings.MODID, "tileentity_bomb_multi")); GameRegistry.registerTileEntity(TileEntityCrashedBomb.class, new ResourceLocation(RefStrings.MODID, "tileentity_crashed_bomb")); @@ -848,13 +835,14 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityBMPowerBox.class, new ResourceLocation(RefStrings.MODID, "tileentity_bm_power_box")); GameRegistry.registerTileEntity(TileEntityRadioTorchSender.class, new ResourceLocation(RefStrings.MODID, "tileentity_radio_torch_sender")); GameRegistry.registerTileEntity(TileEntityRadioTorchReceiver.class, new ResourceLocation(RefStrings.MODID, "tileentity_radio_torch_receiver")); + GameRegistry.registerTileEntity(TileEntityCraneExtractor.class, new ResourceLocation(RefStrings.MODID, "tileentity_craneejector")); + GameRegistry.registerTileEntity(TileEntityCraneInserter.class, new ResourceLocation(RefStrings.MODID, "tileentity_craneinserter")); int i = 0; - EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_mk4"), EntityNukeExplosionMK4.class, "entity_nuke_mk4", i++, MainRegistry.instance, 1000, 1, true); - EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuclear_fog"), EntityFogFX.class, "entity_nuclear_fog", i++, MainRegistry.instance, 1000, 1, true); + EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_mk5"), EntityNukeExplosionMK5.class, "entity_nuke_mk5", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_d_smoke_fx"), EntityDSmokeFX.class, "entity_d_smoke_fx", i++, MainRegistry.instance, 1000, 1, true); - EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_cloud_small"), EntityNukeCloudSmall.class, "entity_nuke_cloud_small", i++, this, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_fallout_rain"), EntityFalloutRain.class, "entity_fallout_rain", i++, MainRegistry.instance, 1000, 1, true); + EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_effect_torex"), EntityNukeTorex.class, "entity_effect_torex", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_smoke_fx"), EntitySmokeFX.class, "entity_smoke_fx", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_b_smoke_fx"), EntityBSmokeFX.class, "entity_b_smoke_fx", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_shrapnel"), EntityShrapnel.class, "enity_shrapnel", i++, MainRegistry.instance, 1000, 1, true); @@ -868,7 +856,6 @@ public void preInit(FMLPreInitializationEvent event) { EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuclear_creeper"), EntityNuclearCreeper.class, "entity_nuclear_creeper", i++, MainRegistry.instance, 80, 3, true, 0x3D3D3D, 0xCECECE); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_glowing_one"), EntityGlowingOne.class, "entity_glowing_one", i++, MainRegistry.instance, 1000, 1, true, 0x357C2E, 0x4CFF00); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_ntm_radiation_blaze"), EntityRADBeast.class, "entity_ntm_radiation_blaze", i++, MainRegistry.instance, 1000, 1, true, 0x303030, 0x27F000); - EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_cloud_no"), EntityNukeCloudNoShroom.class, "entity_nuke_cloud_no", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_cloud_fleija"), EntityCloudFleija.class, "entity_cloud_fleija", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_bullet"), EntityBullet.class, "entity_bullet", i++, MainRegistry.instance, 250, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_gasflame_fx"), EntityGasFlameFX.class, "entity_gasflame_fx", i++, MainRegistry.instance, 1000, 1, true); @@ -962,6 +949,7 @@ public void preInit(FMLPreInitializationEvent event) { EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_inferno"), EntityMissileInferno.class, "entity_missile_inferno", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_rain"), EntityMissileRain.class, "entity_missile_rain", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_drill"), EntityMissileDrill.class, "entity_missile_drill", i++, MainRegistry.instance, 1000, 1, true); + EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_n2"), EntityMissileN2.class, "entity_missile_n2", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_nuclear"), EntityMissileNuclear.class, "entity_missile_nuclear", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_mirv"), EntityMissileMirv.class, "entity_missile_mirv", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_missile_endo"), EntityMissileEndo.class, "entity_missile_endo", i++, MainRegistry.instance, 1000, 1, true); @@ -982,7 +970,6 @@ public void preInit(FMLPreInitializationEvent event) { EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_oil_spill"), EntityOilSpill.class, "entity_oil_spill", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_oil_spill_fx"), EntityOilSpillFX.class, "entity_oil_spill_fx", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_clound_solinium"), EntityCloudSolinium.class, "entity_clound_solinium", i++, MainRegistry.instance, 1000, 1, true); - EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_cloud_big"), EntityNukeCloudBig.class, "entity_nuke_cloud_big", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_nuke_explosion_advanced"), EntityNukeExplosionPlus.class, "entity_nuke_explosion_advanced", i++, MainRegistry.instance, 250, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_falling_bomb"), EntityFallingNuke.class, "entity_falling_bomb", i++, MainRegistry.instance, 1000, 1, true); EntityRegistry.registerModEntity(new ResourceLocation(RefStrings.MODID, "entity_custom_missile"), EntityMissileCustom.class, "entity_custom_missile", i++, MainRegistry.instance, 1000, 1, true); @@ -1113,8 +1100,10 @@ public void postInit(FMLPostInitializationEvent event) { StorageDrumRecipes.registerRecipes(); NuclearTransmutationRecipes.registerRecipes(); HeatRecipes.registerHeatRecipes(); + EngineRecipes.registerEngineRecipes(); FluidCombustionRecipes.registerFluidCombustionRecipes(); - + HbmDetox.init(); + FluidContainerRegistry.registerContainer(Item.getItemFromBlock(ModBlocks.lox_barrel), ModItems.tank_steel, new FluidStack(ModForgeFluids.oxygen, 10000)); FluidContainerRegistry.registerContainer(Item.getItemFromBlock(ModBlocks.pink_barrel), ModItems.tank_steel, new FluidStack(ModForgeFluids.kerosene, 10000)); FluidContainerRegistry.registerContainer(Item.getItemFromBlock(ModBlocks.red_barrel), ModItems.tank_steel, new FluidStack(ModForgeFluids.diesel, 10000)); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index f4826d8f7c..130fccf759 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -13,10 +13,11 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.HashSet; import java.util.Map.Entry; import java.util.Random; -import com.hbm.util.I18nUtil; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; @@ -39,6 +40,7 @@ import com.hbm.entity.mob.EntityGlowingOne; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.forgefluid.FFPipeNetwork; +import com.hbm.potion.HbmDetox; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.ArmorUtil; import com.hbm.handler.BossSpawnHandler; @@ -65,6 +67,9 @@ import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; +import com.hbm.util.ArmorRegistry; +import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.packet.AssemblerRecipeSyncPacket; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.KeybindPacket; @@ -88,6 +93,7 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.item.EntityItem; @@ -157,10 +163,12 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; +import net.minecraftforge.event.entity.living.PotionEvent.PotionApplicableEvent; import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.fml.common.eventhandler.Event.Result; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; @@ -211,6 +219,14 @@ public void worldUnload(WorldEvent.Unload e) { } } + @SubscribeEvent + public void potionCheck(PotionApplicableEvent e) { + if(HbmDetox.isBlacklisted(e.getPotionEffect().getPotion()) && ArmorUtil.checkForHazmat(e.getEntityLiving()) && ArmorRegistry.hasProtection(e.getEntityLiving(), EntityEquipmentSlot.HEAD, HazardClass.BACTERIA)){ + e.setResult(Result.DENY); + ArmorUtil.damageGasMaskFilter(e.getEntityLiving(), 10); + } + } + @SubscribeEvent public void enteringChunk(EnteringChunk evt) { if(evt.getEntity() instanceof IChunkLoader) { @@ -297,16 +313,16 @@ public void mobSpawn(LivingSpawnEvent.SpecialSpawn event) { EntityLivingBase entity = event.getEntityLiving(); World world = event.getWorld(); - if(entity instanceof EntityZombie) { + if(entity instanceof EntityLiving) { int randomArmorNumber = rand.nextInt(2<<16); int randomHandNumber = rand.nextInt(256); - EntityZombie zombie = (EntityZombie)entity; - boolean hasMainHand = !zombie.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).isEmpty(); - boolean hasOffHand = !zombie.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND).isEmpty(); - boolean hasHat = !zombie.getItemStackFromSlot(EntityEquipmentSlot.HEAD).isEmpty(); - boolean hasChest = !zombie.getItemStackFromSlot(EntityEquipmentSlot.CHEST).isEmpty(); - boolean hasLegs = !zombie.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); - boolean hasFeet = !zombie.getItemStackFromSlot(EntityEquipmentSlot.FEET).isEmpty(); + EntityLiving mob = (EntityLiving)entity; + boolean hasMainHand = !mob.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).isEmpty(); + boolean hasOffHand = !mob.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND).isEmpty(); + boolean hasHat = !mob.getItemStackFromSlot(EntityEquipmentSlot.HEAD).isEmpty(); + boolean hasChest = !mob.getItemStackFromSlot(EntityEquipmentSlot.CHEST).isEmpty(); + boolean hasLegs = !mob.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); + boolean hasFeet = !mob.getItemStackFromSlot(EntityEquipmentSlot.FEET).isEmpty(); if(!hasHat){ if(rand.nextInt(64) == 0) @@ -317,48 +333,48 @@ public void mobSpawn(LivingSpawnEvent.SpecialSpawn event) { entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.mask_of_infamy, 1, world.rand.nextInt(100))); } if(!(hasHat || hasChest || hasLegs || hasFeet)){ - if(randomArmorNumber == 0){ + if(randomArmorNumber < 2<<1){ //1:16384 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.dns_helmet, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.dns_plate, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.dns_legs, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.dns_boots, 1)); } - if(randomArmorNumber <= 2<<6){ + else if(randomArmorNumber < 2<<6){ //1:1024 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.rpa_helmet, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.rpa_plate, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.rpa_legs, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.rpa_boots, 1)); } - else if(randomArmorNumber <= 2<<8){ + else if(randomArmorNumber < 2<<8){ //1:256 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.ajr_helmet, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.ajr_plate, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.ajr_legs, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.ajr_boots, 1)); } - else if(randomArmorNumber <= 2<<10){ + else if(randomArmorNumber < 2<<10){ //1:64 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.t45_helmet, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.t45_plate, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.t45_legs, 1)); entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.t45_boots, 1)); } - else if(randomArmorNumber <= 2<<11){ + else if(randomArmorNumber < 2<<11){ //1:32 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.hazmat_helmet, 1, world.rand.nextInt(ModItems.hazmat_helmet.getMaxDamage(ItemStack.EMPTY)))); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.hazmat_plate, 1, world.rand.nextInt(ModItems.hazmat_helmet.getMaxDamage(ItemStack.EMPTY)))); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.hazmat_legs, 1, world.rand.nextInt(ModItems.hazmat_helmet.getMaxDamage(ItemStack.EMPTY)))); entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.hazmat_boots, 1, world.rand.nextInt(ModItems.hazmat_helmet.getMaxDamage(ItemStack.EMPTY)))); } - else if(randomArmorNumber <= 2<<12){ - entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.titanium_helmet, 1, world.rand.nextInt(ModItems.titanium_helmet.getMaxDamage(ItemStack.EMPTY)))); - entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.titanium_plate, 1, world.rand.nextInt(ModItems.titanium_plate.getMaxDamage(ItemStack.EMPTY)))); - entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.titanium_legs, 1, world.rand.nextInt(ModItems.titanium_legs.getMaxDamage(ItemStack.EMPTY)))); - entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.titanium_boots, 1, world.rand.nextInt(ModItems.titanium_boots.getMaxDamage(ItemStack.EMPTY)))); + else if(randomArmorNumber < 2<<12){ //1:16 + entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.alloy_helmet, 1, world.rand.nextInt(ModItems.alloy_helmet.getMaxDamage(ItemStack.EMPTY)))); + entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.alloy_plate, 1, world.rand.nextInt(ModItems.alloy_plate.getMaxDamage(ItemStack.EMPTY)))); + entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.alloy_legs, 1, world.rand.nextInt(ModItems.alloy_legs.getMaxDamage(ItemStack.EMPTY)))); + entity.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ModItems.alloy_boots, 1, world.rand.nextInt(ModItems.alloy_boots.getMaxDamage(ItemStack.EMPTY)))); } - else if(randomArmorNumber <= 2<<13){ + else if(randomArmorNumber < 2<<13){ //1:8 entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.steel_helmet, 1, world.rand.nextInt(ModItems.steel_helmet.getMaxDamage(ItemStack.EMPTY)))); entity.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ModItems.steel_plate, 1, world.rand.nextInt(ModItems.steel_plate.getMaxDamage(ItemStack.EMPTY)))); entity.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ModItems.steel_legs, 1, world.rand.nextInt(ModItems.steel_legs.getMaxDamage(ItemStack.EMPTY)))); @@ -384,7 +400,7 @@ else if(randomHandNumber == 6) else if(randomHandNumber == 7) entity.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.golf_club, 1, world.rand.nextInt(300))); else if(randomHandNumber == 8) - entity.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.titanium_sword, 1, world.rand.nextInt(300))); + entity.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.alloy_sword, 1, world.rand.nextInt(300))); else if(randomHandNumber == 9) entity.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.steel_sword, 1, world.rand.nextInt(300))); else if(randomHandNumber == 10) @@ -399,27 +415,16 @@ else if(randomHandNumber == 12) if(rand.nextInt(128) == 0) entity.setItemStackToSlot(EntityEquipmentSlot.OFFHAND, new ItemStack(ModItems.geiger_counter, 1)); } - - } else if(entity instanceof EntitySkeleton) { - EntitySkeleton skelli = (EntitySkeleton)entity; - boolean hasHat = !skelli.getItemStackFromSlot(EntityEquipmentSlot.HEAD).isEmpty(); - if(!hasHat){ - if(rand.nextInt(16) == 0) { - entity.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ModItems.gas_mask_m65, 1, world.rand.nextInt(100))); - } - } - boolean hasMainHand = !skelli.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).isEmpty(); - if(!hasMainHand){ - if(rand.nextInt(32) == 0) { - entity.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.syringe_poison)); - } - } } } } - private static final String hash = "cce6b36fbaa6ec2327c1af5cbcadc4e2d340738ab9328c459365838e79d12e5e"; - + private static final Set hashes = new HashSet(); + + static { + hashes.add("41de5c372b0589bbdb80571e87efa95ea9e34b0d74c6005b8eab495b7afd9994"); + hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036"); + } @SubscribeEvent public void onClickSign(PlayerInteractEvent event) { @@ -434,7 +439,7 @@ public void onClickSign(PlayerInteractEvent event) { String result = smoosh(sign.signText[0].getUnformattedText(), sign.signText[1].getUnformattedText(), sign.signText[2].getUnformattedText(), sign.signText[3].getUnformattedText()); //System.out.println(result); - if(result.equals(hash)){ + if(hashes.contains(result)){ world.destroyBlock(pos, false); EntityItem entityitem = new EntityItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(ModItems.bobmazon_hidden)); entityitem.setPickupDelay(10); @@ -762,12 +767,6 @@ public void onLivingDeath(LivingDeathEvent event) { } if(event.getEntity().getUniqueID().toString().equals(Library.Alcater)) { - if(event.getSource() instanceof EntityDamageSource){ - if(((EntityDamageSource)event.getSource()).getImmediateSource() instanceof EntityLivingBase){ - EntityLivingBase attacker = (EntityLivingBase) ((EntityDamageSource)event.getSource()).getImmediateSource(); - ContaminationUtil.contaminate(attacker, HazardType.RADIATION, ContaminationType.CREATIVE, 690F); - } - } event.getEntity().entityDropItem(new ItemStack(ModItems.bottle_rad).setStackDisplayName("§aAlcater's §2Neo §aNuka§r"), 0.5F); } @@ -988,15 +987,6 @@ public void onEntityJump(LivingJumpEvent event) { public void blockBreak(BlockEvent.BreakEvent event){ if(event.isCancelable() && event.isCanceled()) return; - /*PacketDispatcher.wrapper.sendToAll(new PacketCreatePhysTree(e.getPos().up())); - Set blocks = new HashSet<>(); - BlockPos pos = e.getPos().up(); - int recurse = PacketCreatePhysTree.recurseFloodFill(pos, 0, blocks); - if(recurse > 0){ - for(BlockPos b : blocks){ - e.getWorld().setBlockToAir(b); - } - }*/ if(!(event.getPlayer() instanceof EntityPlayerMP)) return; @@ -1015,7 +1005,7 @@ public void blockBreak(BlockEvent.BreakEvent event){ } } } - + @SubscribeEvent public void clientJoinServer(PlayerLoggedInEvent e) { if(e.player instanceof EntityPlayerMP){ @@ -1024,19 +1014,20 @@ public void clientJoinServer(PlayerLoggedInEvent e) { JetpackHandler.playerLoggedIn(e); IHBMData props = HbmCapability.getData(e.player); - PacketDispatcher.sendTo(new KeybindPacket(EnumKeybind.TOGGLE_HEAD, props.getEnableHUD()), playerMP); PacketDispatcher.sendTo(new KeybindPacket(EnumKeybind.TOGGLE_JETPACK, props.getEnableBackpack()), playerMP); - + PacketDispatcher.sendTo(new KeybindPacket(EnumKeybind.TOGGLE_HEAD, props.getEnableHUD()), playerMP); + if (GeneralConfig.enableWelcomeMessage) { e.player.sendMessage(new TextComponentTranslation(TextFormatting.DARK_AQUA + I18nUtil.resolveKey("chat.welcome")+"§r")); } if(HTTPHandler.newVersion && GeneralConfig.changelog) { - e.player.sendMessage(new TextComponentString(TextFormatting.GREEN + I18nUtil.resolveKey("chat.newver1") + TextFormatting.YELLOW + I18nUtil.resolveKey("chat.newver2") + "§3" + HTTPHandler.versionNumber + TextFormatting.YELLOW + I18nUtil.resolveKey("chat.newver3")+"§r")); - e.player.sendMessage(new TextComponentString(TextFormatting.YELLOW + I18nUtil.resolveKey("chat.curver1") +"§7" + RefStrings.VERSION + TextFormatting.YELLOW + I18nUtil.resolveKey("chat.curver2")+"§r")); + e.player.sendMessage(new TextComponentString(TextFormatting.GREEN + I18nUtil.resolveKey("chat.newver", HTTPHandler.versionNumber)+"§r")); + e.player.sendMessage(new TextComponentString(TextFormatting.YELLOW + I18nUtil.resolveKey("chat.curver", RefStrings.VERSION)+"§r")); + if(HTTPHandler.changes != ""){ String[] lines = HTTPHandler.changes.split("\\$"); - e.player.sendMessage(new TextComponentString(TextFormatting.GOLD + "["+I18nUtil.resolveKey("chat.newfeat")+"]"+"§r"));//RefStrings.CHANGELOG + e.player.sendMessage(new TextComponentString("§6[New Features]§r"));//RefStrings.CHANGELOG for(String w: lines){ e.player.sendMessage(new TextComponentString(w));//RefStrings.CHANGELOG } @@ -1054,6 +1045,11 @@ public void clientJoinServer(PlayerLoggedInEvent e) { } } + @SubscribeEvent + public void worldLoad(WorldEvent.Load e) { + JetpackHandler.worldLoad(e); + } + @SubscribeEvent public void worldSave(WorldEvent.Save e) { JetpackHandler.worldSave(e); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4db90fcf45..3652260423 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -16,6 +16,8 @@ import org.lwjgl.opengl.GL20; import org.lwjgl.util.glu.Project; +import baubles.api.BaublesApi; + import com.google.common.collect.Queues; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; @@ -109,11 +111,8 @@ import com.hbm.render.item.FluidTankRender; import com.hbm.render.item.ItemRenderBase; import com.hbm.render.item.ItemRenderLibrary; -import com.hbm.render.item.ItemRendererBedrockOre; import com.hbm.render.item.TEISRBase; import com.hbm.render.item.weapon.B92BakedModel; -import com.hbm.render.item.weapon.GunRevolverBakedModel; -import com.hbm.render.item.weapon.GunRevolverRender; import com.hbm.render.item.weapon.ItemRedstoneSwordRender; import com.hbm.render.item.weapon.ItemRenderGunAnim; import com.hbm.render.item.weapon.ItemRenderGunEgon; @@ -135,6 +134,7 @@ import com.hbm.sound.MovingSoundPlayerLoop; import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import com.hbm.sound.MovingSoundXVL1456; +import com.hbm.sound.MovingSoundRadarLoop; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; @@ -287,7 +287,7 @@ public void registerModels(ModelRegistryEvent event) { } public static void registerBedrockOreModels(){ - ResourceLocation[] list = new ResourceLocation[150]; + ResourceLocation[] list = new ResourceLocation[300]; for(int i = 0; i < list.length; i++) { ModelLoader.setCustomModelResourceLocation(ModItems.ore_bedrock, i, new ModelResourceLocation(ModItems.ore_bedrock.getRegistryName(), "inventory")); ModelLoader.setCustomModelResourceLocation(ModItems.ore_bedrock_centrifuged, i, new ModelResourceLocation(ModItems.ore_bedrock_centrifuged.getRegistryName(), "inventory")); @@ -489,7 +489,7 @@ public void modelBaking(ModelBakeEvent evt) { swapModelsNoGui(ModItems.gun_immolator, reg); swapModelsNoGui(ModItems.gun_osipr, reg); swapModelsNoGui(ModItems.gun_emp, reg); - swapModelsNoGui(ModItems.gun_revolver_inverted, reg); + swapModels(ModItems.gun_revolver_inverted, reg); swapModelsNoGui(ModItems.gun_lever_action_sonata, reg); swapModelsNoGui(ModItems.gun_bolt_action_saturnite, reg); swapModelsNoGui(ModItems.gun_folly, reg); @@ -1089,7 +1089,7 @@ public void inputUpdate(InputUpdateEvent e) { @SubscribeEvent(priority = EventPriority.LOWEST) public void setNTMSkybox(ClientTickEvent event){ - if(event.phase == Phase.START) { + if(event.phase == Phase.START && GeneralConfig.enableSkybox) { World world = Minecraft.getMinecraft().world; @@ -1300,20 +1300,7 @@ public void renderWorld(RenderWorldLastEvent evt) { Tessellator.instance.draw(); GL11.glPopMatrix(); - }/* else { - //Drillgon200: Used for testing the closetPointonBB method - AxisAlignedBB bb = new AxisAlignedBB(RenderPress.pos.x, RenderPress.pos.y, RenderPress.pos.z, RenderPress.pos.x+1, RenderPress.pos.y+1, RenderPress.pos.z+1); - Vec3d pos = Library.closestPointOnBB(bb, new Vec3d(0, entity.getEyeHeight(), 0), entity.getLookVec().scale(20).addVector(0, entity.getEyeHeight(), 0)); - GL11.glPushMatrix(); - GlStateManager.translate(pos.x, pos.y, pos.z); - RenderHelper.bindTexture(ResourceManager.universal); - Tessellator.instance.startDrawing(GL11.GL_TRIANGLES); - ResourceManager.n45_chain.tessellateAll(Tessellator.instance); - Tessellator.instance.draw(); - GL11.glPopMatrix(); - }*/ - - + } int dist = 300; int x = 0; @@ -1644,6 +1631,16 @@ public void preRenderEvent(RenderLivingEvent.Pre event) { } } + public boolean hasBauble(EntityPlayer player, Item bauble){ + try{ + if(BaublesApi.isBaubleEquipped(player, bauble) != -1){ + return true; + } + } catch(Throwable t){ + } + return false; + } + @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { EntityPlayer player = Minecraft.getMinecraft().player; @@ -1672,14 +1669,14 @@ public void onOverlayRender(RenderGameOverlayEvent.Pre event) { /// HANDLE GEIGER COUNTER AND JETPACK HUD /// if(event.getType() == ElementType.HOTBAR) { if(!(ArmorFSB.hasFSBArmorHelmet(player) && ((ArmorFSB)player.inventory.armorInventory.get(3).getItem()).customGeiger)) { - if(Library.hasInventoryItem(player.inventory, ModItems.geiger_counter)) { + if(Library.hasInventoryItem(player.inventory, ModItems.geiger_counter) || hasBauble(player, ModItems.geiger_counter)) { float rads = (float)Library.getEntRadCap(player).getRads(); RenderScreenOverlay.renderRadCounter(event.getResolution(), rads, Minecraft.getMinecraft().ingameGUI); } } - if(Library.hasInventoryItem(player.inventory, ModItems.digamma_diagnostic)) { + if(Library.hasInventoryItem(player.inventory, ModItems.digamma_diagnostic) || hasBauble(player, ModItems.digamma_diagnostic)) { float digamma = (float)Library.getEntRadCap(player).getDigamma(); @@ -1885,7 +1882,7 @@ public void onPlaySound(PlaySoundEvent e) { // Conglaturations. // Fuck you. - if(r.toString().equals("hbm:misc.nullTau") && Library.getClosestPlayerForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { + if(r.toString().equals("hbm:misc.nulltau") && Library.getClosestPlayerForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { EntityPlayer ent = Library.getClosestPlayerForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2); if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop) == null) { @@ -1896,8 +1893,15 @@ public void onPlaySound(PlaySoundEvent e) { MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() + 0.01F); } } + if(r.toString().equals("hbm:misc.nullradar") && Library.getClosestPlayerForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { + EntityPlayer ent = Library.getClosestPlayerForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2); + if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundRadarLoop) == null) { + MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundRadarLoop(HBMSoundHandler.alarmAirRaid, SoundCategory.PLAYERS, ent, EnumHbmSound.soundRadarLoop)); + MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundRadarLoop).setVolume(1.0F); + } + } - if(r.toString().equals("hbm:misc.nullChopper") && Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { + if(r.toString().equals("hbm:misc.nullchopper") && Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2); if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundChopperLoop) == null) { @@ -1906,7 +1910,7 @@ public void onPlaySound(PlaySoundEvent e) { } } - if(r.toString().equals("hbm:misc.nullCrashing") && Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { + if(r.toString().equals("hbm:misc.nullcrashing") && Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2); if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundCrashingLoop) == null) { @@ -1915,7 +1919,7 @@ public void onPlaySound(PlaySoundEvent e) { } } - if(r.toString().equals("hbm:misc.nullMine") && Library.getClosestMineForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { + if(r.toString().equals("hbm:misc.nullmine") && Library.getClosestMineForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2) != null) { EntityChopperMine ent = Library.getClosestMineForSound(wc, e.getSound().getXPosF(), e.getSound().getYPosF(), e.getSound().getZPosF(), 2); if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundMineLoop) == null) { @@ -2083,5 +2087,4 @@ public void renderFrame(RenderItemInFrameEvent event) { GlStateManager.enableLighting(); } } - } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index e4331524a4..5c30d75784 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -128,11 +128,11 @@ public class ResourceManager { public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); //Missiles - public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); - public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); - public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); + public static final IModelCustom missileAB = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")); + public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")); + public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")); + public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); - public static final IModelCustom missileMIRV = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileMIRV.obj")); public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); public static final IModelCustom missileTaint = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileTaint.obj")); @@ -222,10 +222,6 @@ public class ResourceManager { //Magnusson Device public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); - //Mining Drill - public static final IModelCustom drill_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_main.obj")); - public static final IModelCustom drill_bolt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_bolt.obj")); - //Cables public static final IModelCustom cable_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/cable_neo.obj")); @@ -352,21 +348,17 @@ public class ResourceManager { //Bombs public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); - public static final IModelCustom n45_globe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_globe.obj")); - public static final IModelCustom n45_knob = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_knob.obj")); - public static final IModelCustom n45_rod = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_rod.obj")); - public static final IModelCustom n45_stand = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_stand.obj")); public static final WavefrontObject n45_chain = new WavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_chain.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")); - public static final IModelCustom bomb_gadget = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); - public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); - public static final IModelCustom bomb_man = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")); - public static final IModelCustom bomb_mike = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/IvyMike.obj")); - public static final IModelCustom bomb_tsar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TsarBomba.obj")); - public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj")); - public static final IModelCustom bomb_fleija = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Fleija.obj")); - public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); - public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")); + public static final IModelCustom bomb_gadget = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")); + public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/LilBoy.obj")); + public static final IModelCustom bomb_man = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/FatMan.obj")); + public static final IModelCustom bomb_mike = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/IvyMike.obj")); + public static final IModelCustom bomb_tsar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")); + public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")); + public static final IModelCustom bomb_fleija = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/Fleija.obj")); + public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/BombGeneric.obj")); + public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/BalefireCrashed.obj")); //Landmines public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); @@ -459,9 +451,9 @@ public class ResourceManager { public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png"); public static final ResourceLocation mini_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_nuke.png"); - public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); - public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); - public static final IModelCustom rbmk_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")); + public static final WavefrontObject rbmk_element = (WavefrontObject)AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); + public static final WavefrontObject rbmk_reflector = (WavefrontObject)AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); + public static final WavefrontObject rbmk_rods = (WavefrontObject)AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")); public static final IModelCustom rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")); public static final IModelCustom rbmk_debris = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")); public static final ResourceLocation rbmk_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_control.png"); @@ -483,9 +475,8 @@ public class ResourceManager { public static final IModelCustom solar_mirror = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj")); //Radar - public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); - public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); - + public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar.obj")); + //ITER public static final ResourceLocation iter_glass = new ResourceLocation(RefStrings.MODID, "textures/models/iter/glass.png"); public static final ResourceLocation iter_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/microwave.png"); @@ -523,8 +514,8 @@ public class ResourceManager { new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensus/fensu_black.png") }; - public static final ResourceLocation jshotgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/jade_shotgun.png"); - public static final ResourceLocation jshotgun_lmap = new ResourceLocation(RefStrings.MODID, "textures/models/jade_shotgun_lmap.png"); + public static final ResourceLocation jshotgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/jade_shotgun.png"); + public static final ResourceLocation jshotgun_lmap = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/jade_shotgun_lmap.png"); //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); @@ -535,7 +526,8 @@ public class ResourceManager { public static final IModelCustom stopsign = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/stopsign.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")); - + + // Control panel public static final IModelCustom control_panel_custom = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/control_panel/control_panel_custom.obj")); public static final IModelCustom control_panel_front = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/control_panel/control_panel_front.obj")); @@ -579,7 +571,8 @@ public class ResourceManager { public static final ResourceLocation ctrl_dial_large_gui_tex = new ResourceLocation(RefStrings.MODID, "textures/models/control_panel/dial_large_gui.png"); //Textures TEs - public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + + public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/misc/universaldark.png"); //Freons Turrets Textures public static final ResourceLocation turret_flamethower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/freons/turret_flamethower.png"); @@ -589,14 +582,14 @@ public class ResourceManager { public static final ResourceLocation turret_rocket_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/freons/turret_rocket_launcher.png"); //Old turrets - public static final ResourceLocation turret_ciws_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_base.png"); - public static final ResourceLocation turret_ciws_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_rotor.png"); - public static final ResourceLocation turret_ciws_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_head.png"); - public static final ResourceLocation turret_ciws_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_gun.png"); - public static final ResourceLocation turret_cheapo_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_base.png"); - public static final ResourceLocation turret_cheapo_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_rotor.png"); - public static final ResourceLocation turret_cheapo_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_head.png"); - public static final ResourceLocation turret_cheapo_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_gun.png"); + public static final ResourceLocation turret_ciws_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/cwis_base.png"); + public static final ResourceLocation turret_ciws_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/cwis_rotor.png"); + public static final ResourceLocation turret_ciws_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/cwis_head.png"); + public static final ResourceLocation turret_ciws_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/cwis_gun.png"); + public static final ResourceLocation turret_cheapo_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/turret_cheapo_base.png"); + public static final ResourceLocation turret_cheapo_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/turret_cheapo_rotor.png"); + public static final ResourceLocation turret_cheapo_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/turret_cheapo_head.png"); + public static final ResourceLocation turret_cheapo_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/turret_cheapo_gun.png"); public static final ResourceLocation turret_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base.png"); public static final ResourceLocation turret_base_friendly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base_friendly.png"); @@ -624,20 +617,20 @@ public class ResourceManager { public static final ResourceLocation brandon_explosive = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/brandon_drum.png"); //Landmines - public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png"); - public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png"); - public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); - public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); + public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/mine_ap.png"); + public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/mine_he.png"); + public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/mine_shrap.png"); + public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/mine_fat.png"); //Derrick - public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/derrick.png"); + public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png"); //Pumpjack - public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pumpjack.png"); - public static final ResourceLocation fracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fracking_tower.png"); + public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pumpjack.png"); + public static final ResourceLocation fracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fracking_tower.png"); //Refinery - public static final ResourceLocation refinery_tex = new ResourceLocation(RefStrings.MODID, "textures/models/refinery.png"); + public static final ResourceLocation refinery_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/refinery.png"); public static final ResourceLocation fraction_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fraction_tower.png"); public static final ResourceLocation fraction_spacer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fraction_spacer.png"); public static final ResourceLocation cracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cracking_tower.png"); @@ -646,7 +639,7 @@ public class ResourceManager { public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); //Tank - public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); + public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tank.png"); public static final ResourceLocation tank_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank/tank_NONE.png"); public static final ResourceLocation bat9000_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/bat9000.png"); public static final ResourceLocation orbus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/orbus.png"); @@ -694,29 +687,29 @@ public class ResourceManager { public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); public static final ResourceLocation furnace_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_steel.png"); //Selenium Engine - public static final ResourceLocation selenium_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_body.png"); - public static final ResourceLocation selenium_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_piston.png"); - public static final ResourceLocation selenium_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_rotor.png"); + public static final ResourceLocation selenium_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/selenium_engine_body.png"); + public static final ResourceLocation selenium_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/selenium_engine_piston.png"); + public static final ResourceLocation selenium_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/selenium_engine_rotor.png"); //Press - public static final ResourceLocation press_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_body.png"); - public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_head.png"); - public static final ResourceLocation epress_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_body.png"); - public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_head.png"); + public static final ResourceLocation press_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/press_body.png"); + public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/press_head.png"); + public static final ResourceLocation epress_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/epress_body.png"); + public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/epress_head.png"); - public static final ResourceLocation bm_box_lever_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bm_box_lever.png"); + public static final ResourceLocation bm_box_lever_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/bm_box_lever.png"); //Assembler - public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_base_new.png"); - public static final ResourceLocation assembler_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_cog_new.png"); - public static final ResourceLocation assembler_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_slider_new.png"); - public static final ResourceLocation assembler_arm_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_arm_new.png"); + public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembler_base_new.png"); + public static final ResourceLocation assembler_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembler_cog_new.png"); + public static final ResourceLocation assembler_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembler_slider_new.png"); + public static final ResourceLocation assembler_arm_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembler_arm_new.png"); //Chemplant - public static final ResourceLocation chemplant_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_base_new.png"); - public static final ResourceLocation chemplant_spinner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_spinner_new.png"); - public static final ResourceLocation chemplant_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_piston_new.png"); - public static final ResourceLocation chemplant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lavabase_small.png"); + public static final ResourceLocation chemplant_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemplant_base_new.png"); + public static final ResourceLocation chemplant_spinner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemplant_spinner_new.png"); + public static final ResourceLocation chemplant_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemplant_piston_new.png"); + public static final ResourceLocation chemplant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lavabase_small.png"); public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png"); //Mixer @@ -724,22 +717,18 @@ public class ResourceManager { public static final ResourceLocation mixer_uu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer_uu.png"); //F6 TANKS - public static final ResourceLocation uf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/UF6Tank.png"); - public static final ResourceLocation puf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/PUF6Tank.png"); + public static final ResourceLocation uf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/UF6Tank.png"); + public static final ResourceLocation puf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/PUF6Tank.png"); //Centrifuge - public static final ResourceLocation centrifuge_new_tex = new ResourceLocation(RefStrings.MODID, "textures/models/centrifuge_new.png"); - public static final ResourceLocation centrifuge_gas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/centrifuge_gas.png"); + public static final ResourceLocation centrifuge_new_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/centrifuge_new.png"); + public static final ResourceLocation centrifuge_gas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/centrifuge_gas.png"); public static final ResourceLocation silex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/silex.png"); public static final ResourceLocation fel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fel.png"); //Magnusson Device public static final ResourceLocation microwave_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/microwave.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"); - //Laser Miner public static final ResourceLocation mining_laser_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_base.png"); public static final ResourceLocation mining_laser_pivot_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_pivot.png"); @@ -773,82 +762,77 @@ public class ResourceManager { public static final ResourceLocation rtg_polonium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_polonium.png"); //Anti Mass Spectrometer - public static final ResourceLocation ams_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_base.png"); - public static final ResourceLocation ams_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_emitter.png"); - public static final ResourceLocation ams_limiter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_limiter.png"); - public static final ResourceLocation ams_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_destroyed.png"); + public static final ResourceLocation ams_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ams_base.png"); + public static final ResourceLocation ams_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ams_emitter.png"); + public static final ResourceLocation ams_limiter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ams_limiter.png"); + public static final ResourceLocation ams_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ams_destroyed.png"); //Dark Matter Core - public static final ResourceLocation dfc_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_emitter.png"); - public static final ResourceLocation dfc_receiver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_receiver.png"); - public static final ResourceLocation dfc_injector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_injector.png"); - public static final ResourceLocation dfc_stabilizer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_stabilizer.png"); + public static final ResourceLocation dfc_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/core_emitter.png"); + public static final ResourceLocation dfc_receiver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/core_receiver.png"); + public static final ResourceLocation dfc_injector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/core_injector.png"); + public static final ResourceLocation dfc_stabilizer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/core_stabilizer.png"); //Radgen - public static final ResourceLocation radgen_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/rad_gen_body.png"); + public static final ResourceLocation radgen_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rad_gen_body.png"); //Small Reactor - public static final ResourceLocation reactor_small_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_base.png"); - public static final ResourceLocation reactor_small_rods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_rods.png"); + public static final ResourceLocation reactor_small_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/reactor_small_base.png"); + public static final ResourceLocation reactor_small_rods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/reactor_small_rods.png"); //Breeder public static final ResourceLocation breeder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/breeder.png"); //Radar - public static final ResourceLocation radar_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_base.png"); - public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); - + public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/radar_base.png"); + public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/radar_dish.png"); + //Forcefield - public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_base.png"); - public static final ResourceLocation forcefield_top_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_top.png"); + public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/forcefield_base.png"); + public static final ResourceLocation forcefield_top_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/forcefield_top.png"); //Bombs public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ufp.png"); public static final ResourceLocation n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n2.png"); - public static final ResourceLocation n45_globe_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_globe.png"); - public static final ResourceLocation n45_knob_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_knob.png"); - public static final ResourceLocation n45_rod_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_rod.png"); - public static final ResourceLocation n45_stand_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_stand.png"); - public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png"); public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png"); - public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_tex.png"); - public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lilboy.png"); - public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); - public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/IvyMike.png"); - public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TsarBomba.png"); - public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Prototype.png"); - public static final ResourceLocation bomb_fleija_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Fleija.png"); - public static final ResourceLocation bomb_custom_tex = new ResourceLocation(RefStrings.MODID, "textures/models/CustomNuke.png"); - public static final ResourceLocation bomb_multi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/BombGeneric.png"); - public static final ResourceLocation dud_tex = new ResourceLocation(RefStrings.MODID, "textures/models/BalefireCrashed.png"); + public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/gadget.png"); + public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/lilboy.png"); + public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/FatMan.png"); + public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/IvyMike.png"); + public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/Tsar.png"); + public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/Prototype.png"); + public static final ResourceLocation bomb_fleija_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/Fleija.png"); + public static final ResourceLocation bomb_custom_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/CustomNuke.png"); + public static final ResourceLocation bomb_multi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/BombGeneric.png"); + public static final ResourceLocation dud_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/BalefireCrashed.png"); //Satellites - public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png"); - public static final ResourceLocation sat_radar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_radar.png"); - public static final ResourceLocation sat_resonator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_resonator.png"); - public static final ResourceLocation sat_scanner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_scanner.png"); - public static final ResourceLocation sat_mapper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_mapper.png"); - public static final ResourceLocation sat_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_laser.png"); - public static final ResourceLocation sat_foeq_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq.png"); - public static final ResourceLocation sat_foeq_burning_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq_burning.png"); + public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_base.png"); + public static final ResourceLocation sat_radar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_radar.png"); + public static final ResourceLocation sat_resonator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_resonator.png"); + public static final ResourceLocation sat_scanner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_scanner.png"); + public static final ResourceLocation sat_mapper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_mapper.png"); + public static final ResourceLocation sat_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_laser.png"); + public static final ResourceLocation sat_foeq_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat/sat_foeq.png"); + public static final ResourceLocation sat_foeq_burning_tex = new ResourceLocation(RefStrings.MODID, "textures/sat/models/sat_foeq_burning.png"); //SatDock - public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_dock.png"); + public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/sat_dock.png"); //Vault Door - public static final ResourceLocation vault_cog_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog_1.png"); - public static final ResourceLocation vault_cog_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog_2.png"); - public static final ResourceLocation vault_cog_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog_3.png"); - public static final ResourceLocation vault_cog_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog_4.png"); - public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png"); - public static final ResourceLocation vault_label_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_1.png"); - public static final ResourceLocation vault_label_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_2.png"); - public static final ResourceLocation vault_label_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_3.png"); - public static final ResourceLocation vault_label_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_4.png"); - public static final ResourceLocation vault_label_5_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_5.png"); - public static final ResourceLocation vault_label_6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_6.png"); - public static final ResourceLocation vault_label_7_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_7.png"); - public static final ResourceLocation vault_label_8_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_8.png"); + public static final ResourceLocation vault_cog_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_cog_1.png"); + public static final ResourceLocation vault_cog_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_cog_2.png"); + public static final ResourceLocation vault_cog_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_cog_3.png"); + public static final ResourceLocation vault_cog_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_cog_4.png"); + public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_frame.png"); + public static final ResourceLocation vault_label_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_1.png"); + public static final ResourceLocation vault_label_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_2.png"); + public static final ResourceLocation vault_label_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_3.png"); + public static final ResourceLocation vault_label_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_4.png"); + public static final ResourceLocation vault_label_5_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_5.png"); + public static final ResourceLocation vault_label_6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_6.png"); + public static final ResourceLocation vault_label_7_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_7.png"); + public static final ResourceLocation vault_label_8_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/vault/vault_label_8.png"); //Solar Tower @@ -856,16 +840,16 @@ public class ResourceManager { public static final ResourceLocation solar_mirror_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_mirror.png"); //Blast Door - public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_base.png"); - public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_tooth.png"); - public static final ResourceLocation blast_door_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_slider.png"); - public static final ResourceLocation blast_door_block_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_block.png"); + public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/blast/blast_door_base.png"); + public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/blast/blast_door_tooth.png"); + public static final ResourceLocation blast_door_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/blast/blast_door_slider.png"); + public static final ResourceLocation blast_door_block_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/blast/blast_door_block.png"); //Sliding Blast Door - public static final ResourceLocation sliding_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sliding_blast_door.png"); - public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sliding_blast_door_variant1.png"); - public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sliding_blast_door_variant2.png"); - public static final ResourceLocation sliding_blast_door_keypad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sliding_blast_door_keypad.png"); + public static final ResourceLocation sliding_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/sliding_blast_door.png"); + public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/sliding_blast_door_variant1.png"); + public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/sliding_blast_door_variant2.png"); + public static final ResourceLocation sliding_blast_door_keypad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/sliding_blast_door_keypad.png"); //Doors public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); @@ -882,10 +866,10 @@ public class ResourceManager { public static final ResourceLocation sliding_gate_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_gate_door.png"); //Silo hatch - public static final ResourceLocation hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/hatchtexture.png"); + public static final ResourceLocation hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/hatchtexture.png"); //Tesla Coil - public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tesla.png"); + public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tesla.png"); public static final ResourceLocation teslacrab_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/teslacrab.png"); public static final ResourceLocation taintcrab_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/taintcrab.png"); public static final ResourceLocation maskman_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/maskman.png"); @@ -900,8 +884,8 @@ public class ResourceManager { ////Texture Items //Shimmer Sledge - public static final ResourceLocation shimmer_sledge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/shimmer_sledge.png"); - public static final ResourceLocation shimmer_axe_tex = new ResourceLocation(RefStrings.MODID, "textures/models/shimmer_axe.png"); + public static final ResourceLocation shimmer_sledge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tools/shimmer_sledge.png"); + public static final ResourceLocation shimmer_axe_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tools/shimmer_axe.png"); public static final ResourceLocation stopsign_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stopsign.png"); public static final ResourceLocation sopsign_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sopsign.png"); public static final ResourceLocation chernobylsign_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chernobylsign.png"); @@ -916,7 +900,7 @@ public class ResourceManager { public static final ResourceLocation hs_sword_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hs_sword.png"); public static final ResourceLocation hf_sword_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hf_sword.png"); - public static final ResourceLocation brimstone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/brimstone.png"); + public static final ResourceLocation brimstone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/brimstone.png"); public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png"); public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png"); public static final ResourceLocation ks23_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ks23.png"); @@ -980,7 +964,7 @@ public class ResourceManager { public static final ResourceLocation dnt_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/dnt_arm.png"); public static final ResourceLocation hat = new ResourceLocation(RefStrings.MODID, "textures/armor/hat.png"); - public static final ResourceLocation goggles = new ResourceLocation(RefStrings.MODID, "textures/armor/goggles.png"); + public static final ResourceLocation goggles = new ResourceLocation(RefStrings.MODID, "textures/armor/goggle_glasses.png"); public static final ResourceLocation mod_tesla = new ResourceLocation(RefStrings.MODID, "textures/armor/mod_tesla.png"); public static final ResourceLocation wings_murk = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_murk.png"); public static final ResourceLocation wings_bob = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_bob.png"); @@ -1014,66 +998,18 @@ public class ResourceManager { public static final ResourceLocation spinny_light_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/spinnylight.png"); //Blast - public static final ResourceLocation fireball_0 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_0.png"); - public static final ResourceLocation fireball_1 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_1.png"); - public static final ResourceLocation fireball_2 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_2.png"); - public static final ResourceLocation fireball_3 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_3.png"); - public static final ResourceLocation fireball_4 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_4.png"); - public static final ResourceLocation fireball_5 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_5.png"); - public static final ResourceLocation fireball_6 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_6.png"); - public static final ResourceLocation fireball_7 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_7.png"); - public static final ResourceLocation fireball_8 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_8.png"); - public static final ResourceLocation fireball_9 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_9.png"); - public static final ResourceLocation fireball_10 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball/fireball_10.png"); - - public static final ResourceLocation fireball_0_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_0.png"); - public static final ResourceLocation fireball_1_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_1.png"); - public static final ResourceLocation fireball_2_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_2.png"); - public static final ResourceLocation fireball_3_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_3.png"); - public static final ResourceLocation fireball_4_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_4.png"); - public static final ResourceLocation fireball_5_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_5.png"); - public static final ResourceLocation fireball_6_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_6.png"); - public static final ResourceLocation fireball_7_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_7.png"); - public static final ResourceLocation fireball_8_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_8.png"); - public static final ResourceLocation fireball_9_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_9.png"); - public static final ResourceLocation fireball_10_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball_lightmap/fireball_10.png"); - - public static final ResourceLocation balefire_0 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_0.png"); - public static final ResourceLocation balefire_1 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_1.png"); - public static final ResourceLocation balefire_2 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_2.png"); - public static final ResourceLocation balefire_3 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_3.png"); - public static final ResourceLocation balefire_4 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_4.png"); - public static final ResourceLocation balefire_5 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_5.png"); - public static final ResourceLocation balefire_6 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_6.png"); - public static final ResourceLocation balefire_7 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_7.png"); - public static final ResourceLocation balefire_8 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_8.png"); - public static final ResourceLocation balefire_9 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_9.png"); - public static final ResourceLocation balefire_10 = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire/balefire_10.png"); - - public static final ResourceLocation balefire_0_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_0.png"); - public static final ResourceLocation balefire_1_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_1.png"); - public static final ResourceLocation balefire_2_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_2.png"); - public static final ResourceLocation balefire_3_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_3.png"); - public static final ResourceLocation balefire_4_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_4.png"); - public static final ResourceLocation balefire_5_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_5.png"); - public static final ResourceLocation balefire_6_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_6.png"); - public static final ResourceLocation balefire_7_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_7.png"); - public static final ResourceLocation balefire_8_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_8.png"); - public static final ResourceLocation balefire_9_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_9.png"); - public static final ResourceLocation balefire_10_e = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire_lightmap/balefire_10.png"); - public static final ResourceLocation tomblast = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tomblast.png"); public static final ResourceLocation dust = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/dust.png"); //Boxcar - public static final ResourceLocation boxcar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/boxcar.png"); - public static final ResourceLocation boxcar_tex_flipv = new ResourceLocation(RefStrings.MODID, "textures/models/boxcarflipv.png"); - public static final ResourceLocation duchessgambit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/duchessgambit.png"); + public static final ResourceLocation boxcar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/misc/boxcar.png"); + public static final ResourceLocation boxcar_tex_flipv = new ResourceLocation(RefStrings.MODID, "textures/models/misc/boxcarflipv.png"); + public static final ResourceLocation duchessgambit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/misc/duchessgambit.png"); public static final ResourceLocation building_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/building.png"); - public static final ResourceLocation rpc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/rpc.png"); - public static final ResourceLocation tom_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_main.png"); - public static final ResourceLocation tom_flame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_flame.png"); - public static final ResourceLocation tom_flame_o_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tom_flame_o.png"); + public static final ResourceLocation rpc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/rpc.png"); + public static final ResourceLocation tom_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tom_main.png"); + public static final ResourceLocation tom_flame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tom_flame.png"); + public static final ResourceLocation tom_flame_o_tex = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tom_flame_o.png"); public static final ResourceLocation bobkotium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/misc/bobkotium.png"); public static final ResourceLocation bfg_ring_4 = new ResourceLocation(RefStrings.MODID, "textures/models/bfg/ring3_lighter.png"); @@ -1105,47 +1041,48 @@ public class ResourceManager { public static final ResourceLocation flechette_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/flechette.png"); //Bomber - public static final ResourceLocation dornier_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_0.png"); - public static final ResourceLocation dornier_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_1.png"); - public static final ResourceLocation dornier_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_2.png"); - public static final ResourceLocation dornier_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_3.png"); - public static final ResourceLocation dornier_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_4.png"); - public static final ResourceLocation b29_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_0.png"); - public static final ResourceLocation b29_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_1.png"); - public static final ResourceLocation b29_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_2.png"); - public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_3.png"); + public static final ResourceLocation dornier_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/dornier_0.png"); + public static final ResourceLocation dornier_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/dornier_1.png"); + public static final ResourceLocation dornier_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/dornier_2.png"); + public static final ResourceLocation dornier_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/dornier_3.png"); + public static final ResourceLocation dornier_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/dornier_4.png"); + public static final ResourceLocation b29_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/b29_0.png"); + public static final ResourceLocation b29_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/b29_1.png"); + public static final ResourceLocation b29_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/b29_2.png"); + public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/planes/b29_3.png"); //Missiles - public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_HE.png"); - public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); - public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); - public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); - public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); - public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); - public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); - public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); - public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png"); - public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png"); - public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_HE.png"); - public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_IN.png"); - public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_CL.png"); - public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_BU.png"); - public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); - public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); - public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); - public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileEndo.png"); - public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileExo.png"); - public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); - public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroTaint.png"); - public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicro.png"); - public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); - public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); - public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket.png"); - public static final ResourceLocation minerRocketGerald_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket_gerald.png"); - public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bobmazon.png"); - public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); - public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); - public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); + public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_V2.png"); + public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_V2_INC.png"); + public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_V2_CL.png"); + public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_V2_BU.png"); + public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_abm.png"); + public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Strong.png"); + public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Strong_INC.png"); + public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Strong_CL.png"); + public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Strong_BU.png"); + public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Strong_EMP.png"); + public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Huge.png"); + public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Huge_INC.png"); + public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Huge_CL.png"); + public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missile_Huge_BU.png"); + public static final ResourceLocation missileN2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileN2.png"); + public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileNeon.png"); + public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileNeonV.png"); + public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileNeonH.png"); + public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileEndo.png"); + public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileExo.png"); + public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileDoomsday.png"); + public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileMicroTaint.png"); + public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileMicro.png"); + public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileCarrier.png"); + public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileBooster.png"); + public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/minerRocket.png"); + public static final ResourceLocation minerRocketGerald_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/minerRocket_gerald.png"); + public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/bobmazon.png"); + public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileMicroBHole.png"); + public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileMicroSchrab.png"); + public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missiles/missileMicroEMP.png"); public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png"); public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png"); @@ -1199,10 +1136,10 @@ public class ResourceManager { public static final ResourceLocation soyuz_launcher_support_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_support.png"); //Missile Parts - public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missilePad.png"); - public static final ResourceLocation missile_assembly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_assembly.png"); - public static final ResourceLocation strut_tex = new ResourceLocation(RefStrings.MODID, "textures/models/strut.png"); - public static final ResourceLocation compact_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/compact_launcher.png"); + public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/missilePad.png"); + public static final ResourceLocation missile_assembly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/missile_assembly.png"); + public static final ResourceLocation strut_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/strut.png"); + public static final ResourceLocation compact_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/compact_launcher.png"); public static final ResourceLocation launch_table_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table.png"); public static final ResourceLocation launch_table_large_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table_large_pad.png"); public static final ResourceLocation launch_table_small_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table_small_pad.png"); @@ -1340,18 +1277,18 @@ public class ResourceManager { public static final ResourceLocation mp_w_15_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_mirv.png"); //Keypad - public static final ResourceLocation keypad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/keypad.png"); - public static final ResourceLocation keypad_error_tex = new ResourceLocation(RefStrings.MODID, "textures/models/keypad_error.png"); - public static final ResourceLocation keypad_success_tex = new ResourceLocation(RefStrings.MODID, "textures/models/keypad_success.png"); + public static final ResourceLocation keypad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/keypad.png"); + public static final ResourceLocation keypad_error_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/keypad_error.png"); + public static final ResourceLocation keypad_success_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/slidingblast/keypad_success.png"); //SSG public static final ResourceLocation x_marker = new ResourceLocation(RefStrings.MODID, "textures/misc/x.png"); public static final ResourceLocation meathook_marker = new ResourceLocation(RefStrings.MODID, "textures/misc/meathook.png"); //PLASMA RAILGUN - public static final ResourceLocation railgun_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/railgun_base.png"); - public static final ResourceLocation railgun_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/railgun_rotor.png"); - public static final ResourceLocation railgun_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/railgun_main.png"); + public static final ResourceLocation railgun_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/railgun_base.png"); + public static final ResourceLocation railgun_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/railgun_rotor.png"); + public static final ResourceLocation railgun_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/railgun_main.png"); public static final IModelCustom railgun_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/railgun_base.obj")); public static final IModelCustom railgun_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/railgun_rotor.obj")); public static final IModelCustom railgun_main = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/railgun_main.obj")); @@ -1410,13 +1347,11 @@ public class ResourceManager { //Book public static ResourceLocation circle_big = new ResourceLocation(RefStrings.MODID, "textures/misc/circle_big.png"); - public static ResourceLocation jetpack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/jetpack_anim.png"); + public static ResourceLocation jetpack_tex = new ResourceLocation(RefStrings.MODID, "textures/armor/jetpack_anim.png"); public static ResourceLocation jetpack_hud_large = new ResourceLocation(RefStrings.MODID, "textures/gui/hud/jetpack_hud_large.png"); public static ResourceLocation jetpack_hud_small = new ResourceLocation(RefStrings.MODID, "textures/gui/hud/jetpack_hud_small.png"); public static ResourceLocation jetpack_hud_small_text = new ResourceLocation(RefStrings.MODID, "textures/gui/hud/jetpack_hud_small_text.png"); - public static ResourceLocation skin = new ResourceLocation(RefStrings.MODID, "textures/models/ducc_st_engineer.png"); - //ANIMATIONS public static AnimatedModel supershotgun; public static Animation ssg_reload; diff --git a/src/main/java/com/hbm/main/temp.java b/src/main/java/com/hbm/main/temp.java deleted file mode 100644 index 4e68b894ac..0000000000 --- a/src/main/java/com/hbm/main/temp.java +++ /dev/null @@ -1,3871 +0,0 @@ -package com.hbm.main; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.forgefluid.ModForgeFluids; -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; -import com.hbm.items.machine.ItemFluidTank; -import com.hbm.items.special.ItemCell; -import com.hbm.items.tool.ItemFluidCanister; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Enchantments; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidUtil; - -@Spaghetti("death") -public class temp { - - //Drillgon200: Why do I even still have this class? I'm afraid to delete it in case it actually is used for something though. - - public enum EnumAssemblyTemplate { - - IRON_PLATE, - GOLD_PLATE, - TITANIUM_PLATE, - ALUMINIUM_PLATE, - STEEL_PLATE, - LEAD_PLATE, - COPPER_PLATE, - ADVANCED_PLATE, - SCHRABIDIUM_PLATE, - CMB_PLATE, - SATURN_PLATE, - MIXED_PLATE, - ALUMINIUM_WIRE, - COPPER_WIRE, - TUNGSTEN_WIRE, - REDCOPPER_WIRE, - ADVANCED_WIRE, - GOLD_WIRE, - SCHRABIDIUM_WIRE, - MAGNETIZED_WIRE, - HAZMAT_CLOTH, - ASBESTOS_CLOTH, - COAL_FILTER, - CENTRIFUGE_ELEMENT, - CENTRIFUGE_TOWER, - DEE_MAGNET, - FLAT_MAGNET, - CYCLOTRON_TOWER, - REACTOR_CORE, - RTG_UNIT, - HEAT_UNIT, - GRAVITY_UNIT, - TITANIUM_DRILL, - TELEPAD, TELEKIT, - GEASS_REACTOR, - MISSILE_ASSEMBLY, - CARRIER, - WT1_GENERIC, - WT2_GENERIC, - WT3_GENERIC, - WT1_FIRE, - WT2_FIRE, - WT3_FIRE, - WT1_CLUSTER, - WT2_CLUSTER, - WT3_CLUSTER, - WT1_BUSTER, - WT2_BUSTER, - WT3_BUSTER, - W_NUCLEAR, - W_MIRVLET, - W_MIRV, - W_ENDOTHERMIC, - W_EXOTHERMIC, - T1_TANK, - T2_TANK, - T3_TANK, - T1_THRUSTER, - T2_THRUSTER, - T3_THRUSTER, - NUCLEAR_THRUSTER, - SAT_BASE, - SAT_MAPPER, - SAT_SCANNER, - SAT_RADAR, - SAT_LASER, - SAT_RESONATOR, - SAT_FOEQ, - SAT_MINER, - CHOPPER_HEAD, - CHOPPER_GUN, - CHOPPER_BODY, - CHOPPER_TAIL, - CHOPPER_WING, - CHOPPER_BLADES, - CIRCUIT_1, - CIRCUIT_2, - CIRCUIT_3, - RTG_PELLET, - WEAK_PELLET, - FUSION_PELLET, - CLUSTER_PELLETS, - GUN_PELLETS, - AUSTRALIUM_MACHINE, - MAGNETRON, - W_SP, - W_SHE, - W_SME, - W_SLE, - W_B, - W_N, - W_L, - W_A, - UPGRADE_TEMPLATE, - UPGRADE_RED_I, - UPGRADE_RED_II, - UPGRADE_RED_III, - UPGRADE_GREEN_I, - UPGRADE_GREEN_II, - UPGRADE_GREEN_III, - UPGRADE_BLUE_I, - UPGRADE_BLUE_II, - UPGRADE_BLUE_III, - UPGRADE_PURPLE_I, - UPGRADE_PURPLE_II, - UPGRADE_PURPLE_III, - UPGRADE_PINK_I, - UPGRADE_PINK_II, - UPGRADE_PINK_III, - UPGRADE_RANGE, - UPGRADE_HEALTH, - UPGRADE_OVERDRIVE_I(200, Arrays.asList( - new ItemStack(ModItems.upgrade_speed_3, 4), - new ItemStack(ModItems.upgrade_effect_3, 2), - new ItemStack(ModItems.ingot_desh, 8), - new ItemStack(ModItems.powder_power, 16), - new ItemStack(ModItems.crystal_lithium, 4), - new ItemStack(ModItems.circuit_schrabidium, 4)), - new ItemStack(ModItems.upgrade_overdrive_1)), - UPGRADE_OVERDRIVE_II(400, Arrays.asList( - new ItemStack(ModItems.upgrade_overdrive_1, 1), - new ItemStack(ModItems.upgrade_afterburn_1, 1), - new ItemStack(ModItems.upgrade_speed_3, 2), - new ItemStack(ModItems.upgrade_effect_3, 2), - new ItemStack(ModItems.ingot_saturnite, 12), - new ItemStack(ModItems.powder_nitan_mix, 16), - new ItemStack(ModItems.crystal_starmetal, 6), - new ItemStack(ModItems.circuit_schrabidium, 6)), - new ItemStack(ModItems.upgrade_overdrive_2)), - UPGRADE_OVERDRIVE_III(800, Arrays.asList( - new ItemStack(ModItems.upgrade_overdrive_2, 1), - new ItemStack(ModItems.upgrade_afterburn_1, 1), - new ItemStack(ModItems.upgrade_speed_3, 2), - new ItemStack(ModItems.upgrade_effect_3, 2), - new ItemStack(ModItems.ingot_desh, 8), - new ItemStack(ModItems.powder_power, 16), - new ItemStack(ModItems.crystal_lithium, 4), - new ItemStack(ModItems.circuit_schrabidium, 4)), - new ItemStack(ModItems.upgrade_overdrive_3)), - FUSE, - REDCOIL_CAPACITOR, - TITANIUM_FILTER, - LITHIUM_BOX, - BERYLLIUM_BOX, - COAL_BOX, - COPPER_BOX, - PLUTONIUM_BOX, - THERMO_ELEMENT, - ANGRY_METAL, - METEOR_BLOCK, - CMB_TILE, - CMB_BRICKS, - HATCH_FRAME, - HATCH_CONTROLLER, - BLAST_DOOR, - SLIDING_DOOR, - CENTRIFUGE, - CENTRIFUGE_GAS, - BREEDING_REACTOR, - RTG_FURNACE, - RAD_GEN, - DIESEL_GENERATOR, - SELENIUM_GENERATOR, - NUCLEAR_GENERATOR, - CYCLOTRON, - RT_GENERATOR, - BATTERY, - BATTERY_L, - BATTERY_S, - BATTERY_D, - //HE_TO_RF, - //RF_TO_HE, - SHREDDER, - DERRICK, - PUMPJACK, - FLARE_STACK, - REFINERY, - EPRESS, - CHEMPLANT, - CRYSTALLIZER(400, Arrays.asList( - new ItemStack(ModItems.hull_big_steel, 4), - new ItemStack(ModItems.pipes_steel, 4), - new ItemStack(ModItems.ingot_desh, 4), - new ItemStack(ModItems.motor, 2), - new ItemStack(ModItems.blades_advanced_alloy, 2), - new ItemStack(ModItems.ingot_steel, 16), - new ItemStack(ModItems.plate_titanium, 16), - new ItemStack(Blocks.GLASS, 4), - new ItemStack(ModItems.circuit_gold, 1)), - new ItemStack(ModBlocks.machine_crystallizer)), - TANK, - MINER, - MININGLASER, - TURBOFAN, - TELEPORTER, - SCHRABTRANS, - CMB_FURNACE, - FA_HULL, - FA_HATCH, - FA_CORE, - FA_PORT, - LR_ELEMENT, - LR_CONTROL, - LR_HATCH, - LR_PORT, - LR_CORE, - LF_MAGNET, - LF_CENTER, - LF_MOTOR, - LF_HEATER, - LF_HATCH, - LF_CORE, - LW_ELEMENT, - LW_CONTROL, - LW_COOLER, - LW_STRUTURE, - LW_HATCH, - LW_PORT, - LW_CORE, - FW_PORT, - FW_MAGNET, - FW_COMPUTER, - FW_CORE, - GADGET, - LITTLE_BOY, - FAT_MAN, - IVY_MIKE, - TSAR_BOMB, - PROTOTYPE, - FLEIJA, - SOLINIUM, - N2, - FSTBMB(600, Arrays.asList( - new ItemStack(ModItems.sphere_steel, 1), - new ItemStack(ModItems.hull_big_titanium, 6), - new ItemStack(ModItems.fins_big_steel, 1), - new ItemStack(ModItems.powder_magic, 8), - new ItemStack(ModItems.wire_gold, 12), - new ItemStack(ModItems.circuit_targeting_tier4, 4), - new ItemStack(Items.DYE, 6, 8)), - new ItemStack(ModBlocks.nuke_fstbmb)), - CUSTOM_NUKE, - BOMB_LEV, - BOMB_ENDO, - BOMB_EXO, - LAUNCH_PAD, - HUNTER_CHOPPER, - TURRET_LIGHT, - TURRET_HEAVY, - TURRET_ROCKET, - TURRET_FLAMER, - TURRET_TAU, - TURRET_SPITFIRE, - TURRET_CIWS, - TURRET_CHEAPO, - MISSILE_HE_1, - MISSILE_FIRE_1, - MISSILE_CLUSTER_1, - MISSILE_BUSTER_1, - MISSILE_HE_2, - MISSILE_FIRE_2, - MISSILE_CLUSTER_2, - MISSILE_BUSTER_2, - MISSILE_HE_3, - MISSILE_FIRE_3, - MISSILE_CLUSTER_3, - MISSILE_BUSTER_3, - MISSILE_NUCLEAR, - MISSILE_MIRV, - MISSILE_ENDO, - MISSILE_EXO, - DEFAB, - MINI_NUKE, - MINI_MIRV, - DARK_PLUG, - COMBINE_BALL, - GRENADE_FLAME, - GRENADE_SHRAPNEL, - GRENAGE_CLUSTER, - GREANADE_FLARE, - GRENADE_LIGHTNING, - GRENADE_IMPULSE, - GRENADE_PLASMA, - GRENADE_TAU, - GRENADE_SCHRABIDIUM, - GRENADE_NUKE, - GRENADE_ZOMG, - GRENADE_BLACK_HOLE, - POWER_FIST, - GADGET_PROPELLANT, - GADGET_WIRING, - GADGET_CORE, - BOY_SHIELDING, - BOY_TARGET, - BOY_BULLET, - BOY_PRPELLANT, - BOY_IGNITER, - MAN_PROPELLANT, - MAN_IGNITER, - MAN_CORE, - MIKE_TANK, - MIKE_DEUT, - MIKE_COOLER, - FLEIJA_IGNITER, - FLEIJA_CORE, - FLEIJA_PROPELLANT, - SOLINIUM_IGNITER, - SOLINIUM_CORE, - SOLINIUM_PROPELLANT, - SCHRABIDIUM_HAMMER, - COMPONENT_LIMITER, - COMPONENT_EMITTER, - AMS_LIMITER, - AMS_EMITTER, - RADAR, - FORCEFIELD, - RAILGUN(500, Arrays.asList( - new ItemStack(ModItems.plate_steel, 24), - new ItemStack(ModItems.hull_big_steel, 2), - new ItemStack(ModItems.hull_small_steel, 6), - new ItemStack(ModItems.pipes_steel, 2), - new ItemStack(ModBlocks.machine_lithium_battery, 4), - new ItemStack(ModItems.coil_copper, 16), - new ItemStack(ModItems.coil_copper_torus, 8), - new ItemStack(ModItems.plate_desh, 4), - new ItemStack(ModItems.circuit_targeting_tier4, 4), - new ItemStack(ModItems.circuit_targeting_tier3, 2), - new ItemStack(ModItems.ingot_polymer, 4)), - new ItemStack(ModBlocks.railgun_plasma)), - - MP_T_10_KEROSENE(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.pipes_steel, 1), - new ItemStack(ModItems.ingot_tungsten, 4), - new ItemStack(ModItems.plate_steel, 4)), - new ItemStack(ModItems.mp_thruster_10_kerosene)), - MP_T_10_SOLID(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.coil_tungsten, 1), - new ItemStack(ModItems.ingot_dura_steel, 4), - new ItemStack(ModItems.plate_steel, 4)), - new ItemStack(ModItems.mp_thruster_10_solid)), - MP_T_10_XENON(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 4), - new ItemStack(ModItems.pipes_steel, 2), - new ItemStack(ModItems.arc_electrode, 4)), - new ItemStack(ModItems.mp_thruster_10_xenon)), - MP_T_15_KEROSENE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.pipes_steel, 4), - new ItemStack(ModItems.ingot_tungsten, 8), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_desh, 4)), - new ItemStack(ModItems.mp_thruster_15_kerosene)), - MP_T_15_KEROSENE_TWIN(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.pipes_steel, 2), - new ItemStack(ModItems.ingot_tungsten, 4), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_desh, 1)), - new ItemStack(ModItems.mp_thruster_15_kerosene_dual)), - MP_T_15_KEROSENE_TRIPLE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.pipes_steel, 3), - new ItemStack(ModItems.ingot_tungsten, 6), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_desh, 2)), - new ItemStack(ModItems.mp_thruster_15_kerosene_triple)), - MP_T_15_SOLID(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_dura_steel, 6), - new ItemStack(ModItems.coil_tungsten, 3)), - new ItemStack(ModItems.mp_thruster_15_solid)), - MP_T_15_SOLID_HEXDECUPLE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_dura_steel, 12), - new ItemStack(ModItems.coil_tungsten, 6)), - new ItemStack(ModItems.mp_thruster_15_solid_hexdecuple)), - MP_T_15_HYDROGEN(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.pipes_steel, 4), - new ItemStack(ModItems.ingot_tungsten, 8), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.tank_steel, 1), - new ItemStack(ModItems.ingot_desh, 4)), - new ItemStack(ModItems.mp_thruster_15_hydrogen)), - MP_T_15_HYDROGEN_TWIN(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.pipes_steel, 2), - new ItemStack(ModItems.ingot_tungsten, 4), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.tank_steel, 1), - new ItemStack(ModItems.ingot_desh, 1)), - new ItemStack(ModItems.mp_thruster_15_hydrogen_dual)), - MP_T_15_BALEFIRE_SHORT(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_polymer, 8), - new ItemStack(ModBlocks.reactor_element, 1), - new ItemStack(ModItems.ingot_desh, 8), - new ItemStack(ModItems.plate_saturnite, 12), - new ItemStack(ModItems.board_copper, 2), - new ItemStack(ModItems.ingot_uranium_fuel, 4), - new ItemStack(ModItems.pipes_steel, 2)), - new ItemStack(ModItems.mp_thruster_15_balefire_short)), - MP_T_15_BALEFIRE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_polymer, 16), - new ItemStack(ModBlocks.reactor_element, 2), - new ItemStack(ModItems.ingot_desh, 16), - new ItemStack(ModItems.plate_saturnite, 24), - new ItemStack(ModItems.board_copper, 4), - new ItemStack(ModItems.ingot_uranium_fuel, 8), - new ItemStack(ModItems.pipes_steel, 2)), - new ItemStack(ModItems.mp_thruster_15_balefire)), - MP_T_15_BALEFIRE_LARGE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_polymer, 16), - new ItemStack(ModBlocks.reactor_element, 2), - new ItemStack(ModItems.ingot_desh, 24), - new ItemStack(ModItems.plate_saturnite, 32), - new ItemStack(ModItems.board_copper, 4), - new ItemStack(ModItems.ingot_uranium_fuel, 8), - new ItemStack(ModItems.pipes_steel, 2)), - new ItemStack(ModItems.mp_thruster_15_balefire_large)), - MP_T_20_KEROSENE(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.pipes_steel, 8), - new ItemStack(ModItems.ingot_tungsten, 16), - new ItemStack(ModItems.plate_steel, 12), - new ItemStack(ModItems.ingot_desh, 8)), - new ItemStack(ModItems.mp_thruster_20_kerosene)), - MP_T_20_KEROSENE_TWIN(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.pipes_steel, 4), - new ItemStack(ModItems.ingot_tungsten, 8), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_desh, 4)), - new ItemStack(ModItems.mp_thruster_20_kerosene_dual)), - MP_T_20_KEROSENE_TRIPLE(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.pipes_steel, 6), - new ItemStack(ModItems.ingot_tungsten, 12), - new ItemStack(ModItems.plate_steel, 8), - new ItemStack(ModItems.ingot_desh, 6)), - new ItemStack(ModItems.mp_thruster_20_kerosene_triple)), - MP_T_20_SOLID(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.coil_tungsten, 8), - new ItemStack(ModItems.ingot_dura_steel, 16), - new ItemStack(ModItems.plate_steel, 12)), - new ItemStack(ModItems.mp_thruster_20_solid)), - MP_T_20_SOLID_MULTI(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.coil_tungsten, 12), - new ItemStack(ModItems.ingot_dura_steel, 18), - new ItemStack(ModItems.plate_steel, 12)), - new ItemStack(ModItems.mp_thruster_20_solid_multi)), - MP_T_20_SOLID_MULTIER(500, Arrays.asList( - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModItems.coil_tungsten, 16), - new ItemStack(ModItems.ingot_dura_steel, 20), - new ItemStack(ModItems.plate_steel, 12)), - new ItemStack(ModItems.mp_thruster_20_solid_multier)), - - MP_F_10_KEROSENE(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 2), - new ItemStack(ModBlocks.steel_scaffold, 3), - new ItemStack(ModItems.plate_titanium, 12), - new ItemStack(ModItems.plate_steel, 3)), - new ItemStack(ModItems.mp_fuselage_10_kerosene)), - MP_F_10_SOLID(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 2), - new ItemStack(ModBlocks.steel_scaffold, 3), - new ItemStack(ModItems.plate_titanium, 12), - new ItemStack(ModItems.plate_aluminium, 3)), - new ItemStack(ModItems.mp_fuselage_10_solid)), - MP_F_10_XENON(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 2), - new ItemStack(ModBlocks.steel_scaffold, 3), - new ItemStack(ModItems.plate_titanium, 12), - new ItemStack(ModItems.board_copper, 3)), - new ItemStack(ModItems.mp_fuselage_10_xenon)), - MP_F_10_KEROSENE_LONG(200, Arrays.asList( - new ItemStack(ModItems.seg_10, 2), - new ItemStack(ModBlocks.steel_scaffold, 6), - new ItemStack(ModItems.plate_titanium, 24), - new ItemStack(ModItems.plate_steel, 6)), - new ItemStack(ModItems.mp_fuselage_10_long_kerosene)), - MP_F_10_SOLID_LONG(200, Arrays.asList( - new ItemStack(ModItems.seg_10, 2), - new ItemStack(ModBlocks.steel_scaffold, 6), - new ItemStack(ModItems.plate_titanium, 24), - new ItemStack(ModItems.plate_aluminium, 6)), - new ItemStack(ModItems.mp_fuselage_10_long_solid)), - MP_F_10_15_KEROSENE(300, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModBlocks.steel_scaffold, 9), - new ItemStack(ModItems.plate_titanium, 36), - new ItemStack(ModItems.plate_steel, 9)), - new ItemStack(ModItems.mp_fuselage_10_15_kerosene)), - MP_F_10_15_SOLID(300, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModBlocks.steel_scaffold, 9), - new ItemStack(ModItems.plate_titanium, 36), - new ItemStack(ModItems.plate_aluminium, 9)), - new ItemStack(ModItems.mp_fuselage_10_15_solid)), - MP_F_10_15_HYDROGEN(300, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModBlocks.steel_scaffold, 9), - new ItemStack(ModItems.plate_titanium, 36), - new ItemStack(ModItems.plate_iron, 9)), - new ItemStack(ModItems.mp_fuselage_10_15_hydrogen)), - MP_F_10_15_BALEFIRE(300, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModBlocks.steel_scaffold, 9), - new ItemStack(ModItems.plate_titanium, 36), - new ItemStack(ModItems.plate_saturnite, 9)), - new ItemStack(ModItems.mp_fuselage_10_15_balefire)), - MP_F_15_KEROSENE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 2), - new ItemStack(ModBlocks.steel_scaffold, 12), - new ItemStack(ModItems.plate_titanium, 48), - new ItemStack(ModItems.plate_steel, 12)), - new ItemStack(ModItems.mp_fuselage_15_kerosene)), - MP_F_15_SOLID(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 2), - new ItemStack(ModBlocks.steel_scaffold, 12), - new ItemStack(ModItems.plate_titanium, 48), - new ItemStack(ModItems.plate_aluminium, 12)), - new ItemStack(ModItems.mp_fuselage_15_solid)), - MP_F_15_HYDROGEN(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 2), - new ItemStack(ModBlocks.steel_scaffold, 12), - new ItemStack(ModItems.plate_titanium, 48), - new ItemStack(ModItems.plate_iron, 12)), - new ItemStack(ModItems.mp_fuselage_15_hydrogen)), - MP_F_15_BALEFIRE(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 2), - new ItemStack(ModBlocks.steel_scaffold, 12), - new ItemStack(ModItems.plate_titanium, 48), - new ItemStack(ModItems.plate_saturnite, 12)), - new ItemStack(ModItems.mp_fuselage_15_balefire)), - MP_F_15_20_KEROSENE(600, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModBlocks.steel_scaffold, 16), - new ItemStack(ModItems.plate_titanium, 64), - new ItemStack(ModItems.plate_steel, 16)), - new ItemStack(ModItems.mp_fuselage_15_20_kerosene)), - MP_F_15_20_SOLID(600, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.seg_20, 1), - new ItemStack(ModBlocks.steel_scaffold, 16), - new ItemStack(ModItems.plate_titanium, 64), - new ItemStack(ModItems.plate_aluminium, 16)), - new ItemStack(ModItems.mp_fuselage_15_20_solid)), - - MP_W_10_HE(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(Blocks.TNT, 3), - new ItemStack(ModItems.circuit_targeting_tier2, 1)), - new ItemStack(ModItems.mp_warhead_10_he)), - MP_W_10_INC(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_titanium, 4), - new ItemStack(ModItems.powder_fire, 3), - new ItemStack(Blocks.TNT, 2), - new ItemStack(ModItems.circuit_targeting_tier2, 1)), - new ItemStack(ModItems.mp_warhead_10_incendiary)), - MP_W_10_BUSTER(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_titanium, 4), - new ItemStack(ModBlocks.det_charge, 1), - new ItemStack(ModBlocks.det_cord, 4), - new ItemStack(ModItems.board_copper, 4), - new ItemStack(ModItems.circuit_targeting_tier3, 1)), - new ItemStack(ModItems.mp_warhead_10_buster)), - MP_W_10_TATER(200, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 6), - new ItemStack(ModItems.ingot_pu239, 1), - new ItemStack(Blocks.TNT, 2), - new ItemStack(ModItems.circuit_targeting_tier3, 1)), - new ItemStack(ModItems.mp_warhead_10_nuclear)), - MP_W_10_BORIS(300, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 8), - new ItemStack(ModItems.plate_aluminium, 4), - new ItemStack(ModItems.ingot_pu239, 2), - new ItemStack(ModBlocks.det_charge, 2), - new ItemStack(ModItems.circuit_targeting_tier4, 1)), - new ItemStack(ModItems.mp_warhead_10_nuclear_large)), - MP_W_10_TAINT(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 12), - new ItemStack(ModBlocks.det_cord, 2), - new ItemStack(ModItems.powder_magic, 12), - FluidUtil.getFilledBucket(new FluidStack(ModForgeFluids.mud_fluid, 1000))), - new ItemStack(ModItems.mp_warhead_10_taint)), - MP_W_10_CLOUD(100, Arrays.asList( - new ItemStack(ModItems.seg_10, 1), - new ItemStack(ModItems.plate_steel, 12), - new ItemStack(ModBlocks.det_cord, 2), - new ItemStack(ModItems.grenade_pink_cloud, 2)), - new ItemStack(ModItems.mp_warhead_10_cloud)), - MP_W_15_HE(200, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 16), - new ItemStack(ModBlocks.det_charge, 4), - new ItemStack(ModItems.circuit_targeting_tier3, 1)), - new ItemStack(ModItems.mp_warhead_15_he)), - MP_W_15_INC(200, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 16), - new ItemStack(ModBlocks.det_charge, 2), - new ItemStack(ModItems.powder_fire, 8), - new ItemStack(ModItems.circuit_targeting_tier3, 1)), - new ItemStack(ModItems.mp_warhead_15_incendiary)), - MP_W_15_BERTHA(500, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 24), - new ItemStack(ModItems.plate_titanium, 12), - new ItemStack(ModItems.ingot_pu239, 3), - new ItemStack(ModBlocks.det_charge, 4), - new ItemStack(ModItems.circuit_targeting_tier4, 1)), - new ItemStack(ModItems.mp_warhead_15_nuclear)), - MP_W_15_NERV(400, Arrays.asList( - new ItemStack(ModItems.seg_15, 1), - new ItemStack(ModItems.plate_steel, 8), - new ItemStack(ModItems.plate_titanium, 20), - new ItemStack(ModBlocks.det_charge, 24), - new ItemStack(Blocks.REDSTONE_BLOCK, 12), - new ItemStack(ModItems.powder_magnetized_tungsten, 6), - new ItemStack(ModItems.circuit_targeting_tier4, 1)), - new ItemStack(ModItems.mp_warhead_15_n2)), - GERALD(1200, Arrays.asList( - new ItemStack(ModItems.cap_star, 1), - new ItemStack(ModItems.chlorine_pinwheel, 1), - new ItemStack(ModItems.burnt_bark, 1), - new ItemStack(ModItems.combine_scrap, 1), - new ItemStack(ModBlocks.block_euphemium_cluster, 1), - new ItemStack(ModItems.crystal_horn, 1), - new ItemStack(ModItems.crystal_charred, 1), - new ItemStack(ModBlocks.pink_log, 1), - new ItemStack(ModItems.mp_warhead_15_balefire, 1), - new ItemStack(ModBlocks.crate_red, 1), - new ItemStack(ModBlocks.det_nuke, 16), - new ItemStack(ModItems.ingot_starmetal, 32)), - - new ItemStack(ModItems.sat_gerald)), - SOYUZ(2000, Arrays.asList( - new ItemStack(ModItems.rocket_fuel, 40), - new ItemStack(ModBlocks.det_cord, 20), - new ItemStack(ModItems.thruster_medium, 12), - new ItemStack(ModItems.thruster_small, 12), - new ItemStack(ModItems.tank_steel, 10), - new ItemStack(ModItems.circuit_targeting_tier4, 4), - new ItemStack(ModItems.circuit_targeting_tier3, 8), - new ItemStack(ModItems.plate_polymer, 64), - new ItemStack(ModItems.fins_small_steel, 4), - new ItemStack(ModItems.hull_big_titanium, 40), - new ItemStack(ModItems.hull_big_steel, 24), - new ItemStack(ModItems.ingot_fiberglass, 64)), - - new ItemStack(ModItems.missile_soyuz0)), - - LANDER(1000, Arrays.asList( - new ItemStack(ModItems.rocket_fuel, 10), - new ItemStack(ModItems.thruster_small, 3), - new ItemStack(ModItems.tank_steel, 2), - new ItemStack(ModItems.circuit_targeting_tier3, 4), - new ItemStack(ModItems.plate_polymer, 32), - new ItemStack(ModItems.hull_big_aluminium, 2), - new ItemStack(ModItems.sphere_steel, 1), - new ItemStack(ModItems.ingot_fiberglass, 12)), - - new ItemStack(ModItems.missile_soyuz_lander)), -; - - private EnumAssemblyTemplate() { } - - private EnumAssemblyTemplate(int time, List ingredients, ItemStack output) { - this.time = time; - this.ingredients = ingredients; - this.output = output; - } - - public int time = 0; - public List ingredients = null; - public ItemStack output = null; - - public static EnumAssemblyTemplate getEnum(int i) { - return EnumAssemblyTemplate.values()[i]; - } - - public String getName() { - return this.toString(); - } - } - - public static List getRecipeFromTempate(EnumAssemblyTemplate template) { - - List list = new ArrayList(); - - if(template.ingredients != null) - return template.ingredients; - - switch(template) { - case IRON_PLATE: - list.add(new ItemStack(Items.IRON_INGOT, 3)); - break; - case GOLD_PLATE: - list.add(new ItemStack(Items.GOLD_INGOT, 3)); - break; - case TITANIUM_PLATE: - list.add(new ItemStack(ModItems.ingot_titanium, 3)); - break; - case ALUMINIUM_PLATE: - list.add(new ItemStack(ModItems.ingot_aluminium, 3)); - break; - case STEEL_PLATE: - list.add(new ItemStack(ModItems.ingot_steel, 3)); - break; - case LEAD_PLATE: - list.add(new ItemStack(ModItems.ingot_lead, 3)); - break; - case COPPER_PLATE: - list.add(new ItemStack(ModItems.ingot_copper, 3)); - break; - case ADVANCED_PLATE: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 3)); - break; - case SCHRABIDIUM_PLATE: - list.add(new ItemStack(ModItems.ingot_schrabidium, 3)); - break; - case CMB_PLATE: - list.add(new ItemStack(ModItems.ingot_combine_steel, 3)); - break; - case SATURN_PLATE: - list.add(new ItemStack(ModItems.ingot_saturnite, 3)); - break; - case ALUMINIUM_WIRE: - list.add(new ItemStack(ModItems.ingot_aluminium, 1)); - break; - case COPPER_WIRE: - list.add(new ItemStack(ModItems.ingot_copper, 1)); - break; - case TUNGSTEN_WIRE: - list.add(new ItemStack(ModItems.ingot_tungsten, 1)); - break; - case REDCOPPER_WIRE: - list.add(new ItemStack(ModItems.ingot_red_copper, 1)); - break; - case ADVANCED_WIRE: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 1)); - break; - case GOLD_WIRE: - list.add(new ItemStack(Items.GOLD_INGOT, 1)); - break; - case SCHRABIDIUM_WIRE: - list.add(new ItemStack(ModItems.ingot_schrabidium, 1)); - break; - case MAGNETIZED_WIRE: - list.add(new ItemStack(ModItems.ingot_magnetized_tungsten, 1)); - break; - case CIRCUIT_1: - list.add(new ItemStack(ModItems.circuit_raw, 1)); - break; - case SCHRABIDIUM_HAMMER: - list.add(new ItemStack(ModBlocks.block_schrabidium, 15)); - list.add(new ItemStack(ModItems.ingot_polymer, 64*2)); - list.add(new ItemStack(Items.NETHER_STAR, 3)); - list.add(new ItemStack(ModItems.fragment_meteorite, 64*8)); - break; - case MIXED_PLATE: - list.add(new ItemStack(ModItems.plate_advanced_alloy, 2)); - list.add(new ItemStack(ModItems.neutron_reflector, 2)); - list.add(new ItemStack(ModItems.plate_combine_steel, 1)); - list.add(new ItemStack(ModItems.plate_lead, 4)); - break; - case HAZMAT_CLOTH: - list.add(new ItemStack(ModItems.powder_lead, 4)); - list.add(new ItemStack(Items.STRING, 8)); - break; - case ASBESTOS_CLOTH: - list.add(new ItemStack(ModItems.ingot_asbestos, 2)); - list.add(new ItemStack(Items.STRING, 6)); - list.add(new ItemStack(Blocks.WOOL, 1)); - break; - case COAL_FILTER: - list.add(new ItemStack(ModItems.powder_coal, 4)); - list.add(new ItemStack(Items.STRING, 6)); - list.add(new ItemStack(Items.PAPER, 1)); - break; - case CENTRIFUGE_ELEMENT: - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.coil_tungsten, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - list.add(new ItemStack(ModItems.motor, 1)); - break; - case CENTRIFUGE_TOWER: - list.add(new ItemStack(ModItems.centrifuge_element, 4)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - list.add(new ItemStack(ModItems.powder_lapis, 2)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case DEE_MAGNET: - list.add(new ItemStack(ModBlocks.fusion_conductor, 6)); - list.add(new ItemStack(ModItems.ingot_steel, 3)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 1)); - break; - case FLAT_MAGNET: - list.add(new ItemStack(ModBlocks.fusion_conductor, 5)); - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 6)); - break; - case CYCLOTRON_TOWER: - list.add(new ItemStack(ModItems.magnet_circular, 6)); - list.add(new ItemStack(ModItems.magnet_dee, 3)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 8)); - list.add(new ItemStack(ModItems.plate_polymer, 24)); - break; - case REACTOR_CORE: - list.add(new ItemStack(ModItems.ingot_lead, 4)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.neutron_reflector, 4)); - break; - case RTG_UNIT: - list.add(new ItemStack(ModItems.thermo_element, 6)); - list.add(new ItemStack(ModItems.board_copper, 2)); - list.add(new ItemStack(ModItems.ingot_lead, 4)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.circuit_copper, 2)); - break; - case HEAT_UNIT: - list.add(new ItemStack(ModItems.coil_copper_torus, 3)); - list.add(new ItemStack(ModItems.ingot_steel, 3)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.plate_polymer, 12)); - break; - case GRAVITY_UNIT: - list.add(new ItemStack(ModItems.coil_copper, 4)); - list.add(new ItemStack(ModItems.coil_tungsten, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.nugget_schrabidium, 2)); - break; - case TITANIUM_DRILL: - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.ingot_dura_steel, 2)); - list.add(new ItemStack(ModItems.bolt_dura_steel, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - break; - case TELEPAD: - list.add(new ItemStack(ModItems.ingot_polymer, 12)); - list.add(new ItemStack(ModItems.plate_schrabidium, 2)); - list.add(new ItemStack(ModItems.plate_combine_steel, 4)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.wire_gold, 6)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 1)); - break; - case TELEKIT: - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 6)); - list.add(new ItemStack(ModItems.plate_lead, 16)); - list.add(new ItemStack(ModItems.neutron_reflector, 4)); - list.add(new ItemStack(ModItems.singularity_counter_resonant, 1)); - list.add(new ItemStack(ModItems.singularity_super_heated, 1)); - list.add(new ItemStack(ModItems.powder_power, 4)); - break; - case GEASS_REACTOR: - list.add(new ItemStack(ModItems.plate_steel, 15)); - list.add(new ItemStack(ModItems.ingot_lead, 5)); - list.add(new ItemStack(ModItems.rod_quad_empty, 10)); - list.add(new ItemStack(Items.DYE, 4, 3)); - break; - case WT1_GENERIC: - list.add(new ItemStack(ModItems.plate_titanium, 5)); - list.add(new ItemStack(ModItems.plate_steel, 3)); - list.add(new ItemStack(Blocks.TNT, 2)); - break; - case WT2_GENERIC: - list.add(new ItemStack(ModItems.plate_titanium, 8)); - list.add(new ItemStack(ModItems.plate_steel, 5)); - list.add(new ItemStack(Blocks.TNT, 4)); - break; - case WT3_GENERIC: - list.add(new ItemStack(ModItems.plate_titanium, 15)); - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(Blocks.TNT, 8)); - break; - case WT1_FIRE: - list.add(new ItemStack(ModItems.warhead_generic_small, 1)); - list.add(new ItemStack(ModItems.powder_fire, 4)); - break; - case WT2_FIRE: - list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); - list.add(new ItemStack(ModItems.powder_fire, 8)); - break; - case WT3_FIRE: - list.add(new ItemStack(ModItems.warhead_generic_large, 1)); - list.add(new ItemStack(ModItems.powder_fire, 16)); - break; - case MISSILE_ASSEMBLY: - list.add(new ItemStack(ModItems.hull_small_steel, 1)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.wire_aluminium, 6)); - list.add(ItemFluidCanister.getFullCanister(ModForgeFluids.kerosene, 3)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - break; - case CARRIER: - list.add(ItemFluidTank.getFullBarrel(ModForgeFluids.kerosene, 16)); - list.add(new ItemStack(ModItems.thruster_medium, 4)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.hull_big_titanium, 6)); - list.add(new ItemStack(ModItems.hull_big_steel, 2)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 12)); - list.add(new ItemStack(ModItems.plate_titanium, 24)); - list.add(new ItemStack(ModItems.plate_polymer, 128)); - list.add(new ItemStack(ModBlocks.det_cord, 8)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 3)); - break; - case WT1_CLUSTER: - list.add(new ItemStack(ModItems.warhead_generic_small, 1)); - list.add(new ItemStack(ModItems.pellet_cluster, 4)); - break; - case WT2_CLUSTER: - list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); - list.add(new ItemStack(ModItems.pellet_cluster, 8)); - break; - case WT3_CLUSTER: - list.add(new ItemStack(ModItems.warhead_generic_large, 1)); - list.add(new ItemStack(ModItems.pellet_cluster, 16)); - break; - case WT1_BUSTER: - list.add(new ItemStack(ModItems.warhead_generic_small, 1)); - list.add(new ItemStack(ModBlocks.det_cord, 8)); - break; - case WT2_BUSTER: - list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); - list.add(new ItemStack(ModBlocks.det_cord, 4)); - list.add(new ItemStack(ModBlocks.det_charge, 4)); - break; - case WT3_BUSTER: - list.add(new ItemStack(ModItems.warhead_generic_large, 1)); - list.add(new ItemStack(ModBlocks.det_charge, 8)); - break; - case W_NUCLEAR: - list.add(new ItemStack(ModItems.boy_shielding, 1)); - list.add(new ItemStack(ModItems.boy_target, 1)); - list.add(new ItemStack(ModItems.boy_bullet, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 20)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - break; - case W_MIRVLET: - list.add(new ItemStack(ModItems.ingot_steel, 5)); - list.add(new ItemStack(ModItems.plate_steel, 18)); - list.add(new ItemStack(ModItems.ingot_pu239, 1)); - list.add(new ItemStack(Blocks.TNT, 2)); - break; - case W_MIRV: - list.add(new ItemStack(ModItems.plate_titanium, 20)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - list.add(new ItemStack(ModItems.ingot_pu239, 1)); - list.add(new ItemStack(Blocks.TNT, 8)); - list.add(new ItemStack(ModItems.neutron_reflector, 6)); - list.add(new ItemStack(ModItems.lithium, 4)); - list.add(ItemCell.getFullCell(ModForgeFluids.deuterium, 6)); - break; - case W_ENDOTHERMIC: - list.add(new ItemStack(ModBlocks.therm_endo, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - break; - case W_EXOTHERMIC: - list.add(new ItemStack(ModBlocks.therm_exo, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - break; - case T1_TANK: - list.add(ItemFluidCanister.getFullCanister(ModForgeFluids.kerosene, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - break; - case T2_TANK: - list.add(new ItemStack(ModItems.fuel_tank_small, 3)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - break; - case T3_TANK: - list.add(new ItemStack(ModItems.fuel_tank_medium, 3)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - break; - case T1_THRUSTER: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - break; - case T2_THRUSTER: - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.hull_small_steel, 1)); - list.add(new ItemStack(ModItems.hull_big_steel, 1)); - list.add(new ItemStack(ModItems.wire_copper, 4)); - break; - case T3_THRUSTER: - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.hull_big_steel, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case NUCLEAR_THRUSTER: - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.pipes_steel, 3)); - list.add(new ItemStack(ModItems.board_copper, 6)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - list.add(new ItemStack(ModBlocks.machine_reactor_small, 1)); - break; - case SAT_BASE: - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.plate_desh, 4)); - list.add(new ItemStack(ModItems.hull_big_titanium, 3)); - list.add(ItemFluidTank.getFullBarrel(ModForgeFluids.kerosene)); - list.add(new ItemStack(ModItems.photo_panel, 24)); - list.add(new ItemStack(ModItems.board_copper, 12)); - list.add(new ItemStack(ModItems.circuit_gold, 6)); - list.add(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6)); - break; - case SAT_MAPPER: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.hull_small_steel, 3)); - list.add(new ItemStack(ModItems.plate_desh, 2)); - list.add(new ItemStack(ModItems.circuit_gold, 2)); - list.add(new ItemStack(ModItems.plate_polymer, 12)); - list.add(new ItemStack(Items.REDSTONE, 6)); - list.add(new ItemStack(Items.DIAMOND, 1)); - list.add(new ItemStack(Blocks.GLASS_PANE, 6)); - break; - case SAT_SCANNER: - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.plate_titanium, 32)); - list.add(new ItemStack(ModItems.plate_desh, 6)); - list.add(new ItemStack(ModItems.magnetron, 6)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 2)); - list.add(new ItemStack(ModItems.circuit_gold, 6)); - list.add(new ItemStack(ModItems.plate_polymer, 6)); - list.add(new ItemStack(Items.DIAMOND, 1)); - break; - case SAT_RADAR: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 32)); - list.add(new ItemStack(ModItems.magnetron, 12)); - list.add(new ItemStack(ModItems.plate_polymer, 16)); - list.add(new ItemStack(ModItems.wire_red_copper, 16)); - list.add(new ItemStack(ModItems.coil_gold, 3)); - list.add(new ItemStack(ModItems.circuit_gold, 5)); - list.add(new ItemStack(Items.DIAMOND, 1)); - break; - case SAT_LASER: - list.add(new ItemStack(ModItems.ingot_steel, 12)); - list.add(new ItemStack(ModItems.ingot_tungsten, 16)); - list.add(new ItemStack(ModItems.ingot_polymer, 6)); - list.add(new ItemStack(ModItems.plate_polymer, 16)); - list.add(new ItemStack(ModItems.board_copper, 24)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 2)); - list.add(new ItemStack(Items.REDSTONE, 16)); - list.add(new ItemStack(Items.DIAMOND, 5)); - list.add(new ItemStack(Blocks.GLASS_PANE, 16)); - break; - case SAT_RESONATOR: - list.add(new ItemStack(ModItems.ingot_steel, 32)); - list.add(new ItemStack(ModItems.ingot_polymer, 48)); - list.add(new ItemStack(ModItems.plate_polymer, 8)); - list.add(new ItemStack(ModItems.crystal_xen, 1)); - list.add(new ItemStack(ModItems.ingot_starmetal, 7)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier6, 2)); - break; - case SAT_FOEQ: - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.plate_desh, 8)); - list.add(new ItemStack(ModItems.hull_big_titanium, 3)); - list.add(ItemFluidTank.getFullBarrel(FluidRegistry.WATER)); - list.add(new ItemStack(ModItems.photo_panel, 16)); - list.add(new ItemStack(ModItems.thruster_nuclear, 1)); - list.add(new ItemStack(ModItems.rod_quad_uranium_fuel, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 6)); - list.add(new ItemStack(ModItems.magnetron, 3)); - list.add(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6)); - break; - case SAT_MINER: - list.add(new ItemStack(ModItems.plate_saturnite, 24)); - list.add(new ItemStack(ModItems.plate_desh, 8)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.drill_titanium, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - list.add(ItemFluidTank.getFullBarrel(ModForgeFluids.kerosene)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.photo_panel, 12)); - list.add(new ItemStack(ModItems.centrifuge_element, 4)); - list.add(new ItemStack(ModItems.magnetron, 3)); - list.add(new ItemStack(ModItems.plate_polymer, 12)); - list.add(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6)); - break; - case CHOPPER_HEAD: - list.add(new ItemStack(ModBlocks.reinforced_glass, 2)); - list.add(new ItemStack(ModBlocks.fwatz_computer, 1)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 22)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); - break; - case CHOPPER_GUN: - list.add(new ItemStack(ModItems.plate_combine_steel, 4)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 2)); - list.add(new ItemStack(ModItems.wire_tungsten, 6)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 1)); - list.add(new ItemStack(ModItems.motor, 1)); - break; - case CHOPPER_BODY: - list.add(new ItemStack(ModItems.ingot_combine_steel, 26)); - list.add(new ItemStack(ModBlocks.fwatz_computer, 1)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.chopper_blades, 2)); - break; - case CHOPPER_TAIL: - list.add(new ItemStack(ModItems.plate_combine_steel, 8)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 5)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.chopper_blades, 2)); - break; - case CHOPPER_WING: - list.add(new ItemStack(ModItems.plate_combine_steel, 6)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 3)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 2)); - break; - case CHOPPER_BLADES: - list.add(new ItemStack(ModItems.plate_combine_steel, 8)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 2)); - break; - case CIRCUIT_2: - list.add(new ItemStack(ModItems.circuit_aluminium, 1)); - list.add(new ItemStack(ModItems.wire_copper, 6)); - list.add(new ItemStack(ModItems.powder_quartz, 4)); - list.add(new ItemStack(ModItems.plate_copper, 1)); - break; - case CIRCUIT_3: - list.add(new ItemStack(ModItems.circuit_copper, 1)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - list.add(new ItemStack(ModItems.powder_gold, 4)); - list.add(new ItemStack(ModItems.plate_polymer, 1)); - break; - case RTG_PELLET: - list.add(new ItemStack(ModItems.nugget_pu238, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case WEAK_PELLET: - list.add(new ItemStack(ModItems.nugget_u238, 4)); - list.add(new ItemStack(ModItems.nugget_pu238, 1)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case FUSION_PELLET: - list.add(ItemCell.getFullCell(ModForgeFluids.deuterium, 6)); - list.add(ItemCell.getFullCell(ModForgeFluids.tritium, 2)); - list.add(new ItemStack(ModItems.lithium, 4)); - break; - case CLUSTER_PELLETS: - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(Blocks.TNT, 1)); - break; - case GUN_PELLETS: - list.add(new ItemStack(ModItems.nugget_lead, 6)); - break; - case AUSTRALIUM_MACHINE: - list.add(new ItemStack(ModItems.rod_australium, 1)); - list.add(new ItemStack(ModItems.ingot_steel, 1)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - list.add(new ItemStack(ModItems.wire_copper, 6)); - break; - case MAGNETRON: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 1)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 2)); - list.add(new ItemStack(ModItems.wire_tungsten, 1)); - list.add(new ItemStack(ModItems.coil_tungsten, 1)); - break; - case W_SP: - list.add(new ItemStack(ModItems.ingot_schrabidium, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_SHE: - list.add(new ItemStack(ModItems.ingot_hes, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_SME: - list.add(new ItemStack(ModItems.ingot_schrabidium_fuel, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_SLE: - list.add(new ItemStack(ModItems.ingot_les, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_B: - list.add(new ItemStack(ModItems.ingot_beryllium, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_N: - list.add(new ItemStack(ModItems.ingot_neptunium, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_L: - list.add(new ItemStack(ModItems.ingot_lead, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case W_A: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 5)); - list.add(new ItemStack(ModItems.plate_iron, 2)); - break; - case UPGRADE_TEMPLATE: - list.add(new ItemStack(ModItems.plate_steel, 1)); - list.add(new ItemStack(ModItems.plate_iron, 4)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - list.add(new ItemStack(ModItems.wire_copper, 6)); - break; - case UPGRADE_RED_I: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(ModItems.powder_red_copper, 4)); - list.add(new ItemStack(Items.REDSTONE, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case UPGRADE_RED_II: - list.add(new ItemStack(ModItems.upgrade_speed_1, 1)); - list.add(new ItemStack(ModItems.powder_red_copper, 2)); - list.add(new ItemStack(Items.REDSTONE, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case UPGRADE_RED_III: - list.add(new ItemStack(ModItems.upgrade_speed_2, 1)); - list.add(new ItemStack(ModItems.powder_red_copper, 2)); - list.add(new ItemStack(Items.REDSTONE, 6)); - list.add(new ItemStack(ModItems.ingot_desh, 4)); - break; - case UPGRADE_GREEN_I: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(ModItems.powder_dura_steel, 4)); - list.add(new ItemStack(ModItems.powder_steel, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case UPGRADE_GREEN_II: - list.add(new ItemStack(ModItems.upgrade_effect_1, 1)); - list.add(new ItemStack(ModItems.powder_dura_steel, 2)); - list.add(new ItemStack(ModItems.powder_steel, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case UPGRADE_GREEN_III: - list.add(new ItemStack(ModItems.upgrade_effect_2, 1)); - list.add(new ItemStack(ModItems.powder_dura_steel, 2)); - list.add(new ItemStack(ModItems.powder_steel, 6)); - list.add(new ItemStack(ModItems.ingot_desh, 4)); - break; - case UPGRADE_BLUE_I: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(ModItems.powder_lapis, 4)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case UPGRADE_BLUE_II: - list.add(new ItemStack(ModItems.upgrade_power_1, 1)); - list.add(new ItemStack(ModItems.powder_lapis, 2)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case UPGRADE_BLUE_III: - list.add(new ItemStack(ModItems.upgrade_power_2, 1)); - list.add(new ItemStack(ModItems.powder_lapis, 2)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 6)); - list.add(new ItemStack(ModItems.ingot_desh, 4)); - break; - case UPGRADE_PURPLE_I: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(ModItems.powder_diamond, 4)); - list.add(new ItemStack(ModItems.powder_iron, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case UPGRADE_PURPLE_II: - list.add(new ItemStack(ModItems.upgrade_fortune_1, 1)); - list.add(new ItemStack(ModItems.powder_diamond, 2)); - list.add(new ItemStack(ModItems.powder_iron, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case UPGRADE_PURPLE_III: - list.add(new ItemStack(ModItems.upgrade_fortune_2, 1)); - list.add(new ItemStack(ModItems.powder_diamond, 2)); - list.add(new ItemStack(ModItems.powder_iron, 6)); - list.add(new ItemStack(ModItems.ingot_desh, 4)); - break; - case UPGRADE_PINK_I: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(ModItems.powder_polymer, 4)); - list.add(new ItemStack(ModItems.powder_tungsten, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case UPGRADE_PINK_II: - list.add(new ItemStack(ModItems.upgrade_afterburn_1, 1)); - list.add(new ItemStack(ModItems.powder_polymer, 2)); - list.add(new ItemStack(ModItems.powder_tungsten, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - break; - case UPGRADE_PINK_III: - list.add(new ItemStack(ModItems.upgrade_afterburn_2, 1)); - list.add(new ItemStack(ModItems.powder_polymer, 2)); - list.add(new ItemStack(ModItems.powder_tungsten, 6)); - list.add(new ItemStack(ModItems.ingot_desh, 4)); - break; - case UPGRADE_RANGE: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 6)); - list.add(new ItemStack(ModItems.powder_diamond, 4)); - break; - case UPGRADE_HEALTH: - list.add(new ItemStack(ModItems.upgrade_template, 1)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 6)); - list.add(new ItemStack(ModItems.powder_titanium, 4)); - break; - case FUSE: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(Blocks.GLASS_PANE, 1)); - list.add(new ItemStack(ModItems.wire_aluminium, 1)); - break; - case REDCOIL_CAPACITOR: - list.add(new ItemStack(ModItems.plate_gold, 3)); - list.add(new ItemStack(ModItems.fuse, 1)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.coil_advanced_alloy, 6)); - list.add(new ItemStack(Blocks.REDSTONE_BLOCK, 2)); - break; - case TITANIUM_FILTER: - list.add(new ItemStack(ModItems.plate_lead, 3)); - list.add(new ItemStack(ModItems.fuse, 1)); - list.add(new ItemStack(ModItems.wire_tungsten, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.ingot_u238, 2)); - break; - case LITHIUM_BOX: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.powder_lithium, 2)); - break; - case BERYLLIUM_BOX: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.powder_beryllium, 2)); - break; - case COAL_BOX: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.powder_coal, 2)); - break; - case COPPER_BOX: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.powder_copper, 2)); - break; - case PLUTONIUM_BOX: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.powder_plutonium, 2)); - break; - case THERMO_ELEMENT: - list.add(new ItemStack(ModItems.plate_steel, 3)); - list.add(new ItemStack(ModItems.plate_iron, 1)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 2)); - list.add(new ItemStack(ModItems.wire_aluminium, 2)); - list.add(new ItemStack(ModItems.powder_quartz, 4)); - break; - case ANGRY_METAL: - list.add(new ItemStack(ModBlocks.block_meteor, 1)); - break; - case METEOR_BLOCK: - list.add(new ItemStack(ModItems.fragment_meteorite, 100)); - break; - case CMB_TILE: - list.add(new ItemStack(ModItems.ingot_combine_steel, 1)); - list.add(new ItemStack(ModItems.plate_combine_steel, 8)); - break; - case CMB_BRICKS: - list.add(new ItemStack(ModBlocks.block_magnetized_tungsten, 4)); - list.add(new ItemStack(ModBlocks.brick_concrete, 4)); - list.add(new ItemStack(ModBlocks.cmb_brick, 1)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - break; - case HATCH_FRAME: - list.add(new ItemStack(ModItems.ingot_steel, 3)); - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(Items.REDSTONE, 2)); - list.add(new ItemStack(ModBlocks.steel_roof, 5)); - break; - case HATCH_CONTROLLER: - list.add(new ItemStack(ModItems.ingot_steel, 3)); - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.ingot_red_copper, 1)); - list.add(new ItemStack(Items.REDSTONE, 4)); - list.add(new ItemStack(ModBlocks.steel_roof, 5)); - break; - case BLAST_DOOR: - list.add(new ItemStack(ModItems.ingot_steel, 128)); - list.add(new ItemStack(ModItems.ingot_tungsten, 32)); - list.add(new ItemStack(ModItems.plate_lead, 48)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 8)); - list.add(new ItemStack(ModItems.plate_polymer, 16)); - list.add(new ItemStack(ModItems.bolt_tungsten, 18)); - list.add(new ItemStack(ModItems.bolt_dura_steel, 27)); - list.add(new ItemStack(ModItems.motor, 5)); - break; - case SLIDING_DOOR: - list.add(new ItemStack(ModItems.ingot_steel, 16)); - list.add(new ItemStack(ModItems.ingot_tungsten, 8)); - list.add(new ItemStack(ModItems.plate_lead, 12)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 3)); - list.add(new ItemStack(ModItems.plate_polymer, 3)); - list.add(new ItemStack(ModItems.bolt_tungsten, 3)); - list.add(new ItemStack(ModItems.bolt_dura_steel, 3)); - list.add(new ItemStack(ModItems.motor, 1)); - break; - case CENTRIFUGE: - list.add(new ItemStack(ModItems.centrifuge_tower, 1)); - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(Items.IRON_INGOT, 4)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 8)); - break; - case CENTRIFUGE_GAS: - list.add(new ItemStack(ModItems.centrifuge_tower, 1)); - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.ingot_desh, 2)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 8)); - list.add(new ItemStack(ModItems.wire_gold, 4)); - break; - case BREEDING_REACTOR: - list.add(new ItemStack(ModItems.reactor_core, 1)); - list.add(new ItemStack(ModItems.ingot_lead, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - break; - case RTG_FURNACE: - list.add(new ItemStack(Blocks.FURNACE, 1)); - list.add(new ItemStack(ModItems.rtg_unit, 3)); - list.add(new ItemStack(ModItems.plate_lead, 6)); - list.add(new ItemStack(ModItems.neutron_reflector, 4)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - break; - case RAD_GEN: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.plate_steel, 32)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 6)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 24)); - list.add(new ItemStack(ModItems.circuit_gold, 4)); - list.add(new ItemStack(ModItems.reactor_core, 3)); - list.add(new ItemStack(ModItems.ingot_starmetal, 1)); - list.add(new ItemStack(Items.DYE, 1, 1)); - break; - case DIESEL_GENERATOR: - list.add(new ItemStack(ModItems.hull_small_steel, 4)); - list.add(new ItemStack(Blocks.PISTON, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.ingot_red_copper, 2)); - list.add(new ItemStack(ModItems.plate_copper, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - break; - case SELENIUM_GENERATOR: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.plate_copper, 8)); - list.add(new ItemStack(ModItems.hull_big_steel, 1)); - list.add(new ItemStack(ModItems.hull_small_steel, 9)); - list.add(new ItemStack(ModItems.pedestal_steel, 1)); - list.add(new ItemStack(ModItems.coil_copper, 4)); - break; - case NUCLEAR_GENERATOR: - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.plate_lead, 8)); - list.add(new ItemStack(ModItems.plate_copper, 4)); - list.add(new ItemStack(ModItems.ingot_lead, 12)); - list.add(new ItemStack(ModItems.ingot_red_copper, 6)); - list.add(new ItemStack(ModItems.circuit_copper, 8)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - break; - case CYCLOTRON: - list.add(new ItemStack(ModItems.cyclotron_tower, 1)); - list.add(new ItemStack(ModItems.board_copper, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 16)); - list.add(new ItemStack(ModItems.ingot_polymer, 24)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModBlocks.machine_battery, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 20)); - list.add(new ItemStack(ModItems.circuit_red_copper, 12)); - list.add(new ItemStack(ModItems.circuit_gold, 3)); - break; - case RT_GENERATOR: - list.add(new ItemStack(ModItems.rtg_unit, 5)); - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 6)); - break; - case BATTERY: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.sulfur, 12)); - list.add(new ItemStack(ModItems.powder_lead, 12)); - list.add(new ItemStack(ModItems.ingot_red_copper, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case BATTERY_L: - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.powder_cobalt, 12)); - list.add(new ItemStack(ModItems.powder_lithium, 12)); - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case BATTERY_S: - list.add(new ItemStack(ModItems.ingot_desh, 4)); - list.add(new ItemStack(ModItems.powder_neptunium, 12)); - list.add(new ItemStack(ModItems.powder_schrabidium, 12)); - list.add(new ItemStack(ModItems.ingot_schrabidium, 2)); - list.add(new ItemStack(ModItems.wire_schrabidium, 4)); - break; - case BATTERY_D: - list.add(new ItemStack(ModItems.ingot_dineutronium, 24)); - list.add(new ItemStack(ModItems.powder_spark_mix, 12)); - list.add(new ItemStack(ModItems.battery_spark_cell_1000, 1)); - list.add(new ItemStack(ModItems.ingot_combine_steel, 32)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 8)); - break; - /*case HE_TO_RF: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.coil_copper, 2)); - list.add(new ItemStack(ModItems.coil_copper_torus, 1)); - break; - case RF_TO_HE: - list.add(new ItemStack(ModItems.ingot_beryllium, 4)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.coil_copper, 2)); - list.add(new ItemStack(ModItems.coil_copper_torus, 1)); - break;*/ - case SHREDDER: - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 2)); - list.add(new ItemStack(ModBlocks.steel_beam, 2)); - list.add(new ItemStack(Blocks.IRON_BARS, 2)); - list.add(new ItemStack(ModBlocks.red_wire_coated, 1)); - break; - /*case DEUTERIUM_EXTRACTOR: - list.add(new ItemStack(ModItems.ingot_titanium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.coil_tungsten, 4)); - break;*/ - case DERRICK: - list.add(new ItemStack(ModBlocks.steel_scaffold, 20)); - list.add(new ItemStack(ModBlocks.steel_beam, 8)); - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.pipes_steel, 3)); - list.add(new ItemStack(ModItems.drill_titanium, 1)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - break; - case PUMPJACK: - list.add(new ItemStack(ModBlocks.steel_scaffold, 8)); - list.add(new ItemStack(ModBlocks.block_steel, 8)); - list.add(new ItemStack(ModItems.pipes_steel, 4)); - list.add(new ItemStack(ModItems.tank_steel, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 24)); - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_aluminium, 6)); - list.add(new ItemStack(ModItems.drill_titanium, 1)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 8)); - break; - case FLARE_STACK: - list.add(new ItemStack(ModBlocks.steel_scaffold, 28)); - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.pipes_steel, 2)); - list.add(new ItemStack(ModItems.hull_small_steel, 1)); - list.add(new ItemStack(ModItems.thermo_element, 3)); - break; - case REFINERY: - list.add(new ItemStack(ModItems.ingot_steel, 16)); - list.add(new ItemStack(ModItems.plate_steel, 24)); - list.add(new ItemStack(ModItems.plate_copper, 16)); - list.add(new ItemStack(ModItems.tank_steel, 4)); - list.add(new ItemStack(ModItems.hull_big_steel, 6)); - list.add(new ItemStack(ModItems.pipes_steel, 4)); - list.add(new ItemStack(ModItems.coil_tungsten, 10)); - list.add(new ItemStack(ModItems.wire_red_copper, 8)); - list.add(new ItemStack(ModItems.circuit_red_copper, 4)); - list.add(new ItemStack(ModItems.plate_polymer, 8)); - break; - case EPRESS: - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(ModItems.plate_polymer, 4)); - list.add(new ItemStack(ModItems.pipes_steel, 1)); - list.add(new ItemStack(ModItems.bolt_tungsten, 4)); - list.add(new ItemStack(ModItems.coil_copper, 2)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.circuit_copper, 1)); - list.add(ItemFluidCanister.getFullCanister(ModForgeFluids.lubricant)); - break; - case CHEMPLANT: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.plate_copper, 6)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.tank_steel, 4)); - list.add(new ItemStack(ModItems.hull_big_steel, 1)); - list.add(new ItemStack(ModItems.wire_red_copper, 16)); - list.add(new ItemStack(ModItems.wire_tungsten, 3)); - list.add(new ItemStack(ModItems.circuit_copper, 4)); - list.add(new ItemStack(ModItems.circuit_red_copper, 2)); - list.add(new ItemStack(ModItems.plate_polymer, 8)); - break; - case TANK: - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.hull_big_steel, 4)); - break; - case MINER: - list.add(new ItemStack(ModBlocks.steel_scaffold, 6)); - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - list.add(new ItemStack(ModItems.circuit_copper, 1)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.ingot_dura_steel, 2)); - list.add(new ItemStack(ModItems.bolt_dura_steel, 2)); - list.add(new ItemStack(ModItems.drill_titanium, 1)); - break; - case MININGLASER: - list.add(new ItemStack(ModItems.tank_steel, 3)); - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - list.add(new ItemStack(ModItems.crystal_redstone, 3)); - list.add(new ItemStack(Items.DIAMOND, 5)); - list.add(new ItemStack(ModItems.ingot_polymer, 8)); - list.add(new ItemStack(ModItems.motor, 3)); - list.add(new ItemStack(ModItems.ingot_dura_steel, 4)); - list.add(new ItemStack(ModItems.bolt_dura_steel, 6)); - list.add(new ItemStack(ModBlocks.machine_lithium_battery, 3)); - break; - case TURBOFAN: - list.add(new ItemStack(ModItems.hull_big_steel, 1)); - list.add(new ItemStack(ModItems.hull_big_titanium, 3)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.turbine_tungsten, 1)); - list.add(new ItemStack(ModItems.turbine_titanium, 7)); - list.add(new ItemStack(ModItems.bolt_compound, 8)); - list.add(new ItemStack(ModItems.ingot_red_copper, 12)); - list.add(new ItemStack(ModItems.wire_red_copper, 24)); - break; - case TELEPORTER: - list.add(new ItemStack(ModItems.ingot_titanium, 6)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 12)); - list.add(new ItemStack(ModItems.plate_combine_steel, 4)); - list.add(new ItemStack(ModItems.telepad, 1)); - list.add(new ItemStack(ModItems.entanglement_kit, 1)); - list.add(new ItemStack(ModBlocks.machine_battery, 2)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 4)); - break; - case SCHRABTRANS: - list.add(new ItemStack(ModItems.ingot_magnetized_tungsten, 1)); - list.add(new ItemStack(ModItems.ingot_titanium, 24)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 18)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - list.add(new ItemStack(ModItems.plate_desh, 6)); - list.add(new ItemStack(ModItems.plate_polymer, 8)); - list.add(new ItemStack(ModBlocks.machine_battery, 5)); - list.add(new ItemStack(ModItems.circuit_gold, 5)); - break; - case CMB_FURNACE: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.ingot_polymer, 6)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.plate_copper, 6)); - list.add(new ItemStack(ModItems.circuit_gold, 6)); - list.add(new ItemStack(ModItems.coil_advanced_alloy, 8)); - list.add(new ItemStack(ModItems.coil_tungsten, 4)); - list.add(new ItemStack(ModItems.ingot_magnetized_tungsten, 12)); - break; - case FA_HULL: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 6)); - break; - case FA_HATCH: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(ModItems.coil_advanced_alloy, 2)); - break; - case FA_CORE: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 6)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 6)); - list.add(new ItemStack(ModItems.plate_steel, 8)); - list.add(new ItemStack(ModItems.coil_advanced_alloy, 2)); - list.add(new ItemStack(ModItems.motor, 16)); - list.add(new ItemStack(Blocks.PISTON, 6)); - break; - case FA_PORT: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 8)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 6)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.fuse, 6)); - break; - case LR_ELEMENT: - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.neutron_reflector, 4)); - list.add(new ItemStack(ModItems.plate_lead, 2)); - list.add(new ItemStack(ModItems.rod_empty, 8)); - break; - case LR_CONTROL: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.ingot_lead, 6)); - list.add(new ItemStack(ModItems.bolt_tungsten, 6)); - list.add(new ItemStack(ModItems.motor, 1)); - break; - case LR_HATCH: - list.add(new ItemStack(ModBlocks.brick_concrete, 1)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - break; - case LR_PORT: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_copper, 12)); - list.add(new ItemStack(ModItems.wire_tungsten, 4)); - break; - case LR_CORE: - list.add(new ItemStack(ModBlocks.reactor_conductor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 4)); - list.add(new ItemStack(ModItems.circuit_gold, 1)); - break; - case LF_MAGNET: - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.coil_advanced_alloy, 5)); - break; - case LF_CENTER: - list.add(new ItemStack(ModItems.ingot_tungsten, 4)); - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 24)); - break; - case LF_MOTOR: - list.add(new ItemStack(ModItems.ingot_titanium, 4)); - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.motor, 4)); - break; - case LF_HEATER: - list.add(new ItemStack(ModItems.ingot_tungsten, 4)); - list.add(new ItemStack(ModItems.neutron_reflector, 6)); - list.add(new ItemStack(ModItems.magnetron, 4)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 4)); - break; - case LF_HATCH: - list.add(new ItemStack(ModBlocks.fusion_heater, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - break; - case LF_CORE: - list.add(new ItemStack(ModBlocks.fusion_center, 3)); - list.add(new ItemStack(ModItems.circuit_red_copper, 48)); - list.add(new ItemStack(ModItems.circuit_gold, 12)); - break; - case LW_ELEMENT: - list.add(new ItemStack(ModItems.ingot_tungsten, 4)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.rod_empty, 2)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 2)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 4)); - break; - case LW_CONTROL: - list.add(new ItemStack(ModItems.ingot_tungsten, 4)); - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.ingot_lead, 2)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 2)); - break; - case LW_COOLER: - list.add(new ItemStack(ModItems.ingot_tungsten, 2)); - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.niter, 4)); - break; - case LW_STRUTURE: - list.add(new ItemStack(ModItems.ingot_tungsten, 2)); - list.add(new ItemStack(ModItems.ingot_lead, 2)); - list.add(new ItemStack(ModItems.ingot_steel, 3)); - break; - case LW_HATCH: - list.add(new ItemStack(ModBlocks.reinforced_brick, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - break; - case LW_PORT: - list.add(new ItemStack(ModItems.ingot_tungsten, 2)); - list.add(new ItemStack(ModItems.ingot_lead, 2)); - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 2)); - list.add(new ItemStack(ModItems.fuse, 4)); - break; - case LW_CORE: - list.add(new ItemStack(ModBlocks.block_meteor, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 5)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 2)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 12)); - break; - case FW_PORT: - list.add(new ItemStack(ModItems.ingot_tungsten, 6)); - list.add(new ItemStack(ModItems.plate_combine_steel, 4)); - break; - case FW_MAGNET: - list.add(new ItemStack(ModItems.plate_combine_steel, 10)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 5)); - break; - case FW_COMPUTER: - list.add(new ItemStack(ModBlocks.block_meteor, 1)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 16)); - list.add(new ItemStack(ModItems.powder_diamond, 6)); - list.add(new ItemStack(ModItems.powder_magnetized_tungsten, 6)); - list.add(new ItemStack(ModItems.powder_desh, 4)); - break; - case FW_CORE: - list.add(new ItemStack(ModBlocks.block_meteor, 1)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 24)); - list.add(new ItemStack(ModItems.powder_diamond, 8)); - list.add(new ItemStack(ModItems.powder_magnetized_tungsten, 12)); - list.add(new ItemStack(ModItems.powder_desh, 8)); - list.add(new ItemStack(ModItems.upgrade_power_3, 1)); - list.add(new ItemStack(ModItems.upgrade_speed_3, 1)); - break; - case GADGET: - list.add(new ItemStack(ModItems.sphere_steel, 1)); - list.add(new ItemStack(ModItems.fins_flat, 2)); - list.add(new ItemStack(ModItems.pedestal_steel, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - list.add(new ItemStack(ModItems.wire_gold, 6)); - list.add(new ItemStack(Items.DYE, 6, 8)); - break; - case LITTLE_BOY: - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.fins_small_steel, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - list.add(new ItemStack(ModItems.wire_aluminium, 6)); - list.add(new ItemStack(Items.DYE, 4, 4)); - break; - case FAT_MAN: - list.add(new ItemStack(ModItems.sphere_steel, 1)); - list.add(new ItemStack(ModItems.hull_big_steel, 2)); - list.add(new ItemStack(ModItems.fins_big_steel, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 2)); - list.add(new ItemStack(ModItems.wire_copper, 6)); - list.add(new ItemStack(Items.DYE, 6, 11)); - break; - case IVY_MIKE: - list.add(new ItemStack(ModItems.sphere_steel, 1)); - list.add(new ItemStack(ModItems.hull_big_aluminium, 4)); - list.add(new ItemStack(ModItems.cap_aluminium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 3)); - list.add(new ItemStack(ModItems.wire_gold, 18)); - list.add(new ItemStack(Items.DYE, 12, 7)); - break; - case TSAR_BOMB: - list.add(new ItemStack(ModItems.sphere_steel, 1)); - list.add(new ItemStack(ModItems.hull_big_titanium, 6)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.fins_tri_steel, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 5)); - list.add(new ItemStack(ModItems.wire_gold, 24)); - list.add(new ItemStack(ModItems.wire_tungsten, 12)); - list.add(new ItemStack(Items.DYE, 6, 0)); - break; - case PROTOTYPE: - list.add(new ItemStack(ModItems.dysfunctional_reactor, 1)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.ingot_euphemium, 3)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - list.add(new ItemStack(ModItems.wire_gold, 16)); - break; - case FLEIJA: - list.add(new ItemStack(ModItems.hull_small_aluminium, 1)); - list.add(new ItemStack(ModItems.fins_quad_titanium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - list.add(new ItemStack(ModItems.wire_gold, 8)); - list.add(new ItemStack(Items.DYE, 4, 15)); - break; - case SOLINIUM: - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.fins_quad_titanium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 3)); - list.add(new ItemStack(ModItems.wire_gold, 10)); - list.add(new ItemStack(ModItems.pipes_steel, 4)); - list.add(new ItemStack(Items.DYE, 4, 8)); - break; - case N2: - list.add(new ItemStack(ModItems.hull_big_steel, 3)); - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 12)); - list.add(new ItemStack(ModItems.pipes_steel, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 3)); - list.add(new ItemStack(Items.DYE, 12, 0)); - break; - case CUSTOM_NUKE: - list.add(new ItemStack(ModItems.hull_small_steel, 2)); - list.add(new ItemStack(ModItems.fins_small_steel, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 1)); - list.add(new ItemStack(ModItems.wire_gold, 12)); - list.add(new ItemStack(Items.DYE, 4, 8)); - break; - case BOMB_LEV: - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.levitation_unit, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 4)); - list.add(new ItemStack(ModItems.wire_gold, 6)); - break; - case BOMB_ENDO: - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.thermo_unit_endo, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 2)); - list.add(new ItemStack(ModItems.wire_gold, 6)); - break; - case BOMB_EXO: - list.add(new ItemStack(ModItems.plate_titanium, 12)); - list.add(new ItemStack(ModItems.thermo_unit_exo, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 2)); - list.add(new ItemStack(ModItems.wire_gold, 6)); - break; - case LAUNCH_PAD: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.ingot_polymer, 2)); - list.add(new ItemStack(ModItems.plate_steel, 12)); - list.add(new ItemStack(ModBlocks.machine_battery, 1)); - list.add(new ItemStack(ModItems.circuit_gold, 2)); - break; - case TURRET_LIGHT: - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.pipes_steel, 2)); - list.add(new ItemStack(ModItems.ingot_red_copper, 2)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 2)); - break; - case TURRET_HEAVY: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.ingot_aluminium, 4)); - list.add(new ItemStack(ModItems.pipes_steel, 2)); - list.add(new ItemStack(ModItems.hull_small_steel, 1)); - list.add(new ItemStack(ModItems.ingot_red_copper, 4)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 3)); - break; - case TURRET_ROCKET: - list.add(new ItemStack(ModItems.ingot_steel, 12)); - list.add(new ItemStack(ModItems.ingot_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_steel, 8)); - list.add(new ItemStack(ModItems.ingot_red_copper, 6)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 2)); - break; - case TURRET_FLAMER: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.ingot_tungsten, 2)); - list.add(new ItemStack(ModItems.pipes_steel, 1)); - list.add(new ItemStack(ModItems.tank_steel, 2)); - list.add(new ItemStack(ModItems.ingot_red_copper, 4)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 2)); - break; - case TURRET_TAU: - list.add(new ItemStack(ModItems.ingot_steel, 16)); - list.add(new ItemStack(ModItems.ingot_titanium, 8)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 4)); - list.add(new ItemStack(ModItems.redcoil_capacitor, 3)); - list.add(new ItemStack(ModItems.ingot_red_copper, 12)); - list.add(new ItemStack(ModItems.motor, 2)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - break; - case TURRET_SPITFIRE: - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.ingot_red_copper, 6)); - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_iron, 8)); - list.add(new ItemStack(ModItems.hull_small_steel, 4)); - list.add(new ItemStack(ModItems.pipes_steel, 2)); - list.add(new ItemStack(ModItems.motor, 3)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - break; - case TURRET_CIWS: - list.add(new ItemStack(ModItems.ingot_steel, 6)); - list.add(new ItemStack(ModItems.ingot_red_copper, 8)); - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.pipes_steel, 6)); - list.add(new ItemStack(ModItems.motor, 4)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - list.add(new ItemStack(ModItems.magnetron, 3)); - break; - case TURRET_CHEAPO: - list.add(new ItemStack(ModItems.ingot_steel, 4)); - list.add(new ItemStack(ModItems.plate_iron, 4)); - list.add(new ItemStack(ModItems.pipes_steel, 3)); - list.add(new ItemStack(ModItems.motor, 3)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 4)); - break; - case HUNTER_CHOPPER: - list.add(new ItemStack(ModItems.chopper_blades, 5)); - list.add(new ItemStack(ModItems.chopper_gun, 1)); - list.add(new ItemStack(ModItems.chopper_head, 1)); - list.add(new ItemStack(ModItems.chopper_tail, 1)); - list.add(new ItemStack(ModItems.chopper_torso, 1)); - list.add(new ItemStack(ModItems.chopper_wing, 2)); - break; - case MISSILE_HE_1: - list.add(new ItemStack(ModItems.warhead_generic_small, 1)); - list.add(new ItemStack(ModItems.fuel_tank_small, 1)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - break; - case MISSILE_FIRE_1: - list.add(new ItemStack(ModItems.warhead_incendiary_small, 1)); - list.add(new ItemStack(ModItems.fuel_tank_small, 1)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - break; - case MISSILE_CLUSTER_1: - list.add(new ItemStack(ModItems.warhead_cluster_small, 1)); - list.add(new ItemStack(ModItems.fuel_tank_small, 1)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - break; - case MISSILE_BUSTER_1: - list.add(new ItemStack(ModItems.warhead_buster_small, 1)); - list.add(new ItemStack(ModItems.fuel_tank_small, 1)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - break; - case MISSILE_HE_2: - list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); - list.add(new ItemStack(ModItems.fuel_tank_medium, 1)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - break; - case MISSILE_FIRE_2: - list.add(new ItemStack(ModItems.warhead_incendiary_medium, 1)); - list.add(new ItemStack(ModItems.fuel_tank_medium, 1)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - break; - case MISSILE_CLUSTER_2: - list.add(new ItemStack(ModItems.warhead_cluster_medium, 1)); - list.add(new ItemStack(ModItems.fuel_tank_medium, 1)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - break; - case MISSILE_BUSTER_2: - list.add(new ItemStack(ModItems.warhead_buster_medium, 1)); - list.add(new ItemStack(ModItems.fuel_tank_medium, 1)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - break; - case MISSILE_HE_3: - list.add(new ItemStack(ModItems.warhead_generic_large, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - break; - case MISSILE_FIRE_3: - list.add(new ItemStack(ModItems.warhead_incendiary_large, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - break; - case MISSILE_CLUSTER_3: - list.add(new ItemStack(ModItems.warhead_cluster_large, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - break; - case MISSILE_BUSTER_3: - list.add(new ItemStack(ModItems.warhead_buster_large, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - break; - case MISSILE_NUCLEAR: - list.add(new ItemStack(ModItems.warhead_nuclear, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 20)); - list.add(new ItemStack(ModItems.plate_steel, 24)); - list.add(new ItemStack(ModItems.plate_aluminium, 16)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - break; - case MISSILE_MIRV: - list.add(new ItemStack(ModItems.warhead_mirv, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 20)); - list.add(new ItemStack(ModItems.plate_steel, 24)); - list.add(new ItemStack(ModItems.plate_aluminium, 16)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - break; - case MISSILE_ENDO: - list.add(new ItemStack(ModItems.warhead_thermo_endo, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - break; - case MISSILE_EXO: - list.add(new ItemStack(ModItems.warhead_thermo_exo, 1)); - list.add(new ItemStack(ModItems.fuel_tank_large, 1)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.plate_titanium, 14)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - break; - case DEFAB: - list.add(new ItemStack(ModItems.ingot_steel, 2)); - list.add(new ItemStack(ModItems.ingot_polymer, 8)); - list.add(new ItemStack(ModItems.plate_iron, 5)); - list.add(new ItemStack(ModItems.mechanism_special, 3)); - list.add(new ItemStack(Items.DIAMOND, 1)); - list.add(new ItemStack(ModItems.plate_dalekanium, 3)); - break; - case MINI_NUKE: - list.add(new ItemStack(ModItems.plate_steel, 3)); - list.add(new ItemStack(ModItems.plate_iron, 1)); - list.add(new ItemStack(ModItems.nugget_pu239, 3)); - break; - case MINI_MIRV: - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_iron, 10)); - list.add(new ItemStack(ModItems.nugget_pu239, 24)); - break; - case DARK_PLUG: - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(Items.REDSTONE, 1)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 1)); - break; - case COMBINE_BALL: - list.add(new ItemStack(ModItems.plate_combine_steel, 4)); - list.add(new ItemStack(Items.REDSTONE, 7)); - list.add(new ItemStack(ModItems.powder_power, 3)); - break; - case GRENADE_FLAME: - list.add(new ItemStack(ModItems.grenade_frag, 1)); - list.add(new ItemStack(ModItems.powder_fire, 1)); - list.add(new ItemStack(ModItems.plate_copper, 2)); - break; - case GRENADE_SHRAPNEL: - list.add(new ItemStack(ModItems.grenade_frag, 1)); - list.add(new ItemStack(ModItems.pellet_buckshot, 1)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - break; - case GRENAGE_CLUSTER: - list.add(new ItemStack(ModItems.grenade_frag, 1)); - list.add(new ItemStack(ModItems.pellet_cluster, 1)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - break; - case GREANADE_FLARE: - list.add(new ItemStack(ModItems.grenade_generic, 1)); - list.add(new ItemStack(Items.GLOWSTONE_DUST, 1)); - list.add(new ItemStack(ModItems.plate_aluminium, 2)); - break; - case GRENADE_LIGHTNING: - list.add(new ItemStack(ModItems.grenade_generic, 1)); - list.add(new ItemStack(ModItems.circuit_red_copper, 1)); - list.add(new ItemStack(ModItems.plate_gold, 2)); - break; - case GRENADE_IMPULSE: - list.add(new ItemStack(ModItems.plate_steel, 1)); - list.add(new ItemStack(ModItems.plate_iron, 3)); - list.add(new ItemStack(ModItems.wire_red_copper, 6)); - list.add(new ItemStack(Items.DIAMOND, 1)); - break; - case GRENADE_PLASMA: - list.add(new ItemStack(ModItems.plate_steel, 3)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 1)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 1)); - list.add(ItemCell.getFullCell(ModForgeFluids.deuterium)); - list.add(ItemCell.getFullCell(ModForgeFluids.tritium)); - break; - case GRENADE_TAU: - list.add(new ItemStack(ModItems.plate_lead, 3)); - list.add(new ItemStack(ModItems.plate_advanced_alloy, 1)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 1)); - list.add(new ItemStack(ModItems.gun_xvl1456_ammo, 1)); - break; - case GRENADE_SCHRABIDIUM: - list.add(new ItemStack(ModItems.grenade_flare, 1)); - list.add(new ItemStack(ModItems.powder_schrabidium, 1)); - list.add(new ItemStack(ModItems.neutron_reflector, 2)); - break; - case GRENADE_NUKE: - list.add(new ItemStack(ModItems.plate_iron, 1)); - list.add(new ItemStack(ModItems.plate_steel, 1)); - list.add(new ItemStack(ModItems.nugget_pu239, 2)); - list.add(new ItemStack(ModItems.wire_red_copper, 2)); - break; - case GRENADE_ZOMG: - list.add(new ItemStack(ModItems.plate_paa, 3)); - list.add(new ItemStack(ModItems.neutron_reflector, 1)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 3)); - list.add(new ItemStack(ModItems.powder_power, 3)); - break; - case GRENADE_BLACK_HOLE: - list.add(new ItemStack(ModItems.ingot_polymer, 6)); - list.add(new ItemStack(ModItems.neutron_reflector, 3)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 2)); - list.add(new ItemStack(ModItems.black_hole, 1)); - break; - case POWER_FIST: - list.add(new ItemStack(ModItems.rod_reiium, 1)); - list.add(new ItemStack(ModItems.rod_weidanium, 1)); - list.add(new ItemStack(ModItems.rod_australium, 1)); - list.add(new ItemStack(ModItems.rod_verticium, 1)); - list.add(new ItemStack(ModItems.rod_unobtainium, 1)); - list.add(new ItemStack(ModItems.rod_daffergon, 1)); - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.circuit_gold, 1)); - list.add(new ItemStack(ModItems.ducttape, 1)); - break; - case GADGET_PROPELLANT: - list.add(new ItemStack(Blocks.TNT, 3)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.plate_aluminium, 4)); - list.add(new ItemStack(ModItems.wire_gold, 3)); - break; - case GADGET_WIRING: - list.add(new ItemStack(ModItems.plate_iron, 1)); - list.add(new ItemStack(ModItems.wire_gold, 12)); - break; - case GADGET_CORE: - list.add(new ItemStack(ModItems.nugget_pu239, 7)); - list.add(new ItemStack(ModItems.nugget_u238, 3)); - break; - case BOY_SHIELDING: - list.add(new ItemStack(ModItems.neutron_reflector, 12)); - list.add(new ItemStack(ModItems.plate_steel, 4)); - break; - case BOY_TARGET: - list.add(new ItemStack(ModItems.nugget_u235, 7)); - break; - case BOY_BULLET: - list.add(new ItemStack(ModItems.nugget_u235, 3)); - break; - case BOY_PRPELLANT: - list.add(new ItemStack(Blocks.TNT, 3)); - list.add(new ItemStack(ModItems.plate_iron, 8)); - list.add(new ItemStack(ModItems.plate_aluminium, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 4)); - break; - case BOY_IGNITER: - list.add(new ItemStack(ModItems.plate_aluminium, 6)); - list.add(new ItemStack(ModItems.plate_steel, 1)); - list.add(new ItemStack(ModItems.circuit_red_copper, 1)); - list.add(new ItemStack(ModItems.wire_red_copper, 3)); - break; - case MAN_PROPELLANT: - list.add(new ItemStack(Blocks.TNT, 3)); - list.add(new ItemStack(ModItems.plate_steel, 2)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.wire_red_copper, 3)); - break; - case MAN_IGNITER: - list.add(new ItemStack(ModItems.plate_steel, 6)); - list.add(new ItemStack(ModItems.circuit_red_copper, 1)); - list.add(new ItemStack(ModItems.wire_red_copper, 9)); - break; - case MAN_CORE: - list.add(new ItemStack(ModItems.nugget_pu239, 8)); - list.add(new ItemStack(ModItems.nugget_beryllium, 2)); - break; - case MIKE_TANK: - list.add(new ItemStack(ModItems.nugget_u238, 24)); - list.add(new ItemStack(ModItems.ingot_lead, 6)); - break; - case MIKE_DEUT: - list.add(new ItemStack(ModItems.plate_iron, 12)); - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(ItemCell.getFullCell(ModForgeFluids.deuterium, 10)); - break; - case MIKE_COOLER: - list.add(new ItemStack(ModItems.plate_iron, 8)); - list.add(new ItemStack(ModItems.coil_copper, 5)); - list.add(new ItemStack(ModItems.coil_tungsten, 5)); - list.add(new ItemStack(ModItems.motor, 2)); - break; - case FLEIJA_IGNITER: - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.wire_schrabidium, 2)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 1)); - break; - case FLEIJA_CORE: - list.add(new ItemStack(ModItems.nugget_u235, 8)); - list.add(new ItemStack(ModItems.nugget_neptunium, 2)); - list.add(new ItemStack(ModItems.nugget_beryllium, 4)); - list.add(new ItemStack(ModItems.coil_copper, 2)); - break; - case FLEIJA_PROPELLANT: - list.add(new ItemStack(Blocks.TNT, 3)); - list.add(new ItemStack(ModItems.plate_schrabidium, 8)); - break; - case SOLINIUM_IGNITER: - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.wire_advanced_alloy, 2)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 1)); - list.add(new ItemStack(ModItems.coil_gold, 1)); - break; - case SOLINIUM_CORE: - list.add(new ItemStack(ModItems.nugget_solinium, 9)); - list.add(new ItemStack(ModItems.nugget_euphemium, 1)); - break; - case SOLINIUM_PROPELLANT: - list.add(new ItemStack(Blocks.TNT, 3)); - list.add(new ItemStack(ModItems.neutron_reflector, 2)); - list.add(new ItemStack(ModItems.plate_polymer, 6)); - list.add(new ItemStack(ModItems.wire_tungsten, 6)); - list.add(new ItemStack(ModItems.biomass_compressed, 4)); - break; - case COMPONENT_LIMITER: - list.add(new ItemStack(ModItems.hull_big_steel, 2)); - list.add(new ItemStack(ModItems.plate_steel, 32)); - list.add(new ItemStack(ModItems.plate_titanium, 18)); - list.add(new ItemStack(ModItems.plate_desh, 12)); - list.add(new ItemStack(ModItems.pipes_steel, 4)); - list.add(new ItemStack(ModItems.circuit_gold, 8)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 4)); - list.add(new ItemStack(ModItems.ingot_starmetal, 14)); - list.add(new ItemStack(ModItems.plate_dalekanium, 5)); - list.add(new ItemStack(ModItems.powder_magic, 16)); - list.add(new ItemStack(ModBlocks.fwatz_computer, 3)); - break; - case COMPONENT_EMITTER: - list.add(new ItemStack(ModItems.hull_big_steel, 3)); - list.add(new ItemStack(ModItems.hull_big_titanium, 2)); - list.add(new ItemStack(ModItems.plate_steel, 32)); - list.add(new ItemStack(ModItems.plate_lead, 24)); - list.add(new ItemStack(ModItems.plate_desh, 24)); - list.add(new ItemStack(ModItems.pipes_steel, 8)); - list.add(new ItemStack(ModItems.circuit_gold, 12)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 8)); - list.add(new ItemStack(ModItems.ingot_starmetal, 26)); - list.add(new ItemStack(ModItems.powder_magic, 48)); - list.add(new ItemStack(ModBlocks.fwatz_computer, 2)); - list.add(new ItemStack(ModItems.crystal_xen, 1)); - break; - case AMS_LIMITER: - list.add(new ItemStack(ModItems.component_limiter, 5)); - list.add(new ItemStack(ModItems.plate_steel, 64)); - list.add(new ItemStack(ModItems.plate_titanium, 128)); - list.add(new ItemStack(ModItems.plate_dineutronium, 16)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 6)); - list.add(new ItemStack(ModItems.pipes_steel, 16)); - list.add(new ItemStack(ModItems.motor, 12)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 12)); - list.add(new ItemStack(ModItems.entanglement_kit, 1)); - break; - case AMS_EMITTER: - list.add(new ItemStack(ModItems.component_emitter, 16)); - list.add(new ItemStack(ModItems.plate_steel, 128)); - list.add(new ItemStack(ModItems.plate_titanium, 192)); - list.add(new ItemStack(ModItems.plate_dineutronium, 32)); - list.add(new ItemStack(ModItems.circuit_schrabidium, 12)); - list.add(new ItemStack(ModItems.coil_advanced_torus, 24)); - list.add(new ItemStack(ModItems.entanglement_kit, 3)); - list.add(new ItemStack(ModItems.crystal_horn, 1)); - list.add(new ItemStack(ModBlocks.fwatz_core, 1)); - break; - case RADAR: - list.add(new ItemStack(ModItems.ingot_steel, 8)); - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.ingot_polymer, 4)); - list.add(new ItemStack(ModItems.plate_polymer, 24)); - list.add(new ItemStack(ModItems.magnetron, 10)); - list.add(new ItemStack(ModItems.motor, 3)); - list.add(new ItemStack(ModItems.circuit_gold, 4)); - list.add(new ItemStack(ModItems.coil_copper, 12)); - break; - case FORCEFIELD: - list.add(new ItemStack(ModItems.plate_advanced_alloy, 8)); - list.add(new ItemStack(ModItems.plate_desh, 4)); - list.add(new ItemStack(ModItems.coil_gold_torus, 6)); - list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 12)); - list.add(new ItemStack(ModItems.motor, 1)); - list.add(new ItemStack(ModItems.upgrade_radius, 1)); - list.add(new ItemStack(ModItems.upgrade_health, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - list.add(new ItemStack(ModBlocks.machine_transformer, 1)); - break; - default: - list.add(new ItemStack(Items.STICK)); - break; - } - - if(list.isEmpty()) - return null; - else - return list; - } - - public static ItemStack getOutputFromTempate(EnumAssemblyTemplate template) { - - if(template.output != null) - return template.output; - - ItemStack output = null; - - switch(template) { - case IRON_PLATE: - output = new ItemStack(ModItems.plate_iron, 2); - break; - case GOLD_PLATE: - output = new ItemStack(ModItems.plate_gold, 2); - break; - case TITANIUM_PLATE: - output = new ItemStack(ModItems.plate_titanium, 2); - break; - case ALUMINIUM_PLATE: - output = new ItemStack(ModItems.plate_aluminium, 2); - break; - case STEEL_PLATE: - output = new ItemStack(ModItems.plate_steel, 2); - break; - case LEAD_PLATE: - output = new ItemStack(ModItems.plate_lead, 2); - break; - case COPPER_PLATE: - output = new ItemStack(ModItems.plate_copper, 2); - break; - case ADVANCED_PLATE: - output = new ItemStack(ModItems.plate_advanced_alloy, 2); - break; - case SCHRABIDIUM_PLATE: - output = new ItemStack(ModItems.plate_schrabidium, 2); - break; - case CMB_PLATE: - output = new ItemStack(ModItems.plate_combine_steel, 2); - break; - case SATURN_PLATE: - output = new ItemStack(ModItems.plate_saturnite, 2); - break; - case ALUMINIUM_WIRE: - output = new ItemStack(ModItems.wire_aluminium, 6); - break; - case COPPER_WIRE: - output = new ItemStack(ModItems.wire_copper, 6); - break; - case TUNGSTEN_WIRE: - output = new ItemStack(ModItems.wire_tungsten, 6); - break; - case REDCOPPER_WIRE: - output = new ItemStack(ModItems.wire_red_copper, 6); - break; - case ADVANCED_WIRE: - output = new ItemStack(ModItems.wire_advanced_alloy, 6); - break; - case GOLD_WIRE: - output = new ItemStack(ModItems.wire_gold, 6); - break; - case SCHRABIDIUM_WIRE: - output = new ItemStack(ModItems.wire_schrabidium, 6); - break; - case MAGNETIZED_WIRE: - output = new ItemStack(ModItems.wire_magnetized_tungsten, 6); - break; - case CIRCUIT_1: - output = new ItemStack(ModItems.circuit_aluminium, 1); - break; - case SCHRABIDIUM_HAMMER: - output = new ItemStack(ModItems.schrabidium_hammer, 1); - break; - case MIXED_PLATE: - output = new ItemStack(ModItems.plate_mixed, 6); - break; - case HAZMAT_CLOTH: - output = new ItemStack(ModItems.hazmat_cloth, 4); - break; - case ASBESTOS_CLOTH: - output = new ItemStack(ModItems.asbestos_cloth, 4); - break; - case COAL_FILTER: - output = new ItemStack(ModItems.filter_coal, 1); - break; - case CENTRIFUGE_ELEMENT: - output = new ItemStack(ModItems.centrifuge_element, 1); - break; - case CENTRIFUGE_TOWER: - output = new ItemStack(ModItems.centrifuge_tower, 1); - break; - case DEE_MAGNET: - output = new ItemStack(ModItems.magnet_dee, 1); - break; - case FLAT_MAGNET: - output = new ItemStack(ModItems.magnet_circular, 1); - break; - case CYCLOTRON_TOWER: - output = new ItemStack(ModItems.cyclotron_tower, 1); - break; - case REACTOR_CORE: - output = new ItemStack(ModItems.reactor_core, 1); - break; - case RTG_UNIT: - output = new ItemStack(ModItems.rtg_unit, 2); - break; - case HEAT_UNIT: - output = new ItemStack(ModItems.thermo_unit_empty, 1); - break; - case GRAVITY_UNIT: - output = new ItemStack(ModItems.levitation_unit, 1); - break; - case TITANIUM_DRILL: - output = new ItemStack(ModItems.drill_titanium, 1); - break; - case TELEPAD: - output = new ItemStack(ModItems.telepad, 1); - break; - case TELEKIT: - output = new ItemStack(ModItems.entanglement_kit, 1); - break; - case GEASS_REACTOR: - output = new ItemStack(ModItems.dysfunctional_reactor, 1); - break; - case WT1_GENERIC: - output = new ItemStack(ModItems.warhead_generic_small, 1); - break; - case WT2_GENERIC: - output = new ItemStack(ModItems.warhead_generic_medium, 1); - break; - case WT3_GENERIC: - output = new ItemStack(ModItems.warhead_generic_large, 1); - break; - case WT1_FIRE: - output = new ItemStack(ModItems.warhead_incendiary_small, 1); - break; - case WT2_FIRE: - output = new ItemStack(ModItems.warhead_incendiary_medium, 1); - break; - case WT3_FIRE: - output = new ItemStack(ModItems.warhead_incendiary_large, 1); - break; - case MISSILE_ASSEMBLY: - output = new ItemStack(ModItems.missile_assembly, 1); - break; - case CARRIER: - output = new ItemStack(ModItems.missile_carrier, 1); - break; - case WT1_CLUSTER: - output = new ItemStack(ModItems.warhead_cluster_small, 1); - break; - case WT2_CLUSTER: - output = new ItemStack(ModItems.warhead_cluster_medium, 1); - break; - case WT3_CLUSTER: - output = new ItemStack(ModItems.warhead_cluster_large, 1); - break; - case WT1_BUSTER: - output = new ItemStack(ModItems.warhead_buster_small, 1); - break; - case WT2_BUSTER: - output = new ItemStack(ModItems.warhead_buster_medium, 1); - break; - case WT3_BUSTER: - output = new ItemStack(ModItems.warhead_buster_large, 1); - break; - case W_NUCLEAR: - output = new ItemStack(ModItems.warhead_nuclear, 1); - break; - case W_MIRVLET: - output = new ItemStack(ModItems.warhead_mirvlet, 1); - break; - case W_MIRV: - output = new ItemStack(ModItems.warhead_mirv, 1); - break; - case W_ENDOTHERMIC: - output = new ItemStack(ModItems.warhead_thermo_endo, 1); - break; - case W_EXOTHERMIC: - output = new ItemStack(ModItems.warhead_thermo_exo, 1); - break; - case T1_TANK: - output = new ItemStack(ModItems.fuel_tank_small, 1); - break; - case T2_TANK: - output = new ItemStack(ModItems.fuel_tank_medium, 1); - break; - case T3_TANK: - output = new ItemStack(ModItems.fuel_tank_large, 1); - break; - case T1_THRUSTER: - output = new ItemStack(ModItems.thruster_small, 1); - break; - case T2_THRUSTER: - output = new ItemStack(ModItems.thruster_medium, 1); - break; - case T3_THRUSTER: - output = new ItemStack(ModItems.thruster_large, 1); - break; - case NUCLEAR_THRUSTER: - output = new ItemStack(ModItems.thruster_nuclear, 1); - break; - case SAT_BASE: - output = new ItemStack(ModItems.sat_base, 1); - break; - case SAT_MAPPER: - output = new ItemStack(ModItems.sat_head_mapper, 1); - break; - case SAT_SCANNER: - output = new ItemStack(ModItems.sat_head_scanner, 1); - break; - case SAT_RADAR: - output = new ItemStack(ModItems.sat_head_radar, 1); - break; - case SAT_LASER: - output = new ItemStack(ModItems.sat_head_laser, 1); - break; - case SAT_RESONATOR: - output = new ItemStack(ModItems.sat_head_resonator, 1); - break; - case SAT_FOEQ: - output = new ItemStack(ModItems.sat_foeq, 1); - break; - case SAT_MINER: - output = new ItemStack(ModItems.sat_miner, 1); - break; - case CHOPPER_HEAD: - output = new ItemStack(ModItems.chopper_head, 1); - break; - case CHOPPER_GUN: - output = new ItemStack(ModItems.chopper_gun, 1); - break; - case CHOPPER_BODY: - output = new ItemStack(ModItems.chopper_torso, 1); - break; - case CHOPPER_TAIL: - output = new ItemStack(ModItems.chopper_tail, 1); - break; - case CHOPPER_WING: - output = new ItemStack(ModItems.chopper_wing, 1); - break; - case CHOPPER_BLADES: - output = new ItemStack(ModItems.chopper_blades, 1); - break; - case CIRCUIT_2: - output = new ItemStack(ModItems.circuit_copper, 1); - break; - case CIRCUIT_3: - output = new ItemStack(ModItems.circuit_red_copper, 1); - break; - case RTG_PELLET: - output = new ItemStack(ModItems.pellet_rtg, 1); - break; - case WEAK_PELLET: - output = new ItemStack(ModItems.pellet_rtg_weak, 1); - break; - case FUSION_PELLET: - output = new ItemStack(ModItems.tritium_deuterium_cake, 1); - break; - case CLUSTER_PELLETS: - output = new ItemStack(ModItems.pellet_cluster, 1); - break; - case GUN_PELLETS: - output = new ItemStack(ModItems.pellet_buckshot, 1); - break; - case AUSTRALIUM_MACHINE: - output = new ItemStack(ModItems.australium_iii, 1); - break; - case MAGNETRON: - output = new ItemStack(ModItems.magnetron, 1); - break; - case W_SP: - output = new ItemStack(ModItems.pellet_schrabidium, 1); - break; - case W_SHE: - output = new ItemStack(ModItems.pellet_hes, 1); - break; - case W_SME: - output = new ItemStack(ModItems.pellet_mes, 1); - break; - case W_SLE: - output = new ItemStack(ModItems.pellet_les, 1); - break; - case W_B: - output = new ItemStack(ModItems.pellet_beryllium, 1); - break; - case W_N: - output = new ItemStack(ModItems.pellet_neptunium, 1); - break; - case W_L: - output = new ItemStack(ModItems.pellet_lead, 1); - break; - case W_A: - output = new ItemStack(ModItems.pellet_advanced, 1); - break; - case UPGRADE_TEMPLATE: - output = new ItemStack(ModItems.upgrade_template, 1); - break; - case UPGRADE_RED_I: - output = new ItemStack(ModItems.upgrade_speed_1, 1); - break; - case UPGRADE_RED_II: - output = new ItemStack(ModItems.upgrade_speed_2, 1); - break; - case UPGRADE_RED_III: - output = new ItemStack(ModItems.upgrade_speed_3, 1); - break; - case UPGRADE_GREEN_I: - output = new ItemStack(ModItems.upgrade_effect_1, 1); - break; - case UPGRADE_GREEN_II: - output = new ItemStack(ModItems.upgrade_effect_2, 1); - break; - case UPGRADE_GREEN_III: - output = new ItemStack(ModItems.upgrade_effect_3, 1); - break; - case UPGRADE_BLUE_I: - output = new ItemStack(ModItems.upgrade_power_1, 1); - break; - case UPGRADE_BLUE_II: - output = new ItemStack(ModItems.upgrade_power_2, 1); - break; - case UPGRADE_BLUE_III: - output = new ItemStack(ModItems.upgrade_power_3, 1); - break; - case UPGRADE_PURPLE_I: - output = new ItemStack(ModItems.upgrade_fortune_1, 1); - break; - case UPGRADE_PURPLE_II: - output = new ItemStack(ModItems.upgrade_fortune_2, 1); - break; - case UPGRADE_PURPLE_III: - output = new ItemStack(ModItems.upgrade_fortune_3, 1); - break; - case UPGRADE_PINK_I: - output = new ItemStack(ModItems.upgrade_afterburn_1, 1); - break; - case UPGRADE_PINK_II: - output = new ItemStack(ModItems.upgrade_afterburn_2, 1); - break; - case UPGRADE_PINK_III: - output = new ItemStack(ModItems.upgrade_afterburn_3, 1); - break; - case UPGRADE_RANGE: - output = new ItemStack(ModItems.upgrade_radius, 1); - break; - case UPGRADE_HEALTH: - output = new ItemStack(ModItems.upgrade_health, 1); - break; - case FUSE: - output = new ItemStack(ModItems.fuse, 1); - break; - case REDCOIL_CAPACITOR: - output = new ItemStack(ModItems.redcoil_capacitor, 1); - break; - case TITANIUM_FILTER: - output = new ItemStack(ModItems.titanium_filter, 1); - break; - case LITHIUM_BOX: - output = new ItemStack(ModItems.part_lithium, 1); - break; - case BERYLLIUM_BOX: - output = new ItemStack(ModItems.part_beryllium, 1); - break; - case COAL_BOX: - output = new ItemStack(ModItems.part_carbon, 1); - break; - case COPPER_BOX: - output = new ItemStack(ModItems.part_copper, 1); - break; - case PLUTONIUM_BOX: - output = new ItemStack(ModItems.part_plutonium, 1); - break; - case THERMO_ELEMENT: - output = new ItemStack(ModItems.thermo_element, 1); - break; - case ANGRY_METAL: - output = new ItemStack(ModItems.plate_dalekanium, 1); - break; - case METEOR_BLOCK: - output = new ItemStack(ModBlocks.block_meteor, 1); - break; - case CMB_TILE: - output = new ItemStack(ModBlocks.cmb_brick, 8); - break; - case CMB_BRICKS: - output = new ItemStack(ModBlocks.cmb_brick_reinforced, 8); - break; - case HATCH_FRAME: - output = new ItemStack(ModBlocks.seal_frame, 1); - break; - case HATCH_CONTROLLER: - output = new ItemStack(ModBlocks.seal_controller, 1); - break; - case BLAST_DOOR: - output = new ItemStack(ModBlocks.vault_door, 1); - break; - case SLIDING_DOOR: - output = new ItemStack(ModBlocks.blast_door, 1); - break; - case CENTRIFUGE: - output = new ItemStack(ModBlocks.machine_centrifuge, 1); - break; - case CENTRIFUGE_GAS: - output = new ItemStack(ModBlocks.machine_gascent, 1); - break; - case BREEDING_REACTOR: - output = new ItemStack(ModBlocks.machine_reactor, 1); - break; - case RTG_FURNACE: - output = new ItemStack(ModBlocks.machine_rtg_furnace_off, 1); - break; - case RAD_GEN: - output = new ItemStack(ModBlocks.machine_radgen, 1); - break; - case DIESEL_GENERATOR: - output = new ItemStack(ModBlocks.machine_diesel, 1); - break; - case SELENIUM_GENERATOR: - output = new ItemStack(ModBlocks.machine_selenium, 1); - break; - case NUCLEAR_GENERATOR: - output = new ItemStack(ModBlocks.machine_reactor_small, 1); - break; - case CYCLOTRON: - output = new ItemStack(ModBlocks.machine_cyclotron, 1); - break; - case RT_GENERATOR: - output = new ItemStack(ModBlocks.machine_rtg_grey, 1); - break; - case BATTERY: - output = new ItemStack(ModBlocks.machine_battery, 1); - break; - case BATTERY_L: - output = new ItemStack(ModBlocks.machine_lithium_battery, 1); - break; - case BATTERY_S: - output = new ItemStack(ModBlocks.machine_schrabidium_battery, 1); - break; - case BATTERY_D: - output = new ItemStack(ModBlocks.machine_dineutronium_battery, 1); - break; - /*case HE_TO_RF: - output = new ItemStack(ModBlocks.machine_converter_he_rf, 1); - break; - case RF_TO_HE: - output = new ItemStack(ModBlocks.machine_converter_rf_he, 1); - break;*/ - case SHREDDER: - output = new ItemStack(ModBlocks.machine_shredder, 1); - break; - //case DEUTERIUM_EXTRACTOR: - // output = new ItemStack(ModBlocks.machine_deuterium, 1); - // break; - case DERRICK: - output = new ItemStack(ModBlocks.machine_well, 1); - break; - case PUMPJACK: - output = new ItemStack(ModBlocks.machine_pumpjack, 1); - break; - case FLARE_STACK: - output = new ItemStack(ModBlocks.machine_flare, 1); - break; - case REFINERY: - output = new ItemStack(ModBlocks.machine_refinery, 1); - break; - case EPRESS: - output = new ItemStack(ModBlocks.machine_epress, 1); - break; - case CHEMPLANT: - output = new ItemStack(ModBlocks.machine_chemplant, 1); - break; - case TANK: - output = new ItemStack(ModBlocks.machine_fluidtank, 1); - break; - case MINER: - output = new ItemStack(ModBlocks.machine_drill, 1); - break; - case MININGLASER: - output = new ItemStack(ModBlocks.machine_mining_laser, 1); - break; - case TURBOFAN: - output = new ItemStack(ModBlocks.machine_turbofan, 1); - break; - case TELEPORTER: - output = new ItemStack(ModBlocks.machine_teleporter, 1); - break; - case SCHRABTRANS: - output = new ItemStack(ModBlocks.machine_schrabidium_transmutator, 1); - break; - case CMB_FURNACE: - output = new ItemStack(ModBlocks.machine_combine_factory, 1); - break; - case FA_HULL: - output = new ItemStack(ModBlocks.factory_advanced_hull, 1); - break; - case FA_HATCH: - output = new ItemStack(ModBlocks.factory_advanced_furnace, 1); - break; - case FA_CORE: - output = new ItemStack(ModBlocks.factory_advanced_core, 1); - break; - case FA_PORT: - output = new ItemStack(ModBlocks.factory_advanced_conductor, 1); - break; - case LR_ELEMENT: - output = new ItemStack(ModBlocks.reactor_element, 1); - break; - case LR_CONTROL: - output = new ItemStack(ModBlocks.reactor_control, 1); - break; - case LR_HATCH: - output = new ItemStack(ModBlocks.reactor_hatch, 1); - break; - case LR_PORT: - output = new ItemStack(ModBlocks.reactor_conductor, 1); - break; - case LR_CORE: - output = new ItemStack(ModBlocks.reactor_computer, 1); - break; - case LF_MAGNET: - output = new ItemStack(ModBlocks.fusion_conductor, 1); - break; - case LF_CENTER: - output = new ItemStack(ModBlocks.fusion_center, 1); - break; - case LF_MOTOR: - output = new ItemStack(ModBlocks.fusion_motor, 1); - break; - case LF_HEATER: - output = new ItemStack(ModBlocks.fusion_heater, 1); - break; - case LF_HATCH: - output = new ItemStack(ModBlocks.fusion_hatch, 1); - break; - case LF_CORE: - output = new ItemStack(ModBlocks.fusion_core, 1); - break; - case LW_ELEMENT: - output = new ItemStack(ModBlocks.watz_element, 1); - break; - case LW_CONTROL: - output = new ItemStack(ModBlocks.watz_control, 1); - break; - case LW_COOLER: - output = new ItemStack(ModBlocks.watz_cooler, 1); - break; - case LW_STRUTURE: - output = new ItemStack(ModBlocks.watz_end, 1); - break; - case LW_HATCH: - output = new ItemStack(ModBlocks.watz_hatch, 1); - break; - case LW_PORT: - output = new ItemStack(ModBlocks.watz_conductor, 1); - break; - case LW_CORE: - output = new ItemStack(ModBlocks.watz_core, 1); - break; - case FW_PORT: - output = new ItemStack(ModBlocks.fwatz_hatch, 1); - break; - case FW_MAGNET: - output = new ItemStack(ModBlocks.fwatz_conductor, 1); - break; - case FW_COMPUTER: - output = new ItemStack(ModBlocks.fwatz_computer, 1); - break; - case FW_CORE: - output = new ItemStack(ModBlocks.fwatz_core, 1); - break; - case GADGET: - output = new ItemStack(ModBlocks.nuke_gadget, 1); - break; - case LITTLE_BOY: - output = new ItemStack(ModBlocks.nuke_boy, 1); - break; - case FAT_MAN: - output = new ItemStack(ModBlocks.nuke_man, 1); - break; - case IVY_MIKE: - output = new ItemStack(ModBlocks.nuke_mike, 1); - break; - case TSAR_BOMB: - output = new ItemStack(ModBlocks.nuke_tsar, 1); - break; - case PROTOTYPE: - output = new ItemStack(ModBlocks.nuke_prototype, 1); - break; - case FLEIJA: - output = new ItemStack(ModBlocks.nuke_fleija, 1); - break; - case SOLINIUM: - output = new ItemStack(ModBlocks.nuke_solinium, 1); - break; - case N2: - output = new ItemStack(ModBlocks.nuke_n2, 1); - break; - case CUSTOM_NUKE: - output = new ItemStack(ModBlocks.nuke_custom, 1); - break; - case BOMB_LEV: - output = new ItemStack(ModBlocks.float_bomb, 1); - break; - case BOMB_ENDO: - output = new ItemStack(ModBlocks.therm_endo, 1); - break; - case BOMB_EXO: - output = new ItemStack(ModBlocks.therm_exo, 1); - break; - case LAUNCH_PAD: - output = new ItemStack(ModBlocks.launch_pad, 1); - break; - case TURRET_LIGHT: - output = new ItemStack(ModBlocks.turret_light, 1); - break; - case TURRET_HEAVY: - output = new ItemStack(ModBlocks.turret_heavy, 1); - break; - case TURRET_ROCKET: - output = new ItemStack(ModBlocks.turret_rocket, 1); - break; - case TURRET_FLAMER: - output = new ItemStack(ModBlocks.turret_flamer, 1); - break; - case TURRET_TAU: - output = new ItemStack(ModBlocks.turret_tau, 1); - break; - case TURRET_SPITFIRE: - output = new ItemStack(ModBlocks.turret_spitfire, 1); - break; - case TURRET_CIWS: - output = new ItemStack(ModBlocks.turret_cwis, 1); - break; - case TURRET_CHEAPO: - output = new ItemStack(ModBlocks.turret_cheapo, 1); - break; - case HUNTER_CHOPPER: - output = new ItemStack(ModItems.spawn_chopper, 1); - break; - case MISSILE_HE_1: - output = new ItemStack(ModItems.missile_generic, 1); - break; - case MISSILE_FIRE_1: - output = new ItemStack(ModItems.missile_incendiary, 1); - break; - case MISSILE_CLUSTER_1: - output = new ItemStack(ModItems.missile_cluster, 1); - break; - case MISSILE_BUSTER_1: - output = new ItemStack(ModItems.missile_buster, 1); - break; - case MISSILE_HE_2: - output = new ItemStack(ModItems.missile_strong, 1); - break; - case MISSILE_FIRE_2: - output = new ItemStack(ModItems.missile_incendiary_strong, 1); - break; - case MISSILE_CLUSTER_2: - output = new ItemStack(ModItems.missile_cluster_strong, 1); - break; - case MISSILE_BUSTER_2: - output = new ItemStack(ModItems.missile_buster_strong, 1); - break; - case MISSILE_HE_3: - output = new ItemStack(ModItems.missile_burst, 1); - break; - case MISSILE_FIRE_3: - output = new ItemStack(ModItems.missile_inferno, 1); - break; - case MISSILE_CLUSTER_3: - output = new ItemStack(ModItems.missile_rain, 1); - break; - case MISSILE_BUSTER_3: - output = new ItemStack(ModItems.missile_drill, 1); - break; - case MISSILE_NUCLEAR: - output = new ItemStack(ModItems.missile_nuclear, 1); - break; - case MISSILE_MIRV: - output = new ItemStack(ModItems.missile_nuclear_cluster, 1); - break; - case MISSILE_ENDO: - output = new ItemStack(ModItems.missile_endo, 1); - break; - case MISSILE_EXO: - output = new ItemStack(ModItems.missile_exo, 1); - break; - case DEFAB: - output = new ItemStack(ModItems.gun_defabricator, 1); - break; - case MINI_NUKE: - output = new ItemStack(ModItems.gun_fatman_ammo, 1); - break; - case MINI_MIRV: - output = new ItemStack(ModItems.gun_mirv_ammo, 1); - break; - case DARK_PLUG: - output = new ItemStack(ModItems.gun_osipr_ammo, 24); - break; - case COMBINE_BALL: - output = new ItemStack(ModItems.gun_osipr_ammo2, 1); - break; - case GRENADE_FLAME: - output = new ItemStack(ModItems.grenade_fire, 1); - break; - case GRENADE_SHRAPNEL: - output = new ItemStack(ModItems.grenade_shrapnel, 1); - break; - case GRENAGE_CLUSTER: - output = new ItemStack(ModItems.grenade_cluster, 1); - break; - case GREANADE_FLARE: - output = new ItemStack(ModItems.grenade_flare, 1); - break; - case GRENADE_LIGHTNING: - output = new ItemStack(ModItems.grenade_electric, 1); - break; - case GRENADE_IMPULSE: - output = new ItemStack(ModItems.grenade_pulse, 4); - break; - case GRENADE_PLASMA: - output = new ItemStack(ModItems.grenade_plasma, 2); - break; - case GRENADE_TAU: - output = new ItemStack(ModItems.grenade_tau, 2); - break; - case GRENADE_SCHRABIDIUM: - output = new ItemStack(ModItems.grenade_schrabidium, 1); - break; - case GRENADE_NUKE: - output = new ItemStack(ModItems.grenade_nuclear, 1); - break; - case GRENADE_ZOMG: - output = new ItemStack(ModItems.grenade_zomg, 1); - break; - case GRENADE_BLACK_HOLE: - output = new ItemStack(ModItems.grenade_black_hole, 1); - break; - case POWER_FIST: - ItemStack multitool = new ItemStack(ModItems.multitool_dig, 1); - multitool.addEnchantment(Enchantments.LOOTING, 3); - multitool.addEnchantment(Enchantments.FORTUNE, 3); - output = multitool.copy(); - break; - case GADGET_PROPELLANT: - output = new ItemStack(ModItems.gadget_explosive, 1); - break; - case GADGET_WIRING: - output = new ItemStack(ModItems.gadget_wireing, 1); - break; - case GADGET_CORE: - output = new ItemStack(ModItems.gadget_core, 1); - break; - case BOY_SHIELDING: - output = new ItemStack(ModItems.boy_shielding, 1); - break; - case BOY_TARGET: - output = new ItemStack(ModItems.boy_target, 1); - break; - case BOY_BULLET: - output = new ItemStack(ModItems.boy_bullet, 1); - break; - case BOY_PRPELLANT: - output = new ItemStack(ModItems.boy_propellant, 1); - break; - case BOY_IGNITER: - output = new ItemStack(ModItems.boy_igniter, 1); - break; - case MAN_PROPELLANT: - output = new ItemStack(ModItems.man_explosive, 1); - break; - case MAN_IGNITER: - output = new ItemStack(ModItems.man_igniter, 1); - break; - case MAN_CORE: - output = new ItemStack(ModItems.man_core, 1); - break; - case MIKE_TANK: - output = new ItemStack(ModItems.mike_core, 1); - break; - case MIKE_DEUT: - output = new ItemStack(ModItems.mike_deut, 1); - break; - case MIKE_COOLER: - output = new ItemStack(ModItems.mike_cooling_unit, 1); - break; - case FLEIJA_IGNITER: - output = new ItemStack(ModItems.fleija_igniter, 1); - break; - case FLEIJA_CORE: - output = new ItemStack(ModItems.fleija_core, 1); - break; - case FLEIJA_PROPELLANT: - output = new ItemStack(ModItems.fleija_propellant, 1); - break; - case SOLINIUM_IGNITER: - output = new ItemStack(ModItems.solinium_igniter, 1); - break; - case SOLINIUM_CORE: - output = new ItemStack(ModItems.solinium_core, 1); - break; - case SOLINIUM_PROPELLANT: - output = new ItemStack(ModItems.solinium_propellant, 1); - break; - case COMPONENT_LIMITER: - output = new ItemStack(ModItems.component_limiter, 1); - break; - case COMPONENT_EMITTER: - output = new ItemStack(ModItems.component_emitter, 1); - break; - case AMS_LIMITER: - output = new ItemStack(ModBlocks.ams_limiter, 1); - break; - case AMS_EMITTER: - output = new ItemStack(ModBlocks.ams_emitter, 1); - break; - case RADAR: - output = new ItemStack(ModBlocks.machine_radar, 1); - break; - case FORCEFIELD: - output = new ItemStack(ModBlocks.machine_forcefield, 1); - break; - default: - output = new ItemStack(Items.STICK, 1); - break; - } - - return output; - } - - public static int getProcessTime(EnumAssemblyTemplate enum1) { - - - if(enum1.time != 0) - return enum1.time; - - switch (enum1) { - case IRON_PLATE: - return 30; - case GOLD_PLATE: - return 30; - case TITANIUM_PLATE: - return 30; - case ALUMINIUM_PLATE: - return 30; - case STEEL_PLATE: - return 30; - case LEAD_PLATE: - return 30; - case COPPER_PLATE: - return 30; - case ADVANCED_PLATE: - return 30; - case SCHRABIDIUM_PLATE: - return 30; - case CMB_PLATE: - return 30; - case SATURN_PLATE: - return 30; - case MIXED_PLATE: - return 50; - case ALUMINIUM_WIRE: - return 20; - case COPPER_WIRE: - return 20; - case TUNGSTEN_WIRE: - return 20; - case REDCOPPER_WIRE: - return 20; - case ADVANCED_WIRE: - return 20; - case GOLD_WIRE: - return 20; - case SCHRABIDIUM_WIRE: - return 20; - case MAGNETIZED_WIRE: - return 20; - case HAZMAT_CLOTH: - return 50; - case ASBESTOS_CLOTH: - return 50; - case COAL_FILTER: - return 50; - case CENTRIFUGE_ELEMENT: - return 200; - case CENTRIFUGE_TOWER: - return 150; - case DEE_MAGNET: - return 100; - case FLAT_MAGNET: - return 150; - case CYCLOTRON_TOWER: - return 300; - case REACTOR_CORE: - return 100; - case RTG_UNIT: - return 100; - case HEAT_UNIT: - return 100; - case GRAVITY_UNIT: - return 100; - case TITANIUM_DRILL: - return 100; - case TELEPAD: - return 300; - case TELEKIT: - return 200; - case GEASS_REACTOR: - return 200; - case MISSILE_ASSEMBLY: - return 200; - case CARRIER: - return 4800; - case WT1_GENERIC: - return 100; - case WT2_GENERIC: - return 150; - case WT3_GENERIC: - return 200; - case WT1_FIRE: - return 100; - case WT2_FIRE: - return 150; - case WT3_FIRE: - return 200; - case WT1_CLUSTER: - return 100; - case WT2_CLUSTER: - return 150; - case WT3_CLUSTER: - return 200; - case WT1_BUSTER: - return 100; - case WT2_BUSTER: - return 150; - case WT3_BUSTER: - return 200; - case W_NUCLEAR: - return 300; - case W_MIRVLET: - return 250; - case W_MIRV: - return 500; - case W_ENDOTHERMIC: - return 300; - case W_EXOTHERMIC: - return 300; - case T1_TANK: - return 100; - case T2_TANK: - return 150; - case T3_TANK: - return 200; - case T1_THRUSTER: - return 100; - case T2_THRUSTER: - return 150; - case T3_THRUSTER: - return 200; - case NUCLEAR_THRUSTER: - return 600; - case SAT_BASE: - return 500; - case SAT_MAPPER: - return 400; - case SAT_SCANNER: - return 400; - case SAT_RADAR: - return 400; - case SAT_LASER: - return 450; - case SAT_RESONATOR: - return 1000; - case SAT_FOEQ: - return 1200; - case SAT_MINER: - return 600; - case CHOPPER_HEAD: - return 300; - case CHOPPER_GUN: - return 150; - case CHOPPER_BODY: - return 350; - case CHOPPER_TAIL: - return 200; - case CHOPPER_WING: - return 150; - case CHOPPER_BLADES: - return 200; - case CIRCUIT_1: - return 50; - case CIRCUIT_2: - return 100; - case CIRCUIT_3: - return 150; - case RTG_PELLET: - return 50; - case WEAK_PELLET: - return 50; - case FUSION_PELLET: - return 150; - case CLUSTER_PELLETS: - return 50; - case GUN_PELLETS: - return 50; - case AUSTRALIUM_MACHINE: - return 150; - case MAGNETRON: - return 100; - case W_SP: - return 200; - case W_SHE: - return 200; - case W_SME: - return 200; - case W_SLE: - return 200; - case W_B: - return 200; - case W_N: - return 200; - case W_L: - return 200; - case W_A: - return 200; - case UPGRADE_TEMPLATE: - return 100; - case UPGRADE_RED_I: - return 200; - case UPGRADE_RED_II: - return 300; - case UPGRADE_RED_III: - return 500; - case UPGRADE_GREEN_I: - return 200; - case UPGRADE_GREEN_II: - return 300; - case UPGRADE_GREEN_III: - return 500; - case UPGRADE_BLUE_I: - return 200; - case UPGRADE_BLUE_II: - return 300; - case UPGRADE_BLUE_III: - return 500; - case UPGRADE_PURPLE_I: - return 200; - case UPGRADE_PURPLE_II: - return 300; - case UPGRADE_PURPLE_III: - return 500; - case UPGRADE_PINK_I: - return 200; - case UPGRADE_PINK_II: - return 300; - case UPGRADE_PINK_III: - return 500; - case UPGRADE_RANGE: - return 500; - case UPGRADE_HEALTH: - return 500; - case FUSE: - return 100; - case REDCOIL_CAPACITOR: - return 200; - case TITANIUM_FILTER: - return 200; - case LITHIUM_BOX: - return 50; - case BERYLLIUM_BOX: - return 50; - case COAL_BOX: - return 50; - case COPPER_BOX: - return 50; - case PLUTONIUM_BOX: - return 50; - case THERMO_ELEMENT: - return 150; - case ANGRY_METAL: - return 50; - case METEOR_BLOCK: - return 500; - case CMB_TILE: - return 100; - case CMB_BRICKS: - return 200; - case HATCH_FRAME: - return 50; - case HATCH_CONTROLLER: - return 100; - case BLAST_DOOR: - return 300; - case SLIDING_DOOR: - return 200; - case CENTRIFUGE: - return 250; - case CENTRIFUGE_GAS: - return 300; - case BREEDING_REACTOR: - return 150; - case RTG_FURNACE: - return 150; - case RAD_GEN: - return 400; - case DIESEL_GENERATOR: - return 200; - case SELENIUM_GENERATOR: - return 250; - case NUCLEAR_GENERATOR: - return 300; - case CYCLOTRON: - return 600; - case RT_GENERATOR: - return 200; - case BATTERY: - return 200; - case BATTERY_L: - return 400; - case BATTERY_S: - return 800; - case BATTERY_D: - return 1600; - //case HE_TO_RF: - // return 150; - //case RF_TO_HE: - // return 150; - case SHREDDER: - return 200; - case DERRICK: - return 250; - case PUMPJACK: - return 400; - case FLARE_STACK: - return 200; - case REFINERY: - return 350; - case EPRESS: - return 160; - case CHEMPLANT: - return 200; - case TANK: - return 150; - case MINER: - return 200; - case MININGLASER: - return 400; - case TURBOFAN: - return 500; - case TELEPORTER: - return 300; - case SCHRABTRANS: - return 500; - case CMB_FURNACE: - return 150; - case FA_HULL: - return 50; - case FA_HATCH: - return 100; - case FA_CORE: - return 100; - case FA_PORT: - return 50; - /*case LR_ELEMENT: - return 150; - case LR_CONTROL: - return 100; - case LR_HATCH: - return 150; - case LR_PORT: - return 150; - case LR_CORE: - return 250;*/ - case LF_MAGNET: - return 150; - case LF_CENTER: - return 200; - case LF_MOTOR: - return 250; - case LF_HEATER: - return 150; - case LF_HATCH: - return 250; - case LF_CORE: - return 350; - case LW_ELEMENT: - return 200; - case LW_CONTROL: - return 250; - case LW_COOLER: - return 300; - case LW_STRUTURE: - return 150; - case LW_HATCH: - return 200; - case LW_PORT: - return 250; - case LW_CORE: - return 350; - case FW_PORT: - return 250; - case FW_MAGNET: - return 250; - case FW_COMPUTER: - return 300; - case FW_CORE: - return 450; - case GADGET: - return 300; - case LITTLE_BOY: - return 300; - case FAT_MAN: - return 300; - case IVY_MIKE: - return 300; - case TSAR_BOMB: - return 600; - case PROTOTYPE: - return 500; - case FLEIJA: - return 400; - case SOLINIUM: - return 400; - case N2: - return 300; - case CUSTOM_NUKE: - return 300; - case BOMB_LEV: - return 250; - case BOMB_ENDO: - return 250; - case BOMB_EXO: - return 250; - case LAUNCH_PAD: - return 250; - case TURRET_LIGHT: - return 200; - case TURRET_HEAVY: - return 250; - case TURRET_ROCKET: - return 300; - case TURRET_FLAMER: - return 250; - case TURRET_TAU: - return 350; - case TURRET_SPITFIRE: - return 350; - case TURRET_CIWS: - return 400; - case TURRET_CHEAPO: - return 200; - case HUNTER_CHOPPER: - return 300; - case MISSILE_HE_1: - return 200; - case MISSILE_FIRE_1: - return 200; - case MISSILE_CLUSTER_1: - return 200; - case MISSILE_BUSTER_1: - return 200; - case MISSILE_HE_2: - return 250; - case MISSILE_FIRE_2: - return 250; - case MISSILE_CLUSTER_2: - return 250; - case MISSILE_BUSTER_2: - return 250; - case MISSILE_HE_3: - return 350; - case MISSILE_FIRE_3: - return 350; - case MISSILE_CLUSTER_3: - return 350; - case MISSILE_BUSTER_3: - return 350; - case MISSILE_NUCLEAR: - return 500; - case MISSILE_MIRV: - return 600; - case MISSILE_ENDO: - return 350; - case MISSILE_EXO: - return 350; - case DEFAB: - return 200; - case MINI_NUKE: - return 40; - case MINI_MIRV: - return 100; - case DARK_PLUG: - return 50; - case COMBINE_BALL: - return 200; - case GRENADE_FLAME: - return 150; - case GRENADE_SHRAPNEL: - return 150; - case GRENAGE_CLUSTER: - return 200; - case GREANADE_FLARE: - return 100; - case GRENADE_LIGHTNING: - return 200; - case GRENADE_IMPULSE: - return 300; - case GRENADE_PLASMA: - return 300; - case GRENADE_TAU: - return 300; - case GRENADE_SCHRABIDIUM: - return 300; - case GRENADE_NUKE: - return 200; - case GRENADE_ZOMG: - return 300; - case GRENADE_BLACK_HOLE: - return 500; - case POWER_FIST: - return 600; - case GADGET_PROPELLANT: - return 200; - case GADGET_WIRING: - return 100; - case GADGET_CORE: - return 200; - case BOY_SHIELDING: - return 150; - case BOY_TARGET: - return 200; - case BOY_BULLET: - return 100; - case BOY_PRPELLANT: - return 100; - case BOY_IGNITER: - return 150; - case MAN_PROPELLANT: - return 200; - case MAN_IGNITER: - return 150; - case MAN_CORE: - return 250; - case MIKE_TANK: - return 300; - case MIKE_DEUT: - return 200; - case MIKE_COOLER: - return 200; - case FLEIJA_IGNITER: - return 300; - case FLEIJA_CORE: - return 500; - case FLEIJA_PROPELLANT: - return 400; - case SOLINIUM_IGNITER: - return 400; - case SOLINIUM_CORE: - return 400; - case SOLINIUM_PROPELLANT: - return 350; - case SCHRABIDIUM_HAMMER: - return 1000; - case COMPONENT_LIMITER: - return 2500; - case COMPONENT_EMITTER: - return 2500; - case AMS_LIMITER: - return 6000; - case AMS_EMITTER: - return 6000; - case RADAR: - return 300; - case FORCEFIELD: - return 1000; - default: - return 100; - } - } - -} diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index 6ee6a871dc..f6fccaa369 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -124,11 +124,11 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c EntityLivingBase livingCEntity = (EntityLivingBase) entity; boolean isProtected = entity instanceof EntityPlayer && ArmorUtil.checkForHazmat((EntityPlayer)entity); if(!isProtected){ - livingCEntity.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 100, this.cryogenic-1)); - livingCEntity.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 100, Math.min(4, this.cryogenic-1))); - livingCEntity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 100, this.cryogenic-1)); + livingCEntity.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 110, this.cryogenic-1)); + livingCEntity.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 110, Math.min(4, this.cryogenic-1))); + livingCEntity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 110, this.cryogenic-1)); if(this.cryogenic > 4){ - livingCEntity.addPotionEffect(new PotionEffect(MobEffects.WITHER, 100, this.cryogenic-3)); + livingCEntity.addPotionEffect(new PotionEffect(MobEffects.WITHER, 110, this.cryogenic-3)); entity.extinguish(); } } @@ -146,30 +146,30 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c boolean hasHazmat = false; if(entity instanceof EntityPlayer){ if(ArmorRegistry.hasProtection(livingTEntity, EntityEquipmentSlot.HEAD, HazardClass.NERVE_AGENT)){ - ArmorUtil.damageGasMaskFilter(livingTEntity, Math.max(1, this.toxic>>2)); + ArmorUtil.damageGasMaskFilter(livingTEntity, 1); hasToxFilter = true; } hasHazmat = ArmorUtil.checkForHazmat((EntityPlayer)entity); } if(!hasToxFilter && !hasHazmat){ - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 100, this.toxic-1)); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 110, this.toxic-1)); if(this.toxic > 2) - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 100, Math.min(4, this.toxic-4))); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 110, Math.min(4, this.toxic-4))); if(this.toxic > 4) - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 100, this.toxic)); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 110, this.toxic)); if(this.toxic > 6){ if(entity.world.rand.nextInt((int)(2000/this.toxic)) == 0){ - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.POISON, 100, this.toxic-4)); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.POISON, 110, this.toxic-4)); } } } if(!(hasHazmat && hasToxFilter)){ if(this.toxic > 8) - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 100, this.toxic-8)); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 110, this.toxic-8)); if(this.toxic > 16) - livingTEntity.addPotionEffect(new PotionEffect(MobEffects.INSTANT_DAMAGE, 100, this.toxic-16)); + livingTEntity.addPotionEffect(new PotionEffect(MobEffects.INSTANT_DAMAGE, 110, this.toxic-16)); } } } @@ -209,16 +209,14 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c } if(this.blinding && !ArmorRegistry.hasProtection(entity, EntityEquipmentSlot.HEAD, HazardClass.LIGHT)) { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 100, 0)); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 110, 0)); } } public static float getNewValue(float radiation){ - if(radiation < 1000){ + if(radiation < 1000000){ return radiation; - } else if (radiation<1000000){ - return radiation * 0.001F; - }else if(radiation < 1000000000){ + } else if(radiation < 1000000000){ return radiation * 0.000001F; } else{ return radiation * 0.000000001F; @@ -228,15 +226,12 @@ public static float getNewValue(float radiation){ public static String getSuffix(float radiation){ if(radiation < 1000){ return ""; - } else if(radiation < 1000000){ - return I18nUtil.resolveKey("desc.thd"); - }else if(radiation < 1000000000){ + } else if(radiation < 1000000000){ return I18nUtil.resolveKey("desc.mil"); } else{ return I18nUtil.resolveKey("desc.bil"); } } - public void addInformation(ItemStack stack, List list, ITooltipFlag flagIn) { @@ -247,7 +242,7 @@ public void addInformation(ItemStack stack, List list, ITooltipFlag flag if(stack.getCount() > 1) { float stackRad = radiation * tempMod * stack.getCount(); - list.add(TextFormatting.YELLOW + (I18nUtil.resolveKey("desc.stack") + " " + Library.roundFloat(getNewValue(stackRad), 3) + getSuffix(stackRad) + " " + I18nUtil.resolveKey("desc.rads"))); + list.add(TextFormatting.YELLOW + I18nUtil.resolveKey("desc.stack")+" " + Library.roundFloat(getNewValue(stackRad), 3) + getSuffix(stackRad) + " " + I18nUtil.resolveKey("desc.rads")); } } @@ -296,7 +291,7 @@ else if(this.toxic > 2) list.add(TextFormatting.RED + "[" + I18nUtil.resolveKey("trait.digamma") + "]"); list.add(TextFormatting.DARK_RED + "" + Library.roundFloat(digamma * tempMod * 1000F, 2) + " " + I18nUtil.resolveKey("desc.digammaed")); if(stack.getCount() > 1) { - list.add(TextFormatting.DARK_RED + I18nUtil.resolveKey("desc.stack") + " " + Library.roundFloat(digamma * tempMod * stack.getCount() * 1000F, 2) + " " + I18nUtil.resolveKey("desc.digamma;ed")); + list.add(TextFormatting.DARK_RED + I18nUtil.resolveKey("desc.stack") + " " + Library.roundFloat(digamma * tempMod * stack.getCount() * 1000F, 2) + " " + I18nUtil.resolveKey("desc.digammaed")); } } diff --git a/src/main/java/com/hbm/modules/ModuleBurnTime.java b/src/main/java/com/hbm/modules/ModuleBurnTime.java index 565cac1c8a..b33ba0aa06 100644 --- a/src/main/java/com/hbm/modules/ModuleBurnTime.java +++ b/src/main/java/com/hbm/modules/ModuleBurnTime.java @@ -7,9 +7,11 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.items.ModItems; +import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.util.ItemStackUtil; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.util.text.TextFormatting; @@ -98,20 +100,23 @@ public double getMod(ItemStack stack, double[] mod) { return 0; if(stack.getItem() == ModItems.solid_fuel) return mod[modSolid]; - //if(stack.getItem() == ModItems.solid_fuel_presto) return mod[modSolid]; - //if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return mod[modSolid]; + if(stack.getItem() == ModItems.solid_fuel_presto) return mod[modSolid]; + if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return mod[modSolid]; + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_solid_fuel)) return mod[modSolid]; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_solid_fuel_presto)) return mod[modSolid]; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_solid_fuel_presto_triplet)) return mod[modSolid]; - //if(stack.getItem() == ModItems.solid_fuel_bf) return mod[modBalefire]; - //if(stack.getItem() == ModItems.solid_fuel_presto_bf) return mod[modBalefire]; - //if(stack.getItem() == ModItems.solid_fuel_presto_triplet_bf) return mod[modBalefire]; if(stack.getItem() == ModItems.rocket_fuel) return mod[modRocket]; + if(stack.getItem() == ModItems.pellet_coal) return mod[modCoal]; List names = ItemStackUtil.getOreDictNames(stack); for(String name : names) { if(name.contains("Coke")) return mod[modCoke]; if(name.contains("Coal")) return mod[modCoal]; + if(name.contains("Charcoal")) return mod[modLignite]; if(name.contains("Lignite")) return mod[modLignite]; if(name.startsWith("log")) return mod[modLog]; if(name.contains("Wood")) return mod[modWood]; diff --git a/src/main/java/com/hbm/modules/ModulePatternMatcher.java b/src/main/java/com/hbm/modules/ModulePatternMatcher.java index 1c4c7d807b..68cdce2537 100644 --- a/src/main/java/com/hbm/modules/ModulePatternMatcher.java +++ b/src/main/java/com/hbm/modules/ModulePatternMatcher.java @@ -113,10 +113,14 @@ public void nextMode(World world, ItemStack pattern, int i) { } } - public boolean isValidForFilter(ItemStack filter, int index, ItemStack input) { + public boolean isValidForFilter(ItemStack f, int index, ItemStack i) { String mode = modes[index]; - + ItemStack filter = f.copy(); + filter.setCount(1); + ItemStack input = i.copy(); + input.setCount(1); + if(mode == null) { modes[index] = mode = MODE_EXACT; } diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index ff28c04cc7..b6d020c452 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -6,7 +6,7 @@ import com.hbm.render.amlfrom1710.Vec3; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.bomb.TileEntityNukeN45; +import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityRailgun; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; @@ -196,10 +196,6 @@ else if(m.id == 3) if(m.id == 0) boiler.heat = m.value; - } else if(te instanceof TileEntityNukeN45) { - TileEntityNukeN45 nuke = (TileEntityNukeN45) te; - - nuke.primed = m.value == 1; } else if(te instanceof TileEntityMachineReactorLarge) { TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge) te; @@ -207,8 +203,15 @@ else if(m.id == 3) reactor.size = m.value; } else if(te instanceof TileEntityCompactLauncher) { TileEntityCompactLauncher launcher = (TileEntityCompactLauncher) te; + + if(m.id == 0) + launcher.solid = m.value; + if(m.id == 1) + launcher.clearingTimer = m.value; + } else if(te instanceof TileEntityLaunchPad) { + TileEntityLaunchPad launcher = (TileEntityLaunchPad) te; - launcher.solid = m.value; + launcher.clearingTimer = m.value; } else if(te instanceof TileEntityLaunchTable) { TileEntityLaunchTable launcher = (TileEntityLaunchTable) te; @@ -216,6 +219,8 @@ else if(m.id == 3) launcher.solid = m.value; if(m.id == 1) launcher.padSize = PartSize.values()[m.value]; + if(m.id == 2) + launcher.clearingTimer = m.value; } else if(te instanceof TileEntityRailgun) { TileEntityRailgun gen = (TileEntityRailgun) te; diff --git a/src/main/java/com/hbm/packet/JetpackSyncPacket.java b/src/main/java/com/hbm/packet/JetpackSyncPacket.java index 9af03c697b..b68c83d4e9 100644 --- a/src/main/java/com/hbm/packet/JetpackSyncPacket.java +++ b/src/main/java/com/hbm/packet/JetpackSyncPacket.java @@ -75,7 +75,5 @@ public void handleMessageClient(JetpackSyncPacket m, MessageContext ctx) { } }); } - } - } diff --git a/src/main/java/com/hbm/packet/KeybindPacket.java b/src/main/java/com/hbm/packet/KeybindPacket.java index d1b7da8843..68f39a6cfe 100644 --- a/src/main/java/com/hbm/packet/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/KeybindPacket.java @@ -4,7 +4,6 @@ import com.hbm.capability.HbmCapability.IHBMData; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.items.gear.ArmorFSB; -import com.hbm.main.MainRegistry; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; @@ -13,7 +12,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.SoundCategory; -import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index b0da976e0e..eab0ad2a20 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -5,7 +5,6 @@ import com.hbm.sound.SoundLoopBroadcaster; import com.hbm.sound.SoundLoopCentrifuge; import com.hbm.sound.SoundLoopChemplant; -import com.hbm.sound.SoundLoopMiner; import com.hbm.sound.SoundLoopTurbofan; import com.hbm.sound.SoundLoopFel; import com.hbm.tileentity.machine.TileEntityBroadcaster; @@ -14,7 +13,6 @@ import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineChemfac; import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityFEL; @@ -78,19 +76,6 @@ public IMessage onMessage(LoopedSoundPacket m, MessageContext ctx) { Minecraft.getMinecraft().addScheduledTask(() -> { BlockPos pos = new BlockPos(m.x, m.y, m.z); TileEntity te = Minecraft.getMinecraft().world.getTileEntity(pos); - - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - boolean flag = true; - for(int i = 0; i < SoundLoopMiner.list.size(); i++) { - if(SoundLoopMiner.list.get(i).getTE() == te && !SoundLoopMiner.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorld().isRemote && ((TileEntityMachineMiningDrill)te).torque > 0.2F) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopMiner(HBMSoundHandler.minerOperate, te)); - } if (te != null && te instanceof TileEntityMachineChemplant) { diff --git a/src/main/java/com/hbm/packet/PacketCreatePhysTree.java b/src/main/java/com/hbm/packet/PacketCreatePhysTree.java deleted file mode 100644 index 62b924fcca..0000000000 --- a/src/main/java/com/hbm/packet/PacketCreatePhysTree.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hbm.packet; - -import java.util.HashSet; -import java.util.Set; - -import com.hbm.physics.ParticlePhysicsBlocks; - -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.init.Blocks; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class PacketCreatePhysTree implements IMessage { - - public BlockPos pos; - - public PacketCreatePhysTree() { - } - - public PacketCreatePhysTree(BlockPos pos) { - this.pos = pos; - } - - @Override - public void fromBytes(ByteBuf buf) { - this.pos = BlockPos.fromLong(buf.readLong()); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeLong(pos.toLong()); - } - - public static int recurseFloodFill(BlockPos current, int count, Set blocks){ - if(count > 100) - return -1; - if(Minecraft.getMinecraft().world.getBlockState(current).getBlock() == Blocks.AIR){ - return count; - } - blocks.add(current); - count ++; - for(EnumFacing e : EnumFacing.VALUES){ - BlockPos newPos = current.offset(e); - if(!blocks.contains(newPos)){ - count = recurseFloodFill(newPos, count, blocks); - if(count == -1) - return -1; - } - } - return count; - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(PacketCreatePhysTree m, MessageContext ctx) { - Minecraft.getMinecraft().addScheduledTask(() ->{ - Set blocks = new HashSet<>(); - int recurse = recurseFloodFill(m.pos, 0, blocks); - if(recurse > 0 && blocks.size() > 0){ - Minecraft.getMinecraft().effectRenderer.addEffect(new ParticlePhysicsBlocks(Minecraft.getMinecraft().world, m.pos.getX(), m.pos.getY(), m.pos.getZ(), m.pos, blocks.toArray(new BlockPos[0]))); - //ModEventHandlerClient.firstPersonAuxParticles.add(new ParticlePhysicsBlocks(Minecraft.getMinecraft().world, m.pos.getX(), m.pos.getY(), m.pos.getZ(), m.pos, blocks.toArray(new BlockPos[0]))); - } - }); - return null; - } - - } - -} diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index e2fa1076f9..a93ee722a5 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -14,6 +14,7 @@ public class PacketDispatcher { public static final void registerPackets(){ int i = 0; + //PressPacket wrapper.registerMessage(TEPressPacket.Handler.class, TEPressPacket.class, i++, Side.CLIENT); //Send chunk radiation packet to individual players @@ -76,8 +77,6 @@ public static final void registerPackets(){ wrapper.registerMessage(TEControlPacket.Handler.class, TEControlPacket.class, i++, Side.CLIENT); //Pumpjack rotation packet wrapper.registerMessage(TEPumpjackPacket.Handler.class, TEPumpjackPacket.class, i++, Side.CLIENT); - //Mining drill rotation for rendering - wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); //Turbofan spin for rendering wrapper.registerMessage(TETurbofanPacket.Handler.class, TETurbofanPacket.class, i++, Side.CLIENT); //Machine type for marker rendering @@ -94,8 +93,6 @@ public static final void registerPackets(){ wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Siren packet for looped sounds Drillgon200: Wrong descriptions, but eh, whatever. wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); - //Siren packet for looped sounds - //wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); //Packet for causing pipes to rebuild their connections wrapper.registerMessage(PipeUpdatePacket.Handler.class, PipeUpdatePacket.class, i++, Side.CLIENT); //Packet for updating entities being zapped @@ -131,8 +128,7 @@ public static final void registerPackets(){ wrapper.registerMessage(PacketSpecialDeath.Handler.class, PacketSpecialDeath.class, i++, Side.CLIENT); //Universal keybind packet wrapper.registerMessage(KeybindPacket.Handler.class, KeybindPacket.class, i++, Side.SERVER); - //DELETE LATER - //wrapper.registerMessage(PacketCreatePhysTree.Handler.class, PacketCreatePhysTree.class, i++, Side.CLIENT); + wrapper.registerMessage(KeybindPacket.Handler.class, KeybindPacket.class, i-1, Side.CLIENT); //To tell the server to cut a mob for the cutting swords wrapper.registerMessage(PacketMobSlicer.Handler.class, PacketMobSlicer.class, i++, Side.SERVER); //Sync packet for jetpack data @@ -142,7 +138,7 @@ public static final void registerPackets(){ wrapper.registerMessage(NBTControlPacket.Handler.class, NBTControlPacket.class, i++, Side.SERVER); wrapper.registerMessage(AnvilCraftPacket.Handler.class, AnvilCraftPacket.class, i++, Side.SERVER); wrapper.registerMessage(ControlPanelUpdatePacket.Handler.class, ControlPanelUpdatePacket.class, i++, Side.CLIENT); -// wrapper.registerMessage(ControlPanelLinkerServerPacket.Handler.class, ControlPanelUpdatePacket.class, i++, Side.SERVER); +// wrapper.registerMessage(ControlPanelLinkerServerPacket.Handler.class, ControlPanelUpdatePacket.class, i++, Side.SERVER); // wrapper.registerMessage(ControlPanelLinkerClientPacket.Handler.class, ControlPanelUpdatePacket.class, i++, Side.CLIENT); } @@ -150,5 +146,4 @@ public static void sendTo(IMessage message, EntityPlayerMP player){ if(player != null) wrapper.sendTo(message, player); } - } diff --git a/src/main/java/com/hbm/packet/TEDrillPacket.java b/src/main/java/com/hbm/packet/TEDrillPacket.java deleted file mode 100644 index 9c5a30df6e..0000000000 --- a/src/main/java/com/hbm/packet/TEDrillPacket.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TEDrillPacket implements IMessage { - - int x; - int y; - int z; - float spin; - float torque; - - public TEDrillPacket() - { - - } - - public TEDrillPacket(int x, int y, int z, float spin, float torque) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - this.torque = torque; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - torque = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - buf.writeFloat(torque); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TEDrillPacket m, MessageContext ctx) { - Minecraft.getMinecraft().addScheduledTask(() -> { - TileEntity te = Minecraft.getMinecraft().world.getTileEntity(new BlockPos(m.x, m.y, m.z)); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.rotation = m.spin; - gen.torque = m.torque; - } - }); - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEMissilePacket.java b/src/main/java/com/hbm/packet/TEMissilePacket.java index 309282824b..ab1877ded3 100644 --- a/src/main/java/com/hbm/packet/TEMissilePacket.java +++ b/src/main/java/com/hbm/packet/TEMissilePacket.java @@ -86,7 +86,8 @@ public TEMissilePacket(int x, int y, int z, ItemStack stack) type = 25; if(stack.getItem() == ModItems.missile_volcano) type = 26; - + if(stack.getItem() == ModItems.missile_n2) + type = 27; } } @@ -125,6 +126,5 @@ public IMessage onMessage(TEMissilePacket message, MessageContext ctx) { }); return null; } - } } diff --git a/src/main/java/com/hbm/packet/TEPumpjackPacket.java b/src/main/java/com/hbm/packet/TEPumpjackPacket.java index f6e49d0c59..8b3c3f159b 100644 --- a/src/main/java/com/hbm/packet/TEPumpjackPacket.java +++ b/src/main/java/com/hbm/packet/TEPumpjackPacket.java @@ -67,7 +67,7 @@ public IMessage onMessage(TEPumpjackPacket m, MessageContext ctx) { gen.rotation = m.spin; gen.isProgressing = m.progress; } - } catch(Exception x) { } + } catch(Exception x) { } }); return null; diff --git a/src/main/java/com/hbm/particle/ParticleMukeCloud.java b/src/main/java/com/hbm/particle/ParticleMukeCloud.java deleted file mode 100644 index 53063a8941..0000000000 --- a/src/main/java/com/hbm/particle/ParticleMukeCloud.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.hbm.particle; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.GlStateManager.DestFactor; -import net.minecraft.client.renderer.GlStateManager.SourceFactor; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ParticleMukeCloud extends Particle { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/explosion.png"); - - private float friction; - - public ParticleMukeCloud(World world, double x, double y, double z, double mx, double my, double mz) { - super(world, x, y, z); - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - if(motionY > 0) { - this.friction = 0.9F; - - if(motionY > 0.1) - this.particleMaxAge = 92 + rand.nextInt(11) + (int)(motionY * 20); - else - this.particleMaxAge = 72 + rand.nextInt(11); - - } else if (motionY == 0) { - - this.friction = 0.95F; - this.particleMaxAge = 52 + rand.nextInt(11); - - } else { - - this.friction = 0.85F; - this.particleMaxAge = 122 + rand.nextInt(31); - this.particleAge = 80; - } - } - - @Override - public int getFXLayer() { - return 3; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (this.particleAge++ >= this.particleMaxAge - 2) { - this.setExpired(); - } - - this.motionY -= 0.04D * (double)this.particleGravity; - this.move(this.motionX, this.motionY, this.motionZ); - this.motionX *= friction; - this.motionY *= friction; - this.motionZ *= friction; - - if (this.onGround) { - this.motionX *= 0.7D; - this.motionZ *= 0.7D; - } - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) { - Minecraft.getMinecraft().getTextureManager().bindTexture(getTexture()); - GlStateManager.disableLighting(); - GlStateManager.enableBlend(); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0); - GlStateManager.depthMask(false); - GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); - RenderHelper.disableStandardItemLighting(); - com.hbm.render.RenderHelper.resetParticleInterpPos(entityIn, partialTicks); - if(this.particleAge > this.particleMaxAge) - this.particleAge = this.particleMaxAge; - int texIndex = this.particleAge * 25 / this.particleMaxAge; - float f0 = 1F / 5F; - - float f5 = (float)(this.prevPosX + (this.posX - this.prevPosX) * (double)partialTicks - interpPosX); - float f6 = (float)(this.prevPosY + (this.posY - this.prevPosY) * (double)partialTicks - interpPosY); - float f7 = (float)(this.prevPosZ + (this.posZ - this.prevPosZ) * (double)partialTicks - interpPosZ); - - float uMin = texIndex % 5 * f0; - float uMax = uMin + f0; - float vMin = texIndex / 5 * f0; - float vMax = vMin + f0; - - this.particleAlpha = 1F; - this.particleScale = 3; - Vec3d[] avec3d = new Vec3d[] {new Vec3d((double)(-rotationX * particleScale - rotationXY * particleScale), (double)(-rotationZ * particleScale), (double)(-rotationYZ * particleScale - rotationXZ * particleScale)), new Vec3d((double)(-rotationX * particleScale + rotationXY * particleScale), (double)(rotationZ * particleScale), (double)(-rotationYZ * particleScale + rotationXZ * particleScale)), new Vec3d((double)(rotationX * particleScale + rotationXY * particleScale), (double)(rotationZ * particleScale), (double)(rotationYZ * particleScale + rotationXZ * particleScale)), new Vec3d((double)(rotationX * particleScale - rotationXY * particleScale), (double)(-rotationZ * particleScale), (double)(rotationYZ * particleScale - rotationXZ * particleScale))}; - - if (this.particleAngle != 0.0F) - { - float f8 = this.particleAngle + (this.particleAngle - this.prevParticleAngle) * partialTicks; - float f9 = MathHelper.cos(f8 * 0.5F); - float f10 = MathHelper.sin(f8 * 0.5F) * (float)cameraViewDir.x; - float f11 = MathHelper.sin(f8 * 0.5F) * (float)cameraViewDir.y; - float f12 = MathHelper.sin(f8 * 0.5F) * (float)cameraViewDir.z; - Vec3d vec3d = new Vec3d((double)f10, (double)f11, (double)f12); - - for (int l = 0; l < 4; ++l) - { - avec3d[l] = vec3d.scale(2.0D * avec3d[l].dotProduct(vec3d)).add(avec3d[l].scale((double)(f9 * f9) - vec3d.dotProduct(vec3d))).add(vec3d.crossProduct(avec3d[l]).scale((double)(2.0F * f9))); - } - } - Tessellator tes = Tessellator.getInstance(); - BufferBuilder buf = tes.getBuffer(); - buf.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - - buffer.pos((double)f5 + avec3d[0].x, (double)f6 + avec3d[0].y, (double)f7 + avec3d[0].z).tex(uMax, vMax).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)f5 + avec3d[1].x, (double)f6 + avec3d[1].y, (double)f7 + avec3d[1].z).tex(uMax, vMin).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)f5 + avec3d[2].x, (double)f6 + avec3d[2].y, (double)f7 + avec3d[2].z).tex(uMin, vMin).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)f5 + avec3d[3].x, (double)f6 + avec3d[3].y, (double)f7 + avec3d[3].z).tex(uMin, vMax).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha).lightmap(240, 240).endVertex(); - - tes.draw(); - - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - GlStateManager.enableLighting(); - } - - public ResourceLocation getTexture() { - return texture; - } - -} diff --git a/src/main/java/com/hbm/particle/ParticleMukeCloudBF.java b/src/main/java/com/hbm/particle/ParticleMukeCloudBF.java deleted file mode 100644 index d8ac3d0cfd..0000000000 --- a/src/main/java/com/hbm/particle/ParticleMukeCloudBF.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.particle; - -import com.hbm.lib.RefStrings; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class ParticleMukeCloudBF extends ParticleMukeCloud { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/explosion_bf.png"); - - public ParticleMukeCloudBF(World world, double x, double y, double z, double mx, double my, double mz) { - super(world, x, y, z, mx, my, mz); - } - - public ResourceLocation getTexture() { - return texture; - } -} diff --git a/src/main/java/com/hbm/particle/ParticleMukeFlash.java b/src/main/java/com/hbm/particle/ParticleMukeFlash.java deleted file mode 100644 index aafe61851b..0000000000 --- a/src/main/java/com/hbm/particle/ParticleMukeFlash.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.particle; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.GlStateManager.DestFactor; -import net.minecraft.client.renderer.GlStateManager.SourceFactor; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ParticleMukeFlash extends Particle { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); - - boolean bf; - - public ParticleMukeFlash(World world, double x, double y, double z, boolean bf) { - super(world, x, y, z); - this.particleMaxAge = 20; - this.bf = bf; - } - - @Override - public int getFXLayer() { - return 3; - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(this.particleAge == 15) { - - //Stem - for(double d = 0.0D; d <= 1.8D; d += 0.1) { - ParticleMukeCloud cloud = getCloud(world, posX, posY, posZ, rand.nextGaussian() * 0.05, d + rand.nextGaussian() * 0.02, rand.nextGaussian() * 0.05); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - - //Ground - for(int i = 0; i < 100; i++) { - ParticleMukeCloud cloud = getCloud(world, posX, posY + 0.5, posZ, rand.nextGaussian() * 0.5, rand.nextInt(5) == 0 ? 0.02 : 0, rand.nextGaussian() * 0.5); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - - //Mush - for(int i = 0; i < 75; i++) { - double x = rand.nextGaussian() * 0.5; - double z = rand.nextGaussian() * 0.5; - - if(x * x + z * z > 1.5) { - x *= 0.5; - z *= 0.5; - } - - double y = 1.8 + (rand.nextDouble() * 3 - 1.5) * (0.75 - (x * x + z * z)) * 0.5; - - ParticleMukeCloud cloud = getCloud(world, posX, posY, posZ, x, y + rand.nextGaussian() * 0.02, z); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - } - } - - private ParticleMukeCloud getCloud(World world, double x, double y, double z, double mx, double my, double mz) { - - if(this.bf) { - return new ParticleMukeCloudBF(world, x, y, z, mx, my, mz); - } else { - return new ParticleMukeCloud(world, x, y, z, mx, my, mz); - } - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float x, float y, float z, float tx, float tz) { - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - - GlStateManager.color(1, 1, 1, 1); - GlStateManager.disableLighting(); - GlStateManager.enableBlend(); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0); - GlStateManager.depthMask(false); - GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); - - this.particleAlpha = MathHelper.clamp(1 - (((float)this.particleAge + partialTicks) / (float)this.particleMaxAge), 0, 1); - float scale = (this.particleAge + partialTicks) * 0.75F + 5; - - float dX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX); - float dY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY); - float dZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ); - - Random rand = new Random(); - - buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - - for(int i = 0; i < 24; i++) { - - rand.setSeed(i * 31 + 1); - - float pX = (float) (dX + rand.nextDouble() * 15 - 7.5); - float pY = (float) (dY + rand.nextDouble() * 7.5 - 3.75); - float pZ = (float) (dZ + rand.nextDouble() * 15 - 7.5); - - buffer.pos((double) (pX - x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ - z * scale - tz * scale)).tex(1, 1).color(1.0F, 0.9F, 0.75F, this.particleAlpha * 0.5F).lightmap(240, 240).endVertex(); - buffer.pos((double) (pX - x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ - z * scale + tz * scale)).tex(1, 0).color(1.0F, 0.9F, 0.75F, this.particleAlpha * 0.5F).lightmap(240, 240).endVertex(); - buffer.pos((double) (pX + x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ + z * scale + tz * scale)).tex(0, 0).color(1.0F, 0.9F, 0.75F, this.particleAlpha * 0.5F).lightmap(240, 240).endVertex(); - buffer.pos((double) (pX + x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ + z * scale - tz * scale)).tex(0, 1).color(1.0F, 0.9F, 0.75F, this.particleAlpha * 0.5F).lightmap(240, 240).endVertex(); - } - Tessellator.getInstance().draw(); - - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - GlStateManager.enableLighting(); - GlStateManager.disableBlend(); - } - -} diff --git a/src/main/java/com/hbm/particle/ParticleMukeWave.java b/src/main/java/com/hbm/particle/ParticleMukeWave.java deleted file mode 100644 index 6b5350b161..0000000000 --- a/src/main/java/com/hbm/particle/ParticleMukeWave.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.particle; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.GlStateManager.DestFactor; -import net.minecraft.client.renderer.GlStateManager.SourceFactor; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ParticleMukeWave extends Particle { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/shockwave.png"); - - public ParticleMukeWave(World worldIn, double posXIn, double posYIn, double posZIn) { - super(worldIn, posXIn, posYIn+0.05, posZIn); - this.particleMaxAge = 25; - } - - @Override - public int getFXLayer() { - return 3; - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) { - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - GlStateManager.color(1, 1, 1, 1); - GlStateManager.disableLighting(); - GlStateManager.enableBlend(); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0); - GlStateManager.depthMask(false); - GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); - GlStateManager.disableCull(); - - this.particleAlpha = MathHelper.clamp(1 - (((float)this.particleAge + partialTicks) / (float)this.particleMaxAge), 0, 1); - float scale = (this.particleAge + partialTicks) * 2F; - - float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double)partialTicks - interpPosX); - float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double)partialTicks - interpPosY); - float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double)partialTicks - interpPosZ); - - buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - buffer.pos((double)(pX - 1 * scale), (double)(pY), (double)(pZ - 1 * scale)).tex(1, 1).color(1, 1, 1, particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)(pX - 1 * scale), (double)(pY), (double)(pZ + 1 * scale)).tex(1, 0).color(1, 1, 1, particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)(pX + 1 * scale), (double)(pY), (double)(pZ + 1 * scale)).tex(0, 0).color(1, 1, 1, particleAlpha).lightmap(240, 240).endVertex(); - buffer.pos((double)(pX + 1 * scale), (double)(pY), (double)(pZ - 1 * scale)).tex(0, 1).color(1, 1, 1, particleAlpha).lightmap(240, 240).endVertex(); - Tessellator.getInstance().draw(); - - GlStateManager.enableCull(); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - GlStateManager.enableLighting(); - GlStateManager.disableBlend(); - } - -} diff --git a/src/main/java/com/hbm/particle/ParticleRadiationFog.java b/src/main/java/com/hbm/particle/ParticleRadiationFog.java index 96e6c52b52..6307186615 100644 --- a/src/main/java/com/hbm/particle/ParticleRadiationFog.java +++ b/src/main/java/com/hbm/particle/ParticleRadiationFog.java @@ -21,25 +21,13 @@ public ParticleRadiationFog(World worldIn, double posXIn, double posYIn, double super(worldIn, posXIn, posYIn, posZIn); maxAge = 100 + rand.nextInt(40); - this.particleRed = 1F; - this.particleGreen = 0.87F; - this.particleBlue = 0.59F; + this.particleRed = 0.8F; + this.particleGreen = 0.8F; + this.particleBlue = 0.8F; this.particleScale = 7.5F; this.particleTexture = ModEventHandlerClient.fog; } - public ParticleRadiationFog(World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_, float red, float green, float blue, float scale) { - super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); - maxAge = 100 + rand.nextInt(40); - - this.particleRed = red; - this.particleGreen = green; - this.particleBlue = blue; - - this.particleScale = scale; - this.particleTexture = ModEventHandlerClient.fog; - } - @Override public void onUpdate() { this.prevPosX = this.posX; @@ -114,9 +102,6 @@ public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialT @Override public int getBrightnessForRender(float p_189214_1_) { - return 240; + return 70; } - - - } diff --git a/src/main/java/com/hbm/potion/HbmDetox.java b/src/main/java/com/hbm/potion/HbmDetox.java new file mode 100644 index 0000000000..519fd7d509 --- /dev/null +++ b/src/main/java/com/hbm/potion/HbmDetox.java @@ -0,0 +1,26 @@ +package com.hbm.potion; + +import java.util.HashSet; + +import com.hbm.config.PotionConfig; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.potion.Potion; + +public class HbmDetox { + + public static HashSet blacklistedPotions = new HashSet(); + public static Potion viral; + + public static void init(){ + for(String s : PotionConfig.potionBlacklist){ + Potion p = Potion.getPotionFromResourceLocation(s); + if(p != null) + blacklistedPotions.add(p); + } + } + + public static boolean isBlacklisted(Potion p){ + return blacklistedPotions.contains(p); + } +} diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 4ec9e41ebf..56126523ba 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -5,6 +5,7 @@ import com.hbm.capability.HbmLivingCapability; import com.hbm.config.GeneralConfig; import com.hbm.config.PotionConfig; +import com.hbm.config.CompatibilityConfig; import com.hbm.entity.mob.EntityTaintedCreeper; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.HBMSoundHandler; @@ -84,7 +85,7 @@ public void performEffect(EntityLivingBase entity, int level) { if(!(entity instanceof EntityTaintedCreeper) && entity.world.rand.nextInt(80) == 0) entity.attackEntityFrom(ModDamageSource.taint, (level + 1)); - if(GeneralConfig.enableHardcoreTaint && !entity.world.isRemote) { + if(GeneralConfig.enableHardcoreTaint && !entity.world.isRemote && CompatibilityConfig.isWarDim(entity.world)) { int x = (int)(entity.posX - 1); int y = (int)entity.posY; @@ -107,12 +108,14 @@ public void performEffect(EntityLivingBase entity, int level) { entity.getCapability(HbmLivingCapability.EntityHbmPropsProvider.ENT_HBM_PROPS_CAP, null).decreaseRads((level+1)*0.05F); } if(this == bang) { - - entity.attackEntityFrom(ModDamageSource.bang, 1000*(level+1)); - - if (!(entity instanceof EntityPlayer)) - entity.setDead(); + if(CompatibilityConfig.isWarDim(entity.world)){ + entity.attackEntityFrom(ModDamageSource.bang, 10000*(level+1)); + if (!(entity instanceof EntityPlayer)){ + entity.onDeath(ModDamageSource.bang); + entity.setHealth(0); + } + } entity.world.playSound(null, new BlockPos(entity), HBMSoundHandler.laserBang, SoundCategory.AMBIENT, 100.0F, 1.0F); ExplosionLarge.spawnParticles(entity.world, entity.posX, entity.posY, entity.posZ, 10); } @@ -130,7 +133,7 @@ public void performEffect(EntityLivingBase entity, int level) { entity.motionZ = entity.motionZ+(entity.getRNG().nextFloat()-0.5)*(level+1)*0.5; } } - if(this == phosphorus && !entity.world.isRemote) { + if(this == phosphorus && !entity.world.isRemote && CompatibilityConfig.isWarDim(entity.world)) { entity.setFire(level+1); } @@ -165,5 +168,4 @@ public boolean isReady(int par1, int par2) { return false; } - } diff --git a/src/main/java/com/hbm/render/RenderHelper.java b/src/main/java/com/hbm/render/RenderHelper.java index 218da26576..cc11d86ad2 100644 --- a/src/main/java/com/hbm/render/RenderHelper.java +++ b/src/main/java/com/hbm/render/RenderHelper.java @@ -197,6 +197,7 @@ public static void addVertexWithUV(double x, double y, double z, double u, doubl BufferBuilder buf = tes.getBuffer(); buf.pos(x, y, z).tex(u, v).endVertex(); } + public static void startDrawingTexturedQuads(){ startDrawingTexturedQuads(Tessellator.getInstance()); } @@ -206,6 +207,9 @@ public static void startDrawingQuads(){ public static void startDrawingTexturedQuads(Tessellator tes){ tes.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); } + public static void startDrawingColoredTriangles(Tessellator tes){ + tes.getBuffer().begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR); + } public static void draw(){ draw(Tessellator.getInstance()); } @@ -284,11 +288,15 @@ public static void startDrawingColored(int i) { } public static void addVertexColor(double x, double y, double z, int red, int green, int blue, int alpha){ - Tessellator.getInstance().getBuffer().pos(x, y, z).color(red, green, blue, alpha).endVertex();; + Tessellator.getInstance().getBuffer().pos(x, y, z).color(red, green, blue, alpha).endVertex(); } public static void addVertexColor(double x, double y, double z, float red, float green, float blue, float alpha){ - Tessellator.getInstance().getBuffer().pos(x, y, z).color(red, green, blue, alpha).endVertex();; + Tessellator.getInstance().getBuffer().pos(x, y, z).color(red, green, blue, alpha).endVertex(); + } + + public static void addVertexColor(double x, double y, double z, float red, float green, float blue, float alpha, Tessellator tess){ + tess.getBuffer().pos(x, y, z).color(red, green, blue, alpha).endVertex(); } public static void renderAll(IBakedModel boxcar) { @@ -308,25 +316,25 @@ public static void renderAll(IBakedModel boxcar) { * @return A three element double array, containing the render pos x at index 0, y at index 1, and z at index 2 */ public static double[] getRenderPosFromMissile(EntityMissileBaseAdvanced missile, float partialTicks){ - double d0 = missile.prevPosX + (missile.posX - missile.prevPosX) * (double) partialTicks; - double d1 = missile.prevPosY + (missile.posY - missile.prevPosY) * (double) partialTicks; - double d2 = missile.prevPosZ + (missile.posZ - missile.prevPosZ) * (double) partialTicks; + double d0 = missile.prevPosX + (missile.posX - missile.prevPosX) * partialTicks; + double d1 = missile.prevPosY + (missile.posY - missile.prevPosY) * partialTicks; + double d2 = missile.prevPosZ + (missile.posZ - missile.prevPosZ) * partialTicks; Entity entity = Minecraft.getMinecraft().getRenderViewEntity(); - double d3 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double) partialTicks; - double d4 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double) partialTicks; - double d5 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double) partialTicks; + double d3 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks; + double d4 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks; + double d5 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks; return new double[]{d0 - d3, d1 - d4, d2 - d5}; } public static double[] getRenderPosFromMissile(EntityMissileCustom missile, float partialTicks){ - double d0 = missile.prevPosX + (missile.posX - missile.prevPosX) * (double) partialTicks; - double d1 = missile.prevPosY + (missile.posY - missile.prevPosY) * (double) partialTicks; - double d2 = missile.prevPosZ + (missile.posZ - missile.prevPosZ) * (double) partialTicks; + double d0 = missile.prevPosX + (missile.posX - missile.prevPosX) * partialTicks; + double d1 = missile.prevPosY + (missile.posY - missile.prevPosY) * partialTicks; + double d2 = missile.prevPosZ + (missile.posZ - missile.prevPosZ) * partialTicks; Entity entity = Minecraft.getMinecraft().getRenderViewEntity(); - double d3 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double) partialTicks; - double d4 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double) partialTicks; - double d5 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double) partialTicks; + double d3 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks; + double d4 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks; + double d5 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks; return new double[]{d0 - d3, d1 - d4, d2 - d5}; } @@ -716,98 +724,7 @@ public static void renderFlashLight(Vec3d start, Vec3d end, float degrees, float GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, deferredFbo); GlStateManager.viewport(0, 0, RenderHelper.width, RenderHelper.height); - if(!useFullPost){ - /* - enableBlockVBOs(); - ResourceManager.flashlight_new.use(); - sendFlashlightUniforms(ResourceManager.flashlight_new.getShaderId(), new Vec3d(entPosX, entPosY, entPosZ), start, startToEnd.normalize(), (float)height, degrees, cookie); - - GL11.glPushMatrix(); - GlStateManager.doPolygonOffset(-4, -4); - */ - //setup necessary matrices - /*Matrix4f flashlight_view = new Matrix4f(); - Matrix4f flashlight_project = new Matrix4f(); - flashlight_view.load(ClientProxy.AUX_GL_BUFFER2); - flashlight_project.load(ClientProxy.AUX_GL_BUFFER); - ClientProxy.AUX_GL_BUFFER2.rewind(); - ClientProxy.AUX_GL_BUFFER.rewind(); - // Matrix4f.mul(flashlight_project, flashlight_view, flashlight_view); - flashlight_view.store(ClientProxy.AUX_GL_BUFFER); - ClientProxy.AUX_GL_BUFFER.rewind();*/ - /*ClientProxy.AUX_GL_BUFFER.put(projecion); - ClientProxy.AUX_GL_BUFFER.rewind(); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_new.getShaderId(), "shadow_view"), false, ClientProxy.AUX_GL_BUFFER2); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_new.getShaderId(), "shadow_proj"), false, ClientProxy.AUX_GL_BUFFER); - - GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, ClientProxy.AUX_GL_BUFFER); - ClientProxy.AUX_GL_BUFFER.rewind(); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_new.getShaderId(), "mc_view"), false, ClientProxy.AUX_GL_BUFFER); - - bindBlockTexture(); - - GL11.glLoadIdentity(); - - renderChunks(toRender, entPosX, entPosY, entPosZ); - - disableBlockVBOs(); - OpenGlHelper.glBindBuffer(OpenGlHelper.GL_ARRAY_BUFFER, 0); - - ResourceManager.flashlight_nogeo.use(); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_nogeo.getShaderId(), "mc_view"), false, ClientProxy.AUX_GL_BUFFER); - sendFlashlightUniforms(ResourceManager.flashlight_nogeo.getShaderId(), playerPos, start, startToEnd.normalize(), (float)height, degrees, cookie); - ClientProxy.AUX_GL_BUFFER.put(projecion); - ClientProxy.AUX_GL_BUFFER.rewind(); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_nogeo.getShaderId(), "shadow_view"), false, ClientProxy.AUX_GL_BUFFER2); - GL20.glUniformMatrix4(GL20.glGetUniformLocation(ResourceManager.flashlight_nogeo.getShaderId(), "shadow_proj"), false, ClientProxy.AUX_GL_BUFFER); - - GlStateManager.enableDepth(); - GlStateManager.depthMask(true); - - for(Entity ent : entitiesToRender){ - Minecraft.getMinecraft().getRenderManager().renderEntityStatic(ent, partialTicks, false); - } - for(TileEntity te : tilesToRender){ - TileEntityRendererDispatcher.instance.render(te, partialTicks, -1); - } - - GlStateManager.disableBlend(); - - - HbmShaderManager2.releaseShader(); - GlStateManager.resetColor(); - GlStateManager.disablePolygonOffset(); - - GL11.glPopMatrix(); - - Minecraft.getMinecraft().getFramebuffer().bindFramebuffer(true); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); - ResourceManager.flashlight_deferred.use(); - - Vec3d pos = start.subtract(entPosX, entPosY, entPosZ); - GL20.glUniform3f(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "pos"), (float) pos.x, (float) pos.y, (float) pos.z); - GL20.glUniform1f(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "height"), (float) height); - - bindTexture(cookie); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE3); - GlStateManager.bindTexture(deferredColorTex); - GL20.glUniform1i(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "colors"), 3); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE4); - GlStateManager.bindTexture(deferredPositionTex); - GL20.glUniform1i(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "positions"), 4); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE5); - GlStateManager.bindTexture(deferredProjCoordTex); - GL20.glUniform1i(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "proj_coords"), 5); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE6); - GlStateManager.bindTexture(deferredNormalTex); - GL20.glUniform1i(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "normals"), 6); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE7); - GlStateManager.bindTexture(shadowFboTex); - GL20.glUniform1i(GL20.glGetUniformLocation(ResourceManager.flashlight_deferred.getShaderId(), "shadowTex"), 7); - GlStateManager.setActiveTexture(GL13.GL_TEXTURE0); - */ - } else { + if(useFullPost){ GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, deferredFbo); ResourceManager.flashlight_post.use(); @@ -1167,5 +1084,4 @@ public static boolean boxContainsOther(float[] box, float[] other){ public static float[] getBoxCenter(float[] box){ return new float[]{box[0]+(box[2]-box[0])*0.5F, box[1]+(box[3]-box[1])*0.5F}; } - } diff --git a/src/main/java/com/hbm/render/amlfrom1710/AdvancedModelLoader.java b/src/main/java/com/hbm/render/amlfrom1710/AdvancedModelLoader.java index 5d7ac89603..0dbbb4485b 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/AdvancedModelLoader.java +++ b/src/main/java/com/hbm/render/amlfrom1710/AdvancedModelLoader.java @@ -68,9 +68,7 @@ public static Collection getSupportedSuffixes() } - static - { + static { registerModelHandler(new ObjModelLoader()); - // registerModelHandler(new TechneModelLoader()); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/amlfrom1710/Face.java b/src/main/java/com/hbm/render/amlfrom1710/Face.java index d6bf3e9cd8..8bd63db27b 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/Face.java +++ b/src/main/java/com/hbm/render/amlfrom1710/Face.java @@ -3,22 +3,19 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class Face -{ +public class Face { public Vertex[] vertices; public Vertex[] vertexNormals; public Vertex faceNormal; public TextureCoordinate[] textureCoordinates; @SideOnly(Side.CLIENT) - public void addFaceForRender(Tessellator tessellator) - { + public void addFaceForRender(Tessellator tessellator) { addFaceForRender(tessellator, 0.0000F); } @SideOnly(Side.CLIENT) - public void addFaceForRender(Tessellator tessellator, float textureOffset) - { + public void addFaceForRender(Tessellator tessellator, float textureOffset) { if (faceNormal == null) { faceNormal = this.calculateFaceNormal(); @@ -69,8 +66,65 @@ public void addFaceForRender(Tessellator tessellator, float textureOffset) } } - public Vertex calculateFaceNormal() - { + @SideOnly(Side.CLIENT) + public void addFaceForRenderSplit(Tessellator tessellator, float textureOffset, float splitHeight, float scale) { + if (faceNormal == null) + { + faceNormal = this.calculateFaceNormal(); + } + + //tessellator.setNormal(faceNormal.x, faceNormal.y, faceNormal.z); + + float averageU = 0F; + float averageV = 0F; + + if ((textureCoordinates != null) && (textureCoordinates.length > 0)) + { + for (int i = 0; i < textureCoordinates.length; ++i) + { + averageU += textureCoordinates[i].u; + averageV += textureCoordinates[i].v; + } + + averageU = averageU / textureCoordinates.length; + averageV = averageV / textureCoordinates.length; + } + + float offsetU, offsetV; + + for (int i = 0; i < vertices.length; ++i) + { + tessellator.setNormal(vertexNormals[i].x, vertexNormals[i].y, vertexNormals[i].z); + if ((textureCoordinates != null) && (textureCoordinates.length > 0)) + { + offsetU = textureOffset; + offsetV = textureOffset; + + if (textureCoordinates[i].u > averageU) + { + offsetU = -offsetU; + } + if (textureCoordinates[i].v > averageV) + { + offsetV = -offsetV; + } + + if(vertices[i].y < splitHeight) + tessellator.addVertexWithUV(vertices[i].x, vertices[i].y, vertices[i].z, textureCoordinates[i].u + offsetU, textureCoordinates[i].v + offsetV); + else + tessellator.addVertexWithUV(vertices[i].x, vertices[i].y + scale, vertices[i].z, textureCoordinates[i].u + offsetU, textureCoordinates[i].v + offsetV); + } + else + { + if(vertices[i].y < splitHeight) + tessellator.addVertexWithUV(vertices[i].x, vertices[i].y, vertices[i].z, 0, 0); + else + tessellator.addVertexWithUV(vertices[i].x, vertices[i].y + scale, vertices[i].z, 0, 0); + } + } + } + + public Vertex calculateFaceNormal() { Vec3 v1 = Vec3.createVectorHelper(vertices[1].x - vertices[0].x, vertices[1].y - vertices[0].y, vertices[1].z - vertices[0].z); Vec3 v2 = Vec3.createVectorHelper(vertices[2].x - vertices[0].x, vertices[2].y - vertices[0].y, vertices[2].z - vertices[0].z); Vec3 normalVector = null; diff --git a/src/main/java/com/hbm/render/amlfrom1710/GroupObject.java b/src/main/java/com/hbm/render/amlfrom1710/GroupObject.java index 60ba17dfa2..92f1c09854 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/GroupObject.java +++ b/src/main/java/com/hbm/render/amlfrom1710/GroupObject.java @@ -50,4 +50,29 @@ public void render(Tessellator tessellator) } } } + + @SideOnly(Side.CLIENT) + public void renderSplit(float splitHeight, float scale) + { + if (faces.size() > 0) + { + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawing(glDrawingMode); + renderSplit(tessellator, splitHeight, scale); + tessellator.draw(); + } + } + + @SideOnly(Side.CLIENT) + public void renderSplit(Tessellator tessellator, float splitHeight, float scale) + { + if (faces.size() > 0) + { + for (Face face : faces) + { + face.addFaceForRenderSplit(tessellator, 0F, splitHeight, scale); + } + } + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/amlfrom1710/Tessellator.java b/src/main/java/com/hbm/render/amlfrom1710/Tessellator.java index 1971e7a876..fd9de70910 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/Tessellator.java +++ b/src/main/java/com/hbm/render/amlfrom1710/Tessellator.java @@ -80,12 +80,10 @@ public class Tessellator private int bufferSize; private static final String __OBFID = "CL_00000960"; - private Tessellator(int p_i1250_1_) - { + private Tessellator(int p_i1250_1_) { } - public Tessellator() - { + public Tessellator(){ } static @@ -105,81 +103,6 @@ public int draw() this.zOffset = 0; net.minecraft.client.renderer.Tessellator.getInstance().draw(); return 1; - /* if (!this.isDrawing) - { - throw new IllegalStateException("Not tesselating!"); - } - else - { - this.isDrawing = false; - int offs = 0; - while (offs < vertexCount) - { - int vtc = Math.min(vertexCount - offs, nativeBufferSize >> 5); - this.intBuffer.clear(); - this.intBuffer.put(this.rawBuffer, offs * 8, vtc * 8); - this.byteBuffer.position(0); - this.byteBuffer.limit(vtc * 32); - offs += vtc; - if (this.hasTexture) - { - this.floatBuffer.position(3); - GL11.glTexCoordPointer(2, 32, this.floatBuffer); - GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - } - if (this.hasBrightness) - { - OpenGlHelper.setClientActiveTexture(OpenGlHelper.lightmapTexUnit); - this.shortBuffer.position(14); - GL11.glTexCoordPointer(2, 32, this.shortBuffer); - GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit); - } - if (this.hasColor) - { - this.byteBuffer.position(20); - GL11.glColorPointer(4, true, 32, this.byteBuffer); - GL11.glEnableClientState(GL11.GL_COLOR_ARRAY); - } - if (this.hasNormals) - { - this.byteBuffer.position(24); - GL11.glNormalPointer(32, this.byteBuffer); - GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY); - } - this.floatBuffer.position(0); - GL11.glVertexPointer(3, 32, this.floatBuffer); - GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); - GL11.glDrawArrays(this.drawMode, 0, vtc); - GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); - if (this.hasTexture) - { - GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - } - if (this.hasBrightness) - { - OpenGlHelper.setClientActiveTexture(OpenGlHelper.lightmapTexUnit); - GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit); - } - if (this.hasColor) - { - GL11.glDisableClientState(GL11.GL_COLOR_ARRAY); - } - if (this.hasNormals) - { - GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY); - } - } - if (rawBufferSize > 0x20000 && rawBufferIndex < (rawBufferSize << 3)) - { - rawBufferSize = 0x10000; - rawBuffer = new int[rawBufferSize]; - } - int i = this.rawBufferIndex * 4; - this.reset(); - return i; - }*/ } public TesselatorVertexState getVertexState(float p_147564_1_, float p_147564_2_, float p_147564_3_) diff --git a/src/main/java/com/hbm/render/amlfrom1710/Vec3.java b/src/main/java/com/hbm/render/amlfrom1710/Vec3.java index 10577040aa..658a5caaa5 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/Vec3.java +++ b/src/main/java/com/hbm/render/amlfrom1710/Vec3.java @@ -1,6 +1,7 @@ package com.hbm.render.amlfrom1710; import javax.vecmath.Matrix3f; +import net.minecraft.entity.Entity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; @@ -22,6 +23,11 @@ public static Vec3 createVectorHelper(double p_72443_0_, double p_72443_2_, doub { return new Vec3(p_72443_0_, p_72443_2_, p_72443_4_); } + + public static Vec3 createVectorHelper(Entity e) + { + return new Vec3(e.posX, e.posY, e.posZ); + } public Vec3(Vec3d vec) { this.xCoord = vec.x; @@ -142,6 +148,22 @@ public double distanceTo(Vec3 p_72438_1_) return (double)MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2); } + public double distanceTo(double x, double y, double z) + { + double d0 = x - this.xCoord; + double d1 = y - this.yCoord; + double d2 = z - this.zCoord; + return (double)MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + } + + public double distanceTo(Entity e) + { + double d0 = e.posX - this.xCoord; + double d1 = e.posY - this.yCoord; + double d2 = e.posZ - this.zCoord; + return (double)MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + } + /** * The square of the Euclidean distance between this and the specified vector. */ diff --git a/src/main/java/com/hbm/render/amlfrom1710/WavefrontObject.java b/src/main/java/com/hbm/render/amlfrom1710/WavefrontObject.java index 1d5258021d..0ecce4ffd9 100644 --- a/src/main/java/com/hbm/render/amlfrom1710/WavefrontObject.java +++ b/src/main/java/com/hbm/render/amlfrom1710/WavefrontObject.java @@ -239,6 +239,17 @@ public void renderPart(String partName) } } + @SideOnly(Side.CLIENT) + public void tessellatePartSplit(Tessellator tessellator, String partName, float splitHeight, float scale) { + for (GroupObject groupObject : groupObjects) + { + if (partName.equalsIgnoreCase(groupObject.name)) + { + groupObject.renderSplit(tessellator, splitHeight, scale); + } + } + } + @Override @SideOnly(Side.CLIENT) public void tessellatePart(Tessellator tessellator, String partName) { diff --git a/src/main/java/com/hbm/render/entity/FogRenderer.java b/src/main/java/com/hbm/render/entity/FogRenderer.java deleted file mode 100644 index 48a1e82fbe..0000000000 --- a/src/main/java/com/hbm/render/entity/FogRenderer.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hbm.render.entity; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityFogFX; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; - -public class FogRenderer extends Render { - - public FogRenderer(RenderManager renderManager) { - super(renderManager); - } - - @Override - public void doRender(EntityFogFX entity, double x, double y, double z, float entityYaw, float partialTicks) { - - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_CURRENT_BIT); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GlStateManager.disableLighting(); - //GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - - //// - //Random randy = new Random(p_76986_1_.hashCode()); - //double d = randy.nextInt(10) * 0.05; - //GL11.glColor3d(1 - d, 1 - d, 1 - d); - //// - - - - float alpha = 0; - - alpha = (float) Math.sin(entity.particleAge * Math.PI / (400F)) * 0.2F; - - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(0.63F, 0.55F, 0.37F, alpha); - - GL11.glDepthMask(false); - - Random rand = new Random(50); - - for(int i = 0; i < 25; i++) { - - double dX = (rand.nextGaussian() - 1D) * 0.5D; - double dY = (rand.nextGaussian() - 1D) * 0.15D; - double dZ = (rand.nextGaussian() - 1D) * 0.5D; - double size = rand.nextDouble() * 0.25D + 0.5D; - - GL11.glTranslatef((float) dX, (float) dY, (float) dZ); - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180 - this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - - GL11.glScaled(size, size, size); - - GL11.glPushMatrix(); - this.bindEntityTexture(entity); - Tessellator tess = Tessellator.getInstance(); - - tess.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); - tess.getBuffer().pos(-1, -1, 0).tex(1, 0).endVertex(); - tess.getBuffer().pos(-1, 1, 0).tex(0, 0).endVertex(); - tess.getBuffer().pos(1, 1, 0).tex(0, 1).endVertex(); - tess.getBuffer().pos(1, -1, 0).tex(1, 1).endVertex(); - tess.draw(); - - /*Tessellator tess = Tessellator.instance; - - tess.startDrawingQuads(); - tess.addVertexWithUV(-1, -1, 0, 1, 0); - tess.addVertexWithUV(-1, 1, 0, 0, 0); - tess.addVertexWithUV(1, 1, 0, 0, 1); - tess.addVertexWithUV(1, -1, 0, 1, 1); - tess.draw();*/ - - GL11.glPopMatrix(); - - - GL11.glScaled(1/size, 1/size, 1/size); - - GL11.glRotatef(-180 + this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-180.0F + this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef((float) -dX, (float) -dY, (float) -dZ); - } - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GlStateManager.enableLighting(); - // GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(EntityFogFX entity) { - return new ResourceLocation(RefStrings.MODID + ":" + "textures/particle/fog.png"); - } - -} diff --git a/src/main/java/com/hbm/render/entity/RenderBaleflare.java b/src/main/java/com/hbm/render/entity/RenderBaleflare.java index fbb18dbec6..fd52a55acd 100644 --- a/src/main/java/com/hbm/render/entity/RenderBaleflare.java +++ b/src/main/java/com/hbm/render/entity/RenderBaleflare.java @@ -17,7 +17,7 @@ public class RenderBaleflare extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBaleflare(man);}; private ModelBaleflare miniNuke; - private static ResourceLocation bale_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png"); + private static ResourceLocation bale_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/BaleFlare.png"); protected RenderBaleflare(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBeam.java b/src/main/java/com/hbm/render/entity/RenderBeam.java index 36075ee33b..354fffabe1 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam.java @@ -18,7 +18,7 @@ public class RenderBeam extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBeam(man);}; - protected ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + protected ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); protected RenderBeam(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBeam2.java b/src/main/java/com/hbm/render/entity/RenderBeam2.java index 5624e3e8c9..a39287f436 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam2.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam2.java @@ -19,7 +19,7 @@ public class RenderBeam2 extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBeam2(man);}; - public static final ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + public static final ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); protected RenderBeam2(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBeam3.java b/src/main/java/com/hbm/render/entity/RenderBeam3.java index 4a80579e72..7ce2502fbd 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam3.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam3.java @@ -19,7 +19,7 @@ public class RenderBeam3 extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBeam3(man);}; - public static final ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + public static final ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); protected RenderBeam3(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBeam4.java b/src/main/java/com/hbm/render/entity/RenderBeam4.java index 9f8668bcb3..f4997438d9 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam4.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam4.java @@ -17,7 +17,7 @@ public class RenderBeam4 extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBeam4(man);}; - private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); protected RenderBeam4(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBeam5.java b/src/main/java/com/hbm/render/entity/RenderBeam5.java index 69f4041724..fdc3cfc545 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam5.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam5.java @@ -88,7 +88,7 @@ public void doRenderShadowAndFire(Entity entityIn, double x, double y, double z, @Override protected ResourceLocation getEntityTexture(EntityExplosiveBeam entity) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); } } diff --git a/src/main/java/com/hbm/render/entity/RenderBeam6.java b/src/main/java/com/hbm/render/entity/RenderBeam6.java index 85ad6873e3..419fada31a 100644 --- a/src/main/java/com/hbm/render/entity/RenderBeam6.java +++ b/src/main/java/com/hbm/render/entity/RenderBeam6.java @@ -20,7 +20,7 @@ public class RenderBeam6 extends Render { return new RenderBeam6(man); }; - private static ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); + private static ResourceLocation beam_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/PlasmaBeam.png"); protected RenderBeam6(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderBigNuke.java b/src/main/java/com/hbm/render/entity/RenderBigNuke.java deleted file mode 100644 index f23bf4903f..0000000000 --- a/src/main/java/com/hbm/render/entity/RenderBigNuke.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.hbm.render.entity; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.lib.RefStrings; -import com.hbm.render.amlfrom1710.AdvancedModelLoader; -import com.hbm.render.amlfrom1710.IModelCustom; - -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderBigNuke extends Render { - - public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderBigNuke(man);}; - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudHuge.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - - protected RenderBigNuke(RenderManager renderManager) { - super(renderManager); - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(EntityNukeCloudBig entity, double x, double y, double z, float entityYaw, float partialTicks) { - if(entity.age > 100) - { - this.renderMush(entity, x, y, z, entityYaw, partialTicks); - this.renderCloud(entity, x, y, z, entityYaw, partialTicks); - } else { - this.renderFlare(entity, x, y, z, entityYaw, partialTicks); - } - this.renderRing(entity, x, y, z, entityYaw, partialTicks); - GlStateManager.enableCull(); - } - - public void renderMush(EntityNukeCloudBig 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_); - GlStateManager.disableLighting(); - GlStateManager.disableCull(); - if(p_76986_1_.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, p_76986_1_.height, 0.0F); - } - GL11.glScalef(10.0F, 10.0F, 10.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderCloud(EntityNukeCloudBig 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_); - GlStateManager.disableLighting(); - GlStateManager.disableCull(); - GL11.glTranslatef(0.0F, 80F, 0.0F); - /*if(scale < 1.5) - { - scale += 0.02; - }*/ - GL11.glScalef(p_76986_1_.scale, 1.0F, p_76986_1_.scale); - GL11.glScalef(125F, 25.0F, 125F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderRing(EntityNukeCloudBig 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_); - GlStateManager.disableLighting(); - GlStateManager.disableCull(); - GL11.glTranslatef(0.0F, 23F, 0.0F); - //ring += 0.1F; - GL11.glScalef(p_76986_1_.ring * 10, 50F, p_76986_1_.ring * 10); - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderFlare(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buf = tessellator.getBuffer(); - RenderHelper.disableStandardItemLighting(); - float f1 = (p_76986_1_.ticksExisted + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(p_76986_1_.ticksExisted < 250) - { - count = p_76986_1_.ticksExisted * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GlStateManager.disableTexture2D(); - GlStateManager.shadeModel(GL11.GL_SMOOTH); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GlStateManager.disableAlpha(); - GlStateManager.enableCull(); - GlStateManager.depthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 15, (float)p_76986_6_); - GL11.glScalef(7.5F, 7.5F, 7.5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - buf.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR); - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - - buf.pos(0.0D, 0.0D, 0.0D).color(0.53725490196F, 0.54509803921F, 0.2F, 1.0F - f2).endVertex(); - buf.pos(-0.866D * f4, f3, -0.5F * f4).color(0.53725490196F, 0.54509803921F, 0.27843137254F, 0).endVertex(); - buf.pos(0.866D * f4, f3, -0.5F * f4).color(0.53725490196F, 0.54509803921F, 0.27843137254F, 0).endVertex(); - buf.pos(0.0D, f3, 1.0F * f4).color(0.53725490196F, 0.54509803921F, 0.27843137254F, 0).endVertex(); - buf.pos(-0.866D * f4, f3, -0.5F * f4).color(0.53725490196F, 0.54509803921F, 0.27843137254F, 0).endVertex(); - - tessellator.draw(); - } - - GL11.glPopMatrix(); - GlStateManager.depthMask(true); - //GlStateManager.disableCull(); - GlStateManager.disableBlend(); - GlStateManager.shadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.enableTexture2D(); - GlStateManager.enableAlpha(); - RenderHelper.enableStandardItemLighting(); - } - - @Override - protected ResourceLocation getEntityTexture(EntityNukeCloudBig entity) { - return null; - } - - -} diff --git a/src/main/java/com/hbm/render/entity/RenderBlackHole.java b/src/main/java/com/hbm/render/entity/RenderBlackHole.java index e9a3bf6bef..26abe66646 100644 --- a/src/main/java/com/hbm/render/entity/RenderBlackHole.java +++ b/src/main/java/com/hbm/render/entity/RenderBlackHole.java @@ -35,7 +35,7 @@ public class RenderBlackHole extends Render { protected static final ResourceLocation objTesterModelRL = new ResourceLocation(RefStrings.MODID, "models/Sphere.obj"); protected IModelCustom blastModel; - protected ResourceLocation hole = new ResourceLocation(RefStrings.MODID, "textures/models/BlackHole.png"); + protected ResourceLocation hole = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/BlackHole.png"); protected ResourceLocation swirl = new ResourceLocation(RefStrings.MODID, "textures/entity/bhole.png"); protected ResourceLocation disc = new ResourceLocation(RefStrings.MODID, "textures/entity/bholeDisc.png"); diff --git a/src/main/java/com/hbm/render/entity/RenderBombletSelena.java b/src/main/java/com/hbm/render/entity/RenderBombletSelena.java index 3c4076b654..9a99e68c72 100644 --- a/src/main/java/com/hbm/render/entity/RenderBombletSelena.java +++ b/src/main/java/com/hbm/render/entity/RenderBombletSelena.java @@ -22,7 +22,7 @@ public class RenderBombletSelena extends Render { protected RenderBombletSelena(RenderManager renderManager) { super(renderManager); boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/misc/universalDark.png"); } @Override diff --git a/src/main/java/com/hbm/render/entity/RenderBombletTheta.java b/src/main/java/com/hbm/render/entity/RenderBombletTheta.java index 142707a2e5..cf0db22c7f 100644 --- a/src/main/java/com/hbm/render/entity/RenderBombletTheta.java +++ b/src/main/java/com/hbm/render/entity/RenderBombletTheta.java @@ -23,7 +23,7 @@ public class RenderBombletTheta extends Render { protected RenderBombletTheta(RenderManager renderManager) { super(renderManager); boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/bombletThetaTexture.png"); + boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/bombletThetaTexture.png"); } @Override diff --git a/src/main/java/com/hbm/render/entity/RenderBombletZeta.java b/src/main/java/com/hbm/render/entity/RenderBombletZeta.java index bf274fd8d6..fdf2a24e69 100644 --- a/src/main/java/com/hbm/render/entity/RenderBombletZeta.java +++ b/src/main/java/com/hbm/render/entity/RenderBombletZeta.java @@ -23,7 +23,7 @@ public class RenderBombletZeta extends Render { protected RenderBombletZeta(RenderManager renderManager) { super(renderManager); boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/bombletZetaTexture.png"); + boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/bombletZetaTexture.png"); } @Override @@ -34,7 +34,7 @@ public void doRender(EntityBombletZeta entity, double x, double y, double z, flo GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); GL11.glScaled(0.5D, 0.5D, 0.5D); - bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/bombletZetaTexture.png")); + bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/bombletZetaTexture.png")); boyModel.renderAll(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/entity/RenderBullet.java b/src/main/java/com/hbm/render/entity/RenderBullet.java index 2d79b7f905..b3eaf0152c 100644 --- a/src/main/java/com/hbm/render/entity/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/RenderBullet.java @@ -40,11 +40,11 @@ public void doRender(EntityBullet rocket, double x, double y, double z, float en 1.0F, 0.0F, 0.0F); if (rocket instanceof EntityBullet && ((EntityBullet) rocket).getIsChopper()) { - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/emplacer.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/emplacer.png")); } else if (rocket instanceof EntityBullet && ((EntityBullet) rocket).getIsCritical()) { - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/tau.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/tau.png")); } else if (rocket instanceof EntityBullet) { - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/bullet.png")); } miniNuke.renderAll(0.0625F); @@ -60,11 +60,11 @@ public void doRenderShadowAndFire(Entity entityIn, double x, double y, double z, @Override protected ResourceLocation getEntityTexture(EntityBullet entity) { if (entity.getIsChopper()) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/emplacer.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/emplacer.png"); } else if (entity.getIsCritical()) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/tau.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/tau.png"); } else { - return new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/bullet.png"); } } diff --git a/src/main/java/com/hbm/render/entity/RenderBulletMk2.java b/src/main/java/com/hbm/render/entity/RenderBulletMk2.java index c6619a4bf3..1eef139316 100644 --- a/src/main/java/com/hbm/render/entity/RenderBulletMk2.java +++ b/src/main/java/com/hbm/render/entity/RenderBulletMk2.java @@ -47,9 +47,9 @@ public class RenderBulletMk2 extends Render { private ModelMIRV mirv; private ModelBaleflare bf; - private ResourceLocation bullet_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"); - private ResourceLocation emplacer = new ResourceLocation(RefStrings.MODID + ":textures/models/emplacer.png"); - private ResourceLocation tau = new ResourceLocation(RefStrings.MODID + ":textures/models/tau.png"); + private ResourceLocation bullet_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/bullet.png"); + private ResourceLocation emplacer = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/emplacer.png"); + private ResourceLocation tau = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/tau.png"); private ResourceLocation buckshot_rl = new ResourceLocation(RefStrings.MODID + ":textures/entity/buckshot.png"); private ResourceLocation rocket_rl = new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocket.png"); private ResourceLocation rocket_he = new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketHE.png"); @@ -249,13 +249,13 @@ private void renderNuke(int type) { switch(type) { case 0: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/MiniNuke.png")); nuke.renderAll(0.0625F); break; case 1: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/Mirv.png")); mirv.renderAll(0.0625F); break; case 2: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/BaleFlare.png")); bf.renderAll(0.0625F); break; } diff --git a/src/main/java/com/hbm/render/entity/RenderChopperMine.java b/src/main/java/com/hbm/render/entity/RenderChopperMine.java index 2dd25860dd..acf2b1afdc 100644 --- a/src/main/java/com/hbm/render/entity/RenderChopperMine.java +++ b/src/main/java/com/hbm/render/entity/RenderChopperMine.java @@ -15,7 +15,7 @@ public class RenderChopperMine extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderChopperMine(man);}; - public static final ResourceLocation mine_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/chopperBomb.png"); + public static final ResourceLocation mine_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/chopperBomb.png"); ModelChopperMine mine; diff --git a/src/main/java/com/hbm/render/entity/RenderCloudFleija.java b/src/main/java/com/hbm/render/entity/RenderCloudFleija.java index 4b25918bcb..9850c21625 100644 --- a/src/main/java/com/hbm/render/entity/RenderCloudFleija.java +++ b/src/main/java/com/hbm/render/entity/RenderCloudFleija.java @@ -26,7 +26,7 @@ public class RenderCloudFleija extends Render { protected RenderCloudFleija(RenderManager renderManager) { super(renderManager); blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/BlastFleija.png"); + blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/BlastFleija.png"); scale = 0; } diff --git a/src/main/java/com/hbm/render/entity/RenderCloudSolinium.java b/src/main/java/com/hbm/render/entity/RenderCloudSolinium.java index 1f84a9607e..ba89483c03 100644 --- a/src/main/java/com/hbm/render/entity/RenderCloudSolinium.java +++ b/src/main/java/com/hbm/render/entity/RenderCloudSolinium.java @@ -26,7 +26,7 @@ public class RenderCloudSolinium extends Render { protected RenderCloudSolinium(RenderManager renderManager) { super(renderManager); blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/BlastSolinium.png"); + blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/BlastSolinium.png"); scale = 0; } diff --git a/src/main/java/com/hbm/render/entity/RenderEMPBlast.java b/src/main/java/com/hbm/render/entity/RenderEMPBlast.java index fe7db6c358..33548232e2 100644 --- a/src/main/java/com/hbm/render/entity/RenderEMPBlast.java +++ b/src/main/java/com/hbm/render/entity/RenderEMPBlast.java @@ -24,7 +24,7 @@ public class RenderEMPBlast extends Render { protected RenderEMPBlast(RenderManager renderManager) { super(renderManager); ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/EMPBlast.png"); + ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/EMPBlast.png"); } @Override diff --git a/src/main/java/com/hbm/render/entity/RenderFallingNuke.java b/src/main/java/com/hbm/render/entity/RenderFallingNuke.java index e7f58107db..1c2e416076 100644 --- a/src/main/java/com/hbm/render/entity/RenderFallingNuke.java +++ b/src/main/java/com/hbm/render/entity/RenderFallingNuke.java @@ -16,15 +16,15 @@ public class RenderFallingNuke extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderFallingNuke(man);}; - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/LilBoy1.obj"); + private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/bombs/LilBoy.obj"); private IModelCustom boyModel; private ResourceLocation boyTexture; - private static final ResourceLocation gadget_rl = new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png"); + private static final ResourceLocation gadget_rl = new ResourceLocation(RefStrings.MODID +":textures/models/bombs/gadget.png"); protected RenderFallingNuke(RenderManager renderManager) { super(renderManager); boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/CustomNuke.png"); + boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/CustomNuke.png"); } @Override diff --git a/src/main/java/com/hbm/render/entity/RenderFallout.java b/src/main/java/com/hbm/render/entity/RenderFallout.java index 7f76aeb2bf..6c5ccd782d 100644 --- a/src/main/java/com/hbm/render/entity/RenderFallout.java +++ b/src/main/java/com/hbm/render/entity/RenderFallout.java @@ -59,6 +59,7 @@ public RenderFallout(RenderManager renderManager) { public boolean shouldRender(EntityFalloutRain livingEntity, ICamera camera, double camX, double camY, double camZ) { return true; } + @Override public void doRender(EntityFalloutRain entity, double x, double y, double z, float entityYaw, float partialTicks) { GL11.glPushMatrix(); @@ -89,7 +90,7 @@ public void doRender(EntityFalloutRain entity, double x, double y, double z, flo GL11.glPopMatrix(); } - protected void renderRainSnow(float p_78474_1_) { + protected void renderRainSnow(float partialTick) { MutableBlockPos pos = new BlockPos.MutableBlockPos(); float f1 = 1; @@ -122,11 +123,11 @@ protected void renderRainSnow(float p_78474_1_) { GlStateManager.tryBlendFuncSeparate(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA, SourceFactor.ONE, DestFactor.ZERO); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); double d0 = entitylivingbase.lastTickPosX - + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * p_78474_1_; + + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * partialTick; double d1 = entitylivingbase.lastTickPosY - + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * p_78474_1_; + + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * partialTick; double d2 = entitylivingbase.lastTickPosZ - + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * p_78474_1_; + + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * partialTick; int k = MathHelper.floor(d1); byte b0 = 5; @@ -135,7 +136,7 @@ protected void renderRainSnow(float p_78474_1_) { } byte b1 = -1; - float f5 = this.rendererUpdateCount + p_78474_1_; + float f5 = this.rendererUpdateCount + partialTick; if (this.mc.gameSettings.fancyGraphics) { b0 = 10; @@ -178,49 +179,6 @@ protected void renderRainSnow(float p_78474_1_) { float f10; double d4; - /* - * if (false) { if (b1 != 0) { if (b1 >= 0) { - * tessellator.draw(); } - * - * b1 = 0; - * this.mc.getTextureManager().bindTexture(this. - * falloutTexture); tessellator.startDrawingQuads(); - * //System.out.println("Called!"); } - * - * f10 = ((float)(this.rendererUpdateCount + i1 * i1 - * * 3121 + i1 * 45238971 + l * l * 418711 + l * - * 13761 & 31) + p_78474_1_) / 32.0F * (3.0F + - * this.random.nextFloat()); double d3 = - * (double)((float)i1 + 0.5F) - - * entitylivingbase.posX; d4 = (double)((float)l + - * 0.5F) - entitylivingbase.posZ; float f12 = - * MathHelper.sqrt_double(d3 * d3 + d4 * d4) / - * (float)b0; float f13 = 1.0F; - * tessellator.setBrightness(worldclient. - * getLightBrightnessForSkyBlocks(i1, j2, l, 0)); - * tessellator.setColorRGBA_F(f13, f13, f13, ((1.0F - * - f12 * f12) * 0.5F + 0.5F) * f1); - * tessellator.setTranslation(-d0 * 1.0D, -d1 * - * 1.0D, -d2 * 1.0D); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)l1, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)l1, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)i2, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)i2, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.setTranslation(0.0D, 0.0D, 0.0D); } - * else - */ { if (b1 != 1) { if (b1 >= 0) { @@ -231,7 +189,7 @@ protected void renderRainSnow(float p_78474_1_) { tessellator.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);; } - f10 = ((this.rendererUpdateCount & 511) + p_78474_1_) / 512.0F; + f10 = ((this.rendererUpdateCount & 511) + partialTick) / 512.0F; float f16 = this.random.nextFloat() + f5 * 0.01F * (float) this.random.nextGaussian(); float f11 = this.random.nextFloat() + f5 * (float) this.random.nextGaussian() * 0.001F; d4 = i1 + 0.5F - entitylivingbase.posX; @@ -262,7 +220,7 @@ protected void renderRainSnow(float p_78474_1_) { GlStateManager.enableCull(); GlStateManager.disableBlend(); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - // this.disableLightmap((double)p_78474_1_); + // this.disableLightmap((double)partialTick); } } diff --git a/src/main/java/com/hbm/render/entity/RenderMiniMIRV.java b/src/main/java/com/hbm/render/entity/RenderMiniMIRV.java index 76ec13c54c..b1eaac894d 100644 --- a/src/main/java/com/hbm/render/entity/RenderMiniMIRV.java +++ b/src/main/java/com/hbm/render/entity/RenderMiniMIRV.java @@ -17,7 +17,7 @@ public class RenderMiniMIRV extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderMiniMIRV(man);}; private ModelMIRV miniNuke; - private static ResourceLocation mirv_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png"); + private static ResourceLocation mirv_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/Mirv.png"); protected RenderMiniMIRV(RenderManager renderManager) { super(renderManager); diff --git a/src/main/java/com/hbm/render/entity/RenderMiniNuke.java b/src/main/java/com/hbm/render/entity/RenderMiniNuke.java index d8febbdc1c..83a2515b87 100644 --- a/src/main/java/com/hbm/render/entity/RenderMiniNuke.java +++ b/src/main/java/com/hbm/render/entity/RenderMiniNuke.java @@ -16,7 +16,7 @@ public class RenderMiniNuke extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderMiniNuke(man);}; - protected static ResourceLocation nuke_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png"); + protected static ResourceLocation nuke_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/MiniNuke.png"); private ModelMiniNuke miniNuke; protected RenderMiniNuke(RenderManager renderManager) { diff --git a/src/main/java/com/hbm/render/entity/RenderNoCloud.java b/src/main/java/com/hbm/render/entity/RenderNoCloud.java deleted file mode 100644 index d542195c91..0000000000 --- a/src/main/java/com/hbm/render/entity/RenderNoCloud.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.render.entity; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.lib.RefStrings; -import com.hbm.render.amlfrom1710.AdvancedModelLoader; -import com.hbm.render.amlfrom1710.IModelCustom; - -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderNoCloud extends Render { - - public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderNoCloud(man);}; - - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - public float scale = 0; - public float ring = 0; - - protected RenderNoCloud(RenderManager renderManager) { - super(renderManager); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(EntityNukeCloudNoShroom entity, double x, double y, double z, float entityYaw, float partialTicks) { - if(entity.age <= 100) - this.renderFlare(entity, x, y, z, entityYaw, partialTicks); - this.renderRing(entity, x, y, z, entityYaw, partialTicks); - } - - private void renderRing(EntityNukeCloudNoShroom entity, double x, double y, double z, float entityYaw, float partialTicks) { - GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); - GlStateManager.disableLighting(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 18F, 0.0F); - //ring += 0.1F; - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - - } - - private void renderFlare(EntityNukeCloudNoShroom entity, double x, double y, double z, float entityYaw, float partialTicks) { - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buf = tessellator.getBuffer(); - RenderHelper.disableStandardItemLighting(); - float f1 = (entity.ticksExisted + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(entity.ticksExisted < 250) - { - count = entity.ticksExisted * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)x, (float)y + 15, (float)z); - GL11.glScalef(5F, 5F, 5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - buf.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION); - - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - //tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2))); - // tessellator.setColorRGBA_I(59345715, (int)(255.0F * (1.0F - f2))); - - buf.pos(0.0D, 0.0D, 0.0D).endVertex(); - //tessellator.setColorRGBA_I(16711935, 0); - //tessellator.setColorRGBA_I(59345735, 0); - buf.pos(-0.866D * f4, f3, -0.5F * f4).endVertex(); - buf.pos(0.866D * f4, f3, -0.5F * f4).endVertex(); - buf.pos(0.0D, f3, 1.0F * f4).endVertex(); - buf.pos(-0.866D * f4, f3, -0.5F * f4).endVertex(); - tessellator.draw(); - } - - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - - } - - @Override - protected ResourceLocation getEntityTexture(EntityNukeCloudNoShroom entity) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/RenderNuclearCreeper.java b/src/main/java/com/hbm/render/entity/RenderNuclearCreeper.java index 9f2eec790b..45399d50af 100644 --- a/src/main/java/com/hbm/render/entity/RenderNuclearCreeper.java +++ b/src/main/java/com/hbm/render/entity/RenderNuclearCreeper.java @@ -74,6 +74,4 @@ protected int getColorMultiplier(EntityNuclearCreeper entitylivingbaseIn, float protected ResourceLocation getEntityTexture(EntityNuclearCreeper entity) { return creeperTextures; } - - } diff --git a/src/main/java/com/hbm/render/entity/RenderNukeMK4.java b/src/main/java/com/hbm/render/entity/RenderNukeMK5.java similarity index 62% rename from src/main/java/com/hbm/render/entity/RenderNukeMK4.java rename to src/main/java/com/hbm/render/entity/RenderNukeMK5.java index ab5de6b71f..4b624d72c2 100644 --- a/src/main/java/com/hbm/render/entity/RenderNukeMK4.java +++ b/src/main/java/com/hbm/render/entity/RenderNukeMK5.java @@ -1,6 +1,6 @@ package com.hbm.render.entity; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; @@ -8,22 +8,22 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.registry.IRenderFactory; -public class RenderNukeMK4 extends Render { +public class RenderNukeMK5 extends Render { - public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderNukeMK4(man);}; + public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderNukeMK5(man);}; - protected RenderNukeMK4(RenderManager renderManager) { + protected RenderNukeMK5(RenderManager renderManager) { super(renderManager); } @Override - public void doRender(EntityNukeExplosionMK4 entity, double x, double y, double z, float entityYaw, float partialTicks) {} + public void doRender(EntityNukeExplosionMK5 entity, double x, double y, double z, float entityYaw, float partialTicks) {} @Override public void doRenderShadowAndFire(Entity entityIn, double x, double y, double z, float yaw, float partialTicks) {} @Override - protected ResourceLocation getEntityTexture(EntityNukeExplosionMK4 entity) { + protected ResourceLocation getEntityTexture(EntityNukeExplosionMK5 entity) { return null; } diff --git a/src/main/java/com/hbm/render/entity/RenderSRocket.java b/src/main/java/com/hbm/render/entity/RenderSRocket.java index f65355d3e1..3ae71354b3 100644 --- a/src/main/java/com/hbm/render/entity/RenderSRocket.java +++ b/src/main/java/com/hbm/render/entity/RenderSRocket.java @@ -15,7 +15,7 @@ public class RenderSRocket extends Render { public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderSRocket(man);}; - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/ModelSRocket.png"); private ModelSRocket missile; protected RenderSRocket(RenderManager renderManager) { @@ -34,9 +34,9 @@ public void doRender(EntityRocketHoming rocket, double x, double y, double z, fl GL11.glScalef(1.5F, 1.5F, 1.5F); if(rocket.getIsCritical()) - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSVTRocket.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/ModelSVTRocket.png")); else - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png")); + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/projectiles/ModelSRocket.png")); missile.renderAll(0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/RenderSmallNukeMK3.java b/src/main/java/com/hbm/render/entity/RenderSmallNukeMK3.java deleted file mode 100644 index 25de92f262..0000000000 --- a/src/main/java/com/hbm/render/entity/RenderSmallNukeMK3.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.hbm.render.entity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; -import com.hbm.render.amlfrom1710.AdvancedModelLoader; -import com.hbm.render.amlfrom1710.IModelCustom; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderSmallNukeMK3 extends Render { - //what the fuck is all this, i thought you made the resource manager - //Drillgon200: ^^ To whom is he talking, I wonder. - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/mush.hmf"); - private IModelCustom blastModel; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - public float scale = 0; - public float ring = 0; - - //can't you just instantiate the AMLs as a whole like a normal person smh - //Drillgon200: Are you talking to yourself? - public RenderSmallNukeMK3(RenderManager renderManager) { - super(renderManager); - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - scale = 0; - ring = 0; - } - - //choreographic analysis of a nuclear blast - //by VeeTee McFuckface - - //shockwave: rapidly expanding sphere of compressed air - // optional: wave of ground dust, make sphere white to pair it with the flash - // use multiple rings if necessary, but make them thinner (maybe fire-y) - // duration: something like two seconds, the thing is fast - - //fireball: similar story to the shockwave, but with color - // slower expanding bubble that raises upwards - // use one of those large donuts for the dust on the ground - // optional: dust clouds descending from top to bottom of the sphere (adjust radius based on height for smoothness) - // use lighter tone (vapor) - // duration: ~5 seconds, maybe less - - //mushroom: large donut to simulate breakthrough of the cloud layer (more vapor) - // use more rings around the shaft, make them wobble (use a sine function for the height, look at RR for reference) - // make the thing larger, this isn't a children's birthday and your excuses "too big" are shit - // make the fireball fade so it looks like the cloud is formed by it - // use more rings. really. - // more polygons, this is a cloud, not a metal pillar made by a seven-yo - // duration: as long as you want - - - - //your other render classes look like shit, write code like a sensible person for once. good luck, you'll need it - @Override - public void doRender(EntityNukeCloudSmall cloud, double x, double y, double z, float entityYaw, float partialTicks) { - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_LIGHTING_BIT); - GL11.glTranslatef((float)x, (float)y + 0.25F, (float)z); - GlStateManager.disableLighting(); - GL11.glEnable(GL11.GL_CULL_FACE); - float size = cloud.getDataManager().get(EntityNukeCloudSmall.SCALE); - GL11.glScalef(size, size, size); - int age = cloud.age; - int shockScale = age * 4; - int fireScale = (int)((age - 25) * 1.5); - //cloud.setDead(); - if(age < 50) { - GL11.glPushMatrix(); - GL11.glColor4f(0.2F, 0.2F, 0.2F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GL11.glScalef(shockScale, shockScale, shockScale); - GL11.glScalef(2, 2, 2); - - for(float i = 0.9F; i <= 1; i += 0.05F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - ResourceManager.sphere_iuv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - - GL11.glScalef(0.6F, 1F / shockScale * 5, 0.6F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50 && age < 150) { - GL11.glPushMatrix(); - - if(cloud.getDataManager().get(EntityNukeCloudSmall.TYPE) == 1) - GL11.glColor4f(0.2F, 0.7F, 0.0F, 0.9F); - else - GL11.glColor4f(0.4F, 0.15F, 0.0F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef(0, fireScale * 0.75F, 0); - - GL11.glScalef(fireScale * 0.85F, fireScale, fireScale * 0.85F); - - for(float i = 0.6F; i <= 1; i += 0.2F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 150) { - GL11.glPushMatrix(); - bindTexture(getEntityTexture(cloud)); - GL11.glTranslatef(0, -50, 0); - GL11.glScalef(6, 6, 6); - GL11.glDisable(GL11.GL_CULL_FACE); - blastModel.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - GL11.glScalef(10, 10, 10); - float f = 1.8F + (((float)Math.sin(((double)age) / 20 + 90) * 0.25F) * 0.5F); - float f1 = 1 + ((float)Math.sin(((double)age) / 10) * 0.15F); - GL11.glScalef(f, 1, f); - GL11.glTranslatef(0, 3.5F + f1 * 0.25F, 0); - ringModel.renderAll(); - GL11.glTranslatef(0, - f1 * 0.25F * 2, 0); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - float f = (float)Math.min((age - 50) * 0.5, 20); - GL11.glScalef(f, 15, f); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.6F, 0.6F, 0.6F, 1F); - float f0 = (float)Math.min((age - 50) * 0.25, 20) * 5F; - GL11.glScalef(f0, 15, f0); - GL11.glTranslatef(0, 3.5F, 0); - ringBigModel.renderAll(); - GL11.glTranslatef(0, 1F, 0); - GL11.glScalef(0.65F, 1, 0.65F); - ringModel.renderAll(); - //GL11.glTranslatef(0, -2F, 0); - //ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - GlStateManager.enableLighting(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - } - //very professional, i love me some null textures /s - - //there, fixed it ~bob - - //Drillgon200: Who is the other guy??? There's a whole conversation in here - @Override - protected ResourceLocation getEntityTexture(EntityNukeCloudSmall entity) { - if(entity.getDataManager().get(EntityNukeCloudSmall.TYPE) == 1) - return ResourceManager.balefire_2; - return ResourceManager.fireball_2; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java deleted file mode 100644 index 56dcb137d2..0000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java +++ /dev/null @@ -1,529 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.effect.EntityNukeCloudSmall.Cloudlet; -import com.hbm.hfr.render.loader.HFRWavefrontObject; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; -import com.hbm.render.amlfrom1710.IModelCustom; - -import net.minecraft.client.renderer.ActiveRenderInfo; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.GlStateManager.DestFactor; -import net.minecraft.client.renderer.GlStateManager.SourceFactor; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderSmallNukeMK4 extends Render { - - public static final IRenderFactory FACTORY = man -> new RenderSmallNukeMK4(man); - - public static final IModelCustom mush = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/mush.obj")); - public static final IModelCustom shockwave = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_roller.obj")); - public static final IModelCustom thinring = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_thin.obj")); - private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); - - private static final double lightmapSizeMult = 0.01D; - - protected RenderSmallNukeMK4(RenderManager renderManager) { - super(renderManager); - } - - @Override - public void doRender(EntityNukeCloudSmall cloud, double x, double y, double z, float entityYaw, float partialTicks) { - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - int cloudAge = cloud.getDataManager().get(EntityNukeCloudSmall.AGE); - if(cloud.age < cloudAge){ - cloud.age = cloudAge; - } - - mushWrapper(cloud, partialTicks); - cloudletWrapper(cloud, partialTicks); - flashWrapper(cloud, partialTicks); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(EntityNukeCloudSmall entity) { - return null; - } - - /* - * // // ////// ////// ////// ////// ////// ////// ////// - * // // // // // // // // // // // // // // - * // // // //// ////// ////// ////// //// //// ////// - * //// //// // // // // // // // // // // - * // // // // // // // // ////// // // ////// - */ - - /** - * Wrapper for the initial flash - * Caps the rendering at 60 ticks and sets the alpha function - * @param cloud - * @param interp - */ - private void flashWrapper(EntityNukeCloudSmall cloud, float interp) { - - if(cloud.age < 100) { - - GL11.glPushMatrix(); - //Function [0, 1] that determines the scale and intensity (inverse!) of the flash - double scale = (cloud.age + interp) / 100D; - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.0F); - - //Euler function to slow down the scale as it progresses - //Makes it start fast and the fade-out is nice and smooth - scale = scale * Math.pow(Math.E, -scale) * 2.717391304D; - - renderFlash(scale); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glPopMatrix(); - } - } - - private ResourceLocation getMushroomTexture(float cloudAge, boolean isBalefire, boolean isEmissive, float radius){ - float sizeFactor = (float)(Math.pow(radius, 2) / 15129); - if(cloudAge < 100F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_0_e; - }else{ - return ResourceManager.balefire_0; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_0_e; - }else{ - return ResourceManager.fireball_0; - } - } - }else if(cloudAge < 140F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_1_e; - }else{ - return ResourceManager.balefire_1; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_1_e; - }else{ - return ResourceManager.fireball_1; - } - } - }else if(cloudAge < 200F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_2_e; - }else{ - return ResourceManager.balefire_2; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_2_e; - }else{ - return ResourceManager.fireball_2; - } - } - }else if(cloudAge < 300F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_3_e; - }else{ - return ResourceManager.balefire_3; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_3_e; - }else{ - return ResourceManager.fireball_3; - } - } - }else if(cloudAge < 460F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_4_e; - }else{ - return ResourceManager.balefire_4; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_4_e; - }else{ - return ResourceManager.fireball_4; - } - } - }else if(cloudAge < 720F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_5_e; - }else{ - return ResourceManager.balefire_5; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_5_e; - }else{ - return ResourceManager.fireball_5; - } - } - }else if(cloudAge < 1140F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_6_e; - }else{ - return ResourceManager.balefire_6; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_6_e; - }else{ - return ResourceManager.fireball_6; - } - } - }else if(cloudAge < 1820F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_7_e; - }else{ - return ResourceManager.balefire_7; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_7_e; - }else{ - return ResourceManager.fireball_7; - } - } - }else if(cloudAge < 2920F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_8_e; - }else{ - return ResourceManager.balefire_8; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_8_e; - }else{ - return ResourceManager.fireball_8; - } - } - }else if(cloudAge < 4700F * sizeFactor){ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_9_e; - }else{ - return ResourceManager.balefire_9; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_9_e; - }else{ - return ResourceManager.fireball_9; - } - } - }else{ - if(isBalefire){ - if(isEmissive){ - return ResourceManager.balefire_10_e; - }else{ - return ResourceManager.balefire_10; - } - }else{ - if(isEmissive){ - return ResourceManager.fireball_10_e; - }else{ - return ResourceManager.fireball_10; - } - } - } - } - - - /** - * Wrapper for the entire mush (head + stem) - * Renders the entire thing twice to allow for smooth color gradients - * @param cloud - * @param interp - */ - private void mushWrapper(EntityNukeCloudSmall cloud, float interp) { - - float size = cloud.getDataManager().get(EntityNukeCloudSmall.SCALE) * 5; - float maxage = (float) cloud.getDataManager().get(EntityNukeCloudSmall.MAXAGE); - - - double height = Math.max(20 - 1000 / (cloud.age + interp - 13), 0); - boolean balefire = cloud.getDataManager().get(EntityNukeCloudSmall.TYPE) == 1; - float percentageAge = maxage > 0 ? (float)(cloud.age+interp)/maxage : 0F; - double raise_speed = 0.014F * Math.pow(0.02, percentageAge) + 0.005F; - - - GL11.glPushMatrix(); - GlStateManager.disableLighting(); - GlStateManager.disableCull(); - - GL11.glScalef(size, size, size); - - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - GL11.glTranslated(0, -(cloud.age + interp) * raise_speed, 0); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - - - GL11.glPushMatrix(); - bindTexture(getMushroomTexture(cloud.age, balefire, false, size*40F)); - - renderMushHead(cloud.age + interp, height, false); - renderMushStem(cloud.age + interp, height, false); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - bindTexture(getMushroomTexture(cloud.age, balefire, true, size*40F)); - GlStateManager.enableAlpha(); - GlStateManager.enableBlend(); - - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - renderMushHead(cloud.age + interp, height, true); - renderMushStem(cloud.age + interp, height, true); - GL11.glPopAttrib(); - - GlStateManager.disableBlend(); - GL11.glPopMatrix(); - - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - - GlStateManager.enableCull(); - GlStateManager.enableLighting(); - GL11.glPopMatrix(); - } - - /** - * Adds all cloudlets to the tessellator and then draws them - * @param cloud - * @param interp - */ - private void cloudletWrapper(EntityNukeCloudSmall cloud, float interp) { - - GL11.glPushMatrix(); - GlStateManager.enableBlend(); - //To prevent particles cutting off before fully fading out - //Drillgon200: What'd the point of setting the alpha func if you're just going to disable the test anyway? - GlStateManager.alphaFunc(GL11.GL_GEQUAL, 0.01F); - GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableAlpha(); - GlStateManager.depthMask(false); - - bindTexture(cloudlet); - - Tessellator tess = Tessellator.getInstance(); - BufferBuilder buf = tess.getBuffer(); - buf.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR); - - for(Cloudlet cloudlet : cloud.cloudlets) { - float scale = cloud.age + interp - cloudlet.age; - tessellateCloudlet(buf, cloudlet.posX, cloudlet.posY - cloud.posY + 2, cloudlet.posZ, scale, (int) cloud.getDataManager().get(EntityNukeCloudSmall.TYPE)); - } - tess.draw(); - - GlStateManager.depthMask(true); - GlStateManager.enableAlpha(); - RenderHelper.enableStandardItemLighting(); - GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); - GlStateManager.disableBlend(); - GL11.glPopMatrix(); - } - - /* - * ////// ////// // // //// ////// ////// ////// ////// ////// - * // // // //// // // // // // // // // // // - * //// //// // //// // // //// //// //// //// ////// - * // // // // // // // // // // // // // // - * // // ////// // // //// ////// // // ////// // // ////// - */ - - /** - * Once again the recycled ender dragon death animation - * It worked so well the last 14 times, let's go for 15 - * @param intensity Double [0, 1] that determines scale and alpha - */ - private void renderFlash(double intensity) { - - GL11.glScalef(0.2F, 0.2F, 0.2F); - - double inverse = 1.0D - intensity; - - net.minecraft.client.renderer.Tessellator tessellator = net.minecraft.client.renderer.Tessellator.getInstance(); - BufferBuilder buf = tessellator.getBuffer(); - RenderHelper.disableStandardItemLighting(); - - Random random = new Random(432L); - GlStateManager.disableTexture2D(); - GlStateManager.shadeModel(GL11.GL_SMOOTH); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); - GlStateManager.disableAlpha(); - GlStateManager.enableCull(); - GlStateManager.depthMask(false); - - GL11.glPushMatrix(); - - float scale = 100; - - for(int i = 0; i < 300; i++) { - - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - - float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float)(intensity * scale); - float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float)(intensity * scale); - - buf.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR); - buf.pos(0, 0, 0).color(1.0F, 1.0F, 1.0F, (float) inverse).endVertex(); - buf.pos(-0.866D * vert2, vert1, -0.5F * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); - buf.pos(0.866D * vert2, vert1, -0.5F * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); - buf.pos(0.0D, vert1, 1.0F * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); - buf.pos(-0.866D * vert2, vert1, -0.5F * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); - tessellator.draw(); - } - - GL11.glPopMatrix(); - - GlStateManager.depthMask(true); - GlStateManager.disableCull(); - GlStateManager.disableBlend(); - GlStateManager.shadeModel(GL11.GL_FLAT); - GlStateManager.color(1, 1, 1, 1); - GlStateManager.enableTexture2D(); - GlStateManager.enableAlpha(); - RenderHelper.enableStandardItemLighting(); - } - - /** - * Render call for the mush head model - * Includes offset and smoothing - * Also scales the fireball along XZ - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushHead(float progress, double height, boolean outer) { - - GL11.glPushMatrix(); - - double expansion = 100; - double width = Math.min(progress, expansion) / expansion * 0.3 + 0.7; - - if(outer){ - GL11.glTranslated(0, -26*(1+lightmapSizeMult) + height, 0); - GL11.glScaled(width*(1+lightmapSizeMult), 1+lightmapSizeMult, width*(1+lightmapSizeMult)); - }else{ - GL11.glTranslated(0, -26 + height, 0); - GL11.glScaled(width, 1, width); - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Ball"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Render call for the mush stem model - * Includes offset and smoothing - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushStem(float progress, double height, boolean outer) { - - GL11.glPushMatrix(); - - if(outer){ - GL11.glTranslated(0, -26 + height, 0); - GL11.glScaled(1+lightmapSizeMult, 1+lightmapSizeMult, 1+lightmapSizeMult); - }else{ - GL11.glTranslated(0, -26 + height, 0); - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Stem"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Adds one cloudlet (one face) to the tessellator. - * Rotation is done using ActiveRenderInfo, which I'd assume runs on magic - * But hey, if it works for particles, why not here too? - * @param tess - * @param posX - * @param posY - * @param posZ - * @param age The mush' age when the cloudlet was created - * @param type DataWatcher byte #19 which differentiates between different mush types - */ - private void tessellateCloudlet(BufferBuilder buf, double posX, double posY, double posZ, float age, int type) { - - float alpha = 1F - Math.max(age / (float)(EntityNukeCloudSmall.cloudletLife), 0F); - float alphaorig = alpha; - - float scale = 2.5F * alpha + 2.5F; - - if(age < 3) - alpha = age * 0.333F; - - float f1 = ActiveRenderInfo.getRotationX(); - float f2 = ActiveRenderInfo.getRotationZ(); - float f3 = ActiveRenderInfo.getRotationYZ(); - float f4 = ActiveRenderInfo.getRotationXY(); - float f5 = ActiveRenderInfo.getRotationXZ(); - - Random rand = new Random((long) ((posX * 5 + posY * 25 + posZ * 125) * 1000D)); - - float brightness = rand.nextFloat() * 0.25F + 0.25F; - - float r, g, b, a; - if(type == 1) { - r = 0.25F * alphaorig; - g = alphaorig - brightness * 0.5F; - b = 0.25F * alphaorig; - a = alpha; - } else { - r = g = b = brightness; - a = alpha; - } - a = MathHelper.clamp(a, 0, 1); - - buf.pos((double)(posX - f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ - f2 * scale - f4 * scale)).tex(1, 1).color(r, g, b, a).endVertex(); - buf.pos((double)(posX - f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ - f2 * scale + f4 * scale)).tex(1, 0).color(r, g, b, a).endVertex(); - buf.pos((double)(posX + f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ + f2 * scale + f4 * scale)).tex(0, 0).color(r, g, b, a).endVertex(); - buf.pos((double)(posX + f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ + f2 * scale - f4 * scale)).tex(0, 1).color(r, g, b, a).endVertex(); - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java new file mode 100644 index 0000000000..91dbc0219b --- /dev/null +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -0,0 +1,308 @@ +package com.hbm.render.entity.effect; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.effect.EntityNukeTorex.Cloudlet; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.render.amlfrom1710.Vec3; + +import net.minecraft.init.SoundEvents; +import net.minecraft.util.SoundCategory; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.GlStateManager.DestFactor; +import net.minecraft.client.renderer.GlStateManager.SourceFactor; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.client.registry.IRenderFactory; + + +public class RenderTorex extends Render { + + public static final IRenderFactory FACTORY = man -> new RenderTorex(man); + + private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + private static final ResourceLocation flare = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); + + public static final int flashBaseDuration = 30; + public static final int flareBaseDuration = 100; + + protected RenderTorex(RenderManager renderManager){ + super(renderManager); + } + + @Override + public void doRender(EntityNukeTorex cloud, double x, double y, double z, float entityYaw, float partialTicks){ + float scale = (float)cloud.getScale(); + float flashDuration = scale * flashBaseDuration; + float flareDuration = scale * flareBaseDuration; + + doScreenShake(cloud, x, y, z, scale * 100); + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) + GL11.glDisable(GL11.GL_FOG); + + cloudletWrapper(cloud, partialTicks); + + if(cloud.age < flareDuration+1) + flareWrapper(cloud, partialTicks, flareDuration); + + if(cloud.age < flashDuration+1) + flashWrapper(cloud, partialTicks, flashDuration); + + if(fog) + GL11.glEnable(GL11.GL_FOG); + + GL11.glPopMatrix(); + } + + private void doScreenShake(EntityNukeTorex cloud, double x, double y, double z, float amplitude){ + if(cloud.age > 300) return; + EntityPlayer player = MainRegistry.proxy.me(); + + double dist = player.getDistance(cloud); + double shockwaveDistance = dist - cloud.age * 1.5; + if(shockwaveDistance > 10 || shockwaveDistance < 0) return; + + int duration = ((int)(amplitude * Math.min(1, (amplitude * amplitude)/(dist * dist)))); + int swingTimer = duration<<1; + cloud.world.playSound(player, cloud.posX, cloud.posY, cloud.posZ, SoundEvents.ENTITY_LIGHTNING_THUNDER, SoundCategory.AMBIENT, amplitude * 10F, 0.8F + cloud.world.rand.nextFloat() * 0.2F); + + if(player.getDisplayName().equals("Vic4Games")) { + player.hurtTime = swingTimer<<1; + player.maxHurtTime = duration<<1; + } else { + player.hurtTime = swingTimer; + player.maxHurtTime = duration; + } + player.attackedAtYaw = 0F; + } + + private Comparator cloudSorter = new Comparator() { + + @Override + public int compare(Object arg0, Object arg1) { + Cloudlet first = (Cloudlet) arg0; + Cloudlet second = (Cloudlet) arg1; + EntityPlayer player = MainRegistry.proxy.me(); + double dist1 = player.getDistanceSq(first.posX, first.posY, first.posZ); + double dist2 = player.getDistanceSq(second.posX, second.posY, second.posZ); + + return dist1 > dist2 ? -1 : dist1 == dist2 ? 0 : 1; + } + }; + + private void cloudletWrapper(EntityNukeTorex cloud, float partialTicks) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + // To prevent particles cutting off before fully fading out + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(cloudlet); + + Tessellator tess = Tessellator.getInstance(); + BufferBuilder buf = tess.getBuffer(); + buf.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); + + ArrayList cloudlets = new ArrayList(cloud.cloudlets); + cloudlets.sort(cloudSorter); + + for(Cloudlet cloudlet : cloudlets) { + Vec3 vec = cloudlet.getInterpPos(partialTicks); + tessellateCloudlet(buf, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, partialTicks); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + private void flareWrapper(EntityNukeTorex cloud, float partialTicks, float flareDuration) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(flare); + + Tessellator tess = Tessellator.getInstance(); + BufferBuilder buf = tess.getBuffer(); + buf.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); + + double age = Math.min(cloud.age + partialTicks, flareDuration); + float alpha = (float) Math.min(1, (flareDuration - age) / flareDuration); + + Random rand = new Random(cloud.getEntityId()); + + for(int i = 0; i < 3; i++) { + float x = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float y = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float z = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + tessellateFlare(buf, x, y + cloud.coreHeight, z, (float) (10 * cloud.rollerSize), alpha, partialTicks); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + private void tessellateCloudlet(BufferBuilder buf, double posX, double posY, double posZ, Cloudlet cloud, float partialTicks) { + + float a = cloud.getAlpha(); + float scale = cloud.getScale(); + + float f1 = ActiveRenderInfo.getRotationX(); + float f2 = ActiveRenderInfo.getRotationZ(); + float f3 = ActiveRenderInfo.getRotationYZ(); + float f4 = ActiveRenderInfo.getRotationXY(); + float f5 = ActiveRenderInfo.getRotationXZ(); + + float brightness = cloud.type == cloud.type.CONDENSATION ? 0.9F : 0.75F * cloud.colorMod; + Vec3 color = cloud.getInterpColor(partialTicks); + float r, g, b; + r = Math.max(0.15F, (float)color.xCoord * brightness); + g = Math.max(0.15F, (float)color.yCoord * brightness); + b = Math.max(0.15F, (float)color.zCoord * brightness); + + int br = (int)Math.max(48, (Math.min((r+g+b) / 3D, 1) * 240)); + r = Math.min(1F, r); + g = Math.min(1F, g); + b = Math.min(1F, b); + + buf.pos((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale)).tex(1, 1).color(r, g, b, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale)).tex(1, 0).color(r, g, b, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale)).tex(0, 0).color(r, g, b, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale)).tex(0, 1).color(r, g, b, a).lightmap(br, br).endVertex(); + } + + private void tessellateFlare(BufferBuilder buf, double posX, double posY, double posZ, float scale, float a, float partialTicks) { + + float f1 = ActiveRenderInfo.getRotationX(); + float f2 = ActiveRenderInfo.getRotationZ(); + float f3 = ActiveRenderInfo.getRotationYZ(); + float f4 = ActiveRenderInfo.getRotationXY(); + float f5 = ActiveRenderInfo.getRotationXZ(); + int br = (int)(a * 240); + buf.pos((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale)).tex(1, 1).color(1F, 1F, 1F, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale)).tex(1, 0).color(1F, 1F, 1F, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale)).tex(0, 0).color(1F, 1F, 1F, a).lightmap(br, br).endVertex(); + buf.pos((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale)).tex(0, 1).color(1F, 1F, 1F, a).lightmap(br, br).endVertex(); + + } + + private void flashWrapper(EntityNukeTorex cloud, float interp, float flashDuration) { + + if(cloud.ticksExisted < flashDuration) { + + GL11.glPushMatrix(); + //Function [0, 1] that determines the scale and intensity (inverse!) of the flash + double intensity = (cloud.ticksExisted + interp) / flashDuration; + GlStateManager.alphaFunc(GL11.GL_GREATER, 0.0F); + + //Euler function to slow down the scale as it progresses + //Makes it start fast and the fade-out is nice and smooth + intensity = intensity * Math.pow(Math.E, -intensity) * 2.717391304D; + + renderFlash(50F * (float)flashDuration/(float)flashBaseDuration, intensity, cloud.coreHeight); + GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glPopMatrix(); + } + } + + private void renderFlash(float scale, double intensity, double height) { + + GL11.glScalef(0.2F, 0.2F, 0.2F); + GL11.glTranslated(0, height * 4, 0); + + double inverse = 1.0D - intensity; + + Tessellator tessellator = Tessellator.getInstance(); + BufferBuilder buf = tessellator.getBuffer(); + RenderHelper.disableStandardItemLighting(); + + Random random = new Random(432L); + GlStateManager.disableTexture2D(); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); + GlStateManager.disableAlpha(); + GlStateManager.enableCull(); + GlStateManager.depthMask(false); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + GL11.glPushMatrix(); + + for(int i = 0; i < 300; i++) { + + GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); + + float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float)(intensity * scale); + float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float)(intensity * scale); + + buf.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR); + buf.pos(0D, 0D, 0D).color(1.0F, 1.0F, 1.0F, (float) inverse).endVertex(); + buf.pos(-0.866D * vert2, vert1, -0.5D * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); + buf.pos(0.866D * vert2, vert1, -0.5D * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); + buf.pos(0.0D, vert1, 1.0D * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); + buf.pos(-0.866D * vert2, vert1, -0.5D * vert2).color(1.0F, 1.0F, 1.0F, 0.0F).endVertex(); + tessellator.draw(); + } + + GL11.glPopMatrix(); + + GlStateManager.depthMask(true); + GlStateManager.disableCull(); + GlStateManager.disableBlend(); + GlStateManager.shadeModel(GL11.GL_FLAT); + GlStateManager.color(1, 1, 1, 1); + GlStateManager.enableTexture2D(); + GlStateManager.enableAlpha(); + RenderHelper.enableStandardItemLighting(); + } + + @Override + protected ResourceLocation getEntityTexture(EntityNukeTorex entity) { + return null; + } +} diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileAB.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileAB.java index 37e4232733..1f085b69eb 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileAB.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileAB.java @@ -33,8 +33,10 @@ public void doRender(EntityMissileAntiBallistic missile, double x, double y, dou GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); + ResourceManager.missileAB.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileBunkerBuster.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileBunkerBuster.java index 6c0d23d384..05af0e8cec 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileBunkerBuster.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileBunkerBuster.java @@ -33,8 +33,10 @@ public void doRender(EntityMissileBunkerBuster missile, double x, double y, doub GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileV2_BU_tex); ResourceManager.missileV2.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileBurst.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileBurst.java index f24aef76be..503d28dc62 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileBurst.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileBurst.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileBurst; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileBurst missile, double x, double y, double z, f y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(2F, 2F, 2F); + GL11.glScalef(1F, RenderLaunchPadTier1.h_3, 1F); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileHuge_HE_tex); ResourceManager.missileHuge.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileBusterStrong.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileBusterStrong.java index b598785cac..3f6d756c33 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileBusterStrong.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileBusterStrong.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileBusterStrong; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileBusterStrong missile, double x, double y, doub y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glScalef(RenderLaunchPadTier1.w_2, RenderLaunchPadTier1.h_2, RenderLaunchPadTier1.w_2); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileStrong_BU_tex); ResourceManager.missileStrong.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileCluster.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileCluster.java index 0782827915..86291e11a5 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileCluster.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileCluster.java @@ -33,8 +33,10 @@ public void doRender(EntityMissileCluster missile, double x, double y, double z, GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileV2_CL_tex); ResourceManager.missileV2.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileClusterStrong.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileClusterStrong.java index 8ee0ccd2e8..73576bacc2 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileClusterStrong.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileClusterStrong.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileClusterStrong; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileClusterStrong missile, double x, double y, dou y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glScalef(RenderLaunchPadTier1.w_2, RenderLaunchPadTier1.h_2, RenderLaunchPadTier1.w_2); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileStrong_CL_tex); ResourceManager.missileStrong.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileDrill.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileDrill.java index 2b4486bda5..b3e4f614c5 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileDrill.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileDrill.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileDrill; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileDrill missile, double x, double y, double z, f y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(2F, 2F, 2F); + GL11.glScalef(1F, RenderLaunchPadTier1.h_3, 1F); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileHuge_BU_tex); ResourceManager.missileHuge.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileEMPStrong.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileEMPStrong.java index 0e2f5cc2f0..c87f9c82ce 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileEMPStrong.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileEMPStrong.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileEMPStrong; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileEMPStrong missile, double x, double y, double y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glScalef(RenderLaunchPadTier1.w_2, RenderLaunchPadTier1.h_2, RenderLaunchPadTier1.w_2); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileStrong_EMP_tex); ResourceManager.missileStrong.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileGeneric.java index 274ee62cf2..533036c966 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileGeneric.java @@ -34,8 +34,10 @@ public void doRender(EntityMissileGeneric missile, double x, double y, double z, GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileV2_HE_tex); ResourceManager.missileV2.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiary.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiary.java index e864d89217..7b57dbd9f4 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiary.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiary.java @@ -33,8 +33,10 @@ public void doRender(EntityMissileIncendiary missile, double x, double y, double GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileV2_IN_tex); ResourceManager.missileV2.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiaryStrong.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiaryStrong.java index c8f4e09b53..680d46be0d 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiaryStrong.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileIncendiaryStrong.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileIncendiaryStrong; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileIncendiaryStrong missile, double x, double y, y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glScalef(RenderLaunchPadTier1.w_2, RenderLaunchPadTier1.h_2, RenderLaunchPadTier1.w_2); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileStrong_IN_tex); ResourceManager.missileStrong.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileInferno.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileInferno.java index 2556adeb2c..d0d9aa60bc 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileInferno.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileInferno.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileInferno; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileInferno missile, double x, double y, double z, y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(2F, 2F, 2F); + GL11.glScalef(1F, RenderLaunchPadTier1.h_3, 1F); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileHuge_IN_tex); ResourceManager.missileHuge.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileMirv.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileMirv.java deleted file mode 100644 index 54218bc6f8..0000000000 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileMirv.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.render.entity.missile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.missile.EntityMissileMirv; -import com.hbm.main.ResourceManager; -import com.hbm.render.RenderHelper; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderMissileMirv extends Render { - - public static final IRenderFactory FACTORY = (RenderManager man) -> {return new RenderMissileMirv(man);}; - - protected RenderMissileMirv(RenderManager renderManager) { - super(renderManager); - } - - @Override - public void doRender(EntityMissileMirv missile, double x, double y, double z, float entityYaw, float partialTicks) { - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GlStateManager.enableLighting(); - double[] renderPos = RenderHelper.getRenderPosFromMissile(missile, partialTicks); - x = renderPos[0]; - y = renderPos[1]; - z = renderPos[2]; - GL11.glTranslated(x, y, z); - GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(EntityMissileMirv entity) { - return ResourceManager.missileMIRV_tex; - } - -} diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileNuclear.java index 3ad3198005..c8b7d87cb7 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileNuclear.java @@ -4,6 +4,8 @@ import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileVolcano; +import com.hbm.entity.missile.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileMirv; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -37,8 +39,12 @@ public void doRender(EntityMissileBaseAdvanced missile, double x, double y, doub if(missile instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex); - else + else if(missile instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex); + else if(missile instanceof EntityMissileMirv) + bindTexture(ResourceManager.missileMIRV_tex); + else + bindTexture(ResourceManager.missileN2_tex); ResourceManager.missileNuclear.renderAll(); GL11.glPopAttrib(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileRain.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileRain.java index c30e175cac..741c369018 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileRain.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileRain.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileRain; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileRain missile, double x, double y, double z, fl y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(2F, 2F, 2F); + GL11.glScalef(1F, RenderLaunchPadTier1.h_3, 1F); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileHuge_CL_tex); ResourceManager.missileHuge.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/missile/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/missile/RenderMissileStrong.java index 4576cc748d..193d80aba7 100644 --- a/src/main/java/com/hbm/render/entity/missile/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/missile/RenderMissileStrong.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.render.tileentity.RenderLaunchPadTier1; import com.hbm.entity.missile.EntityMissileStrong; import com.hbm.main.ResourceManager; import com.hbm.render.RenderHelper; @@ -30,12 +31,14 @@ public void doRender(EntityMissileStrong missile, double x, double y, double z, y = renderPos[1]; z = renderPos[2]; GL11.glTranslated(x, y, z); - GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glScalef(RenderLaunchPadTier1.w_2, RenderLaunchPadTier1.h_2, RenderLaunchPadTier1.w_2); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.missileStrong_HE_tex); ResourceManager.missileStrong.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java index b3bd000c86..789569881e 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java @@ -23,7 +23,7 @@ public class RenderRADBeast extends RenderLiving { public static final IRenderFactory FACTORY = man -> new RenderRADBeast(man); private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png"); - private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png"); + private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/armor/ModelM65Blaze.png"); public RenderRADBeast(RenderManager rendermanagerIn) { super(rendermanagerIn, new ModelBlaze(), 0.5F); diff --git a/src/main/java/com/hbm/render/factories/RenderFogRenderFactory.java b/src/main/java/com/hbm/render/factories/RenderFogRenderFactory.java deleted file mode 100644 index cc7f4d353f..0000000000 --- a/src/main/java/com/hbm/render/factories/RenderFogRenderFactory.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.render.factories; - -import com.hbm.entity.particle.EntityFogFX; -import com.hbm.render.entity.FogRenderer; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderFogRenderFactory implements IRenderFactory { - - @Override - public Render createRenderFor(RenderManager manager) { - return new FogRenderer(manager); - } - -} diff --git a/src/main/java/com/hbm/render/factories/RenderSmallNukeMK3Factory.java b/src/main/java/com/hbm/render/factories/RenderSmallNukeMK3Factory.java deleted file mode 100644 index 2361526863..0000000000 --- a/src/main/java/com/hbm/render/factories/RenderSmallNukeMK3Factory.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.render.factories; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.render.entity.RenderSmallNukeMK3; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraftforge.fml.client.registry.IRenderFactory; - -public class RenderSmallNukeMK3Factory implements IRenderFactory { - - @Override - public Render createRenderFor(RenderManager manager) { - return new RenderSmallNukeMK3(manager); - } - -} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index b5f455699e..9fd40b0173 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -437,19 +437,6 @@ public void renderCommon() { GlStateManager.shadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_drill), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -2, 0); - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glRotated(180, 0, 1, 0); - GlStateManager.disableCull(); - bindTexture(ResourceManager.drill_body_tex); ResourceManager.drill_body.renderAll(); - bindTexture(ResourceManager.drill_bolt_tex); ResourceManager.drill_bolt.renderAll(); - GlStateManager.enableCull(); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_mining_laser), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -0.5, 0); @@ -643,8 +630,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glTranslated(0.25, 0, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_gadget_tex); ResourceManager.bomb_gadget.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_boy), new ItemRenderBase() { @@ -653,8 +642,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glTranslated(-1, 0, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_boy_tex); ResourceManager.bomb_boy.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_man), new ItemRenderBase() { @@ -665,10 +656,10 @@ public void renderInventory() { public void renderCommon() { GL11.glRotated(180, 0, 1, 0); GL11.glTranslated(-0.75, 0, 0); - GlStateManager.disableCull(); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_man_tex); ResourceManager.bomb_man.renderAll(); - GlStateManager.enableCull(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_mike), new ItemRenderBase() { @@ -678,8 +669,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glRotated(90, 0, 1, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_mike_tex); ResourceManager.bomb_mike.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_tsar), new ItemRenderBase() { @@ -688,8 +681,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glTranslated(1.5, 0, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_tsar_tex); ResourceManager.bomb_tsar.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_prototype), new ItemRenderBase() { @@ -698,8 +693,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glRotated(90, 0, 1, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_prototype_tex); ResourceManager.bomb_prototype.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_fleija), new ItemRenderBase() { @@ -710,8 +707,10 @@ public void renderInventory() { public void renderCommon() { GL11.glScaled(2, 2, 2); GL11.glRotated(90, 0, 1, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_fleija_tex); ResourceManager.bomb_fleija.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_solinium), new ItemRenderBase() { @@ -721,10 +720,10 @@ public void renderInventory() { public void renderCommon() { GL11.glTranslated(0.5, 0, 0); GL11.glRotated(90, 0, 1, 0); - GlStateManager.disableCull(); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_solinium_tex); ResourceManager.bomb_solinium.renderAll(); - GlStateManager.enableCull(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_n2), new ItemRenderBase() { @@ -734,8 +733,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glRotated(90, 0, 1, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.n2_tex); ResourceManager.n2.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_fstbmb), new ItemRenderBase() { @@ -758,8 +759,10 @@ public void renderInventory() { } public void renderCommon() { GL11.glTranslated(-1, 0, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_custom_tex); ResourceManager.bomb_boy.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.crashed_balefire), new ItemRenderBase() { @@ -844,7 +847,7 @@ public void renderInventory() { GL11.glScaled(6, 6, 6); } public void renderCommon() { - bindTexture(ResourceManager.forcefield_base_tex); ResourceManager.radar_body.renderAll(); + bindTexture(ResourceManager.radar_base_tex); ResourceManager.radar.renderPart("Base"); GL11.glTranslated(0, 1D, 0); bindTexture(ResourceManager.forcefield_top_tex); ResourceManager.forcefield_top.renderAll(); }}); @@ -921,9 +924,9 @@ public void renderInventory() { } public void renderCommon() { GlStateManager.disableCull(); - GL11.glRotated(90, 0, -1, 0); - bindTexture(ResourceManager.radar_body_tex); ResourceManager.radar_body.renderAll(); - bindTexture(ResourceManager.radar_head_tex); ResourceManager.radar_head.renderAll(); + bindTexture(ResourceManager.radar_base_tex); ResourceManager.radar.renderPart("Base"); + GL11.glTranslated(-0.125, 0, 0); + bindTexture(ResourceManager.radar_dish_tex); ResourceManager.radar.renderPart("Dish"); GlStateManager.enableCull(); }}); @@ -977,6 +980,40 @@ public void renderCommon() { bindTexture(ResourceManager.blast_door_slider_tex); ResourceManager.blast_door_slider.renderAll(); bindTexture(ResourceManager.blast_door_block_tex); ResourceManager.blast_door_block.renderAll(); }}); + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_blast_door), new ItemRenderBase() { + @Override + public void renderInventory() { + GL11.glTranslated(0, -3.3, 0); + GL11.glScaled(2.3, 2.3, 2.3); + } + + @Override + public void renderCommon() { + GL11.glRotated(-90, 0, 1, 0); + bindTexture(ResourceManager.sliding_blast_door_tex); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + ResourceManager.door0.controller.setAnim(new AnimationWrapper(0, ResourceManager.door0_open)); + ResourceManager.door0.renderAnimated(0); + GlStateManager.shadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_blast_door_2), new ItemRenderBase() { + @Override + public void renderInventory() { + GL11.glTranslated(0, -3.3, 0); + GL11.glScaled(2.3, 2.3, 2.3); + } + + @Override + public void renderCommon() { + GL11.glRotated(-90, 0, 1, 0); + bindTexture(ResourceManager.sliding_blast_door_keypad_tex); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + ResourceManager.door0_1.controller.setAnim(new AnimationWrapper(0, ResourceManager.door0_open)); + ResourceManager.door0_1.renderAnimated(0); + GlStateManager.shadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch), new ItemRenderBase() { @Override public void renderInventory() { @@ -1279,6 +1316,19 @@ public void renderCommon() { bindTexture(ResourceManager.turret_fritz_tex); ResourceManager.turret_fritz.renderPart("Gun"); GlStateManager.shadeModel(GL11.GL_FLAT); }}); + renderers.put(Item.getItemFromBlock(ModBlocks.railgun_plasma), new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, 2, -4); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glRotated(180, 0, 1, 0); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.railgun_base_tex); ResourceManager.railgun_base.renderAll(); + bindTexture(ResourceManager.railgun_rotor_tex); ResourceManager.railgun_rotor.renderAll(); + bindTexture(ResourceManager.railgun_main_tex); ResourceManager.railgun_main.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); + }}); renderers.put(Item.getItemFromBlock(ModBlocks.rbmk_console), new ItemRenderBase() { public void renderInventory() { @@ -1316,11 +1366,7 @@ public void renderCommon(ItemStack stack){ bindTexture(((RBMKBase)Block.getBlockFromItem(stack.getItem())).columnTexture); Tessellator tes = Tessellator.instance; tes.startDrawing(GL11.GL_TRIANGLES); - for(int i = 0; i < 4; i ++){ - ResourceManager.rbmk_element.tessellatePart(tes, "Column"); - ResourceManager.rbmk_element.tessellatePart(tes, "Rods"); - tes.addTranslation(0, 1, 0); - } + ResourceManager.rbmk_element.tessellatePartSplit(tes, "Column", 0.5F, 3); tes.draw(); } public boolean doNullTransform(){ @@ -1336,11 +1382,8 @@ public void renderCommon(ItemStack stack){ bindTexture(((RBMKBase)Block.getBlockFromItem(stack.getItem())).columnTexture); Tessellator tes = Tessellator.instance; tes.startDrawing(GL11.GL_TRIANGLES); - for(int i = 0; i < 4; i ++){ - ResourceManager.rbmk_rods.tessellatePart(tes, "Column"); - if(i < 3) - tes.addTranslation(0, 1, 0); - } + ResourceManager.rbmk_rods.tessellatePartSplit(tes, "Column", 0.5F, 3); + tes.addTranslation(0, 3, 0); if(Block.getBlockFromItem(stack.getItem()) != ModBlocks.rbmk_boiler && Block.getBlockFromItem(stack.getItem()) != ModBlocks.rbmk_heater) ResourceManager.rbmk_rods.tessellatePart(tes, "Lid"); tes.draw(); @@ -1358,11 +1401,7 @@ public void renderCommon(ItemStack stack){ bindTexture(((RBMKBase)Block.getBlockFromItem(stack.getItem())).columnTexture); Tessellator tes = Tessellator.instance; tes.startDrawing(GL11.GL_TRIANGLES); - for(int i = 0; i < 4; i ++){ - ResourceManager.rbmk_reflector.tessellatePart(tes, "Column"); - tes.addTranslation(0, 1, 0); - } - ResourceManager.rbmk_reflector.tessellatePart(tes, "Lid"); + ResourceManager.rbmk_reflector.tessellatePartSplit(tes, "Column", 0.5F, 3); tes.draw(); } public boolean doNullTransform(){ diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java new file mode 100644 index 0000000000..ba9a3b3f35 --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -0,0 +1,176 @@ +package com.hbm.render.item; + +import java.util.HashMap; +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.render.amlfrom1710.IModelCustom; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderMissileGeneric extends TEISRBase { + + public static HashMap> renderers = new HashMap(); + + protected RenderMissileType category; + + public static enum RenderMissileType { + TYPE_TIER0, + TYPE_TIER1, + TYPE_TIER2, + TYPE_TIER3, + TYPE_ABM, + TYPE_NUCLEAR, + TYPE_THERMAL, + TYPE_DOOMSDAY, + TYPE_CARRIER + } + + public ItemRenderMissileGeneric(RenderMissileType category) { + this.category = category; + } + + @Override + public void renderByItem(ItemStack item) { + + Consumer renderer = renderers.get(new ComparableStack(item).makeSingular()); + if(renderer == null) return; + + GL11.glPushMatrix(); + + double guiScale = 1; + double guiOffset = 0; + + switch(this.category) { + case TYPE_TIER0: guiScale = 4.2D; guiOffset = 1D; break; //Micro + case TYPE_TIER1: guiScale = 2.75D; guiOffset = 0.5D; break; //Normal + case TYPE_TIER2: guiScale = 1.1D; guiOffset = 0.5D; break; //Strong + case TYPE_TIER3: guiScale = 1D; guiOffset = 0D; break; //Huge + case TYPE_ABM: guiScale = 2.25D; guiOffset = 0.5D; break; + case TYPE_NUCLEAR: guiScale = 1.75D; guiOffset = 0D; break; + case TYPE_THERMAL: guiScale = 1.75D; guiOffset = 1D; break; + case TYPE_DOOMSDAY: guiScale = 1.5D; guiOffset = 1D; break; + case TYPE_CARRIER: guiScale = 0.625D; break; + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + boolean l = false; + switch(type) { + case THIRD_PERSON_LEFT_HAND: + case THIRD_PERSON_RIGHT_HAND: + double s = 0.15; + GL11.glTranslated(0.5, -0.25, 0.25); + GL11.glScaled(s, s, s); + GL11.glScaled(guiScale, guiScale, guiScale); + + break; + case FIRST_PERSON_LEFT_HAND: + case FIRST_PERSON_RIGHT_HAND: + double heldScale = 0.1; + GL11.glTranslated(0.5, 0.25, 0.3); + GL11.glScaled(heldScale, heldScale, heldScale); + GL11.glScaled(guiScale, guiScale, guiScale); + break; + case GROUND: + case FIXED: + case HEAD: + double s2 = 0.15; + GL11.glScaled(s2, s2, s2); + break; + case GUI: + RenderHelper.enableGUIStandardItemLighting(); + double s3 = 0.0625; + GL11.glScaled(s3, s3, s3); + GL11.glTranslated(15 - guiOffset, 1 + guiOffset, 0); + GL11.glScaled(guiScale, guiScale, guiScale); + GL11.glRotated(45, 0, 0, 1); + GL11.glRotatef(System.currentTimeMillis() / 15 % 360, 0, 1, 0); + l = true; + break; + default: break; + } + + GL11.glDisable(GL11.GL_CULL_FACE); + renderer.accept(Minecraft.getMinecraft().renderEngine); + GL11.glEnable(GL11.GL_CULL_FACE); + if(l) RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + } + + public static Consumer generateStandard(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1F); } + public static Consumer generateLarge(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1.5F); } + public static Consumer generateDouble(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 2F); } + + public static Consumer generateWithScale(ResourceLocation texture, IModelCustom model, float scale) { + return x -> { + GL11.glScalef(scale, scale, scale); + GL11.glShadeModel(GL11.GL_SMOOTH); + x.bindTexture(texture); model.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }; + } + + public static void init() { + + renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateStandard(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_emp), generateStandard(ResourceManager.missileMicroEMP_tex, ResourceManager.missileTaint)); + + renderers.put(new ComparableStack(ModItems.missile_generic), generateStandard(ResourceManager.missileV2_HE_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_incendiary), generateStandard(ResourceManager.missileV2_IN_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_cluster), generateStandard(ResourceManager.missileV2_CL_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_buster), generateStandard(ResourceManager.missileV2_BU_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_anti_ballistic), generateStandard(ResourceManager.missileAA_tex, ResourceManager.missileAB)); + + renderers.put(new ComparableStack(ModItems.missile_strong), generateLarge(ResourceManager.missileStrong_HE_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_incendiary_strong), generateLarge(ResourceManager.missileStrong_IN_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_cluster_strong), generateLarge(ResourceManager.missileStrong_CL_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_buster_strong), generateLarge(ResourceManager.missileStrong_BU_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_emp_strong), generateLarge(ResourceManager.missileStrong_EMP_tex, ResourceManager.missileStrong)); + + renderers.put(new ComparableStack(ModItems.missile_burst), generateStandard(ResourceManager.missileHuge_HE_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_inferno), generateStandard(ResourceManager.missileHuge_IN_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_rain), generateStandard(ResourceManager.missileHuge_CL_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_drill), generateStandard(ResourceManager.missileHuge_BU_tex, ResourceManager.missileHuge)); + + renderers.put(new ComparableStack(ModItems.missile_nuclear), generateLarge(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateLarge(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_volcano), generateLarge(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_n2), generateLarge(ResourceManager.missileN2_tex, ResourceManager.missileNuclear)); + + renderers.put(new ComparableStack(ModItems.missile_endo), generateLarge(ResourceManager.missileEndo_tex, ResourceManager.missileThermo)); + renderers.put(new ComparableStack(ModItems.missile_exo), generateLarge(ResourceManager.missileExo_tex, ResourceManager.missileThermo)); + + renderers.put(new ComparableStack(ModItems.missile_doomsday), generateDouble(ResourceManager.missileDoomsday_tex, ResourceManager.missileDoomsday)); + + 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); + }); + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRenderMultitool.java b/src/main/java/com/hbm/render/item/ItemRenderMultitool.java index 4a58a40524..15de8dd336 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMultitool.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMultitool.java @@ -40,7 +40,7 @@ public void renderByItem(ItemStack item) { GL11.glPushMatrix(); GlStateManager.enableCull(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMultitool.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/tools/ModelMultitool.png")); GL11.glScalef(0.5F, 0.5F, 0.5F); if(type == TransformType.FIRST_PERSON_RIGHT_HAND){ GL11.glRotated(-39, 0, 0, 1); @@ -88,7 +88,7 @@ public void renderByItem(ItemStack item) { case HEAD: GL11.glPushMatrix(); GlStateManager.enableCull(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMultitool.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/tools/ModelMultitool.png")); GL11.glScalef(0.75F, 0.75F, 0.75F); GL11.glRotated(180, 1, 0, 0); diff --git a/src/main/java/com/hbm/render/item/ItemRendererMachine.java b/src/main/java/com/hbm/render/item/ItemRendererMachine.java index 0a3fa580da..2c19009038 100644 --- a/src/main/java/com/hbm/render/item/ItemRendererMachine.java +++ b/src/main/java/com/hbm/render/item/ItemRendererMachine.java @@ -16,7 +16,7 @@ public class ItemRendererMachine extends TEISRBase { ///// THIS IS A TEST CLASS. CARVE THIS INTO A BASE CLASS FOR LESS CRAPPY BLOCK ITEM RENDERERS IN THE FUTURE //// double scale = 1.0D; private ModelBroadcaster broadcaster; - private static final ResourceLocation broadcasterTex = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRadioReceiver.png"); + private static final ResourceLocation broadcasterTex = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/ModelRadioReceiver.png"); public ItemRendererMachine(double scale) { this.scale = scale; diff --git a/src/main/java/com/hbm/render/item/weapon/GunRevolverBakedModel.java b/src/main/java/com/hbm/render/item/weapon/GunRevolverBakedModel.java deleted file mode 100644 index cab617aeed..0000000000 --- a/src/main/java/com/hbm/render/item/weapon/GunRevolverBakedModel.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.render.item.weapon; - -import java.util.Collections; -import java.util.List; - -import javax.vecmath.Matrix4f; - -import org.apache.commons.lang3.tuple.Pair; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; -import net.minecraft.client.renderer.block.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.EnumFacing; - -public class GunRevolverBakedModel implements IBakedModel { - - private TransformType type; - - @Override - public List getQuads(IBlockState state, EnumFacing side, long rand) { - return type != TransformType.GUI ? Collections.emptyList() : GunRevolverRender.INSTANCE.revolverModel.getQuads(state, side, rand); - } - - @Override - public boolean isAmbientOcclusion() { - return type != TransformType.GUI ? false : GunRevolverRender.INSTANCE.revolverModel.isAmbientOcclusion(); - } - - @Override - public boolean isGui3d() { - return type != TransformType.GUI ? false : GunRevolverRender.INSTANCE.revolverModel.isGui3d(); - } - - @Override - public boolean isBuiltInRenderer() { - return type != TransformType.GUI; - } - - @Override - public TextureAtlasSprite getParticleTexture() { - return GunRevolverRender.INSTANCE.revolverModel.getParticleTexture(); - } - - @Override - public ItemOverrideList getOverrides() { - return type != TransformType.GUI ? ItemOverrideList.NONE : GunRevolverRender.INSTANCE.revolverModel.getOverrides(); - } - - @Override - public Pair handlePerspective(TransformType type) { - this.type = type; - GunRevolverRender.INSTANCE.type = type; - return Pair.of(this, GunRevolverRender.INSTANCE.revolverModel.handlePerspective(type).getRight()); - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/GunRevolverRender.java b/src/main/java/com/hbm/render/item/weapon/GunRevolverRender.java deleted file mode 100644 index 78c47a2c5e..0000000000 --- a/src/main/java/com/hbm/render/item/weapon/GunRevolverRender.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; -import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class GunRevolverRender extends TileEntityItemStackRenderer { - - public static final GunRevolverRender INSTANCE = new GunRevolverRender(); - - public IBakedModel revolverModel; - public TransformType type; - protected ModelRevolver swordModel; - - public GunRevolverRender() { - swordModel = new ModelRevolver(); - } - - @Override - public void renderByItem(ItemStack item) { - GL11.glPushMatrix(); - switch (type) { - case FIRST_PERSON_LEFT_HAND: - case FIRST_PERSON_RIGHT_HAND: - - if (item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelRevolver.png")); - // if(item.getItem() == ModItems.gun_revolver_saturnite) - // Minecraft.getMinecraft().renderEngine.bindTexture(new - // ResourceLocation(RefStrings.MODID - // +":textures/models/ModelRevolverSaturnite.png")); - // GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - // GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - // GL11.glScalef(2.0F, 2.0F, 2.0F); - // GL11.glScalef(0.5F, 0.5F, 0.5F); - if (type == TransformType.FIRST_PERSON_RIGHT_HAND) { - GL11.glTranslated(-0.2, 0.2, 0.2); - GL11.glRotated(-10, 0, 1, 0); - GL11.glRotated(-20, 0, 0, 1); - GL11.glRotated(180, 1, 0, 0); - } else { - GL11.glTranslated(1.2, 0.2, 0.0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(180, 0, 1, 0); - GL11.glRotated(23, 0, 0, 1); - } - - // ((EntityPlayer)data[1]).isSwingInProgress = false; - - swordModel.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case THIRD_PERSON_LEFT_HAND: - case THIRD_PERSON_RIGHT_HAND: - case GROUND: - if (item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelRevolver.png")); - // if(item.getItem() == ModItems.gun_revolver_saturnite) - // Minecraft.getMinecraft().renderEngine.bindTexture(new - // ResourceLocation(RefStrings.MODID - // +":textures/models/ModelRevolverSaturnite.png")); - //GL11.glRotated(180, 1, 0, 0); - GL11.glTranslated(0.45, 0.25, 0.5); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(180, 1, 0, 0); - // GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: - break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRedstoneSwordRender.java b/src/main/java/com/hbm/render/item/weapon/ItemRedstoneSwordRender.java index 59081b76e7..584732ab46 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRedstoneSwordRender.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRedstoneSwordRender.java @@ -43,7 +43,7 @@ public void renderByItem(ItemStack stack) { GL11.glTranslatef(0.25F, 0.0F, 0.0F); } } - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSwordRedstone.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelSwordRedstone.png")); GL11.glRotatef(180.0F, 0.0F, 0.0F, 0.0F); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(0.5F, -0.2F, -0.5F); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java index b755842e75..8d97b3b0c3 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java @@ -15,7 +15,7 @@ public class ItemRenderBFLauncher extends TEISRBase { protected ModelBFLauncher swordModel; - protected static ResourceLocation bf_rl = new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png"); + protected static ResourceLocation bf_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/BFLauncher.png"); public ItemRenderBFLauncher() { swordModel = new ModelBFLauncher(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBigSword.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBigSword.java index 2c3c56c165..6581ce99c2 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBigSword.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBigSword.java @@ -24,7 +24,7 @@ public void renderByItem(ItemStack itemStackIn) { switch(type) { case FIRST_PERSON_LEFT_HAND: case FIRST_PERSON_RIGHT_HAND: - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelBigSwordTexture.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/weapons/ModelBigSwordTexture.png")); if(type == TransformType.FIRST_PERSON_RIGHT_HAND){ GL11.glTranslated(0.2, 0.2, 0.5); GL11.glRotated(135, 0, 0, 1); @@ -41,7 +41,7 @@ public void renderByItem(ItemStack itemStackIn) { case GROUND: case FIXED: case HEAD: - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelBigSwordTexture.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/weapons/ModelBigSwordTexture.png")); GL11.glScaled(1.5, 1.5, 1.5); GL11.glRotatef(-180.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java index 97d9ba7b30..b86c6ad387 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java @@ -21,10 +21,10 @@ public class ItemRenderBullshit extends TEISRBase { protected ModelPip pip; protected ModelMP40 mp40; protected ModelBaleflare bomb; - protected static ResourceLocation mp40_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png"); - protected static ResourceLocation spark_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png"); - protected static ResourceLocation pip_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png"); - protected static ResourceLocation bomb_rl = new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png"); + protected static ResourceLocation mp40_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelMP40.png"); + protected static ResourceLocation spark_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelSpark.png"); + protected static ResourceLocation pip_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelPip.png"); + protected static ResourceLocation bomb_rl = new ResourceLocation(RefStrings.MODID +":textures/models/projectiles/BaleFlare.png"); public ItemRenderBullshit() { sparkPlug = new ModelSpark(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderCalamity.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderCalamity.java index 6f0db824f6..8f453c9dd0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderCalamity.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderCalamity.java @@ -20,9 +20,9 @@ public class ItemRenderCalamity extends TEISRBase { protected ModelCalStock stock; protected ModelCalDualStock saddle; - protected ResourceLocation dualStock_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalDualStock.png"); - protected ResourceLocation barrel_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png"); - protected ResourceLocation stock_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalStock.png"); + protected ResourceLocation dualStock_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelCalDualStock.png"); + protected ResourceLocation barrel_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelCalBarrel.png"); + protected ResourceLocation stock_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelCalStock.png"); public ItemRenderCalamity() { barrel = new ModelCalBarrel(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java index 6d1ca08b9d..7e272ec278 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java @@ -15,7 +15,7 @@ public class ItemRenderCryolator extends TEISRBase { protected ModelCryolator swordModel; - protected static ResourceLocation cryo_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelCryolator.png"); + protected static ResourceLocation cryo_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelCryolator.png"); public ItemRenderCryolator() { swordModel = new ModelCryolator(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java index 9c0cc8463e..4dd0c26da3 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java @@ -17,7 +17,7 @@ public class ItemRenderEMPRay extends TEISRBase { protected ModelEMPRay emp; - protected ResourceLocation emp_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelEMPRay.png"); + protected ResourceLocation emp_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelEMPRay.png"); public ItemRenderEMPRay() { emp = new ModelEMPRay(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderEuthanasia.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderEuthanasia.java index cf47d75cb4..1e19fc403f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderEuthanasia.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderEuthanasia.java @@ -14,7 +14,7 @@ public class ItemRenderEuthanasia extends TEISRBase { protected ModelEuthanasia euthanasia; - protected static ResourceLocation euthanasia_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png"); + protected static ResourceLocation euthanasia_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelEuthanasia.png"); public ItemRenderEuthanasia() { euthanasia = new ModelEuthanasia(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java index bbc05a250e..fa70620e3c 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java @@ -15,7 +15,7 @@ public class ItemRenderFatMan extends TEISRBase { protected ModelFatman swordModel; - protected static ResourceLocation man_rl = new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png"); + protected static ResourceLocation man_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/FatmanLauncher.png"); public ItemRenderFatMan() { swordModel = new ModelFatman(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFolly.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFolly.java index 84b595486c..a2d63525c1 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFolly.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFolly.java @@ -15,7 +15,7 @@ public class ItemRenderFolly extends TEISRBase { protected ModelFolly folly; - protected static ResourceLocation folly_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png"); + protected static ResourceLocation folly_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelFolly.png"); public ItemRenderFolly() { folly = new ModelFolly(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java index ab97c1d147..78b38d904d 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java @@ -45,7 +45,7 @@ public void renderByItem(ItemStack item) { GL11.glEnable(GL11.GL_CULL_FACE); if(item.getItem() == ModItems.gun_b92) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelB92SM.png")); //GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); //GL11.glTranslatef(-0.5F, 0.0F, -0.2F); @@ -82,7 +82,7 @@ public void renderByItem(ItemStack item) { case GROUND: GL11.glPushMatrix(); if(item.getItem() == ModItems.gun_b92) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelB92SM.png")); GL11.glScaled(0.25, 0.25, 0.25); GL11.glRotated(180, 1, 0, 0); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim2.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim2.java index 48db86fde1..12da9861fc 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim2.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim2.java @@ -23,10 +23,10 @@ public class ItemRenderGunAnim2 extends TEISRBase { protected ModelBoltAction boltaction; protected ModelB92 b92; protected ModelB93 b93; - protected ResourceLocation leverActionLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png"); - protected ResourceLocation leverActionDark_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverActionDark.png"); - protected ResourceLocation leverBoltAction_green = new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionGreen.png"); - protected ResourceLocation leverBoltAction = new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionDark.png"); + protected ResourceLocation leverActionLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelLeverAction.png"); + protected ResourceLocation leverActionDark_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelLeverActionDark.png"); + protected ResourceLocation leverBoltAction_green = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelBoltActionGreen.png"); + protected ResourceLocation leverBoltAction = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelBoltActionDark.png"); public ItemRenderGunAnim2() { leveraction = new ModelLeverAction(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunDefab.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunDefab.java index 0b901e61da..25935b8256 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunDefab.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunDefab.java @@ -14,7 +14,7 @@ public class ItemRenderGunDefab extends TEISRBase { protected ModelDefabricator defab; - protected static ResourceLocation defab_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png"); + protected static ResourceLocation defab_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelDefabricator.png"); public ItemRenderGunDefab() { defab = new ModelDefabricator(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunHP.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunHP.java index 57e2ee3ca7..fd312932f5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunHP.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunHP.java @@ -14,7 +14,7 @@ public class ItemRenderGunHP extends TEISRBase { protected ModelHP hppLaserjet; - protected ResourceLocation hp_loc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png"); + protected ResourceLocation hp_loc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelHP.png"); public ItemRenderGunHP() { hppLaserjet = new ModelHP(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunJack.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunJack.java index 21522ee842..c4f3efd35a 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunJack.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunJack.java @@ -15,7 +15,7 @@ public class ItemRenderGunJack extends TEISRBase { protected ModelJack jack; - protected ResourceLocation jack_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png"); + protected ResourceLocation jack_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelJack.png"); public ItemRenderGunJack() { jack = new ModelJack(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSaturnite.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSaturnite.java index 2dd881f7ec..0604e07331 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSaturnite.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSaturnite.java @@ -15,7 +15,7 @@ public class ItemRenderGunSaturnite extends TEISRBase { protected ModelBoltAction sat; - protected static ResourceLocation sat_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionSaturnite.png"); + protected static ResourceLocation sat_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelBoltActionSaturnite.png"); public ItemRenderGunSaturnite() { sat = new ModelBoltAction(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSonata.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSonata.java index 01c306465b..3febb0bd6f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSonata.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunSonata.java @@ -14,7 +14,7 @@ public class ItemRenderGunSonata extends TEISRBase { - private static ResourceLocation sonata_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/ModelLeverAction.png"); + private static ResourceLocation sonata_rl = new ResourceLocation(RefStrings.MODID + ":textures/models/weapons/ModelLeverAction.png"); protected ModelLeverAction leveraction; public ItemRenderGunSonata() { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java index 8e0e57bd07..9ffa85fab5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java @@ -15,7 +15,7 @@ public class ItemRenderImmolator extends TEISRBase { protected ModelImmolator immolator; - protected static ResourceLocation immolator_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelImmolator.png"); + protected static ResourceLocation immolator_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelImmolator.png"); public ItemRenderImmolator() { immolator = new ModelImmolator(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java index 4377b5bc1f..026fc37563 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java @@ -15,7 +15,7 @@ public class ItemRenderMIRVLauncher extends TEISRBase { protected ModelMIRVLauncher swordModel; - public static ResourceLocation mirv_rl = new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png"); + public static ResourceLocation mirv_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/MIRVLauncher.png"); public ItemRenderMIRVLauncher() { swordModel = new ModelMIRVLauncher(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java index 544fba6f7f..01a434192d 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java @@ -14,7 +14,7 @@ public class ItemRenderMP extends TEISRBase { protected ModelMP swordModel; - protected static ResourceLocation mp_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png"); + protected static ResourceLocation mp_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelMP.png"); public ItemRenderMP() { swordModel = new ModelMP(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java index 630edf8bb5..6f039d225f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java @@ -15,7 +15,7 @@ public class ItemRenderMP40 extends TEISRBase { protected ModelMP40 swordModel; - protected ResourceLocation mp40_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png"); + protected ResourceLocation mp40_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelMP40.png"); public ItemRenderMP40() { swordModel = new ModelMP40(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMinigun.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMinigun.java index 1207364b99..ce1c65af0a 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMinigun.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderMinigun.java @@ -17,9 +17,9 @@ public class ItemRenderMinigun extends TEISRBase { protected ModelLacunae lacunae; - protected static ResourceLocation minigun_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png"); - protected static ResourceLocation avenger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png"); - protected static ResourceLocation lacunae_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png"); + protected static ResourceLocation minigun_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelLacunae.png"); + protected static ResourceLocation avenger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelLacunaeAvenger.png"); + protected static ResourceLocation lacunae_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelLacunaeReal.png"); public ItemRenderMinigun() { lacunae = new ModelLacunae(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java index fa83244edb..4aa5a656e7 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java @@ -15,7 +15,7 @@ public class ItemRenderOSIPR extends TEISRBase { protected ModelOSIPR osipr; - protected static ResourceLocation osipr_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelOSIPR.png"); + protected static ResourceLocation osipr_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelOSIPR.png"); public ItemRenderOSIPR() { osipr = new ModelOSIPR(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java index 065d6baabb..483b76c41f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java @@ -17,18 +17,18 @@ public class ItemRenderOverkill extends TEISRBase { /*protected ModelJack powerJack; */protected ModelSpark sparkPlug; - public static ResourceLocation sparkLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png"); + public static ResourceLocation sparkLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelSpark.png"); /*protected ModelHP hppLaserjet; protected ModelEuthanasia euthanasia; protected ModelDefabricator defab; protected ModelDash dasher; protected ModelTwiGun rgottp;*/ protected ModelPip pip; - protected ResourceLocation pipLoc = new ResourceLocation(RefStrings.MODID + ":textures/models/ModelPip.png"); - protected ResourceLocation noPipLoc = new ResourceLocation(RefStrings.MODID + ":textures/models/ModelPipNoScope.png"); - protected ResourceLocation blackjackLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png"); - protected ResourceLocation redLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png"); - protected ResourceLocation silverLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png"); + protected ResourceLocation pipLoc = new ResourceLocation(RefStrings.MODID + ":textures/models/weapons/ModelPip.png"); + protected ResourceLocation noPipLoc = new ResourceLocation(RefStrings.MODID + ":textures/models/weapons/ModelPipNoScope.png"); + protected ResourceLocation blackjackLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelPipGrey.png"); + protected ResourceLocation redLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelPipRed.png"); + protected ResourceLocation silverLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelPipSilver.png"); /*protected ModelLacunae lacunae; protected ModelFolly folly; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java index 65e7e3cb7d..6bd8303dd0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java @@ -14,7 +14,7 @@ public class ItemRenderRevolverCursed extends TEISRBase { protected ModelGun swordModel; - protected ResourceLocation revolverLoc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelGun.png"); + protected ResourceLocation revolverLoc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelGun.png"); public ItemRenderRevolverCursed() { swordModel = new ModelGun(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java index 88a33bbed1..2d66ed703a 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java @@ -2,62 +2,87 @@ import org.lwjgl.opengl.GL11; +import com.hbm.main.ResourceManager; import com.hbm.lib.RefStrings; import com.hbm.render.item.TEISRBase; -import com.hbm.render.model.ModelRevolver; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class ItemRenderRevolverInverted extends TEISRBase { - protected ModelRevolver swordModel; - protected static ResourceLocation revolver_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolver.png"); - public ItemRenderRevolverInverted() { - swordModel = new ModelRevolver(); } @Override - public void renderByItem(ItemStack itemStackIn) { - Minecraft.getMinecraft().renderEngine.bindTexture(revolver_rl); - switch(type){ + public void renderByItem(ItemStack item) { + if(type == null) return; + GL11.glPushMatrix(); + GlStateManager.enableCull(); + double s0 = 1.5D; + double s1 = 1.5D; + double s2 = 1.5D; + switch(type) { + case FIRST_PERSON_LEFT_HAND: - GL11.glTranslated(0, 0, 0); + + GL11.glTranslated(1, 0.5, 0.3); + GL11.glScaled(s0, s0, s0); + GL11.glRotated(100, 0, -1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(180, 0, 1, 0); + + break; + case FIRST_PERSON_RIGHT_HAND: - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslated(1.0, 1.0, 1.2); - if(type == TransformType.FIRST_PERSON_RIGHT_HAND){ - - GL11.glRotated(-40, 0, 0, 1); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(180, 0, 1, 0); - } else { - GL11.glRotated(180, 0, 1, 0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(50, 0, 0, 1); - GL11.glRotated(180, 0, 1, 0); - } - swordModel.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + GL11.glTranslated(0, 0.5, 0.3); + GL11.glScaled(s0, s0, s0); + GL11.glRotated(100, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(180, 0, 1, 0); break; + case THIRD_PERSON_LEFT_HAND: case THIRD_PERSON_RIGHT_HAND: + + GL11.glRotated(5, 1, 0, 0); + GL11.glTranslated(0.5, 0.1, -0.25); + GL11.glScaled(s1, s1, s1); + GL11.glRotated(180, 0, 1, 0); + break; + case HEAD: case FIXED: case GROUND: - if(type == TransformType.GROUND) - GL11.glTranslated(0.05, 0, 0); - GL11.glTranslated(0.55, 0.25, 0.5); - GL11.glRotated(-90, 0, 1, 0); - //GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(180, 0, 0, 1); - swordModel.render(null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + GL11.glRotated(90, 0, -1, 0); + GL11.glScaled(s2, s2, s2); + break; - default: + case GUI: + + GlStateManager.enableLighting(); + GL11.glTranslated(0.5, 0.5, 0); + GL11.glRotated(-45, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(180, 0, 1, 0); break; + + default: break; } + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_bright); + ResourceManager.ff_python.renderPart("Body"); + ResourceManager.ff_python.renderPart("Cylinder"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_wood); + ResourceManager.ff_python.renderPart("Grip"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_iron); + ResourceManager.ff_python.renderPart("Hammer"); + + GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java index cc31152369..f8935085d9 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java @@ -17,8 +17,8 @@ public class ItemRenderRevolverNightmare extends TEISRBase { protected ModelNightmare n1; protected ModelNightmare2 n2; - protected ResourceLocation n1Loc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare.png"); - protected ResourceLocation n2Loc = new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare2.png"); + protected ResourceLocation n1Loc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelNightmare.png"); + protected ResourceLocation n2Loc = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelNightmare2.png"); public ItemRenderRevolverNightmare() { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java index 427113a27a..32fee1b7b1 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java @@ -18,9 +18,9 @@ public class ItemRenderRpg extends TEISRBase { protected ModelGustav swordModel; protected ModelPanzerschreck panz; - protected static ResourceLocation gustav_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png"); - protected static ResourceLocation karl_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png"); - protected static ResourceLocation panzer_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelPanzerschreck.png"); + protected static ResourceLocation gustav_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelGustav.png"); + protected static ResourceLocation karl_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelGustavYellow.png"); + protected static ResourceLocation panzer_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelPanzerschreck.png"); public ItemRenderRpg() { swordModel = new ModelGustav(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java index a05cdb63c6..beabb7dfa1 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java @@ -15,8 +15,8 @@ public class ItemRenderStinger extends TEISRBase { protected ModelStinger stinger; - protected static ResourceLocation stinger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelStinger.png"); - protected static ResourceLocation skystinger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelSkyStinger.png"); + protected static ResourceLocation stinger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelStinger.png"); + protected static ResourceLocation skystinger_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelSkyStinger.png"); public ItemRenderStinger() { stinger = new ModelStinger(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java index d331f336e9..b637cd4af0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java @@ -15,7 +15,7 @@ public class ItemRenderUboinik extends TEISRBase { protected ModelUboinik uboinik; - protected static ResourceLocation uboinik_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png"); + protected static ResourceLocation uboinik_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelUboinik.png"); public ItemRenderUboinik() { uboinik = new ModelUboinik(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUzi.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUzi.java index 14e1b37374..da46d9238f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUzi.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderUzi.java @@ -21,10 +21,10 @@ public class ItemRenderUzi extends TEISRBase { protected ModelUziBarrel barrel; protected ModelUziSilencer silencer; - protected static ResourceLocation uzi_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png"); - protected static ResourceLocation sat_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png"); - protected static ResourceLocation barrel_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png"); - protected static ResourceLocation silencer_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png"); + protected static ResourceLocation uzi_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelUzi.png"); + protected static ResourceLocation sat_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelUziSaturnite.png"); + protected static ResourceLocation barrel_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelUziBarrel.png"); + protected static ResourceLocation silencer_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelUziSilencer.png"); public ItemRenderUzi() { uzi = new ModelUzi(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderXVL1456.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderXVL1456.java index 2b1378c578..10148a3c4c 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderXVL1456.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderXVL1456.java @@ -26,7 +26,7 @@ public class ItemRenderXVL1456 extends TEISRBase { protected ModelXVL1456 swordModel; - protected static ResourceLocation tau_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelXVL1456.png"); + protected static ResourceLocation tau_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelXVL1456.png"); public ItemRenderXVL1456() { swordModel = new ModelXVL1456(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java index e378c71297..7e1993511e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java @@ -15,7 +15,7 @@ public class ItemRenderZOMG extends TEISRBase { protected ModelZOMG swordModel; - protected static ResourceLocation zomg_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png"); + protected static ResourceLocation zomg_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelZOMG.png"); public ItemRenderZOMG() { swordModel = new ModelZOMG(); diff --git a/src/main/java/com/hbm/render/item/weapon/RenderGunB93.java b/src/main/java/com/hbm/render/item/weapon/RenderGunB93.java index c466137f24..8cb7bb2d91 100644 --- a/src/main/java/com/hbm/render/item/weapon/RenderGunB93.java +++ b/src/main/java/com/hbm/render/item/weapon/RenderGunB93.java @@ -16,7 +16,7 @@ public class RenderGunB93 extends TEISRBase { protected ModelB93 b93; - protected ResourceLocation b93_rl = new ResourceLocation(RefStrings.MODID +":textures/models/ModelB93.png"); + protected ResourceLocation b93_rl = new ResourceLocation(RefStrings.MODID +":textures/models/weapons/ModelB93.png"); public RenderGunB93(){ b93 = new ModelB93(); diff --git a/src/main/java/com/hbm/render/misc/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/misc/RenderAccessoryUtility.java index 713e753bc1..e8f69c1155 100644 --- a/src/main/java/com/hbm/render/misc/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/misc/RenderAccessoryUtility.java @@ -14,20 +14,20 @@ public class RenderAccessoryUtility { - private static ResourceLocation hbm = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHbm.png"); - private static ResourceLocation hbm2 = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHbm2.png"); + private static ResourceLocation hbm = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHbm.png"); + private static ResourceLocation hbm2 = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHbm2.png"); private static ResourceLocation drillgon = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeDrillgon.png"); - private static ResourceLocation dafnik = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeDafnik.png"); - private static ResourceLocation lpkukin = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeShield.png"); - private static ResourceLocation vertice = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeVertice_2.png"); - private static ResourceLocation red = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeRed.png"); - private static ResourceLocation ayy = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeAyy.png"); - private static ResourceLocation nostalgia = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeNostalgia.png"); - private static ResourceLocation sam = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeSam.png"); - private static ResourceLocation hoboy = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHoboy.png"); - private static ResourceLocation master = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeMaster.png"); - private static ResourceLocation mek = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeMek.png"); - private static ResourceLocation test = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeTest.png"); + private static ResourceLocation dafnik = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeDafnik.png"); + private static ResourceLocation lpkukin = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeShield.png"); + private static ResourceLocation vertice = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeVertice_2.png"); + private static ResourceLocation red = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeRed.png"); + private static ResourceLocation ayy = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAyy.png"); + private static ResourceLocation nostalgia = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeNostalgia.png"); + private static ResourceLocation sam = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeSam.png"); + private static ResourceLocation hoboy = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHoboy.png"); + private static ResourceLocation master = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeMaster.png"); + private static ResourceLocation mek = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeMek.png"); + private static ResourceLocation test = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeTest.png"); private static ResourceLocation swiggs = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeSweatySwiggs.png"); private static ResourceLocation doctor17 = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeDoctor17.png"); private static ResourceLocation shimmeringblaze = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeBlaze.png"); @@ -35,6 +35,7 @@ public class RenderAccessoryUtility { private static ResourceLocation leftnugget = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeLeftNugget.png"); private static ResourceLocation rightnugget = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeRightNugget.png"); private static ResourceLocation alcater = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/capealcater.png"); + private static ResourceLocation jame = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/capejame.png"); private static ResourceLocation golem = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/capegolem.png"); public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { @@ -95,27 +96,26 @@ public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { if(uuid.equals(Library.lag_add)) { return rightnugget; } - if(Library.contributors.contains(uuid)) { - return wiki; - } - if(name.startsWith("Player")) { - return test; - } if(uuid.equals(Library.Alcater)) { return alcater; } + if(uuid.equals(Library.ege444)) { + return jame; + } if(uuid.equals(Library.Golem)) { return golem; } - + if(Library.contributors.contains(uuid)) { + return wiki; + } + if(name.startsWith("Player")) { + return test; + } return null; } public static void loadCape(NetworkPlayerInfo info, ResourceLocation rl) { try { - // Map playerTextures = - // ObfuscationReflectionHelper.getPrivateValue(NetworkPlayerInfo.class, - // info, "playerTextures"); @SuppressWarnings("deprecation") Map playerTextures = ReflectionHelper.getPrivateValue(NetworkPlayerInfo.class, info, "playerTextures", "field_187107_a"); diff --git a/src/main/java/com/hbm/render/model/ModelArmorAJR.java b/src/main/java/com/hbm/render/model/ModelArmorAJR.java index 7e5d65292f..90ea7d19ed 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorAJR.java +++ b/src/main/java/com/hbm/render/model/ModelArmorAJR.java @@ -30,10 +30,16 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float GL11.glPushMatrix(); GL11.glShadeModel(GL11.GL_SMOOTH); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 0) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ajr_helmet); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 1) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ajr_chest); diff --git a/src/main/java/com/hbm/render/model/ModelArmorAJRO.java b/src/main/java/com/hbm/render/model/ModelArmorAJRO.java index 1a7ff57321..686d14f65e 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorAJRO.java +++ b/src/main/java/com/hbm/render/model/ModelArmorAJRO.java @@ -31,10 +31,16 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float GL11.glPushMatrix(); GlStateManager.shadeModel(GL11.GL_SMOOTH); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 3) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ajro_helmet); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 2) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ajro_chest); diff --git a/src/main/java/com/hbm/render/model/ModelArmorBJ.java b/src/main/java/com/hbm/render/model/ModelArmorBJ.java index b34610dff8..91dc5c06d4 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBJ.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBJ.java @@ -31,12 +31,17 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); body.copyTo(jetpack); GL11.glPushMatrix(); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 0) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_eyepatch); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } - if(type == 1 || type == 5) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_chest); body.render(par7); diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 5761d763d9..949d8dfa3f 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -1,5 +1,6 @@ package com.hbm.render.model; +import com.hbm.interfaces.IHoldableWeapon; import com.hbm.render.loader.ModelRendererObj; import net.minecraft.client.model.ModelBiped; @@ -7,8 +8,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.monster.EntityPigZombie; -import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.util.EnumHandSide; import net.minecraft.util.math.MathHelper; @@ -41,17 +40,19 @@ public ModelArmorBase(int type) { } @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + public void setRotationAngles(float walkCycle, float walkAmplitude, float idleCycle, float headYaw, float headPitch, float scale, Entity entity) { + + super.setRotationAngles(walkCycle, walkAmplitude, idleCycle, headYaw, headPitch, scale, entity); + if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; this.isSneak = player.isSneaking(); - this.isRiding = player.isRiding(); } - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotationPointX = this.bipedHead.rotationPointX; this.head.rotationPointY = this.bipedHead.rotationPointY; + this.head.rotationPointY = this.bipedHead.rotationPointY; + this.head.rotateAngleY = this.bipedHead.rotateAngleY; this.head.rotateAngleY = this.bipedHead.rotateAngleY; this.head.rotateAngleX = this.bipedHead.rotateAngleX; @@ -77,52 +78,75 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.rightArm.rotateAngleZ = this.bipedRightArm.rotateAngleZ; this.leftLeg.rotationPointX = this.bipedLeftLeg.rotationPointX; - this.leftLeg.rotationPointY = this.bipedLeftLeg.rotationPointY - 1.5F; + this.leftLeg.rotationPointY = this.bipedLeftLeg.rotationPointY; this.leftLeg.rotationPointZ = this.bipedLeftLeg.rotationPointZ; this.leftLeg.rotateAngleX = this.bipedLeftLeg.rotateAngleX; this.leftLeg.rotateAngleY = this.bipedLeftLeg.rotateAngleY; this.leftLeg.rotateAngleZ = this.bipedLeftLeg.rotateAngleZ; this.rightLeg.rotationPointX = this.bipedRightLeg.rotationPointX; - this.rightLeg.rotationPointY = this.bipedRightLeg.rotationPointY - 1.5F; + this.rightLeg.rotationPointY = this.bipedRightLeg.rotationPointY; this.rightLeg.rotationPointZ = this.bipedRightLeg.rotationPointZ; this.rightLeg.rotateAngleX = this.bipedRightLeg.rotateAngleX; this.rightLeg.rotateAngleY = this.bipedRightLeg.rotateAngleY; this.rightLeg.rotateAngleZ = this.bipedRightLeg.rotateAngleZ; this.leftFoot.rotationPointX = this.bipedLeftLeg.rotationPointX; - this.leftFoot.rotationPointY = this.bipedLeftLeg.rotationPointY - 1.5F; + this.leftFoot.rotationPointY = this.bipedLeftLeg.rotationPointY; this.leftFoot.rotationPointZ = this.bipedLeftLeg.rotationPointZ; this.leftFoot.rotateAngleX = this.bipedLeftLeg.rotateAngleX; this.leftFoot.rotateAngleY = this.bipedLeftLeg.rotateAngleY; this.leftFoot.rotateAngleZ = this.bipedLeftLeg.rotateAngleZ; this.rightFoot.rotationPointX = this.bipedRightLeg.rotationPointX; - this.rightFoot.rotationPointY = this.bipedRightLeg.rotationPointY - 1.5F; + this.rightFoot.rotationPointY = this.bipedRightLeg.rotationPointY; this.rightFoot.rotationPointZ = this.bipedRightLeg.rotationPointZ; this.rightFoot.rotateAngleX = this.bipedRightLeg.rotateAngleX; this.rightFoot.rotateAngleY = this.bipedRightLeg.rotateAngleY; this.rightFoot.rotateAngleZ = this.bipedRightLeg.rotateAngleZ; - if(entity instanceof EntityZombie || entity instanceof EntityPigZombie || entity instanceof EntitySkeleton) { - this.leftArm.rotateAngleX -= (90 * Math.PI / 180D); - this.rightArm.rotateAngleX -= (90 * Math.PI / 180D); - } - - if(this.isRiding) { - this.rightArm.rotateAngleX += -((float) Math.PI / 5F); - this.leftArm.rotateAngleX += -((float) Math.PI / 5F); - this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); - this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); - this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = ((float) Math.PI / 10F); - this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = -((float) Math.PI / 10F); + if(entity instanceof EntityZombie) { + boolean armsRaised = false; + if(entity instanceof EntityZombie) + armsRaised = ((EntityZombie)entity).isArmsRaised(); + + this.leftArm.rotateAngleY = (float)(8 * Math.PI / 180D); + this.rightArm.rotateAngleY = -(float)(8 * Math.PI / 180D); + if(armsRaised){ + this.leftArm.rotateAngleX = -(float)(120 * Math.PI / 180D); + this.rightArm.rotateAngleX = -(float)(120 * Math.PI / 180D); + } else { + this.leftArm.rotateAngleX = -(float)(80 * Math.PI / 180D); + this.rightArm.rotateAngleX = -(float)(80 * Math.PI / 180D); + } } if (this.isSneak) { - this.leftLeg.rotationPointZ -= 0.5F; - this.rightLeg.rotationPointZ -= 0.5F; - this.leftLeg.rotationPointY += 0.5F; - this.rightLeg.rotationPointY += 0.5F; + this.head.offsetY = 4.24F; + this.head.rotationPointY -= 1.045F; + this.body.offsetY = 4F; + this.rightArm.offsetY = 4F; + this.leftArm.offsetY = 4F; + this.rightFoot.offsetZ = this.rightLeg.offsetZ = 4F; + this.leftFoot.offsetZ = this.leftLeg.offsetZ = 4F; + + this.rightFoot.rotationPointY = 12F; + this.rightLeg.rotationPointY = 12F; + this.leftFoot.rotationPointY = 12F; + this.leftLeg.rotationPointY = 12F; + + this.rightFoot.rotationPointZ = -1F; + this.rightLeg.rotationPointZ = -1F; + this.leftFoot.rotationPointZ = -1F; + this.leftLeg.rotationPointZ = -1F; + + } else { + this.head.offsetY = 0F; + this.body.offsetY = 0F; + this.rightArm.offsetY = 0F; + this.leftArm.offsetY = 0F; + this.rightFoot.offsetZ = this.rightLeg.offsetZ = 0F; + this.leftFoot.offsetZ = this.leftLeg.offsetZ = 0F; } } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelArmorDNT.java b/src/main/java/com/hbm/render/model/ModelArmorDNT.java index 37bdbfb60f..ee020511e9 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorDNT.java +++ b/src/main/java/com/hbm/render/model/ModelArmorDNT.java @@ -31,10 +31,16 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float GL11.glPushMatrix(); GlStateManager.shadeModel(GL11.GL_SMOOTH); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 3) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dnt_helmet); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 2) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dnt_chest); diff --git a/src/main/java/com/hbm/render/model/ModelArmorDigamma.java b/src/main/java/com/hbm/render/model/ModelArmorDigamma.java index add71c6a0a..2989f8baea 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorDigamma.java +++ b/src/main/java/com/hbm/render/model/ModelArmorDigamma.java @@ -35,12 +35,18 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float GL11.glPushMatrix(); GlStateManager.shadeModel(GL11.GL_SMOOTH); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } body.copyTo(cassette); if(type == 3) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fau_helmet); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 2) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fau_chest); diff --git a/src/main/java/com/hbm/render/model/ModelArmorHEV.java b/src/main/java/com/hbm/render/model/ModelArmorHEV.java index b88574c7b3..e173408087 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorHEV.java +++ b/src/main/java/com/hbm/render/model/ModelArmorHEV.java @@ -29,10 +29,16 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 0) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hev_helmet); - head.render(par7); + head.render(par7*1.15F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 1) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hev_chest); diff --git a/src/main/java/com/hbm/render/model/ModelArmorRPA.java b/src/main/java/com/hbm/render/model/ModelArmorRPA.java index fe7100765e..5e313212b8 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorRPA.java +++ b/src/main/java/com/hbm/render/model/ModelArmorRPA.java @@ -31,10 +31,16 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float GL11.glPushMatrix(); GlStateManager.shadeModel(GL11.GL_SMOOTH); - + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } if(type == 3) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.rpa_helmet); - head.render(par7); + head.render(par7*1.001F); + } + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); } if(type == 2) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.rpa_chest); diff --git a/src/main/java/com/hbm/render/model/ModelGlasses.java b/src/main/java/com/hbm/render/model/ModelGlasses.java index c5a065a380..7ea0057976 100644 --- a/src/main/java/com/hbm/render/model/ModelGlasses.java +++ b/src/main/java/com/hbm/render/model/ModelGlasses.java @@ -32,7 +32,7 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float if(type == 0) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.goggles); - head.render(par7); + head.render(par7*1.001F); } GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/model/ModelHat.java b/src/main/java/com/hbm/render/model/ModelHat.java index 7249ad0bc9..58f0c2494c 100644 --- a/src/main/java/com/hbm/render/model/ModelHat.java +++ b/src/main/java/com/hbm/render/model/ModelHat.java @@ -32,7 +32,7 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float if(type == 0) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hat); - head.render(par7); + head.render(par7*1.001F); } GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/model/ModelT45Boots.java b/src/main/java/com/hbm/render/model/ModelT45Boots.java index f80e00eac0..83abfe5e88 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Boots.java +++ b/src/main/java/com/hbm/render/model/ModelT45Boots.java @@ -84,6 +84,7 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.leftleg.rotateAngleX = this.bipedLeftLeg.rotateAngleX; this.leftleg.rotateAngleY = this.bipedLeftLeg.rotateAngleY; this.leftleg.rotateAngleZ = this.bipedLeftLeg.rotateAngleZ; + this.rightleg.rotationPointX = this.bipedRightLeg.rotationPointX; this.rightleg.rotationPointY = this.bipedRightLeg.rotationPointY - 1.5F; this.rightleg.rotationPointZ = this.bipedRightLeg.rotationPointZ; @@ -92,24 +93,32 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.rightleg.rotateAngleZ = this.bipedRightLeg.rotateAngleZ; if (this.isSneak) { - this.leftleg.rotationPointZ -= 0.5F; - this.rightleg.rotationPointZ -= 0.5F; - this.leftleg.rotationPointY += 0.5F; - this.rightleg.rotationPointY += 0.5F; - } + this.rightleg.offsetZ = 0.25F; + this.leftleg.offsetZ = 0.25F; + + this.rightleg.rotationPointY = 10F; + this.leftleg.rotationPointY = 10F; + + this.rightleg.rotationPointZ = -0.0625F; + this.leftleg.rotationPointZ = -0.0625F; + + } else { + this.rightleg.offsetZ = 0F; + this.leftleg.offsetZ = 0F; + } } @Override public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); - // this.leftleg.addChild(Shape1); - // this.leftleg.addChild(Shape3); + GL11.glScalef(1.13F, 1.13F, 1.13F); + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + } this.leftleg.render(par7); - - // this.rightleg.addChild(Shape2); - // this.rightleg.addChild(Shape4); this.rightleg.render(par7); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/model/ModelT45Chest.java b/src/main/java/com/hbm/render/model/ModelT45Chest.java index 083695c72e..cc426ea377 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Chest.java +++ b/src/main/java/com/hbm/render/model/ModelT45Chest.java @@ -5,8 +5,6 @@ import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityPigZombie; -import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.player.EntityPlayer; @@ -178,18 +176,6 @@ public ModelT45Chest() { convertToChild(rightarm, Shape19); } - /* - * public void render(Entity entity, float f, float f1, float f2, float f3, - * float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); - * setRotationAngles(f, f1, f2, f3, f4, f5); Shape1.render(f5); - * Shape2.render(f5); Shape3.render(f5); Shape4.render(f5); - * Shape5.render(f5); Shape6.render(f5); Shape7.render(f5); - * Shape8.render(f5); Shape9.render(f5); Shape10.render(f5); - * Shape11.render(f5); Shape12.render(f5); Shape13.render(f5); - * Shape14.render(f5); Shape15.render(f5); Shape16.render(f5); - * Shape17.render(f5); Shape18.render(f5); Shape19.render(f5); } - */ - private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; @@ -205,21 +191,6 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f } else { this.isSneak = false; } - - - //This is done automatically now - /*ItemStack itemstack = player.inventory.getCurrentItem(); - this.heldItemRight = itemstack != null ? 1 : 0; - - if (itemstack != null && player.getItemInUseCount() > 0) { - EnumAction enumaction = itemstack.getItemUseAction(); - - if (enumaction == EnumAction.block) { - this.heldItemRight = 3; - } else if (enumaction == EnumAction.bow) { - this.aimedBow = true; - } - }*/ } super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); @@ -242,10 +213,32 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.rightarm.rotateAngleY = this.bipedRightArm.rotateAngleY; this.rightarm.rotateAngleZ = this.bipedRightArm.rotateAngleZ; - if(entity instanceof EntityZombie || entity instanceof EntityPigZombie || entity instanceof EntitySkeleton) { - this.leftarm.rotateAngleX -= (90 * Math.PI / 180D); - this.rightarm.rotateAngleX -= (90 * Math.PI / 180D); - } + if(entity instanceof EntityZombie) { + boolean armsRaised = false; + if(entity instanceof EntityZombie) + armsRaised = ((EntityZombie)entity).isArmsRaised(); + + this.leftarm.rotateAngleY = (float)(8 * Math.PI / 180D); + this.rightarm.rotateAngleY = -(float)(8 * Math.PI / 180D); + if(armsRaised){ + this.leftarm.rotateAngleX = -(float)(120 * Math.PI / 180D); + this.rightarm.rotateAngleX = -(float)(120 * Math.PI / 180D); + } else { + this.leftarm.rotateAngleX = -(float)(80 * Math.PI / 180D); + this.rightarm.rotateAngleX = -(float)(80 * Math.PI / 180D); + } + } + + if (this.isSneak) { + this.chest.offsetY = 0.25F; + this.rightarm.offsetY = 0.25F; + this.leftarm.offsetY = 0.25F; + + } else { + this.chest.offsetY = 0F; + this.rightarm.offsetY = 0F; + this.leftarm.offsetY = 0F; + } } @@ -253,7 +246,12 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); + GL11.glScalef(1.13F, 1.13F, 1.13F); + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + } this.chest.render(par7); GL11.glPopMatrix(); this.renderLeft(par1Entity, par2, par3, par4, par5, par6, par7); @@ -263,7 +261,7 @@ public void render(Entity par1Entity, float par2, float par3, float par4, float public void renderLeft(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); + GL11.glScalef(1.13F, 1.13F, 1.13F); this.leftarm.render(par7); GL11.glPopMatrix(); } @@ -271,7 +269,7 @@ public void renderLeft(Entity par1Entity, float par2, float par3, float par4, fl public void renderRight(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); + GL11.glScalef(1.13F, 1.13F, 1.13F); this.rightarm.render(par7); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/model/ModelT45Helmet.java b/src/main/java/com/hbm/render/model/ModelT45Helmet.java index df15ca0329..4eac8c44ec 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Helmet.java +++ b/src/main/java/com/hbm/render/model/ModelT45Helmet.java @@ -114,14 +114,22 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.helmet.rotationPointY = this.bipedHead.rotationPointY; this.helmet.rotateAngleY = this.bipedHead.rotateAngleY; this.helmet.rotateAngleX = this.bipedHead.rotateAngleX; + + if (this.isSneak) { + this.helmet.rotationPointY = 3.7F; + } } @Override public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); + GL11.glScalef(1.13F, 1.13F, 1.13F); GL11.glScalef(1.0625F, 1.0625F, 1.0625F); + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + } this.helmet.render(par7); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/model/ModelT45Legs.java b/src/main/java/com/hbm/render/model/ModelT45Legs.java index ec4910da50..839d6380a6 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Legs.java +++ b/src/main/java/com/hbm/render/model/ModelT45Legs.java @@ -101,6 +101,7 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.leftleg.rotateAngleX = this.bipedLeftLeg.rotateAngleX; this.leftleg.rotateAngleY = this.bipedLeftLeg.rotateAngleY; this.leftleg.rotateAngleZ = this.bipedLeftLeg.rotateAngleZ; + this.rightleg.rotationPointX = this.bipedRightLeg.rotationPointX; this.rightleg.rotationPointY = this.bipedRightLeg.rotationPointY - 1.5F; this.rightleg.rotationPointZ = this.bipedRightLeg.rotationPointZ; @@ -109,18 +110,31 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.rightleg.rotateAngleZ = this.bipedRightLeg.rotateAngleZ; if (this.isSneak) { - this.leftleg.rotationPointZ -= 0.5F; - this.rightleg.rotationPointZ -= 0.5F; - this.leftleg.rotationPointY += 0.5F; - this.rightleg.rotationPointY += 0.5F; - } + this.rightleg.offsetZ = 0.25F; + this.leftleg.offsetZ = 0.25F; + + this.rightleg.rotationPointY = 11F; + this.leftleg.rotationPointY = 11F; + + this.rightleg.rotationPointZ = -0.0625F; + this.leftleg.rotationPointZ = -0.0625F; + + } else { + this.rightleg.offsetZ = 0F; + this.leftleg.offsetZ = 0F; + } } @Override public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - GL11.glScalef(1.125F, 1.125F, 1.125F); + GL11.glScalef(1.13F, 1.13F, 1.13F); + if(this.isChild) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.0F, 16.0F * par7, 0.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + } this.leftleg.render(par7); this.rightleg.render(par7); diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java b/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java index 744b7bc0b3..7cee92fd1e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java @@ -53,12 +53,10 @@ public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, doubl scale += ((((double)base.tanks[2].getFluidAmount()) / ((double)base.tanks[2].getCapacity())) + (((double)base.tanks[3].getFluidAmount()) / ((double)base.tanks[3].getCapacity()))) * ((maxSize - minSize) / 2); GL11.glScaled(scale, scale, scale); - //bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/EMPBlast.png")); GlStateManager.disableTexture2D(); GL11.glRotatef(rot, 0F, 1F, 0F); GL11.glScalef(1.1F, 1.1F, 1.1F); - //GL11.glColor3ub((byte)(0x20), (byte)(0x20), (byte)(0x40)); GlStateManager.color((byte)(0x20)/255, (byte)(0x20)/255, (byte)(0x40)/255); ResourceManager.sphere_iuv.renderAll(); GL11.glScalef(1/1.1F, 1/1.1F, 1/1.1F); diff --git a/src/main/java/com/hbm/render/tileentity/RenderBroadcaster.java b/src/main/java/com/hbm/render/tileentity/RenderBroadcaster.java index ec2837c2f4..f84d471fb5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBroadcaster.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBroadcaster.java @@ -12,7 +12,7 @@ public class RenderBroadcaster extends TileEntitySpecialRenderer { - private static final ResourceLocation texture6 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelBroadcaster.png"); + private static final ResourceLocation texture6 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/ModelBroadcaster.png"); private ModelBroadcaster model6; public RenderBroadcaster() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderCable.java b/src/main/java/com/hbm/render/tileentity/RenderCable.java index 619c87f3a6..c3caf9989b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCable.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCable.java @@ -15,7 +15,7 @@ public class RenderCable extends TileEntitySpecialRenderer { + + protected static final float fontOffset = 0.501F; + + @Override + public void render(TileEntityCableGauge te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { + super.render(te, x, y, z, partialTicks, destroyStage, alpha); + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5F, y + 0.5F, z + 0.5F); + switch(te.getBlockMetadata()) { + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + } + GL11.glTranslated(fontOffset, 0, 0); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GlStateManager.depthMask(false); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GlStateManager.color(1, 1, 1, 1); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + String text = Library.getShortNumber(te.deltaLastSecond); + if(text != null && ! text.isEmpty()) { + + int width = font.getStringWidth(text); + int height = font.FONT_HEIGHT; + + float f3 = Math.min(0.03F, 0.8F / Math.max(width, 1)); + GL11.glScalef(f3, -f3, f3); + GL11.glNormal3f(0.0F, 0.0F, -1.0F); + GL11.glRotatef(90, 0, 1, 0); + + font.drawString(text, -width / 2, -height / 2, 0xff8000); + } + GlStateManager.depthMask(true); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompactLauncher.java b/src/main/java/com/hbm/render/tileentity/RenderCompactLauncher.java index ce3b0cc7d9..2b8f284cbe 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompactLauncher.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompactLauncher.java @@ -30,7 +30,7 @@ public void render(TileEntityCompactLauncher launcher, double x, double y, doubl /// DRAW MISSILE START GL11.glPushMatrix(); - if(launcher.load != null) { + if(launcher.load != null && launcher.clearingTimer == 0) { //ItemStack custom = launcher.getStackInSlot(0); //missile = ItemCustomMissile.getMultipart(custom); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCore.java b/src/main/java/com/hbm/render/tileentity/RenderCore.java index ce42c6ba3c..6cd045bb9a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCore.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCore.java @@ -8,6 +8,7 @@ import com.hbm.render.RenderSparks; import com.hbm.tileentity.machine.TileEntityCore; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager.DestFactor; import net.minecraft.client.renderer.GlStateManager.SourceFactor; @@ -58,7 +59,8 @@ public void renderStandby(TileEntityCore core, double x, double y, double z) { GlStateManager.enableTexture2D(); GlStateManager.enableLighting(); - + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + if(core.getWorld().rand.nextInt(50) == 0) { for(int i = 0; i < 3; i++) { RenderSparks.renderSpark((int) System.currentTimeMillis() / 100 + i * 10000, 0, 0, 0, 1.5F, 5, 10, 0x00FFFF, 0xFFFFFF); @@ -89,7 +91,8 @@ public void renderOrb(TileEntityCore core, double x, double y, double z) { GlStateManager.enableCull(); GlStateManager.disableLighting(); GlStateManager.disableTexture2D(); - + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glScalef(0.5F, 0.5F, 0.5F); ResourceManager.sphere_ruv.renderAll(); GL11.glScalef(2F, 2F, 2F); diff --git a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java index bc2dc212eb..accc7ebfdd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java @@ -18,9 +18,9 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer { - private static final ResourceLocation texture1 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelWall.png"); - private static final ResourceLocation texture2 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelCorner.png"); - private static final ResourceLocation texture3 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelRoof.png"); + private static final ResourceLocation texture1 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/SteelWall.png"); + private static final ResourceLocation texture2 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/SteelCorner.png"); + private static final ResourceLocation texture3 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/SteelRoof.png"); private ModelSteelWall model1; private ModelSteelCorner model2; diff --git a/src/main/java/com/hbm/render/tileentity/RenderDecoBlockAlt.java b/src/main/java/com/hbm/render/tileentity/RenderDecoBlockAlt.java index 555e6e595d..5cb391aa10 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDecoBlockAlt.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDecoBlockAlt.java @@ -21,8 +21,8 @@ public class RenderDecoBlockAlt extends TileEntitySpecialRenderer { - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelStatue.png"); - private static final ResourceLocation gunTexture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelGun.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/misc/ModelStatue.png"); + private static final ResourceLocation gunTexture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/weapons/ModelGun.png"); private ModelStatue model; private ModelGun gun; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java b/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java deleted file mode 100644 index ce3d1ba767..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.forgefluid.FFUtils; -import com.hbm.lib.RefStrings; -import com.hbm.render.RenderHelper; -import com.hbm.tileentity.conductor.TileEntityFFFluidDuct; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fluids.Fluid; - -public class RenderFluidDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); - float pixel = 1F / 16F; - float textureP = 1F / 32F; - - @Override - public void render(TileEntityFFFluidDuct te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { - GL11.glTranslated(x, y, z); - GlStateManager.enableAlpha(); - GlStateManager.disableLighting(); - this.bindTexture(texture); - drawCore(te); - for (int i = 0; i < te.connections.length; i++) { - if (te.connections[i] != null) { - drawConnection(te.connections[i], te.getType()); - } - } - GL11.glTranslated(-x, -y, -z); - GlStateManager.enableLighting(); - } - - public void drawCore(TileEntity tileentity) { - RenderHelper.startDrawingTexturedQuads(); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - RenderHelper.draw(); - } - - public void drawConnection(EnumFacing direction, Fluid type) { - RenderHelper.startDrawingTexturedQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.draw(); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - float p = 0.01F; - float n = -0.01F; - int r = 169; - int g = 169; - int b = 169; - if (type == null || FFUtils.getTextureFromFluid(type) == null) { - RenderHelper.startDrawingColored(5); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, r, g, b, 255); - - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, r, g, b, 255); - - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.addVertexColor(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, r, g, b, 255); - - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, r, g, b, 255); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.addVertexColor(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, r, g, b, 255); - RenderHelper.draw(); - } else { - GL11.glEnable(GL11.GL_TEXTURE_2D); - TextureAtlasSprite icon = FFUtils.getTextureFromFluid(type); - float iconMaxU = icon.getInterpolatedU(10); - float iconMinU = icon.getInterpolatedU(7); - float iconMaxV = icon.getInterpolatedV(13); - float iconMinV = icon.getInterpolatedV(12); - // bindTexture(Minecraft.getMinecraft().getTextureManager(), type.getSpriteNumber()); - RenderHelper.bindBlockTexture(); - - RenderHelper.startDrawingTexturedQuads(); - - - RenderHelper.addVertexWithUV(7*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+5*pixel+1*pixel/2, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(10*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+5*pixel+1*pixel/2, iconMinU, iconMinV); - RenderHelper.addVertexWithUV(10*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+5*pixel+1*pixel/2, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(7*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+5*pixel+1*pixel/2, iconMaxU, iconMaxV); - - RenderHelper.addVertexWithUV(7*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+5*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(10*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+5*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMinV); - RenderHelper.addVertexWithUV(10*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+5*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(7*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+5*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMaxV); - - RenderHelper.addVertexWithUV(11*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+1*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(11*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+4*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMinV); - RenderHelper.addVertexWithUV(11*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+4*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(11*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+1*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMaxV); - - RenderHelper.addVertexWithUV(6*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+1*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(6*pixel-1*pixel/2,13*pixel-1*pixel/2+0.013, 0+4*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMinV); - RenderHelper.addVertexWithUV(6*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+4*pixel+1*pixel/2 + 5*pixel, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(6*pixel-1*pixel/2,12*pixel-1*pixel/2+0.006, 0+1*pixel+1*pixel/2 + 5*pixel, iconMaxU, iconMaxV); - - RenderHelper.draw(); - - /* RenderHelper.startDrawingQuads(); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1 + 1, 1 - 11 * pixel / 2 + n, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2 + 1, 1 - 11 * pixel / 2 + n, iconMinU, iconMinV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1 + 1, 1 - 11 * pixel / 2 + n, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1 - 11 * pixel / 2 + 1, 1 - 11 * pixel / 2 + n, iconMaxU, iconMaxV); - - RenderHelper.draw(); - - RenderHelper.startDrawingQuads(); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, iconMaxU, iconMaxV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, iconMinU, iconMinV); - RenderHelper.draw(); - - RenderHelper.startDrawingQuads(); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, iconMaxU, iconMaxV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, iconMinU, iconMinV); - RenderHelper.draw(); - - RenderHelper.startDrawingQuads(); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p, iconMinU, iconMaxV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p, iconMaxU, iconMaxV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n, iconMaxU, iconMinV); - RenderHelper.addVertexWithUV(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n, iconMinU, iconMinV); - RenderHelper.draw(); */ - - this.bindTexture(texture); - - } - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(-180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(-270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(-90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(-270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java b/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java deleted file mode 100644 index 0c2db47847..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.RenderHelper; -import com.hbm.tileentity.conductor.TileEntityFFGasDuct; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; - -public class RenderGasDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/gas_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void render(TileEntityFFGasDuct te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - GlStateManager.disableLighting(); - this.bindTexture(texture); - drawCore(te); - TileEntityFFGasDuct cable = (TileEntityFFGasDuct) te; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glPopMatrix(); - GlStateManager.enableLighting(); - } - - public void drawCore(TileEntity tileentity) { - RenderHelper.startDrawingTexturedQuads(); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - RenderHelper.draw(); - } - - public void drawConnection(EnumFacing direction) { - RenderHelper.startDrawingTexturedQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(-180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(-270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(-90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(-270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderGeiger.java b/src/main/java/com/hbm/render/tileentity/RenderGeiger.java index 914ef85200..d7ae0d6579 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderGeiger.java +++ b/src/main/java/com/hbm/render/tileentity/RenderGeiger.java @@ -12,7 +12,7 @@ public class RenderGeiger extends TileEntitySpecialRenderer { - private static final ResourceLocation texture9 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelGeiger.png"); + private static final ResourceLocation texture9 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/tools/ModelGeiger.png"); private ModelGeiger model8; public RenderGeiger() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 37f81ac8e2..990a116c1f 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -10,6 +10,12 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { + public static final float h_1 = 1F; + public static final float h_2 = 1F; + public static final float h_3 = 1F; + + public static final float w_2 = 1F; + @Override public boolean isGlobalRenderer(TileEntityLaunchPad te) { return true; @@ -21,159 +27,166 @@ public void render(TileEntityLaunchPad te, double x, double y, double z, float p GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); GlStateManager.disableCull(); - bindTexture(ResourceManager.missile_pad_tex); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.missile_pad_tex); ResourceManager.missile_pad.renderAll(); - - int state = te.state; - - GL11.glTranslated(0, 1, 0); - - if (state == 1) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_HE_tex); - ResourceManager.missileV2.renderAll(); - } - if (state == 2) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_HE_tex); - ResourceManager.missileStrong.renderAll(); - } - if (state == 3) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_CL_tex); - ResourceManager.missileV2.renderAll(); - } - if (state == 4) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileNuclear_tex); - ResourceManager.missileNuclear.renderAll(); - } - if (state == 5) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_IN_tex); - ResourceManager.missileV2.renderAll(); - } - if (state == 6) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_BU_tex); - ResourceManager.missileV2.renderAll(); - } - if (state == 7) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_IN_tex); - ResourceManager.missileStrong.renderAll(); - } - if (state == 8) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_CL_tex); - ResourceManager.missileStrong.renderAll(); - } - if (state == 9) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_BU_tex); - ResourceManager.missileStrong.renderAll(); - } - if (state == 10) { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_HE_tex); - ResourceManager.missileHuge.renderAll(); - } - if (state == 11) { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_IN_tex); - ResourceManager.missileHuge.renderAll(); - } - if (state == 12) { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_CL_tex); - ResourceManager.missileHuge.renderAll(); - } - if (state == 13) { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); - } - if (state == 14) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileEndo_tex); - ResourceManager.missileThermo.renderAll(); - } - if (state == 15) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - } - if (state == 16) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - } - if (state == 17) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - } - if (state == 18) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileTaint_tex); - ResourceManager.missileTaint.renderAll(); - } - if (state == 19) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); - ResourceManager.missileTaint.renderAll(); - } - if (state == 20) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - 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); - } - if (state == 21) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); - } - if (state == 22) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroBHole_tex); - ResourceManager.missileTaint.renderAll(); - } - if (state == 23) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroSchrab_tex); - ResourceManager.missileTaint.renderAll(); - } - if (state == 24) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroEMP_tex); - ResourceManager.missileTaint.renderAll(); - } - if (state == 25) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 26) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileVolcano_tex); - ResourceManager.missileNuclear.renderAll(); + if(te.clearingTimer == 0){ + int state = te.state; + GL11.glTranslated(0, 1, 0); + if (state == 1) { + GL11.glScalef(1.0F, h_1, 1.0F); + bindTexture(ResourceManager.missileV2_HE_tex); + ResourceManager.missileV2.renderAll(); + } + if (state == 2) { + GL11.glScalef(w_2, h_2, w_2); + bindTexture(ResourceManager.missileStrong_HE_tex); + ResourceManager.missileStrong.renderAll(); + } + if (state == 3) { + GL11.glScalef(1.0F, h_1, 1.0F); + bindTexture(ResourceManager.missileV2_CL_tex); + ResourceManager.missileV2.renderAll(); + } + if (state == 4) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileNuclear_tex); + ResourceManager.missileNuclear.renderAll(); + } + if (state == 5) { + GL11.glScalef(1.0F, h_1, 1.0F); + bindTexture(ResourceManager.missileV2_IN_tex); + ResourceManager.missileV2.renderAll(); + } + if (state == 6) { + GL11.glScalef(1.0F, h_1, 1.0F); + bindTexture(ResourceManager.missileV2_BU_tex); + ResourceManager.missileV2.renderAll(); + } + if (state == 7) { + GL11.glScalef(w_2, h_2, w_2); + bindTexture(ResourceManager.missileStrong_IN_tex); + ResourceManager.missileStrong.renderAll(); + } + if (state == 8) { + GL11.glScalef(w_2, h_2, w_2); + bindTexture(ResourceManager.missileStrong_CL_tex); + ResourceManager.missileStrong.renderAll(); + } + if (state == 9) { + GL11.glScalef(w_2, h_2, w_2); + bindTexture(ResourceManager.missileStrong_BU_tex); + ResourceManager.missileStrong.renderAll(); + } + if (state == 10) { + GL11.glScalef(1.0F, h_3, 1.0F); + bindTexture(ResourceManager.missileHuge_HE_tex); + ResourceManager.missileHuge.renderAll(); + } + if (state == 11) { + GL11.glScalef(1.0F, h_3, 1.0F); + bindTexture(ResourceManager.missileHuge_IN_tex); + ResourceManager.missileHuge.renderAll(); + } + if (state == 12) { + GL11.glScalef(1.0F, h_3, 1.0F); + bindTexture(ResourceManager.missileHuge_CL_tex); + ResourceManager.missileHuge.renderAll(); + } + if (state == 13) { + GL11.glScalef(1.0F, h_3, 1.0F); + bindTexture(ResourceManager.missileHuge_BU_tex); + ResourceManager.missileHuge.renderAll(); + } + if (state == 14) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileEndo_tex); + ResourceManager.missileThermo.renderAll(); + } + if (state == 15) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileExo_tex); + ResourceManager.missileThermo.renderAll(); + } + if (state == 16) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileMIRV_tex); + ResourceManager.missileNuclear.renderAll(); + } + if (state == 17) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileDoomsday_tex); + ResourceManager.missileDoomsday.renderAll(); + } + if (state == 18) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileTaint_tex); + ResourceManager.missileTaint.renderAll(); + } + if (state == 19) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicro_tex); + ResourceManager.missileTaint.renderAll(); + } + if (state == 20) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + 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); + } + if (state == 21) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileAA_tex); + ResourceManager.missileAB.renderAll(); + } + if (state == 22) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroBHole_tex); + ResourceManager.missileTaint.renderAll(); + } + if (state == 23) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroSchrab_tex); + ResourceManager.missileTaint.renderAll(); + } + if (state == 24) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroEMP_tex); + ResourceManager.missileTaint.renderAll(); + } + if (state == 25) { + GL11.glScalef(w_2, h_2, w_2); + bindTexture(ResourceManager.missileStrong_EMP_tex); + ResourceManager.missileStrong.renderAll(); + } + if(state == 26) + { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileVolcano_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(state == 27) + { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileN2_tex); + ResourceManager.missileNuclear.renderAll(); + } } - GlStateManager.enableCull(); + GlStateManager.shadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java index 6cbe544e0c..52a08c44f7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java @@ -110,7 +110,7 @@ public void render(TileEntityLaunchTable launcher, double x, double y, double z, /// DRAW MISSILE START GL11.glPushMatrix(); - if(launcher.load != null && launcher.load.fuselage != null && launcher.load.fuselage.top == launcher.padSize) + if(launcher.load != null && launcher.load.fuselage != null && launcher.load.fuselage.top == launcher.padSize && launcher.clearingTimer == 0) MissilePronter.prontMissile(MissileMultipart.loadFromStruct(launcher.load), Minecraft.getMinecraft().getTextureManager()); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMachineForceField.java b/src/main/java/com/hbm/render/tileentity/RenderMachineForceField.java index 1bc7922594..375de493ad 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderMachineForceField.java +++ b/src/main/java/com/hbm/render/tileentity/RenderMachineForceField.java @@ -26,9 +26,8 @@ public void render(TileEntityForceField te, double x, double y, double z, float GlStateManager.enableLighting(); GlStateManager.disableCull(); GL11.glRotatef(180, 0F, 1F, 0F); - bindTexture(ResourceManager.forcefield_base_tex); - - ResourceManager.radar_body.renderAll(); + bindTexture(ResourceManager.radar_base_tex); + ResourceManager.radar.renderPart("Base"); TileEntityForceField ff = (TileEntityForceField)te; @@ -43,7 +42,7 @@ public void render(TileEntityForceField te, double x, double y, double z, float if(ff.isOn && ff.health > 0 && ff.power > 0 && ff.cooldown == 0) { generateSphere(segments, segments * 2, ff.radius, ff.color); - double rot = (System.currentTimeMillis() / 10D) % 360; + double rot = (System.currentTimeMillis() * 0.5D) % 360; GL11.glRotated(-rot, 0F, 1F, 0F); } @@ -80,70 +79,14 @@ private void generateSphere(int l, int s, float rad, int hex) { for(int i = 0; i < l; i++) { - - /*if((i < 2 || i > l - 2) && k % 10 == 0) { - tessellator.startDrawing(3); - tessellator.setColorRGBA_F(0F, 1F, 0F, 1.0F); - tessellator.addVertex(vec.xCoord, vec.yCoord, vec.zCoord); - tessellator.addVertex(0, 0, 0); - tessellator.draw(); - }*/ - - //tessellator.startDrawing(3); - //tessellator.setColorRGBA_F(0F, 1F, 0F, 1.0F); buf.pos(vec.xCoord, vec.yCoord, vec.zCoord).color(r, g, b, 1.0F).endVertex(); vec.rotateAroundX(lRot); buf.pos(vec.xCoord, vec.yCoord, vec.zCoord).color(r, g, b, 1.0F).endVertex(); - //tessellator.draw(); } tes.draw(); } - GlStateManager.enableLighting(); - GlStateManager.enableTexture2D(); - GL11.glPopMatrix(); - - generateSphere2(l, s, rad, hex); - } - - private void generateSphere2(int l, int s, float rad, int hex) { - float r = (hex >> 16 & 255)/255F; - float g = (hex >> 8 & 255)/255F; - float b = (hex & 255)/255F; - - - GL11.glPushMatrix(); - GlStateManager.disableTexture2D(); - GlStateManager.disableLighting(); - - float sRot = (float)Math.PI * 2F / (float)(s); - float lRot = (float)Math.PI / l; - - Tessellator tes = Tessellator.getInstance(); - BufferBuilder buf = tes.getBuffer(); - - Vec3 vec2 = Vec3.createVectorHelper(0, rad, 0); - - buf.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR); - for(int k = 0; k < l; k++) { - - vec2.rotateAroundZ(lRot); - - for(int i = 0; i < s; i++) { - - // Tessellator tessellator = Tessellator.instance; - //tessellator.startDrawing(3); - //tessellator.setColorRGBA_F(0F, 1F, 0F, 1.0F); - // tessellator.setColorOpaque_I(hex); - buf.pos(vec2.xCoord, vec2.yCoord, vec2.zCoord).color(r, g, b, 1.0F).endVertex(); - vec2.rotateAroundY(sRot); - buf.pos(vec2.xCoord, vec2.yCoord, vec2.zCoord).color(r, g, b, 1.0F).endVertex(); - //tessellator.draw(); - } - } - tes.draw(); - GlStateManager.enableLighting(); GlStateManager.enableTexture2D(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java b/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java deleted file mode 100644 index f23dcd69c4..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMiningDrill extends TileEntitySpecialRenderer { - - @Override - public boolean isGlobalRenderer(TileEntityMachineMiningDrill te) { - return true; - } - - @Override - public void render(TileEntityMachineMiningDrill te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GlStateManager.enableLighting(); - GlStateManager.disableCull(); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(te.getBlockMetadata()) - { - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - } - - bindTexture(ResourceManager.drill_body_tex); - ResourceManager.drill_body.renderAll(); - - GlStateManager.enableCull(); - GL11.glPopMatrix(); - - renderTileEntityAt2(te, x, y, z, partialTicks); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GlStateManager.enableLighting(); - GlStateManager.disableCull(); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - GL11.glRotatef(((TileEntityMachineMiningDrill)tileEntity).rotation, 0F, 1F, 0F); - - bindTexture(ResourceManager.drill_bolt_tex); - ResourceManager.drill_bolt.renderAll(); - - GlStateManager.enableCull(); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeBoy.java b/src/main/java/com/hbm/render/tileentity/RenderNukeBoy.java index a840956ef1..029918bb1b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeBoy.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeBoy.java @@ -38,11 +38,12 @@ public void render(TileEntityNukeBoy te, double x, double y, double z, float par GL11.glTranslated(-2.0D, 0.0D, 0.0D); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_boy_tex); ResourceManager.bomb_boy.renderAll(); - - GlStateManager.enableCull(); + GL11.glShadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeCustom.java b/src/main/java/com/hbm/render/tileentity/RenderNukeCustom.java index de6ab852ce..3ec6c44f16 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeCustom.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeCustom.java @@ -38,9 +38,11 @@ public void render(TileEntityNukeCustom te, double x, double y, double z, float GL11.glTranslated(-2.0D, 0.0D, 0.0D); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_custom_tex); ResourceManager.bomb_boy.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java index cf185030e0..104a5c1d36 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java @@ -34,9 +34,11 @@ public void render(TileEntityNukeGadget te, double x, double y, double z, float GL11.glRotatef(-90, 0F, 1F, 0F); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_gadget_tex); ResourceManager.bomb_gadget.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeMan.java b/src/main/java/com/hbm/render/tileentity/RenderNukeMan.java index 8462244741..b0d962dca7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeMan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeMan.java @@ -28,9 +28,11 @@ public void render(TileEntityNukeMan te, double x, double y, double z, float par GL11.glRotatef(0, 0F, 1F, 0F); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_man_tex); ResourceManager.bomb_man.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/bomb/RenderNukeMike.java b/src/main/java/com/hbm/render/tileentity/RenderNukeMike.java similarity index 87% rename from src/main/java/com/hbm/tileentity/bomb/RenderNukeMike.java rename to src/main/java/com/hbm/render/tileentity/RenderNukeMike.java index 2f3ff0e84d..90b905c261 100644 --- a/src/main/java/com/hbm/tileentity/bomb/RenderNukeMike.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeMike.java @@ -1,8 +1,9 @@ -package com.hbm.tileentity.bomb; +package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.bomb.TileEntityNukeMike; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -33,8 +34,10 @@ public void render(TileEntityNukeMike te, double x, double y, double z, float pa GL11.glRotatef(-90, 0F, 1F, 0F); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_mike_tex); ResourceManager.bomb_mike.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GlStateManager.enableCull(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java index df3c51d52f..b241c330bc 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java @@ -32,9 +32,11 @@ public void render(TileEntityNukeN2 te, double x, double y, double z, float part GL11.glRotatef(-90, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.n2_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.n2_tex); ResourceManager.n2.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GlStateManager.enableCull(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java deleted file mode 100644 index d0e043c812..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; - -public class RenderNukeN45 extends TileEntitySpecialRenderer { - - @Override - public boolean isGlobalRenderer(TileEntityNukeN45 te) { - return true; - } - - @Override - public void render(TileEntityNukeN45 te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { - boolean standing = te.getWorld().getBlockState(te.getPos().down()).isNormalCube(); - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GlStateManager.enableLighting(); - GlStateManager.disableCull(); - bindTexture(ResourceManager.universal); - - GL11.glPushMatrix(); - - //GL11.glScaled(2.0D, 2.0D, 2.0D); - - if(standing) { - ResourceManager.n45_stand.renderAll(); - } - - double d = 0.25; - - if(te.primed) - d /= 4D; - - GL11.glTranslated(0, standing ? 1D : 0.5D, 0); - - ResourceManager.n45_globe.renderAll(); - - GL11.glRotated(90, 1, 0, 0); - - for(int i = 0; i < 8; i++) { - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(-45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(-90, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(-45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - GL11.glRotated(-90, 1, 0, 0); - - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - - if(!standing) { - int depth = 0; - - for(int i = 0; i < 51; i++) { - - if(!te.getWorld().getBlockState(te.getPos().add(0, -i - 1, 0)).isNormalCube()) { - depth++; - } else { - break; - } - } - - if(depth != 0 && depth < 51) { - - GL11.glTranslated(0, -1D, 0); - - for(int i = 0; i < depth + 1; i++) { - - ResourceManager.n45_chain.renderAll(); - GL11.glTranslated(0, -1, 0); - } - } - } - - GL11.glPopMatrix(); - - GlStateManager.enableCull(); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java index a316d9ad7f..2d7f3f1817 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java @@ -34,8 +34,10 @@ public void render(TileEntityNukePrototype te, double x, double y, double z, flo GL11.glRotatef(-90, 0F, 1F, 0F); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_prototype_tex); ResourceManager.bomb_prototype.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GlStateManager.enableCull(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java b/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java index bacd1e7803..57a23207f9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java @@ -36,8 +36,10 @@ public void render(TileEntityNukeSolinium te, double x, double y, double z, floa GL11.glRotatef(-90, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_solinium_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_solinium_tex); ResourceManager.bomb_solinium.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GlStateManager.enableCull(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java index 905614d112..37e7f25d8e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java @@ -34,8 +34,10 @@ public void render(TileEntityNukeTsar te, double x, double y, double z, float pa GL11.glRotatef(-90, 0F, 1F, 0F); break; } + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_tsar_tex); ResourceManager.bomb_tsar.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GlStateManager.enableCull(); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java b/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java deleted file mode 100644 index 11376e7228..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.RenderHelper; -import com.hbm.tileentity.conductor.TileEntityFFOilDuct; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; - -public class RenderOilDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/oil_duct_alt.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void render(TileEntityFFOilDuct tileentity, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - GlStateManager.disableLighting(); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityFFOilDuct cable = (TileEntityFFOilDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glPopMatrix(); - GlStateManager.enableLighting(); - } - - public void drawCore(TileEntity tileentity) { - RenderHelper.startDrawingTexturedQuads(); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - RenderHelper.draw(); - } - - public void drawConnection(EnumFacing direction) { - RenderHelper.startDrawingTexturedQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - RenderHelper.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - RenderHelper.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (direction.equals(EnumFacing.UP)) { - - } - if (direction.equals(EnumFacing.DOWN)) { - GL11.glRotatef(-180, 1, 0, 0); - } - if (direction.equals(EnumFacing.NORTH)) { - GL11.glRotatef(-270, 1, 0, 0); - } - if (direction.equals(EnumFacing.SOUTH)) { - GL11.glRotatef(-90, 1, 0, 0); - } - if (direction.equals(EnumFacing.EAST)) { - GL11.glRotatef(-270, 0, 0, 1); - } - if (direction.equals(EnumFacing.WEST)) { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPoleSatelliteReceiver.java b/src/main/java/com/hbm/render/tileentity/RenderPoleSatelliteReceiver.java index 2e6c17c65d..9744ac5b76 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPoleSatelliteReceiver.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPoleSatelliteReceiver.java @@ -11,7 +11,7 @@ public class RenderPoleSatelliteReceiver extends TileEntitySpecialRenderer { - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/PoleSatelliteReceiver.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/PoleSatelliteReceiver.png"); private ModelSatelliteReceiver model; diff --git a/src/main/java/com/hbm/render/tileentity/RenderPoleTop.java b/src/main/java/com/hbm/render/tileentity/RenderPoleTop.java index bc98c49f60..94ef526a89 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPoleTop.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPoleTop.java @@ -11,7 +11,7 @@ public class RenderPoleTop extends TileEntitySpecialRenderer { - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/PoleTop.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/PoleTop.png"); private ModelPoleTop model; diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylon.java b/src/main/java/com/hbm/render/tileentity/RenderPylon.java index 203b2b046d..b70b1009af 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylon.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylon.java @@ -19,7 +19,7 @@ public class RenderPylon extends TileEntitySpecialRenderer { - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelPylon.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/network/ModelPylon.png"); private static final float cableColorR = 0.16F; private static final float cableColorG = 0.16F; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java index 26e0421fa8..5278ad1566 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java @@ -12,6 +12,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.GlStateManager; @@ -86,6 +87,8 @@ public void render(TileEntityRBMKConsole te, double x, double y, double z, float GL11.glTranslatef(-0.42F, 3.5F, 1.75F); GlStateManager.depthMask(false); GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GlStateManager.color(1, 1, 1, 1); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); for(int i = 0; i < console.screens.length; i++) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index d12897a8ec..5899959c3d 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -27,26 +27,14 @@ public boolean isGlobalRenderer(TileEntityRBMKControl te){ public void render(TileEntityRBMKControl control, double x, double y, double z, float partialTicks, int destroyStage, float alpha){ GL11.glPushMatrix(); - int offset = 1; - - for(int o = 1; o < 16; o++) { - - if(control.getWorld().getBlockState(new BlockPos(control.getPos().getX(), control.getPos().getY() + o, control.getPos().getZ())).getBlock() == control.getBlockType()) { - offset = o; - } else { - break; - } - } - - GL11.glTranslated(x + 0.5, y + offset, z + 0.5); + GL11.glTranslated(x + 0.5, y, z + 0.5); bindTexture(((RBMKBase)control.getBlockType()).columnTexture); com.hbm.render.amlfrom1710.Tessellator tes = com.hbm.render.amlfrom1710.Tessellator.instance; tes.startDrawing(GL11.GL_TRIANGLES); - for(int i = 0; i < TileEntityRBMKBase.rbmkHeight+1; i ++){ - ResourceManager.rbmk_rods.tessellatePart(tes, "Column"); - tes.addTranslation(0, -1, 0); - } + + ResourceManager.rbmk_rods.tessellatePartSplit(tes, "Column", 0.5F, TileEntityRBMKBase.rbmkHeight); + tes.draw(); GlStateManager.enableLighting(); @@ -61,7 +49,7 @@ public void render(TileEntityRBMKControl control, double x, double y, double z, double level = control.lastLevel + (control.level - control.lastLevel) * partialTicks; - GL11.glTranslated(0, level, 0); + GL11.glTranslated(0, TileEntityRBMKBase.rbmkHeight+level, 0); ResourceManager.rbmk_rods.renderPart("Lid"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java index cf74bb0687..dfa128a154 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java @@ -9,7 +9,7 @@ import com.hbm.items.machine.ItemRBMKRod; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.amlfrom1710.IModelCustom; +import com.hbm.render.amlfrom1710.WavefrontObject; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; @@ -72,13 +72,11 @@ public void render(TileEntityRBMKBase control, double x, double y, double z, flo GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); - Tessellator tess = Tessellator.getInstance(); - BufferBuilder buf = tess.getBuffer(); if(!(control.getBlockType() instanceof RBMKBase)) return; RBMKBase block = (RBMKBase)control.getBlockType(); - IModelCustom columnModel = ResourceManager.rbmk_reflector; + WavefrontObject columnModel = ResourceManager.rbmk_reflector; if(block == ModBlocks.rbmk_boiler || block == ModBlocks.rbmk_heater) columnModel = ResourceManager.rbmk_rods; else if(block instanceof RBMKRod) @@ -88,32 +86,13 @@ else if(block instanceof RBMKRod) com.hbm.render.amlfrom1710.Tessellator tes = com.hbm.render.amlfrom1710.Tessellator.instance; tes.startDrawing(GL11.GL_TRIANGLES); boolean doJump = control.jumpheight > 0; - for(int i = 0; i < TileEntityRBMKBase.rbmkHeight+1; i ++){ - if(doJump && i == TileEntityRBMKBase.rbmkHeight){ - tes.addTranslation(0, (float)control.jumpheight, 0); - } - columnModel.tessellatePart(tes, "Column"); - tes.addTranslation(0, 1, 0); - } - tes.draw(); + columnModel.tessellatePartSplit(tes, "Column", 0.5F, (float)control.jumpheight+TileEntityRBMKBase.rbmkHeight); + + tes.draw(); - int offset = 1; - for(int o = 1; o < 16; o++) { - - if(control.getWorld().getBlockState(new BlockPos(control.getPos().getX(), control.getPos().getY() + o, control.getPos().getZ())).getBlock() == control.getBlockType()) { - offset = o; - - int meta = control.getWorld().getBlockState(new BlockPos(control.getPos().getX(), control.getPos().getY() + o, control.getPos().getZ())).getValue(BlockDummyable.META); - - if(meta > 5 && meta < 12) - break; - - } else { - break; - } - } + int offset = TileEntityRBMKBase.rbmkHeight; GlStateManager.enableLighting(); GlStateManager.enableCull(); @@ -151,16 +130,19 @@ else if(block instanceof RBMKRod) GlStateManager.color(fuelR, fuelG, fuelB, 1); bindTexture(texture_rods); - for(int j = 0; j <= offset; j++) { - ResourceManager.rbmk_element.renderPart("Rods"); - GL11.glTranslated(0, 1, 0); - } + com.hbm.render.amlfrom1710.Tessellator tesss = com.hbm.render.amlfrom1710.Tessellator.instance; + tes.startDrawing(GL11.GL_TRIANGLES); + + ResourceManager.rbmk_element.tessellatePartSplit(tesss, "Rods", 0.5F, offset); + tesss.draw(); GlStateManager.color(1, 1, 1, 1); GL11.glPopMatrix(); } if(cherenkov) { + Tessellator tess = Tessellator.getInstance(); + BufferBuilder buf = tess.getBuffer(); GL11.glTranslated(0, 0.75, 0); GlStateManager.disableCull(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadar.java b/src/main/java/com/hbm/render/tileentity/RenderRadar.java index e74fe65d8b..87c564b8f4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadar.java @@ -17,39 +17,25 @@ public boolean isGlobalRenderer(TileEntityMachineRadar te) { } @Override - public void render(TileEntityMachineRadar te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { + public void render(TileEntityMachineRadar radar, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); GlStateManager.disableCull(); GL11.glRotatef(180, 0F, 1F, 0F); - bindTexture(ResourceManager.radar_body_tex); - - ResourceManager.radar_body.renderAll(); + bindTexture(ResourceManager.radar_base_tex); + ResourceManager.radar.renderPart("Base"); + + if(radar.power > 0) + GL11.glRotatef((-System.currentTimeMillis() / 10) % 360, 0F, 1F, 0F); + GL11.glTranslated(-0.125D, 0, 0); + + bindTexture(ResourceManager.radar_dish_tex); + ResourceManager.radar.renderPart("Dish"); GL11.glPopMatrix(); - renderTileEntityAt2(te, x, y, z, partialTicks); GlStateManager.enableCull(); } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GlStateManager.enableLighting(); - GlStateManager.disableCull(); - GL11.glRotatef(180, 0F, 1F, 0F); - - TileEntityMachineRadar radar = (TileEntityMachineRadar)tileEntity; - - if(radar.power > 0) - GL11.glRotatef((System.currentTimeMillis() / 10) % 360, 0F, 1F, 0F); - - bindTexture(ResourceManager.radar_head_tex); - ResourceManager.radar_head.renderAll(); - - GL11.glPopMatrix(); - } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadioRec.java b/src/main/java/com/hbm/render/tileentity/RenderRadioRec.java index 4fade23ed5..823062db01 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadioRec.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadioRec.java @@ -12,7 +12,7 @@ public class RenderRadioRec extends TileEntitySpecialRenderer { - private static final ResourceLocation texture8 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRadioReceiver.png"); + private static final ResourceLocation texture8 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/deco/ModelRadioReceiver.png"); private ModelBroadcaster model6; public RenderRadioRec() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadiobox.java b/src/main/java/com/hbm/render/tileentity/RenderRadiobox.java index 3a2ef820a1..df0a788301 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadiobox.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadiobox.java @@ -13,7 +13,7 @@ public class RenderRadiobox extends TileEntitySpecialRenderer { - private static final ResourceLocation texture7 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRadio.png"); + private static final ResourceLocation texture7 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/turrets/ModelRadio.png"); private ModelRadio model7; public RenderRadiobox() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderTestRender.java b/src/main/java/com/hbm/render/tileentity/RenderTestRender.java index 258d170f5d..4af74f270c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTestRender.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTestRender.java @@ -11,7 +11,7 @@ public class RenderTestRender extends TileEntitySpecialRenderer { - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/models/modeltestrender.png"); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/models/misc/modeltestrender.png"); private ModelTestRender model; diff --git a/src/main/java/com/hbm/saveddata/RadiationSavedData.java b/src/main/java/com/hbm/saveddata/RadiationSavedData.java index 0a74bb347d..57ed947278 100644 --- a/src/main/java/com/hbm/saveddata/RadiationSavedData.java +++ b/src/main/java/com/hbm/saveddata/RadiationSavedData.java @@ -142,10 +142,6 @@ public void updateSystem() { int z = struct.chunkY * 16 + worldObj.rand.nextInt(16); int y = worldObj.getHeight(x, z) + worldObj.rand.nextInt(5); - //EntityFogFX fog = new EntityFogFX(worldObj); - //fog.setPosition(x, y, z); - //System.out.println(x + " " + y + " " + z); - //worldObj.spawnEntity(fog); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(x, y, z, 3), new TargetPoint(worldObj.provider.getDimension(), x, y, z, 100)); } diff --git a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java index d9200b963f..fcc13fce36 100644 --- a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java +++ b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java @@ -13,7 +13,7 @@ public abstract class MovingSoundPlayerLoop extends MovingSound { public static List globalSoundList = new ArrayList(); public List playerForSound = new ArrayList(); public Entity player; - public enum EnumHbmSound { soundTauLoop, soundChopperLoop, soundCrashingLoop, soundMineLoop }; + public enum EnumHbmSound { soundTauLoop, soundChopperLoop, soundCrashingLoop, soundMineLoop, soundRadarLoop }; public EnumHbmSound type; public boolean init; diff --git a/src/main/java/com/hbm/sound/MovingSoundRadarLoop.java b/src/main/java/com/hbm/sound/MovingSoundRadarLoop.java new file mode 100644 index 0000000000..1f7f5569da --- /dev/null +++ b/src/main/java/com/hbm/sound/MovingSoundRadarLoop.java @@ -0,0 +1,36 @@ +package com.hbm.sound; + +import com.hbm.items.ModItems; +import com.hbm.handler.ArmorModHandler; +import net.minecraft.entity.player.EntityPlayer; + +import net.minecraft.item.ItemStack; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.entity.Entity; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvent; + +public class MovingSoundRadarLoop extends MovingSoundPlayerLoop { + + public MovingSoundRadarLoop(SoundEvent p_i45104_1_, SoundCategory c, Entity player, EnumHbmSound type) { + super(p_i45104_1_, c, player, type); + this.repeat = false; + } + + @Override + public void update() { + super.update(); + if(player instanceof EntityPlayer){ + ItemStack helmet = ((EntityPlayer)player).getItemStackFromSlot(EntityEquipmentSlot.HEAD); + if(helmet == null || helmet.isEmpty()) + this.stop(); + if(!ArmorModHandler.hasMods(helmet)) + this.stop(); + ItemStack radar = ArmorModHandler.pryMod(helmet, 7); + if(radar == null || radar.isEmpty() || radar.getItem() != ModItems.pocket_ptsd) + this.stop(); + } else { + this.stop(); + } + } +} diff --git a/src/main/java/com/hbm/sound/SoundLoopMiner.java b/src/main/java/com/hbm/sound/SoundLoopMiner.java deleted file mode 100644 index be0be9ae42..0000000000 --- a/src/main/java/com/hbm/sound/SoundLoopMiner.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.SoundEvent; - -public class SoundLoopMiner extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopMiner(SoundEvent path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineMiningDrill) { - TileEntityMachineMiningDrill drill = (TileEntityMachineMiningDrill)te; - - if(this.volume != 3) - volume = 3; - - if(drill.torque <= 0.5F) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 6395313b6f..0eed6756a3 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -52,12 +52,13 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements ITi // if a control panel sends a toggle from 0->1, it masters the door until toggled again. private boolean toggledByPanel = false; + public TileEntityDoorGeneric(){ } - + @Override public void update(){ - if(doorType == null) + if(doorType == null && this.getBlockType() instanceof BlockDoorGeneric) doorType = ((BlockDoorGeneric)this.getBlockType()).type; if(state == DoorState.OPENING) { openTicks++; @@ -163,7 +164,6 @@ public void update(){ if(redstonePower == -1){ redstonePower = 0; } - if (toggledByPanel) { tryOpen(-1); } @@ -187,28 +187,15 @@ public void onLoad(){ doorType = ((BlockDoorGeneric)this.getBlockType()).type; } - public boolean canLock(EntityPlayer player, EnumHand hand, EnumFacing facing) { - if (this.redstonePower > 0) { - player.sendMessage(new TextComponentString("Cannot lock while redstone powered")); - return false; - } else { - return true; - } - } - public boolean tryToggle(EntityPlayer player){ - if(state == DoorState.CLOSED && redstonePower > 0) { - //Redstone "power locks" doors, just like minecraft iron doors - return false; - } if(state == DoorState.CLOSED) { - if(!world.isRemote && canAccess(player)) { + if(!world.isRemote) { open(); broadcastControlEvt(); } return true; } else if(state == DoorState.OPEN) { - if(!world.isRemote && canAccess(player)) { + if(!world.isRemote) { close(); broadcastControlEvt(); } @@ -231,8 +218,6 @@ public boolean tryOpen(int passcode){ } public boolean tryToggle(int passcode){ - if(isLocked() && passcode != lock) - return false; if(state == DoorState.CLOSED) { return tryOpen(passcode); } else if(state == DoorState.OPEN) { @@ -242,9 +227,9 @@ public boolean tryToggle(int passcode){ } public boolean tryClose(int passcode){ - if (toggledByPanel) + if(toggledByPanel) return false; - if(isLocked() && passcode != lock) + if(this.isLocked() && passcode != lock) return false; if(state == DoorState.OPEN) { if(!world.isRemote) { @@ -385,7 +370,7 @@ public void broadcastControlEvt(){ } @Override - public void receiveEvent(BlockPos from, ControlEvent e) { + public void receiveEvent(BlockPos from, ControlEvent e){ if (e.name.equals("door_toggle")) { if (!isLocked() || (isLocked() && e.vars.get("passcode").getNumber() == lock)) { toggledByPanel = !toggledByPanel; diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 566ca0c8a1..03cda9eadb 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -20,7 +20,6 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements INBTPacketReceiver { public ItemStackHandler inventory; - public ItemStack slots[]; private String customName; @@ -29,7 +28,11 @@ public TileEntityMachineBase(int scount) { } public TileEntityMachineBase(int scount, int slotlimit) { - inventory = new ItemStackHandler(scount){ + inventory = getNewInventory(scount, slotlimit); + } + + public ItemStackHandler getNewInventory(int scount, int slotlimit){ + return new ItemStackHandler(scount){ @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -69,20 +72,6 @@ public boolean isUseableByPlayer(EntityPlayer player) { public int[] getAccessibleSlotsFromSide(EnumFacing e) { return new int[] {}; } - - - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != ItemStack.EMPTY && itemStack.getCount() > getInventoryStackLimit()) - { - itemStack.setCount(getInventoryStackLimit()); - } - } - - - public int getInventoryStackLimit() { - return 64; - } public int getGaugeScaled(int i, FluidTank tank) { return tank.getFluidAmount() * i / tank.getCapacity(); @@ -169,5 +158,4 @@ public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { public boolean hasCapability(Capability capability, EnumFacing facing) { return (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY && inventory != null) || super.hasCapability(capability, facing); } - } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index cec9ee92a5..07cccce8ac 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -7,6 +7,7 @@ import com.hbm.forgefluid.ModForgeFluids; import com.hbm.handler.MissileStruct; import com.hbm.interfaces.ITankPacketAcceptor; +import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; import com.hbm.items.weapon.ItemMissile; @@ -23,8 +24,10 @@ import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.render.amlfrom1710.Vec3; import com.hbm.tileentity.TileEntityLoadedBase; +import net.minecraftforge.fml.common.Optional; import api.hbm.energy.IEnergyUser; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -52,7 +55,13 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.ItemStackHandler; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ITickable, IEnergyUser, IFluidHandler, ITankPacketAcceptor { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ITickable, IEnergyUser, IFluidHandler, ITankPacketAcceptor, SimpleComponent { public ItemStackHandler inventory; @@ -68,6 +77,9 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I private static final int[] access = new int[] { 0 }; + public static final int clearingDuraction = 100; + public int clearingTimer = 0; + private String customName; public TileEntityCompactLauncher() { @@ -120,6 +132,7 @@ public void update() { updateTypes(); if(!world.isRemote) { + if(clearingTimer > 0) clearingTimer--; if(this.inputValidForTank(0, 2)) if(FFUtils.fillFromFluidContainer(inventory, tanks[0], 2, 6)) needsUpdate = true; @@ -149,6 +162,7 @@ public void update() { PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(pos, power), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, solid, 0), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); + PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, clearingTimer, 1), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllAround(new FluidTankPacket(pos, new FluidTank[] { tanks[0], tanks[1] }), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); MissileStruct multipart = getStruct(inventory.getStackInSlot(0)); @@ -203,7 +217,7 @@ private void updateConnections() { } public boolean canLaunch() { - if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) + if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel() && clearingTimer == 0) return true; return false; @@ -235,7 +249,7 @@ public void launch() { world.spawnEntity(missile); subtractFuel(); - + clearingTimer = clearingDuraction; inventory.setStackInSlot(0, ItemStack.EMPTY); } @@ -549,4 +563,42 @@ public T getCapability(Capability capability, EnumFacing facing) { } } + public boolean setCoords(int x, int z){ + if(!inventory.getStackInSlot(1).isEmpty() && (inventory.getStackInSlot(1).getItem() == ModItems.designator || inventory.getStackInSlot(1).getItem() == ModItems.designator_range || inventory.getStackInSlot(1).getItem() == ModItems.designator_manual)){ + NBTTagCompound nbt; + if(inventory.getStackInSlot(1).hasTagCompound()) + nbt = inventory.getStackInSlot(1).getTagCompound(); + else + nbt = new NBTTagCompound(); + nbt.setInteger("xCoord", x); + nbt.setInteger("zCoord", z); + inventory.getStackInSlot(1).setTagCompound(nbt); + return true; + } + return false; + } + + // opencomputers interface + + @Override + public String getComponentName() { + return "launchpad_compact"; + } + + @Callback(doc = "setTarget(x:int, z:int); saves coords in target designator item - returns true if it worked") + public Object[] setTarget(Context context, Arguments args) { + int x = args.checkInteger(0); + int z = args.checkInteger(1); + + return new Object[] {setCoords(x, z)}; + } + + @Callback(doc = "launch(); tries to launch the rocket") + public Object[] launch(Context context, Arguments args) { + Block b = world.getBlockState(pos).getBlock(); + if(b instanceof IBomb){ + ((IBomb)b).explode(world, pos); + } + return new Object[] {null}; + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index cd4f45d0d3..3e3b44b0d1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -2,12 +2,17 @@ import com.hbm.lib.Library; import com.hbm.lib.ForgeDirection; +import com.hbm.items.ModItems; +import com.hbm.interfaces.IBomb; +import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissilePacket; import com.hbm.tileentity.TileEntityLoadedBase; +import net.minecraftforge.fml.common.Optional; import api.hbm.energy.IEnergyUser; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -22,7 +27,13 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.ItemStackHandler; -public class TileEntityLaunchPad extends TileEntityLoadedBase implements ITickable, IEnergyUser { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityLaunchPad extends TileEntityLoadedBase implements ITickable, IEnergyUser, SimpleComponent { public ItemStackHandler inventory; @@ -34,6 +45,10 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ITickab // private static final int[] slots_side = new int[] {0}; public int state = 0; + //Time missile needs to clear launchpad in ticks + public static final int clearingDuraction = 100; + public int clearingTimer = 0; + private String customName; public TileEntityLaunchPad() { @@ -87,6 +102,7 @@ public long getPowerScaled(long i) { public void update() { if (!world.isRemote) { + if(clearingTimer > 0) clearingTimer--; this.updateConnections(); power = Library.chargeTEFromItems(inventory, 2, power, maxPower); detectAndSendChanges(); @@ -114,6 +130,7 @@ private void detectAndSendChanges() { mark = true; detectPower = power; } + PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, clearingTimer, 0), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllTracking(new TEMissilePacket(pos.getX(), pos.getY(), pos.getZ(), inventory.getStackInSlot(0)), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 1000)); PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(pos.getX(), pos.getY(), pos.getZ(), power), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 10)); if(mark) @@ -155,4 +172,43 @@ public boolean hasCapability(Capability capability, EnumFacing facing) { public T getCapability(Capability capability, EnumFacing facing) { return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory) : super.getCapability(capability, facing); } + + public boolean setCoords(int x, int z){ + if(!inventory.getStackInSlot(1).isEmpty() && (inventory.getStackInSlot(1).getItem() == ModItems.designator || inventory.getStackInSlot(1).getItem() == ModItems.designator_range || inventory.getStackInSlot(1).getItem() == ModItems.designator_manual)){ + NBTTagCompound nbt; + if(inventory.getStackInSlot(1).hasTagCompound()) + nbt = inventory.getStackInSlot(1).getTagCompound(); + else + nbt = new NBTTagCompound(); + nbt.setInteger("xCoord", x); + nbt.setInteger("zCoord", z); + inventory.getStackInSlot(1).setTagCompound(nbt); + return true; + } + return false; + } + + // opencomputers interface + + @Override + public String getComponentName() { + return "launchpad"; + } + + @Callback(doc = "setTarget(x:int, z:int); saves coords in target designator item - returns true if it worked") + public Object[] setTarget(Context context, Arguments args) { + int x = args.checkInteger(0); + int z = args.checkInteger(1); + + return new Object[] {setCoords(x, z)}; + } + + @Callback(doc = "launch(); tries to launch the rocket") + public Object[] launch(Context context, Arguments args) { + Block b = world.getBlockState(pos).getBlock(); + if(b instanceof IBomb){ + ((IBomb)b).explode(world, pos); + } + return new Object[] {null}; + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index a797ba743b..949f3d0a19 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -7,6 +7,7 @@ import com.hbm.forgefluid.ModForgeFluids; import com.hbm.handler.MissileStruct; import com.hbm.interfaces.ITankPacketAcceptor; +import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; import com.hbm.items.weapon.ItemMissile; @@ -22,8 +23,10 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.TileEntityLoadedBase; +import net.minecraftforge.fml.common.Optional; import api.hbm.energy.IEnergyUser; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -48,7 +51,13 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.ItemStackHandler; -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ITickable, IEnergyUser, IFluidHandler, ITankPacketAcceptor { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ITickable, IEnergyUser, IFluidHandler, ITankPacketAcceptor, SimpleComponent { public ItemStackHandler inventory; @@ -66,6 +75,9 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ITick //private static final int[] access = new int[] { 0 }; + public static final int clearingDuraction = 100; + public int clearingTimer = 0; + private String customName; public TileEntityLaunchTable() { @@ -120,6 +132,7 @@ public void update() { updateTypes(); if (!world.isRemote) { + if(clearingTimer > 0) clearingTimer--; //updateTypes(); if(world.getTotalWorldTime() % 20 == 0) this.updateConnections(); @@ -144,6 +157,7 @@ public void update() { PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(pos, power), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, solid, 0), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, padSize.ordinal(), 1), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); + PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, clearingTimer, 2), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); PacketDispatcher.wrapper.sendToAllAround(new FluidTankPacket(pos, new FluidTank[]{tanks[0], tanks[1]}), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 20)); MissileStruct multipart = getStruct(inventory.getStackInSlot(0)); @@ -194,7 +208,7 @@ private void updateConnections() { public boolean canLaunch() { - if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) + if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel() && clearingTimer == 0) return true; return false; @@ -211,7 +225,7 @@ public void launch() { world.spawnEntity(missile); subtractFuel(); - + clearingTimer = clearingDuraction; inventory.setStackInSlot(0, ItemStack.EMPTY); } @@ -513,5 +527,42 @@ public T getCapability(Capability capability, EnumFacing facing) { } } + public boolean setCoords(int x, int z){ + if(!inventory.getStackInSlot(1).isEmpty() && (inventory.getStackInSlot(1).getItem() == ModItems.designator || inventory.getStackInSlot(1).getItem() == ModItems.designator_range || inventory.getStackInSlot(1).getItem() == ModItems.designator_manual)){ + NBTTagCompound nbt; + if(inventory.getStackInSlot(1).hasTagCompound()) + nbt = inventory.getStackInSlot(1).getTagCompound(); + else + nbt = new NBTTagCompound(); + nbt.setInteger("xCoord", x); + nbt.setInteger("zCoord", z); + inventory.getStackInSlot(1).setTagCompound(nbt); + return true; + } + return false; + } + + // opencomputers interface + @Override + public String getComponentName() { + return "launchtable"; + } + + @Callback(doc = "setTarget(x:int, z:int); saves coords in target designator item - returns true if it worked") + public Object[] setTarget(Context context, Arguments args) { + int x = args.checkInteger(0); + int z = args.checkInteger(1); + + return new Object[] {setCoords(x, z)}; + } + + @Callback(doc = "launch(); tries to launch the rocket") + public Object[] launch(Context context, Arguments args) { + Block b = world.getBlockState(pos).getBlock(); + if(b instanceof IBomb){ + ((IBomb)b).explode(world, pos); + } + return new Object[] {null}; + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index fe82a02e9a..205180a564 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.bomb; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.items.ModItems; import com.hbm.lib.HBMSoundHandler; @@ -122,7 +123,9 @@ public void explode() { bf.posZ = pos.getZ() + 0.5; bf.destructionRange = (int) 250; world.spawnEntity(bf); - world.spawnEntity(EntityNukeCloudSmall.statFacBale(world, pos.getX() + 0.5, pos.getY() + 5, pos.getZ() + 0.5, 250F)); + if(BombConfig.enableNukeClouds) { + EntityNukeTorex.statFacBale(world, pos.getX() + 0.5, pos.getY() + 5, pos.getZ() + 0.5, 250F); + } } public String getMinutes() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java deleted file mode 100644 index 981bf7b253..0000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ /dev/null @@ -1,203 +0,0 @@ -package com.hbm.tileentity.bomb; - -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.MobEffects; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ITickable; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.ItemStackHandler; - -public class TileEntityNukeN45 extends TileEntity implements ITickable { - - public ItemStackHandler inventory; - private String customName; - - public boolean primed = false; - - public TileEntityNukeN45() { - inventory = new ItemStackHandler(2){ - @Override - protected void onContentsChanged(int slot) { - markDirty(); - super.onContentsChanged(slot); - } - }; - } - - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.nukeN45"; - } - - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - public boolean isUseableByPlayer(EntityPlayer player) { - if(world.getTileEntity(pos) != this) - { - return false; - }else{ - return player.getDistanceSq(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D) <=64; - } - } - - @Override - public void readFromNBT(NBTTagCompound compound) { - primed = compound.getBoolean("primed"); - if(compound.hasKey("inventory")) - inventory.deserializeNBT(compound.getCompoundTag("inventory")); - super.readFromNBT(compound); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) { - compound.setBoolean("primed", primed); - compound.setTag("inventory", inventory.serializeNBT()); - return super.writeToNBT(compound); - } - - @Override - public void update() { - if(!world.isRemote) { - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(pos, primed ? 1 : 0, 0), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 150)); - - if(primed) { - - if(getType() == 0) { - return; - } - - int rad = 0; - - if(!inventory.getStackInSlot(1).isEmpty()) { - - if(inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_1) - rad = 5; - if(inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_2) - rad = 10; - if(inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_3) - rad = 15; - } - - if(rad == 0) { - primed = false; - return; - } - - List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(pos.getX() + 0.5 - rad, pos.getY() + 0.5 - rad, pos.getZ() + 0.5 - rad, pos.getX() + 0.5 + rad, pos.getY() + 0.5 + rad, pos.getZ() + 0.5 + rad)); - - for(Entity e : list) { - - if(e instanceof EntityLivingBase && e.width * e.width * e.height >= 0.5 && !((EntityLivingBase)e).isPotionActive(MobEffects.INVISIBILITY)) { - int t = getType(); - this.clearSlots(); - explode(world, pos.getX(), pos.getY(), pos.getZ(), t); - break; - } - } - } - } - } - - public static void explode(World world, int x, int y, int z, int type) { - - if(!world.isRemote) { - world.setBlockToAir(new BlockPos(x, y, z)); - - //System.out.println(type); - - switch(type) { - case 1: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); - break; - case 2: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 4.0F, true); - break; - case 3: - ExplosionLarge.explode(world, x, y, z, 15, true, false, false); - break; - case 4: - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, BombConfig.missileRadius * 0.75F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntity(entity2); - break; - } - } - } - - public int getType() { - - if(!primed && !inventory.getStackInSlot(1).isEmpty()) { - - if(inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_1 || - inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_2 || - inventory.getStackInSlot(1).getItem() == ModItems.upgrade_effect_3) - return 100; - } - - if(!inventory.getStackInSlot(0).isEmpty()) { - - if(inventory.getStackInSlot(0).getItem() == Item.getItemFromBlock(ModBlocks.det_cord)) - return 1; - if(inventory.getStackInSlot(0).getItem() == Item.getItemFromBlock(Blocks.TNT)) - return 2; - if(inventory.getStackInSlot(0).getItem() == Item.getItemFromBlock(ModBlocks.det_charge)) - return 3; - if(inventory.getStackInSlot(0).getItem() == Item.getItemFromBlock(ModBlocks.det_nuke)) - return 4; - } - - return 0; - } - - public void clearSlots() { - for(int i = 0; i < inventory.getSlots(); i++) - { - inventory.setStackInSlot(i, ItemStack.EMPTY); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFDuctBase.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFDuctBase.java deleted file mode 100644 index fdd605097e..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFDuctBase.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.forgefluid.FFPipeNetwork; -import com.hbm.forgefluid.FFUtils; -import com.hbm.interfaces.IFluidPipe; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFluidTypePacketTest; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.IFluidTankProperties; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TileEntityFFDuctBase extends TileEntity implements IFluidPipe, IFluidHandler, ITickable { - - public EnumFacing[] connections = new EnumFacing[6]; - public Fluid type = null; - public FFPipeNetwork network = null; - public ICapabilityProvider[] fluidHandlerCache = new ICapabilityProvider[6]; - - public boolean isValidForForming = true; - public boolean firstUpdate = true; - public boolean needsBuildNetwork = false; - public boolean thisIsATest = false; - - public int weirdTest = 0; - - @Override - public void readFromNBT(NBTTagCompound compound) { - if(compound.hasKey("fluidType")) - this.type = FluidRegistry.getFluid(compound.getString("fluidType")); - needsBuildNetwork = true; - super.readFromNBT(compound); - } - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) { - if(this.type != null) - compound.setString("fluidType", type.getName()); - return super.writeToNBT(compound); - } - - @Override - public void onChunkUnload() { - if(this.getNetworkTrue() != null){ - this.getNetworkTrue().getPipes().remove(this); - } - } - - @Override - public void update() { - if(!world.isRemote) - detectAndSendChanges(); - - this.updateConnections(); - //System.out.println(connections[2]); - if(needsBuildNetwork){ - //this.getNetwork(); - //this.checkOtherNetworks(); - //this.network.addPipe(this); - //this.checkOtherNetworks(); - - - if(this.network == null) { - FFPipeNetwork.buildNewNetwork(this); - //System.out.println("here"); - } - this.checkFluidHandlers(); - needsBuildNetwork = false; - } - - if(thisIsATest){ - //System.out.println("dfasfdadf"); - this.typeChanged(this.type); - this.checkFluidHandlers(); - thisIsATest = false; - } - } - - public void updateConnections() { - if(FFUtils.checkFluidConnectables(this.world, pos.up(), getNetworkTrue(), EnumFacing.UP.getOpposite())) connections[0] = EnumFacing.UP; - else connections[0] = null; - - if(FFUtils.checkFluidConnectables(this.world, pos.down(), getNetworkTrue(), EnumFacing.DOWN.getOpposite())) connections[1] = EnumFacing.DOWN; - else connections[1] = null; - - if(FFUtils.checkFluidConnectables(this.world, pos.north(), getNetworkTrue(), EnumFacing.NORTH.getOpposite())) connections[2] = EnumFacing.NORTH; - else connections[2] = null; - - if(FFUtils.checkFluidConnectables(this.world, pos.east(), getNetworkTrue(), EnumFacing.EAST.getOpposite())) connections[3] = EnumFacing.EAST; - else connections[3] = null; - - if(FFUtils.checkFluidConnectables(this.world, pos.south(), getNetworkTrue(), EnumFacing.SOUTH.getOpposite())) connections[4] = EnumFacing.SOUTH; - else connections[4] = null; - - if(FFUtils.checkFluidConnectables(this.world, pos.west(), getNetworkTrue(), EnumFacing.WEST.getOpposite())) connections[5] = EnumFacing.WEST; - else connections[5] = null; - } - - public void checkOtherNetworks() { - List list = new ArrayList(); - list.add(this.getNetworkTrue()); - TileEntity te; - FFPipeNetwork largeNet = null; - for (int i = 0; i < 6; i++) { - te = FFPipeNetwork.getTileEntityAround(this, i); - if (te instanceof IFluidPipe && ((IFluidPipe) te).getNetworkTrue() != null && ((IFluidPipe) te).getNetworkTrue().getType() == this.getType()) { - if (!list.contains(((IFluidPipe) te).getNetworkTrue())) { - list.add(((IFluidPipe) te).getNetworkTrue()); - if (largeNet == null - || ((IFluidPipe) te).getNetworkTrue().getSize() > largeNet - .getSize()) - largeNet = ((IFluidPipe) te).getNetworkTrue(); - } - } - } - if (largeNet != null) { - for (FFPipeNetwork network : list) { - FFPipeNetwork.mergeNetworks(largeNet, network); - } - this.network = largeNet; - } else { - this.getNetwork().Destroy(); - this.network = this.createNewNetwork(); - } - } - - public FFPipeNetwork createNewNetwork() { - return new FFPipeNetwork(this.type); - } - - public void typeChanged(Fluid type){ - - this.getNetwork().setType(type); - FFPipeNetwork.buildNewNetwork(this); - //for(int i = 0; i < 6; i++){ - // TileEntity ent = FFPipeNetwork.getTileEntityAround(this, i); - // if(ent != null && ent instanceof IFluidPipe){ - // FFPipeNetwork.buildNewNetwork(ent); - //} - //} - if(!world.isRemote) - PacketDispatcher.wrapper.sendToAll(new TEFluidTypePacketTest(pos.getX(), pos.getY(), pos.getZ(), type)); - } - - public void onNeighborBlockChange() { - this.checkFluidHandlers(); - } - - public void checkFluidHandlers() { - if(this.network == null) { - return; - } - for(int i = 0; i < 6;i++) { - TileEntity te = FFPipeNetwork.getTileEntityAround(this, i); - if(te != null && !(te instanceof IFluidPipe) && te.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { - if(fluidHandlerCache[i] != null){ - this.network.getConsumers().remove(fluidHandlerCache[i]); - } - if(!this.network.getConsumers().contains(te)) { - this.network.getConsumers().add((ICapabilityProvider) te); - } - - fluidHandlerCache[i] = (ICapabilityProvider)te; - - } - } - } - - private void detectAndSendChanges() { - PacketDispatcher.wrapper.sendToAllAround(new TEFluidTypePacketTest(pos.getX(), pos.getY(), pos.getZ(), type), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 50)); - markDirty(); - } - - @Override - public IFluidTankProperties[] getTankProperties() { - return this.getNetwork().getTankProperties(); - } - - @Override - public int fill(FluidStack resource, boolean doFill) { - return this.getNetwork().fill(resource, doFill); - } - - @Override - public FluidStack drain(FluidStack resource, boolean doDrain) { - return this.getNetwork().drain(resource, doDrain); - } - - @Override - public FluidStack drain(int maxDrain, boolean doDrain) { - return this.getNetwork().drain(maxDrain, doDrain); - } - - @Override - public FFPipeNetwork getNetwork() { - if (this.network != null) { - return this.network; - } else { - this.network = new FFPipeNetwork(); - this.network.setType(this.getType()); - this.network.addPipe(this); - return this.network; - } - } - - @Override - public FFPipeNetwork getNetworkTrue() { - return this.network; - } - @Override - public void setNetwork(FFPipeNetwork net) { - this.network = net; - } - - @Override - public Fluid getType() { - return this.type; - } - - @Override - public void setType(Fluid fluid) { - this.type = fluid; - this.typeChanged(fluid); - } - - @Override - public void setTypeTrue(Fluid fluid){ - this.type = fluid; - } - - @Override - public boolean getIsValidForForming() { - return this.isValidForForming; - } - - @Override - public void breakBlock() { - // if(!this.world.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFFPipeDestructorPacket(this.xCoord, this.yCoord, this.zCoord)); - this.getNetwork().Destroy(); - this.isValidForForming = false; - for(int i = 0; i < 6; i++){ - TileEntity ent = FFPipeNetwork.getTileEntityAround(this, i); - if(ent != null && ent instanceof IFluidPipe){ - FFPipeNetwork.buildNewNetwork(ent); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY || super.hasCapability(capability, facing); - } - @Override - public T getCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY ? CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(this) : super.getCapability(capability, facing); - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFFluidDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFFluidDuct.java deleted file mode 100644 index 6c484af00b..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFFluidDuct.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.hbm.tileentity.conductor; - -public class TileEntityFFFluidDuct extends TileEntityFFDuctBase { - - -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuct.java deleted file mode 100644 index a69405619a..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuct.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.forgefluid.ModForgeFluids; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; - -public class TileEntityFFGasDuct extends TileEntityFFDuctBase { - - public TileEntityFFGasDuct() { - thisIsATest = true; - this.type = ModForgeFluids.gas; - } - - @Override - public void setType(Fluid fluid) { - this.type = ModForgeFluids.gas; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = ModForgeFluids.gas; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - return super.writeToNBT(nbt); - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuctSolid.java deleted file mode 100644 index 9c1ed46d97..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFGasDuctSolid.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.forgefluid.ModForgeFluids; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; - -public class TileEntityFFGasDuctSolid extends TileEntityFFDuctBase { - - public TileEntityFFGasDuctSolid() { - thisIsATest = true; - this.type = ModForgeFluids.gas; - } - - @Override - public void setType(Fluid fluid) { - this.type = ModForgeFluids.gas; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = ModForgeFluids.gas; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - return super.writeToNBT(nbt); - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuct.java deleted file mode 100644 index 214e38966c..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuct.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.forgefluid.ModForgeFluids; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; - -public class TileEntityFFOilDuct extends TileEntityFFDuctBase { - - public TileEntityFFOilDuct() { - thisIsATest = true; - this.type = ModForgeFluids.oil; - } - - @Override - public void setType(Fluid fluid) { - this.type = ModForgeFluids.oil; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = ModForgeFluids.oil; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - return super.writeToNBT(nbt); - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuctSolid.java deleted file mode 100644 index 6f36b3f0d4..0000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFFOilDuctSolid.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.forgefluid.ModForgeFluids; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; - -public class TileEntityFFOilDuctSolid extends TileEntityFFDuctBase { - - public TileEntityFFOilDuctSolid() { - thisIsATest = true; - this.type = ModForgeFluids.oil; - } - - @Override - public void setType(Fluid fluid) { - this.type = ModForgeFluids.oil; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = ModForgeFluids.oil; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - return super.writeToNBT(nbt); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java index 956e724c2c..53be13de45 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.forgefluid.FFUtils; import com.hbm.forgefluid.ModForgeFluids; import com.hbm.handler.ArmorUtil; @@ -344,7 +344,7 @@ private void explode() { int radius = (int)(50 + (double)(tanks[2].getFluidAmount() + tanks[3].getFluidAmount()) / 16000D * 150); - world.spawnEntity(EntityNukeExplosionMK4.statFacExperimental(world, radius, pos.getX(), pos.getY(), pos.getZ())); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, radius, pos.getX(), pos.getY(), pos.getZ())); world.setBlockToAir(pos); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java index 07f28e362e..6c6e467f52 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java @@ -7,6 +7,7 @@ import com.hbm.packet.PacketDispatcher; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.MobEffects; import net.minecraft.potion.PotionEffect; @@ -31,8 +32,9 @@ public void update() { if(d <= 25) { double t = (25 - d) / 25 * 10; e.attackEntityFrom(ModDamageSource.broadcast, (float) t); - if(e.getActivePotionEffect(MobEffects.NAUSEA) == null || e.getActivePotionEffect(MobEffects.NAUSEA).getDuration() < 100) - e.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 300, 0)); + if(!(e instanceof EntityPlayer && (((EntityPlayer) e).capabilities.isCreativeMode || ((EntityPlayer) e).isSpectator()))) + if(e.getActivePotionEffect(MobEffects.NAUSEA) == null || e.getActivePotionEffect(MobEffects.NAUSEA).getDuration() < 100) + e.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 300, 0)); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java index 8d2f68f483..370abc2db4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java @@ -189,7 +189,7 @@ public void update() { if(soundCycle >= 50) soundCycle = 0; } else { - if(!hasCluster) { + if(hasCluster) { if(this.progressStep > 1 && world.rand.nextInt(10) == 0) this.progressStep -= 1; } @@ -202,7 +202,7 @@ public void update() { process(23, 25); process(24, 26); this.progress = 0; - if(!hasCluster) + if(hasCluster) this.progressStep = Math.min(TileEntityCoreAdvanced.processTime, this.progressStep+1); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java index d1408e55fc..dd3be6e0ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java @@ -185,7 +185,7 @@ public void update() { soundCycle = 0; } else { - if(!hasCluster) { + if(hasCluster) { if(this.progressStep > 1 && world.rand.nextInt(10) == 0) this.progressStep -= 1; } @@ -197,7 +197,7 @@ public void update() { process(9, 11); process(10, 12); this.progress = 0; - if(!hasCluster) + if(hasCluster) this.progressStep = Math.min(100, this.progressStep+1); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index e3338c41ff..713b083411 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -57,8 +57,7 @@ public void update() { this.dualPower--; } int itemPower = DiFurnaceRecipes.getItemPower(inventory.getStackInSlot(2)); - if (this.hasItemPower(inventory.getStackInSlot(2)) - && this.dualPower <= (TileEntityDiFurnace.maxPower - itemPower)) { + if (this.hasItemPower(inventory.getStackInSlot(2)) && this.dualPower <= (TileEntityDiFurnace.maxPower - itemPower)) { this.dualPower += itemPower; if (!inventory.getStackInSlot(2).isEmpty()) { ItemStack copy = inventory.getStackInSlot(2).copy(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDummy.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDummy.java index 0039120d4e..aad8d59085 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDummy.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDummy.java @@ -2,8 +2,6 @@ import com.hbm.interfaces.IMultiBlock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.INBTPacketReceiver; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.play.server.SPacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; @@ -61,4 +59,5 @@ public SPacketUpdateTileEntity getUpdatePacket() { public NBTTagCompound getUpdateTag() { return this.writeToNBT(new NBTTagCompound()); } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index e44637a31e..43ad52dd72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -286,7 +286,7 @@ public NBTTagCompound writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("power", this.power); - nbt.setString("mode", this.mode.toString()); + nbt.setString("mode", this.mode.name()); nbt.setBoolean("isOn", this.isOn); nbt.setBoolean("valid", this.missingValidSilex); nbt.setInteger("distance", this.distance); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 9d7b5a9e28..8642418f22 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -13,6 +13,7 @@ import api.hbm.energy.IEnergyUser; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -36,7 +37,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ITicka public int blink = 0; public float radius = 16; public boolean isOn = false; - public int color = 0x0000FF; + public int color = 0x00C6FF; public final int baseCon = 1000; public final int radCon = 500; public final int shCon = 250; @@ -141,7 +142,7 @@ public void update() { blink--; color = 0xFF0000; } else { - color = 0x00FF00; + color = 0x00C6FF; } } @@ -149,7 +150,7 @@ public void update() { cooldown--; } else { if(health < maxHealth) - health += maxHealth / 100; + health += maxHealth / 50; if(health > maxHealth) health = maxHealth; @@ -188,7 +189,7 @@ private void damage(int ouch) { health -= ouch; if(ouch >= (this.maxHealth / 250)) - blink = 5; + blink = 5; if(health <= 0) { health = 0; @@ -211,7 +212,7 @@ private void doField(float rad) { for(Entity entity : list) { - if(!(entity instanceof EntityPlayer)) { + if(!(entity instanceof EntityPlayer) && !(entity instanceof EntityItem)) { double dist = Math.sqrt(Math.pow(pos.getX() + 0.5 - entity.posX, 2) + Math.pow(pos.getY() + 0.5 - entity.posY, 2) + Math.pow(pos.getZ() + 0.5 - entity.posZ, 2)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 10ce7c6ed4..bc94c1d5f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -1,8 +1,10 @@ package com.hbm.tileentity.machine; +import api.hbm.block.IToolable.ToolType; import com.hbm.items.ModItems; import com.hbm.handler.ArmorUtil; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemTooling; import com.hbm.items.tool.ItemKeyPin; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.Library; @@ -95,23 +97,34 @@ public boolean canAccess(EntityPlayer player) { return tryPick(player); } } + + public static int hasLockPickTools(EntityPlayer player){ + ItemStack stackR = player.getHeldItemMainhand(); + ItemStack stackL = player.getHeldItemOffhand(); + if(stackR == null || stackL == null) return -1; + if(stackR.getItem() == ModItems.pin){ + if(stackL.getItem() instanceof ItemTooling && ((ItemTooling)stackL.getItem()).getType() == ToolType.SCREWDRIVER){ + return 1; + } + } else if(stackL.getItem() == ModItems.pin){ + if(stackR.getItem() instanceof ItemTooling && ((ItemTooling)stackR.getItem()).getType() == ToolType.SCREWDRIVER){ + return 2; + } + } + return -1; + } public boolean tryPick(EntityPlayer player) { boolean canPick = false; - ItemStack stack = player.getHeldItemMainhand(); + int hand = hasLockPickTools(player); double chanceOfSuccess = this.lockMod * 100; - if(stack != null && stack.getItem() == ModItems.pin && Library.hasInventoryItem(player.inventory, ModItems.screwdriver)) { - - stack.shrink(1); + if(hand == 1) { + player.getHeldItemMainhand().shrink(1); canPick = true; - } - - if(stack != null && stack.getItem() == ModItems.screwdriver && Library.hasInventoryItem(player.inventory, ModItems.pin)) { - - Library.consumeInventoryItem(player.inventory, ModItems.pin); - player.inventoryContainer.detectAndSendChanges(); + } else if(hand == 2){ + player.getHeldItemOffhand().shrink(1); canPick = true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 4bd0bcad90..05c70d7cd1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -69,7 +69,6 @@ protected void onContentsChanged(int slot){ }; } - public void OnContentsChanged(int slot){ this.needsProcess = true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java index 61d067aca4..394065b3bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java @@ -50,19 +50,15 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public ConnectionPriority priority = ConnectionPriority.NORMAL; public byte lastRedstone = 0; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; private String customName; public TileEntityMachineBattery() { super(4); } - - public TileEntityMachineBattery(long power) { - this(); + + public static ForgeDirection[] getSendDirections(){ + return ForgeDirection.VALID_DIRECTIONS; } public String getInventoryName() { @@ -103,7 +99,6 @@ public byte getComparatorPower() { @Override public NBTTagCompound writeToNBT(NBTTagCompound compound) { compound.setLong("power", this.power); - compound.setLong("powerDelta", this.powerDelta); compound.setShort("redLow", this.redLow); compound.setShort("redHigh", this.redHigh); compound.setByte("priority", (byte)this.priority.ordinal()); @@ -113,7 +108,6 @@ public NBTTagCompound writeToNBT(NBTTagCompound compound) { @Override public void readFromNBT(NBTTagCompound compound) { this.power = compound.getLong("power"); - this.powerDelta = compound.getLong("powerDelta"); this.redLow = compound.getShort("redLow"); this.redHigh = compound.getShort("redHigh"); this.priority = ConnectionPriority.values()[compound.getByte("priority")]; @@ -124,7 +118,6 @@ public void readFromNBT(NBTTagCompound compound) { public void writeNBT(NBTTagCompound nbt) { NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); - data.setLong("powerDelta", this.powerDelta); data.setShort("redLow", this.redLow); data.setShort("redHigh", this.redHigh); data.setByte("priority", (byte)this.priority.ordinal()); @@ -135,25 +128,33 @@ public void writeNBT(NBTTagCompound nbt) { public void readNBT(NBTTagCompound nbt) { NBTTagCompound data = nbt.getCompoundTag("NBT_PERSISTENT_KEY"); this.power = data.getLong("power"); - this.powerDelta = data.getLong("powerDelta"); this.redLow = data.getShort("redLow"); this.redHigh = data.getShort("redHigh"); this.priority = ConnectionPriority.values()[data.getByte("priority")]; } @Override - public int[] getAccessibleSlotsFromSide(EnumFacing p_94128_1_) - { - return p_94128_1_ == EnumFacing.DOWN ? slots_bottom : (p_94128_1_ == EnumFacing.UP ? slots_top : slots_side); + public int[] getAccessibleSlotsFromSide(EnumFacing p_94128_1_) { + return new int[]{ 0, 1, 2, 3}; } @Override public boolean isItemValidForSlot(int i, ItemStack stack) { if(i == 0) - return (stack.getItem() instanceof IBatteryItem); + if(stack.getItem() instanceof IBatteryItem){ + IBatteryItem batteryItem = ((IBatteryItem)stack.getItem()); + if(batteryItem.getCharge(stack) > 0 && batteryItem.getDischargeRate() > 0){ + return true; + } + } if(i == 2) - return (stack.getItem() instanceof IBatteryItem); - return true; + if(stack.getItem() instanceof IBatteryItem){ + IBatteryItem batteryItem = ((IBatteryItem)stack.getItem()); + if(batteryItem.getCharge(stack) < batteryItem.getMaxCharge() && batteryItem.getChargeRate() > 0){ + return true; + } + } + return false; } @Override @@ -194,6 +195,11 @@ public void update() { if(!world.isRemote) { long prevPower = this.power; + + if(inventory.getSlots() < 3){ + inventory = this.getNewInventory(4, 64); + } + power = Library.chargeTEFromItems(inventory, 0, power, getMaxPower()); ////////////////////////////////////////////////////////////////////// @@ -211,18 +217,16 @@ public void update() { long avg = (power >> 1) + (prevPower >> 1); //had issue with getting avg of extreme long values this.powerDelta = avg - this.log[0]; - for(int i = 1; i < this.log.length; i++) { this.log[i - 1] = this.log[i]; } - this.log[this.log.length-1] = avg; - this.networkPack(packNBT(avg), 20); + this.networkPack(packNBT(), 20); } } - public NBTTagCompound packNBT(long power){ + public NBTTagCompound packNBT(){ NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", power); nbt.setLong("powerDelta", powerDelta); @@ -241,7 +245,7 @@ protected void transmitPowerFairly() { Set consumers = new HashSet(); //iterate over all sides - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + for(ForgeDirection dir : getSendDirections()) { TileEntity te = world.getTileEntity(pos.add(dir.offsetX, dir.offsetY, dir.offsetZ)); @@ -267,7 +271,20 @@ protected void transmitPowerFairly() { if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { List con = new ArrayList(); con.addAll(consumers); - this.power = PowerNet.fairTransfer(con, this.power); + + if(PowerNet.trackingInstances == null) { + PowerNet.trackingInstances = new ArrayList(); + } + PowerNet.trackingInstances.clear(); + + nets.forEach(x -> { + if(x instanceof PowerNet) + PowerNet.trackingInstances.add((PowerNet) x); + }); + + long toSend = Math.min(this.power, this.getMaxTransfer()); + long powerRemaining = this.power - toSend; + this.power = PowerNet.fairTransferWithPrio(this.getPriority(), con, toSend) + powerRemaining; } //resubscribe to buffered nets, if necessary @@ -275,48 +292,9 @@ protected void transmitPowerFairly() { nets.forEach(x -> x.subscribe(this)); } } - - protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = world.getTileEntity(pos.add(dir.offsetX, dir.offsetY, dir.offsetZ)); - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - //then we add energy - if(mode == mode_buffer || mode == mode_output) { - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - } - } - - //then we subscribe if possible - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == mode_output || mode == mode_none) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - } - } + + public long getMaxTransfer() { + return this.getMaxPower() / 20; } @Override @@ -402,4 +380,9 @@ public boolean canConnect(ForgeDirection dir) { public ConnectionPriority getPriority() { return this.priority; } + + @Override + public boolean isStorage() { //used for batteries + return true; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index dd919f4c98..1a4366d1f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -219,8 +219,7 @@ protected boolean inputValidForTank(int tank, int slot) { private boolean isValidFluid(FluidStack stack) { if(stack == null) return false; - return stack.getFluid() == FluidRegistry.WATER || stack.getFluid() == ModForgeFluids.oil || stack.getFluid() == ModForgeFluids.crackoil - || stack.getFluid() == ModForgeFluids.steam || stack.getFluid() == ModForgeFluids.hotsteam; + return HeatRecipes.hasBoilRecipe(stack.getFluid()); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index fd7456dcee..bc9f8061e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -209,7 +209,7 @@ public void fillFluidInit(FluidTank tank) { private boolean isValidFluid(FluidStack stack) { if(stack == null) return false; - return stack.getFluid() == FluidRegistry.WATER || stack.getFluid() == ModForgeFluids.oil || stack.getFluid() == ModForgeFluids.crackoil || stack.getFluid() == ModForgeFluids.steam || stack.getFluid() == ModForgeFluids.hotsteam; + return HeatRecipes.hasBoilRecipe(stack.getFluid()); } protected boolean inputValidForTank(int tank, int slot) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerRTG.java index 959a953bc2..b0269f04bb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerRTG.java @@ -211,7 +211,7 @@ protected boolean inputValidForTank(int tank, int slot) { private boolean isValidFluid(FluidStack stack) { if(stack == null) return false; - return stack.getFluid() == FluidRegistry.WATER || stack.getFluid() == ModForgeFluids.oil || stack.getFluid() == ModForgeFluids.crackoil || stack.getFluid() == ModForgeFluids.steam || stack.getFluid() == ModForgeFluids.hotsteam; + return HeatRecipes.hasBoilRecipe(stack.getFluid()); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index c3901924a5..739760d95a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -72,7 +72,7 @@ public boolean isItemValidForSlot(int i, ItemStack stack) { @Override public int[] getAccessibleSlotsFromSide(EnumFacing e) { - return new int[]{ 0, 1, 2, 3, 4, 5}; + return new int[]{ 0, 1, 2, 3, 4, 5, 6, 7}; } @Override @@ -239,6 +239,10 @@ public void update() { this.updateStandardConnections(world, pos); + if(inventory.getSlots() < 7){ + inventory = this.getNewInventory(8, 64); + } + power = Library.chargeTEFromItems(inventory, 1, power, maxPower); int speed = 1; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index f59d9cfa4d..6f273686c1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -256,11 +256,20 @@ public void update() { this.updateConnections(); power = Library.chargeTEFromItems(inventory, 0, power, maxPower); - if(inputValidForTank(0, 17)) { + + if(inputTankEmpty(0, 17) && inventory.getStackInSlot(19).isEmpty()){ + FFUtils.fillFluidContainer(inventory, tanks[0], 17, 19); + FFUtils.moveItems(inventory, 17, 19, false); + } if(inputValidForTank(0, 17)) { FFUtils.fillFromFluidContainer(inventory, tanks[0], 17, 19); } - if(inputValidForTank(1, 18)) + + if(inputTankEmpty(1, 18) && inventory.getStackInSlot(20).isEmpty()){ + FFUtils.fillFluidContainer(inventory, tanks[1], 18, 20); + FFUtils.moveItems(inventory, 18, 20, false); + } else if(inputValidForTank(1, 18)){ FFUtils.fillFromFluidContainer(inventory, tanks[1], 18, 20); + } if((tankTypes[0] == FluidRegistry.WATER && inventory.getStackInSlot(17).getItem() == ModItems.inf_water) || inventory.getStackInSlot(17).getItem() == ModItems.fluid_barrel_infinite) FFUtils.fillFromFluidContainer(inventory, tanks[0], 17, 19); @@ -525,14 +534,17 @@ private void setContainers() { protected boolean inputValidForTank(int tank, int slot) { if(!inventory.getStackInSlot(slot).isEmpty() && tankTypes[tank] != null) { return FFUtils.checkRestrictions(inventory.getStackInSlot(slot), f -> f.getFluid() == tankTypes[tank]); - /*if(FluidUtil.getFluidHandler(inventory.getStackInSlot(slot)) != null && FluidUtil.getFluidContained(inventory.getStackInSlot(slot)) != null){ - return FluidUtil.getFluidContained(inventory.getStackInSlot(slot)).getFluid() == tankTypes[tank]; - } + //Drillgon200: I really hope fluid container registry comes back. + } - FluidStack test = FluidContainerRegistry.getFluidFromItem(inventory.getStackInSlot(slot).getItem()); - if(test != null && test.getFluid() == tankTypes[tank]){ - return true; - }*/ + return false; + } + + protected boolean inputTankEmpty(int tank, int slot) { + if(!inventory.getStackInSlot(slot).isEmpty() && tankTypes[tank] != null) { + ItemStack c = inventory.getStackInSlot(slot).copy(); + c.setCount(1); + return FFUtils.isEmtpyFluidTank(c); //Drillgon200: I really hope fluid container registry comes back. } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index e85b8d1840..0a9f2a7287 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -612,7 +612,7 @@ public FluidStack drain(FluidStack resource, boolean doDrain) { } } - for(int i = 0; i < 100 && needed > 0; i++) { + for(int i = 0; i < 100 && needed > 0 && i < send.size(); i++) { TypedFluidTank tank = send.get(i); if(tank.tank.getFluidAmount() > 0) { int total = Math.min(tank.tank.getFluidAmount(), needed); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 517e895350..5234115c39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -7,7 +7,7 @@ import com.hbm.inventory.RecipesCommon.NbtComparableStack; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.logic.EntityBalefire; -import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionThermo; import com.hbm.forgefluid.FFUtils; @@ -453,7 +453,7 @@ private void explode() { int rand = world.rand.nextInt(10); if(rand < 2) { - world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)(BombConfig.fatmanRadius * 1.5), pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5).mute()); + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.fatmanRadius * 1.5), pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5).mute()); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 9928f494c8..6313366acc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -2,11 +2,14 @@ import java.util.ArrayList; import java.util.List; +import java.util.HashMap; import com.hbm.forgefluid.FFUtils; -import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.ITankPacketAcceptor; import com.hbm.lib.Library; +import com.hbm.forgefluid.ModForgeFluids; +import com.hbm.inventory.EngineRecipes; +import com.hbm.inventory.EngineRecipes.FuelGrade; import com.hbm.packet.FluidTankPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; @@ -37,13 +40,20 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IT public long powerCap = 50000; public int age = 0; public FluidTank tank; - public Fluid tankType = ModForgeFluids.diesel; + public Fluid tankType; public boolean needsUpdate; private static final int[] slots_top = new int[] { 0 }; private static final int[] slots_bottom = new int[] { 1, 2 }; private static final int[] slots_side = new int[] { 2 }; + public static HashMap fuelEfficiency = new HashMap(); + static { + fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D); + fuelEfficiency.put(FuelGrade.HIGH, 0.75D); + fuelEfficiency.put(FuelGrade.AERO, 0.1D); + } + public TileEntityMachineDiesel() { super(3); tank = new FluidTank(16000); @@ -126,18 +136,18 @@ public boolean hasAcceptableFuel() { return getHEFromFuel() > 0; } - public int getHEFromFuel() { - Fluid type = tankType; - if(type == null) - return 0; - if(type == ModForgeFluids.diesel) - return 500; - if(type == ModForgeFluids.petroil) - return 300; - if(type == ModForgeFluids.biofuel) - return 400; - if(type == ModForgeFluids.nitan) - return 5000; + public long getHEFromFuel() { + if(tank.getFluid() == null) return 0; + return getHEFromFuel(tank.getFluid().getFluid()); + } + + public static long getHEFromFuel(Fluid type) { + if(EngineRecipes.hasFuelRecipe(type)) { + FuelGrade grade = EngineRecipes.getFuelGrade(type); + double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; + return (long) (EngineRecipes.getEnergy(type) / 1000L * efficiency); + } + return 0; } @@ -152,7 +162,7 @@ public void generate() { if (soundCycle >= 5) soundCycle = 0; - tank.drain(10, true); + tank.drain(1, true); needsUpdate = true; if (power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); @@ -170,11 +180,11 @@ protected boolean inputValidForTank(int tank, int slot){ } return false; } - + private boolean isValidFluid(FluidStack stack) { if(stack == null) return false; - return stack.getFluid() == ModForgeFluids.diesel || stack.getFluid() == ModForgeFluids.nitan || stack.getFluid() == ModForgeFluids.petroil || stack.getFluid() == ModForgeFluids.biofuel; + return getHEFromFuel(stack.getFluid()) > 0; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java index 27f0b9aa8f..1866134977 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java @@ -37,60 +37,13 @@ public void update() { } } - @Override - protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - ForgeDirection dir = ForgeDirection.DOWN; - - TileEntity te = world.getTileEntity(pos.add(dir.offsetX, dir.offsetY, dir.offsetZ)); - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - //then we add energy - if(mode == mode_buffer || mode == mode_output) { - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - long max = maxTransfer; - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - //then we subscribe if possible - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == mode_output || mode == mode_none) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - } + public static ForgeDirection[] getSendDirections(){ + return new ForgeDirection[]{ForgeDirection.DOWN}; } @Override - public NBTTagCompound packNBT(long avg){ - NBTTagCompound nbt = super.packNBT(avg); + public NBTTagCompound packNBT(){ + NBTTagCompound nbt = super.packNBT(); nbt.setByte("color", (byte) this.color.getMetadata()); return nbt; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java deleted file mode 100644 index 9fd777bd5a..0000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java +++ /dev/null @@ -1,740 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.gas.BlockGasBase; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.Untested; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEDrillPacket; -import com.hbm.sound.SoundLoopMachine; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.energy.IEnergyUser; -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.ItemStackHandler; - -public class TileEntityMachineMiningDrill extends TileEntityMachineBase implements ITickable, IEnergyUser, IMiningDrill { - - public long power; - public int warning; - public static final long maxPower = 100000; - int age = 0; - int timer = 50; - int radius = 100; - int consumption = 100; - int fortune = 0; - boolean flag = true; - public float torque; - public float rotation; - SoundLoopMachine sound; - //TODO: clientside-only animations and sound - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; - Random rand = new Random(); - - public TileEntityMachineMiningDrill() { - super(13); - } - - @Override - public String getName() { - return "container.miningDrill"; - } - - public boolean isUseableByPlayer(EntityPlayer player) { - if(world.getTileEntity(pos) != this) { - return false; - } else { - return player.getDistanceSq(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D) <= 128; - } - } - - @Override - public void readFromNBT(NBTTagCompound compound) { - this.power = compound.getLong("powerTime"); - super.readFromNBT(compound); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) { - compound.setLong("powerTime", power); - return super.writeToNBT(compound); - } - - @Override - public int[] getAccessibleSlotsFromSide(EnumFacing e) { - int p_94128_1_ = e.ordinal(); - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Untested - @Override - public void update() { - if(!world.isRemote) { - this.updateConnections(); - this.consumption = 100; - this.timer = 50; - this.radius = 1; - this.fortune = 0; - - for(int i = 10; i < 13; i++) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null) { - if(stack.getItem() == ModItems.upgrade_effect_1) { - this.radius += 1; - this.consumption += 80; - } - if(stack.getItem() == ModItems.upgrade_effect_2) { - this.radius += 2; - this.consumption += 160; - } - if(stack.getItem() == ModItems.upgrade_effect_3) { - this.radius += 3; - this.consumption += 240; - } - if(stack.getItem() == ModItems.upgrade_speed_1) { - this.timer -= 15; - this.consumption += 300; - } - if(stack.getItem() == ModItems.upgrade_speed_2) { - this.timer -= 30; - this.consumption += 600; - } - if(stack.getItem() == ModItems.upgrade_speed_3) { - this.timer -= 45; - this.consumption += 900; - } - if(stack.getItem() == ModItems.upgrade_power_1) { - this.consumption -= 30; - this.timer += 5; - } - if(stack.getItem() == ModItems.upgrade_power_2) { - this.consumption -= 60; - this.timer += 10; - } - if(stack.getItem() == ModItems.upgrade_power_3) { - this.consumption -= 90; - this.timer += 15; - } - if(stack.getItem() == ModItems.upgrade_fortune_1) { - this.fortune += 1; - this.timer += 15; - } - if(stack.getItem() == ModItems.upgrade_fortune_2) { - this.fortune += 2; - this.timer += 30; - } - if(stack.getItem() == ModItems.upgrade_fortune_3) { - this.fortune += 3; - this.timer += 45; - } - } - } - - if(timer < 5) - timer = 5; - if(consumption < 40) - consumption = 40; - if(radius > 4) - radius = 4; - if(fortune > 3) - fortune = 3; - - age++; - if(age >= timer) - age -= timer; - - power = Library.chargeTEFromItems(inventory, 0, power, maxPower); - - if(power >= consumption) { - - // operation start - - if(age == timer - 1) { - warning = 0; - - // warning 0, green: drill is operational - // warning 1, red: drill is full, has no power or the drill - // is jammed - // warning 2, yellow: drill has reached max depth - - for(int i = pos.getY() - 1; i > pos.getY() - 1 - 100; i--) { - - if(i <= 5) { - // Code 2: The drilling ended - warning = 2; - break; - } - - IBlockState ibs = world.getBlockState(new BlockPos(pos.getX(), i, pos.getZ())); - IBlockState ibs1 = world.getBlockState(new BlockPos(pos.getX(), i - 1, pos.getZ())); - Block b = ibs.getBlock(); - Block b1 = ibs1.getBlock(); - ItemStack stack = new ItemStack(b.getItemDropped(ibs, rand, fortune), b.quantityDropped(ibs, fortune, rand), b.damageDropped(ibs)); - ItemStack stack1 = new ItemStack(b1.getItemDropped(ibs1, rand, fortune), b1.quantityDropped(ibs1, fortune, rand), b1.damageDropped(ibs1)); - - if(i == pos.getY() - 1 && world.getBlockState(new BlockPos(pos.getX(), i, pos.getZ())).getBlock() != ModBlocks.drill_pipe) { - if(this.isOreo(new BlockPos(pos.getX(), i, pos.getZ())) && this.hasSpace(stack)) { - // if(stack != null) - // this.addItemToInventory(stack); - world.setBlockState(new BlockPos(pos.getX(), i, pos.getZ()), ModBlocks.drill_pipe.getDefaultState()); - break; - } else { - // Code 2: Drill jammed - warning = 1; - break; - } - } - - if(b1 == ModBlocks.drill_pipe) { - continue; - } else { - - flag = i != pos.getY() - 1; - - if(!this.drill(pos.getX(), i, pos.getZ(), radius)) { - if(this.isOreo(new BlockPos(pos.getX(), i - 1, pos.getZ())) && this.hasSpace(stack1)) { - world.setBlockState(new BlockPos(pos.getX(), i - 1, pos.getZ()), ModBlocks.drill_pipe.getDefaultState()); - } else { - //Code 2: Drill jammed - warning = 1; - } - - } - break; - } - } - } - - // operation end - - power -= consumption; - } else { - warning = 1; - } - - int meta = getBlockMetadata(); - TileEntity te = null; - if(meta == 2) { - te = world.getTileEntity(pos.add(-2, 0, 0)); - // world.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 3) { - te = world.getTileEntity(pos.add(2, 0, 0)); - // world.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 4) { - te = world.getTileEntity(pos.add(0, 0, 2)); - // world.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 5) { - te = world.getTileEntity(pos.add(0, 0, -2)); - // world.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - - if(te != null && te instanceof ICapabilityProvider){ - ICapabilityProvider capte = (ICapabilityProvider)te; - if(capte.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, MultiblockHandler.intToEnumFacing(meta).rotateY())){ - IItemHandler cap = capte.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, MultiblockHandler.intToEnumFacing(meta).rotateY()); - for(int i = 1; i < 10; i ++) - if(tryFillContainerCap(cap, i)) - break; - } - } - - if(warning == 0) { - torque += 0.1; - if(torque > (100 / timer)) - torque = (100 / timer); - } else { - torque -= 0.1F; - if(torque < -(100 / timer)) - torque = -(100 / timer); - } - - if(torque < 0) { - torque = 0; - } - rotation += torque; - if(rotation >= 360) - rotation -= 360; - - PacketDispatcher.wrapper.sendToAllAround(new TEDrillPacket(pos.getX(), pos.getY(), pos.getZ(), rotation, torque), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 50)); - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(pos), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(pos, power), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 10)); - } - } - - private void updateConnections() { - int meta = this.getBlockMetadata(); - - if(meta == 5 || meta == 4) { - this.trySubscribe(world, pos.add(2, 0, 0), Library.POS_X); - this.trySubscribe(world, pos.add(-2, 0, 0), Library.NEG_X); - - } else if(meta == 3 || meta == 2) { - this.trySubscribe(world, pos.add(0, 0, 2), Library.POS_Z); - this.trySubscribe(world, pos.add(0, 0, -2), Library.NEG_Z); - } - } - - // Unloads output into chests. Capability version. - public boolean tryFillContainerCap(IItemHandler inv, int slot) { - - int size = inv.getSlots(); - - for(int i = 0; i < size; i++) { - if(inv.getStackInSlot(i) != null) { - - if(inventory.getStackInSlot(slot).getItem() == Items.AIR) - return false; - - ItemStack sta1 = inv.getStackInSlot(i).copy(); - ItemStack sta2 = inventory.getStackInSlot(slot).copy(); - if(sta1 != null && sta2 != null) { - sta1.setCount(1); - sta2.setCount(1); - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inv.getStackInSlot(i).getCount() < inv.getStackInSlot(i).getMaxStackSize()) { - inventory.getStackInSlot(slot).shrink(1); - - if(inventory.getStackInSlot(slot).isEmpty()) - inventory.setStackInSlot(slot, ItemStack.EMPTY); - - ItemStack sta3 = inv.getStackInSlot(i).copy(); - sta3.setCount(1); - inv.insertItem(i, sta3, false); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(inventory.getStackInSlot(slot).getItem() == Items.AIR) - return false; - - ItemStack sta2 = inventory.getStackInSlot(slot).copy(); - if(inv.getStackInSlot(i).getItem() == Items.AIR && sta2 != null) { - sta2.setCount(1); - inventory.getStackInSlot(slot).shrink(1); - ; - - if(inventory.getStackInSlot(slot).isEmpty()) - inventory.setStackInSlot(slot, ItemStack.EMPTY); - - inv.insertItem(i, sta2, false); - - return true; - } - } - - return false; - } - - // Method: isOre - // "make it oreo!" - // "ok" - public boolean isOreo(BlockPos pos) { - - IBlockState b = world.getBlockState(pos); - float hardness = b.getBlockHardness(world, pos); - - if(b.getBlock() instanceof BlockGasBase) return false; - return (hardness < 70 && hardness >= 0) || b.getMaterial().isLiquid(); - } - - public boolean isMinableOreo(BlockPos pos) { - - IBlockState b = world.getBlockState(pos); - float hardness = b.getBlockHardness(world, pos); - - if(b.getBlock() instanceof BlockGasBase) return false; - return hardness < 70 && hardness >= 0 || b instanceof IDrillInteraction; - } - - //TODO Drillgon200: Fix this absolute mess - /** - * returns true if there has been a successful mining operation returns - * false if no block could be mined and the drill is ready to extend - */ - public boolean drill(int x, int y, int z, int rad) { - - if(!flag) - return false; - - for(int ix = x - rad; ix <= x + rad; ix++) { - for(int iz = z - rad; iz <= z + rad; iz++) { - - if(ix != x || iz != z) - if(tryDrill(ix, y, iz)) - return true; - } - } - - return false; - } - - public boolean drill2(int x, int y, int z) { - - if(!flag) - return false; - - if(!tryDrill(x + 1, y, z)) - if(!tryDrill(x + 1, y, z + 1)) - if(!tryDrill(x, y, z + 1)) - if(!tryDrill(x - 1, y, z + 1)) - if(!tryDrill(x - 1, y, z)) - if(!tryDrill(x - 1, y, z - 1)) - if(!tryDrill(x, y, z - 1)) - if(!tryDrill(x + 1, y, z - 1)) - - if(!tryDrill(x + 2, y, z)) - if(!tryDrill(x + 2, y, z + 1)) - if(!tryDrill(x + 1, y, z + 2)) - if(!tryDrill(x, y, z + 2)) - if(!tryDrill(x - 1, y, z + 2)) - if(!tryDrill(x - 2, y, z + 1)) - if(!tryDrill(x - 2, y, z)) - if(!tryDrill(x - 2, y, z - 1)) - if(!tryDrill(x - 1, y, z - 2)) - if(!tryDrill(x, y, z - 2)) - if(!tryDrill(x + 1, y, z - 2)) - if(!tryDrill(x + 2, y, z - 1)) - - if(!tryDrill(x, y - 1, z)) - return false; - - return true; - } - - public boolean drill3(int x, int y, int z) { - - if(!flag) - return false; - - if(!tryDrill(x + 1, y, z)) - if(!tryDrill(x + 1, y, z + 1)) - if(!tryDrill(x, y, z + 1)) - if(!tryDrill(x - 1, y, z + 1)) - if(!tryDrill(x - 1, y, z)) - if(!tryDrill(x - 1, y, z - 1)) - if(!tryDrill(x, y, z - 1)) - if(!tryDrill(x + 1, y, z - 1)) - - if(!tryDrill(x + 2, y, z)) - if(!tryDrill(x + 2, y, z + 1)) - if(!tryDrill(x + 1, y, z + 2)) - if(!tryDrill(x, y, z + 2)) - if(!tryDrill(x - 1, y, z + 2)) - if(!tryDrill(x - 2, y, z + 1)) - if(!tryDrill(x - 2, y, z)) - if(!tryDrill(x - 2, y, z - 1)) - if(!tryDrill(x - 1, y, z - 2)) - if(!tryDrill(x, y, z - 2)) - if(!tryDrill(x + 1, y, z - 2)) - if(!tryDrill(x + 2, y, z - 1)) - - if(!tryDrill(x + 3, y, z)) - if(!tryDrill(x + 3, y, z + 1)) - if(!tryDrill(x + 2, y, z + 2)) - if(!tryDrill(x + 1, y, z + 3)) - if(!tryDrill(x, y, z + 3)) - if(!tryDrill(x - 1, y, z + 3)) - if(!tryDrill(x - 2, y, z + 2)) - if(!tryDrill(x - 3, y, z + 1)) - if(!tryDrill(x - 3, y, z)) - if(!tryDrill(x - 3, y, z - 1)) - if(!tryDrill(x - 2, y, z - 2)) - if(!tryDrill(x - 1, y, z - 3)) - if(!tryDrill(x, y, z - 3)) - if(!tryDrill(x + 1, y, z - 3)) - if(!tryDrill(x + 2, y, z - 2)) - if(!tryDrill(x + 3, y, z - 1)) - - if(!tryDrill(x, y - 1, z)) - return false; - - return true; - } - - public boolean drill4(int x, int y, int z) { - - if(!flag) - return false; - - if(!tryDrill(x + 1, y, z)) - if(!tryDrill(x + 1, y, z + 1)) - if(!tryDrill(x, y, z + 1)) - if(!tryDrill(x - 1, y, z + 1)) - if(!tryDrill(x - 1, y, z)) - if(!tryDrill(x - 1, y, z - 1)) - if(!tryDrill(x, y, z - 1)) - if(!tryDrill(x + 1, y, z - 1)) - - if(!tryDrill(x + 2, y, z)) - if(!tryDrill(x + 2, y, z + 1)) - if(!tryDrill(x + 1, y, z + 2)) - if(!tryDrill(x, y, z + 2)) - if(!tryDrill(x - 1, y, z + 2)) - if(!tryDrill(x - 2, y, z + 1)) - if(!tryDrill(x - 2, y, z)) - if(!tryDrill(x - 2, y, z - 1)) - if(!tryDrill(x - 1, y, z - 2)) - if(!tryDrill(x, y, z - 2)) - if(!tryDrill(x + 1, y, z - 2)) - if(!tryDrill(x + 2, y, z - 1)) - - if(!tryDrill(x + 3, y, z)) - if(!tryDrill(x + 3, y, z + 1)) - if(!tryDrill(x + 2, y, z + 2)) - if(!tryDrill(x + 1, y, z + 3)) - if(!tryDrill(x, y, z + 3)) - if(!tryDrill(x - 1, y, z + 3)) - if(!tryDrill(x - 2, y, z + 2)) - if(!tryDrill(x - 3, y, z + 1)) - if(!tryDrill(x - 3, y, z)) - if(!tryDrill(x - 3, y, z - 1)) - if(!tryDrill(x - 2, y, z - 2)) - if(!tryDrill(x - 1, y, z - 3)) - if(!tryDrill(x, y, z - 3)) - if(!tryDrill(x + 1, y, z - 3)) - if(!tryDrill(x + 2, y, z - 2)) - if(!tryDrill(x + 3, y, z - 1)) - - if(!tryDrill(x + 4, y, z)) - if(!tryDrill(x + 4, y, z + 1)) - if(!tryDrill(x + 4, y, z + 2)) - if(!tryDrill(x + 3, y, z + 2)) - if(!tryDrill(x + 3, y, z + 3)) - if(!tryDrill(x + 2, y, z + 3)) - if(!tryDrill(x + 2, y, z + 4)) - if(!tryDrill(x + 1, y, z + 4)) - if(!tryDrill(x, y, z + 4)) - if(!tryDrill(x - 1, y, z + 4)) - if(!tryDrill(x - 2, y, z + 4)) - if(!tryDrill(x - 2, y, z + 3)) - if(!tryDrill(x - 3, y, z + 3)) - if(!tryDrill(x - 3, y, z + 2)) - if(!tryDrill(x - 4, y, z + 2)) - if(!tryDrill(x - 4, y, z + 1)) - if(!tryDrill(x - 4, y, z)) - if(!tryDrill(x - 4, y, z - 1)) - if(!tryDrill(x - 4, y, z - 2)) - if(!tryDrill(x - 3, y, z - 2)) - if(!tryDrill(x - 3, y, z - 3)) - if(!tryDrill(x - 2, y, z - 3)) - if(!tryDrill(x - 2, y, z - 4)) - if(!tryDrill(x - 1, y, z - 4)) - if(!tryDrill(x, y, z - 4)) - if(!tryDrill(x + 1, y, z - 4)) - if(!tryDrill(x + 2, y, z - 4)) - if(!tryDrill(x + 2, y, z - 3)) - if(!tryDrill(x + 3, y, z - 3)) - if(!tryDrill(x + 3, y, z - 2)) - if(!tryDrill(x + 4, y, z - 2)) - if(!tryDrill(x + 4, y, z - 1)) - - if(!tryDrill(x, y - 1, z)) - return false; - - return true; - } - - /** - * returns true if there has been a successful mining operation returns - * false if no block could be mined, as it is either air or unmineable - */ - public boolean tryDrill(int x, int y, int z) { - BlockPos pos = new BlockPos(x, y, z); - if(world.getBlockState(pos).getBlock() == Blocks.AIR || !isMinableOreo(pos)) - return false; - if(world.getBlockState(pos).getMaterial().isLiquid()) { - world.destroyBlock(pos, false); - return false; - } - - IBlockState b = world.getBlockState(pos); - ItemStack stack = new ItemStack(b.getBlock().getItemDropped(b, rand, fortune), b.getBlock().quantityDropped(b, fortune, rand), b.getBlock().damageDropped(b)); - - if(b.getBlock() instanceof IDrillInteraction) { - IDrillInteraction in = (IDrillInteraction) b.getBlock(); - if(!in.canBreak(world, x, y, z, b, this)){ - return true; //true because the block is still there and mining should continue - } - else{ - ItemStack sta = in.extractResource(world, x, y, z, b, this); - - if(sta != null && hasSpace(sta)) { - this.addItemToInventory(sta); - } - } - } - - // yup that worked - if(stack != null && stack.getItem() == null) { - world.destroyBlock(pos, false); - return true; - } - - if(hasSpace(stack)) { - this.addItemToInventory(stack); - world.destroyBlock(pos, false); - return true; - } - - return true; - } - - public boolean hasSpace(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 1; i < 10; i++) { - if(inventory.getStackInSlot(i).isEmpty()) - return true; - } - - st.setCount(1); - - boolean flag = true; - for(int i = 0; i < stack.getCount(); i++) { - if(!canAddItemToArray(st, inventory)) - flag = false; - } - - return flag; - } - - public void addItemToInventory(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return; - - int size = st.getCount(); - st.setCount(1); - - for(int i = 0; i < size; i++) - canAddItemToArray(st, inventory); - - } - - public boolean canAddItemToArray(ItemStack stack, ItemStackHandler array) { - - ItemStack st = stack.copy(); - - if(stack == null || st == null) - return true; - - for(int i = 1; i < 10; i++) { - - if(!array.getStackInSlot(i).isEmpty()) { - ItemStack sta = array.getStackInSlot(i).copy(); - - if(stack == null || st == null) - return true; - if(sta != null && sta.getItem() == st.getItem() && sta.getCount() < st.getMaxStackSize()) { - array.getStackInSlot(i).grow(1); - return true; - } - } - } - - for(int i = 1; i < 10; i++) { - if(array.getStackInSlot(i).isEmpty()) { - array.setStackInSlot(i, stack.copy()); - return true; - } - } - - return false; - } - - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing); - } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory) : super.getCapability(capability, facing); - } - - @Override - public DrillType getDrillTier(){ - return DrillType.INDUSTRIAL; - } - - @Override - public int getDrillRating(){ - return 50; - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index 34efb55079..cfa07c4888 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -135,7 +135,7 @@ private void allocateMissiles() { entList.clear(); jammed = false; - List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(pos.getX() + 0.5 - WeaponConfig.radarRange, 0D, pos.getZ() + 0.5 - WeaponConfig.radarRange, pos.getX() + 0.5 + WeaponConfig.radarRange, 5000D, pos.getZ() + 0.5 + WeaponConfig.radarRange)); + List list = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(pos.getX() + 0.5 - WeaponConfig.radarRange, 0D, pos.getZ() + 0.5 - WeaponConfig.radarRange, pos.getX() + 0.5 + WeaponConfig.radarRange, 10000, pos.getZ() + 0.5 + WeaponConfig.radarRange)); for(Entity e : list) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java index d08798f8bc..417d9b35b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java @@ -244,7 +244,7 @@ public void update() { progress += heat / recipeHeat; - if(this.progress == TileEntityMachineReactor.processingSpeed) { + if(this.progress >= TileEntityMachineReactor.processingSpeed) { this.progress = 0; this.charge--; this.processItem(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java index e7ccd46f86..579e943760 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java @@ -778,7 +778,7 @@ private void explode() { } } - world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); + world.setBlockState(pos, ModBlocks.sellafield_core.getStateFromMeta(world.rand.nextInt(4))); if(MobConfig.enableElementals) { List players = world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5).grow(100, 100, 100)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 150815f9ce..177cf559bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -1,9 +1,13 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; + import com.hbm.forgefluid.FFUtils; import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.ITankPacketAcceptor; import com.hbm.items.ModItems; +import com.hbm.inventory.EngineRecipes; +import com.hbm.inventory.EngineRecipes.FuelGrade; import com.hbm.lib.Library; import com.hbm.lib.ForgeDirection; import com.hbm.packet.AuxElectricityPacket; @@ -46,9 +50,13 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem public boolean needsUpdate = true; public int pistonCount = 0; - //private static final int[] slots_top = new int[] { 0 }; - //private static final int[] slots_bottom = new int[] { 1, 2 }; - //private static final int[] slots_side = new int[] { 2 }; + public static HashMap fuelEfficiency = new HashMap(); + static { + fuelEfficiency.put(FuelGrade.LOW, 0.75D); + fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D); + fuelEfficiency.put(FuelGrade.HIGH, 0.25D); + fuelEfficiency.put(FuelGrade.AERO, 0.00D); + } private String customName; @@ -161,23 +169,18 @@ public boolean hasAcceptableFuel() { return getHEFromFuel() > 0; } - public int getHEFromFuel() { - if(tankType == ModForgeFluids.smear) - return 50; - if(tankType == ModForgeFluids.heatingoil) - return 75; - if(tankType == ModForgeFluids.diesel) - return 225; - if(tankType == ModForgeFluids.kerosene) - return 300; - if(tankType == ModForgeFluids.reclaimed) - return 100; - if(tankType == ModForgeFluids.petroil) - return 125; - if(tankType == ModForgeFluids.biofuel) - return 200; - if(tankType == ModForgeFluids.nitan) - return 2500; + public long getHEFromFuel() { + if(tank == null || tank.getFluid() == null) return 0; + return getHEFromFuel(tank.getFluid().getFluid()); + } + + public static long getHEFromFuel(Fluid type) { + if(EngineRecipes.hasFuelRecipe(type)) { + FuelGrade grade = EngineRecipes.getFuelGrade(type); + double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; + return (long) (EngineRecipes.getEnergy(type) / 1000L * efficiency); + } + return 0; } @@ -195,7 +198,7 @@ public void generate() { if (soundCycle >= 3) soundCycle = 0; - tank.drain(this.pistonCount * 5, true); + tank.drain(this.pistonCount, true); needsUpdate = true; power += getHEFromFuel() * Math.pow(this.pistonCount, 1.15D); @@ -219,7 +222,11 @@ private boolean isValidFluidForTank(int tank, FluidStack stack) { if(stack == null || this.tank == null) return false; Fluid f = stack.getFluid(); - return this.tank.getFluid() != null ? f == this.tank.getFluid().getFluid() :(f == ModForgeFluids.smear || f == ModForgeFluids.heatingoil || f == ModForgeFluids.diesel || f == ModForgeFluids.kerosene || f == ModForgeFluids.reclaimed || f == ModForgeFluids.petroil || f == ModForgeFluids.biofuel || f == ModForgeFluids.nitan); + + if(this.tank.getFluid() != null) + return f == this.tank.getFluid().getFluid(); + + return getHEFromFuel(f) > 0; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java index afd51ea24e..95ea34c399 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java @@ -109,6 +109,24 @@ public void update() { } } } + + @Override + public void onChunkUnload() { + if(!world.isRemote) { + int id = Arrays.asList(TrackType.values()).indexOf(getCurrentType()); + PacketDispatcher.wrapper.sendToDimension(new TESirenPacket(pos.getX(), pos.getY(), pos.getZ(), id, false), world.provider.getDimension()); + } + } + + @Override + public void invalidate() { + if(!world.isRemote) { + int id = Arrays.asList(TrackType.values()).indexOf(getCurrentType()); + PacketDispatcher.wrapper.sendToDimension(new TESirenPacket(pos.getX(), pos.getY(), pos.getZ(), id, false), world.provider.getDimension()); + } + ControlEventSystem.get(world).removeControllable(this); + super.invalidate(); + } public TrackType getCurrentType() { if(inventory.getStackInSlot(0).getItem() instanceof ItemCassette) { @@ -155,10 +173,4 @@ public void validate(){ super.validate(); ControlEventSystem.get(world).addControllable(this); } - - @Override - public void invalidate(){ - super.invalidate(); - ControlEventSystem.get(world).removeControllable(this); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 98bd86165c..a59bc299cf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -5,10 +5,10 @@ import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.forgefluid.FFUtils; -import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.ITankPacketAcceptor; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.inventory.EngineRecipes; import com.hbm.lib.Library; import com.hbm.lib.ForgeDirection; import com.hbm.lib.ModDamageSource; @@ -126,24 +126,16 @@ public long getPowerScaled(long i) { @Override public void update() { if(!world.isRemote) { - int nrg = 1250; - int cnsp = 1; afterburner = 0; if(!inventory.getStackInSlot(2).isEmpty()) { if(inventory.getStackInSlot(2).getItem() == ModItems.upgrade_afterburn_1) { - nrg *= 2; - cnsp *= 2.5; afterburner = 1; } if(inventory.getStackInSlot(2).getItem() == ModItems.upgrade_afterburn_2) { - nrg *= 3; - cnsp *= 5; afterburner = 2; } if(inventory.getStackInSlot(2).getItem() == ModItems.upgrade_afterburn_3) { - nrg *= 4; - cnsp *= 7.5; afterburner = 3; } } @@ -153,6 +145,16 @@ public void update() { if (needsUpdate) { needsUpdate = false; } + + long burnValue = 0; + int amount = 1 + this.afterburner; + + if(tank.getFluid() != null && EngineRecipes.isAero(tank.getFluid().getFluid())) { + burnValue = EngineRecipes.getEnergy(tank.getFluid().getFluid()) / 1_000; + } + + int amountToBurn = Math.min(amount, tank.getFluidAmount()); + this.sendTurboPower(); power = Library.chargeItemsFromTE(inventory, 3, power, maxPower); @@ -165,11 +167,11 @@ public void update() { isRunning = false; - if(tank.getFluidAmount() >= cnsp) { - tank.drain(cnsp, true); + if(amountToBurn > 0) { + tank.drain(amountToBurn, true); needsUpdate = true; - power += nrg; - + power += burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4)); + isRunning = true; if(power > maxPower) @@ -371,7 +373,7 @@ protected boolean inputValidForTank(int tank, int slot){ private boolean isValidFluid(FluidStack stack) { if(stack == null) return false; - return stack.getFluid() == ModForgeFluids.kerosene; + return EngineRecipes.isAero(stack.getFluid()); } protected void sendTurboPower() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java index 5df507ac04..5c1e743c75 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java @@ -157,9 +157,9 @@ public boolean tryOpen() { } public boolean tryToggle(){ - if(state == DoorState.CLOSED && isHatchFree()) { + if(state == DoorState.CLOSED) { return tryOpen(); - } else if(state == DoorState.OPEN) { + } else if(state == DoorState.OPEN && isHatchFree()) { return tryClose(); } return false; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 2205670a8f..fad76a5f18 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -113,7 +113,7 @@ public void update() { // drill is jammed // warning 2, yellow: drill has reached max depth - for(int i = pos.getY() - 1; i > pos.getY() - 1 - 100; i--) { + for(int i = pos.getY() - 1; i > pos.getY() - 1 - 250; i--) { Block b = world.getBlockState(new BlockPos(pos.getX(), i, pos.getZ())).getBlock(); if(b == ModBlocks.oil_pipe) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index abcef248f9..bb14e90acb 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -45,7 +45,6 @@ import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.CapabilityItemHandler; public class TileEntityMachineGasFlare extends TileEntityMachineBase implements ITickable, IEnergyGenerator, IFluidHandler, ITankPacketAcceptor, IGUIProvider, IControlReceiver { @@ -192,7 +191,16 @@ public void networkUnpack(NBTTagCompound nbt) { this.tankType = FluidRegistry.getFluid(nbt.getString("tankType")); } + @Override + public int[] getAccessibleSlotsFromSide(EnumFacing e) { + return new int[] {0, 1, 2, 3, 4, 5}; + } + void setupTanks() { + if(inventory.getSlots() < 5){ + inventory = this.getNewInventory(6, 64); + } + ItemStack slotId = inventory.getStackInSlot(3); Item itemId = slotId.getItem(); if (itemId == ModItems.forge_fluid_identifier) { @@ -269,9 +277,7 @@ public void recievePacket(NBTTagCompound[] tags) { @Override public boolean hasCapability(Capability capability, EnumFacing facing) { - if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY){ - return true; - } else if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){ + if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){ return true; } else { return super.hasCapability(capability, facing); @@ -280,9 +286,7 @@ public boolean hasCapability(Capability capability, EnumFacing facing) { @Override public T getCapability(Capability capability, EnumFacing facing) { - if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY){ - return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory); - } else if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){ + if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){ return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(this); } else { return super.getCapability(capability, facing); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index 9c535cf98e..4204ab32d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -91,10 +91,10 @@ public static double getFuelHeatProvision(World world) { /** * Simple integer that decides how tall the structure is. * @param world - * @return [0;15] + * @return [0;250] */ public static int getColumnHeight(World world) { - return MathHelper.clamp(shittyWorkaroundParseInt(world.getGameRules().getString(KEY_COLUMN_HEIGHT), 4), 1, 16) - 1; + return MathHelper.clamp(shittyWorkaroundParseInt(world.getGameRules().getString(KEY_COLUMN_HEIGHT), 4), 1, 250) - 1; } /** diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 0a1538fb42..5fc8966a70 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -1,8 +1,13 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.Map; -import com.hbm.inventory.control_panel.*; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; @@ -19,6 +24,10 @@ import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.main.AdvancementManager; +import com.hbm.inventory.control_panel.IControllable; +import com.hbm.inventory.control_panel.ControlEventSystem; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.util.I18nUtil; @@ -97,7 +106,7 @@ public boolean shouldUpdate() { } public int trackingRange() { - return 25; + return 150; } @Override @@ -123,7 +132,7 @@ private void jump(){ if(!falling){ // linear rise if(this.heat > MachineConfig.rbmkJumpTemp){ - if(this.jumpheight > 0 || world.rand.nextInt((int)(25D*maxHeat()/(this.heat-MachineConfig.rbmkJumpTemp+200D))) == 0){ + if(this.jumpheight > 0 || world.rand.nextInt((int)(25D*maxHeat()/(this.heat-MachineConfig.rbmkJumpTemp+200D))+1) == 0){ double change = (this.heat-MachineConfig.rbmkJumpTemp)*0.0002D; double heightLimit = (this.heat-MachineConfig.rbmkJumpTemp)*0.002D; @@ -410,7 +419,7 @@ protected void standardMelt(int reduce) { protected void spawnDebris(DebrisType type) { - EntityRBMKDebris debris = new EntityRBMKDebris(world, pos.getX() + 0.5D, pos.getY() + 4D, pos.getZ() + 0.5D, type); + EntityRBMKDebris debris = new EntityRBMKDebris(world, pos.getX() + 0.5D, pos.getY() + TileEntityRBMKBase.rbmkHeight, pos.getZ() + 0.5D, type); debris.motionX = world.rand.nextGaussian() * 0.25D; debris.motionZ = world.rand.nextGaussian() * 0.25D; debris.motionY = 0.5D + world.rand.nextDouble() * 1.5D; @@ -496,10 +505,10 @@ public void meltdown() { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "rbmkmush"); data.setFloat("scale", smallDim); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, avgX + 0.5, pos.getY() + 3, avgZ + 0.5), new TargetPoint(world.provider.getDimension(), avgX + 0.5, pos.getY() + 3, avgZ + 0.5, 250)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, avgX + 0.5, pos.getY() + TileEntityRBMKBase.rbmkHeight, avgZ + 0.5), new TargetPoint(world.provider.getDimension(), avgX + 0.5, pos.getY() + TileEntityRBMKBase.rbmkHeight, avgZ + 0.5, 250)); MainRegistry.proxy.effectNT(data); - world.playSound(null, avgX + 0.5, pos.getY() + 1, avgZ + 0.5, HBMSoundHandler.rbmk_explosion, SoundCategory.BLOCKS, 50.0F, 1.0F); + world.playSound(null, avgX + 0.5, pos.getY() + TileEntityRBMKBase.rbmkHeight>>1, avgZ + 0.5, HBMSoundHandler.rbmk_explosion, SoundCategory.BLOCKS, 50.0F, 1.0F); List list = world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(pos.getX() - 50 + 0.5, pos.getY() - 50 + 0.5, pos.getZ() - 50 + 0.5, pos.getX() + 50 + 0.5, pos.getY() + 50 + 0.5, pos.getZ() + 50 + 0.5)); @@ -511,7 +520,7 @@ public void meltdown() { EntitySpear spear = new EntitySpear(world); spear.posX = avgX + 0.5; spear.posZ = avgZ + 0.5; - spear.posY = pos.getY() + 100; + spear.posY = pos.getY() + TileEntityRBMKBase.rbmkHeight + 100; world.spawnEntity(spear); } @@ -554,11 +563,16 @@ public static List getFancyStats(NBTTagCompound nbt) { @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 17, pos.getZ() + 1); + return new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + TileEntityRBMKBase.rbmkHeight + 10, pos.getZ() + 1); } - // control panel + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + // control panel @Override public Map getQueryData() { Map data = new HashMap<>(); @@ -591,5 +605,4 @@ public BlockPos getControlPos() { public World getControlWorld() { return getWorld(); } - } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 36be2d4dd3..6489ca3786 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; @@ -8,11 +10,12 @@ import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.ITankPacketAcceptor; -import com.hbm.inventory.control_panel.*; -import com.hbm.main.MainRegistry; import com.hbm.packet.FluidTankPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.render.amlfrom1710.Vec3; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; +import com.hbm.inventory.control_panel.DataValueString; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.player.EntityPlayer; @@ -304,7 +307,6 @@ public T getCapability(Capability capability, EnumFacing facing){ } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -315,5 +317,4 @@ public Map getQueryData() { return data; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index f6bdb7b451..6a5bce4081 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -91,6 +91,8 @@ private void rescan() { columns[index] = new RBMKColumn(rbmk.getConsoleType(), rbmk.getNBTForConsole()); columns[index].data.setDouble("heat", rbmk.heat); columns[index].data.setDouble("maxHeat", rbmk.maxHeat()); + columns[index].data.setDouble("realSimWater", rbmk.water); + columns[index].data.setDouble("realSimSteam", rbmk.steam); if(rbmk.isModerated()) columns[index].data.setBoolean("moderated", true); //false is the default anyway and not setting it when we don't need to reduces cruft } else { @@ -636,8 +638,8 @@ public Object[] getColumnData(Context context, Arguments args) { LinkedHashMap data_table = new LinkedHashMap<>(); data_table.put("type", column.getConsoleType().name()); data_table.put("hullTemp", column_data.getDouble("heat")); - data_table.put("realSimWater", column_data.getDouble("water")); - data_table.put("realSimSteam", column_data.getDouble("steam")); + data_table.put("realSimWater", column_data.getDouble("realSimWater")); + data_table.put("realSimSteam", column_data.getDouble("realSimSteam")); data_table.put("moderated", column_data.getBoolean("moderated")); data_table.put("level", column_data.getDouble("level")); data_table.put("color", column_data.getShort("color")); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 851c4da349..73bd672628 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -1,20 +1,15 @@ package com.hbm.tileentity.machine.rbmk; -import com.google.common.collect.Lists; -import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import java.util.Map; -import com.hbm.inventory.control_panel.ControlEvent; import com.hbm.inventory.control_panel.DataValue; import com.hbm.inventory.control_panel.DataValueFloat; +import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; + import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import java.util.Collections; -import java.util.List; -import java.util.Map; - public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase { @SideOnly(Side.CLIENT) @@ -126,7 +121,6 @@ public NBTTagCompound getNBTForConsole() { } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -135,5 +129,4 @@ public Map getQueryData() { return data; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index 5843659e2f..93ee187d43 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -1,21 +1,14 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.interfaces.IControlReceiver; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; import com.hbm.render.amlfrom1710.Vec3; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import java.util.Collections; -import java.util.List; -import java.util.Map; - public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements IControlReceiver { public RBMKFunction function = RBMKFunction.LINEAR; @@ -135,5 +128,4 @@ public static enum RBMKFunction { public ColumnType getConsoleType() { return ColumnType.CONTROL_AUTO; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index b8841829c3..8bdaf0faf2 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -1,24 +1,20 @@ package com.hbm.tileentity.machine.rbmk; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import com.hbm.blocks.machine.rbmk.RBMKControl; import com.hbm.interfaces.IControlReceiver; +import com.hbm.render.amlfrom1710.Vec3; +import net.minecraft.util.math.BlockPos; import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.ControlEventSystem; import com.hbm.inventory.control_panel.DataValue; import com.hbm.inventory.control_panel.DataValueFloat; -import com.hbm.main.MainRegistry; -import com.hbm.render.amlfrom1710.Vec3; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; public class TileEntityRBMKControlManual extends TileEntityRBMKControl implements IControlReceiver { @@ -144,7 +140,6 @@ public NBTTagCompound getNBTForConsole() { } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -177,5 +172,4 @@ public List getInEvents() { events.add("rbmk_ctrl_set_color"); return events; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 0c0e735059..651b2ea180 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -1,12 +1,13 @@ package com.hbm.tileentity.machine.rbmk; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; -import com.hbm.inventory.control_panel.DataValueFloat; +import java.util.Map; + import com.hbm.lib.Library; import com.hbm.lib.HBMSoundHandler; import com.hbm.forgefluid.ModForgeFluids; import com.hbm.interfaces.ITankPacketAcceptor; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.Entity; @@ -17,7 +18,6 @@ import net.minecraft.util.EnumParticleTypes; import net.minecraft.init.SoundEvents; import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; @@ -26,9 +26,7 @@ import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.common.capabilities.Capability; -import java.util.Collections; import java.util.List; -import java.util.Map; public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidHandler, ITankPacketAcceptor { @@ -198,7 +196,6 @@ public T getCapability(Capability capability, EnumFacing facing){ } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -207,5 +204,4 @@ public Map getQueryData() { return data; } - } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCraneConsole.java index 1f47eace2c..268b54af11 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCraneConsole.java @@ -1,17 +1,23 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.*; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.HashMap; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.capability.HbmCapability; import com.hbm.capability.HbmCapability.IHBMData; import com.hbm.handler.HbmKeybinds.EnumKeybind; -import com.hbm.inventory.control_panel.*; import com.hbm.items.machine.ItemRBMKRod; -import com.hbm.main.MainRegistry; import com.hbm.packet.NBTPacket; import com.hbm.lib.ForgeDirection; +import com.hbm.inventory.control_panel.IControllable; +import com.hbm.inventory.control_panel.ControlEventSystem; +import com.hbm.inventory.control_panel.ControlEvent; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.machine.rbmk.IRBMKLoadable; @@ -115,8 +121,8 @@ public void update() { if(!world.isRemote) { ControlEventSystem.get(world).broadcastToSubscribed(this, ControlEvent.newEvent("rbmk_crane_load")); - if (this.canTargetInteract()) { - if (inventory.getStackInSlot(0).isEmpty()) { + if(this.canTargetInteract()) { + if(inventory.getStackInSlot(0).isEmpty()) { IRBMKLoadable column = getColumnAtPos(); inventory.setStackInSlot(0, column.provideNext()); column.unload(); @@ -127,6 +133,7 @@ public void update() { this.markDirty(); } } + } } else if(progress != 1) { @@ -208,7 +215,7 @@ else if(craneUp || craneDown || craneLeft || craneRight) //activating cooldown posLeft = MathHelper.clamp(posLeft, -spanR, spanL); if(!world.isRemote) { - + if(!inventory.getStackInSlot(0).isEmpty() && inventory.getStackInSlot(0).getItem() instanceof ItemRBMKRod) { this.loadedHeat = ItemRBMKRod.getHullHeat(inventory.getStackInSlot(0)); this.loadedEnrichment = ItemRBMKRod.getEnrichment(inventory.getStackInSlot(0)); @@ -272,7 +279,6 @@ public void processInput(boolean inputUP, boolean inputDOWN, boolean inputLEFT, .setVar("up", new DataValueFloat(up)).setVar("down", new DataValueFloat(down)) .setVar("left", new DataValueFloat(left)).setVar("right", new DataValueFloat(right))); } - } public boolean hasItemLoaded() { @@ -385,7 +391,7 @@ public void readFromNBT(NBTTagCompound nbt) { this.height = nbt.getInteger("height"); this.posFront = nbt.getDouble("posFront"); this.posLeft = nbt.getDouble("posLeft"); - + if(nbt.hasKey("inventory")) inventory.deserializeNBT(nbt.getCompoundTag("inventory")); super.readFromNBT(nbt); @@ -557,8 +563,8 @@ public Object[] getPos(Context context, Arguments args) { return new Object[] {"No crane found"}; } - // control panel + // control panel @Override public Map getQueryData() { Map data = new HashMap<>(); @@ -623,5 +629,4 @@ public BlockPos getControlPos() { public World getControlWorld() { return getWorld(); } - } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 1124f96015..a9d866775b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -1,10 +1,8 @@ package com.hbm.tileentity.machine.rbmk; +import java.util.Map; + import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; -import com.hbm.inventory.control_panel.DataValueFloat; -import com.hbm.inventory.control_panel.DataValueString; import com.hbm.items.ModItems; import com.hbm.blocks.BlockDummyable; import com.hbm.items.machine.ItemForgeFluidIdentifier; @@ -17,6 +15,9 @@ import com.hbm.lib.Library; import com.hbm.forgefluid.FFUtils; import com.hbm.forgefluid.ModForgeFluids; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; +import com.hbm.inventory.control_panel.DataValueString; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.player.EntityPlayer; @@ -36,9 +37,7 @@ import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Map; public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidHandler, ITankPacketAcceptor { @@ -268,7 +267,6 @@ public T getCapability(Capability capability, EnumFacing facing){ } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -280,5 +278,4 @@ public Map getQueryData() { return data; } - } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 331e877162..e15532c49f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.Collections; import java.util.HashMap; -import java.util.List; import java.util.Map; import com.hbm.blocks.ModBlocks; @@ -12,14 +10,13 @@ import com.hbm.interfaces.ITankPacketAcceptor; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RBMKOutgasserRecipes; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; -import com.hbm.inventory.control_panel.DataValueFloat; import com.hbm.util.ContaminationUtil; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.packet.FluidTankPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.init.Blocks; @@ -304,7 +301,6 @@ public void unload() { } // control panel - @Override public Map getQueryData() { Map data = super.getQueryData(); @@ -315,5 +311,4 @@ public Map getQueryData() { return data; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index bc704d8910..2f36c43a9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -9,14 +8,13 @@ import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.blocks.machine.rbmk.RBMKRod; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; -import com.hbm.inventory.control_panel.DataValueFloat; -import com.hbm.inventory.control_panel.DataValueString; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.lib.ForgeDirection; import com.hbm.saveddata.RadiationSavedData; +import com.hbm.inventory.control_panel.DataValue; +import com.hbm.inventory.control_panel.DataValueFloat; +import com.hbm.inventory.control_panel.DataValueString; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.IRBMKLoadable; @@ -436,5 +434,4 @@ public Map getQueryData() { return data; } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index c067ad37fb..1bca67df25 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -1,18 +1,11 @@ package com.hbm.tileentity.machine.rbmk; -import com.hbm.inventory.control_panel.ControlEvent; -import com.hbm.inventory.control_panel.DataValue; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.util.EnumFacing; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; - -import java.util.Collections; -import java.util.List; -import java.util.Map; public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java index 8135f431a1..72a03a7379 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.network; import com.hbm.tileentity.TileEntityMachineBase; + import net.minecraft.block.BlockHorizontal; import net.minecraft.block.state.IBlockState; import net.minecraft.nbt.NBTTagCompound; @@ -27,6 +28,7 @@ public TileEntityCraneBase(int scount, int slotlimit) { // for extra stability in case the screwdriver action doesn't get synced to // other clients private EnumFacing cachedOutputOverride = null; + @Override public void update() { if(hasWorld() && world.isRemote) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 86281afbfd..4bff793114 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.network; import api.hbm.block.IConveyorBelt; +import com.hbm.lib.Library; import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; @@ -8,11 +9,11 @@ import com.hbm.items.ModItems; import com.hbm.modules.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; + import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -22,34 +23,27 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nonnull; -public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGUIProvider, IControlReceiver, IItemHandlerModifiable { +public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { public boolean isWhitelist = false; - private ItemStack[] slots; private int tickCounter = 0; public ModulePatternMatcher matcher; + public static int[] allowed_slots = {9, 10, 11, 12, 13, 14, 15, 16,17}; + public TileEntityCraneExtractor() { super(20); this.matcher = new ModulePatternMatcher(9); - this.slots = new ItemStack[20]; - for (int i = 0; i < this.slots.length; i++) { - this.slots[i] = ItemStack.EMPTY; - } - - } - - @Override - public void setStackInSlot(int slot, @Nonnull ItemStack stack) { - if (slot >= 0 && slot < slots.length) { - slots[slot] = stack; - } } @Override @@ -57,24 +51,6 @@ public String getName() { return "container.craneExtractor"; } - @Override - public void setInventorySlotContents(int i, ItemStack stack) { - super.setInventorySlotContents(i, stack); - } - - @Override - public int getSlots() { - return this.slots.length; - } - @Override - public ItemStack getStackInSlot(int slot) { - return this.slots[slot]; - } - @Override - public int getSlotLimit(int slot) { - return 64; // Максимальное количество предметов в слоте, обычно 64 - } - @Override public void update() { super.update(); @@ -85,12 +61,12 @@ public void update() { int yCoord = pos.getY(); int zCoord = pos.getZ(); int delay = 20; - if(slots[19] != null && slots[19] != ItemStack.EMPTY){ - if(slots[19].getItem() == ModItems.upgrade_ejector_1) { + if(inventory.getStackInSlot(19) != null && inventory.getStackInSlot(19) != ItemStack.EMPTY){ + if(inventory.getStackInSlot(19).getItem() == ModItems.upgrade_ejector_1) { delay = 10; - } else if(slots[19].getItem() == ModItems.upgrade_ejector_2){ + } else if(inventory.getStackInSlot(19).getItem() == ModItems.upgrade_ejector_2){ delay = 5; - } else if(slots[19].getItem() == ModItems.upgrade_ejector_3){ + } else if(inventory.getStackInSlot(19).getItem() == ModItems.upgrade_ejector_3){ delay = 2; } } @@ -99,19 +75,18 @@ public void update() { tickCounter = 0; int amount = 1; - if(slots[18]!=null && slots[18] != ItemStack.EMPTY){ - if(slots[18].getItem() == ModItems.upgrade_stack_1) { + if(inventory.getStackInSlot(18)!=null && inventory.getStackInSlot(18) != ItemStack.EMPTY){ + if(inventory.getStackInSlot(18).getItem() == ModItems.upgrade_stack_1) { amount = 4; - } else if(slots[18].getItem() == ModItems.upgrade_stack_2){ + } else if(inventory.getStackInSlot(18).getItem() == ModItems.upgrade_stack_2){ amount = 16; - } else if(slots[18].getItem() == ModItems.upgrade_stack_3){ + } else if(inventory.getStackInSlot(18).getItem() == ModItems.upgrade_stack_3){ amount = 64; } } EnumFacing inputSide = getInputSide(); // note the switcheroo! EnumFacing outputSide = getOutputSide(); - TileEntity te1 = world.getTileEntity(pos); TileEntity te = world.getTileEntity(pos.offset(inputSide)); Block b = world.getBlockState(pos.offset(outputSide)).getBlock(); @@ -123,17 +98,15 @@ public void update() { access = masquerade(sided, EnumFacing.getFront(inputSide.getOpposite().ordinal())); } - boolean hasSent = false; - - if(b instanceof IConveyorBelt) { - - IConveyorBelt belt = (IConveyorBelt) b; + //collect matching items + if(te != null) { /* try to send items from a connected inv, if present */ - if(te instanceof IInventory) { + ICapabilityProvider capte = te; + if(capte.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, inputSide)) { + IItemHandler inv = capte.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, inputSide); - IInventory inv = (IInventory) te; - int size = access == null ? inv.getSizeInventory() : access.length; + int size = access == null ? inv.getSlots() : access.length; for(int i = 0; i < size; i++) { int index = access == null ? i : access[i]; @@ -144,42 +117,42 @@ public void update() { boolean match = this.matchesFilter(stack); if((isWhitelist && match) || (!isWhitelist && !match)) { - stack = stack.copy(); - int toSend = Math.min(amount, stack.getCount()); - inv.decrStackSize(index, toSend); - stack.setCount(toSend); - - EntityMovingItem moving = new EntityMovingItem(world); - Vec3d pos = new Vec3d(xCoord + 0.5 + outputSide.getDirectionVec().getX() * 0.55, yCoord + 0.5 + outputSide.getDirectionVec().getY() * 0.55, zCoord + 0.5 + outputSide.getDirectionVec().getZ() * 0.55); - Vec3d snap = belt.getClosestSnappingPosition(world, new BlockPos(xCoord + outputSide.getDirectionVec().getX(), yCoord + outputSide.getDirectionVec().getY(), zCoord + outputSide.getDirectionVec().getZ()), pos); - moving.setPosition(snap.x, snap.y, snap.z); - moving.setItemStack(stack); - world.spawnEntity(moving); - hasSent = true; - break; + int toSend = stack.getCount(); + + ItemStack excrated = inv.extractItem(i, toSend, true); + if(excrated != null && !excrated.isEmpty()){ + int fill = tryInsertItemCap(inventory, excrated.copy(), allowed_slots); + if(fill > 0 && fill <= toSend) inv.extractItem(i, fill, false); + } } } } } + } - /* if no item has been sent, send buffered items while ignoring the filter */ - if(!hasSent) { + //send buffered items + if(b instanceof IConveyorBelt) { + + IConveyorBelt belt = (IConveyorBelt) b; - for(int i = 9; i < 18; i++) { - ItemStack stack = slots[i]; + for(int index : allowed_slots) { + ItemStack stack = inventory.getStackInSlot(index); - if(stack != null & stack != ItemStack.EMPTY){ - stack = stack.copy(); + if(stack != ItemStack.EMPTY && (sided == null || sided.canExtractItem(index, stack, EnumFacing.getFront(inputSide.getOpposite().ordinal())))){ + + boolean match = this.matchesFilter(stack); + + if((isWhitelist && match) || (!isWhitelist && !match)) { int toSend = Math.min(amount, stack.getCount()); - IItemHandlerModifiable inv = (IItemHandlerModifiable) te1; - inv.extractItem(i, toSend, false); - stack.setCount(toSend); + ItemStack cStack = stack.copy(); + stack.shrink(toSend); + cStack.setCount(toSend); EntityMovingItem moving = new EntityMovingItem(world); Vec3d pos = new Vec3d(xCoord + 0.5 + outputSide.getDirectionVec().getX() * 0.55, yCoord + 0.5 + outputSide.getDirectionVec().getY() * 0.55, zCoord + 0.5 + outputSide.getDirectionVec().getZ() * 0.55); Vec3d snap = belt.getClosestSnappingPosition(world, new BlockPos(xCoord + outputSide.getDirectionVec().getX(), yCoord + outputSide.getDirectionVec().getY(), zCoord + outputSide.getDirectionVec().getZ()), pos); moving.setPosition(snap.x, snap.y, snap.z); - moving.setItemStack(stack); + moving.setItemStack(cStack); world.spawnEntity(moving); break; } @@ -195,6 +168,34 @@ public void update() { } } + //Unloads output into chests. Capability version. + public int tryInsertItemCap(IItemHandler chest, ItemStack stack, int[] allowed_slots) { + //Check if we have something to output + if(stack.isEmpty()) + return 0; + int filledAmount = 0; + for(int i : allowed_slots) { + + if(stack.isEmpty() || stack.getCount() < 1) + return filledAmount; + ItemStack outputStack = stack.copy(); + + ItemStack chestItem = chest.getStackInSlot(i).copy(); + if(chestItem.isEmpty() || (Library.areItemStacksCompatible(outputStack, chestItem, false) && chestItem.getCount() < chestItem.getMaxStackSize())) { + int fillAmount = Math.min(chestItem.getMaxStackSize()-chestItem.getCount(), outputStack.getCount()); + + outputStack.setCount(fillAmount); + + ItemStack rest = chest.insertItem(i, outputStack, true); + stack.shrink(fillAmount-rest.getCount()); + filledAmount += fillAmount-rest.getCount(); + chest.insertItem(i, outputStack, false); + } + } + + return filledAmount; + } + public static int[] masquerade(ISidedInventory sided, EnumFacing side) { if(sided instanceof TileEntityFurnace) { @@ -213,7 +214,7 @@ public void networkUnpack(NBTTagCompound nbt) { public boolean matchesFilter(ItemStack stack) { for(int i = 0; i < 9; i++) { - ItemStack filter = slots[i]; + ItemStack filter = inventory.getStackInSlot(i); if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { return true; @@ -222,45 +223,8 @@ public boolean matchesFilter(ItemStack stack) { return false; } - @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - if (this.isItemValidForSlot(slot, stack)) { - if (!simulate) { - this.slots[slot] = stack; - this.markDirty(); - } - return ItemStack.EMPTY; - } else { - return stack; - } - } - - @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - if (this.canExtractItem(slot, this.slots[slot], amount)) { - if (!simulate) { - ItemStack stack = this.slots[slot].splitStack(amount); - if (this.slots[slot].getCount() <= 0) { - this.slots[slot] = ItemStack.EMPTY; - } - this.markDirty(); - return stack; - } else { - ItemStack stack = this.slots[slot].copy(); - stack.setCount(amount); - return stack; - } - } else { - return ItemStack.EMPTY; - } - } - public void nextMode(int i) { - this.matcher.nextMode(world, slots[i], i); - } - - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + this.matcher.nextMode(world, inventory.getStackInSlot(i), i); } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index 7c31dd678a..57fcea67a5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -1,38 +1,36 @@ package com.hbm.tileentity.network; +import com.hbm.lib.Library; import com.hbm.blocks.network.CraneInserter; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.tileentity.machine.TileEntityLockableBase; + import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import java.util.Arrays; -public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider, IInventory { - public static final int[] access = new int[21]; - private ItemStack[] inventory; +public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider { + public TileEntityCraneInserter() { super(21); - this.inventory = new ItemStack[21]; - for (int i = 0; i < this.inventory.length; i++) { - this.inventory[i] = ItemStack.EMPTY; - } } @Override @@ -40,173 +38,79 @@ public String getName() { return "container.craneInserter"; } - @Override - public ITextComponent getDisplayName() { - return (this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName())); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) { - this.inventory[index] = stack; - if (stack != ItemStack.EMPTY && stack.getCount() > this.getInventoryStackLimit()) { - stack.setCount(this.getInventoryStackLimit()); - } - this.markDirty(); - } - @Override public void update() { super.update(); if(!world.isRemote) { - int posX = pos.getX(); - int posY = pos.getY(); - int posZ = pos.getZ(); - - EnumFacing outputSide = getOutputSide(); - BlockPos pos = new BlockPos(posX, posY, posZ); - TileEntity te = world.getTileEntity(pos.offset(outputSide)); - - int[] access = null; - - if(te instanceof ISidedInventory) { - ISidedInventory sided = (ISidedInventory) te; - //access = sided.getSlotsForFace(dir.getOpposite()); - access = CraneInserter.masquerade(sided, EnumFacing.getFront(outputSide.getOpposite().ordinal())); - } - - if(te instanceof IInventory) { - for(int i = 0; i < inventory.length; i++) { - - ItemStack stack = inventory[i]; - - if(!stack.isEmpty()) { - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); + tryFillTe(); - if(ret == ItemStack.EMPTY || ret.getCount() != stack.getCount()) { - inventory[i] = ret; - this.markDirty(); - return; - } - } - } - - //if the previous operation fails, repeat but use single items instead of the whole stack instead - //this should fix cases where the inserter can't insert into something that has a stack size limitation - for(int i = 0; i < inventory.length; i++) { - - ItemStack stack = inventory[i]; - - if(!stack.isEmpty()) { - stack = stack.copy(); - stack.setCount(1); - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); - - if(ret == ItemStack.EMPTY || ret.getCount() != stack.getCount()) { - this.decrStackSize(i, 1); - this.markDirty(); - return; - } - } - } - } } } - @Override - public int getSizeInventory() { - return this.inventory.length; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } + public void tryFillTe(){ + EnumFacing outputSide = getOutputSide(); + TileEntity te = world.getTileEntity(pos.offset(outputSide)); - @Override - public boolean isEmpty() { - for (ItemStack stack : this.inventory) { - if (!stack.isEmpty()) { - return false; - } - } - return true; - } - @Override - public ItemStack getStackInSlot(int index) { - return this.inventory[index]; - } - - @Override - public ItemStack decrStackSize(int index, int count) { - ItemStack stack = getStackInSlot(index); - if (stack != ItemStack.EMPTY) { - if (stack.getCount() > count) { - stack = stack.splitStack(count); - this.markDirty(); - } else { - this.setInventorySlotContents(index, ItemStack.EMPTY); + int meta = this.getBlockMetadata(); + if(te != null){ + ICapabilityProvider capte = te; + if(capte.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, outputSide)) { + IItemHandler cap = capte.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, outputSide); + + for(int i = 0; i < inventory.getSlots(); i++) { + tryFillContainerCap(cap, i); + } } } - return stack; - } - - @Override - public ItemStack removeStackFromSlot(int index) { - ItemStack stack = getStackInSlot(index); - if (!stack.isEmpty()) { - setInventorySlotContents(index, ItemStack.EMPTY); - } - return stack; - } - @Override - public boolean isUsableByPlayer(EntityPlayer player) { - return this.world.getTileEntity(this.pos) == this && player.getDistanceSq(this.pos.add(0.5D, 0.5D, 0.5D)) <= 64.0D; } - @Override - public int getField(int id) { - return 0; + public boolean tryFillTeDirect(ItemStack stack){ + return tryInsertItemCap(inventory, stack); } - @Override - public void setField(int id, int value) {} - - @Override - public int getFieldCount() { - return 0; - } + //Unloads output into chests. Capability version. + public boolean tryFillContainerCap(IItemHandler chest, int slot) { + //Check if we have something to output + if(inventory.getStackInSlot(slot).isEmpty()) + return false; - @Override - public void clear() { - for (int i = 0; i < this.inventory.length; ++i) { - this.inventory[i] = null; + for(int i = 0; i < chest.getSlots(); i++) { + + return tryInsertItemCap(chest, inventory.getStackInSlot(slot)); } - } - @Override - public boolean hasCustomName() { return false; } - @Override - public void openInventory(EntityPlayer player) {} - - @Override - public void closeInventory(EntityPlayer player) {} + //Unloads output into chests. Capability version. + public boolean tryInsertItemCap(IItemHandler chest, ItemStack stack) { + //Check if we have something to output + if(stack.isEmpty()) + return false; - public int[] getAccessibleSlotsFromSide(int side) { - return access; - } + for(int i = 0; i < chest.getSlots(); i++) { + + ItemStack outputStack = stack.copy(); + if(outputStack.isEmpty()) + return false; - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } + ItemStack chestItem = chest.getStackInSlot(i).copy(); + if(chestItem.isEmpty() || (Library.areItemStacksCompatible(outputStack, chestItem, false) && chestItem.getCount() < chestItem.getMaxStackSize())) { + int fillAmount = Math.min(chestItem.getMaxStackSize()-chestItem.getCount(), outputStack.getCount()); + + outputStack.setCount(fillAmount); + + ItemStack rest = chest.insertItem(i, outputStack, true); + if(fillAmount-rest.getCount() > 0 && fillAmount > 0){ + stack.shrink(fillAmount-rest.getCount()); + chest.insertItem(i, outputStack, false); + return true; + } + } + } - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterHeRf.java index 93e0f1dde4..690e04f98f 100644 --- a/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterHeRf.java @@ -13,7 +13,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.ITickable; +import net.minecraftforge.fml.common.Optional; +@Optional.InterfaceList({@Optional.Interface(iface = "cofh.redstoneflux.api.IEnergyProvider", modid = "redstoneflux")}) public class TileEntityConverterHeRf extends TileEntityLoadedBase implements ITickable, IEnergyConnector, IEnergyProvider, IEnergyStorage { //Thanks to the great people of Fusion Warfare for helping me with the original implementation of the RF energy API @@ -90,9 +92,9 @@ public long transferPower(long power) { } recursionBrake = false; - lastTransfer = totalTransferred / GeneralConfig.rfConversionRate; + lastTransfer = (long)(totalTransferred / (float)GeneralConfig.rfConversionRate); - return power - (totalTransferred / GeneralConfig.rfConversionRate); + return power - (long)(totalTransferred / (float)GeneralConfig.rfConversionRate); } @Override @@ -102,7 +104,7 @@ public long getPower() { @Override public long getMaxPower() { - return Integer.MAX_VALUE / GeneralConfig.rfConversionRate; + return (long)(Integer.MAX_VALUE / (float)GeneralConfig.rfConversionRate); } private long lastTransfer = 0; @@ -140,7 +142,7 @@ public int getEnergyStored(){ @Override public int extractEnergy(int maxExtract, boolean simulate){ - return maxExtract; + return 0; } @Override diff --git a/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterRfHe.java index 60ee959ee2..429f0f6908 100644 --- a/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/energy/TileEntityConverterRfHe.java @@ -10,7 +10,9 @@ import net.minecraftforge.energy.CapabilityEnergy; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.common.Optional; +@Optional.InterfaceList({@Optional.Interface(iface = "cofh.redstoneflux.api.IEnergyReceiver", modid = "redstoneflux")}) public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEnergyGenerator, IEnergyReceiver, IEnergyStorage { private long subBuffer; @@ -58,7 +60,7 @@ public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) { recursionBrake = true; - long capacity = maxReceive / GeneralConfig.rfConversionRate; + long capacity = (long)(maxReceive / (float)GeneralConfig.rfConversionRate); subBuffer = capacity; this.sendPower(world, pos); @@ -104,7 +106,7 @@ public int receiveEnergy(int maxReceive, boolean simulate){ recursionBrake = true; - long capacity = maxReceive / GeneralConfig.rfConversionRate; + long capacity = (long)(maxReceive / (float)GeneralConfig.rfConversionRate); subBuffer = capacity; this.sendPower(world, pos); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java index b9e21749fd..074c48ffd8 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java @@ -67,9 +67,11 @@ public void update() { if (target != null) { Vec3d turret = new Vec3d(target.posX - (pos.getX() + 0.5), target.posY + target.getEyeHeight() - (pos.getY() + 1), target.posZ - (pos.getZ() + 0.5)); - if (this instanceof TileEntityTurretCIWS || this instanceof TileEntityTurretSpitfire || this instanceof TileEntityTurretCheapo) { - Vec3d targetPos = target.getEntityBoundingBox().getCenter(); - turret = new Vec3d(targetPos.x - (pos.getX() + 0.5), targetPos.y - (pos.getY() + 1.5), targetPos.z - (pos.getZ() + 0.5)); + if (this instanceof TileEntityTurretCIWS || this instanceof TileEntityTurretSpitfire || this instanceof TileEntityTurretCheapo && target.getEntityBoundingBox() != null) { + try{ + Vec3d targetPos = target.getEntityBoundingBox().getCenter(); + turret = new Vec3d(targetPos.x - (pos.getX() + 0.5), targetPos.y - (pos.getY() + 1.5), targetPos.z - (pos.getZ() + 0.5)); + } catch(Throwable t){} } oldRotationPitch = rotationPitch; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 1999141bcf..8f883ae617 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -85,6 +85,8 @@ public void receiveControl(NBTTagCompound data){ public boolean targetMobs = true; public boolean targetMachines = true; + public boolean manualOverride = false; + public Entity target; public Vec3d tPos; @@ -140,12 +142,14 @@ public void update(){ if(!world.isRemote) { this.updateConnections(); + //Target is dead - start searching if(this.target != null && !target.isEntityAlive()) { this.target = null; this.stattrak++; } } + //check if we can see target if(target != null) { if(!this.entityInLOS(this.target)) { this.target = null; @@ -156,7 +160,7 @@ public void update(){ if(target != null) { this.tPos = this.getEntityPos(target); - } else { + } else if(!manualOverride){ this.tPos = null; } } @@ -173,7 +177,7 @@ public void update(){ if(!world.isRemote) { - if(this.target != null && !target.isEntityAlive()) { + if(this.target != null && !target.isEntityAlive() && !manualOverride) { this.target = null; this.tPos = null; this.stattrak++; @@ -187,7 +191,7 @@ public void update(){ if(searchTimer <= 0) { searchTimer = this.getDecetorInterval(); - if(this.target == null) + if(this.target == null && !manualOverride) this.seekNewTarget(); } } else { @@ -199,7 +203,7 @@ public void update(){ } this.power = Library.chargeTEFromItems(inventory, 10, this.power, this.getMaxPower()); - + manualOverride = false; networkPack(); } else { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java index b0d2eee7ca..a0b80362f6 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java @@ -125,7 +125,7 @@ public void update(){ public void updateFiringTick(){ timer++; - if(loaded > 0 && this.tPos != null) { + if(loaded > 0 && this.target != null) { this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), HBMSoundHandler.howard_fire, SoundCategory.BLOCKS, 4.0F, 0.9F + world.rand.nextFloat() * 0.3F); this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), HBMSoundHandler.howard_fire, SoundCategory.BLOCKS, 4.0F, 1F + world.rand.nextFloat() * 0.3F); diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index a202bee187..63ecddd64f 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -9,6 +9,16 @@ import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.mob.EntityQuackos; +import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityExplosiveBeam; +import com.hbm.entity.projectile.EntityMiniMIRV; +import com.hbm.entity.projectile.EntityMiniNuke; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.effect.EntityBlackHole; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.grenade.EntityGrenadeASchrab; +import com.hbm.entity.grenade.EntityGrenadeNuclear; +import com.hbm.entity.missile.EntityMIRV; import com.hbm.handler.ArmorUtil; import com.hbm.handler.HazmatRegistry; import com.hbm.interfaces.IRadiationImmune; @@ -31,7 +41,10 @@ import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.passive.EntityZombieHorse; import net.minecraft.entity.passive.EntitySkeletonHorse; +import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.item.EntityArmorStand; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.item.ItemStack; @@ -265,9 +278,9 @@ public static double getActualPlayerRads(EntityLivingBase entity) { } public static double getPlayerRads(EntityLivingBase entity) { - float rads = HbmLivingProps.getRadBuf(entity); + double rads = HbmLivingProps.getRadBuf(entity); if(entity instanceof EntityPlayer) - rads = rads + HbmLivingProps.getNeutron((EntityPlayer)entity)*20F; + rads = rads + HbmLivingProps.getNeutron((EntityPlayer)entity)*20; return (double)rads; } @@ -433,6 +446,7 @@ public static boolean isRadImmune(Entity e) { e instanceof EntityMooshroom || e instanceof EntityZombieHorse || e instanceof EntitySkeletonHorse || + e instanceof EntityArmorStand || e instanceof IRadiationImmune || checkConfigEntityImmunity(e); } @@ -558,21 +572,27 @@ public static float getDigamma(Entity e) { } public static void radiate(World world, double x, double y, double z, double range, float rad3d) { - radiate(world, x, y, z, range, rad3d, 0, 0); + radiate(world, x, y, z, range, rad3d, 0, 0, 0, 0); } - public static void radiate(World world, double x, double y, double z, double range, float rad3d, float fire3d) { - radiate(world, x, y, z, range, rad3d, 0, fire3d); + public static void radiate(World world, double x, double y, double z, double range, float rad3d, float dig3d, float fire3d) { + radiate(world, x, y, z, range, rad3d, dig3d, fire3d, 0, 0); } - public static void radiate(World world, double x, double y, double z, double range, float rad3d, float dig3d, float fire3d) { - - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(x, y, z, x, y, z).grow(range, range, range)); + public static void radiate(World world, double x, double y, double z, double range, float rad3d, float dig3d, float fire3d, float blast3d) { + radiate(world, x, y, z, range, rad3d, dig3d, fire3d, blast3d, range); + } + + public static void radiate(World world, double x, double y, double z, double range, float rad3d, float dig3d, float fire3d, float blast3d, double blastRange) { + List entities = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(x-range, y-range, z-range, x+range, y+range, z+range)); - for(EntityLivingBase e : entities) { - + for(Entity e : entities) { + if(isExplosionExempt(e)) continue; + Vec3 vec = Vec3.createVectorHelper(e.posX - x, (e.posY + e.getEyeHeight()) - y, e.posZ - z); double len = vec.lengthVector(); + + if(len > range) continue; vec = vec.normalize(); float res = 0; @@ -582,48 +602,82 @@ public static void radiate(World world, double x, double y, double z, double ran int ix = (int)Math.floor(x + vec.xCoord * i); int iy = (int)Math.floor(y + vec.yCoord * i); int iz = (int)Math.floor(z + vec.zCoord * i); - res += world.getBlockState(new BlockPos(ix, iy, iz)).getBlock().getExplosionResistance(null); } + boolean isLiving = e instanceof EntityLivingBase; if(res < 1) res = 1; - if(rad3d > 0){ + if(isLiving && rad3d > 0){ float eRads = rad3d; - eRads /= (float)res; - eRads /= (float)(len * len); + eRads /= (float)(len * len * Math.sqrt(res)); - contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); } - if(dig3d > 0){ + if(isLiving && dig3d > 0){ float eDig = dig3d; - eDig /= (float)res; - eDig /= (float)(len * len); + eDig /= (float)(len * len * len); - contaminate(e, HazardType.DIGAMMA, ContaminationType.DIGAMMA, eDig); + contaminate((EntityLivingBase)e, HazardType.DIGAMMA, ContaminationType.DIGAMMA, eDig); } - if(len < 15 && fire3d > 0) { + if(fire3d > 0.025) { float fireDmg = fire3d; - fireDmg /= (float)Math.sqrt(res); - fireDmg /= (float)(len * len); - e.attackEntityFrom(DamageSource.IN_FIRE, fireDmg); - } - - if(e instanceof EntityPlayer && len < 10) { - EntityPlayer p = (EntityPlayer) e; - - if(p.getHeldItemMainhand().getItem() == ModItems.marshmallow && p.getRNG().nextInt(100) == 0) { - p.setHeldItem(EnumHand.MAIN_HAND, new ItemStack(ModItems.marshmallow_roasted)); + fireDmg /= (float)(len * len * res * res); + if(fireDmg > 0.025){ + if(fireDmg > 0.1 && e instanceof EntityPlayer) { + EntityPlayer p = (EntityPlayer) e; + + if(p.getHeldItemMainhand().getItem() == ModItems.marshmallow && p.getRNG().nextInt((int)len) == 0) { + p.setHeldItem(EnumHand.MAIN_HAND, new ItemStack(ModItems.marshmallow_roasted)); + } + + if(p.getHeldItemOffhand().getItem() == ModItems.marshmallow && p.getRNG().nextInt((int)len) == 0) { + p.setHeldItem(EnumHand.OFF_HAND, new ItemStack(ModItems.marshmallow_roasted)); + } + } + e.attackEntityFrom(DamageSource.IN_FIRE, fireDmg); + e.setFire(5); } + } - if(p.getHeldItemOffhand().getItem() == ModItems.marshmallow && p.getRNG().nextInt(100) == 0) { - p.setHeldItem(EnumHand.OFF_HAND, new ItemStack(ModItems.marshmallow_roasted)); + if(len < blastRange && blast3d > 0.025) { + float blastDmg = blast3d; + blastDmg /= (float)(len * res * res); + if(blastDmg > 0.025){ + e.attackEntityFrom(ModDamageSource.nuclearBlast, blastDmg); } + e.motionX += vec.xCoord * 0.015D * blastDmg; + e.motionY += vec.yCoord * 0.015D * blastDmg; + e.motionZ += vec.zCoord * 0.015D * blastDmg; } } } + private static boolean isExplosionExempt(Entity e) { + + if (e instanceof EntityOcelot || + e instanceof EntityNukeTorex || + e instanceof EntityNukeExplosionMK5 || + e instanceof EntityMIRV || + e instanceof EntityMiniNuke || + e instanceof EntityMiniMIRV || + e instanceof EntityGrenadeASchrab || + e instanceof EntityGrenadeNuclear || + e instanceof EntityExplosiveBeam || + e instanceof EntityBulletBase || + (e instanceof EntityPlayer && + ArmorUtil.checkArmor((EntityPlayer) e, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots))) { + return true; + } + + if(e instanceof EntityPlayer && (((EntityPlayer)e).isCreative() || ((EntityPlayer)e).isSpectator())) { + return true; + } + + return false; + } + public static enum HazardType { MONOXIDE, diff --git a/src/main/java/com/hbm/world/Factory.java b/src/main/java/com/hbm/world/Factory.java index 6c244c2aab..47ccdb2c42 100644 --- a/src/main/java/com/hbm/world/Factory.java +++ b/src/main/java/com/hbm/world/Factory.java @@ -715,13 +715,13 @@ public boolean generate_r0(World world, Random rand, int x, int y, int z, boolea world.setBlockState(pos.setPos(x + 3, y + 0, z + 20), Blocks.STONE_BRICK_STAIRS.getDefaultState().withProperty(BlockStairs.HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(BlockStairs.FACING, EnumFacing.EAST), 3); world.setBlockState(pos.setPos(x + 4, y + 0, z + 20), Blocks.IRON_BLOCK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 5, y + 0, z + 20), Blocks.STONE_BRICK_STAIRS.getDefaultState().withProperty(BlockStairs.HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(BlockStairs.FACING, EnumFacing.WEST), 3); - world.setBlockState(pos.setPos(x + 7, y + 0, z + 20), Blocks.ANVIL.getDefaultState(), 3); + world.setBlockState(pos.setPos(x + 7, y + 0, z + 20), ModBlocks.anvil_steel.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 14, y + 0, z + 20), Blocks.STONEBRICK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 0, y + 0, z + 21), Blocks.STONEBRICK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 3, y + 0, z + 21), Blocks.STONE_BRICK_STAIRS.getDefaultState().withProperty(BlockStairs.HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(BlockStairs.FACING, EnumFacing.EAST), 3); world.setBlockState(pos.setPos(x + 4, y + 0, z + 21), Blocks.IRON_BLOCK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 5, y + 0, z + 21), Blocks.STONE_BRICK_STAIRS.getDefaultState().withProperty(BlockStairs.HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(BlockStairs.FACING, EnumFacing.WEST), 3); - world.setBlockState(pos.setPos(x + 7, y + 0, z + 21), Blocks.ANVIL.getDefaultState(), 3); + world.setBlockState(pos.setPos(x + 7, y + 0, z + 21), ModBlocks.anvil_steel.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 14, y + 0, z + 21), Blocks.STONEBRICK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 0, y + 0, z + 22), Blocks.STONEBRICK.getDefaultState(), 3); world.setBlockState(pos.setPos(x + 3, y + 0, z + 22), Blocks.STONE_BRICK_STAIRS.getDefaultState().withProperty(BlockStairs.HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(BlockStairs.FACING, EnumFacing.EAST), 3); diff --git a/src/main/java/com/hbm/world/Meteorite.java b/src/main/java/com/hbm/world/Meteorite.java index e64663039b..15286e0c3d 100644 --- a/src/main/java/com/hbm/world/Meteorite.java +++ b/src/main/java/com/hbm/world/Meteorite.java @@ -8,10 +8,9 @@ import com.hbm.blocks.bomb.BlockTaint; import com.hbm.config.BombConfig; import com.hbm.config.GeneralConfig; -import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionParticle; -import com.hbm.explosion.ExplosionParticleB; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -119,31 +118,12 @@ public void generate(World world, Random rand, int x, int y, int z) { return; case 11: //Atomic meteorite - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(world); - entity0.posX = x + 0.5D; - entity0.posY = y + 0.5D; - entity0.posZ = z + 0.5D; - if(!EntityNukeExplosionMK3.isJammed(world, entity0)){ - entity0.destructionRange = BombConfig.fatmanRadius; - entity0.speed = BombConfig.blastSpeed; - entity0.coefficient = 10.0F; - - world.spawnEntity(entity0); - if(MainRegistry.polaroidID == 11) - if(rand.nextInt(100) >= 0) - { - ExplosionParticleB.spawnMush(world, x, y - 3, z); - } else { - ExplosionParticle.spawnMush(world, x, y - 3, z); - } - else - if(rand.nextInt(100) == 0) - { - ExplosionParticleB.spawnMush(world, x, y - 3, z); - } else { - ExplosionParticle.spawnMush(world, x, y - 3, z); - } - } + world.spawnEntity(EntityNukeExplosionMK5.statFac(world, BombConfig.fatmanRadius, x + 0.5, y + 0.5, z + 0.5)); + if(rand.nextInt(100) == 0 || MainRegistry.polaroidID == 11){ + EntityNukeTorex.statFacBale(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.fatmanRadius); + } else { + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.fatmanRadius); + } return; case 12: //Star Blaster diff --git a/src/main/java/com/hbm/world/Silo.java b/src/main/java/com/hbm/world/Silo.java index bb4660b384..a314479979 100644 --- a/src/main/java/com/hbm/world/Silo.java +++ b/src/main/java/com/hbm/world/Silo.java @@ -13,8 +13,7 @@ import net.minecraft.block.BlockHalfStoneSlab; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.BlockLadder; -import net.minecraft.block.BlockLever; -import net.minecraft.block.BlockLever.EnumOrientation; +import net.minecraft.block.BlockDirectional; import net.minecraft.block.BlockSlab.EnumBlockHalf; import net.minecraft.block.BlockRedstoneRepeater; import net.minecraft.block.BlockRedstoneTorch; @@ -2533,7 +2532,7 @@ public boolean generate_r03_last(World world, Random rand, int x, int y, int z, world.setBlockState(pos.setPos(x + 8, y + -9, z + 3), Blocks.WALL_SIGN.getDefaultState().withProperty(BlockWallSign.FACING, EnumFacing.WEST), 3); world.setBlockState(pos.setPos(x + 10, y + -9, z + 3), Blocks.WALL_SIGN.getDefaultState().withProperty(BlockWallSign.FACING, EnumFacing.EAST), 3); world.setBlockState(pos.setPos(x + 9, y + -8, z + 2), Blocks.LADDER.getDefaultState().withProperty(BlockLadder.FACING, EnumFacing.values()[3]), 3); - world.setBlockState(pos.setPos(x + 9, y + -8, z + 5), Blocks.LEVER.getDefaultState().withProperty(BlockLever.FACING, EnumOrientation.UP_Z), 3); + world.setBlockState(pos.setPos(x + 9, y + -8, z + 5), Blocks.STONE_BUTTON.getDefaultState().withProperty(BlockDirectional.FACING, EnumFacing.UP), 3); world.setBlockState(pos.setPos(x + 9, y + -7, z + 2), Blocks.LADDER.getDefaultState().withProperty(BlockLadder.FACING, EnumFacing.values()[3]), 3); world.setBlockState(pos.setPos(x + 9, y + -6, z + 2), Blocks.LADDER.getDefaultState().withProperty(BlockLadder.FACING, EnumFacing.values()[3]), 3); world.setBlockState(pos.setPos(x + 9, y + -5, z + 2), Blocks.LADDER.getDefaultState().withProperty(BlockLadder.FACING, EnumFacing.values()[3]), 3); diff --git a/src/main/resources/META-INF/MANIFEST.mf b/src/main/resources/META-INF/MANIFEST.mf index 795849d571..9c752d960c 100644 --- a/src/main/resources/META-INF/MANIFEST.mf +++ b/src/main/resources/META-INF/MANIFEST.mf @@ -1,4 +1,4 @@ Manifest-Version: 1.0 FMLCorePlugin: com.hbm.core.HbmCorePlugin FMLCorePluginContainsFMLMod: com.hbm.main.MainRegistry -Created-By: 1.7.0 (Oracle Corporation) \ No newline at end of file +Created-By: 1.12.0 (Oracle Corporation) \ No newline at end of file diff --git a/src/main/resources/assets/hbm/advancements/progress_australium.json b/src/main/resources/assets/hbm/advancements/progress_australium.json new file mode 100644 index 0000000000..37be1be5df --- /dev/null +++ b/src/main/resources/assets/hbm/advancements/progress_australium.json @@ -0,0 +1,30 @@ +{ + "display": { + "icon": { + "item": "hbm:ingot_australium" + }, + "title": { + "translate": "hbm.achievement.progress_australium" + }, + "description": { + "translate": "hbm.achievement.progress_australium.desc" + }, + "frame": "goal" + }, + "parent": "hbm:progress_cyclotron", + "criteria": { + "crafting_table": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "hbm:powder_australium" + } + ] + } + } + }, + "rewards": { + "experience": 90 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/advancements/progress_creative.json b/src/main/resources/assets/hbm/advancements/progress_creative.json index 3e94aef080..09f222812c 100644 --- a/src/main/resources/assets/hbm/advancements/progress_creative.json +++ b/src/main/resources/assets/hbm/advancements/progress_creative.json @@ -1,7 +1,7 @@ { "display": { "icon": { - "item": "hbm:battery_creative" + "item": "hbm:battery_sc_electronium" }, "title": { "translate": "hbm.achievement.progress_creative" @@ -18,7 +18,7 @@ "conditions": { "items": [ { - "item": "hbm:battery_creative" + "item": "hbm:battery_sc_electronium" } ] } diff --git a/src/main/resources/assets/hbm/blockstates/cable_diode.json b/src/main/resources/assets/hbm/blockstates/cable_diode.json index 608cc9ca1b..76aabc0544 100644 --- a/src/main/resources/assets/hbm/blockstates/cable_diode.json +++ b/src/main/resources/assets/hbm/blockstates/cable_diode.json @@ -1,10 +1,10 @@ { "variants": { "facing=north": { "model": "hbm:cable_diode" }, - "facing=south": { "model": "hbm:cable_diode", "y": 180 }, - "facing=west": { "model": "hbm:cable_diode", "y": 270 }, - "facing=east": { "model": "hbm:cable_diode", "y": 90 }, - "facing=up": { "model": "hbm:cable_diode", "x": 270 }, + "facing=south": { "model": "hbm:cable_diode", "y": 180 }, + "facing=west": { "model": "hbm:cable_diode", "y": 270 }, + "facing=east": { "model": "hbm:cable_diode", "y": 90 }, + "facing=up": { "model": "hbm:cable_diode", "x": 270 }, "facing=down": { "model": "hbm:cable_diode", "x": 90 } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/concrete_hazard.json b/src/main/resources/assets/hbm/blockstates/concrete_hazard.json new file mode 100644 index 0000000000..910829490f --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/concrete_hazard.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:concrete_hazard" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/conveyor_double.json b/src/main/resources/assets/hbm/blockstates/conveyor_double.json deleted file mode 100644 index 510d65b5db..0000000000 --- a/src/main/resources/assets/hbm/blockstates/conveyor_double.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": {}, - "model": "hbm:conveyor.obj" - }, - "variants": { - "facing": { - "north": { }, - "south": { "y": 180 }, - "west": { "y": 270 }, - "east": { "y": 90 } - }, - "inventory": [{ "transform": "forge:default-block" }] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/det_bale.json b/src/main/resources/assets/hbm/blockstates/det_bale.json new file mode 100644 index 0000000000..3e67507a3b --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/det_bale.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:det_bale" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/det_n2.json b/src/main/resources/assets/hbm/blockstates/det_n2.json new file mode 100644 index 0000000000..c861eb47f1 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/det_n2.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:det_n2" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/dummy_block_drill.json b/src/main/resources/assets/hbm/blockstates/dummy_block_drill.json deleted file mode 100644 index d3f6b63b81..0000000000 --- a/src/main/resources/assets/hbm/blockstates/dummy_block_drill.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:dummy_block_drill" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/dummy_port_drill.json b/src/main/resources/assets/hbm/blockstates/dummy_port_drill.json deleted file mode 100644 index 151533c59b..0000000000 --- a/src/main/resources/assets/hbm/blockstates/dummy_port_drill.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:dummy_port_drill" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/fluid_duct.json b/src/main/resources/assets/hbm/blockstates/fluid_duct.json deleted file mode 100644 index 01ffef7997..0000000000 --- a/src/main/resources/assets/hbm/blockstates/fluid_duct.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:fluid_duct" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/frozen_grass.json b/src/main/resources/assets/hbm/blockstates/frozen_grass.json index fd37664fc7..956601e130 100644 --- a/src/main/resources/assets/hbm/blockstates/frozen_grass.json +++ b/src/main/resources/assets/hbm/blockstates/frozen_grass.json @@ -1,5 +1,6 @@ { "variants": { - "normal": { "model": "hbm:frozen_grass" } + "normal": { "model": "hbm:frozen_grass" }, + "meta=0": { "model": "hbm:frozen_grass" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/gas_duct.json b/src/main/resources/assets/hbm/blockstates/gas_duct.json deleted file mode 100644 index 5331828dc0..0000000000 --- a/src/main/resources/assets/hbm/blockstates/gas_duct.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:gas_duct" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/gas_duct_solid.json b/src/main/resources/assets/hbm/blockstates/gas_duct_solid.json deleted file mode 100644 index 4b10199b17..0000000000 --- a/src/main/resources/assets/hbm/blockstates/gas_duct_solid.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:gas_duct_solid" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/machine_drill.json b/src/main/resources/assets/hbm/blockstates/machine_drill.json deleted file mode 100644 index fe3ddfdc24..0000000000 --- a/src/main/resources/assets/hbm/blockstates/machine_drill.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "variants": { - "facing=north": { "model": "hbm:machine_drill" }, - "facing=south": { "model": "hbm:machine_drill", "y": 180 }, - "facing=west": { "model": "hbm:machine_drill", "y": 270 }, - "facing=east": { "model": "hbm:machine_drill", "y": 90 } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/oil_duct.json b/src/main/resources/assets/hbm/blockstates/oil_duct.json deleted file mode 100644 index a6301fb9be..0000000000 --- a/src/main/resources/assets/hbm/blockstates/oil_duct.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:oil_duct" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/oil_duct_solid.json b/src/main/resources/assets/hbm/blockstates/oil_duct_solid.json deleted file mode 100644 index afe2348640..0000000000 --- a/src/main/resources/assets/hbm/blockstates/oil_duct_solid.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "hbm:oil_duct_solid" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/red_cable_gauge.json b/src/main/resources/assets/hbm/blockstates/red_cable_gauge.json new file mode 100644 index 0000000000..8c76c699d4 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/red_cable_gauge.json @@ -0,0 +1,10 @@ +{ + "variants": { + "facing=north": { "model": "hbm:red_cable_gauge" }, + "facing=south": { "model": "hbm:red_cable_gauge", "y": 180 }, + "facing=west": { "model": "hbm:red_cable_gauge", "y": 270 }, + "facing=east": { "model": "hbm:red_cable_gauge", "y": 90 }, + "facing=up": { "model": "hbm:red_cable_gauge", "x": 270 }, + "facing=down": { "model": "hbm:red_cable_gauge", "x": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_0.json b/src/main/resources/assets/hbm/blockstates/sellafield_0.json index 5aa592c929..bf897cb68d 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_0.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_0.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_0" } + "normal": { "model": "hbm:sellafield_1_1" }, + "meta=0": { "model": "hbm:sellafield_1_1" }, + "meta=1": { "model": "hbm:sellafield_1_2" }, + "meta=2": { "model": "hbm:sellafield_1_3" }, + "meta=3": { "model": "hbm:sellafield_1_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_1.json b/src/main/resources/assets/hbm/blockstates/sellafield_1.json index da8d667516..ce19ad033a 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_1.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_1.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_1" } + "normal": { "model": "hbm:sellafield_2_1" }, + "meta=0": { "model": "hbm:sellafield_2_1" }, + "meta=1": { "model": "hbm:sellafield_2_2" }, + "meta=2": { "model": "hbm:sellafield_2_3" }, + "meta=3": { "model": "hbm:sellafield_2_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_2.json b/src/main/resources/assets/hbm/blockstates/sellafield_2.json index e92b7b7006..d568d7b986 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_2.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_2.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_2" } + "normal": { "model": "hbm:sellafield_3_1" }, + "meta=0": { "model": "hbm:sellafield_3_1" }, + "meta=1": { "model": "hbm:sellafield_3_2" }, + "meta=2": { "model": "hbm:sellafield_3_3" }, + "meta=3": { "model": "hbm:sellafield_3_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_3.json b/src/main/resources/assets/hbm/blockstates/sellafield_3.json index 3ccf51688a..2c39f209b4 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_3.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_3.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_3" } + "normal": { "model": "hbm:sellafield_4_1" }, + "meta=0": { "model": "hbm:sellafield_4_1" }, + "meta=1": { "model": "hbm:sellafield_4_2" }, + "meta=2": { "model": "hbm:sellafield_4_3" }, + "meta=3": { "model": "hbm:sellafield_4_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_4.json b/src/main/resources/assets/hbm/blockstates/sellafield_4.json index d646afb96a..f2e29e6b7d 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_4.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_4.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_4" } + "normal": { "model": "hbm:sellafield_5_1" }, + "meta=0": { "model": "hbm:sellafield_5_1" }, + "meta=1": { "model": "hbm:sellafield_5_2" }, + "meta=2": { "model": "hbm:sellafield_5_3" }, + "meta=3": { "model": "hbm:sellafield_5_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_core.json b/src/main/resources/assets/hbm/blockstates/sellafield_core.json index 8978a0261e..5b2ef29587 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_core.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_core.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_core" } + "normal": { "model": "hbm:sellafield_6_1" }, + "meta=0": { "model": "hbm:sellafield_6_1" }, + "meta=1": { "model": "hbm:sellafield_6_2" }, + "meta=2": { "model": "hbm:sellafield_6_3" }, + "meta=3": { "model": "hbm:sellafield_6_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sellafield_slaked.json b/src/main/resources/assets/hbm/blockstates/sellafield_slaked.json index cd3722cf6e..13d05aaca9 100644 --- a/src/main/resources/assets/hbm/blockstates/sellafield_slaked.json +++ b/src/main/resources/assets/hbm/blockstates/sellafield_slaked.json @@ -1,5 +1,9 @@ { "variants": { - "normal": { "model": "hbm:sellafield_slaked" } + "normal": { "model": "hbm:sellafield_0_1" }, + "meta=0": { "model": "hbm:sellafield_0_1" }, + "meta=1": { "model": "hbm:sellafield_0_2" }, + "meta=2": { "model": "hbm:sellafield_0_3" }, + "meta=3": { "model": "hbm:sellafield_0_4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_dirt.json b/src/main/resources/assets/hbm/blockstates/waste_dirt.json index 381e87de48..c86390a445 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_dirt.json +++ b/src/main/resources/assets/hbm/blockstates/waste_dirt.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_dirt" } + "normal": { "model": "hbm:waste_dirt_0" }, + "meta=0": { "model": "hbm:waste_dirt_0" }, + "meta=1": { "model": "hbm:waste_dirt_1" }, + "meta=2": { "model": "hbm:waste_dirt_2" }, + "meta=3": { "model": "hbm:waste_dirt_3" }, + "meta=4": { "model": "hbm:waste_dirt_4" }, + "meta=5": { "model": "hbm:waste_dirt_5" }, + "meta=6": { "model": "hbm:waste_dirt_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_earth.json b/src/main/resources/assets/hbm/blockstates/waste_earth.json index ff23f4c55c..f43a327bba 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_earth.json +++ b/src/main/resources/assets/hbm/blockstates/waste_earth.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_earth" } + "normal": { "model": "hbm:waste_earth_0" }, + "meta=0": { "model": "hbm:waste_earth_0" }, + "meta=1": { "model": "hbm:waste_earth_1" }, + "meta=2": { "model": "hbm:waste_earth_2" }, + "meta=3": { "model": "hbm:waste_earth_3" }, + "meta=4": { "model": "hbm:waste_earth_4" }, + "meta=5": { "model": "hbm:waste_earth_5" }, + "meta=6": { "model": "hbm:waste_earth_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_grass_tall.json b/src/main/resources/assets/hbm/blockstates/waste_grass_tall.json index 30aa5185d0..9e233e2927 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_grass_tall.json +++ b/src/main/resources/assets/hbm/blockstates/waste_grass_tall.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_grass_tall" } + "normal": { "model": "hbm:waste_grass_tall_0" }, + "meta=0": { "model": "hbm:waste_grass_tall_0" }, + "meta=1": { "model": "hbm:waste_grass_tall_1" }, + "meta=2": { "model": "hbm:waste_grass_tall_2" }, + "meta=3": { "model": "hbm:waste_grass_tall_3" }, + "meta=4": { "model": "hbm:waste_grass_tall_4" }, + "meta=5": { "model": "hbm:waste_grass_tall_5" }, + "meta=6": { "model": "hbm:waste_grass_tall_6" } } } diff --git a/src/main/resources/assets/hbm/blockstates/waste_gravel.json b/src/main/resources/assets/hbm/blockstates/waste_gravel.json index d2f1004c8d..3ca6a1dbfc 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_gravel.json +++ b/src/main/resources/assets/hbm/blockstates/waste_gravel.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_gravel" } + "normal": { "model": "hbm:waste_gravel_0" }, + "meta=0": { "model": "hbm:waste_gravel_0" }, + "meta=1": { "model": "hbm:waste_gravel_1" }, + "meta=2": { "model": "hbm:waste_gravel_2" }, + "meta=3": { "model": "hbm:waste_gravel_3" }, + "meta=4": { "model": "hbm:waste_gravel_4" }, + "meta=5": { "model": "hbm:waste_gravel_5" }, + "meta=6": { "model": "hbm:waste_gravel_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_leaves.json b/src/main/resources/assets/hbm/blockstates/waste_leaves.json index 170dd0b47d..09b1cb0006 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_leaves.json +++ b/src/main/resources/assets/hbm/blockstates/waste_leaves.json @@ -1,8 +1,8 @@ { "variants": { - "check_decay=false,decayable=false": { "model": "hbm:waste_leaves" }, - "check_decay=false,decayable=true": { "model": "hbm:waste_leaves" }, - "check_decay=true,decayable=false": { "model": "hbm:waste_leaves" }, - "check_decay=true,decayable=true": { "model": "hbm:waste_leaves" } + "check_decay=false,decayable=false,variant=oak": { "model": "hbm:waste_leaves" }, + "check_decay=false,decayable=true,variant=oak": { "model": "hbm:waste_leaves" }, + "check_decay=true,decayable=false,variant=oak": { "model": "hbm:waste_leaves" }, + "check_decay=true,decayable=true,variant=oak": { "model": "hbm:waste_leaves" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_mycelium.json b/src/main/resources/assets/hbm/blockstates/waste_mycelium.json index 9843d04d7b..6bb3208021 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_mycelium.json +++ b/src/main/resources/assets/hbm/blockstates/waste_mycelium.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_mycelium" } + "normal": { "model": "hbm:waste_mycelium_0" }, + "meta=0": { "model": "hbm:waste_mycelium_0" }, + "meta=1": { "model": "hbm:waste_mycelium_1" }, + "meta=2": { "model": "hbm:waste_mycelium_2" }, + "meta=3": { "model": "hbm:waste_mycelium_3" }, + "meta=4": { "model": "hbm:waste_mycelium_4" }, + "meta=5": { "model": "hbm:waste_mycelium_5" }, + "meta=6": { "model": "hbm:waste_mycelium_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_sand.json b/src/main/resources/assets/hbm/blockstates/waste_sand.json index f6d16a20e3..96d87e2008 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_sand.json +++ b/src/main/resources/assets/hbm/blockstates/waste_sand.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_sand" } + "normal": { "model": "hbm:waste_sand_0" }, + "meta=0": { "model": "hbm:waste_sand_0" }, + "meta=1": { "model": "hbm:waste_sand_1" }, + "meta=2": { "model": "hbm:waste_sand_2" }, + "meta=3": { "model": "hbm:waste_sand_3" }, + "meta=4": { "model": "hbm:waste_sand_4" }, + "meta=5": { "model": "hbm:waste_sand_5" }, + "meta=6": { "model": "hbm:waste_sand_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_sand_red.json b/src/main/resources/assets/hbm/blockstates/waste_sand_red.json index 2fd19f1bbe..f13cf9e375 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_sand_red.json +++ b/src/main/resources/assets/hbm/blockstates/waste_sand_red.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_sand_red" } + "normal": { "model": "hbm:waste_sand_red_0" }, + "meta=0": { "model": "hbm:waste_sand_red_0" }, + "meta=1": { "model": "hbm:waste_sand_red_1" }, + "meta=2": { "model": "hbm:waste_sand_red_2" }, + "meta=3": { "model": "hbm:waste_sand_red_3" }, + "meta=4": { "model": "hbm:waste_sand_red_4" }, + "meta=5": { "model": "hbm:waste_sand_red_5" }, + "meta=6": { "model": "hbm:waste_sand_red_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_sandstone.json b/src/main/resources/assets/hbm/blockstates/waste_sandstone.json new file mode 100644 index 0000000000..4aa2fd4ad2 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/waste_sandstone.json @@ -0,0 +1,12 @@ +{ + "variants": { + "normal": { "model": "hbm:waste_sandstone_0" }, + "meta=0": { "model": "hbm:waste_sandstone_0" }, + "meta=1": { "model": "hbm:waste_sandstone_1" }, + "meta=2": { "model": "hbm:waste_sandstone_2" }, + "meta=3": { "model": "hbm:waste_sandstone_3" }, + "meta=4": { "model": "hbm:waste_sandstone_4" }, + "meta=5": { "model": "hbm:waste_sandstone_5" }, + "meta=6": { "model": "hbm:waste_sandstone_6" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_sandstone_red.json b/src/main/resources/assets/hbm/blockstates/waste_sandstone_red.json new file mode 100644 index 0000000000..f1d496a1cb --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/waste_sandstone_red.json @@ -0,0 +1,12 @@ +{ + "variants": { + "normal": { "model": "hbm:waste_red_sandstone_0" }, + "meta=0": { "model": "hbm:waste_red_sandstone_0" }, + "meta=1": { "model": "hbm:waste_red_sandstone_1" }, + "meta=2": { "model": "hbm:waste_red_sandstone_2" }, + "meta=3": { "model": "hbm:waste_red_sandstone_3" }, + "meta=4": { "model": "hbm:waste_red_sandstone_4" }, + "meta=5": { "model": "hbm:waste_red_sandstone_5" }, + "meta=6": { "model": "hbm:waste_red_sandstone_6" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_terracotta.json b/src/main/resources/assets/hbm/blockstates/waste_terracotta.json new file mode 100644 index 0000000000..37d08c3861 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/waste_terracotta.json @@ -0,0 +1,12 @@ +{ + "variants": { + "normal": { "model": "hbm:waste_terracotta_0" }, + "meta=0": { "model": "hbm:waste_terracotta_0" }, + "meta=1": { "model": "hbm:waste_terracotta_1" }, + "meta=2": { "model": "hbm:waste_terracotta_2" }, + "meta=3": { "model": "hbm:waste_terracotta_3" }, + "meta=4": { "model": "hbm:waste_terracotta_4" }, + "meta=5": { "model": "hbm:waste_terracotta_5" }, + "meta=6": { "model": "hbm:waste_terracotta_6" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_trinitite.json b/src/main/resources/assets/hbm/blockstates/waste_trinitite.json index dfb1a0fda2..f4b5203e9a 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_trinitite.json +++ b/src/main/resources/assets/hbm/blockstates/waste_trinitite.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_trinitite" } + "normal": { "model": "hbm:waste_trinitite_0" }, + "meta=0": { "model": "hbm:waste_trinitite_0" }, + "meta=1": { "model": "hbm:waste_trinitite_1" }, + "meta=2": { "model": "hbm:waste_trinitite_2" }, + "meta=3": { "model": "hbm:waste_trinitite_3" }, + "meta=4": { "model": "hbm:waste_trinitite_4" }, + "meta=5": { "model": "hbm:waste_trinitite_5" }, + "meta=6": { "model": "hbm:waste_trinitite_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/waste_trinitite_red.json b/src/main/resources/assets/hbm/blockstates/waste_trinitite_red.json index 5907682e3f..0cce92a7e0 100644 --- a/src/main/resources/assets/hbm/blockstates/waste_trinitite_red.json +++ b/src/main/resources/assets/hbm/blockstates/waste_trinitite_red.json @@ -1,5 +1,12 @@ { "variants": { - "normal": { "model": "hbm:waste_trinitite_red" } + "normal": { "model": "hbm:waste_trinitite_red_0" }, + "meta=0": { "model": "hbm:waste_trinitite_red_0" }, + "meta=1": { "model": "hbm:waste_trinitite_red_1" }, + "meta=2": { "model": "hbm:waste_trinitite_red_2" }, + "meta=3": { "model": "hbm:waste_trinitite_red_3" }, + "meta=4": { "model": "hbm:waste_trinitite_red_4" }, + "meta=5": { "model": "hbm:waste_trinitite_red_5" }, + "meta=6": { "model": "hbm:waste_trinitite_red_6" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/en_us.lang b/src/main/resources/assets/hbm/lang/en_us.lang index 4100eae87c..e0fda9e048 100644 --- a/src/main/resources/assets/hbm/lang/en_us.lang +++ b/src/main/resources/assets/hbm/lang/en_us.lang @@ -1,3 +1,116 @@ +key.categories.hbm=Hbm's Nuclear Tech Mod +key.jetpack_activate=Toggle Jetpack +key.jetpack_hover=Toggle Jetpack Hover Mode +key.jetpack_hud=Toggle Jetpack HUD mode +key.fsb_flashlight=Toggle FSB Flashlights + +turret.animals=Target Passive: %s +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=None +turret.off=OFF +turret.on=ON +turret.players=Target Players: %s + +trait.blastres=Blast Resistance: %s + +chat.possetxyz=Pos set to %s, %s, %s +chat.possetxz=Pos set to %s, %s +chat.posnoset=No position set +chat.posnoseterror=[Error]: Position not set. +chat.postoofarerror=[Error]: Target incompatible or too far away. +trait.unmineable=§d[Unmineable]§5 can be mined + +chat.newver=§aNew§e version §3%s§e is available§r +chat.curver=§ePlaying on version §7%s§e right now§r +chat.detonated=Detonated +chat.posset=Position set +chat.possetx=Position set to X: +chat.possetz=Z: +chat.abilenabled=Enabled +chat.abildisabled=Tool ability deactivated +chat.ability=Ability +chat.blacklist=is blacklisted! +chat.welcome=Welcome back +chat.duck=Press O to duck! +chat.newver1=New +chat.newver2=version +chat.newver3=is available +chat.curver1=Playing on version +chat.curver2=right now +chat.newfeat=New Features +chat.addpldata=Added player data! +chat.callas=Called in airstrike! +chat.callsp=Called in supply drop! +trait.unmineable=Unmineable +trait.destroybyexplosion=Can only be destroyed by explosions +trait.blastres=Blast Resistance +trait.radshield=Radiation Shielding +trait.soliniumgrenade=Solinium Grenade +trait.nucleargrenade=Nuclear Grenade +trait.fallout=Fallout +trait.reactorrod=Reactor Fuel Rod +trait.nuclearbomb=Nuclear Bomb +trait.balefirebomb=Balefire Bomb +trait.schrabbomb=Schrabidium Bomb +trait.modularbomb=Modular Bomb +trait.thermobomb=Thermonuclear Bomb +trait.extremebomb=Extreme Bomb +trait.soliniumbomb=Solinium Bomb +tool.ability.list=Abilities: +tool.ability.rightclick=Right click to cycle through abilities! +tool.ability.shiftclick=Sneak-click to turn abilitty off! +tool.ability.weaponlist=Weapon modifiers: +tool.ability.canmine=can be mined + +trait.unmineable=Unmineable +trait.destroybyexplosion=Can only be destroyed by explosions +trait.blastres=Blast Resistance +trait.radshield=Radiation Shielding +trait.soliniumgrenade=Solinium Grenade +trait.nucleargrenade=Nuclear Grenade +trait.fallout=Fallout +trait.reactorrod=Reactor Fuel Rod +trait.nuclearbomb=Nuclear Bomb +trait.balefirebomb=Balefire Bomb +trait.schrabbomb=Schrabidium Bomb +trait.modularbomb=Modular Bomb +trait.thermobomb=Thermonuclear Bomb +trait.extremebomb=Extreme Bomb +trait.soliniumbomb=Solinium Bomb + +trait.rbmx.safe1=SAFE / PASSIVE +trait.rbmx.safe2=SAFE / EULER +trait.rbmx.safe3=SAFE / SIGMOID +trait.rbmx.medium1=MEDIUM / LOGARITHMIC +trait.rbmx.medium2=MEDIUM / SQUARE ROOT +trait.rbmx.risky=RISKY / NEGATIVE-QUADRATIC +trait.rbmx.dangerous1=DANGEROUS / LINEAR +trait.rbmx.dangerous2=DANGEROUS / QUADRATIC +trait.rbmx.experimental=EXPERIMENTAL / SINE SLOPE + +trait.unmineable=Unmineable +trait.destroybyexplosion=Can only be destroyed by explosions +trait.blastres=Blast Resistance +trait.radshield=Radiation Shielding +trait.soliniumgrenade=Solinium Grenade +trait.nucleargrenade=Nuclear Grenade +trait.fallout=Fallout +trait.reactorrod=Reactor Fuel Rod +trait.nuclearbomb=Nuclear Bomb +trait.balefirebomb=Balefire Bomb +trait.schrabbomb=Schrabidium Bomb +trait.modularbomb=Modular Bomb +trait.thermobomb=Thermonuclear Bomb +trait.extremebomb=Extreme Bomb +trait.soliniumbomb=Solinium Bomb + +tool.ability.list=Abilities: +tool.ability.rightclick=Right click to cycle through abilities! +tool.ability.shiftclick=Sneak-click to turn abilitty off! +tool.ability.weaponlist=Weapon modifiers: +tool.ability.canmine=can be mined + item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III @@ -5,7 +118,7 @@ item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III tile.conveyor.name=Conveyor Belt -tile.express_conveyor.name=Express Conveyor Belt +tile.conveyor_express.name=Express Conveyor Belt tile.crane_ejector.name=Crane Ejector container.craneExtractor=Crane Ejector tile.crane_inserter.name=Crane Inserter @@ -188,7 +301,7 @@ desc.any=Any desc.na=N/A desc.none=None desc.fuse=Fuse: -desc.radius=Radius: +desc.radius=Radius: %sm desc.ore=Ore: desc.requires=Requires: desc.creative=Creative-only item @@ -225,7 +338,7 @@ desc.energychargecur=Charge: desc.energychargerate=Charge rate: desc.energydchargerate=Discharge rate: desc.second=s -desc.satellitefr=Satellite frequency: +desc.satellitefr=Satellite frequency: %s desc.generates=Generates desc.heatpt=heat per tick desc.lasts=Lasts @@ -312,140 +425,6 @@ desc.upgradeej3=Speed x10 desc.upgradeej4=Can eject 4 items at a time desc.upgradeej5=Can eject 16 items at a time desc.upgradeej6=Can eject 64 items at a time -desc.bedrock_ore.Copper=Copper -desc.bedrock_ore.Iron=Iron -desc.bedrock_ore.Gold=Gold -desc.bedrock_ore.Lapis=Lapis -desc.bedrock_ore.Diamond=Diamond -desc.bedrock_ore.Redstone=Redstone -desc.bedrock_ore.Emerald=Emerald -desc.bedrock_ore.Quartz=Quartz -desc.bedrock_ore.Coal=Coal -desc.bedrock_ore.Tin=Tin -desc.bedrock_ore.Silver=Silver -desc.bedrock_ore.Lead=Lead -desc.bedrock_ore.Aluminum=Aluminium -desc.bedrock_ore.Nickel=Nickel -desc.bedrock_ore.Platinum=Platinum -desc.bedrock_ore.Iridium=Iridium -desc.bedrock_ore.Mithril=Mythril -desc.bedrock_ore.Uranium=Uranium -desc.bedrock_ore.Titanium=Titanium -desc.bedrock_ore.Tungsten=Tungsten -desc.bedrock_ore.Coltan=Coltan -desc.bedrock_ore.Beryllium=Beryllium -desc.bedrock_ore.Zirconium=Zirconium -desc.bedrock_ore.Neodymium=Neodymium -desc.bedrock_ore.Lithium=Lithium -desc.bedrock_ore.RedPhosphorus=Red Phosphorus -desc.bedrock_ore.Sulfur=Sulfur -desc.bedrock_ore.Saltpeter=Niter -desc.bedrock_ore.Fluorite=Fluorite -desc.bedrock_ore.InfernalCoal=Infernal Coal -desc.bedrock_ore.RareEarth=Rare Earth -desc.bedrock_ore.Nitanium=Nitanium -desc.bedrock_ore.Starmetal=Starmetal -desc.bedrock_ore.Asbestos=Asbestos -desc.bedrock_ore.Thorium232=Thorium-232 -desc.bedrock_ore.Th232=Thorium-232 -desc.bedrock_ore.Thorium=Thorium -desc.bedrock_ore.Plutonium=Plutonium -desc.bedrock_ore.Schrabidium=Schrabidium -desc.bedrock_ore.Cobalt=Cobalt -desc.bedrock_ore.Australium=Australium -desc.bedrock_ore.Reiium=Reiium -desc.bedrock_ore.Weidanium=Weidanium -desc.bedrock_ore.Unobtainium=Unobtainium -desc.bedrock_ore.Verticium=Verticium -desc.bedrock_ore.Daffergon=Daffergon -desc.bedrock_ore.Lignite=Lignite -desc.bedrock_ore.Cinnabar=Cinnabar -desc.bedrock_ore.Borax=Borax -desc.bedrock_ore.Volcanic=Volcanic -desc.item_bedrock_ore.Copper=Copper -desc.item_bedrock_ore.Iron=Iron -desc.item_bedrock_ore.Gold=Gold -desc.item_bedrock_ore.Lapis=Lapis -desc.item_bedrock_ore.Diamond=Diamond -desc.item_bedrock_ore.Redstone=Redstone -desc.item_bedrock_ore.Emerald=Emerald -desc.item_bedrock_ore.Quartz=Quartz -desc.item_bedrock_ore.Coal=Coal -desc.item_bedrock_ore.Tin=Tin -desc.item_bedrock_ore.Silver=Silver -desc.item_bedrock_ore.Lead=Lead -desc.item_bedrock_ore.Aluminum=Aluminium -desc.item_bedrock_ore.Nickel=Nickel -desc.item_bedrock_ore.Platinum=Platinum -desc.item_bedrock_ore.Iridium=Iridium -desc.item_bedrock_ore.Mithril=Mythril -desc.item_bedrock_ore.Uranium=Uranium -desc.item_bedrock_ore.Titanium=Titanium -desc.item_bedrock_ore.Tungsten=Tungsten -desc.item_bedrock_ore.Coltan=Coltan -desc.item_bedrock_ore.Beryllium=Beryllium -desc.item_bedrock_ore.Zirconium=Zirconium -desc.item_bedrock_ore.Neodymium=Neodymium -desc.item_bedrock_ore.Lithium=Lithium -desc.item_bedrock_ore.RedPhosphorus=Red Phosphorus -desc.item_bedrock_ore.Sulfur=Sulfur -desc.item_bedrock_ore.Saltpeter=Niter -desc.item_bedrock_ore.Fluorite=Fluorite -desc.item_bedrock_ore.InfernalCoal=Infernal Coal -desc.item_bedrock_ore.RareEarth=Rare Earth -desc.item_bedrock_ore.Nitanium=Nitanium -desc.item_bedrock_ore.Starmetal=Starmetal -desc.item_bedrock_ore.Asbestos=Asbestos -desc.item_bedrock_ore.Thorium232=Thorium-232 -desc.item_bedrock_ore.Th232=Thorium-232 -desc.item_bedrock_ore.Thorium=Thorium -desc.item_bedrock_ore.Plutonium=Plutonium -desc.item_bedrock_ore.Schrabidium=Schrabidium -desc.item_bedrock_ore.Cobalt=Cobalt -desc.item_bedrock_ore.Australium=Australium -desc.item_bedrock_ore.Reiium=Reiium -desc.item_bedrock_ore.Weidanium=Weidanium -desc.item_bedrock_ore.Unobtainium=Unobtainium -desc.item_bedrock_ore.Verticium=Verticium -desc.item_bedrock_ore.Daffergon=Daffergon -desc.item_bedrock_ore.Lignite=Lignite -desc.item_bedrock_ore.Cinnabar=Cinnabar -desc.item_bedrock_ore.Borax=Borax -desc.item_bedrock_ore.Volcanic=Volcanic - -chat.detonated=Detonated -chat.posset=Position set -chat.possetx=Position set to X: -chat.possetz=Z: -chat.abilenabled=Enabled -chat.abildisabled=Tool ability deactivated -chat.ability=Ability -chat.blacklist=is blacklisted! -chat.welcome=Welcome back -chat.duck=Press O to duck! -chat.newver1=New -chat.newver2=version -chat.newver3=is available -chat.curver1=Playing on version -chat.curver2=right now -chat.newfeat=New Features -chat.addpldata=Added player data! -chat.callas=Called in airstrike! -chat.callsp=Called in supply drop! - -key.categories.hbm=Hbm's Nuclear Tech Mod -key.jetpack_activate=Toggle Jetpack -key.jetpack_hover=Toggle Jetpack Hover Mode -key.jetpack_hud=Toggle Jetpack HUD mode -key.fsb_flashlight=Toggle FSB Flashlights - -turret.animals=Target Passive: %s -turret.machines=Target Machines: %s -turret.mobs=Target Mobs: %s -turret.none=None -turret.off=OFF -turret.on=ON -turret.players=Target Players: %s item.drillbit_dnt.name=Dineutronium Drillbit item.drillbit_dnt_diamond.name=Dineutronium Drillbit (Diamond-Tipped) @@ -462,6 +441,9 @@ item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) item.solid_fuel_presto.name=Presto Log item.solid_fuel_presto_triplet.name=Boosted Presto Logs +tile.red_cable_gauge.name=Power Gauge +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per second.$Split networks connected by energy$storage blocks are considered as one shared network. + container.machineMixer=Industrial Mixer container.machineUUMixer=Industrial UU Mixer tile.machine_mixer.name=Industrial Mixer @@ -495,9 +477,12 @@ itemGroup.tabWeapon=NTM Weapons and Turrets itemGroup.tabConsumable=NTM Consumables and Gear item.meteor_charm.name=Meteor Charm item.protection_charm.name=Charm of Protection +item.pocket_ptsd.name=Pocket Radar fluid.plasma_put=Plutonium-Tritium Plasma fluid.experience=XP Juice fluid.ic2uu_matter=UU-Matter +fluid.deadblood=Parasite Blood +fluid.oilgc=Galacticraft Oil hbmfluid.ic2uu_matter=UU-Matter fluid.tile.water=Water fluid.tile.lava=Lava @@ -543,6 +528,27 @@ adjective.high=High adjective.veryhigh=Very High adjective.extreme=Extreme +book.error.cover=Hadron Collider:$Troubleshooting +book.error.title1=Error 0x01 [NC] +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.title2=Error 0x02 [NA] +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.title3=Error 0x03 [OC] +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.title4=Error 0x04 [EC] +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.title5=Error 0x05 [MS] +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.title6=Error 0x06 [ATL] +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.title7=Error 0x07 [ATS] +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.title8=Error 0x08 [DC] +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.title9=Error 0x09 [BT] +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. + + book.msword.cover=Guide$on how get the$Meteorite Sword book.msword.title0=Description book.msword.page0=Page 1-8: How to get the Meteorite Sword. Page 9-25: How to upgrade your Meteorite Sword @@ -612,6 +618,8 @@ armor.fastFall=Fast Fall armor.sprintBoost=Sprint Boost armor.electricJetpack=Electric Jetpack armor.glider=Glider +armor.projectileProtection=Damage modifier of %s against projectiles +armor.yield=Protection applies to damage <%s key.categories.hbm.craneLoad=RBMK Crane Load key.categories.hbm.craneMoveDown=RBMK Crane Move Down @@ -760,6 +768,7 @@ item.ingot_astatine.name=Astatine Ingot item.ingot_radspice.name=Neoveline Ingot item.nugget_radspice.name=Neoveline Nugget item.powder_radspice.name=Neoveline Powder +item.powder_radspice_tiny.name=Tiny Pile of Neoveline Powder item.lung_diagnostic.name=Lung Diagnostic lung_scanner.title=Lung Diagnostic @@ -770,6 +779,9 @@ lung_scanner.player_total_health=Lung Health Total: tile.waste_dirt.name=Contaminated Dirt tile.waste_sand.name=Contaminated Sand tile.waste_sand_red.name=Contaminated Red Sand +tile.waste_sandstone.name=Contaminated Sandstone +tile.waste_sandstone_red.name=Contaminated Red Sandstone +tile.waste_terracotta.name=Contaminated Terracotta tile.waste_gravel.name=Contaminated Gravel item.rod_cobalt.name=Cobalt Rod item.rod_co60.name=Cobalt-60 Rod @@ -843,11 +855,13 @@ item.nugget_gh336.name=Ghiorsium-336 Nugget item.powder_pb209.name=Lead-209 Powder item.powder_ac227.name=Actinium-227 Powder +item.powder_ac227_tiny.name=Tiny Pile of Actinium-227 Powder item.powder_ra226.name=Radium-226 Powder item.powder_sr90.name=Strontium-90 Powder item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder item.powder_co60_tiny.name=Tiny Pile of Cobalt-60 Powder item.powder_iodine_tiny.name=Tiny Pile of Iodine Powder +item.powder_pb209_tiny.name=Tiny Pile of Lead-209 Powder item.blades_aluminum.name=Aluminum Shredder Blades item.decontamination_module.name=Decontamination Module @@ -909,6 +923,7 @@ tile.concrete_brown.name=Brown Concrete tile.concrete_green.name=Green Concrete tile.concrete_red.name=Red Concrete tile.concrete_black.name=Black Concrete +tile.concrete_hazard.name=Hazard Striped Concrete desc.item.rtgDecay=Decays into: %s desc.item.rtgHeat=Heat: %s @@ -932,21 +947,6 @@ trait.explosive=Explosive trait.unstable=Unstable trait.coal=Coal Dust trait.contaminating=Contaminating Drop -trait.unmineable=Unmineable -trait.destroybyexplosion=Can only be destroyed by explosions -trait.blastres=Blast Resistance -trait.radshield=Radiation Shielding -trait.soliniumgrenade=Solinium Grenade -trait.nucleargrenade=Nuclear Grenade -trait.fallout=Fallout -trait.reactorrod=Reactor Fuel Rod -trait.nuclearbomb=Nuclear Bomb -trait.balefirebomb=Balefire Bomb -trait.schrabbomb=Schrabidium Bomb -trait.modularbomb=Modular Bomb -trait.thermobomb=Thermonuclear Bomb -trait.extremebomb=Extreme Bomb -trait.soliniumbomb=Solinium Bomb trait.contaminating.radius=Radius: %sm trait.cleanroom=Clean @@ -962,6 +962,18 @@ trait.hotfluid=Hot trait.antimatter=Annihilating trait.corrosivePlastic=Corrosive trait.corrosiveIron=Strongly Corrosive +trait.combustable=Combustible +trait.combustable.desc=§6Provides §c%sHE §6per bucket. +trait.combustable.desc2=§6Fuel grade: §c%s + +trait.fuelgrade.low=Low +trait.fuelgrade.medium=Medium +trait.fuelgrade.high=High +trait.fuelgrade.aero=Aviation +trait.fuelgrade.gas=Gaseous + +trait.fuelefficiency=§eFuel efficiency: +trait.fuelefficiency.desc=§e-%s: §c%s%% trait.dfcFuel=DFC Fuel trait.dfcFuel.desc=§dPower Output §5%s%% @@ -985,15 +997,6 @@ trait.rbmk.xenon=Xenon poison: %s trait.rbmk.xenonBurn=Xenon burn function: %s trait.rbmk.xenonGen=Xenon gen function: %s -trait.rbmx.safe1=SAFE / PASSIVE -trait.rbmx.safe2=SAFE / EULER -trait.rbmx.safe3=SAFE / SIGMOID -trait.rbmx.medium1=MEDIUM / LOGARITHMIC -trait.rbmx.medium2=MEDIUM / SQUARE ROOT -trait.rbmx.risky=RISKY / NEGATIVE-QUADRATIC -trait.rbmx.dangerous1=DANGEROUS / LINEAR -trait.rbmx.dangerous2=DANGEROUS / QUADRATIC -trait.rbmx.experimental=EXPERIMENTAL / SINE SLOPE trait.rbmx.coreTemp=Core entropy: %s trait.rbmx.depletion=Crustyness: %s trait.rbmx.diffusion=Flow: %s @@ -1053,11 +1056,6 @@ hadron.stats_coord=Erroring position: %s / %s / %s hadron.stats_momentum=Momentum: %s hadron.success=Completed! -tool.ability.list=Abilities: -tool.ability.rightclick=Right click to cycle through abilities! -tool.ability.shiftclick=Sneak-click to turn abilitty off! -tool.ability.weaponlist=Weapon modifiers: -tool.ability.canmine=can be mined tool.ability.centrifuge=Auto-Centrifuge tool.ability.crystallizer=Auto-Crystallizer tool.ability.explosion=Explosion @@ -1204,6 +1202,9 @@ hbm.achievement.progress_am241.desc=Murricaa fuck yeahh hbm.achievement.progress_cyclotron=Cyclotronic hbm.achievement.progress_cyclotron.desc=We can make new elements now +hbm.achievement.progress_australium=Austrium +hbm.achievement.progress_australium.desc=ɐᴉlɐɹʇsn∀ uᴉ ǝlᴉɥʍuɐǝW + hbm.achievement.progress_fusion=Fusion hbm.achievement.progress_fusion.desc=A dance of deuterons, tritons, and energy. @@ -1263,15 +1264,15 @@ hbm.achievement.fiend2=Delinquent 2: Delinquent Harder hbm.achievement.fiend2.desc=Be meaner. hbm.achievement.bobmetalworks=Metalworks -hbm.achievement.bobmetalworks.desc=Vault-tec Support Level 1 (Minecraft Grade Copper) +hbm.achievement.bobmetalworks.desc=Bobmazon: Level 1 (Minecraft Grade Copper) hbm.achievement.bobassembly=Fabrication -hbm.achievement.bobassembly.desc=Vault-tec Support Level 2 (Enhanced Circuit) +hbm.achievement.bobassembly.desc=Bobmazon: Level 2 (Enhanced Circuit) hbm.achievement.bobchemistry=Chemistry -hbm.achievement.bobchemistry.desc=Vault-tec Support Level 3 (Rubber) +hbm.achievement.bobchemistry.desc=Bobmazon: Level 3 (Rubber) hbm.achievement.boboil=Petroleum -hbm.achievement.boboil.desc=Vault-tec Support Level 4 (Oil Tar) +hbm.achievement.boboil.desc=Bobmazon: Level 4 (Oil Tar) hbm.achievement.bobnuclear=Atomic Science -hbm.achievement.bobnuclear.desc=Vault-tec Support Level 5 (Pu-241 Ingot) +hbm.achievement.bobnuclear.desc=Bobmazon: Level 5 (Pu-241 Ingot) hbm.achievement.bobhidden=Hidden Catalog hbm.achievement.bobhidden.desc=Kill a tainted creeper with a falling boxcar. @@ -1917,6 +1918,7 @@ tile.boat.name=Boat tile.bomber.name=Crashed Bomber tile.pink_log.name=Pink Log +tile.pink_log.desc=§dSpawns in the stem of Oak Trees and is very rare tile.pink_planks.name=Pink Wood Planks tile.pink_slab.name=Pink Wood Slab tile.pink_stairs.name=Pink Wood Stairs @@ -1949,7 +1951,7 @@ tile.railgun_plasma.name=Railgun container.railgun=Railgun tile.machine_catalytic_cracker.name=Catalytic Cracking Tower -tile.control_panel0.name=Control Panel +tile.control_panel_custom.name=Custom Control Panel [WIP] item.turret_control.name=Turret Controller item.turret_chip.name=Turret AI-Chip @@ -2139,7 +2141,6 @@ item.fluid_duct.name=Fluid Duct: item.ff_fluid_duct.name=Fluid Duct: container.fluidtank=Tank tile.machine_turbofan.name=Turbofan -tile.machine_turbofan.desc=§eBurns Kerosene to generate Energy container.machineTurbofan=Turbofan tile.crate_iron.name=Iron Crate container.crateTungsten=Tungsten Crate @@ -2405,7 +2406,7 @@ item.laser_crystal_dem.name=Demon Laser Crystal item.laser_crystal_dem.desc=Demon-Ghiorsium-Combine Fermion Supercrystal item.laser_crystal_bale.name=Bale Laser Crystal -item.laser_crystal_bale.desc=Balepellet coated in Verticium in Neoveline Casing +item.laser_crystal_bale.desc=Balepellet coated in Neoveline in Verticium Casing item.laser_crystal_digamma.name=Digamma Laser Crystal @@ -2441,10 +2442,10 @@ item.assembly_template.name=Assembly Template: item.chemistry_template.name=Chemistry Template: item.siren_track.name=Siren Track -item.bobmazon_materials.name=Vault-tec Support: Materials -item.bobmazon_machines.name=Vault-tec Support: Blocks and Machines -item.bobmazon_weapons.name=Vault-tec Support: Weapons and Explosives -item.bobmazon_tools.name=Vault-tec Support: Tools +item.bobmazon_machines.name=Bobmazon: Blocks and Machines +item.bobmazon_materials.name=Bobmazon: Materials +item.bobmazon_tools.name=Bobmazon: Tools +item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives item.bobmazon_hidden.name=Hidden Catalog item.fuse.name=Fuse @@ -2514,6 +2515,8 @@ item.plate_paa.name=PaA Alloy Plate item.ingot_dura_steel.name=High-Speed Steel Ingot item.ingot_polymer.name=Polymer Bar item.ingot_bakelite.name=Bakelite Bar +item.ingot_biorubber.name=Latex Bar +item.ball_resin.name=Latex item.powder_bakelite.name=Bakelite Powder tile.block_bakelite.name=Block of Bakelite tile.block_rubber.name=Block of Rubber @@ -2896,7 +2899,9 @@ tile.silo_hatch.name=Silo Hatch tile.vault_door.name=Vault-Tec Blast Door tile.blast_door.name=Sliding Blast Door tile.sliding_blast_door.name=Sideways Sliding Blast Door +desc.varwin=Variant: Window tile.sliding_blast_door_2.name=Sideways Sliding Blast Door +tile.sliding_blast_door_2.variant=Variant: Keypad item.sliding_blast_door_skin0.name=Sideways Sliding Blast Door Default Skin item.sliding_blast_door_skin1.name=Sideways Sliding Blast Door Variant 1 Skin @@ -3836,7 +3841,9 @@ item.ammo_container.name=Ammo Container tile.block_schrabidium.name=Block of Schrabidium-326 tile.block_euphemium.name=Block of Euphemium tile.block_schrabidium_cluster.name=Schrabidium Cluster -tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_schrabidium_cluster.desc=Balefire nukes create small amounts of euphemium inside this block +tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_euphemium_cluster.desc=Balefire nukes have created small amounts of euphemium inside this block item.plate_gold.name=Gold Plate item.syringe_empty.name=Empty Syringe @@ -3863,7 +3870,7 @@ item.pill_herbal.name=Herbal Paste item.plan_c.name=Plan C item.med_ipecac.name=Ipecac Syrup item.med_ptsd.name=PTSD Medication -item.med_schiziphrenia.name=Schizophrenia Medication +item.med_schizophrenia.name=Schizophrenia Medication item.gas_mask_filter.name=Gas Mask Filter item.gas_mask_filter_mono.name=Catalytic Mask Filter item.gas_mask_filter_combo.name=Gas Mask Combo Filter @@ -4000,7 +4007,9 @@ item.mask_of_infamy.name=Mask of Infamy tile.det_cord.name=Det Cord tile.det_charge.name=Explosive Charge +tile.det_n2.name=N² Charge tile.det_nuke.name=Nuclear Charge +tile.det_bale.name=Balefire Charge tile.det_miner.name=Mining Charge tile.red_barrel.name=Explosive Barrel tile.pink_barrel.name=Kerosene Barrel @@ -4027,6 +4036,7 @@ item.missile_burst.name=Spare Missile item.missile_inferno.name=Inferno Missile G.R.N. Mk.II item.missile_rain.name=Bomblet Rain item.missile_drill.name=The Concrete Cracker +item.missile_n2.name=N² Missile item.missile_nuclear.name=Nuclear Missile item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_endo.name=Endothermic Missile @@ -4266,13 +4276,13 @@ tile.sellafield_3.name=Blazing Sellafite tile.sellafield_4.name=Infernal Sellafite tile.sellafield_core.name=Sellafite-Corium -tile.baleonitite_slaked.name=Slaked Baleonitite -tile.baleonitite_0.name=Baleonitite -tile.baleonitite_1.name=Hot Baleonitite -tile.baleonitite_2.name=Boiling Baleonitite -tile.baleonitite_3.name=Blazing Baleonitite -tile.baleonitite_4.name=Infernal Baleonitite -tile.baleonitite_core.name=Baleonitite-Corium +tile.baleonitite_slaked.name=Slaked Baleonite +tile.baleonitite_0.name=Baleonite +tile.baleonitite_1.name=Hot Baleonite +tile.baleonitite_2.name=Boiling Baleonite +tile.baleonitite_3.name=Blazing Baleonite +tile.baleonitite_4.name=Infernal Baleonite +tile.baleonitite_core.name=Baleonite-Corium item.warhead_generic_small.name=Small Warhead item.warhead_generic_medium.name=Medium Warhead @@ -4286,6 +4296,7 @@ item.warhead_cluster_large.name=Large Cluster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_large.name=Large Bunker Buster Warhead +item.warhead_n2.name=N² Warhead item.warhead_nuclear.name=Nuclear Warhead item.warhead_mirvlet.name=MIRV item.warhead_mirv.name=Thermonuclear Warhead @@ -4402,13 +4413,13 @@ item.cape_nostalgia.name=DrNostalgia's Cape tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter -tile.machine_transformer.name=Up Charger +tile.machine_transformer.name=Charger (Up) tile.machine_transformer.desc=Uses power to charge items in a players inventory. Range: 3 blocks above it -tile.machine_transformer_dnt.name=DNT Up Charger +tile.machine_transformer_dnt.name=DNT Charger (Up) tile.machine_transformer_dnt.desc=Uses power to charge items in a players inventory. Range: 3 blocks above it -tile.machine_transformer_20.name=Down Charger +tile.machine_transformer_20.name=Charger (Down) tile.machine_transformer_20.desc=Uses power to charge items in a players inventory. Range: 3 blocks below it -tile.machine_transformer_dnt_20.name=DNT Down Charger +tile.machine_transformer_dnt_20.name=DNT Charger (Down) tile.machine_transformer_dnt_20.desc=Uses power to charge items in a players inventory. Range: 3 blocks below it tile.vent_chlorine.name=Poison Vent @@ -4922,7 +4933,9 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_au198.name=Gold-198 Ingot item.powder_at209.name=Astatine-209 Powder +item.powder_at209_tiny.name=Tiny Pile of Astatine-209 Powder item.powder_au198.name=Gold-198 Powder +item.powder_au198_tiny.name=Tiny Pile of Gold-198 Powder item.ingot_tantalium.name=Tantalium Ingot item.ingot_tcalloy.name=Technetium Steel Ingot item.ingot_technetium.name=Technetium-99 Ingot @@ -5119,6 +5132,7 @@ tile.block_waste_vitrified.name=Vitrified Block of Nuclear Waste item.crystal_coal.name=Coal Crystals item.crystal_cobalt.name=Cobalt Crystals item.crystal_cinnebar.name=Cinnabar Crystals +item.battery_sc_electronium.name=Self-Charging Electronium Battery item.battery_sc_yharonite.name=Self-Charging Yharonite-REDACTED Battery item.battery_sc_schrabidium.name=Self-Charging Schrabidium-326 Battery item.battery_sc_balefire.name=Self-Charging Balefire-XXX Battery diff --git a/src/main/resources/assets/hbm/lang/ko_kr.lang b/src/main/resources/assets/hbm/lang/ko_kr.lang index b8a68e0be7..46bfb56c7e 100644 --- a/src/main/resources/assets/hbm/lang/ko_kr.lang +++ b/src/main/resources/assets/hbm/lang/ko_kr.lang @@ -1,3 +1,19 @@ +#한국어 번역일수도 + +key.categories.hbm=Hbm의 핵 기술 모드 +key.jetpack_activate=제트팩 전환 +key.jetpack_hover=Jetpack 호버 모드 전환 +key.jetpack_hud=Jetpack HUD 모드 전환 +key.fsb_flashlight=FSB 손전등 전환 + +turret.animals=Target Passive: %s +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=없음 +turret.off=끄다 +turret.on=에 +turret.players=Target Players: %s + #book.rbmk.cover=HOW 2 RBMK:$원자로$건설의 기초$ #book.rbmk.page1=§lRBMK§r은 완전한 모듈식 원자로입니다. 대부분의 다른 리액터와 달리 "코어"가 없고 크기 제한이 없으며 리액터의 동작과 효율성은 리액터가 구축된 방식과 서로 다른 부분이 서로 상호 작용하는 방식에서 비롯됩니다. #book.rbmk.page10=§lgraphite 감속재§r는 통과하는 빠른 중성자를 느린 중성자로 변환합니다. 대부분의 연료는 빠른 중성자로 분열되지만 느린 중성자는 분리되어야 하므로 감속재를 사용하는 것이 좋습니다. @@ -32,2254 +48,2633 @@ #book.rbmk.title9=중성자 흡수기 achievement.bossUFO=아이 르마오 achievement.bossUFO.desc=Yo, 여기 뭐가 있지? 거대한 우주선이 블록쉽을 끌어당긴다? +armor.electricJetpack=전기 제트팩 +armor.fastFall=빠른 가을 +armor.modifier=%s의 일반 피해 수정자 +armor.nullDamage=%s의 모든 피해 무효화 + +item.drillbit_dnt.name=디뉴트로늄 드릴비트 +item.drillbit_dnt_diamond.name=디뉴트로늄 드릴비트(다이아몬드 팁) +item.drillbit_desh.name=데쉬 드릴비트 +item.drillbit_desh_diamond.name=Desh 드릴비트(다이아몬드 팁) +item.drillbit_ferro.name=페로라늄 드릴비트 +item.drillbit_ferro_diamond.name=페로라늄 드릴비트(다이아몬드 팁) +item.drillbit_hss.name=고속 강철 드릴비트 +item.drillbit_hss_diamond.name=고속 강철 드릴비트(다이아몬드 팁) +item.drillbit_steel.name=강철 드릴비트 +item.drillbit_steel_diamond.name=강철 드릴비트(다이아몬드 팁) +item.drillbit_tcalloy.name=테크네튬 강철 드릴비트 +item.drillbit_tcalloy_diamond.name=테크네티움 강철 드릴비트(다이아몬드 팁) +item.solid_fuel_presto.name=프레스토 로그 +item.solid_fuel_presto_triplet.name=향상된 Presto 로그 + +container.machineMixer=산업용 믹서 +container.machineUUMixer=산업용 UU 믹서 +tile.machine_mixer.name=산업용 믹서 + +item.deuterium_filter.name=중수소 필터 +tile.machine_deuterium_extractor.name=중수소 추출기 +tile.machine_deuterium_tower.name=중수소 추출탑 + +tile.ore_bedrock_block.name=기반암 광석 +item.ingot_cadmium.name=카드뮴 주괴 +item.nugget_cadmium.name=카드뮴 덩어리 +item.powder_cadmium.name=카드뮴 가루 +tile.block_cadmium.name=카드뮴 블록 +item.euphemium_capacitor.name=유페늄 커패시터 +item.ingot_cdalloy.name=카드뮴 강철 주괴 +item.powder_cdalloy.name=카드뮴 강철 가루 +item.powder_borax.name=붕사 가루 +tile.ore_depth_borax.name=깊이 붕사 광석 + +item.ingot_ferrouranium.name=페로라늄 주괴 +itemGroup.tabTest=핵 기술 모드 테스트 탭 +itemGroup.tabParts=NTM 리소스 및 부품 +itemGroup.tabControl=NTM 기계 품목 및 연료 +itemGroup.tabTemplate=NTM 템플릿 +itemGroup.tabResource=NTM 리소스 +itemGroup.tabBlocks=NTM 블록 +itemGroup.tabMachine=NTM 기계 +itemGroup.tabNuke=NTM 폭탄 +itemGroup.tabMissile=NTM 미사일 및 위성 +itemGroup.tabWeapon=NTM 무기 및 포탑 +itemGroup.tabConsumable=NTM 소모품 및 장비 +item.meteor_charm.name=유성 부적 +item.protection_charm.name=보호의 부적 +fluid.plasma_put=플루토늄-트리튬 플라즈마 +fluid.experience=XP 주스 +fluid.ic2uu_matter=UU 물질 +hbmfluid.ic2uu_matter=UU 물질 +fluid.tile.water=물 +fluid.tile.lava=용암 +tile.uu_gigafactory.name=UU-물질 기가팩토리 +container.uuCreator=UU 콘덴서 +hbmfluid.plasma_put=플루토늄-트리튬 플라즈마 +hbmfluid.experience=XP 주스 +container.rbmkHeater=RBMK 유체 히터 +tile.machine_excavator.name=굴착기 + +hbmfluid.heavywater=중수 +fluid.heavywater=중수 +hbmfluid.nitric_acid=질산 +fluid.nitric_acid=질산 +hbmfluid.solvent=용제 +fluid.solvent=용제 +hbmfluid.radiosolvent=고성능 용매 +fluid.radiosolvent=고성능 용매 + + +tile.heater_rt.name=방사성동위원소 열히터 +tile.heater_rt.desc=RTG 펠릿에서 열 생성 +container.heaterRadioThermal=방사성동위원소 열히터 + +hazard.prot=위험으로부터 보호합니다: +hazard.noprot=다음으로부터 보호하지 않습니다: +hazard.bacteria=박테리아/에어로졸 +hazard.corrosive=부식성 연기 +hazard.gasChlorine=화학가스 +hazard.gasInert=불활성 가스 / 질식제 +hazard.gasMonoxide=일산화탄소 +hazard.light=밝은 빛 +hazard.nerveAgent=신경작용제 +hazard.neverProtects=다음으로부터 보호하지 않습니다. +hazard.particleCoarse=공중 입자 +hazard.particleFine=미립자 +hazard.sand=눈 자극제 +hazard.radGas=방사성 가스 + +adjective.little=낮은 +adjective.medium=중간 +adjective.high=높은 +adjective.veryhigh=매우 높음 +adjective.extreme=극심한 + +book.msword.cover=$운석검를 얻는 방법에 대한 가이드$ +book.msword.title0=설명 +book.msword.page0=페이지 1-8: 운석 검을 얻는 방법. 페이지 9-25: 운석 검을 업그레이드하는 방법 +book.msword.title1=운석 블록 +book.msword.page1=운석 조각은 때때로 비가 내리는 운석을 채굴하여 얻을 수 있습니다. +book.msword.title2=운석 주괴 +book.msword.page2=§l기계 = 용광로§r +book.msword.title3=뜨거운 주괴 +book.msword.page3=§l기게 = 화로§r +book.msword.title4=단조된 주괴 +book.msword.page4=§l기계 = 모루§r Tier 3: 뜨거울 때만 제작할 수 있으므로 서두르세요. +book.msword.title5=열간 단조 주괴 +book.msword.page5=§l기계 = 화로§r +book.msword.title6=운석 칼날 +book.msword.page6=§l기계 = 모루§r: 잘 해냈어요! 이제 두 번째 칼을 제작하면 나만의 운석 검을 갖게 됩니다. +book.msword.title7=운석 +book.msword.page7=§l기계 = 작업대§r +book.msword.title8=업그레이드 1: 그을린 +book.msword.page8=§l기게 = 화로§r +book.msword.title9=업그레이드 2: 리포지드 +book.msword.page9=§l기계 = 모루§r +book.msword.title10=업그레이드 3: 강화 +book.msword.page10=§l기계 = 납작한 스탬프로 누릅니다§r +book.msword.title11=업그레이드 4: 합금 +book.msword.page11=§l기계 = 용광로§r +book.msword.title12=업그레이드 5: 가공 +book.msword.page12=§l기계 = 어셈블러§r +book.msword.page13=검이 배터리 슬롯 안에 있는 동안 어셈블러 내부에서 무언가를 만드세요. +book.msword.title14=업그레이드 6: 치료됨 +book.msword.page14=§l기게 = 화학 공장§r +book.msword.page15=검이 배터리 슬롯 안에 있는 동안 화학 공장 내부에서 무언가를 제작하세요. +book.msword.title16=업그레이드 7: 에칭 +book.msword.page16=§l기게 = 광석 산화제§r +book.msword.title17=업그레이드 8: 열 +book.msword.page17=§l기게 = 열이 있는 반응로§r 4 +book.msword.title18=업그레이드 9: 조사됨 +book.msword.page18=§l기계 = RBMK 조사 채널§r +book.msword.page19=엄청난 양의 방사선을 검에 쏟아부으세요. +book.msword.title20=업그레이드 10: 융합 +book.msword.page20=§l기계 = 플라즈마가 있는 융합 반응기§r: 조사된 검을 증식 슬롯에 놓습니다. +book.msword.title21=업그레이드 11: 불길한 +book.msword.page21=§l기계 = 베일파이어 플라즈마가 포함된 융합 반응기: 융합된 검을 증식 슬롯에 놓습니다. +book.msword.title22=업그레이드 12: 뒤틀린 +book.msword.page22=§l기계 = S.A.F.E Reactor§r : 검을 특이점 반응기에 던지기 +book.msword.page23=발전이 시작되고 플라즈마가 보이면 원자로의 핵심을 해로운 검으로 교체하십시오. +book.msword.title24=업그레이드 13: 악마 +book.msword.page24=§l기계 = DFC§r: §4수정됨 + armor.blastProtection=폭발에 대한 %s의 데미지 수정자 +armor.explosionImmune=폭발에 면역 armor.cap=하드 데미지 상한선 %s armor.damageModifier=%s에 대한 %s의 데미지 수정자 -armor.electricJetpack=전기 제트팩 -armor.fastFall=빠른 가을 armor.fireproof=방화 armor.fullSetBonus=풀 세트 보너스: armor.geigerHUD=내장형 가이거 계수기 HUD armor.geigerSound=청각 가이거 계수기 -armor.glider=글라이더 armor.gravity=%s의 중력 수정자 armor.hardLanding=경착륙 -armor.ignoreLimit=제한 무시 -armor.modifier=%s의 일반 피해 수정자 -armor.nullDamage=%s의 모든 피해 무효화 +armor.modifier=%s의 일반 손상 수정자 +armor.nullDamage=%s의 모든 손상을 무효화합니다 +armor.thermal=열상 시력 +armor.threshold=%s의 손상 임계값 +armor.vats=적 HUD +armor.ignoreLimit=한도 무시 armor.rocketBoots=로켓 부츠 +armor.fastFall=빠른 가을 armor.sprintBoost=스프린트 부스트 -armor.thermal=열 시력 -armor.threshold=손상 임계값 %s -armor.vats=적 HUD -book.rbmk.cover=나의 첫 번째 RBMK:$기본 $빌딩 $리액터 -book.rbmk.page1=§lRBMK§r은 완전한 모듈식 원자로입니다. 대부분의 다른 리액터와 달리 "코어"가 없고 크기 제한이 없으며 리액터의 동작과 효율성은 리액터가 구축된 방식과 다양한 부품이 서로 어떻게 상호 작용하는지에 따라 달라집니다. -book.rbmk.page10=§l흑연 감속재§r는 통과하는 빠른 중성자를 느린 중성자로 변환합니다. 대부분의 연료는 빠른 중성자로 분리되는 반면 느린 중성자는 핵분열에 필요하므로 감속재를 사용하는 것이 좋습니다. -book.rbmk.page11=§l구조 기둥§r은 어떤 식으로든 중성자에 영향을 미치지 않으며 특별한 적용이 없습니다. 구조화된 기둥은 열을 전달할 수 있기 때문에 다른 부품이 없는 경우 구조화된 기둥으로 반응기를 채우는 것이 좋습니다. -book.rbmk.page12=§lRBMK 콘솔§r을 사용하면 멀리서도 원자로를 제어할 수 있습니다. §l 장치를 사용하여 RBMK 부분에서 콘솔 RBMK§r를 연결한 다음 콘솔에서 리액터와 콘솔을 연결합니다. 콘솔은 15x15 부품만 제어할 수 있으며 대형 반응기의 경우 여러 콘솔을 사용할 수 있습니다. -book.rbmk.page13=부품을 클릭하면 해당 부품이 선택 및 선택 해제됩니다. 색상 버튼을 사용하여 해당 색상 그룹의 모든 제어봉을 빠르게 선택할 수 있습니다. 버튼 "A"는 모든 컨트롤 로드를 선택하고 "X"는 모두 선택을 해제합니다. -book.rbmk.page14=녹색 상자에 0~100 사이의 숫자를 입력하고 옆에 있는 버튼을 누르면 선택한 모든 제어봉이 해당 위치로 설정됩니다. "AZ-5" 버튼을 누르면 모든 제어봉이 완전히 삽입됩니다. -book.rbmk.page15=§lfuel§r 응답은 여러 요인에 따라 달라집니다. 주된 것은 §l강화§r, §l크세논 중독§r 및 들어오는 §l중성자§r의 수입니다. 크세논은 연료 중성자가 부족할 때 축적되며 정상 작동 중에 소진됩니다. 중성자의 효율은 유형에 따라 다르며, 대부분의 연료는 §가장 좋은 분할은 §r §저속 중성자§r입니다. -book.rbmk.page16=§4§l 피하십시오. -book.rbmk.page2=리액터가 작동하면 §lheat§r이 생성됩니다. 열은 부품 사이로 퍼지며 그 과정에서 서서히 감소합니다. 목표는 원자로를 녹이지 않고 가능한 한 많은 열을 생성하고 원자로를 냉각하고 증기를 생성하는 증기 통로로 열을 전달하는 것입니다. -book.rbmk.page3=§l연료 막대§r는 중성자 플럭스를 포착하여 막대 내부의 연료가 반응하도록 하고 그 과정에서 중성자를 방출합니다. 중성자는 최대 범위가 5개 블록인 네 가지 주요 방향 모두에서 방출됩니다. 방출된 중성자의 양은 사용된 연료에 따라 다릅니다. -book.rbmk.page4=§l제어봉§r은 통과하는 중성자의 수를 줄입니다. 완전히 삽입되면 모든 중성자를 차단합니다. 중간에 삽입하면 절반만 차단됩니다. 제어봉은 원자로의 활동을 조절하고 정지시키는 데 사용됩니다. -book.rbmk.page5=현재 막대 삽입이 GUI 중앙에 표시됩니다. 왼쪽의 컬러 버튼은 색상 그룹에 제어 막대를 추가하며 §lRBMK§r 콘솔에서 그룹화된 막대를 빠르게 선택하는 데 유용합니다. 오른쪽에 있는 버튼을 사용하면 25%%씩 수동으로 삽입할 수 있습니다. -book.rbmk.page6=§L자동 제어봉§r은 일반 제어봉과 거의 동일하지만 수동으로 조정할 수 없으며 대신 현재 온도에 따라 막대의 위치를 ​​조정합니다. 어떤 기능을 사용할 것인지, 얼마나 깊이 삽입할 것인지, 어떤 온도에서 사용할 것인지를 먼저 결정해야 합니다. -book.rbmk.page7=§l스팀 채널§r은 원자로 열 수준을 능동적으로 낮추는 유일한 부분입니다. 구성 요소가 주어진 유형의 증기의 끓는점보다 높으면 끓는점 아래로 냉각하는 데 필요한 만큼의 물을 소비하고 필요한 만큼의 증기를 생성하려고 합니다. -book.rbmk.page8=§l중성자 반사체§r는 중성자의 통과를 차단하고, 대신 중성자는 그들이 나온 연료봉에 다시 반사됩니다. 이는 단순히 원자로를 떠나서 낭비되는 중성자를 사용하는 데 유용합니다. -book.rbmk.page9=§l중성자 흡수체§r는 단순히 중성자를 차단합니다. 흡수된 중성자는 열을 발생시키지 않고 효과적으로 파괴됩니다. 이는 연료봉이 닿을 수 있는 범위 내에서 반응하는 것을 방지하는 데 유용합니다. -book.rbmk.title1=소개 -book.rbmk.title10=흑연 지연제 -book.rbmk.title11=구조 기둥 -book.rbmk.title12=콘솔 -book.rbmk.title13=콘솔 사용 -book.rbmk.title15=연료 -book.rbmk.title16=녹는 -book.rbmk.title2=열 -book.rbmk.title3=연료봉 -book.rbmk.title4=조절 막대 -book.rbmk.title5=조절봉 - 사용법 -book.rbmk.title5.scale=0.9 -book.rbmk.title6=자동 제어봉 -book.rbmk.title7=스팀 채널 -book.rbmk.title8=중성자 반사경 -book.rbmk.title9=중성자 흡수기 -chem.ASPHALT=아스팔트 생산 -chem.BALEFIRE=BF 로켓 연료 혼합 -chem.BP_BIOFUEL=바이오연료 트랜스에스테르화 -chem.BP_BIOGAS=바이오가스 생산 -chem.CC_HEATING=고급 석탄 액화 -chem.CC_HEAVY=기본 석탄 액화 -chem.CC_I=향상된 석탄 액화 -chem.CC_NAPHTHA=나프타 석탄 액화 -chem.CC_OIL=석탄 액화 -chem.CIRCUIT_4=오버클럭 회로 생산 -chem.CIRCUIT_5=고성능 회로 생산 -chem.COLTAN_CLEANING=콜탄 퓨리파잉 -chem.COLTAN_CRYSTAL=탄탈륨 결정화 -chem.COLTAN_PAIN=판데모니움(III) 탄탈라이트 생산 -chem.CONCRETE=콘크리트 생산 -chem.CONCRETE_ASBESTOS=석면 콘크리트 생산 -chem.COOLANT=냉각수 혼합 -chem.CORDITE=코다이트 생산 -chem.CRYOGEL=크라이오겔 믹싱 -chem.DESH=요리 생산 -chem.DEUTERIUM=중수소 추출 -chem.DUCRETE=듀크레타이즈화 -chem.DYN_DNT=다이뉴트로늄 다이노합성 -chem.DYN_EUPH=Euphhemium Dynosynthesis -chem.DYN_SCHRAB=Schrabidium 다이노합성 -chem.ELECTROLYSIS=극저온 전기분해 -chem.FC_BITUMEN=구두약 크래킹 -chem.FC_DIESEL_KEROSENE=디젤 크래킹 -chem.FC_GAS_PETROLEUM=가스 크래킹 -chem.FC_I_NAPHTHA=산업용 오일 크래킹 -chem.FC_KEROSENE_PETROLEUM=등유 크래킹 -chem.FP_HEAVYOIL=중유 가공 -chem.FP_LIGHTOIL=경유 가공 -chem.FP_NAPHTHA=나프타 처리 -chem.FP_SMEAR=산업용 석유 처리 -chem.FR_PETROIL=석유 혼합 -chem.FR_REOIL=오일 재처리 -chem.KEVLAR=케블라 컴파운드 생산 -chem.NITAN=NITAN 슈퍼 연료 혼합 -chem.OIL_SAND=역청 추출 -chem.PEROXIDE=과산화수소 생산 -chem.POLYMER=고분자 합성 -chem.PUF6=플루토늄 헥사플루오라이드 생산 -chem.SAS3=Schrabidium Trisulfide 생산 -chem.SATURN=토성 생산 -chem.SCHRABIDATE=Ferric Schrabidate 생산 -chem.SCHRABIDIC=슈라비딕산 혼합 -chem.SF_BIOFUEL=바이오 연료 고형화 -chem.SF_BIOGAS=바이오가스 응고 -chem.SF_DIESEL=디젤 응고 -chem.SF_GAS=천연가스 응고 -chem.SF_HEATINGOIL=난방유 응고 -chem.SF_HEAVYOIL=중유 응고 -chem.SF_KEROSENE=등유 응고 -chem.SF_LIGHTOIL=경유 응고 -chem.SF_LUBRICANT=윤활유 응고 -chem.SF_NAPHTHA=나프타 응고 -chem.SF_OIL=원유 응고 -chem.SF_PETROIL=석유 응고 -chem.SF_PETROLEUM=석유 가스 응고 -chem.SF_RECLAIMED=매립유 응고 -chem.SF_SMEAR=산업용 오일 응고 -chem.SOLID_FUEL=고체 로켓 연료 생산 -chem.STEAM=끓는 물 -chem.TEL=TEL 믹싱 -chem.TEST=테스트 -chem.UF6=육불화 우라늄 생산 -chem.VIT_GAS=기체 핵폐기물 유리화 -chem.VIT_LIQUID=액체 핵폐기물 유리화 -chem.XENON=린데 제논 사이클 -chem.YELLOWCAKE=옐로케이크 생산 -container.amsBase=AMS 베이스 [WIP] -container.amsEmitter=AMS 이미터 [WIP] -container.amsLimiter=AMS 안정기 [WIP] -container.anvil=티어 %s 모루 -container.arcFurnace=아크로 -container.armorTable=갑옷 수정 표 -container.assembler=조립 기계 -container.barrel=통 -container.bat9000=큰 엉덩이 탱크 9000 -container.battery=에너지 저장 -container.bombMulti=다목적 폭탄 -container.centrifuge=원심분리기 -container.chemplant=화학 공장 -container.compactLauncher=소형 발사대 -container.crateDesh=접시 상자 -container.crateIron=철 상자 -container.crateSteel=강철 상자 -container.crateTungsten=텅스텐 상자 -container.crystallizer=광석 산성화제 -container.cyclotron=사이클로트론 -container.dfcCore=다크 퓨전 코어 -container.dfcEmitter=DFC 이미 터 -container.dfcInjector=DFC 연료 분사 장치 -container.dfcReceiver=DFC 수신기 -container.dfcStabilizer=DFC 안정제 -container.diFurnace=고로 -container.electricFurnace=전기로 -container.epress=전기 프레스 -container.factoryAdvanced=고급 공장 -container.factoryTitanium=기본 공장 -container.fluidtank=탱크 -container.forceField=포스필드 이미터 -container.fusionMultiblock=빅 퓨전 리액터 -container.fusionaryWatzPlant=퓨전 와츠 공장 -container.gasCentrifuge=가스 원심 분리기 -container.gasFlare=가스 플레어 -container.generator=원자로 -container.hadron=입자 가속기 -container.iGenerator=산업용 발전기 -container.keyForge=자물쇠 제조공 테이블 -container.launchPad=미사일 발사대 -container.launchTable=대형 발사대 -container.machineBoiler=보일러 -container.machineCMB=CMB 강철로 -container.machineCoal=연소 발전기 -container.machineDiesel=디젤 발전기 -container.machineElectricBoiler=전기 보일러 -container.machineFEL=지옥 -container.machineITER=핵융합로 -container.machineLargeTurbine=산업용 증기 터빈 -container.machineRTGBoiler=RTG 보일러 -container.machineRefinery=정유 공장 -container.machineSILEX=사일렉스 -container.machineSelenium=방사형 성능 엔진 -container.machineShredder=슈레더 -container.machineTurbine=증기 터빈 -container.machineTurbofan=터보팬 -container.machine_deuterium=중수소 추출기 -container.machine_schrabidium_transmutator=슈라비디움 변환 장치 -container.microwave=마이크로파 -container.miningDrill=자동 채광 드릴 -container.miningLaser=마이닝 레이저 -container.missileAssembly=미사일 조립소 -container.nukeBoy=어린 소년 -container.nukeCustom=커스텀 핵무기 -container.nukeFleija=F.L.E.I.J.A. -container.nukeFstbmb=베일파이어 폭탄 -container.nukeFurnace=원자력로 -container.nukeGadget=가제트 -container.nukeMan=뚱뚱한 남자 -container.nukeMike=아이비 마이크 -container.nukeN2=N² 광산 -container.nukeN45=N45 해군 광산 -container.nukePrototype=프로토타입 -container.nukeSolinium=더 블루 린스 -container.nukeTsar=차르 봄바 -container.oilWell=유정탑 -container.orbus=무거운 반물질 저장소 -container.plasmaHeater=플라즈마 히터 -container.press=버너 프레스 -container.puf6_tank=PuF6 탱크 -container.pumpjack=펌프잭 -container.radGen=방사선 동력 엔진 -container.radar=레이더 -container.radiobox=FM 송신기 -container.radiorec=FM 라디오 -container.railgun=레일건 -container.rbmkBoiler=RBMK 스팀 채널 -container.rbmkControl=RBMK 제어봉 -container.rbmkControlAuto=RBMK 자동 제어봉 -container.rbmkOutgasser=RBMK 조사 채널 -container.rbmkReaSim=RBMK 연료봉(ReaSim) -container.rbmkRod=RBMK 연료봉 +armor.electricJetpack=전기 제트팩 +armor.glider=글라이더 + +key.categories.hbm.craneLoad=RBMK 크레인 하중 +key.categories.hbm.craneMoveDown=RBMK 크레인 아래로 이동 +key.categories.hbm.craneMoveLeft=RBMK 크레인 왼쪽으로 이동 +key.categories.hbm.craneMoveRight=RBMK 크레인 오른쪽으로 이동 +key.categories.hbm.craneMoveUp=RBMK 크레인 위로 이동 +key.categories.hbm.reload=새로고침 +key.categories.hbm.toggleBack=뒤로 전환 +key.categories.hbm.toggleHUD=토글 허드 + +item.ore_bedrock.name=%s 배드락 광석 +item.ore_bedrock_centrifuged.name=원심 분리 된 %s 광석 +item.ore_bedrock_cleaned.name=청소된 %s 광석 +item.ore_bedrock_deepcleaned.name=깊게 청소된 %s 광석 +item.ore_bedrock_enriched.name=농축된 %s 광석 +item.ore_bedrock_nitrated.name=질화된 %s 광석 +item.ore_bedrock_nitrocrystalline.name=니트로크리스탈린 %s 광석 +item.ore_bedrock_purified.name=정제된 %s 광석 +item.ore_bedrock_seared.name=그을린 %s 광석 +item.ore_bedrock_separated.name=분리된 %s 광석 +item.ore_bedrock_exquisite.name=절묘한 %s 광석 +item.ore_bedrock_perfect.name=완벽한 %s 광석 + +item.nugget_unobtainium_greater.name=언옵테이늄-440 조각 +item.nugget_unobtainium_lesser.name=언옵테이늄-439 조각 + +tile.waste_leaves.name=폐기물 잎 +tile.fluid_duct_solid.name=밀봉된 유체 덕트 +tile.fluid_duct_solid_sealed.name=방사능 밀봉 유체 덕트 +tile.field_disturber.name=고에너지 필드 방해기 + +tile.radio_torch_sender.name=레드스톤-오버-라디오 발신자 +tile.radio_torch_receiver.name=레드스톤 오버 라디오 수신기 +container.rttySender=레드스톤-오버-라디오 발신자 +container.rttyReceiver=레드스톤 오버 라디오 수신기 + +tile.reinforced_brick_slab.name=강화된 벽돌 슬라브 +tile.reinforced_brick_stairs.name=강화된 벽돌 계단 +tile.reinforced_sand_slab.name=강화된 모래 석판 +tile.reinforced_sand_stairs.name=강화된 모래 계단 +tile.reinforced_stone_slab.name=강화된 석판 +tile.reinforced_stone_stairs.name=강화된 돌 계단 +tile.brick_concrete_slab.name=콘크리트 벽돌 슬라브 +tile.brick_concrete_stairs.name=콘크리트 벽돌 계단 +tile.brick_concrete_mossy_slab.name=이끼 낀 콘크리트 반블럭 +tile.brick_concrete_mossy_stairs.name=이끼 낀 콘크리트 계단 +tile.brick_concrete_cracked_slab.name=깨진 콘크리트 반블럭 +tile.brick_concrete_cracked_stairs.name=깨진 콘크리트 계단 +tile.brick_concrete_broken_slab.name=부서진 콘크리트 반블럭 +tile.brick_concrete_broken_stairs.name=깨진 콘크리트 계단 +tile.brick_compound_slab.name=복합 메쉬 반블럭 +tile.brick_compound_stairs.name=복합 메쉬 계단 +tile.brick_asbestos_slab.name=석면 벽돌 반블럭 +tile.brick_asbestos_stairs.name=석면 벽돌 계단 +tile.brick_obsidian_slab.name=흑요석 벽돌 반블럭 +tile.brick_obsidian_stairs.name=흑요석 벽돌 계단 +tile.cmb_brick_reinforced_slab.name=강화된 CMB 벽돌 반블럭 +tile.cmb_brick_reinforced_stairs.name=강화된 CMB 벽돌 계단 +tile.concrete_slab.name=콘크리트 타일 반블럭 +tile.concrete_stairs.name=콘크리트 타일 계단 +tile.concrete_smooth_slab.name=콘크리트 반블럭 +tile.concrete_smooth_stairs.name=콘크리트 계단 +tile.concrete_white_slab.name=흰색 콘크리트 반브럭 +tile.concrete_white_stairs.name=흰색 콘크리트 계단 +tile.concrete_orange_slab.name=주황색 콘크리트 반블럭 +tile.concrete_orange_stairs.name=주황색 콘크리트 계단 +tile.concrete_magenta_slab.name=마젠타 콘크리트 반블럭 +tile.concrete_magenta_stairs.name=마젠타색 콘크리트 계단 +tile.concrete_light_blue_slab.name=하늘색 콘크리트 반블럭 +tile.concrete_light_blue_stairs.name=하늘색 콘크리트 계단 +tile.concrete_yellow_slab.name=노란색 콘크리트 반블럭 +tile.concrete_yellow_stairs.name=노란색 콘크리트 계단 +tile.concrete_lime_slab.name=라임 콘크리트 반블럭 +tile.concrete_lime_stairs.name=라임 콘크리트 계단 +tile.concrete_pink_slab.name=핑크 콘크리트 반블럭 +tile.concrete_pink_stairs.name=핑크 콘크리트 계단 +tile.concrete_gray_slab.name=회색 콘크리트 반블럭 +tile.concrete_gray_stairs.name=회색 콘크리트 계단 +tile.concrete_silver_slab.name=실버 콘크리트 반블럭 +tile.concrete_silver_stairs.name=실버 콘크리트 계단 +tile.concrete_cyan_slab.name=청록색 콘크리트 반블럭 +tile.concrete_cyan_stairs.name=청록색 콘크리트 계단 +tile.concrete_purple_slab.name=보라색 콘크리트 반블럭 +tile.concrete_purple_stairs.name=보라색 콘크리트 계단 +tile.concrete_blue_slab.name=파란색 콘크리트 반블럭 +tile.concrete_blue_stairs.name=파란색 콘크리트 계단 +tile.concrete_brown_slab.name=갈색 콘크리트 반블럭 +tile.concrete_brown_stairs.name=갈색 콘크리트 계단 +tile.concrete_green_slab.name=녹색 콘크리트 반블럭 +tile.concrete_green_stairs.name=녹색 콘크리트 계단 +tile.concrete_red_slab.name=빨간색 콘크리트 반블럭 +tile.concrete_red_stairs.name=빨간 콘크리트 계단 +tile.concrete_black_slab.name=검은색 콘크리트 반블럭 +tile.concrete_black_stairs.name=검은색 콘크리트 계단 +tile.concrete_asbestos_slab.name=석면 콘크리트 반블럭 +tile.concrete_asbestos_stairs.name=석면 콘크리트 계단 +tile.ducrete_smooth_slab.name=매끄러운 듀크리트 반블럭 +tile.ducrete_smooth_stairs.name=부드러운 듀크리트 계단 +tile.ducrete_slab.name=듀크리트 반블럭 +tile.ducrete_stairs.name=듀크리트 계단 +tile.ducrete_brick_slab.name=듀크리트 벽돌 반블럭 +tile.ducrete_brick_stairs.name=듀크리트 벽돌 계단 +tile.ducrete_reinforced_slab.name=강화된 듀크리트 반블럭 +tile.ducrete_reinforced_stairs.name=강화된 듀크리트 계단 +tile.tile_lab_slab.name=실험실 타일 반블럭 +tile.tile_lab_stairs.name=실험실 타일 계단 +tile.tile_lab_cracked_slab.name=깨진 실험실 타일 반블럭 +tile.tile_lab_cracked_stairs.name=깨진 실험실 타일 계단 +tile.tile_lab_broken_slab.name=깨진 실험실 타일 반블럭 +tile.tile_lab_broken_stairs.name=깨진 실험실 타일 계단 + +item.grenade_solinium.name=솔리늄 수류탄 + +tile.radsensor.name=방사선 센서 +tile.waste_grass_tall.name=오염된 잔디 + +item.mp_warhead_15_volcano.name=크기 15 화산 탄두 +fluid.radwater_fluid=방사수 + +tile.rbmk_crane_console.name=RBMK 크레인 콘솔 container.rbmkStorage=RBMK 스토리지 -container.reactor=번식 반응기 -container.reactorControl=반응기 원격 제어 블록 -container.reactorLarge=큰 원자로 -container.reactorSmall=원자로 -container.reix=Rei-X 메인프레임 -container.rtg=RTG 생성기 -container.rtgFurnace=RTG로 -container.safe=안전한 -container.satDock=화물 랜딩 패드 -container.satLinker=SatLink 장치 -container.siren=사이렌 -container.soyuzCapsule=화물 착륙 캡슐 -container.soyuzLauncher=소유즈 런칭 플랫폼 -container.storageDrum=핵 폐기물 처리 드럼 -container.teleLinker=텔링크 장치 -container.teleporter=텔레포터 -container.turretChekhov=체호프의 총 -container.turretFriendly=미스터 프렌들리 -container.turretFritz=프리츠 -container.turretHoward=하워드 -container.turretJeremy=제레미 -container.turretMaxwell=맥스웰 -container.turretRichard=리차드 -container.turretTauon=타우온 -container.uf6_tank=UF6 탱크 -container.wasteDrum=사용후 연료 풀 드럼 -container.watzPowerplant=와츠 발전소 -death.attack.acid=%1$s는 산성에 빠졌습니다. -death.attack.ams=%1$s은(는) 인간 과학에 의해 아직 이름이 지정되지 않은 치명적인 입자에 휩싸였습니다. -death.attack.amsCore=%1$s은(는) 특이점의 불길 속에서 증발했습니다. -death.attack.asbestos=%1$s은(는) 금전적 보상을 받을 자격이 있습니다. -death.attack.bang=%1$s은(는) 한 입 크기의 조각으로 폭발했습니다. -death.attack.blackhole=%1$s이(가) 스파게티되었습니다. -death.attack.blacklung=%1$s는 탄광에 목숨을 바쳤습니다. -death.attack.blender=%1$s은(는) 한입 크기로 잘게 잘랐습니다. -death.attack.boat=%1$s이(가) 보트에 치였습니다. -death.attack.boxcar=%1$s은(는) 떨어지는 화차에 깔렸습니다. 오 잘. -death.attack.broadcast=%1$s은(는) 머리가 녹았습니다. -death.attack.building=%1$s은(는) 떨어지는 건물에 치였습니다. -death.attack.cheater=%1$s의 내장이 귀리로 변했습니다. (???) -death.attack.chopperBullet=%1$s은(는) %2$s에 의해 요청되었습니다. -death.attack.cloud=%1$s은(는) 햇볕에 아이스크림처럼 녹았습니다. -death.attack.cmb=%1$s은(는) %2$s에 의해 피즐링되었습니다. -death.attack.crucible=%1$s은(는) 순수한 은빛 은빛 에너지의 칼날에 의해 양분되었습니다. -death.attack.digamma=%1$s이(가) 심연으로 들어갔습니다. -death.attack.electricity=%1$s이(가) 감전사했습니다. -death.attack.electrified=%1$s은(는) %2$s에 의해 전기가 통했습니다. -death.attack.euthanized=%1$s는 %2$s에 의해 안락사되었습니다. -death.attack.euthanizedSelf=%1$s는 스스로를 안락사시켰습니다. -death.attack.euthanizedSelf2=%1$s이(가) Darwin Award를 수상했습니다. -death.attack.exhaust=%1$s는 시작 로켓에 의해 시시 케밥으로 바뀌었습니다. -death.attack.flamethrower=%1$s는 %2$s에 의해 화장되었습니다. -death.attack.gluon=%1$s은(는) 농축된 글루온 흐름에 의해 원자가 제거되었습니다. -death.attack.gunGib=%1$s은(는) %2$s에 의해 조각났습니다. -death.attack.ice=%1$s은(는) %2$s에 의해 아이스크림으로 바뀌었습니다. -death.attack.laser=%1$s는 %2$s에 의해 재로 변했습니다. -death.attack.lead=%1$s 납 중독으로 사망했습니다. -death.attack.lunar=%1$s이 중요한 장기를 충전하는 것을 잊었습니다. -death.attack.meteorite=%1$s은(는) 우주에서 떨어지는 돌에 맞았습니다. -death.attack.mku=%1$s가 알 수 없는 원인으로 사망했습니다. -death.attack.monoxide=%1$s님이 일산화탄소 감지기의 배터리를 교체하는 것을 잊었습니다. -death.attack.mudPoisoning=%1$s는 유독성 진흙에서 사망했습니다. -death.attack.nuclearBlast=%1$s은(는) 핵폭발로 날아갔습니다. -death.attack.pc=%1$s은(는) 분홍색 구름 속의 웅덩이로 축소되었습니다. -death.attack.plasma=%1$s는 %2$s에 의해 희생되었습니다. -death.attack.radiation=%1$s은(는) 방사능 중독으로 사망했습니다. -death.attack.revolverBullet=%1$s은(는) %2$s에 의해 머리에 총을 맞았습니다. -death.attack.rubble=%1$s이(가) 잔해에 짓눌렸습니다. -death.attack.shrapnel=%1$s에 파편이 박혔습니다. -death.attack.slicer=%1$s이(가) 반으로 잘렸습니다. -death.attack.spikes=%1$s이(가) 찔렸습니다. -death.attack.subAtomic=%1$s의 원자가 %2$s에 의해 파괴되었습니다. -death.attack.subAtomic2=%1$s은(는) %2$s가 사실상의 속도를 변조했기 때문에 QPU가 잘못 정렬되었습니다. -death.attack.subAtomic3=%1$s의 다이버전스는 %2$s 때문에 1% 미만으로 떨어졌습니다. -death.attack.subAtomic4=%1$s를 0으로 %2$s로 나누었습니다. -death.attack.subAtomic5=%1$s은(는) %2$s에 의해 무효화되었습니다. -death.attack.suicide=%1$s이(가) 머리를 날려버렸습니다. -death.attack.taint=%1$s이 플럭스 종양으로 사망했습니다. -death.attack.tau=%1$s는 음전하 타우온을 사용하여 %2$s에 의해 수수께끼를 냈습니다. -death.attack.tauBlast=%1$s이(가) XVL1456을 너무 오래 충전하여 산산조각이 났습니다. -death.attack.teleporter=%1$s은(는) 무 상태로 텔레포트되었습니다. -desc.item.rtgDecay=다음으로 소멸: %s -desc.item.rtgHeat=더위: %s -digamma.playerDigamma=플레이어 오염: -digamma.playerHealth=플레이어 고갈: -digamma.title=디감마 진단 -dosimeter.title=선량계 -entity.entity_balls_o_tron.name=볼오트론 프라임 -entity.entity_balls_o_tron_seg.name=Balls-O-Tron 세그먼트 -entity.entity_bullet.name=총알 -entity.entity_bullet_mk2.name=총알 -entity.entity_cyber_crab.name=사이버 크랩 -entity.entity_elder_one.name=콰코스 더 엘더 원 -entity.entity_fucc_a_ducc.name=오리 -entity.entity_hunter_chopper.name=헌터 헬기 -entity.entity_mask_man.name=마스크맨 -entity.entity_ntm_fbi.name=FBI 요원 -entity.entity_ntm_radiation_blaze.name=멜트다운 엘리멘탈 -entity.entity_ntm_ufo.name=화성 침공선 -entity.entity_nuclear_creeper.name=핵 크리퍼 -entity.entity_rbmk_debris.name=방사성 RBMK 파편 -entity.entity_rocket.name=로켓 -entity.entity_schrabnel.name=슈라브넬 -entity.entity_taint_crab.name=테인트 크랩 -entity.entity_tainted_creeper.name=오염된 크리퍼 -entity.entity_tesla_crab.name=테슬라 크랩 -fluid.acid=과산화수소 -fluid.acid_fluid=산 -fluid.amat=반물질 -fluid.aschrab=안티스크라비디움 -fluid.balefire=BF 로켓 연료 -fluid.biofuel=바이오 연료 -fluid.biogas=바이오가스 -fluid.bitumen=역청 -fluid.coolant=냉각수 -fluid.corium_fluid=진피 -fluid.cryogel=크리오겔 -fluid.deuterium=중수소 -fluid.diesel=디젤 -fluid.gas=천연 가스 -fluid.gasoline=유연 휘발유 -fluid.heatingoil=난방유 -fluid.heavyoil=중유 -fluid.hotoil=뜨거운 원유 -fluid.hotsteam=짙은 증기 -fluid.hydrogen=액체 수소 -fluid.kerosene=둥유 -fluid.lightoil=경유 -fluid.lubircant=엔진 윤활유 -fluid.lubricant=엔진 윤활유 -fluid.mercury=수은 -fluid.mud_fluid=유독한 진흙 -fluid.naphtha=나프타 -fluid.nitan=NITAN© 100 옥탄 슈퍼 연료 -fluid.oil=원유 -fluid.oxygen=액체 산소 -fluid.pain=판데모니움(III) 탄탈라이트 용액 -fluid.petroil=휘발유 -fluid.petroleum=석유 가스 -fluid.plasma_bf=베일파이어 플라즈마 -fluid.plasma_dt=중수소-삼중수소 플라즈마 -fluid.plasma_hd=수소-중수소 플라즈마 -fluid.plasma_ht=수소-삼중수소 플라즈마 -fluid.plasma_xm=크세논-수은 플라즈마 -fluid.puf6=플루토늄 헥사플루오라이드 -fluid.radwater_fluid=방사능수 -fluid.reclaimed=재생 산업용 오일 -fluid.sas3=슈라비디움 트리설파이드 -fluid.schrabidic=슈라비딕산 -fluid.smear=산업용 오일 -fluid.spentsteam=저압 증기 -fluid.steam=증기 -fluid.superhotsteam=초고밀도 증기 -fluid.toxic_fluid=셀라린 -fluid.tritium=삼중 수소 -fluid.uf6=육불화 우라늄 -fluid.ultrahotsteam=초고밀도 증기 -fluid.volcanic_lava_fluid=화산 용암 -fluid.wastefluid=액체 핵폐기물 -fluid.wastegas=기체 핵폐기물 -fluid.watz=유독한 진흙 -fluid.xenon=크세논 가스 -geiger.chunkRad=현재 청크 방사선: -geiger.envRad=총 환경 방사선: -geiger.playerRad=플레이어 오염: -geiger.playerRes=플레이어 저항: -geiger.recievedRad=총 수신 방사선: -geiger.title=가이거 계수관 -hadron.analysis=분석하는... -hadron.buttonOff=분석 챔버가 꺼져 있습니다. -hadron.buttonOn=분석 챔버(있는 경우)가 켜져 있습니다. -hadron.error=오류! -hadron.hopper0=§e일반 모드:$모든 항목이 사용됩니다. -hadron.hopper1=§eHopper Mode:$항상 하나의 아이템이 남습니다. -hadron.idle=게으른 -hadron.modeCircular=§eCircular Accelerator Mode:$자석이 코어로 돌아가야 합니다.$더 많은 레시피를 잠금 해제합니다. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator는 분석실과 함께 끝납니다.$Fewer Recipes. -hadron.noresult=결과가 없다. -hadron.progress=진행 중... -hadron.success=완전한! -hbm.achievement.assembly=제작 -hbm.achievement.assembly.desc=Vault-tec 지원 레벨 2(조립 기계) -hbm.achievement.bossCreeper=네 다리에 폭탄 -hbm.achievement.bossCreeper.desc='핵 크리퍼가 있다? 그게 말이 돼?!' -hbm.achievement.bossMaskman=6개월 의무 복무하고 형편없는 티셔츠 하나 -hbm.achievement.bossMaskman.desc=큰 소년을 봉크. -hbm.achievement.bossMeltdown=3.6 뢴트겐 -hbm.achievement.bossMeltdown.desc=위대한 것보다 끔찍한 것이지 만 내가 얻을 수있는 것을 가져갑니다. -hbm.achievement.bossWorm=Balls-O-Tron 분해 -hbm.achievement.bossWorm.desc=팹스태프. 내 엉덩이. 당신은 수학을합니다. -hbm.achievement.c20_5=장 [20점 5] -hbm.achievement.c20_5.desc=??? -hbm.achievement.c44=제44장 -hbm.achievement.c44.desc=아연 도금! 내 말은, 아연! -hbm.achievement.chemistry=화학 -hbm.achievement.chemistry.desc=Vault-tec 지원 레벨 3(콘크리트 벽돌) -hbm.achievement.digammaFeel=느낌의 공포 -hbm.achievement.digammaFeel.desc=그 안의 공허함. -hbm.achievement.digammaKauaiMoho=카우아이 모호호의 노래를 불러줘 -hbm.achievement.digammaKauaiMoho.desc=모든 것이 끔찍합니다. 여기 뜨거운 choccy가 있습니다. -hbm.achievement.digammaKnow=앎의 공포 -hbm.achievement.digammaKnow.desc=이 세상이 무엇에 관한 것인지. -hbm.achievement.digammaSee=보는 공포 -hbm.achievement.digammaSee.desc=심연으로. -hbm.achievement.digammaUpOnTop=나를 존경하라, 나의 집을 존경하라 -hbm.achievement.digammaUpOnTop.desc=나는 내가 원하는 것을 하지만 무책임하게 한다. -hbm.achievement.fiend=체납 -hbm.achievement.fiend.desc=심술 궂다. -hbm.achievement.fiend2=연체자 2: 연체자 심화 -hbm.achievement.fiend2.desc=더 비열해지세요. -hbm.achievement.foeq=페가시 및 미사일 사일로 -hbm.achievement.foeq.desc=화성으로 중계를 보내...두나이안 궤도를 의미합니다. -hbm.achievement.freytag=프레이탁 -hbm.achievement.freytag.desc=헤롤드의 인명 구조원 -hbm.achievement.hidden=숨겨진 카탈로그 -hbm.achievement.hidden.desc=떨어지는 화차로 오염된 크리퍼를 처치하십시오. -hbm.achievement.horizonsBonus=슬램덩크 설사 -hbm.achievement.horizonsBonus.desc=도대체 당신에게 무슨 문제가 있는 건지 하나님께 솔직하게 -hbm.achievement.horizonsEnd=지평선 -hbm.achievement.horizonsEnd.desc=톰을 집으로 보내십시오. -hbm.achievement.horizonsStart=최고점 -hbm.achievement.horizonsStart.desc=달에 소년을 보내십시오. -hbm.achievement.impossible=말 그대로 불가능 -hbm.achievement.impossible.desc=이 hbm.achievement를 얻을 수 없습니다. -hbm.achievement.meltdown=예정되지 않은 신속한 분해 -hbm.achievement.meltdown.desc=여기까지 왔는데 어떻게 엉망으로 만들 수 있니? -hbm.achievement.metalworks=금속 작품 -hbm.achievement.metalworks.desc=Vault-tec 지원 레벨 1(용광로) -hbm.achievement.nuclear=원자력 과학 -hbm.achievement.nuclear.desc=Vault-tec 지원 레벨 5(우라늄 연료) -hbm.achievement.oil=석유 -hbm.achievement.oil.desc=Vault-tec 지원 레벨 4(전기 보일러) -hbm.achievement.omega12=오메가-12 입자 가속기 -hbm.achievement.omega12.desc=이 비참한 행성에서 계속되는 삶의 문제를 해결하십시오. -hbm.achievement.potato=불량 AI -hbm.achievement.potato.desc=날 찔렀어! 당신에게 잘못된 것은 무엇입니까-WOAH -hbm.achievement.radDeath=아야, 방사선! -hbm.achievement.radDeath.desc=마리 퀴리는 방사능 이론, 방사능 치료, 방사능으로 죽는 이론을 발명했습니다. -hbm.achievement.radPoison=예, 방사선! -hbm.achievement.radPoison.desc=방사선 중독의 영향을 받습니다. + +chem.HEAVY_ELECTROLYSIS=중수 극저온 전기분해 +chem.SOLVENT=유기용제 혼합 +chem.RADIOSOLVENT=고성능 용매 혼합 +chem.NITRIC_ACID=질산 생산 +chem.DUCRETE=양핵화 +chem.TNT=TNT 합성 +chem.C4=C-4 합성 +chem.DYNAMITE=다이너마이트 합성 +item.ball_tnt.name=TNT +item.ball_dynamite.name=다이너마이트 +item.ingot_c4.name=C-4 바 + +tile.ducrete.name=듀크리트 +tile.ducrete_smooth.name=부드러운 듀크리트 +tile.ducrete_brick.name=듀크리트 벽돌 +tile.ducrete_reinforced.name=강화된 듀크리트 +tile.block_niter_reinforced.name=강화된 나이터 + +tile.deco_rbmk.name=RBMK 장식 +tile.deco_rbmk_smooth.name=RBMK 부드러운 장식 + +item.ingot_astatine.name=아스타틴 주괴 + +item.ingot_radspice.name=네오벨린 주괴 +item.nugget_radspice.name=네오벨린 조각 +item.powder_radspice.name=네오벨린 가루 + +item.lung_diagnostic.name=폐 진단 +lung_scanner.title=폐 진단 +lung_scanner.player_asbestos_health=폐 건강[석면]: +lung_scanner.player_coal_health=페 건강[석탄]: +lung_scanner.player_total_health=폐 건강 합계: + +tile.waste_dirt.name=오염된 흙 +tile.waste_sand.name=오염된 모래 +tile.waste_sand_red.name=오염된 붉은 모래 +tile.waste_gravel.name=오염된 자갈 +item.rod_cobalt.name=코발트 막대 +item.rod_co60.name=코발트-60 막대 +item.rod_rgp.name=원자로급 플루토늄 막대 +item.rod_ac227.name=악티늄-227 막대 +item.rod_ra226.name=라듐-226 막대 + +item.rod_dual_cobalt.name=코발트 이중 막대 +item.rod_dual_co60.name=코발트-60 이중 막대 +item.rod_dual_rgp.name=원자로급 플루토늄 이중 막대 +item.rod_dual_ac227.name=악티늄-227 이중 막대 +item.rod_dual_ra226.name=라듐-226 이중 막대 + +item.rod_quad_cobalt.name=코발트 사중 막대 +item.rod_quad_co60.name=코발트-60 사중 막대 +item.rod_quad_rgp.name=원자로급 플루토늄 사중 막대 +item.rod_quad_ac227.name=악티늄-227 사중 막대 +item.rod_quad_ra226.name=라듐-226 사중 막대 + +battery.priority.high=충전 우선순위: 높음 +battery.priority.high.desc=항상 가득 차 있어야 하는 비상 버퍼 +battery.priority.low=충전 우선순위: 낮음 +battery.priority.low.desc=기계 성능에 영향을 주지 않고 잉여 에너지를 저장해야 하는 대부분의 사용 사례 +battery.priority.normal=충전 우선순위: 일반 +battery.priority.normal.desc=우선순위가 중요하지 않은 소규모 전력망 +battery.priority.recommended=권장 대상: + +item.battery_sc_lead.name=자체 충전 리드-209 배터리 +item.ingot_ac227.name=악티늄-227 주괴 +item.ingot_gh336.name=기오르슘-336 주괴 +item.ingot_pb209.name=리드-209 주괴 +item.ingot_niobium.name=니오브 주괴 +item.ingot_sr90.name=스트론튬-90 주괴 +item.ingot_bromine.name=브롬 주괴 +item.ingot_caesium.name=세슘 주괴 +item.ingot_cerium.name=세륨 주괴 +item.ingot_iodine.name=요오드 주괴 +item.ingot_i131.name=요오드-131 주괴 +item.ingot_neodymium.name=네오디뮴 주괴 +item.ingot_pb209.name=Lead-209 주괴 +item.ingot_ra226.name=라듐-226 주괴 +item.ingot_strontium.name=스트론튬 주괴 +item.ingot_sr90.name=스트론튬-90 주괴 +item.ingot_tennessine.name=테네신-294 주괴 +item.ingot_gh336.name=기오르슘-336 주괴 + +item.billet_unobtainium.name=언옵테이늄 중성자 빌렛 +item.billet_flashlead.name=플래쉬리드 빌렛 +item.billet_ac227.name=악티늄-227 빌렛 +item.billet_nuclear_waste.name=핵폐기물 빌렛 +item.billet_pb209.name=Lead-209 빌렛 +item.billet_ra226.name=라듐-226 빌렛 +item.billet_sr90.name=스트론튬-90 빌렛 +item.billet_beryllium.name=베릴륨 빌렛 +item.billet_bismuth.name=비스무트-209 빌렛 +item.billet_zirconium.name=지르코늄 빌렛 +item.billet_zfb_bismuth.name=비스무트-209 ZFB 빌렛 +item.billet_zfb_pu241.name=Pu-241 ZFB 빌렛 +item.billet_zfb_am_mix.name=아메리슘 ZFB 빌렛 +item.billet_gh336.name=기오르슘-336 빌렛 +item.bio_wafer.name=바이오 웨이퍼 + +item.nugget_actinium.name=악티늄 조각 +item.nugget_ac227.name=악티늄-227 조각 +item.nugget_cobalt.name=코발트 조각 +item.nugget_strontium.name=스트론튬 조각 +item.nugget_sr90.name=스트론튬-90 조각 +item.nugget_u238m2.name=준안정 U238-2 조각 +item.nugget_pb209.name=Lead-209 조각 +item.nugget_gh336.name=기오르슘-336 조각 + +item.powder_pb209.name=납-209 가루 +item.powder_ac227.name=악티늄-227 가루 +item.powder_ra226.name=라듐-226 가루 +item.powder_sr90.name=스트론튬-90 가루 +item.powder_sr90_tiny.name=작은 스트론튬-90 가루 더미 +item.powder_co60_tiny.name=코발트-60 가루의 작은 더미 +item.powder_iodine_tiny.name=작은 요오드 가루 더미 + +item.blades_aluminum.name=알루미늄 슈레더 블레이드 +item.decontamination_module.name=오염 제거 모듈 + +item.pellet_rtg_radium.name=라듐-226 RTG 펠릿 +item.pellet_rtg_weak.name=우라늄-238 RTG 펠릿 +item.pellet_rtg.name=플루토늄-238 RTG 펠릿 +item.pellet_rtg_strontium.name=스트론튬-90 RTG 펠릿 +item.pellet_rtg_cobalt.name=코발트-60 RTG 펠릿 +item.pellet_rtg_actinium.name=악티늄-227 RTG 펠릿 +item.pellet_rtg_americium.name=아메리슘-241 RTG 펠릿 +item.pellet_rtg_polonium.name=폴로늄-210 RTG 펠릿 +item.pellet_rtg_gold.name=Gold-198 RTG 펠릿 +item.pellet_rtg_lead.name=Lead-209 RTG 펠릿 +item.pellet_rtg_balefire.name=Balefire-XXX RTG 펠릿 +item.pellet_rtg_depleted_bismuth.name=고갈된 비스무트-209 RTG 펠릿 +item.pellet_rtg_depleted_lead.name=고갈된 납 RTG 펠릿 +item.pellet_rtg_depleted_mercury.name=고갈된 수은 RTG 펠릿 +item.pellet_rtg_depleted_neptunium.name=고갈된 넵투늄 RTG 펠릿 +item.pellet_rtg_depleted_zirconium.name=고갈된 지르코늄 RTG 펠릿 + +item.pellet_rtg_radium.desc=천연 라듐으로 만든 훌륭한 스타터 펠릿! +item.pellet_rtg_weak.desc=더 저렴하고 더 약한 펠릿, 이제 더 많은 U238이 추가되었습니다! +item.pellet_rtg_strontium.desc=캘리포니아 주에 알려진... +item.pellet_rtg_cobalt.desc=RTG로는 최고는 아니지만 감마선에는 좋습니다! +item.pellet_rtg_actinium.desc=푸른 빛과 베타선의 빛. +item.pellet_rtg_americium.desc=희귀하고 믿을 수 있는 오래된 아메리슘! +item.pellet_rtg_polonium.desc=최고급 폴로늄으로 제작되어 더욱 강력해진 RTG 펠릿! +item.pellet_rtg_gold.desc=희귀하고 매우 불안정한 금 동위원소로 만들어졌습니다. +item.pellet_rtg_lead.desc=노출되면 즉시 사망하게 됩니다. +item.pellet_rtg_balefire.desc=핵지옥... + +item.rbmk_pellet_flashlead.name=플래쉬리드 연료 펠릿 +item.rbmk_pellet_zfb_am_mix.name=연료 등급 아메리슘 ZFB 펠릿 +item.rbmk_pellet_zfb_bismuth.name=비스무트-209 ZFB 펠릿 +item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB 펠릿 + +item.rbmk_fuel_flashlead.name=플래쉬리드 RBMK 연료봉 +item.rbmk_fuel_zfb_am_mix.name=연료 등급 아메리슘 RBMK ZFB 연료봉 +item.rbmk_fuel_zfb_bismuth.name=비스무트-209 RBMK ZFB 연료봉 +item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB 연료봉 +item.rbmk_fuel_unobtainium.name=언옵테이늄 RBMK 중성자 연료봉 + +item.rbmk_pellet_unobtainium.name=언옵테이늄 중성자 막대 + +tile.concrete_white.name=흰색 콘크리트 +tile.concrete_orange.name=주황색 콘크리트 +tile.concrete_magenta.name=마젠타 콘크리트 +tile.concrete_light_blue.name=하늘색 콘크리트 +tile.concrete_yellow.name=노란색 콘크리트 +tile.concrete_lime.name=연두 콘크리트 +tile.concrete_pink.name=분홍 콘크리트 +tile.concrete_gray.name=회색 콘크리트 +tile.concrete_silver.name=밝은 회색 콘크리트 +tile.concrete_cyan.name=청록색 콘크리트 +tile.concrete_purple.name=보라색 콘크리트 +tile.concrete_blue.name=파란 콘크리트 +tile.concrete_brown.name=갈색 콘크리트 +tile.concrete_green.name=초록 콘크리트 +tile.concrete_red.name=빨간 콘크리트 +tile.concrete_black.name=검은 콘크리트 + +desc.item.rtgDecay=붕괴량: %s +desc.item.rtgHeat=열: %s + +trait.blinding=실명 +trait.breeding=증식 원자로에서 %s 작업 가치 +trait.digamma=디감마 방사선 +trait.drop=위험한 방울 +trait.furnace=원자로 화로 내 %s 작업 가치 +trait.heat=%s 열을 제공합니다 +trait.hlParticle=입자 반감기: %s +trait.hlPlayer=플레이어 반감기: %s +trait.hot=자연발화성/뜨거움 +trait.cryogenic=극저온 / 저온 +trait.toxic=독성 +trait.radioactive=방사성 +trait.radResistance=방사선 저항: %s +trait.asbestos=석면 +trait.hydro=수압폭발물 +trait.explosive=폭발물 +trait.unstable=불안정한 +trait.coal=석탄 먼지 +trait.contaminating=오염시키는 방울 + +trait.contaminating.radius=반지름: %sm +trait.cleanroom=깨끗함 +trait.cleanroom.desc=떨어뜨린 오염 아이템은 사라지지 않습니다. + +trait.flammable=가연성 +trait.flammable.desc=버킷 §e당 §6%sTU§f를 §e제공합니다. +trait.coolable=냉각 가능 +trait.coolable.desc=버킷 §c당 §4%sTU§f를 §c제공합니다. +trait.boilable=가열 가능 +trait.boilable.desc=버킷 §b당 §3%sTU§f를 §b를 제공합니다. +trait.hotfluid=더운 +trait.antimatter=전멸 +trait.corrosivePlastic=신랄한 +trait.corrosiveIron=부식성이 강함 + +trait.dfcFuel=DFC 연료 +trait.dfcFuel.desc=§d전력 출력 §5%s%% + +trait.rbmk.coreTemp=코어 온도량: %s +trait.rbmk.depletion=고갈량: %s +trait.rbmk.diffusion=확산량: %s +trait.rbmk.fluxFunc=플럭스 함수량: %s +trait.rbmk.funcType=기능 타입: %s +trait.rbmk.heat=출력 플럭스당 열: %s +trait.rbmk.melt=녹는점: %s +trait.rbmk.meltdown=내부 노심용융: %s +trait.rbmk.neutron.any=모든 중성자 +trait.rbmk.neutron.fast=고속 중성자 +trait.rbmk.neutron.slow=느린 중성자 +trait.rbmk.skinTemp=피부 온도: %s +trait.rbmk.source=자체 점화 +trait.rbmk.splitsInto=갈라짐: %s +trait.rbmk.splitsWith=분할 대상: %s +trait.rbmk.xenon=제논 축적량: %s +trait.rbmk.xenonBurn=제논 연소 기능: %s +trait.rbmk.xenonGen=제논 생성 기능: %s + +trait.rbmx.coreTemp=노심 엔트로피: %s +trait.rbmx.depletion=딱딱함: %s +trait.rbmx.diffusion=흐름: %s +trait.rbmx.fluxFunc=둠 함수: %s +trait.rbmx.funcType=기능 사양: %s +trait.rbmx.heat=방출된 엔트로피 당 크러스트: %s +trait.rbmx.melt=파쇄 깊이: %s +trait.rbmx.meltdown=현실 붕괴: %s +trait.rbmk.neutron.any.x=모든 비유클리드 형태 +trait.rbmk.neutron.fast.x=타원 비유클리드 형태 +trait.rbmk.neutron.slow.x=쌍곡선 비유클리드 형태 +trait.rbmx.skinTemp=피부 엔트로피: %s +trait.rbmx.source=자가 연소 +trait.rbmx.splitsInto=출발지: %s +trait.rbmx.splitsWith=도착지: %s +trait.rbmx.xenon=납 독: %s +trait.rbmx.xenonBurn=납 파괴 기능: %s +trait.rbmx.xenonGen=납 생성 기능: %s + +trait.tile.cluster=플레이어에 의해 파손된 경우에만 드롭됩니다. +trait.tile.depth=폭발로만 파괴 가능 + +info.coil=코일 강도 +info.templatefolder=템플릿 폴더로 생성됨 +info.template_in=입력: +info.template_in_p=입력: +info.template_out=산출: +info.template_out_p=출력: +info.template_seconds=초 +info.template_time=생산 시간: + +hadron.analysis=분석하는... +hadron.buttonOn=분석 챔버(있는 경우)가 켜져 있습니다. +hadron.buttonOff=분석실이 꺼져 있습니다 +hadron.error_generic=오류! +hadron.error_no_charge=오류 0x01 [NC] +hadron.error_no_analysis=오류 0x02 [NA] +hadron.error_obstructed_channel=오류 0x03 [OC] +hadron.error_expected_coil=오류 0x04 [EC] +hadron.error_malformed_segment=오류 0x05 [MS] +hadron.error_analysis_too_long=오류 0x06 [ATL] +hadron.error_analysis_too_short=오류 0x07 [ATS] +hadron.error_diode_collision=오류 0x08 [DC] +hadron.error_branching_turn=오류 0x09 [BT] +hadron.hopper0=§eNormal Mode:$모든 항목이 사용됩니다. +hadron.hopper1=§eHopper Mode:$하나의 항목은 항상 남아 있습니다. +hadron.idle=유휴 상태 +hadron.modeCircular=§e원형 가속기 모드: $자석은 코어로 루프백해야 합니다. $더 많은 조리법의 잠금을 해제합니다. +hadron.modeLine=§e선형 가속기 모드: $가속기는 분석 챔버로 끝납니다. $레시피가 적습니다. +hadron.noresult=결과가 없다. +hadron.noresult_too_slow=충분하다. 기세! +hadron.noresult_wrong_ingredient=잘못된 레시피입니다! +hadron.noresult_wrong_mode=모드가 잘못되었습니다! +hadron.progress=진행 중... +hadron.stats=이전 결과: +hadron.stats_coord=오류 위치: %s / %s / %s +hadron.stats_momentum=운동량: %s +hadron.success=성공 + +tool.ability.centrifuge=자동 원심분리기 +tool.ability.crystallizer=자동 결정화 장치 +tool.ability.explosion=폭발 +tool.ability.hammer=범위 +tool.ability.luck=행운 +tool.ability.mercury=머큐리 터치 +tool.ability.midas=마이다스의 손 +tool.ability.recursion=정맥 광부 +tool.ability.shredder=자동 파쇄기 +tool.ability.silktouch=섬세한 손길 +tool.ability.smelter=자동 제련소 +weapon.ability.radiation=방사성 칼날 +weapon.ability.vampire=흡혈귀 +weapon.ability.stun=굉장히 멋진 +weapon.ability.phosphorus=인 팁 +weapon.ability.beheader=참수기 +weapon.ability.chainsaw=고통톱 +weapon.ability.fire=불타는 +# Should rhyme with the translation for "chainsaw" + +hbm.advancement.root=NTM 확장 +hbm.advancement.root.desc=그리고 핵 모험이 시작됩니다 + +hbm.achievement.progress_dosimeter=선량계 +hbm.achievement.progress_dosimeter.desc=당신의 새로운 가장 친한 친구 + +hbm.achievement.progress_mask=더 이상 석탄 먼지가 없습니다 +hbm.achievement.progress_mask.desc=말려도 상관없어 + +hbm.achievement.progress_omega_filter=모두를 위한 하나 +hbm.achievement.progress_omega_filter.desc=이제 아무것도 날 막을 수 없어 + +hbm.achievement.progress_excavator=빅 보이 드릴 +hbm.achievement.progress_excavator.desc=부로 가는 관문 + +hbm.achievement.progress_bedrock_ore=무한한 광석 +hbm.achievement.progress_bedrock_ore.desc=어쩌면 언옵테이늄 장소를 찾을 수도 있을 것 같아요 + +hbm.achievement.progress_geiger=가이거 계수관 +hbm.achievement.progress_geiger.desc=업그레이드된 당신의 베스트 프렌드 + +hbm.achievement.progress_modtable=수정 테이블 +hbm.achievement.progress_modtable.desc=업그레이드 사람들 업그레이드 + +hbm.achievement.progress_anvil=모루 +hbm.achievement.progress_anvil.desc=수동이지만 효율적 + +hbm.achievement.aa_progress_burnerpress=압박감 속에서 +hbm.achievement.aa_progress_burnerpress.desc=나, 당신을 짓누르는 압박감 + +hbm.achievement.progress_folder=좋은 지혜를 가지고 있어요 +hbm.achievement.progress_folder.desc=어떻게 폴더에 인류의 모든 기계가 포함될 수 있습니까?? + +hbm.achievement.progress_assembler=공장이 성장하다 +hbm.achievement.progress_assembler.desc=잠깐만 벌써 새벽 1시야? + +hbm.achievement.progress_difurnace=석탄과 철 +hbm.achievement.progress_difurnace.desc=그들은 익스플로러 1호를 위해 침몰한 드레드노트를 인양했습니다. + +hbm.achievement.progress_steel=강철 +hbm.achievement.progress_steel.desc=우리 제국의 기초 + +hbm.achievement.progress_adv=고급 합금 +hbm.achievement.progress_adv.desc=우리 제국을 가능하게 하는 합금 + +hbm.achievement.progress_starmetal=XVIII 달 +hbm.achievement.progress_starmetal.desc=응. + +hbm.achievement.progress_book=The Book of §kboxcars +hbm.achievement.progress_book.desc=§kThe most secret secret + +hbm.achievement.progress_chemplant=공장은 성장한다 Pt. 2 +hbm.achievement.progress_chemplant.desc=이제 당신은 화학 물질로 생각하고 있습니다! + +hbm.achievement.progress_polymer=테프론 +hbm.achievement.progress_polymer.desc=맛있고 맛있는 미세플라스틱. + +hbm.achievement.progress_potatos=불량 AI +hbm.achievement.progress_potatos.desc=당신이 나를 찔렀어요! yo-WOOOAAH에 무슨 문제가 있나요? + +hbm.achievement.progress_concrete=오래되고 신뢰할 수 있는 +hbm.achievement.progress_concrete.desc=볼셰비키가 가장 좋아하는 인물. + +hbm.achievement.progress_rbmk=3.6 뢴테겐? +hbm.achievement.progress_rbmk.desc=그 사람은 망상에 빠졌어요. 의무실로 데려가세요. + +hbm.achievement.progress_rbmk_boom=15,000입니다. +hbm.achievement.progress_rbmk_boom.desc=거짓말의 대가는 얼마인가? + +hbm.achievement.progress_centrifuge_1=구심력 +hbm.achievement.progress_centrifuge_1.desc=원심력은 가짜입니다. @하지 마세요. + +hbm.achievement.progress_centrifuge_2=산업용 핵가스 토네이도 +hbm.achievement.progress_centrifuge_2.desc=FBI로부터 숨겨라 + +hbm.achievement.progress_u235=무기급 우라늄 +hbm.achievement.progress_u235.desc=당신의 선택: 평화인가 전쟁인가 + +hbm.achievement.progress_pu239=무기등급 플루토늄 +hbm.achievement.progress_pu239.desc=하하 웃긴 공 고 붐 + +hbm.achievement.progress_au198=가장 뜨거운 금 +hbm.achievement.progress_au198.desc=쥬얼리를 만들어보자 + +hbm.achievement.progress_radspice=체르노빌 주괴 +hbm.achievement.progress_radspice.desc=아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아 + +hbm.achievement.progress_osmiridium=오스뮴-이리듐 합금 +hbm.achievement.progress_osmiridium.desc=Digamma-Star 시스템에서 발생한 소행성에서 채굴됨 + +hbm.achievement.progress_dfc=태양 켜기 +hbm.achievement.progress_dfc.desc=별빛 캠프파이어 + +hbm.achievement.progress_creative=공인 DFC 전문가 +hbm.achievement.progress_creative.desc=이제 당신은 DFC에 능숙해졌습니다. + +hbm.achievement.progress_schrabidium=안정의 섬 +hbm.achievement.progress_schrabidium.desc=어쨌든 나는 그것을 너무 오랫동안 보지 않을 것입니다. + +hbm.achievement.progress_hadron=대형 강입자 충돌기 +hbm.achievement.progress_hadron.desc=당신은 인류의 최전선에 도달했습니다 + +hbm.achievement.progress_radium=최초의 원자력 +hbm.achievement.progress_radium.desc=물에 던져 + +hbm.achievement.progress_pile=항해사는 신세계에 착륙했다 +hbm.achievement.progress_pile.desc="원주민들은 어땠어요?" / "매우 친절해요." + +hbm.achievement.progress_desh=르베리에 +hbm.achievement.progress_desh.desc="자, 여러분. 갈 곳이요!" + +hbm.achievement.progress_crystalizer=산성 +hbm.achievement.progress_crystalizer.desc=으악 내 피부야 + +hbm.achievement.progress_silex=동위원소 분리 +hbm.achievement.progress_silex.desc=그러면 더 시원할 것 같아요. 약속해요. + +hbm.achievement.progress_bismuth=비스무트-209 +hbm.achievement.progress_bismuth.desc=사람들이 한 달 동안 이에 대해 불평했던 것을 기억하시나요? 그래요. + +hbm.achievement.progress_am241=아메리슘 +hbm.achievement.progress_am241.desc='Murrica아 씨발 그래 + +hbm.achievement.progress_cyclotron=사이클로트로닉 +hbm.achievement.progress_cyclotron.desc=이제 새로운 요소를 만들 수 있습니다 + +hbm.achievement.progress_fusion=퓨전 +hbm.achievement.progress_fusion.desc=듀테론, 트리톤, 에너지의 춤. + +hbm.achievement.progress_oil_1=우리는 석유를 쳤다 +hbm.achievement.progress_oil_1.desc=지구를 오염시키는 첫걸음 + +hbm.achievement.progress_oil_2=우리는 더 필요합니다! 더!! +hbm.achievement.progress_oil_2.desc=차세대 오일 펌핑 + +hbm.achievement.progress_oil_3=이 기반암을 파쇄하세요 +hbm.achievement.progress_oil_3.desc=무한한 오일! + +hbm.achievement.progress_refinery=석유를 가공했습니다 +hbm.achievement.progress_refinery.desc=지구를 오염시키는 두 번째 단계 + +hbm.achievement.progress_fraction=분별 +hbm.achievement.progress_fraction.desc=차세대 석유 처리 + +hbm.achievement.progress_crack=크랙을 해보자 +hbm.achievement.progress_crack.desc=더 많은 물건을 위한 크래킹 오일 + +hbm.achievement.progress_dineutronium=맙소사 DNT +hbm.achievement.progress_dineutronium.desc=세상에 우리가 해냈어 + +hbm.achievement.progress_singularity_spark=우주의 주인 +hbm.achievement.progress_singularity_spark.desc=포켓 퀘이사를 만들어 보세요 + +hbm.achievement.progress_fensu=내면의 평화 +hbm.achievement.progress_fensu.desc=더 말할 것이 없어요 + +hbm.achievement.progress_cladding_electronium=최고의 클래딩 +hbm.achievement.progress_cladding_electronium.desc=방사선에 대한 방사선 주괴 + hbm.achievement.sacrifice=소로리사이드 hbm.achievement.sacrifice.desc=불을 마주하고 살아라. -hbm.achievement.selenium=XVIII 더 문 +hbm.achievement.impossible=말 그대로 불가능 +hbm.achievement.impossible.desc=이 hbm.achievement를 얻을 수 없습니다. +hbm.achievement.tasteofblood=피의 맛 +hbm.achievement.tasteofblood.desc=테스트 프로토콜의 일부가 아닙니다. +hbm.achievement.freytag=프라이탁 +hbm.achievement.freytag.desc=헤롤드의 인명 구조원 +hbm.achievement.selenium=XVIII 달 hbm.achievement.selenium.desc=응. -hbm.achievement.someWounds=어떤 상처는 절대 치유되지 않는다 -hbm.achievement.someWounds.desc=준비해 +hbm.achievement.potato=불량 AI +hbm.achievement.potato.desc=당신이 나를 찔렀어요! yo-WOOOAAH에 무슨 문제가 있나요? +hbm.achievement.c44=제44장 +hbm.achievement.c44.desc=아연 도금! 내 말은, 아연! +hbm.achievement.c20_5=챕터 [20점에 5점] +hbm.achievement.c20_5.desc=??? +hbm.achievement.space=최후의 전선-아 잊어버려 +hbm.achievement.space.desc=가능한 모든 방법으로 실패하고 조랑말을 우주로 보내 9천만 달러 상당의 자금을 낭비하세요. +hbm.achievement.foeq=페가시와 미사일 사일로 +hbm.achievement.foeq.desc=화성으로 중계를 보내세요...두나안 궤도를 말하는 거죠. +hbm.achievement.fiend=체납자 +hbm.achievement.fiend.desc=심술 궂다. +hbm.achievement.fiend2=불량자 2: 불량자 더 세게 +hbm.achievement.fiend2.desc=더 심술궂어지세요. + +hbm.achievement.bobmetalworks=금속 작품 +hbm.achievement.bobmetalworks.desc=Vault-tec 지원 레벨 1(Minecraft 등급 구리) +hbm.achievement.bobassembly=제작 +hbm.achievement.bobassembly.desc=Vault-tec 지원 레벨 2(향상된 회로) +hbm.achievement.bobchemistry=화학 +hbm.achievement.bobchemistry.desc=Vault-tec 지원 레벨 3(고무) +hbm.achievement.boboil=석유 +hbm.achievement.boboil.desc=Vault-tec 지원 레벨 4(오일 타르) +hbm.achievement.bobnuclear=원자과학 +hbm.achievement.bobnuclear.desc=Vault-tec 지원 레벨 5(Pu-241 주괴) +hbm.achievement.bobhidden=숨겨진 카탈로그 +hbm.achievement.bobhidden.desc=떨어지는 유개화차로 오염된 크리퍼를 처치하세요. + +hbm.achievement.horizonsStart=최고점 +hbm.achievement.horizonsStart.desc=소년을 달에 보내세요. +hbm.achievement.horizonsEnd=호라이즌스 +hbm.achievement.horizonsEnd.desc=톰을 집으로 보내세요. +hbm.achievement.horizonsBonus=슬램덩크 설사 +hbm.achievement.horizonsBonus.desc=신예 솔직하게 말하면 대체 너한테 무슨 문제가 있는 거야? + hbm.achievement.soyuz=구운 감자 -hbm.achievement.soyuz.desc=바삭바삭해지세요. -hbm.achievement.space=The Final Front-아 잊어버려 -hbm.achievement.space.desc=가능한 모든 방법으로 실패하고 9천만 달러 상당의 자금을 낭비하십시오. +hbm.achievement.soyuz.desc=소유즈가 널 구워줄게 + +hbm.achievement.radPoison=응, 방사선! +hbm.achievement.radPoison.desc=방사선 중독의 영향을 받습니다. +hbm.achievement.radDeath=아야, 방사선! +hbm.achievement.radDeath.desc=마리 퀴리는 방사능 이론, 방사능 치료, 방사능 소멸 이론을 창안했습니다. + +hbm.achievement.stratum.desc=브레이크를 밟아, 미츠. hbm.achievement.stratum=지층 -hbm.achievement.stratum.desc=브레이크를 밟아라, 미츠. -hbm.achievement.tasteofblood=피의 맛 -hbm.achievement.tasteofblood.desc=테스트 프로토콜의 일부가 아닙니다. -hbm.advancement.root=NTM의 발전 -hbm.advancement.root.desc=Hbm의 원자력 기술을 위한 발전. -hbmfluid.acid=과산화수소 -hbmfluid.amat=반물질 -hbmfluid.aschrab=안티스크라비디움 -hbmfluid.balefire=BF 로켓 연료 -hbmfluid.biofuel=바이오 연료 -hbmfluid.biogas=바이오가스 -hbmfluid.bitumen=역청 -hbmfluid.coolant=냉각수 -hbmfluid.cryogel=크리오겔 + +hbm.achievement.meltdown.desc=여기까지 왔는데 어떻게 이걸 엉망으로 만들 수 있니? +hbm.achievement.meltdown=신속한 예정되지 않은 분해 +hbm.achievement.omega12.desc=이 비참한 행성에서 생명이 계속되는 문제를 해결하십시오. +hbm.achievement.omega12=오메가-12 입자 가속기 + +hbm.achievement.bossCreeper.desc='핵크리퍼가 있다? 그게 별거야?!' +hbm.achievement.bossCreeper=네 다리에 폭탄 +hbm.achievement.bossMaskman.desc=큰 소년을 봉크하십시오. +hbm.achievement.bossMaskman=6개월의 의무복무, 내가 받은 건 형편없는 티셔츠뿐 +hbm.achievement.bossMeltdown.desc=위대한 것보다 더 끔찍하지만 얻을 수 있는 것은 취합니다. +hbm.achievement.bossMeltdown=3.6 뢴트겐 +hbm.achievement.bossWorm.desc=팹스태프. 내 엉덩이. 당신은 수학을합니다. +hbm.achievement.bossWorm=Balls-O-Tron 분해하기 +hbm.achievement.bossUFO.desc=야, 여기 뭐가 있지? 거대한 우주선이 블록십을 향해 다가오고 있나요? +hbm.achievement.bossUFO=에이 라마오 + +hbm.achievement.digammaFeel.desc=속이 빈. +hbm.achievement.digammaFeel=감정의 공포 +hbm.achievement.digammaKauaiMoho.desc=모든 게 끔찍해요. 여기 핫초코가 있어요. +hbm.achievement.digammaKauaiMoho=노래해, 나예 카우아이 모호의 노래를 불러줘 +hbm.achievement.digammaKnow.desc=이 세상은 무엇에 관한 것입니까? +hbm.achievement.digammaKnow=아는 것의 공포 +hbm.achievement.digammaSee.desc=심연 속으로. +hbm.achievement.digammaSee=보는 것의 공포 +hbm.achievement.digammaUpOnTop.desc=나는 내가 원하는 것을 하지만 무책임하게 한다. +hbm.achievement.digammaUpOnTop=나를 존경해, 내 집을 존경해 + +hbm.achievement.someWounds.desc=준비해 +hbm.achievement.someWounds=어떤 상처는 결코 치유되지 않는다 + +potion.hbm_taint=더럽혀진 +potion.hbm_mutation=구울화된 +potion.hbm_radiation=더럽히는 +potion.hbm_bang=! ! ! +potion.hbm_radx=래드-X +potion.hbm_lead=납 중독 +potion.hbm_radaway=라다웨이 +potion.hbm_telekinesis=격동 +potion.hbm_phosphorus=인 화상 +potion.hbm_stability=안정 +potion.hbm_potionsickness=포션 멀미 + +potion.effect.potion.hbm_taint=오염의 물약 +potion.effect.potion.hbm_mutation=구울화의 물약 +potion.effect.potion.hbm_radiation=오염의 물약 +potion.effect.potion.hbm_bang=의 물약! ! ! +potion.effect.potion.hbm_radx=Rad-X의 물약 +potion.effect.potion.hbm_lead=납중독의 물약 +potion.effect.potion.hbm_radaway=라다웨이의 물약 +potion.effect.potion.hbm_telekinesis=염동력의 물약 +potion.effect.potion.hbm_phosphorus=인 화상 물약 +potion.effect.potion.hbm_stability=안정의 물약 + +splash_potion.effect.potion.hbm_taint=오염의 투척용 물약 +splash_potion.effect.potion.hbm_mutation=구울화의 투척용 물약 +splash_potion.effect.potion.hbm_radiation=투척용 오염 물약 +splash_potion.effect.potion.hbm_bang=투척용 물약! ! ! +splash_potion.effect.potion.hbm_radx=Rad-X의 투척용 물약 +splash_potion.effect.potion.hbm_lead=납중독 투척용 물약 +splash_potion.effect.potion.hbm_radaway=라다웨이의 투척용 물약 +splash_potion.effect.potion.hbm_telekinesis=염동력의 투척용 물약 +splash_potion.effect.potion.hbm_phosphorus=인 화상 투척용 물약 +splash_potion.effect.potion.hbm_stability=투척용 안정 물약 + +lingering_potion.effect.potion.hbm_taint=오래 지속되는 오염 물약 +lingering_potion.effect.potion.hbm_mutation=지속되는 구울화의 물약 +lingering_potion.effect.potion.hbm_radiation=잔류하는 오염 물약 +lingering_potion.effect.potion.hbm_bang=의 잔류 물약! ! ! +lingering_potion.effect.potion.hbm_radx=Rad-X의 잔류 물약 +lingering_potion.effect.potion.hbm_lead=납 중독의 잔류 물약 +lingering_potion.effect.potion.hbm_radaway=라다웨이의 잔류 물약 +lingering_potion.effect.potion.hbm_telekinesis=염동력의 지속 물약 +lingering_potion.effect.potion.hbm_phosphorus=인 화상의 잔류 물약 +lingering_potion.effect.potion.hbm_stability=지속되는 안정의 물약 + +tipped_arrow.effect.potion.hbm_taint=오염의 화살 +tipped_arrow.effect.potion.hbm_mutation=구울화의 화살 +tipped_arrow.effect.potion.hbm_radiation=오염의 화살 +tipped_arrow.effect.potion.hbm_bang=의 화살표! ! ! +tipped_arrow.effect.potion.hbm_radx=Rad-X의 화살 +tipped_arrow.effect.potion.hbm_lead=납중독의 화살 +tipped_arrow.effect.potion.hbm_radaway=라다웨이의 화살 +tipped_arrow.effect.potion.hbm_telekinesis=염동력의 화살 +tipped_arrow.effect.potion.hbm_phosphorus=인화살 화상 +tipped_arrow.effect.potion.hbm_stability=안정의 화살 + +rbmk.heat=열 온도: %s +rbmk.outgasser.eta=ETA: %s +rbmk.outgasser.flux=유입 플럭스: %s +rbmk.outgasser.progress=진행상황: %s / %s §b(%s%%) +rbmk.outgasser.gas=삼중 수소: %s / %smB +rbmk.boiler.water=공급수: %s / %smB +rbmk.boiler.steam=증기: %s / %smB +rbmk.boiler.type=압축기: %s +rbmk.cooler.cooling=-%s°C/s +rbmk.cooler.cryo=크라이오지: %s / 16000mB +rbmk.console.assign=화면에 선택한 열 할당 #%s +rbmk.console.assignG=선택한 열을 그래프에 할당 +rbmk.console.none=끄다 +rbmk.console.col_temp=평균 컬럼 온도 모니터링 +rbmk.console.rod_extraction=평균 제어봉 추출 모니터링 +rbmk.console.fuel_depletion=평균 연료 고갈 모니터링 +rbmk.console.fuel_poison=평균 크세논 중독 모니터링 +rbmk.console.fuel_temp=평균 연료 온도 모니터링 +rbmk.console.flux=평균 방출 플럭스 모니터링 +rbmk.control.level=확대: %s +rbmk.control.red=§c레드 그룹 +rbmk.control.yellow=§e엘로우 그룹 +rbmk.control.green=§a그린 그룹 +rbmk.control.blue=§1블루 그룹 +rbmk.control.purple=§5퍼플 그룹 +rbmk.moderated=검토됨 +rbmk.rod.name=막대 유형: +rbmk.rod.flux=총 방출 플럭스: %s +rbmk.rod.depletion=고갈량: %s +rbmk.rod.xenon=제논 독: %s +rbmk.rod.coreTemp=노심 온도: %s +rbmk.rod.skinTemp=피부 온도: %s / %s +rbmk.heater.fluid=%s: %s / %smB +rbmk.screen.core=노심: %s +rbmk.screen.depletion=고갈량: %s +rbmk.screen.rod=컨트롤: %s +rbmk.screen.temp=온도: %s +rbmk.screen.xenon=제논: %s +rbmk.screen.flux=플럭스: %s +rbmk.graph.fuel_temp=노심: %s°C +rbmk.graph.fuel_depletion=고갈량: %s%% +rbmk.graph.rod_extraction=컨트롤: %s%% +rbmk.graph.col_temp=온도: %s°C +rbmk.graph.fuel_poison=제논: %s%% +rbmk.graph.flux=플럭스: %s +rbmk.graph.none=없음 + +hbmfluid.none=없음 +hbmfluid.water=물 +hbmfluid.steam=증기 +hbmfluid.hotsteam=짙은 증기 +hbmfluid.superhotsteam=초고밀도 증기 +hbmfluid.ultrahotsteam=초고밀도 증기 +hbmfluid.lava=용암 +hbmfluid.uf6=육불화우라늄 +hbmfluid.puf6=육불화플루토늄 hbmfluid.deuterium=중수소 +hbmfluid.tritium=삼중 수소 +hbmfluid.oil=원유 +hbmfluid.hotoil=뜨거운 원유 +hbmfluid.crackoil=갈라진 기름 +hbmfluid.hotcrackoil=뜨겁게 갈라진 기름 +hbmfluid.aromatics=방향족 탄화수소 +hbmfluid.unsaturateds=불포화 탄화수소 +hbmfluid.smear=산업용유 +hbmfluid.reclaimed=재생산업유 +hbmfluid.petroil=석유 +hbmfluid.lubricant=엔진 윤활유 hbmfluid.diesel=디젤 +hbmfluid.kerosene=둥유 hbmfluid.gas=천연 가스 -hbmfluid.gasoline=유연 휘발유 -hbmfluid.heatingoil=난방유 +hbmfluid.coolant=냉각수 +hbmfluid.hotcoolant=뜨거운 절삭유 +hbmfluid.amat=반물질 +hbmfluid.aschrab=안티스크라비디움 hbmfluid.heavyoil=중유 -hbmfluid.hotoil=뜨거운 원유 -hbmfluid.hotsteam=짙은 증기 -hbmfluid.hydrogen=액체 수소 -hbmfluid.kerosene=둥유 -hbmfluid.lava=용암 -hbmfluid.lightoil=경유 -hbmfluid.lubricant=엔진 윤활유 -hbmfluid.mercury=수은 +hbmfluid.bitumen=역청 +hbmfluid.heatingoil=난방유 hbmfluid.naphtha=나프타 +hbmfluid.lightoil=경유 +hbmfluid.petroleum=석유가스 +hbmfluid.acid=과산화수소 +hbmfluid.watz=와츠 머드 +hbmfluid.biogas=바이오가스 +hbmfluid.biofuel=바이오 연료 +hbmfluid.sas3=슈라비듐 삼황화물 hbmfluid.nitan=NITAN© 100 옥탄 슈퍼 연료 -hbmfluid.none=없음 -hbmfluid.oil=원유 -hbmfluid.oxygen=액체 산소 -hbmfluid.pain=판데모니움(III) 탄탈라이트 용액 -hbmfluid.petroil=휘발유 -hbmfluid.petroleum=석유 가스 -hbmfluid.plasma_bf=베일파이어 플라즈마 +hbmfluid.cryogel=크리오겔 +hbmfluid.hydrogen=액체수소 +hbmfluid.oxygen=액체산소 +hbmfluid.xenon=크세논 가스 +hbmfluid.balefire=베일파이어 로켓 연료 +hbmfluid.mercury=수은 hbmfluid.plasma_dt=중수소-삼중수소 플라즈마 hbmfluid.plasma_hd=수소-중수소 플라즈마 hbmfluid.plasma_ht=수소-삼중수소 플라즈마 hbmfluid.plasma_xm=크세논-수은 플라즈마 -hbmfluid.puf6=플루토늄 헥사플루오라이드 -hbmfluid.reclaimed=재생 산업용 오일 -hbmfluid.sas3=슈라비디움 트리설파이드 +hbmfluid.plasma_bf=베일파이어 플라즈마 hbmfluid.schrabidic_fluid=슈라비딕산 -hbmfluid.smear=산업용 오일 +hbmfluid.pain=판데모니움(III)탄탈라이트 용액 hbmfluid.spentsteam=저압 증기 -hbmfluid.steam=증기 -hbmfluid.superhotsteam=초고밀도 증기 -hbmfluid.tritium=삼중 수소 -hbmfluid.uf6=육불화 우라늄 -hbmfluid.ultrahotsteam=초고밀도 증기 -hbmfluid.wastefluid=액체 핵폐기물 +hbmfluid.wastefluid=액체핵폐기물 hbmfluid.wastegas=기체 핵폐기물 -hbmfluid.water=물 -hbmfluid.watz=유독한 진흙 -hbmfluid.xenon=크세논 가스 -info.coil=코일 강도 -info.template_in=입력: -info.template_in_p=입력: -info.template_out=산출: -info.template_out_p=출력: -info.template_seconds=초 -info.template_time=생산 시간: -info.templatefolder=템플릿 폴더로 생성 -item.RPA_boots.name=잔재 장화 -item.RPA_helmet.name=잔해 투구 -item.RPA_legs.name=잔재 레깅스 -item.RPA_plate.name=잔재 가슴갑옷 -item.ajr_boots.name=스틸 레인저 부츠 -item.ajr_helmet.name=스틸 레인저 헬멧 -item.ajr_legs.name=강철 레인저 레깅스 -item.ajr_plate.name=강철 순찰자 가슴갑옷 -item.ajro_boots.name=AJR 파워 아머 부츠 -item.ajro_helmet.name=AJR 파워 아머 헬멧 -item.ajro_legs.name=AJR 파워 아머 레깅스 -item.ajro_plate.name=AJR 파워 아머 흉갑 -item.alloy_axe.name=고급 합금 도끼 -item.alloy_boots.name=고급 합금 부츠 -item.alloy_helmet.name=고급 합금 헬멧 -item.alloy_hoe.name=고급 합금 괭이 -item.alloy_legs.name=고급 합금 레깅스 -item.alloy_pickaxe.name=고급 합금 곡괭이 -item.alloy_plate.name=고급 합금 흉갑 -item.alloy_shovel.name=고급 합금 삽 -item.alloy_sword.name=고급 합금 검 -item.ammo_12gauge.name=12 게이지 벅샷 -item.ammo_12gauge_du.name=12 게이지 벅샷(우라늄 코팅) -item.ammo_12gauge_incendiary.name=12 게이지 벅샷(소이탄) -item.ammo_12gauge_marauder.name=12게이지 전술 안티 머라우더 쉘 -item.ammo_12gauge_shrapnel.name=12 게이지 벅샷(파편) -item.ammo_12gauge_sleek.name=12 게이지 벅샷(IF-R&D) -item.ammo_20gauge.name=20 게이지 벅샷 -item.ammo_20gauge_caustic.name=20 게이지 벅샷(가성) -item.ammo_20gauge_explosive.name=20 게이지 벅샷(폭발물) -item.ammo_20gauge_flechette.name=20 게이지 Flechette 쉘 -item.ammo_20gauge_incendiary.name=20 게이지 벅샷(소이탄) -item.ammo_20gauge_shock.name=20 게이지 벅샷(쇼크) -item.ammo_20gauge_shrapnel.name=20 게이지 벅샷(파편) -item.ammo_20gauge_sleek.name=20 게이지 벅샷(IF-R&D) -item.ammo_20gauge_slug.name=20 게이지 브레네크 슬러그 -item.ammo_20gauge_wither.name=20게이지 벅샷(위더링) -item.ammo_22lr.name=.22 LR 라운드 -item.ammo_22lr_ap.name=.22 LR 라운드(아머 피어싱) -item.ammo_22lr_chlorophyte.name=.22 LR 라운드(엽록소) -item.ammo_357_desh.name=.357 매그넘 데시 총알 -item.ammo_44.name=.44 매그넘 총알 -item.ammo_44_ap.name=.44 매그넘 총알(갑옷 관통) -item.ammo_44_bj.name=.44 매그넘 총알(보트) -item.ammo_44_chlorophyte.name=.44 매그넘 총알(엽록소) -item.ammo_44_du.name=.44 매그넘 불릿(DU) -item.ammo_44_phosphorus.name=.44 매그넘 불릿(WP) -item.ammo_44_pip.name=.44 매그넘 불릿(박스카) -item.ammo_44_rocket.name=.44 매그넘 로켓 -item.ammo_44_silver.name=.44 매그넘 총알(건물) -item.ammo_44_star.name=.44 매그넘 불릿(스타메탈) -item.ammo_4gauge.name=4 게이지 벅샷 -item.ammo_4gauge_balefire.name=23mm 베일파이어 수류탄 -item.ammo_4gauge_canister.name=23mm 로켓(캐니스터 샷) -item.ammo_4gauge_claw.name=4 게이지 클로 쉘 -item.ammo_4gauge_explosive.name=23mm 수류탄 -item.ammo_4gauge_flechette.name=4 게이지 Flechette 쉘 -item.ammo_4gauge_flechette_phosphorus.name=4 게이지 플레셰트 쉘(WP) -item.ammo_4gauge_kampf.name=23mm 로켓 -item.ammo_4gauge_semtex.name=23mm 마이닝 차지 -item.ammo_4gauge_sleek.name=4 게이지 벅샷(IF-R&D) -item.ammo_4gauge_slug.name=4 게이지 솔리드 스틸 슬러그 -item.ammo_4gauge_vampire.name=4 게이지 나무 말뚝 껍질 -item.ammo_4gauge_void.name=4 게이지 보이드 쉘 -item.ammo_50ae.name=.50 AE 라운드 -item.ammo_50ae_ap.name=.50 AE 라운드(아머 피어싱) -item.ammo_50ae_chlorophyte.name=.50 AE 라운드(엽록소) -item.ammo_50ae_du.name=.50 AE 라운드(DU) -item.ammo_50ae_star.name=.50 AE 라운드(스타메탈) -item.ammo_50bmg.name=.50 BMG 라운드 -item.ammo_50bmg_ap.name=.50 BMG 라운드(아머 피어싱) -item.ammo_50bmg_chlorophyte.name=.50 BMG 라운드(엽록소) -item.ammo_50bmg_du.name=.50 BMG 라운드(DU) -item.ammo_50bmg_explosive.name=.50 BMG 라운드(폭발물) -item.ammo_50bmg_flechette.name=.50 BMG 플레셰트 라운드 -item.ammo_50bmg_flechette_am.name=.50 BMG 플레셰트 라운드(아메리시움) -item.ammo_50bmg_flechette_po.name=.50 BMG 플레셰트 라운드(폴로늄) -item.ammo_50bmg_incendiary.name=.50 BMG 라운드(소이탄) -item.ammo_50bmg_phosphorus.name=.50 BMG 라운드(WP) -item.ammo_50bmg_sleek.name=.50 BMG 라운드(IF-R&D) -item.ammo_50bmg_star.name=.50 BMG 라운드(스타메탈) -item.ammo_556.name=5.56mm 라운드 -item.ammo_556_ap.name=5.56mm 라운드(아머 피어싱) -item.ammo_556_chlorophyte.name=5.56mm 원형(녹조류) -item.ammo_556_du.name=5.56mm 원형(DU) -item.ammo_556_flechette.name=5.56mm 플레셰트 라운드 -item.ammo_556_flechette_chlorophyte.name=5.56mm 플레셰트 라운드(엽록소) -item.ammo_556_flechette_du.name=5.56mm Flechette Round (우라늄 관통자) -item.ammo_556_flechette_incendiary.name=5.56mm 플레셰트탄(소이탄) -item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (인 팁) -item.ammo_556_flechette_sleek.name=5.56mm 플레셰트 라운드(IF-R&D) -item.ammo_556_k.name=5.56mm K-라운드 -item.ammo_556_phosphorus.name=5.56mm 라운드(WP) -item.ammo_556_sleek.name=5.56mm 라운드(IF-R&D) -item.ammo_556_star.name=5.56mm 라운드(스타메탈) -item.ammo_556_tracer.name=5.56mm 라운드(트레이서) -item.ammo_5mm.name=5mm 라운드 -item.ammo_5mm_chlorophyte.name=5mm 원형(엽록소) -item.ammo_5mm_du.name=5mm 원형(DU) -item.ammo_5mm_explosive.name=5mm 라운드(폭발물) -item.ammo_5mm_star.name=5mm 라운드(스타메탈) -item.ammo_75bolt.name=.75 볼트 탄창(30번째) -item.ammo_75bolt_he.name=.75 볼트 고폭 탄창(30번째) -item.ammo_75bolt_incendiary.name=.75 소이 볼트 탄창(30번째) -item.ammo_9mm.name=9mm 라운드 -item.ammo_9mm_ap.name=9mm 라운드(아머 피어싱) -item.ammo_9mm_chlorophyte.name=9mm 라운드(엽록소) -item.ammo_9mm_du.name=9mm 라운드(DU) -item.ammo_9mm_rocket.name=9mm 로켓 -item.ammo_cell.name=에너지 셀 -item.ammo_container.name=탄약통 -item.ammo_dart.name=플라스틱 다트(시듦) -item.ammo_dgk.name=골키퍼 트윈 CIWS 200 라운드 벨트 -item.ammo_folly.name=은총알(원본) -item.ammo_folly_du.name=Silver Bullet(DU, 비폭발성) -item.ammo_folly_nuclear.name=은탄환(핵) -item.ammo_fuel.name=디젤 탱크 -item.ammo_fuel_gas.name=가스 탱크 -item.ammo_fuel_napalm.name=네이팜 탱크 -item.ammo_fuel_phosphorus.name=WP 탱크 -item.ammo_fuel_vaporizer.name=기화기 탱크 -item.ammo_grenade.name=40mm 수류탄 -item.ammo_grenade_concussion.name=40mm 수류탄(뇌진탕) -item.ammo_grenade_finned.name=40mm 수류탄(지느러미 있음) -item.ammo_grenade_he.name=40mm 수류탄(HE) -item.ammo_grenade_incendiary.name=40mm 수류탄(소이탄) -item.ammo_grenade_kampf.name=40mm 로켓 -item.ammo_grenade_nuclear.name=40mm 수류탄 (Привет) -item.ammo_grenade_phosphorus.name=40mm 수류탄(WP) -item.ammo_grenade_sleek.name=40mm 수류탄 (IF-R&D) -item.ammo_grenade_toxic.name=40mm 수류탄(화학) -item.ammo_grenade_tracer.name=40mm 훈련 수류탄 -item.ammo_mirv.name=미니 MIRV -item.ammo_mirv_high.name=미니 MIRV(고수익) -item.ammo_mirv_low.name=미니 MIRV(저수율) -item.ammo_mirv_safe.name=미니 MIRV(안전) -item.ammo_mirv_special.name=미니 MILV -item.ammo_nuke.name=미니 누크 -item.ammo_nuke_high.name=미니 누크(고수율) -item.ammo_nuke_low.name=미니 누크(저수율) -item.ammo_nuke_pumpkin.name=호박 폭탄 -item.ammo_nuke_safe.name=미니 핵(안전) -item.ammo_nuke_tots.name=미니 누크(Tiny Tots) -item.ammo_rocket.name=84mm 로켓 -item.ammo_rocket_canister.name=84mm 로켓(캐니스터 샷) -item.ammo_rocket_emp.name=84mm 로켓(펄스) -item.ammo_rocket_glare.name=84mm 로켓(적색 섬광) -item.ammo_rocket_he.name=84mm 로켓(HE) -item.ammo_rocket_incendiary.name=84mm 로켓(소이탄) -item.ammo_rocket_nuclear.name=84mm 로켓(총) -item.ammo_rocket_phosphorus.name=84mm 로켓(WP) -item.ammo_rocket_rpc.name=84mm 로켓 추진 전기톱 -item.ammo_rocket_shrapnel.name=84mm 로켓(파편) -item.ammo_rocket_sleek.name=84mm 로켓 (IF-R&D) -item.ammo_rocket_toxic.name=84mm 로켓(화학) -item.ammo_shell.name=240mm 포탄 -item.ammo_shell_apfsds_du.name=240mm APFSDS-DU -item.ammo_shell_apfsds_t.name=240mm APFSDS-T -item.ammo_shell_explosive.name=240mm 고폭탄 -item.ammo_shell_w9.name=240mm W9 핵 포탄 -item.ams_catalyst_aluminium.name=알루미늄 반응 촉매 -item.ams_catalyst_beryllium.name=베릴륨 반응 촉매 -item.ams_catalyst_blank.name=블랭크 반응 촉매 -item.ams_catalyst_caesium.name=세슘 반응 촉매 -item.ams_catalyst_cerium.name=세륨 반응 촉매 -item.ams_catalyst_cobalt.name=코발트 반응 촉매 -item.ams_catalyst_copper.name=구리 반응 촉매 -item.ams_catalyst_dineutronium.name=다이뉴트로늄 반응 촉매 -item.ams_catalyst_euphemium.name=유페미움 반응 촉매 -item.ams_catalyst_iron.name=철 반응 촉매 -item.ams_catalyst_lithium.name=리튬 반응 촉매 -item.ams_catalyst_niobium.name=니오븀 반응 촉매 -item.ams_catalyst_schrabidium.name=Schrabidium 반응 촉매 -item.ams_catalyst_strontium.name=스트론튬 반응 촉매 -item.ams_catalyst_thorium.name=토륨 반응 촉매 -item.ams_catalyst_tungsten.name=텅스텐 반응 촉매 -item.ams_core_eyeofharmony.name=조화의 눈(AMS 코어) -item.ams_core_sing.name=활기찬 특이점(AMS 코어) -item.ams_core_thingy.name=Thingy(AMS 코어) -item.ams_core_wormhole.name=작은 웜홀(AMS 코어) -item.ams_focus_blank.name=블랭크 스태빌라이저 포커스 -item.ams_focus_booster.name=부스트 안정제 초점 -item.ams_focus_limiter.name=안정제 초점 제한 -item.ams_lens.name=안정제 렌즈 -item.ams_muzzle.name=광선 방출 총구 -item.analyzer.name=분석기 -item.antiknock.name=테트라에틸리드 내노크제 -item.apple_euphemium.name=완곡한 사과 -item.apple_lead.name=리드 애플 -item.apple_lead1.name=리드 애플 -item.apple_lead2.name=리드 애플 -item.apple_schrabidium.name=슈라비디움 사과 -item.apple_schrabidium1.name=슈라비디움 사과 -item.apple_schrabidium2.name=슈라비디움 사과 -item.arc_electrode.name=흑연 전극 -item.arc_electrode_burnt.name=녹은 전극 -item.arc_electrode_desh.name=데쉬 전극 -item.armor_polish.name=ShiningArmor™ 갑옷 광택제 -item.asbestos_boots.name=화염 근접 장화 -item.asbestos_cloth.name=불 근접 천 -item.asbestos_helmet.name=화재 근접 헬멧 -item.asbestos_legs.name=화염 근접 레깅스 -item.asbestos_plate.name=근접 사격 흉갑 -item.ashglasses.name=애쉬 고글 -item.assembly_556.name=5.56mm 조립 -item.assembly_actionexpress.name=.50 AE 조립 -item.assembly_calamity.name=.50 BMG 어셈블리 -item.assembly_desh.name=데시 총알 어셈블리 -item.assembly_gold.name=골드 총알 어셈블리 -item.assembly_iron.name=철 총알 어셈블리 -item.assembly_lacunae.name=.5mm 조립 -item.assembly_lead.name=유리 총알 어셈블리 -item.assembly_nightmare.name=악몽 총알 어셈블리 -item.assembly_nopip.name=.44 매그넘 어셈블리 -item.assembly_nuke.name=미니 핵탄두 -item.assembly_pip.name=오염된 총알 조립체 -item.assembly_schrabidium.name=Schrabidium 총알 어셈블리 -item.assembly_smg.name=9mm 조립 -item.assembly_steel.name=리드 총알 어셈블리 -item.assembly_template.name=어셈블리 템플릿: -item.assembly_uzi.name=.22 LR 어셈블리 -item.attachment_mask.name=방독면 부착 가능 -item.attachment_mask_mono.name=일산화탄소 마스크 부착 가능 -item.australium_iii.name=마크 III 라이프 익스텐더 -item.australium_iv.name=마크 IV 라이프 익스텐더 -item.australium_v.name=마크 V 라이프 익스텐더 -item.back_tesla.name=후면 장착 테슬라 코일 -item.balefire_and_ham.name=햄과 베일파이어 계란 -item.balefire_and_steel.name=베일파이어와 강철 -item.balefire_scrambled.name=스크램블 베일파이어 에그 -item.ballistite.name=발리스타이트 -item.bandaid.name=벨벳 반창고 -item.bathwater.name=독성 비눗물 -item.bathwater_mk2.name=독성 비눗물(말 향) -item.bathwater_mk3.name=최고급 체르노빌 목욕물(멜트다운 향) -item.battery_advanced.name=고급 배터리 -item.battery_advanced_cell.name=고급 파워 셀 -item.battery_advanced_cell_12.name=Twelffold Advanced Power Cell -item.battery_advanced_cell_4.name=쿼드러플 어드밴스드 파워 셀 -item.battery_creative.name=무한 배터리 -item.battery_generic.name=배터리 -item.battery_lithium.name=리튬 이온 배터리 -item.battery_lithium_cell.name=리튬 이온 파워 셀 -item.battery_lithium_cell_3.name=트리플 리튬 이온 파워 셀 -item.battery_lithium_cell_6.name=6중 리튬 이온 파워 셀 -item.battery_potato.name=감자 전지 -item.battery_potatos.name=PotatOS -item.battery_red_cell.name=레드스톤 파워셀 -item.battery_red_cell_24.name=24겹 레드스톤 파워 셀 -item.battery_red_cell_6.name=6중 레드스톤 파워 셀 -item.battery_sc_americium.name=자가 충전 Americium-241 배터리 -item.battery_sc_balefire.name=자체 충전 Balefire-XXX 배터리 -item.battery_sc_gold.name=자가 충전 Gold-198 배터리 -item.battery_sc_lead.name=자체 충전 Lead-209 배터리 -item.battery_sc_plutonium.name=자가 충전 플루토늄-238 배터리 -item.battery_sc_polonium.name=자가 충전 폴로늄-210 배터리 -item.battery_sc_technetium.name=자가 충전 Technetium-99 배터리 -item.battery_sc_uranium.name=자가 충전 우라늄-238 배터리 -item.battery_schrabidium.name=슈라비디움 배터리 -item.battery_schrabidium_cell.name=슈라비디움 파워 셀 -item.battery_schrabidium_cell_2.name=더블 슈라비디움 파워 셀 -item.battery_schrabidium_cell_4.name=쿼드러플 슈라비디움 파워 셀 -item.battery_spark.name=스파크 배터리 -item.battery_spark_cell_100.name=스파크 신비한 에너지 저장 장치 -item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy 공허 -item.battery_spark_cell_10000.name=스파크 솔리드 시공간 크리스탈 -item.battery_spark_cell_25.name=Spark Arcane 자동차 배터리 -item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea -item.battery_spark_cell_6.name=스파크 파워 셀 -item.battery_spark_cell_power.name=Spark Ludicrous Physics 무시 에너지 저장 장치 -item.battery_steam.name=증기 동력 에너지 저장 탱크 -item.battery_steam_large.name=대형 증기 동력 에너지 저장 탱크 -item.battery_su.name=SU 배터리 -item.battery_su_l.name=대형 SU 배터리 -item.battery_trixite.name=오프 브랜드 스파크 배터리 -item.beta.name=베타 기능 +hbmfluid.gasoline=유연 가솔린 +hbmfluid.sulfuric_acid=황산 +hbmfluid.liquid_osmiridium=오스미리딕 용액 + +fluid.sulfuric_acid=황산 +fluid.steam=증기 +fluid.hotsteam=짙은 증기 +fluid.superhotsteam=초고밀도 증기 +fluid.ultrahotsteam=초고밀도 증기 +fluid.uf6=육불화우라늄 +fluid.puf6=육불화플루토늄 +fluid.deuterium=중수소 +fluid.tritium=삼중 수소 +fluid.oil=원유 +fluid.hotoil=뜨거운 원유 +fluid.crackoil=갈라진 기름 +fluid.hotcrackoil=뜨겁게 갈라진 기름 +fluid.aromatics=방향족 탄화수소 +fluid.unsaturateds=불포화 탄화수소 +fluid.smear=산업용유 +fluid.reclaimed=재생산업유 +fluid.petroil=석유 +fluid.lubricant=엔진 윤활유 +fluid.lubircant=엔진 윤활유 +fluid.diesel=디젤 +fluid.kerosene=둥유 +fluid.gas=천연 가스 +fluid.coolant=냉각수 +fluid.hotcoolant=뜨거운 절삭유 +fluid.amat=반물질 +fluid.aschrab=안티스크라비디움 +fluid.heavyoil=중유 +fluid.bitumen=역청 +fluid.heatingoil=난방유 +fluid.naphtha=나프타 +fluid.lightoil=경유 +fluid.petroleum=석유가스 +fluid.acid=과산화수소 +fluid.watz=와츠 머드 +fluid.biogas=바이오가스 +fluid.biofuel=바이오 연료 +fluid.sas3=슈라비듐 삼황화물 +fluid.nitan=NITAN© 100 옥탄 슈퍼 연료 +fluid.cryogel=크리오겔 +fluid.hydrogen=액체수소 +fluid.oxygen=액체산소 +fluid.xenon=크세논 가스 +fluid.balefire=베일파이어 로켓 연료 +fluid.mercury=수은 +fluid.plasma_dt=중수소-삼중수소 플라즈마 +fluid.plasma_hd=수소-중수소 플라즈마 +fluid.plasma_ht=수소-삼중수소 플라즈마 +fluid.plasma_xm=크세논-수은 플라즈마 +fluid.plasma_bf=베일파이어 플라즈마 +fluid.schrabidic=슈라비딕산 +fluid.corium_fluid=코륨 +fluid.volcanic_lava_fluid=화산 용암 +fluid.pain=판데모니움(III)탄탈라이트 용액 +fluid.spentsteam=저압 증기 +fluid.wastefluid=액체핵폐기물 +fluid.wastegas=기체 핵폐기물 +fluid.gasoline=유연 가솔린 +fluid.liquid_osmiridium=오스미리딕 용액 + +item.crystal_osmiridium.name=오스미리듐 결정 +item.ingot_osmiridium.name=오스미리듐 주괴 +item.nugget_osmiridium.name=오스미리듐 덩어리 +item.powder_impure_osmiridium.name=불순한 오스미리듐 가루 +item.powder_osmiridium.name=오스미리듐 가루 +item.powder_tektite.name=텍타이트 가루 +item.powder_paleogenite.name=고생석 가루 +item.powder_paleogenite_tiny.name=작은 고생석 가루 더미 + +tile.anvil_osmiridium.name=오스미리듐 모루 + +tile.volcanic_lava_block.name=화산 용암 +tile.corium_block.name=액체 진피 +tile.schrabidic_block.name=슈라비딕산 + +book.rbmk.cover=방법 2 RBMK:$원자로$기본$구성 +book.rbmk.title1=소개 +book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. + +book.rbmk.title_schematic=개요 +book.rbmk.page_schematic=원자로에서 핵분열은 물을 증기로 변환시키는 열을 생성합니다. 그 증기는 파이프를 통해 증기 터빈으로 흘러 전기를 생산하고 증기를 더 낮은 단계의 증기로 변환합니다. 저압 증기는 응축기로 흘러 다시 물로 변환됩니다. 입력/출력 모드의 탱크는 백업 물 저장소 역할을 합니다. + +book.rbmk.title2=열 +book.rbmk.page2=원자로가 작동하면서 §l열§r이 발생할 것입니다. 열은 부품 사이로 퍼져서, 그 과정에서 천천히 감소할 것입니다. 목표는 원자로를 녹이지 않고 가능한 한 많은 열을 생산하고, 그 열을 원자로를 식히고 증기를 생산하는 §l증기 채널§r로 옮기는 것입니다. +book.rbmk.title3=연료봉 +book.rbmk.page3=핵연료가 핵분열할 때 중성자가 방출됩니다. 다른 연료봉에 부딪힐 때 더 많은 핵분열을 일으키고 최대 범위가 5 블록인 네 가지 기본 방향으로 방출됩니다. 발생하는 열의 양은 방출되는 중성자의 양에 따라 달라집니다. RBMK 펠릿을 얻기 위해서는 연료봉 표피와 중심부 온도가 50°C 미만이어야 합니다. +book.rbmk.title4=제어봉 +book.rbmk.page4=§l제어봉§r은 통과하는 중성자의 양을 감소시킬 것입니다. 완전히 삽입하면 모든 중성자를 차단하고 반만 삽입하면 절반만 차단합니다. 제어봉은 원자로의 활동을 조절하고 끄는데 사용됩니다. 너무 많은 플럭스는 과열과 노심용융을 유발합니다. +book.rbmk.title5=제어봉 - 사용법 +book.rbmk.page5= GUI 중앙에 현재 로드 삽입이 표시됩니다. 왼쪽의 색상 버튼은 색상 그룹에 제어 로드를 추가하여 §lRBMK 콘솔§r에서 그룹화된 로드를 빠르게 선택하는 데 유용합니다. 오른쪽 버튼은 25% 단위로 수동 삽입을 허용합니다. +book.rbmk.title6=자동제어봉 +book.rbmk.page6=§l자동 제어봉§r은 일반 제어봉과 거의 동일한 기능을 하지만 수동으로 구성할 수는 없으며 대신 현재 온도를 기준으로 로드 위치를 조정합니다. 어떤 기능을 사용하고 어떤 온도에서 얼마나 깊게 삽입할 것인지 먼저 정의해야 합니다. +book.rbmk.title7=증기 채널 +book.rbmk.page7=반응기의 열 수준을 능동적으로 감소시키는 부분은 §l증기 채널§r뿐이며, 열 온도가 스팀 형태의 끓는점을 넘으면 물을 많이 소비하고 스팀을 필요한 만큼 생산하여 끓는점 이하로 냉각시킬 수 있습니다. 정상: 100 °C, 밀도: 300 °C, 슈퍼: 450 °C, 울트라: 600°C +book.rbmk.title8=중성자 반사경 +book.rbmk.page8=§l중성자 반사판§r은 중성자가 통과하는 것을 차단할 것이고, 대신 중성자는 그들이 온 연료봉에서 다시 반사될 것입니다. 이것은 원자로를 단순히 빠져나옴으로써 낭비될 수 있는 중성자를 활용하는 데 유용합니다. +book.rbmk.title9=중성자 흡수체 +book.rbmk.page9=§l중성자 흡수기§r는 단순히 중성자를 차단합니다. 흡수 된 중성자는 열을 생성하지 않고 효과적으로 무효화됩니다. 이것은 연료봉가 다른 범위에있는 반응을 방지하는 데 유용합니다. +book.rbmk.title10=흑연 감속재 +book.rbmk.page10= §l흑연 감속재§r는 그것을 통과하는 빠른 중성자를 느린 중성자로 변환할 것입니다. 만약 들어오는 플럭스가 연료에 적합하지 않다면, 효율은 크게 감소할 것입니다. 빠른 플럭스가 필요한 연료에서의 느린 플럭스: -50% 효과. 느린 플럭스가 필요한 연료에서의 빠른 플럭스: -70% 효과. +book.rbmk.title11=구조 기둥 +book.rbmk.page11=§l구조 기둥§r은 중성자를 방해하지 않을 뿐만 아니라 특별한 용도도 없습니다. 구조 기둥은 열을 전달할 수 있기 때문에 다른 부분이 없는 구조 기둥으로 원자로를 채우는 것이 좋습니다. +book.rbmk.title12=콘솔 +book.rbmk.page12=§lRBMK 콘솔§r을 사용하면 멀리서 원자로를 제어할 수 있습니다. §lRBMK§r 부품에 §lRBMK 콘솔 연결 장치§r를 사용하면 콘솔이 원자로를 콘솔에 연결합니다. 콘솔은 15x15 부품만 관리할 수 있으며, 더 큰 원자로의 경우 여러 콘솔을 사용할 수 있습니다. +book.rbmk.title13=콘솔 사용법 +book.rbmk.page13=부품을 클릭하면 부품을 선택하고 선택을 취소합니다. 색상 버튼을 사용하여 해당 색상 그룹의 모든 제어봉을 빠르게 선택할 수 있습니다. 버튼 'A'는 모든 제어봉을 선택하고, 'X'는 모두 선택을 취소합니다. 아이콘을 클릭하여 표시되는 통계를 변경할 수 있습니다. 통계에 들어갈 rbmk 열을 선택한 다음 저장을 누릅니다. 이러한 방식으로 연료봉의 평균 온도를 표시하거나 플럭스 양을 표시할 수 있습니다. +book.rbmk.page14=녹색 상자에 숫자 0-100을 입력한 다음 옆에 있는 버튼을 누르면 선택한 모든 제어봉이 이 위치로 설정됩니다. 'AZ-5' 버튼을 누르면 모든 제어봉이 완전히 삽입됩니다. +book.rbmk.page15=새로운 RBMK를 설계할 때 플럭스가 어디로 가는지 생각해야 합니다. 왼쪽 설계에는 많은 전력 잠재력이 있지만 플럭스를 중지하고 차단할 방법이 없습니다. 오른쪽에 있는 것은 반사경을 사용하여 활성 상태를 유지할 수 있으므로 모서리에 자립 막대가 있는 경우 자체 점화 막대 없이 종료했다가 다시 시작할 수 있습니다. +book.rbmk.title16=멜트다운 기준 +book.rbmk.page16=RBMK는 기둥 온도가 1500°C 이상이거나 연료 스킨 온도가 연료 녹는 점 이상이면 폭발합니다. 다음과 같이 함으로써 §4§l멜트다운을 피하십시오.§r 연료 로드를 교체하기 전에 종료하십시오. 제거 후 유입되는 플럭스에 무슨 일이 일어나는지 생각하십시오. 가장 위험한 것에서 가장 위험하지 않은 것으로 순서대로 제거하십시오. + +book.rbmk.title_fluxgraph=크세논 독 +book.rbmk.page_fluxgraph= §l50 플럭스§r는 좌측 RBMK 연료 로드에서 방출됩니다. 제어 로드는 §l80% 이상을 통과시키므로 40§r 플럭스를 통과시킵니다. §5§l제논 피독은 유입되는 플럭스의 §5§l75%를 차단합니다.§r 10 플럭스는 실제로 우측 RBMK 연료 로드에 도달합니다. 제논 피독은 낮은 플럭스와 함께 발생합니다. +book.rbmk.title_flux=플럭스 +book.rbmk.page_flux=방출된 중성자의 흐름을 플럭스라고 합니다. 중성자는 열을 만드는 연료봉에서 원자를 쪼개는 것입니다. 플럭스 함수 f(x)는 입력 플럭스 x가 주어졌을 때 얼마나 많은 플럭스가 방출되고 열이 생성되는지를 결정합니다. 예: 플럭스 함수는 §lsqrt(입력) * 2 = 출력입니다.§r 따라서 10 플럭스를 입력하면 출력은 sqrt(10) * 2 = 6.480 플럭스가 됩니다. + +book.rbmk.title_flux_explain=플럭스 함수 +book.rbmk.page_flux_explain=플럭스 출력 * 열/유속 = 열 출력. 최대 열에 대해 많은 플럭스와 높은 열/유속을 원합니다. X축은 입력 플럭스이고 Y축은 출력 플럭스입니다. 대부분의 연료는 f(0) = 0이므로 0 입력에서는 출력이 0입니다. 그들은 스스로 시작하지 않고 시작하기 위해 플럭스 입력이 필요합니다. 항상 켜져 있는 §4자체 점화식 로드를 통해 초기 입력을 얻습니다. + +book.rbmk.title_func_passive=수동적 +book.rbmk.page_func_passive=자체 유지: §2예§r 반사판 사용: §8무관함§r 예: f(x) = 50 +book.rbmk.title_func_euler=오일러 +book.rbmk.page_func_euler=자체 유지 : §8아니요§8 반사기 사용 : §2유리함§r 예 : f(x) = (1-e^(-x/25)) * 20 +book.rbmk.title_func_sigmoid=시그모이드 +book.rbmk.page_func_sigmoid=자체 유지: §8아니요§r 반사기 사용: §2유리함§r 예: f(x) = 30 / (1 + e^(-0.1x + 5)) +book.rbmk.title_func_logarithmic=대수 +book.rbmk.page_func_logarithmic=자체 유지: §2예§r 반사기 사용: §2유리함§r 예: f(x) = log10(x) * 10 +book.rbmk.title_func_square_root=제곱근 +book.rbmk.page_func_square_root=자체 유지: §2예§r 반사기 사용: §2유리함§r 예: f(x) = √x * 2 +book.rbmk.title_func_neg_quad=음의 이차 +book.rbmk.page_func_neg_quad=자체 유지 = §6아마도§r 반사기 사용: §6위험함§r 예: f(x) = x - x² * 0.001 +book.rbmk.title_func_linear=선의 +book.rbmk.page_func_linear=자체 유지: §8아니요§r 반사기 사용: §4위험함§r 예: f(x) = x * 0.5 중간, 안전하고 수동적이지만 더 높은 연료는 아닙니다. +book.rbmk.title_func_quadratic=이차 +book.rbmk.page_func_quadratic=자체 유지: §8아니요§r 반사기 사용: §4§l미침§r 예: f(x) = x² * 0.1 안전하고 수동적인 연료 또는 흡수 장치 옆에만 배치하십시오. + +book.rbmk.title_tips=팁 +book.rbmk.page_tips=플럭스가 반응기 외부로 나가거나(차단되거나 반사되지 않음) 플럭스가 뚜껑 없이 rbmk 컬럼에 도달하는 경우 방사선이 누출됩니다. 유체 로더는 증기 채널과 유체 히터에 접근하기 위해 사용됩니다. 조사 채널은 레시피에 유입되는 플럭스를 사용하는 흡수체입니다. + +book.rbmk.title_mistakes=흔한 실수 +book.rbmk.page_mistakes=§l정보§r: 빈 RBMK 연료 기둥은 플럭스에 투명합니다. §l시나리오§r: 고갈된 연료봉을 분홍색으로 교체합니다. 빨간색 기둥에는 §4위험 등급§r 플럭스 기능이 있는 연료가 있습니다. 분홍색의 연료봉을 꺼내면 RBMK가 폭발합니다. 그래서 어떻게 됐을까요? 빨간색에서 나온 플럭스는 더 이상 분홍색에 흡수되지 않고 반사되어 되돌아옵니다. 이것은 온도를 상승시키는 피드백 루프를 만듭니다 brrr. + +book.rbmk.title_post_meltdown=포스트 멜트다운 프로토콜 +book.rbmk.page_post_meltdown=RBMK가 폭발했습니다. 이제 어떻게 될까요? 두 가지 위험은 방사선과 열입니다. 높은 폭발 저항력을 가진 블록을 사용하여 내부 방사선으로부터 자신을 보호하면 열로부터 보호받고 가까이 다가갈 수 있습니다. RBMK는 천천히 냉각되어 일반 잔해로 부패됩니다. 붕소 모래가 RBMK 잔해를 태우거나 방사하는 옆에 있으면 붕괴 속도가 빨라지고 방사능 수준이 감소합니다. 방사능 확산이 제한되도록 핵 폭발 방지 기능을 갖춘 지하 공간에 RBMK를 건설하세요. 폭발 저항이 높은 블록으로 연료 채널 아래의 노심 흐름을 차단하여 코어블스톤 형성을 방해합니다. + +chem.TEST=시험 +chem.ARSENIC=비소 추출 +chem.SULFURIC_ACID=황산 생산 +chem.OSMIRIDIUM_DEATH=오스미리딕 솔루션 생산 +chem.FP_HEAVYOIL=중유처리 +chem.FP_SMEAR=산업용 오일 처리 +chem.FP_NAPHTHA=나프타 가공 +chem.FP_LIGHTOIL=경유 가공 +chem.FR_REOIL=오일 재처리 +chem.FR_PETROIL=석유 혼합 +chem.OIL_SAND=타르 모래 추출 +chem.FC_BITUMEN=역청 크래킹 +chem.FC_I_NAPHTHA=산업용 오일 크래킹 +chem.FC_GAS_PETROLEUM=가스 분해 +chem.FC_DIESEL_KEROSENE=디젤 크래킹 +chem.FC_KEROSENE_PETROLEUM=등유 분해 +chem.CC_OIL=석탄 액화 +chem.CC_I=향상된 석탄 액화 +chem.CC_HEATING=고급 석탄 액화 +chem.CC_HEAVY=기본 석탄 액화 +chem.CC_NAPHTHA=나프타 석탄 액화 +chem.ASPHALT=아스팔트 생산 +chem.CONCRETE=콘크리트 생산 +chem.CONCRETE_ASBESTOS=석면 콘크리트 생산 +chem.COOLANT=냉각수 혼합 +chem.CRYOGEL=크리오겔 혼합 +chem.DESH=제품생산 +chem.PEROXIDE=과산화수소 생산 +chem.CIRCUIT_4=오버클럭된 회로 생산 +chem.CIRCUIT_5=고성능 회로 생산 +chem.SF_OIL=원유 고형화 +chem.SF_HEAVYOIL=중유 응고 +chem.SF_SMEAR=산업용 오일 고형화 +chem.SF_HEATINGOIL=난방유 고화 +chem.SF_RECLAIMED=재생유 고화 +chem.SF_PETROIL=석유 고형화 +chem.SF_LUBRICANT=윤활유 고화 +chem.SF_NAPHTHA=나프타 응고 +chem.SF_DIESEL=디젤 응고 +chem.SF_LIGHTOIL=경유 고화 +chem.SF_KEROSENE=등유 응고 +chem.SF_GAS=천연가스 응고 +chem.SF_PETROLEUM=석유가스 고화 +chem.SF_BIOGAS=바이오가스 고화 +chem.SF_BIOFUEL=바이오연료 고화 +chem.POLYMER=고분자 합성 +chem.BAKELITE=베이클라이트 생산 +chem.RUBBER=고무생산 +chem.DEUTERIUM=중수소 추출 +chem.STEAM=물 끓기 +chem.ALGE=바이오매스 광합성 +chem.YELLOWCAKE=옐로케이크 생산 +chem.UF6=육불화우라늄 생산 +chem.PUF6=육불화플루토늄 생산 +chem.BP_BIOGAS=바이오가스 생산 +chem.BP_BIOFUEL=바이오연료 에스테르교환 +chem.SAS3=슈라비듐 삼황화물 생산 +chem.NITAN=NITAN 슈퍼 연료 혼합 +chem.DYN_STR=네오벨린 합성 +chem.DYN_SCHRAB=슈라비듐 다이노합성 +chem.DYN_EUPH=유페늄 합성 +chem.DYN_DNT=디뉴트로늄 다이노합성 +chem.DYN_EL=전자 합성 +chem.CORDITE=코르다이트 생산 +chem.KEVLAR=케블라 화합물 생산 +chem.SOLID_FUEL=고체 로켓 연료 생산 +chem.ELECTROLYSIS=극저온 전기분해 +chem.XENON=린데 제논 사이클 +chem.XENON_OXY=강화된 린데 제논 사이클 +chem.SATURN=토성 생산 +chem.BALEFIRE=베일파이어 로켓 연료 혼합 +chem.SCHRABIDATE=철 슈라비데이트 생산 +chem.SCHRABIDIC=슈라비딕산 혼합 +chem.COLTAN_CLEANING=콜탄 퓨리파잉 +chem.COLTAN_CRYSTAL=탄탈륨 결정화 +chem.COLTAN_PAIN=판데모늄(III)탄탈라이트 생산 +chem.VIT_GAS=기체 핵폐기물 유리화 +chem.VIT_LIQUID=액체 핵폐기물 유리화 +chem.TEL=전화 믹싱 +chem.GNEISS_GAS=가스 셰일 연구소 파쇄 +chem.GASOLINE=휘발유 생산 +chem.FRACKSOL=파쇄 솔루션 생산 + +fluid.colloid=콜로이드 +fluid.ethanol=에탄올 +fluid.fishoil=생선 기름 +fluid.sunfloweroil=해바라기씨유 +fluid.nitroglycerin=니트로글리세린 +fluid.fracksol=파쇄 솔루션 +container.frackingTower=유압 파쇄 타워 +item.canister_fracksol.name=파쇄 솔루션 캐니스터 +item.scrap_oil.name=기름진 찌꺼기 + +tile.sand_dirty.name=기름진 모래 +tile.sand_dirty_red.name=붉은 기름진 모래 +tile.plant_dead_generic.name=죽은 식물 +tile.plant_dead_grass.name=죽은 식물 +tile.plant_dead_flower.name=죽은 식물 +tile.plant_dead_big_flower.name=죽은 식물 +tile.plant_dead_fern.name=죽은 식물 +tile.ore_bedrock_oil.name=기반암 석유 매장지 +tile.machine_fracking_tower.name=유압 파쇄 타워 + +tile.dirt_dead.name=죽은 흙 +tile.dirt_oily.name=기름진 먼지 + +tile.stone_cracked.name=갈라진 돌 + +item.record.lc.desc=밸브 - 당뇨병 아드레날린 기타/람다 코어 +item.record.ss.desc=밸브 - 섹터 스윕 +item.record.vc.desc=밸브 - 보탈컴뱃 +item.record.glass.desc=? ? ? + + +death.attack.mku=%1$s이(가) 알 수 없는 원인으로 사망했습니다. +death.attack.nuclearBlast=%1$s이(가) 핵폭발로 인해 폭발했습니다. +death.attack.revolverBullet=%1$s이(가) %2$s한테 머리에 총을 맞았습니다. +death.attack.gunGib=%1$s이(가) %2$s에 의해 조각으로 분해되었습니다. +death.attack.mudPoisoning=%1$s는 독이 있는 진흙에서 사망했습니다. +death.attack.euthanized=%1$s이(가) %2$s에 의해 안락사되었습니다. +death.attack.euthanizedSelf=%1$s는 자신을 안락사 시켰습니다, ㅋㅋ +death.attack.euthanizedSelf2=%1$s이(가) 다윈상을 수상합니다. +death.attack.tau=%1$s는 음으로 충전된 타우온을 사용하여 %2$s에 의해 가득 찼습니다. +death.attack.tauBlast=%1$s이(가) XVL1456을 너무 오래 충전하여 산산조각이 났습니다. +death.attack.chopperBullet=%1$s이(가) %2$s에게 고정되었습니다. +death.attack.cmb=%1$s를 %2$s로 채웠습니다. +death.attack.subAtomic=%1$s의 원자는 %2$s에 의해 파괴되었습니다. +death.attack.subAtomic2=%2$s이(가) 사실상의 속도를 변조했기 때문에 %1$s이(가) QPU 정렬이 잘못되었습니다. +death.attack.subAtomic3=%2$s 때문에 %1$s의 차이가 1% 미만으로 떨어졌습니다. +death.attack.subAtomic4=%1$s를 %2$s로 0으로 나눴습니다. +death.attack.subAtomic5=%1$s이(가) %2$s에게 무효화되었습니다. +death.attack.radiation=%1$s이(가) 방사선 중독으로 사망했습니다. +death.attack.acid=%1$s이(가) 산성에 떨어졌습니다. +death.attack.suicide=%1$s의 머리가 날라갔습니다. +death.attack.electrified=%1$s이(가) %2$s에게 전기화되었습니다. +death.attack.flamethrower=%1$s이(가) %2$s에 의해 화장되었습니다. +death.attack.plasma=%1$s이(가) %2$s에 의해 분해되었습니다. +death.attack.ice=%1$s이(가) %2$s에 의해 아이스캔디로 변경되었습니다. +death.attack.cheater=%1$s의 창자가 귀리로 변했습니다. (??) +death.attack.laser=%1$s이(가) %2$s예 재로 변경되었습니다. +death.attack.rubble=%1$s이(가) 파편에 의해 찌그러졌습니다. +death.attack.shrapnel=%1$s이(가) 파편에 의해 누더기가 되었습니다. +death.attack.spikes=%1$s이(가) 침해되었습니다. +death.attack.teleporter=%1$s이(가) 무(無). +death.attack.blackhole=%1$s이(가) 스파게티화되었습니다. +death.attack.blender=%1$s이(가) 한 입 크기의 작은 조각으로 잘렸습니다. +death.attack.meteorite=%1$s이(가) 우주에서 떨어진 암석에 맞았습니다. +death.attack.boxcar=%1$s이(가) 떨어지는 박스카에 의해 스매싱되었습니다. 오, 글쎄요. +death.attack.boat=%1$s이(가) 보트에 치였습니다. +death.attack.building=%1$s이(가) 떨어지는 건물에 맞았습니다. +death.attack.electricity=%1$s이(가) 감전되었습니다. +death.attack.exhaust=%1$s는 출발하는 로켓에 의해 쉬쉬 케밥으로 바뀌었습니다. +death.attack.broadcast=%1$s이(가) 뇌를 녹았습니다. +death.attack.ams=%1$s는 아직 인간 과학에 의해 명명되지 않은 치명적인 입자로 덮여 있었습니다. +death.attack.amsCore=%1$s이(가) 특이점의 화재로 기화되었습니다. +death.attack.bang=%1$s이(가) 한 입 크기의 조각으로 폭발했습니다. +death.attack.pc=%1$s이(가) 분홍색 구름의 웅덩이로 감소했습니다. +death.attack.cloud=%1$s이(가) 태양 아래 아이스캔디처럼 녹았습니다. +death.attack.lead=%1$s이(가) 납 중독으로 사망했습니다. +death.attack.taint=%1$s는 플럭스 종양으로 사망했습니다. +death.attack.lunar=%1$s이(가) 중요한 장기를 충전하는 것을 잊었습니다. +death.attack.gluon=%1$s이(가) 농축 글루온 스트림에 의해 탈원자화되었습니다. +death.attack.slicer=%1$s이(가) 반으로 잘렸습니다. +death.attack.crucible=%1$s는 순수한 아르젠트 에너지의 블레이드에 의해 이등분되었습니다. +death.attack.monoxide=%1$s이(가) 일산화탄소 감지기의 배터리를 교체하는 것을 잊었습니다. +death.attack.digamma=%1$s이(가) 심연으로 들어갔습니다. +death.attack.asbestos=%1$s는 이제 금전적 보상을 받을 수 있습니다. +death.attack.blacklung=%1$s는 탄광에 목숨을 바쳤습니다. + +item.redstone_sword.name=레드스톤 검 item.big_sword.name=대검 -item.billet_ac227.name=악티늄-227 빌렛 -item.billet_am241.name=아메리슘-241 빌릿 -item.billet_am242.name=아메리슘-242 빌렛 -item.billet_am_mix.name=원자로 등급 Americium Billet -item.billet_americium_fuel.name=아메리슘 연료 빌릿 -item.billet_au198.name=골드-198 빌렛 -item.billet_australium.name=오스트랄륨 빌렛 -item.billet_australium_greater.name=오스트랄륨-406 빌릿 -item.billet_australium_lesser.name=오스트랄륨-405 빌릿 -item.billet_balefire_gold.name=플래시골드 빌릿 -item.billet_beryllium.name=베릴륨 빌릿 -item.billet_bismuth.name=비스무트 빌렛 -item.billet_co60.name=코발트-60 빌릿 -item.billet_flashlead.name=플래시리드 빌렛 -item.billet_gh336.name=Ghiorsium-336 빌렛 -item.billet_hes.name=고농축 Schrabidium 연료 빌릿 -item.billet_les.name=저농축 Schrabidium 연료 빌렛 -item.billet_mox_fuel.name=MOX 연료 빌렛 -item.billet_neptunium.name=넵투늄-237 빌렛 -item.billet_neptunium_fuel.name=넵투늄 연료 빌릿 -item.billet_nuclear_waste.name=핵 폐기물 빌릿 -item.billet_pb209.name=리드-209 빌렛 -item.billet_plutonium.name=플루토늄 빌릿 -item.billet_plutonium_fuel.name=플루토늄 연료 빌릿 -item.billet_po210be.name=Po210Be 빌릿 -item.billet_polonium.name=폴로늄-210 빌릿 -item.billet_pu238.name=플루토늄-238 빌릿 -item.billet_pu238be.name=Pu238Be 빌릿 -item.billet_pu239.name=플루토늄-239 빌렛 -item.billet_pu240.name=플루토늄-240 빌릿 -item.billet_pu241.name=플루토늄-241 빌릿 -item.billet_pu_mix.name=원자로 등급 플루토늄 빌릿 -item.billet_ra226.name=라듐-226 빌렛 -item.billet_ra226be.name=Ra226Be 빌릿 -item.billet_schrabidium.name=Schrabidium-326 빌렛 -item.billet_schrabidium_fuel.name=Schrabidium 연료 빌릿 -item.billet_solinium.name=솔리늄-327 빌릿 -item.billet_sr90.name=스트론튬-90 빌렛 -item.billet_technetium.name=테크네튬-99 빌렛 -item.billet_th232.name=토륨-232 빌렛 -item.billet_thorium_fuel.name=토륨 연료 빌릿 -item.billet_u233.name=우라늄-233 빌릿 -item.billet_u235.name=우라늄-235 빌렛 -item.billet_u238.name=우라늄-238 빌릿 -item.billet_unobtainium.name=언옵티늄 중성자 빌렛 -item.billet_uranium.name=우라늄 빌렛 -item.billet_uranium_fuel.name=우라늄 연료 빌릿 -item.billet_yharonite.name=야로나이트 빌렛 -item.billet_zfb_am_mix.name=아메리슘 ZFB 빌렛 -item.billet_zfb_bismuth.name=비스무트 ZFB 빌릿 -item.billet_zfb_pu241.name=Pu-241 ZFB 빌릿 -item.billet_zirconium.name=지르코늄 빌릿 -item.bio_wafer.name=바이오 웨이퍼 -item.biomass.name=바이오매스 -item.biomass_compressed.name=압축 바이오매스 -item.bismuth_pickaxe.name=비스무트 곡괭이 -item.bismuth_tool.name=자기 추출기 -item.bj_boots.name=달의 박힌 장화 -item.bj_helmet.name=열 센서가 있는 안대 -item.bj_legs.name=달 사이버네틱 다리 교체 -item.bj_plate.name=달 사이버네틱 도금 -item.bj_plate_jetpack.name=달 사이버네틱 도금(날개형) -item.black_diamond.name=블랙 다이아몬드 -item.black_hole.name=미니어처 블랙홀 -item.blade_meteorite.name=운석 블레이드 -item.blade_titanium.name=티타늄 블레이드 -item.blade_tungsten.name=텅스텐 강화 블레이드 -item.blades_advanced_alloy.name=고급 슈레더 ​​블레이드 -item.blades_aluminium.name=알루미늄 슈레더 블레이드 -item.blades_aluminum.name=알루미늄 슈레더 블레이드 -item.blades_combine_steel.name=CMB 슈레더 블레이드 -item.blades_desh.name=데쉬 슈레더 블레이드 -item.blades_gold.name=골든 슈레더 블레이드 -item.blades_iron.name=철 분쇄기 블레이드 -item.blades_schrabidium.name=슈라비디움 슈레더 블레이드 -item.blades_steel.name=강철 슈레더 블레이드 -item.blades_titanium.name=티타늄 슈레더 블레이드 -item.board_copper.name=구리 패널 -item.bobmazon_hidden.name=숨겨진 카탈로그 -item.bobmazon_machines.name=Vault-tec 지원: 블록 및 기계 -item.bobmazon_materials.name=Vault-tec 지원: 재료 -item.bobmazon_tools.name=Vault-tec 지원: 도구 -item.bobmazon_weapons.name=Vault-tec 지원: 무기 및 폭발물 -item.bolt_compound.name=강화 터빈 샤프트 -item.bolt_dura_steel.name=고속 강철 볼트 -item.bolt_tungsten.name=텅스텐 볼트 -item.bomb_caller.name=공습 지정자 -item.bomb_waffle.name=대량 파괴의 와플 -item.book_guide_book.name=가이드북 -item.book_of_.name=박스카의 책 -item.book_secret.name=3-596-50802-9 -item.bottle2_empty.name=빈 병 -item.bottle2_fritz.name=프리츠 콜라 -item.bottle2_fritz_special.name=최초의 프리츠 콜라 -item.bottle2_korl.name=콜 -item.bottle2_korl_special.name=더 퍼스트 콜 -item.bottle2_sunset.name=선셋 사르사파릴라 -item.bottle_cherry.name=누카 체리 병 -item.bottle_empty.name=빈 폭탄 모양의 병 -item.bottle_mercury.name=수은의 병 -item.bottle_nuka.name=누카 콜라 병 -item.bottle_opener.name=Hbm 자체 제작 병따개 -item.bottle_quantum.name=누카 콜라 퀀텀 병 -item.bottle_rad.name=에스콜라 RAD 한 병 -item.bottle_sparkle.name=에스콜라 한병 -item.boy_bullet.name=U235 발사체 +item.test_nuke_igniter.name=점화기 +item.test_nuke_propellant.name=추진제 +item.test_nuke_tier1_shielding.name=중성자 반사경(Tier 1) +item.test_nuke_tier2_shielding.name=중성자 반사경(Tier 2) +item.test_nuke_tier1_bullet.name=U235 발사체(티어 1) +item.test_nuke_tier2_bullet.name=MOX 발사체(2단계) +item.test_nuke_tier1_target.name=아임계 U235 대상(계층 1) +item.test_nuke_tier2_target.name=아임계 MOX 표적(계층 2) + +item.gadget_explosive.name=1세대 폭발성 렌즈 +item.gadget_explosive8.name=1세대 내파 추진제 묶음 +item.gadget_wireing.name=배선 +item.gadget_core.name=플루토늄 코어 + item.boy_igniter.name=폭탄 점화기 -item.boy_kit.name=리틀 보이 키트 item.boy_propellant.name=추진제 +item.boy_bullet.name=U235 발사체 +item.boy_target.name=아임계 U235 표적 item.boy_shielding.name=중성자 차폐 -item.boy_target.name=아 임계 U235 대상 -item.briquette_lignite.name=갈탄 연탄 -item.bucket_acid.name=산성 양동이 -item.bucket_mud.name=독성 진흙 양동이 -item.bucket_toxic.name=셀라린 양동이 -item.burnt_bark.name=탄 껍질 -item.can_bepis.name=베피스 -item.can_breen.name=닥터 브린스 프라이빗 리저브 -item.can_creature.name='크리처' 에너지 드링크 -item.can_empty.name=빈 캔 -item.can_key.name=와인딩 키 -item.can_luna.name=블랙 메사 루나 - 다크 콜라 -item.can_mrsugar.name='박사. 설탕 청량 음료 -item.can_overcharge.name=과충전 섬망 XT -item.can_redbomb.name='레드밤' 에너지 드링크 -item.can_smart.name='스마트' 에너지 드링크 -item.canister_biofuel.name=바이오 연료 캐니스터 -item.canister_bitumen.name=역청 용기 -item.canister_canola.name=엔진 윤활유 -item.canister_empty.name=빈 캐니스터 -item.canister_fuel.name=디젤 캐니스터 -item.canister_gasoline.desc=납은 친구$친구를 당신의 혈류 속으로 들여보내십시오$*자지 총* 지금 하세요. -item.canister_gasoline.name=유연 휘발유 용기 -item.canister_heatingoil.name=난방유 용기 -item.canister_heavyoil.name=중유 캐니스터 -item.canister_kerosene.name=등유 용기 -item.canister_lightoil.name=경유 캐니스터 -item.canister_napalm.name=네이팜비 -item.canister_naphtha.name=나프타 캐니스터 -item.canister_oil.name=원유 캐니스터 -item.canister_petroil.name=석유 캐니스터 -item.canister_reoil.name=재활용 산업용 오일 용기 -item.canister_smear.name=산업용 오일 캐니스터 -item.canister_superfuel.name=NITAN© 100 옥탄 슈퍼 연료 캐니스터 -item.canned_asbestos.name=통조림 석면 -item.canned_ass.name=통조림 엉덩이 -item.canned_bark.name=통조림 소나무 껍질 육포 -item.canned_beef.name=통조림 쇠고기 -item.canned_bhole.name=통조림 블랙홀 -item.canned_cheese.name=통조림 녹은 치즈 -item.canned_chinese.name=중국 통조림 -item.canned_diesel.name=통조림 디젤 -item.canned_fist.name=통조림 주먹 -item.canned_fried.name=통조림 프라이드 치킨 -item.canned_hotdogs.name=통조림 핫도그 -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ -item.canned_kerosene.name=등유 통조림 -item.canned_leftovers.name=남은 보존 -item.canned_milk.name=통조림 증발 우유 -item.canned_mystery.name=통조림 미스터리 고기 -item.canned_napalm.name=통조림 네이팜 -item.canned_oil.name=통조림 엔진 오일 -item.canned_pashtet.name=Паштет -item.canned_pizza.name=통조림 페퍼로니 피자 -item.canned_recursion.name=미리 준비된 재귀 -item.canned_spam.name=통조림 스팸 -item.canned_stew.name=통조림 "버섯 스튜" -item.canned_tomato.name=통조림 토마토 수프 -item.canned_tube.name=우주 비행사 음식 튜브 -item.canned_tuna.name=통조림 참치 -item.canned_yogurt.name=통조림 요구르트 -item.canteen_13.name=볼트 13 수통 -item.canteen_fab.name=멋진 보드카 -item.canteen_vodka.name=세련된 플라스크 -item.cap_aluminium.name=알루미늄 캡 -item.cap_fritz.name=프리츠 콜라 병뚜껑 -item.cap_korl.name=콜 병마개 -item.cap_nuka.name=누카콜라 병뚜껑 -item.cap_quantum.name=누카콜라 퀀텀 병뚜껑 -item.cap_rad.name=에스콜라 RAD 병뚜껑 -item.cap_sparkle.name=S~콜라 병뚜껑 -item.cap_star.name=선셋 사르사파릴라 스타 캡 -item.cap_sunset.name=선셋 사르사파릴라 병뚜껑 -item.cape_ayy.name=아이의 망토 -item.cape_codered_.name=codered_의 망토 -item.cape_dafnik.name=다프닉의 망토 -item.cape_gasmask.name=망토(방독면) -item.cape_hbm.name=Hbm의 케이프 -item.cape_lpkukin.name=LP쿠킨의 망토 -item.cape_nostalgia.name=노스탤지어 박사의 망토 -item.cape_radiation.name=케이프(방사선) -item.cape_schrabidium.name=케이프(슈라비딕) -item.cape_vertice.name=버티스 경의 망토 -item.casing_357.name=.357 매그넘 케이스(x24) -item.casing_44.name=.44 매그넘 케이스(x24) -item.casing_50.name=대구경 케이스(x12) -item.casing_9.name=소구경 케이스(x32) -item.casing_buckshot.name=벅샷 케이싱(x12) -item.catalyst_clay.name=점토 촉매 -item.cbt_device.name=CBT 장치 -item.cc_plasma_gun.name=[WIP] CC 플라즈마 건 -item.cell_anti_schrabidium.name=항스크라비디움 세포 -item.cell_antimatter.name=반물질 세포 -item.cell_deuterium.name=중수소 세포 -item.cell_empty.name=빈 셀 -item.cell_puf6.name=플루토늄 헥사플루오라이드 셀 -item.cell_sas3.name=Schrabidium Trisulfide 세포 -item.cell_tritium.name=삼중수소 셀 -item.cell_uf6.name=육불화 우라늄 셀 -item.centri_stick.name=스틱형 원심분리기 -item.centrifuge_element.name=원심 분리기 요소 -item.centrifuge_tower.name=원심 분리기 타워 -item.chainsaw.name=전기톱 -item.charge_railgun.name=중수소 플라즈마 캡슐 -item.chemistry_template.name=화학 템플릿: -item.chernobylsign.name=체르노빌 경고 표시 전투 도끼 -item.chlorine_pinwheel.name=염소 바람개비 -item.chlorophyte_pickaxe.name=녹조류 곡괭이 -item.chocolate_milk.name=초콜릿 우유 -item.chopper.name=헌터 헬기 -item.chopper_blades.name=헌터 초퍼 로터 블레이드 -item.chopper_gun.name=배치 총 -item.chopper_head.name=헌터 헬기 조종석 -item.chopper_tail.name=헌터 헬기 꼬리 -item.chopper_torso.name=헌터 헬기 본체 -item.chopper_wing.name=헌터 헬기 날개 -item.cinnebar.name=단사 -item.circuit_aluminium.name=기본 회로 -item.circuit_bismuth.name=다목적 칩셋 -item.circuit_bismuth_raw.name=다목적 칩셋 어셈블리 -item.circuit_copper.name=향상된 회로 -item.circuit_gold.name=오버클럭 회로 -item.circuit_raw.name=기본 회로 조립 -item.circuit_red_copper.name=고급 회로 -item.circuit_schrabidium.name=고성능 회로 -item.circuit_tantalium.name=커패시터 보드 -item.circuit_tantalium_raw.name=커패시터 보드 어셈블리 -item.circuit_targeting_tier1.name=군용 등급 회로 기판(계층 1) -item.circuit_targeting_tier2.name=군용 등급 회로 기판(계층 2) -item.circuit_targeting_tier3.name=군용 등급 회로 기판(계층 3) -item.circuit_targeting_tier4.name=군용 등급 회로 기판(계층 4) -item.circuit_targeting_tier5.name=군용 등급 회로 기판(계층 5) -item.circuit_targeting_tier6.name=군용 등급 회로 기판(계층 6) -item.cladding_desh.name=데쉬 클래딩 -item.cladding_di.name=다이뉴트로늄 클래딩 -item.cladding_electronium.name=전자 클래딩 -item.cladding_ghiorsium.name=기오르슘 클래딩 -item.cladding_iron.name=철 클래딩 -item.cladding_lead.name=리드 클래딩 -item.cladding_obsidian.name=흑요석 피부 -item.cladding_paa.name=PaA 합금 클래딩 -item.cladding_paint.name=납 페인트 -item.cladding_rubber.name=고무 클래딩 -item.clip_bf.name=BF-쉘 더블 팩 -item.clip_bolt_action.name=12x74 민달팽이 상자 -item.clip_cryolator.name=Cryolator 연료 탱크 -item.clip_defabricator.name=제세동기 에너지 셀이 있는 벨트 -item.clip_emp.name=소형 에너지 셀 팩 -item.clip_euthanasia.name=응급 처치 키트 -item.clip_fatman.name=미니 핵무기 6개 팩 -item.clip_hp.name=잉크 탱크 -item.clip_immolator.name=Immolator 연료 탱크 -item.clip_jack.name=4중 12x70 벅샷 라운드 상자 -item.clip_lever_action.name=12x74 벅샷 라운드 상자 -item.clip_mirv.name=미니 MIRV의 3-in-1 팩 -item.clip_mp.name=브리타니아 군용 표준 발행 돌격소총 탄창 -item.clip_mp40.name=9mm SMG 탄창 -item.clip_osipr.name=AR2 매거진 -item.clip_revolver.name=.357 라운드 상자 -item.clip_revolver_cursed.name=브리타니아 군사 표준 문제 Pisol Magazine -item.clip_revolver_gold.name=작은 황금 총알 상자 -item.clip_revolver_iron.name=철탄 상자 -item.clip_revolver_lead.name=핵 총알 상자 -item.clip_revolver_nightmare.name=총알 가방 -item.clip_revolver_nightmare2.name=레이저 벅샷 벨트 -item.clip_revolver_nopip.name=.44 라운드 상자 -item.clip_revolver_pip.name=오염된 총알이 있는 스피드로더 -item.clip_revolver_schrabidium.name=슈라비디움 탄약통 -item.clip_rpg.name=로켓 컨테이너 -item.clip_spark.name=대형 전자기 카트리지 -item.clip_stinger.name=스팅어 로켓 팩 -item.clip_uboinik.name=12x70 벅샷 라운드 상자 -item.clip_uzi.name=32번째 .22 LR 매거진 -item.clip_xvl1456.name=대형 동위 원소 상자 -item.cmb_axe.name=CMB 강철 도끼 -item.cmb_boots.name=CMB 스틸 부츠 -item.cmb_helmet.name=CMB 스틸 헬멧 -item.cmb_hoe.name=CMB 스틸 괭이 -item.cmb_legs.name=CMB 스틸레깅스 -item.cmb_pickaxe.name=CMB 강철 곡괭이 -item.cmb_plate.name=CMB 스틸 흉갑 -item.cmb_shovel.name=CMB 강철 삽 -item.cmb_sword.name=CMB 스틸 소드 -item.coal_infernal.name=지옥불 석탄 -item.cobalt_axe.name=코발트 도끼 -item.cobalt_boots.name=코발트 장화 -item.cobalt_decorated_axe.name=장식된 코발트 도끼 -item.cobalt_decorated_hoe.name=장식된 코발트 괭이 -item.cobalt_decorated_pickaxe.name=장식된 코발트 곡괭이 -item.cobalt_decorated_shovel.name=장식된 코발트 삽 -item.cobalt_decorated_sword.name=장식된 코발트 검 -item.cobalt_helmet.name=코발트 투구 -item.cobalt_hoe.name=코발트 괭이 -item.cobalt_legs.name=코발트 레깅스 -item.cobalt_pickaxe.name=코발트 곡괭이 -item.cobalt_plate.name=코발트 흉갑 -item.cobalt_shovel.name=코발트 삽 -item.cobalt_sword.name=코발트 소드 -item.coil_advanced_alloy.name=초전도 코일 -item.coil_advanced_torus.name=초전도 링 코일 -item.coil_copper.name=구리 코일 -item.coil_copper_torus.name=링 코일 -item.coil_gold.name=골드 코일 -item.coil_gold_torus.name=골든 링 코일 -item.coil_magnetized_tungsten.name=4000K 고온 초전도 코일 -item.coil_tungsten.name=난방 코일 -item.coin_creeper.name=핵 크리퍼 코인 -item.coin_maskman.name=마스크맨 코인 -item.coin_radiation.name=방사선 동전 -item.coin_siege.name=공성 코인 -item.coin_ufo.name=UFO 코인 -item.coin_worm.name=Balls-O-Tron 코인 -item.coke.name=콜라 -item.coltass.name=콜타스 -item.combine_scrap.name=CMB 고철 -item.component_emitter.name=이미터 컴포넌트 -item.component_limiter.name=안정제 성분 -item.cordite.name=코르다이트 -item.cotton_candy.name=방사성 솜사탕 -item.crate_caller.name=보급품 투하 요청자 -item.crowbar.name=Mk.V 상자 개봉 장치 "지렛대" -item.crucible.name=도가니 -item.crystal_aluminium.name=알루미늄 크리스탈 -item.crystal_beryllium.name=베릴륨 결정체 -item.crystal_charred.name=까맣게 탄 수정 -item.crystal_cinnebar.name=진사 수정 -item.crystal_coal.name=석탄 결정 -item.crystal_cobalt.name=코발트 크리스탈 -item.crystal_copper.name=구리 결정 -item.crystal_diamond.name=다이아몬드 크리스탈 -item.crystal_energy.name=에너지 크리스탈 -item.crystal_fluorite.name=형석 결정 -item.crystal_gold.name=골드 크리스탈 -item.crystal_horn.name=수정 뿔 -item.crystal_iron.name=철 결정 -item.crystal_lapis.name=청금석 수정 -item.crystal_lead.name=리드 크리스탈 -item.crystal_lithium.name=리튬 결정체 -item.crystal_niter.name=나이터 크리스탈 -item.crystal_phosphorus.name=인 결정체 -item.crystal_plutonium.name=플루토늄 결정체 -item.crystal_rare.name=희토류 결정체 -item.crystal_redstone.name=레드스톤 크리스탈 -item.crystal_schrabidium.name=슈라비디움 크리스탈 -item.crystal_schraranium.name=슈라라늄 수정 -item.crystal_starmetal.name=스타메탈 크리스탈 -item.crystal_sulfur.name=유황 결정 -item.crystal_thorium.name=토륨 수정 -item.crystal_titanium.name=티타늄 크리스탈 -item.crystal_trixite.name=삼중석 수정 -item.crystal_tungsten.name=텅스텐 크리스탈 -item.crystal_uranium.name=우라늄 결정체 -item.crystal_xen.name=인공 젠 크리스탈 -item.custom_amat.name=맞춤형 핵무기 반물질 막대 -item.custom_dirty.name=커스텀 누크 더티 로드 -item.custom_fall.name=커스텀 Nuke Drop 업그레이드 -item.custom_hydro.name=커스텀 핵 수소로드 -item.custom_kit.name=맞춤형 핵무기 키트 -item.custom_nuke.name=맞춤형 핵무기 막대 -item.custom_schrab.name=커스텀 핵 슈라비디움 로드 -item.custom_tnt.name=맞춤형 핵 폭발물 -item.cyclotron_tower.name=사이클로트론 타워 -item.debris_fuel.name=RBMK 퓨얼 청크 -item.debris_graphite.name=뜨거운 흑연 덩어리 -item.debris_metal.name=깨진 금속 막대 -item.decontamination_module.name=오염 제거 모듈 -item.definitelyfood.name=TotallyNotDirt 브랜드 MRE -item.defuser.name=첨단폭탄해체장치 -item.demon_core_closed.name=닫힌 악마 핵 -item.demon_core_open.name=매달린 악마 핵 -item.desh_axe.name=노동자의 합금 도끼 -item.desh_hoe.name=노동자의 합금 괭이 -item.desh_pickaxe.name=노동자의 합금 곡괭이 -item.desh_shovel.name=노동자의 합금 삽 -item.desh_sword.name=노동자의 합금 검 -item.designator.name=단거리 표적 지정자 -item.designator_manual.name=수동 대상 지정자 -item.designator_range.name=장거리 표적 지시자 -item.detonator.name=뇌관 -item.detonator_de.name=데드맨의 폭발물 -item.detonator_deadman.name=망자의 기폭 장치 -item.detonator_laser.name=레이저 뇌관 -item.detonator_multi.name=다중 뇌관 -item.diamond_gavel.name=다이아몬드 망치 -item.digamma_diagnostic.name=디감마 진단 -item.dns_boots.name=DNT 나노 슈트 부츠 -item.dns_helmet.name=DNT 나노 슈트 헬멧 -item.dns_legs.name=DNT 나노수트 레깅스 -item.dns_plate.name=DNT 나노 수트 흉갑 -item.dnt_boots.name=디나트로늄 부츠 -item.dnt_helmet.name=디노트로니움 헬멧 -item.dnt_legs.name=다이뉴테리움 다리 -item.dnt_plate.name=디뉴트롬 흉갑 -item.door_bunker.name=벙커 도어 -item.door_metal.name=금속 문 -item.door_office.name=사무실 문 -item.dosimeter.name=선량계 -item.drax.name=테라 드릴 -item.drax_mk2.name=강화된 테라 드릴 -item.drax_mk3.name=슈라비딕 테라 드릴 -item.drill_titanium.name=티타늄 드릴 -item.ducc.name=두크 -item.ducttape.name=덕트 테이프 -item.dust.name=먼지 -item.dynosphere_base.name=블랭크 다이노스피어 -item.dynosphere_desh.name=데시 다이노스피어 -item.dynosphere_desh_charged.name=데시 다이노스피어(유료) -item.dynosphere_dineutronium.name=다이뉴트로늄 다이노스피어 -item.dynosphere_dineutronium_charged.name=다이뉴트로늄 다이노스피어(충전됨) -item.dynosphere_euphemium.name=유페미엄 다이노스피어 -item.dynosphere_euphemium_charged.name=유페미움 다이노스피어(유료) -item.dynosphere_schrabidium.name=슈라비디움 다이노스피어 -item.dynosphere_schrabidium_charged.name=슈라비디움 다이노스피어(유료) -item.dysfunctional_reactor.name=고장난 원자로 -item.egg_balefire.desc=방사능 알을 낳는 새는? -item.egg_balefire.name=베일파이어 알 -item.egg_balefire_shard.name=베일파이어 샤드 -item.elec_axe.name=전기톱 -item.elec_pickaxe.name=임팩트 드릴 -item.elec_shovel.name=스파이럴 드릴 -item.elec_sword.name=스턴스틱 -item.energy_core.name=임시 변통 에너지 코어 -item.entanglement_kit.name=얽힘 키트 -item.euphemium_boots.name=유페미엄 부츠 -item.euphemium_helmet.name=유페미엄 헬멧 -item.euphemium_kit.name=완곡 키트 -item.euphemium_legs.name=완곡한 다리보호구 -item.euphemium_plate.name=완곡 흉갑 -item.euphemium_stopper.name=스토퍼 -item.fabsols_vodka.name=팹솔의 보드카 -item.factory_core_advanced.name=첨단 공장 에너지 클러스터 -item.factory_core_titanium.name=기본 공장 에너지 클러스터 -item.falloutitem.name=낙진 더미 -item.fau_boots.name=포 부츠 -item.fau_helmet.name=포 헬멧 -item.fau_legs.name=파우 레깅스 -item.fau_plate.name=포 흉갑 -item.ff_fluid_duct.name=유체 덕트: -item.filter_coal.name=활성탄 필터 -item.fins_big_steel.name=큰 강철 그리드 핀 -item.fins_flat.name=플랫 스틸 케이싱 -item.fins_quad_titanium.name=작은 티타늄 핀 -item.fins_small_steel.name=소형 스틸 그리드 핀 -item.fins_tri_steel.name=대형 강철 핀 -item.five_htp.name=엔테라민 알약 -item.flame_conspiracy.name=음모론 -item.flame_opinion.name=자신의 의견 -item.flame_politics.name=정치적 주제 -item.flame_pony.name=만화 조랑말의 그림 -item.fleija_core.name=F.L.E.I.J.A. 우라늄 235 충전 -item.fleija_igniter.name=펄스 점화기 -item.fleija_kit.name=F.L.E.I.J.A. 전부 -item.fleija_propellant.name=슈라비디움 추진제 -item.fluid_barrel_empty.name=빈 유체 배럴 -item.fluid_barrel_full.name=유체 배럴: -item.fluid_barrel_infinite.name=무한 유체 배럴 -item.fluid_duct.name=유체 덕트: -item.fluid_identifier.name=유체 식별자 -item.fluid_tank_empty.name=빈 범용 유체 탱크 -item.fluid_tank_full.name=범용 유체 탱크: -item.fluorite.name=형석 -item.flywheel_beryllium.name=베릴륨 플라이휠 -item.fmn.name=플루니트라제팜 정제 -item.folly_bullet.name=12.8cm 스타메탈 고에너지 쉘 -item.folly_bullet_du.name=12.8cm 듀쉘 -item.folly_bullet_nuclear.name=12.8cm 핵 포탄 -item.folly_shell.name=실버 총알 케이스 -item.fooditem.name=식품 -item.forge_fluid_identifier.name=유체 식별자 -item.fragment_actinium.name=악티늄 조각 -item.fragment_boron.name=붕소 파편 -item.fragment_cerium.name=세륨 조각 -item.fragment_cobalt.name=코발트 조각 -item.fragment_coltan.name=콜탄 -item.fragment_lanthanium.name=란탄 조각 -item.fragment_meteorite.name=운석 조각 -item.fragment_neodymium.name=네오디뮴 조각 -item.fragment_niobium.name=니오브 조각 -item.fuel_tank_large.name=대형 연료 탱크 -item.fuel_tank_medium.name=중간 연료 탱크 -item.fuel_tank_small.name=소형 연료 탱크 -item.fuse.name=퓨즈 -item.fusion_core.name=퓨전 코어 -item.fusion_core_infinite.name=무한 퓨전 코어 -item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanket -item.fusion_shield_desh.name=Desh 융합 반응기 블랭킷 -item.fusion_shield_tungsten.name=텅스텐 융합 원자로 담요 -item.fusion_shield_vaporwave.name=Vaporwave 융합 ​​반응기 담요 -item.gadget_core.name=플루토늄 코어 -item.gadget_explosive.name=1세대 폭발 렌즈 -item.gadget_explosive8.name=1세대 내파 추진제 번들 -item.gadget_kit.name=가제트 키트 -item.gadget_wireing.name=배선 -item.gas_biogas.name=바이오가스 탱크 -item.gas_empty.name=빈 가스 탱크 -item.gas_full.name=가스 탱크 -item.gas_mask.name=방독면 -item.gas_mask_filter.name=방독면 필터 -item.gas_mask_filter_mono.name=촉매 마스크 필터 -item.gas_mask_m65.name=M65-Z 방독면 -item.gas_mask_mono.name=하프 마스크 -item.gas_petroleum.name=석유 가스 탱크 -item.geiger_counter.name=휴대용 가이거 계수기 -item.gem_tantalium.name=탄탈륨 다결정 -item.gem_volcanic.name=화산석 -item.generator_front.name=발전기 전면 -item.generator_steel.name=발전기 본체 -item.glitch.name=글리치 -item.glowing_stew.name=빛나는 버섯 스튜 -item.goggles.name=보호 고글 -item.grenade_aschrab.name=던질 수 있는 Antischrabidium 세포 -item.grenade_black_hole.name=블랙홀 수류탄 -item.grenade_breach.name=파괴 수류탄 -item.grenade_burst.name=파는 수류탄 -item.grenade_cloud.name=항아리 오브 클라우드 -item.grenade_cluster.name=클러스터 폭탄 -item.grenade_electric.name=번개 폭탄 -item.grenade_fire.name=화염 수류탄 -item.grenade_flare.name=신호탄 -item.grenade_frag.name=수류탄 -item.grenade_gas.name=가스 수류탄 -item.grenade_gascan.name=버릴 수 있는 가스 캔 -item.grenade_generic.name=수류탄 -item.grenade_if_bouncy.name=IF - 탄력 수류탄 -item.grenade_if_brimstone.name=IF - 던질 수 있는 유황 광산 -item.grenade_if_concussion.name=IF - 뇌진탕 수류탄 -item.grenade_if_generic.name=IF - 수류탄 -item.grenade_if_he.name=IF - HE 수류탄 -item.grenade_if_hopwire.name=IF - 소용돌이 홉와이어 -item.grenade_if_impact.name=IF - 충격 수류탄 -item.grenade_if_incendiary.name=IF - 소이 수류탄 -item.grenade_if_mystery.name=IF - 중형 수류탄 -item.grenade_if_null.name=IF - 무효 수류탄 -item.grenade_if_spark.name=IF - S.-수류탄 -item.grenade_if_sticky.name=IF - 점착 수류탄 -item.grenade_if_toxic.name=IF - 독성 수류탄 -item.grenade_kit.name=수류탄 키트 -item.grenade_lemon.name=가연성 레몬 -item.grenade_mirv.name=MIRV 수류탄 -item.grenade_mk2.name=Mk 2 수류탄 "앰배서더 파인애플" -item.grenade_nuclear.name=누카 수류탄 -item.grenade_nuke.name=Mark VI 드릴 수류탄 -item.grenade_pink_cloud.name=핑크 클라우드 항아리 -item.grenade_plasma.name=플라즈마 수류탄 -item.grenade_poison.name=독 수류탄 -item.grenade_pulse.name=충격 수류탄 -item.grenade_schrabidium.name=슈라비디움 수류탄 -item.grenade_shrapnel.name=파편 수류탄 -item.grenade_smart.name=스마트 수류탄 -item.grenade_solinium.name=솔리늄 수류탄 -item.grenade_strong.name=향상된 수류탄 -item.grenade_tau.name=타우 수류탄 -item.grenade_zomg.name=네거티브 에너지 쌍 섬멸 수류탄 -item.gun_ar15.name=조롱 -item.gun_avenger.name=CZ57 어벤저 미니건 -item.gun_b92.name=§9B92 에너지 권총§r -item.gun_b92_ammo.name=§9B92 에너지 셀§r (레거시) -item.gun_b93.name=§cB93 에너지 모드§r -item.gun_bf.name=벨 -item.gun_bf_ammo.name=베일파이어 쉘 -item.gun_bolt_action.name=드림 볼트액션 라이플(오리지널) -item.gun_bolt_action_ammo.name=12x74 슬러그(레거시) -item.gun_bolt_action_green.name=드림 볼트액션 소총(녹색) -item.gun_bolt_action_saturnite.name=새턴 라이플 -item.gun_bolter.name=체 -item.gun_calamity.name=재난 -item.gun_calamity_ammo.name=.50 BMG 라운드(레거시) -item.gun_calamity_dual.name=안장총 -item.gun_cryolator.name=크라이올레이터 -item.gun_cryolator_ammo.name=극저온 셀 -item.gun_dampfmaschine.name=절대 농담 무기가 아닙니다 -item.gun_darter.name=다트 건 -item.gun_deagle.name=빅 아이언 -item.gun_defabricator.name=제세동기 -item.gun_defabricator_ammo.name=제세동기 에너지 셀 -item.gun_egon.name=글루온 건 -item.gun_emp.name=EMP 건 -item.gun_emp_ammo.name=에너지 셀 -item.gun_euthanasia.name=안락사 -item.gun_euthanasia_ammo.name=주사기 -item.gun_fatman.name=M42 핵 투석기 "팻맨" -item.gun_fatman_ammo.name=미니 누크 -item.gun_flamer.name=미스터 토파즈 -item.gun_flechette.name=플레셰트 라이플 -item.gun_folly.name=프로토타입 디감마 "폴리" -item.gun_hk69.name=수류탄 권총 -item.gun_hp.name=HPP 레이저젯 -item.gun_hp_ammo.name=잉크 카트리지 -item.gun_immolator.name=이몰레이터 -item.gun_immolator_ammo.name=이몰레이터 연료 -item.gun_jack.name=착암기 -item.gun_jack_ammo.name=4연장 산탄총 탄환 -item.gun_jshotgun.name=오컬트 산탄총 -item.gun_karl.name=칼 -item.gun_kit_1.name=건 오일 -item.gun_kit_2.name=건 수리 키트 -item.gun_ks23.name=빅 샷건 사무엘 -item.gun_lacunae.name=CZ33 아바돈 -item.gun_lacunae_ammo.name=5mm 라운드(레거시) -item.gun_lever_action.name=암말의 다리(원본) -item.gun_lever_action_ammo.name=12x74 벅샷(레거시) -item.gun_lever_action_dark.name=암말의 다리(어둠) -item.gun_lever_action_sonata.name=뒤집힌 암말의 다리 -item.gun_lever_action_sonata_2.name=§c소나타의 마이크§r -item.gun_minigun.name=CZ53 개인용 미니건 -item.gun_mirv.name=M42 핵 투석기 "실험용 MIRV" -item.gun_mirv_ammo.name=8중 MIRV -item.gun_moist_nugget.name=모신나강 -item.gun_mp.name=평화주의자의 기관총 -item.gun_mp40.name=기관단총 -item.gun_mp40_ammo.name=기관단총 탄약 (LEGACY) -item.gun_mp_ammo.name=소형 추진제 없는 기관총 라운드 -item.gun_osipr.name=Overwatch 표준 발행 파동 소총 -item.gun_osipr_ammo.name=암흑 에너지 펄스 플러그 -item.gun_osipr_ammo2.name=공 결합 -item.gun_panzerschreck.name=판저슈렉 -item.gun_proto.name=M42 핵 투석기 "Proto MIRV" -item.gun_quadro.name=콰트로 포르마지 -item.gun_revolver.name=개량형 리볼버 -item.gun_revolver_ammo.name=리드 총알 -item.gun_revolver_blackjack.name=블랙잭 파이브슈터 -item.gun_revolver_cursed.name=저주받은 리볼버 -item.gun_revolver_cursed_ammo.name=강철 총알 -item.gun_revolver_gold.name=골든 리볼버 -item.gun_revolver_gold_ammo.name=황금 총알 -item.gun_revolver_inverted.name=뒤집힌 리볼버 -item.gun_revolver_iron.name=단순 리볼버 -item.gun_revolver_iron_ammo.name=총알 -item.gun_revolver_lead.name=누카 리볼버 -item.gun_revolver_lead_ammo.name=유리로 덮인 핵 총알 -item.gun_revolver_nightmare.name=악몽 리볼버(오리지널) -item.gun_revolver_nightmare2.name=악몽 리볼버(다크) -item.gun_revolver_nightmare2_ammo.name=레이저 벅샷 -item.gun_revolver_nightmare_ammo.name=악몽 총알 -item.gun_revolver_nopip.name=노박 -item.gun_revolver_nopip_ammo.name=.44 매그넘 총알(레거시) -item.gun_revolver_pip.name=릴 핍스퀵 -item.gun_revolver_pip_ammo.name=오염된 총알(LEGACY) -item.gun_revolver_red.name=레드 키 리볼버 -item.gun_revolver_saturnite.name=새터나이트 슈터 -item.gun_revolver_schrabidium.name=슈라비디움 리볼버 -item.gun_revolver_schrabidium_ammo.name=슈라비디움 총알 -item.gun_revolver_silver.name=렌트 건 -item.gun_rpg.name=칼 구스타프 무반동포 -item.gun_rpg_ammo.name=로켓(레거시) -item.gun_sauer.name=스탠 사우어의 산탄총 -item.gun_skystinger.name=원 스카이 스팅거 -item.gun_spark.name=점화 플러그 -item.gun_spark_ammo.name=전자기 카트리지 -item.gun_stinger.name=FIM-92 스팅거 -item.gun_stinger_ammo.name=스팅어 로켓 -item.gun_super_shotgun.name=슈퍼 산탄총 -item.gun_thompson.name=톰슨 기관단총 -item.gun_uboinik.name=우보이니크 -item.gun_uboinik_ammo.name=12x70 벅샷(레거시) -item.gun_uzi.name=IMI 우지 -item.gun_uzi_ammo.name=.22 LR 라운드(레거시) -item.gun_uzi_saturnite.name=새터나이트 우지 -item.gun_uzi_saturnite_silencer.name=소음기가 있는 새터나이트 우지 -item.gun_uzi_silencer.name=소음기가 장착된 IMI Uzi -item.gun_vortex.name=와동 -item.gun_xvl1456.name=XVL1456 타우 캐논 프로토타입 -item.gun_xvl1456_ammo.name=열화 우라늄-235 상자 -item.gun_zomg.name=ZOMG 캐논 -item.hand_drill.name=핸드 드릴 -item.hazmat_boots.name=방호복 장화 -item.hazmat_boots_grey.name=고성능 방호 장화 -item.hazmat_boots_red.name=고급 위험 물질 장화 -item.hazmat_cloth.name=방호복 -item.hazmat_cloth_grey.name=납 강화 위험물 천 -item.hazmat_cloth_red.name=고급 방호복 -item.hazmat_grey_kit.name=고성능 위험 물질 키트 -item.hazmat_helmet.name=위험 물질 헬멧 -item.hazmat_helmet_grey.name=고성능 방호 헬멧 -item.hazmat_helmet_red.name=고급 위험 물질 헬멧 -item.hazmat_kit.name=위험 물질 키트 -item.hazmat_legs.name=방호복 다리보호구 -item.hazmat_legs_grey.name=고성능 방호복 레깅스 -item.hazmat_legs_red.name=고급 방호복 다리보호구 -item.hazmat_paa_boots.name=PaA 전투 방호복 부츠 -item.hazmat_paa_helmet.name=PaA 전투 방호복 헬멧 -item.hazmat_paa_legs.name=PaA 전투 방호복 레깅스 -item.hazmat_paa_plate.name=PaA 전투 방호복 흉갑 -item.hazmat_plate.name=위험물 흉갑 -item.hazmat_plate_grey.name=고성능 방호물 흉갑 -item.hazmat_plate_red.name=고급 방호물 흉갑 -item.hazmat_red_kit.name=고급 위험 물질 키트 -item.heart_booster.name=하트 부스터 -item.heart_container.name=하트 컨테이너 -item.heart_fab.name=팹 하트 -item.heart_piece.name=하트 조각 -item.hev_battery.name=슈트 배터리 -item.hev_boots.name=HEV 마크 IV 부츠 -item.hev_helmet.name=HEV 마크 IV 헬멧 -item.hev_legs.name=HEV 마크 IV 레깅스 -item.hev_plate.name=HEV 마크 IV 체스트플레이트 -item.hf_sword.name=고주파 검 -item.horseshoe_magnet.name=말굽 자석 -item.hs_sword.name=초경질 강철 검 -item.hull_big_aluminium.name=큰 알루미늄 쉘 -item.hull_big_steel.name=큰 강철 껍질 -item.hull_big_titanium.name=큰 티타늄 껍질 -item.hull_small_aluminium.name=작은 알루미늄 쉘 -item.hull_small_steel.name=작은 강철 셸 -item.igniter.name=점화기 -item.industrial_magnet.name=산업용 자석 -item.inf_antimatter.name=무한 반물질 탱크 -item.inf_antischrabidium.name=무한 안티슈라비디움 탱크 -item.inf_coolant.name=무한 냉각수 탱크 -item.inf_deuterium.name=무한 중수소 탱크 -item.inf_diesel.name=무한 디젤 탱크 -item.inf_sulfur.name=무한 유황 탱크 -item.inf_tritium.name=무한 트리튬 탱크 -item.inf_water.name=무한 물탱크 -item.inf_water_mk2.name=헤비 무한 수조 -item.ingot_ac227.name=악티늄-227 주괴 -item.ingot_actinium.name=준안정 악티늄 주괴 -item.ingot_advanced_alloy.name=고급 합금 주괴 -item.ingot_aluminium.name=알루미늄 잉곳 -item.ingot_am241.name=아메리슘-241 주괴 -item.ingot_am242.name=아메리슘-242 주괴 -item.ingot_am_mix.name=반응기 등급 아메리슘 주괴 -item.ingot_americium_fuel.name=아메리슘 연료 주괴 -item.ingot_asbestos.name=석면 시트 -item.ingot_au198.name=금-198 주괴 -item.ingot_australium.name=오스트랄륨 주괴 -item.ingot_beryllium.name=베릴륨 주괴 -item.ingot_bismuth.name=비스무트 잉곳 -item.ingot_boron.name=붕소 주괴 -item.ingot_bromine.name=브롬 주괴 -item.ingot_caesium.name=세슘 주괴 -item.ingot_cerium.name=세륨 주괴 -item.ingot_chainsteel.name=헤비 체인스틸 -item.ingot_co60.name=코발트-60 주괴 -item.ingot_cobalt.name=코발트 주괴 -item.ingot_combine_steel.name=CMB 스틸 잉곳 -item.ingot_copper.name=산업 등급 구리 -item.ingot_daffergon.name=Daffergon 주괴 -item.ingot_desh.name=데쉬 잉곳 -item.ingot_dineutronium.name=다이뉴트로늄 잉곳 -item.ingot_dura_steel.name=고속도강 주괴 -item.ingot_electronium.name=전자 주괴 -item.ingot_euphemium.name=완곡 주괴 -item.ingot_fiberglass.name=유리 섬유 바 -item.ingot_gh336.name=기오르슘-336 주괴 -item.ingot_graphite.name=흑연 주괴 -item.ingot_hes.name=고농축 Schrabidium 연료 주괴 -item.ingot_i131.name=요오드-131 주괴 -item.ingot_iodine.name=요오드 주괴 -item.ingot_lanthanium.name=준안정 란타늄 주괴 -item.ingot_lead.name=납 주괴 -item.ingot_les.name=저농축 Schrabidium 연료 주괴 -item.ingot_magnetized_tungsten.name=자화 텅스텐 주괴 -item.ingot_meteorite.name=운석 주괴 -item.ingot_meteorite_forged.name=단조 운석 주괴 -item.ingot_mox_fuel.name=MOX 연료 주괴 -item.ingot_neodymium.name=네오디뮴 주괴 -item.ingot_neptunium.name=넵투늄-237 주괴 -item.ingot_neptunium_fuel.name=넵투늄 연료 주괴 -item.ingot_niobium.name=니오븀 주괴 -item.ingot_pb209.name=Lead-209 잉곳 -item.ingot_phosphorus.name=백린의 바 -item.ingot_plutonium.name=플루토늄 잉곳 -item.ingot_plutonium_fuel.name=플루토늄 연료 주괴 -item.ingot_polonium.name=폴로늄-210 주괴 -item.ingot_polymer.name=폴리머 바 -item.ingot_pu238.name=플루토늄-238 주괴 -item.ingot_pu239.name=플루토늄-239 주괴 -item.ingot_pu240.name=플루토늄-240 주괴 -item.ingot_pu241.name=플루토늄-241 주괴 -item.ingot_pu_mix.name=원자로 등급 플루토늄 잉곳 -item.ingot_ra226.name=라듐-226 주괴 -item.ingot_radspice.name=네오벨린 주괴 -item.ingot_red_copper.name=Minecraft 등급 구리 -item.ingot_reiium.name=레이움 주괴 -item.ingot_saturnite.name=토성 주괴 -item.ingot_schrabidate.name=Ferric Schrabidate 주괴 -item.ingot_schrabidium.name=Schrabidium-326 주괴 -item.ingot_schrabidium_fuel.name=슈라비디움 연료 주괴 -item.ingot_schraranium.name=슈라라늄 주괴 -item.ingot_semtex.name=Semtex의 바 -item.ingot_smore.name=스모어 주괴 -item.ingot_solinium.name=솔리늄-327 주괴 -item.ingot_sr90.name=스트론튬-90 주괴 -item.ingot_starmetal.name=§9성금속 주괴§r -item.ingot_steel.name=강철 주괴 -item.ingot_steel_dusted.name=가루를 뿌린 강철 주괴 -item.ingot_strontium.name=스트론튬 주괴 -item.ingot_tantalium.name=탄탈륨 주괴 -item.ingot_tcalloy.name=테크네튬 강철 주괴 -item.ingot_technetium.name=테크네튬-99 주괴 -item.ingot_tennessine.name=테네신-294 주괴 -item.ingot_th232.name=토륨-232 주괴 -item.ingot_thorium_fuel.name=토륨 연료 주괴 -item.ingot_titanium.name=티타늄 잉곳 -item.ingot_tungsten.name=텅스텐 잉곳 -item.ingot_u233.name=우라늄-233 주괴 -item.ingot_u235.name=우라늄-235 주괴 -item.ingot_u238.name=우라늄-238 주괴 -item.ingot_u238m2.name=준안정 우라늄-238-2 주괴 -item.ingot_unobtainium.name=언옵티늄 주괴 -item.ingot_uranium.name=우라늄 주괴 -item.ingot_uranium_fuel.name=우라늄 연료 주괴 -item.ingot_verticium.name=버티시움 주괴 -item.ingot_weidanium.name=와이다늄 주괴 -item.ingot_zirconium.name=지르코늄 큐브 -item.injector_5htp.name=5-HTP 자가주사기 -item.injector_knife.name=8인치 블레이드 자동주사기 -item.ink.name=林 — 잉크 -item.insert_di.name=다이뉴트로늄 인서트 -item.insert_doxium.name=Astolfium-Doped Doxium 삽입 -item.insert_du.name=뒤 삽입 -item.insert_era.name=폭발 반응 장갑 삽입물 -item.insert_esapi.name=ESAPI 삽입 -item.insert_ghiorsium.name=기오르슘 인서트 -item.insert_kevlar.name=케블라 인서트 -item.insert_polonium.name=폴로늄 인서트 -item.insert_sapi.name=SAPI 삽입 -item.insert_steel.name=헤비 스틸 인서트 -item.insert_xsapi.name=XSAPI 삽입 -item.insert_yharonite.name=야로나이트 인서트 -item.jackt.name=스타일리시한 발리스틱 재킷 -item.jackt2.name=Damn Stylish Ballistic Jacket 2: 도쿄 드리프트 -item.jetpack_boost.name=부스트팩 -item.jetpack_break.name=브레이크팩 -item.jetpack_fly.name=제트팩 -item.jetpack_glider.name=글라이더 제트팩 -item.jetpack_tank.name=제트팩 예비 연료 탱크 -item.jetpack_vector.name=벡터화된 제트팩 -item.key.name=열쇠 -item.key_fake.name=위조 키 -item.key_kit.name=키 모조 키트 -item.key_red.name=레드 키 -item.laser_crystal_bale.desc=다이뉴트로늄 케이싱의 버티시움으로 코팅된 발레펠렛 -item.laser_crystal_bale.name=베일 레이저 크리스탈 -item.laser_crystal_bismuth.desc=비스무트-사마륨-우라늄-토륨 크리스탈 매트릭스 -item.laser_crystal_bismuth.name=BiSmUTh 레이저 크리스탈 -item.laser_crystal_cmb.desc=CMB-Daffergon 합금 격자에 매달린 Xenon135 -item.laser_crystal_cmb.name=크세논-다퍼곤 레이저 크리스탈 -item.laser_crystal_co2.desc=Crystalline Desh에 싸인 이산화탄소 -item.laser_crystal_co2.name=CO2-Desh 레이저 크리스탈 -item.laser_crystal_dem.desc=데몬-슈라비데이트-테네신-탄탈륨 페르미온 초결정 -item.laser_crystal_dem.name=데몬 레이저 크리스탈 -item.laser_crystal_digamma.name=디감마 레이저 크리스탈 -item.laser_crystal_nano.desc=다결정 내부의 420km 길이 탄소 나노튜브 안테나 -item.laser_crystal_nano.name=나노튜브 레이저 크리스탈 -item.laser_crystal_pentacene.desc=고급 합금으로 코팅된 Excited Pentacene Crystal -item.laser_crystal_pentacene.name=Pentacene 레이저 크리스탈 -item.lead_gavel.name=납 망치 -item.lemon.name="레몬" -item.letter.name=빠른 우편 -item.levitation_unit.name=중력 조작자 -item.lignite.name=갈탄 -item.limiter.name=제너레이터 리미터 -item.linker.name=텔레링커 -item.liquidator_boots.name=청산인 수트 부츠 -item.liquidator_helmet.name=청산인 슈트 헬멧 -item.liquidator_legs.name=청산인 슈트 레깅스 -item.liquidator_plate.name=청산인 수트 흉갑 -item.lithium.name=리튬 큐브 -item.lodestone.name=천연 자석 -item.loop_stew.name=IT 조식 -item.loops.name=루프스 -item.loot_10.name=크기 10 미사일 전리품 상자 -item.loot_15.name=크기 15 미사일 전리품 상자 -item.loot_misc.name=일반 미사일 전리품 상자 -item.lung_diagnostic.name=폐 진단 -item.magnet_circular.name=편평한 자석 -item.magnet_dee.name=디 자석 -item.magnetron.name=마그네트론 -item.man_core.name=플루토늄 코어 -item.man_explosive.name=폭발 렌즈 + +item.man_explosive.name=폭발성 렌즈 item.man_explosive8.name=내파 추진제 묶음 item.man_igniter.name=폭탄 점화기 -item.man_kit.name=팻맨 키트 -item.marshmallow.name=막대기에 마시멜로 -item.marshmallow_roasted.name=막대기에 마시멜로 -item.mask_of_infamy.name=악명의 가면 -item.matchstick.name=성냥개비 -item.mech_key.name=큰 은열쇠 -item.mechanism_launcher_1.name=실행기 메커니즘 -item.mechanism_launcher_2.name=고급 런처 메커니즘 -item.mechanism_revolver_1.name=리볼버 메커니즘 -item.mechanism_revolver_2.name=고급 리볼버 메커니즘 -item.mechanism_rifle_1.name=라이플 메커니즘 -item.mechanism_rifle_2.name=고급 라이플 메커니즘 -item.mechanism_special.name=첨단 무기 메커니즘 -item.med_bag.name=의사의 가방 -item.med_ipecac.name=아이펙 시럽 -item.med_ptsd.name=PTSD 약물 -item.med_schiziphrenia.name=정신 분열증 약물 -item.medal_ghoul.name=공인 구울 -item.medal_liquidator.name=청산인 메달 -item.meltdown_tool.name=Dyatlov 인스턴트 멜트다운 애플리케이터 -item.memespoon.name=§e마켓 정원사 -item.memory.name=항목.null.이름 -item.mese_gavel.name=메세 가벨 -item.mese_pickaxe.name=메세 곡괭이 -item.meteor_remote.name=운석 원격 -item.meteorite_sword.name=운석 검 -item.meteorite_sword_alloyed.name=운석검(합금) -item.meteorite_sword_baleful.name=메테오라이트 소드(Baleful) -item.meteorite_sword_bred.name=운석 검(번식) -item.meteorite_sword_etched.name=운석검(에칭) -item.meteorite_sword_fused.name=운석검(융합) -item.meteorite_sword_hardened.name=운석검(강화) -item.meteorite_sword_irradiated.name=운석검(방사능) -item.meteorite_sword_machined.name=운석검(가공) -item.meteorite_sword_reforged.name=운석검(리포지드) -item.meteorite_sword_seared.name=운석 검(그을린) -item.meteorite_sword_treated.name=운석 검(치료) -item.mike_cooling_unit.name=중수소 냉각 장치 -item.mike_core.name=우라늄 코팅 중수소 탱크 +item.man_core.name=플루토늄 코어 + +item.mike_core.name=우라늄 코팅된 중수소 탱크 item.mike_deut.name=중수소 탱크 -item.mike_kit.name=아이비 마이크 키트 -item.mirror_tool.desc=보일러를 마우스 오른쪽 버튼으로 클릭하여 위치를 기억합니다.$거울을 클릭하여 보일러 방향으로 돌립니다. -item.mirror_tool.linked=정렬 위치 설정! -item.mirror_tool.name=미러 조정 도구 -item.missile_anti_ballistic.name=대탄도 미사일 -item.missile_assembly.name=소형 미사일 어셈블리 -item.missile_bhole.name=블랙홀 미사일 -item.missile_burst.name=예비 미사일 -item.missile_buster.name=벙커 버스터 -item.missile_buster_strong.name=향상된 벙커 버스터 -item.missile_carrier.name=HTR-01 캐리어 로켓 -item.missile_cluster.name=클러스터 미사일 -item.missile_cluster_strong.name=강력한 클러스터 미사일 -item.missile_custom.name=맞춤형 미사일 -item.missile_doomsday.name=둠스데이 미사일 -item.missile_drill.name=콘크리트 크래커 -item.missile_emp.name=EMP 미사일 -item.missile_emp_strong.name=강력한 EMP 미사일 -item.missile_endo.name=흡열 미사일 -item.missile_exo.name=발열 미사일 -item.missile_generic.name=고폭 미사일 -item.missile_incendiary.name=소이 미사일 -item.missile_incendiary_strong.name=강력한 소이 미사일 -item.missile_inferno.name=인페르노 미사일 G.R.N. Mk.II -item.missile_kit.name=미사일 키트 -item.missile_micro.name=소핵미사일 -item.missile_nuclear.name=핵미사일 -item.missile_nuclear_cluster.name=열핵 미사일 -item.missile_rain.name=폭탄 비 -item.missile_schrabidium.name=슈라비디움 미사일 -item.missile_skin_camo.name=미사일 스킨: 카모 -item.missile_skin_desert.name=미사일 스킨: 데저트 카모 -item.missile_skin_flames.name=미사일 스킨: 아픈 불꽃 -item.missile_skin_manly_pink.name=미사일 스킨: 맨리 핑크 -item.missile_skin_metal.name=미사일 스킨: 메탈 -item.missile_skin_orange_insulation.name=미사일 스킨: 오렌지 인슐레이션 -item.missile_skin_sleek.name=미사일 스킨: IF-R&D -item.missile_skin_soviet_glory.name=미사일 스킨: 소련의 영광 -item.missile_skin_soviet_stank.name=미사일 스킨: 소비에트 스탠크 -item.missile_soyuz0.name=소유즈-FG -item.missile_soyuz1.name=소유즈-FG -item.missile_soyuz2.name=소유즈-FG -item.missile_soyuz_lander.name=궤도 모듈 -item.missile_strong.name=강력한 HE 미사일 -item.missile_taint.name=오염된 미사일 -item.missile_volcano.name=지각 미사일 -item.morning_glory.name=나팔꽃 -item.motor.name=모터 -item.motor_desh.name=데시 모터 -item.mp_c_1.name=Tier 1 미사일 타겟팅 회로 -item.mp_c_2.name=Tier 2 미사일 타겟팅 회로 -item.mp_c_3.name=Tier 3 미사일 타겟팅 회로 -item.mp_c_4.name=Tier 4 미사일 타겟팅 회로 -item.mp_c_5.name=Tier 5 미사일 타겟팅 회로 -item.mp_fuselage_10_15_balefire.name=크기 10/15 BF 동체 -item.mp_fuselage_10_15_hydrogen.name=크기 10/15 수소 동체 -item.mp_fuselage_10_15_kerosene.name=크기 10/15 등유 동체 -item.mp_fuselage_10_15_solid.name=크기 10/15 고체 연료 동체 -item.mp_fuselage_10_kerosene.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_camo.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_desert.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_flames.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_insulation.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_metal.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_sky.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_sleek.name=크기 10 등유 동체 -item.mp_fuselage_10_kerosene_taint.name=크기 10 등유 동체 -item.mp_fuselage_10_long_kerosene.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_camo.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_dash.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_desert.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_flames.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_insulation.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_metal.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_sky.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_sleek.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_taint.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_kerosene_vap.name=크기 10 긴 등유 동체 -item.mp_fuselage_10_long_solid.name=크기 10 긴 고체 연료 동체 -item.mp_fuselage_10_long_solid_bullet.name=크기 10 긴 고체 동체 -item.mp_fuselage_10_long_solid_flames.name=크기 10 긴 고체 연료 동체 -item.mp_fuselage_10_long_solid_insulation.name=크기 10 긴 고체 연료 동체 -item.mp_fuselage_10_long_solid_silvermoonlight.name=크기 10 긴 고체 동체 -item.mp_fuselage_10_long_solid_sleek.name=크기 10 긴 고체 연료 동체 -item.mp_fuselage_10_long_solid_soviet_glory.name=크기 10 긴 고체 동체 -item.mp_fuselage_10_solid.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_battery.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_cathedral.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_duracell.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_flames.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_insulation.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_moonlit.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_sleek.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_solid_soviet_glory.name=크기 10 고체 연료 동체 -item.mp_fuselage_10_xenon.name=크기 10 크세논 동체 -item.mp_fuselage_10_xenon_bhole.name=크기 10 크세논 동체 -item.mp_fuselage_15_20_kerosene.name=크기 15/20 등유 동체 -item.mp_fuselage_15_20_kerosene_magnusson.name=크기 15/20 등유 동체 -item.mp_fuselage_15_20_solid.name=크기 15/20 고체 연료 동체 -item.mp_fuselage_15_balefire.name=크기 15 BF 동체 -item.mp_fuselage_15_hydrogen.name=크기 15 수소 동체 -item.mp_fuselage_15_hydrogen_cathedral.name=크기 15 수소 동체 -item.mp_fuselage_15_kerosene.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_blackjack.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_camo.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_decorated.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_desert.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_insulation.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_lambda.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_metal.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_minuteman.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_pip.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_polite.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_sky.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_steampunk.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_taint.name=크기 15 등유 동체 -item.mp_fuselage_15_kerosene_yuck.name=크기 15 등유 동체 -item.mp_fuselage_15_solid.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_desh.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_faust.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_insulation.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_panorama.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_roses.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_silvermoonlight.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_snowy.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_soviet_glory.name=크기 15 고체 연료 동체 -item.mp_fuselage_15_solid_soviet_stank.name=크기 15 고체 연료 동체 -item.mp_stability_10_cruise.name=사이즈 10 크루즈 핀 -item.mp_stability_10_flat.name=크기 10 플랫 핀 -item.mp_stability_10_space.name=사이즈 10 스페이스 핀 -item.mp_stability_15_flat.name=크기 15 플랫 핀 -item.mp_stability_15_soyuz.name=크기 15 뾰족한 지느러미 -item.mp_stability_15_thin.name=크기 15 얇은 핀 -item.mp_thruster_10_kerosene.name=크기 10 액체 연료 추진기 -item.mp_thruster_10_solid.name=크기 10 고체 연료 추진기 -item.mp_thruster_10_xenon.name=크기 10 이온 추진기 -item.mp_thruster_15_balefire.name=원자력 예열기가 장착된 크기 15 BF 추진기 -item.mp_thruster_15_balefire_large.name=원자력 예열기가 있는 크기 15 BF 추진기(헤비 듀티 노즐) -item.mp_thruster_15_balefire_large_rad.name=원자력 예열기가 있는 크기 15 BF 추진기(헤비 듀티 노즐) -item.mp_thruster_15_balefire_short.name=원자력 예열기가 장착된 크기 15 BF 추진기(단축됨) -item.mp_thruster_15_hydrogen.name=크기 15 수소 분사기 -item.mp_thruster_15_hydrogen_dual.name=크기 15 수소 트윈 쓰러스터 -item.mp_thruster_15_kerosene.name=크기 15 액체 연료 추진기 -item.mp_thruster_15_kerosene_dual.name=크기 15 액체 연료 트윈 쓰러스터 -item.mp_thruster_15_kerosene_triple.name=크기 15 액체 연료 삼중 추진기 -item.mp_thruster_15_solid.name=크기 15 고체 연료 추진기 -item.mp_thruster_15_solid_hexdecuple.name=크기 15 고체 연료 Hexdecuple 추진기 -item.mp_thruster_20_kerosene.name=크기 20 액체 연료 추진기 -item.mp_thruster_20_kerosene_dual.name=크기 20 액체 연료 트윈 쓰러스터 -item.mp_thruster_20_kerosene_triple.name=크기 20 액체 연료 삼중 추진기 -item.mp_thruster_20_solid.name=크기 20 고체 연료 추진기 -item.mp_thruster_20_solid_multi.name=크기 20 고체 연료 30단 추진기 -item.mp_thruster_20_solid_multier.name=크기 20 고체 연료 47단 추진기 -item.mp_warhead_10_buster.name=크기 10 벙커 버스터 탄두 -item.mp_warhead_10_cloud.name=사이즈 10 핑크 클라우드 탄두 -item.mp_warhead_10_he.name=크기 10 HE 탄두 -item.mp_warhead_10_incendiary.name=크기 10 소이 탄두 -item.mp_warhead_10_nuclear.name=크기 10 마이크로 핵탄두 -item.mp_warhead_10_nuclear_large.name=크기 10 핵탄두 -item.mp_warhead_10_taint.name=크기 10 오염된 탄두 -item.mp_warhead_15_balefire.name=크기 15 BF 탄두 -item.mp_warhead_15_boxcar.name=사이즈 15 박스카? -item.mp_warhead_15_he.name=크기 15 HE 탄두 -item.mp_warhead_15_incendiary.name=크기 15 소이 탄두 -item.mp_warhead_15_mirv.name=크기 15 MIRV 탄두 -item.mp_warhead_15_n2.name=크기 15 N² 광산 -item.mp_warhead_15_nuclear.name=크기 15 핵탄두 -item.mp_warhead_15_nuclear_shark.name=크기 15 핵탄두 -item.mp_warhead_15_thermo.name=크기 15 열핵 탄두 -item.mp_warhead_15_volcano.name=크기 15 화산 탄두 -item.multi_kit.name=다목적 폭탄 키트 -item.multitool_beam.name=파워 피스트(재퍼) -item.multitool_decon.name=파워 피스트(오염 제거기) -item.multitool_dig.name=파워 피스트(파는 발톱) -item.multitool_ext.name=파워 피스트(광석 추출기) -item.multitool_hit.name=파워 피스트(주먹) -item.multitool_joule.name=파워 피스트(기가 줄) -item.multitool_mega.name=파워 피스트(슈퍼 펀치) -item.multitool_miner.name=파워 피스트(채광 레이저 추출) -item.multitool_silk.name=파워 피스트(실크 터치 클로) -item.multitool_sky.name=파워 피스트(Crack the Sky) -item.mysteryshovel.name=깨지기 쉬운 스페이드 -item.n2_charge.name=대형 폭약 -item.neutron_reflector.name=중성자 반사경 -item.niter.name=나이터 -item.nossy_hat.name=멋진 모자 -item.nothing.name=아무것도 아님 -item.nuclear_waste.name=핵폐기물 -item.nuclear_waste_long.name=수명이 긴 핵폐기물 -item.nuclear_waste_long_depleted.name=부패한 장수명 핵폐기물 -item.nuclear_waste_long_depleted_tiny.name=부패한 장수명 핵폐기물의 작은 더미 -item.nuclear_waste_long_tiny.name=장수명 핵 폐기물의 작은 더미 -item.nuclear_waste_pearl.name=핵 폐기물 진주 -item.nuclear_waste_short.name=수명이 짧은 핵폐기물 -item.nuclear_waste_short_depleted.name=부패한 단기 핵폐기물 -item.nuclear_waste_short_depleted_tiny.name=부패한 단기 핵폐기물의 작은 더미 -item.nuclear_waste_short_tiny.name=수명이 짧은 핵 폐기물의 작은 더미 -item.nuclear_waste_tiny.name=작은 핵폐기물 더미 -item.nuclear_waste_vitrified.name=유리화된 핵폐기물 -item.nuclear_waste_vitrified_tiny.name=유리화된 핵 폐기물의 작은 더미 -item.nugget.name=치킨 너겟 -item.nugget_ac227.name=악티늄-227 덩어리 -item.nugget_actinium.name=악티늄 덩어리 -item.nugget_am241.name=아메리슘-241 너겟 -item.nugget_am242.name=아메리슘-242 너겟 -item.nugget_am_mix.name=반응기 등급 아메리슘 너겟 -item.nugget_americium_fuel.name=아메리슘 연료 덩어리 -item.nugget_au198.name=금-198 너겟 -item.nugget_australium.name=오스트랄륨 덩어리 -item.nugget_australium_greater.name=오스트랄륨-406 너겟 -item.nugget_australium_lesser.name=오스트랄륨-405 너겟 -item.nugget_beryllium.name=베릴륨 덩어리 -item.nugget_bismuth.name=비스무트 너겟 -item.nugget_co60.name=코발트-60 덩어리 -item.nugget_cobalt.name=코발트 덩어리 -item.nugget_daffergon.name=대퍼곤 덩어리 -item.nugget_desh.name=데시 너겟 -item.nugget_dineutronium.name=디뉴트로늄 덩어리 -item.nugget_euphemium.name=완곡 너겟 -item.nugget_gh336.name=기오르슘-336 너겟 -item.nugget_hes.name=고농축 Schrabidium 연료 덩어리 -item.nugget_lead.name=리드 너겟 -item.nugget_les.name=저농축 Schrabidium 연료 덩어리 -item.nugget_mercury.name=수은의 작은 방울 -item.nugget_mox_fuel.name=MOX 연료 덩어리 -item.nugget_neptunium.name=넵투늄-237 덩어리 -item.nugget_neptunium_fuel.name=넵투늄 연료 덩어리 -item.nugget_pb209.name=Lead-209 너겟 -item.nugget_plutonium.name=플루토늄 덩어리 -item.nugget_plutonium_fuel.name=플루토늄 연료 덩어리 -item.nugget_polonium.name=폴로늄-210 너겟 -item.nugget_pu238.name=플루토늄-238 덩어리 -item.nugget_pu239.name=플루토늄-239 덩어리 -item.nugget_pu240.name=플루토늄-240 덩어리 -item.nugget_pu241.name=플루토늄-241 덩어리 -item.nugget_pu_mix.name=반응기 등급 플루토늄 너겟 -item.nugget_ra226.name=라듐-226 너겟 -item.nugget_radspice.name=네오벨린 너겟 -item.nugget_reiium.name=레이움 너겟 -item.nugget_schrabidium.name=Schrabidium-326 너겟 -item.nugget_schrabidium_fuel.name=슈라비디움 연료 덩어리 -item.nugget_solinium.name=솔리늄-327 너겟 -item.nugget_sr90.name=스트론튬-90 덩어리 -item.nugget_strontium.name=스트론튬 덩어리 -item.nugget_tantalium.name=탄탈륨 덩어리 -item.nugget_technetium.name=테크네튬-99 덩어리 -item.nugget_th232.name=토륨-232 덩어리 -item.nugget_thorium_fuel.name=토륨 연료 덩어리 -item.nugget_u233.name=우라늄-233 덩어리 -item.nugget_u235.name=우라늄-235 덩어리 -item.nugget_u238.name=우라늄-238 덩어리 -item.nugget_u238m2.name=준안정 U238-2 너겟 -item.nugget_unobtainium.name=언옵티늄 너겟 -item.nugget_uranium.name=우라늄 덩어리 -item.nugget_uranium_fuel.name=우라늄 연료 덩어리 -item.nugget_verticium.name=버티시움 너겟 -item.nugget_weidanium.name=웨이다늄 너겟 -item.nugget_zirconium.name=지르코늄 파편 -item.nuke_advanced_kit.name=원자력 과학 고급 키트 -item.nuke_commercially_kit.name=상업용 원자 과학 키트 -item.nuke_electric_kit.name=전자 엔지니어 키트 -item.nuke_starter_kit.name=원자력 과학 스타터 키트 -item.oil_canola.name=생 카놀라유 -item.oil_detector.bullseye=바로 아래 기름 침전물! -item.oil_detector.desc1=오일을 스캔하려면 마우스 오른쪽 버튼을 클릭하십시오. -item.oil_detector.desc2=감지기는 더 큰 침전물만 찾습니다. -item.oil_detector.detected=근처에서 기름이 감지되었습니다. -item.oil_detector.name=오일 저장소 감지기 -item.oil_detector.noOil=오일이 감지되지 않았습니다. -item.oil_tar.name=기름 타르 -item.overfuse.name=특이점 드라이버 -item.oxy_mask.name=산소 마스크 -item.paa_boots.name=PaA "좋은 신발" -item.paa_legs.name=PaA 다리 보강재 -item.paa_plate.name=PaA 가슴 보호판 +item.mike_cooling_unit.name=중수소 냉각 장치 + +item.tsar_core.name=차르 봄바 코어 + +item.fleija_igniter.name=펄스 점화기 +item.fleija_propellant.name=슈라비듐 추진제 +item.fleija_core.name=FLEIJA 우라늄 235 충전 + +item.solinium_igniter.name=SOL 펄스 점화기 +item.solinium_propellant.name=SOL 압축 충전 +item.solinium_core.name=반안정 솔리늄 코어 + +item.n2_charge.name=대형 폭발물 + +item.egg_balefire_shard.name=베일파이어 파편 +item.egg_balefire.name=베일파이어 알 +item.egg_balefire.desc=방사성 알을 낳는 새는 어떤 종류인가요? + +item.custom_tnt.name=맞춤형 핵폭발물 +item.custom_nuke.name=맞춤형 핵 핵막대 +item.custom_hydro.name=맞춤형 핵무기 수소 막대 +item.custom_amat.name=커스텀 Nuke 베일파이어 막대 +item.custom_dirty.name=커스텀 Nuke 더티 막대 +item.custom_schrab.name=커스텀 Nuke 슈라비듐 막대 +item.custom_sol.name=맞춤형 핵무기 솔리늄 막대 +item.custom_euph.name=맞춤형 핵폭탄 방지 막대 +item.custom_fall.name=맞춤형 Nuke Drop 업그레이드 + +container.nukeGadget=가제트 +container.nukeBoy=리틀보이 +container.nukeMan=팻맨 +container.nukeMike=아이비 마이크 +container.nukeTsar=차르 봄바 +container.nukeFleija=플레이야 +container.nukePrototype=프로토타입 +container.nukeCustom=커스텀 핵 +container.nukeSolinium=블루 린스 +container.nukeN2=N² 광산 +container.nukeN45=N45 해군 지뢰 +container.nukeFstbmb=베일파이어 폭탄 +container.bombMulti=다목적 폭탄 + +container.turretChekhov=체호프의 총 +container.turretFriendly=미스터 프렌들리 +container.turretFritz=프리츠 +container.turretHoward=하워드 +container.turretJeremy=제레미 +container.turretMaxwell=맥스웰 +container.turretRichard=리차드 +container.turretTauon=타우온 + +tile.spinny_light.name=스피니 라이트 + +tile.nuke_gadget.name=가제트 +tile.nuke_boy.name=리틀보이 +tile.nuke_man.name=팻맨 +tile.nuke_mike.name=아이비 마이크 +tile.nuke_tsar.name=차르 봄바 +tile.nuke_fleija.name=플레이야 +tile.nuke_prototype.name=프로토타입 +tile.nuke_custom.name=커스텀 핵 +tile.nuke_solinium.name=블루 린스 +tile.nuke_n2.name=N² 광산 +tile.nuke_n45.name=N45 해군 지뢰 +tile.nuke_fstbmb.name=베일파이어 폭탄 + +tile.mush_block.name=성장한 빛나는 버섯 +tile.mush_block_stem.name=자란 빛나는 버섯 줄기 + +tile.energy_ball.name=에너지볼 + +tile.bomb_multi.name=다목적 폭탄 +tile.rejuvinator.name=회춘 장치 + +tile.flame_war.name=상자 속의 불꽃 전쟁 +tile.float_bomb.name=공중부양 폭탄 +tile.therm_endo.name=흡열 폭탄 +tile.therm_exo.name=발열 폭탄 +tile.emp_bomb.name=EMP 장치 + +tile.crashed_bomb.name=더드 +tile.boxcar.name=유개화차 +tile.brick_asbestos.name=석면 벽돌 +tile.boat.name=보트 +tile.bomber.name=추락한 폭격기 + +tile.pink_log.name=핑크 로그 +tile.pink_planks.name=분홍색 나무 판자 +tile.pink_slab.name=핑크 우드 슬라브 +tile.pink_stairs.name=핑크색 나무 계단 +tile.turret_cheapo.name=싸구려 개틀링 센트리 +tile.turret_chekhov.name=중기관총 포탑 "체호프의 총" +tile.turret_cwis.name=팔랑크스 Mk-15 CIWS +tile.turret_flamer.name=화염방사기 포탑 +tile.turret_friendly.name=체인건 터렛 "미스터 프렌들리" +tile.turret_fritz.name=중화염방사기 포탑 "프리츠" +tile.turret_heavy.name=중기관총 포탑 +tile.turret_howard.name=골키퍼 트윈 체인건 CIWS "하워드" +tile.turret_howard_damaged.name=골키퍼 트윈 체인건 CIWS "예루살렘" +tile.turret_jeremy.name=기관포 포탑 "제레미" +tile.turret_light.name=경기관총 포탑 +tile.turret_maxwell.name=고에너지 MASER 터렛 "맥스웰" +tile.turret_rocket.name=로켓 포탑 +tile.turret_richard.name=로켓 발사기 포탑 "리차드" +tile.turret_spitfire.name=중포 포탑 +tile.turret_tau.name=타우온 포탑 +tile.turret_tauon.name=XVL1456 프로토타입 포탑 "타우온" +tile.machine_radar.name=레이더 +container.radar=레이더 +tile.machine_forcefield.name=역장 방출기 +container.forceField=역장 방출기 +tile.machine_satlinker.name=위성 ID 관리자 +container.satLinker=SatLink 장치 +tile.machine_telelinker.name=터렛 원격 측정 링커 +container.teleLinker=TelLink 장치 +tile.railgun_plasma.name=레일건 +container.railgun=레일건 +tile.machine_catalytic_cracker.name=촉매분해탑 + +tile.control_panel0.name=제어판 + +item.turret_control.name=터렛 컨트롤러 +item.turret_chip.name=터렛 AI 칩 +item.turret_biometry.name=터렛 원격 측정 카드 + +item.mirror_tool.name=거울 조정 도구 +item.mirror_tool.linked=정렬 위치가 설정되었습니다! +item.mirror_tool.desc=위치를 기억하려면 보일러를 마우스 오른쪽 버튼으로 클릭하세요. $거울을 클릭하면 보일러를 향하게 됩니다. + +item.key.name=열쇠 +item.key_red.name=레드 키 +item.key_kit.name=키 모방 키트 +item.key_fake.name=위조 열쇠 +item.pin.name=바비 핀 +item.padlock_rusty.name=녹슨 자물쇠 item.padlock.name=맹꽁이 자물쇠 item.padlock_reinforced.name=강화된 자물쇠 -item.padlock_rusty.name=녹슨 자물쇠 item.padlock_unbreakable.name=깨지지 않는 자물쇠 -item.pads_rubber.name=고무 패드 -item.pads_slime.name=슬라임 패드 -item.pads_static.name=정적 패드 -item.pancake.name=고철, 못, 보석 먼지로 만든 팬케이크 -item.part_beryllium.name=베릴륨 가루 상자 -item.part_carbon.name=탄소 먼지 상자 -item.part_copper.name=구리 가루 상자 -item.part_lithium.name=리튬 먼지 상자 -item.part_plutonium.name=플루토늄 먼지 상자 -item.particle_aelectron.name=양전자 캡슐 -item.particle_amat.name=반물질 캡슐 -item.particle_aproton.name=반양성자 캡슐 -item.particle_aschrab.name=안티스크라비디움 캡슐 -item.particle_copper.name=구리 이온 캡슐 -item.particle_dark.name=암흑 물질 캡슐 -item.particle_digamma.name=§c디감마 입자§r -item.particle_empty.name=빈 입자 캡슐 -item.particle_higgs.name=힉스 보손 캡슐 -item.particle_hydrogen.name=수소 이온 캡슐 -item.particle_lead.name=납 이온 캡슐 -item.particle_muon.name=뮤온캡슐 -item.particle_sparkticle.name=스파크티클 캡슐 -item.particle_strange.name=이상한 쿼크 캡슐 -item.particle_tachyon.name=타키온 캡슐 -item.peas.name=완두콩 -item.pedestal_steel.name=강철 받침대 -item.pellet_advanced.name=고급 Watz 성능 개선기 -item.pellet_antimatter.name=반물질 클러스터 -item.pellet_beryllium.name=베릴륨 중재자 펠렛 -item.pellet_buckshot.name=납 펠릿 -item.pellet_canister.name=캐니스터 샷 -item.pellet_charged.name=이온화된 입자 -item.pellet_chlorophyte.name=엽록소 라운드 -item.pellet_claws.name=날카로운 금속 발톱 -item.pellet_cluster.name=폭발성 펠릿 -item.pellet_coal.name=조밀한 석탄 클러스터 -item.pellet_coolant.name=냉각수 클러스터 -item.pellet_flechette.name=플레셰트 -item.pellet_gas.name=독가스 카트리지 -item.pellet_hes.name=HES 와츠 펠렛 -item.pellet_lead.name=리드 리플렉터 펠릿 -item.pellet_les.name=레 와츠 펠렛 -item.pellet_mercury.name=머큐리 라운드 -item.pellet_mes.name=MES 와츠 펠렛 -item.pellet_meteorite.name=운석탄 -item.pellet_neptunium.name=넵투늄 와츠 펠릿 -item.pellet_rtg.name=플루토늄-238 RTG 펠릿 -item.pellet_rtg_actinium.desc=푸른 빛과 베타선의 빛. -item.pellet_rtg_actinium.name=악티늄-227 RTG 펠릿 -item.pellet_rtg_americium.desc=희귀하고 신뢰할 수 있는 좋은 옛 Americium! -item.pellet_rtg_americium.name=아메리슘-241 RTG 펠릿 -item.pellet_rtg_balefire.desc=핵 지옥 ... -item.pellet_rtg_balefire.name=Balefire-XXX RTG 펠릿 -item.pellet_rtg_cobalt.desc=RTG로는 최고는 아니지만 감마선에 좋습니다! -item.pellet_rtg_cobalt.name=코발트-90 RTG 펠릿 -item.pellet_rtg_depleted_bismuth.name=열화 비스무트 RTG 펠릿 -item.pellet_rtg_depleted_lead.name=고갈된 납 RTG 펠릿 -item.pellet_rtg_depleted_mercury.name=고갈된 수은 RTG 펠릿 -item.pellet_rtg_depleted_neptunium.name=열화 넵투늄 RTG 펠렛 -item.pellet_rtg_depleted_zirconium.name=열화 지르코늄 RTG 펠릿 -item.pellet_rtg_gold.desc=희귀하고 매우 불안정한 금 동위원소로 만들어졌습니다. -item.pellet_rtg_gold.name=Gold-198 RTG 펠릿 -item.pellet_rtg_lead.desc=노출되면 즉시 사망합니다. -item.pellet_rtg_lead.name=Lead-209 RTG 펠릿 -item.pellet_rtg_polonium.desc=최고급 폴로늄으로 만든 더욱 강력한 RTG 펠렛! -item.pellet_rtg_polonium.name=폴로늄-210 RTG 펠릿 -item.pellet_rtg_radium.desc=모든 천연 라듐에서 공급되는 훌륭한 스타터 펠릿! -item.pellet_rtg_radium.name=라듐-226 RTG 펠릿 -item.pellet_rtg_strontium.desc=캘리포니아 주에 알려진... -item.pellet_rtg_strontium.name=스트론튬-90 RTG 펠릿 -item.pellet_rtg_weak.desc=더 저렴하고 약한 펠렛, 이제 더 많은 U238! -item.pellet_rtg_weak.name=우라늄-238 RTG 펠릿 -item.pellet_schrabidium.name=순수 Schrabidium Watz 펠릿 -item.photo_panel.name=태양광 패널 -item.pile_rod_boron.name=시카고 말뚝 제어봉 -item.pile_rod_plutonium.name=시카고 파일 플루토늄 막대 -item.pile_rod_source.name=시카고 더미 Ra226Be 중성자 소스 -item.pile_rod_uranium.name=시카고 말뚝 우라늄 막대 -item.pill_iodine.name=요오드 알약 -item.pin.name=바비 핀 -item.pipes_steel.name=강관 -item.piston_selenium.name=레이디얼 엔진 피스톤 -item.plan_c.name=플랜 C -item.plate_advanced_alloy.name=고급 합금 플레이트 -item.plate_aluminium.name=알루미늄 판 -item.plate_armor_ajr.name=철갑 갑옷 도금 -item.plate_armor_dnt.name=DNT 갑옷 도금 -item.plate_armor_fau.name=Fau 갑옷 도금 -item.plate_armor_hev.name=반응 장갑 도금 -item.plate_armor_lunar.name=음력 도금 -item.plate_armor_titanium.name=티타늄 아머 플레이트 +tile.machine_keyforge.name=자물쇠 제조공 테이블 +container.keyForge=자물쇠 제조공 테이블 + +tile.mine_ap.name=대개인 지뢰 +tile.mine_he.name=대전차 지뢰 +tile.mine_shrap.name=파편 광산 +tile.mine_fat.name=지방 광산 +item.defuser.name=첨단 폭탄 해체 장치 +item.defuser_desh.name=Desh 하이테크 폭탄 해체 장치 + +tile.crate.name=보급 상자 +tile.crate_weapon.name=무기 상자 +tile.crate_lead.name=위험물 상자 +tile.crate_metal.name=기계 상자 +tile.crate_red.name=빨간 상자 +tile.crate_can.name=상자 보존 +tile.crate_ammo.name=스타메탈 상자 +tile.marker_structure.name=다중 블록 구조 마커 + +tile.struct_iter_core.name=핵융합로 핵심 구성요소 + +tile.balefire.name=큰 화톳불 + +tile.struct_launcher.name=발사대 구성 요소 블록 +tile.struct_scaffold.name=발사대 비계 블록 +tile.struct_launcher_core.name=컴팩트 런처 핵심 구성요소 +tile.struct_launcher_core_large.name=테이블 핵심 구성요소 실행 +tile.struct_soyuz_core.name=소유즈 런처 핵심 구성 요소 + +desc.gui.rtg.heat=§e현재 열 레벨: %s +desc.gui.rtgBFurnace.desc=열이 많을수록 최대 %S를 초과하는 더 빨리$열이 빠르면 효과가 없습니다$단기 펠릿은 부패 할 수 있습니다. +tile.machine_difurnace_ext.name=화로 증축 +tile.machine_difurnace_off.name=화로 +tile.machine_difurnace_on.name=화로 +tile.machine_difurnace_rtg_off.name=핵화로 +tile.machine_difurnace_rtg_on.name=핵화로 +container.diFurnace=화로 +container.diFurnaceRTG=핵화로 +tile.machine_centrifuge.name=원심분리기 +container.centrifuge=원심분리기 +tile.machine_gascent.name=가스 원심분리기 +container.gasCentrifuge=가스 원심분리기 +tile.machine_uf6_tank.name=육불화우라늄 탱크 +container.uf6_tank=UF6 탱크 +tile.machine_puf6_tank.name=육불화플루토늄 탱크 +container.puf6_tank=PuF6 탱크 +tile.machine_reactor.name=열 원자로 +tile.machine_reactor_on.name=열 원자로 +container.rbmkBoiler=RBMK 증기 채널 +container.rbmkControl=RBMK 제어봉 +container.rbmkControlAuto=RBMK 자동 제어봉 +container.rbmkOutgasser=RBMK 조사 채널 +container.rbmkReaSim=RBMK 연료봉(ReaSim) +container.rbmkRod=RBMK 연료봉 +container.reactor=열 원자로 +tile.machine_nuke_furnace_off.name=핵화로 +tile.machine_nuke_furnace_on.name=핵화로 +tile.rtg_polonium.name=PT 동위원소 세포 +container.nukeFurnace=원자력 발전로 +tile.machine_rtg_furnace_off.name=RTG로 +tile.machine_rtg_furnace_on.name=RTG로 +container.rtgFurnace=RTG로 +tile.machine_electric_furnace_off.name=전기로 +tile.machine_electric_furnace_on.name=전기로 +container.electricFurnace=전기로 +tile.machine_arc_furnace_off.name=아크로 +tile.machine_arc_furnace_on.name=아크로 +tile.machine_armor_table.name=방어구 수정표 +container.arcFurnace=아크로 +container.armorTable=방어구 수정표 +tile.machine_generator.name=원자로(구형) +container.generator=원자로 +container.hadron=입자 가속기 +tile.red_wire_coated.name=빨간색 구리 케이블 블록 +tile.red_wire_sealed.name=Rad 밀봉형 빨간색 구리 케이블 블록 +tile.cable_switch.name=전원 스위치 +tile.cable_diode.name=파워 다이오드 +tile.cable_diode.desc=처리량 제한 및 흐름 방향 제한$§e드라이버를 사용하여 처리량 증가$§e핸드 드릴을 사용하여 처리량 감소$§e디퓨저를 사용하여 네트워크 우선 순위 변경 +tile.cable_detector.name=레드스톤 전원 스위치 +tile.machine_deuterium.name=중수소 추출기 +container.machine_deuterium=중수소 추출기 +tile.machine_battery_potato.name=감자 배터리 블록 +tile.machine_battery.name=에너지 저장 블록 +tile.machine_lithium_battery.name=리튬이온 에너지 저장 블록 +tile.machine_saturnite_battery.name=새턴라이트 에너지 저장 블록 +tile.machine_desh_battery.name=Desh 에너지 저장 블록 +tile.machine_schrabidium_battery.name=슈라비듐 에너지 저장 블록 +tile.machine_euphemium_battery.name=유페미움 에너지 저장 블록 +tile.machine_radspice_battery.name=네오벨린 에너지 저장 블록 +tile.machine_dineutronium_battery.name=스파크 에너지 저장 블록 +tile.machine_electronium_battery.name=일렉트로늄 에너지 저장 블록 +tile.machine_fensu.name=펜수 +container.battery=에너지 저장 +tile.machine_coal_off.name=연소 발생기 +tile.machine_coal_on.name=연소 발생기 +container.machineCoal=연소 발생기 +tile.machine_boiler_off.name=보일러 +tile.machine_boiler_on.name=보일러 +tile.machine_boiler_electric_off.name=전기보일러 +tile.machine_boiler_electric_on.name=전기보일러 +tile.machine_boiler_rtg_off.name=RTG 보일러 +tile.machine_boiler_rtg_on.name=RTG 보일러 +container.machineBoiler=보일러 +container.machineElectricBoiler=전기보일러 +container.machineRTGBoiler=RTG 보일러 +container.machineITER=핵융합로 +container.machineLargeTurbine=산업용 증기 터빈 +tile.machine_large_turbine.name=산업용 증기 터빈 +tile.machine_turbine.name=증기 터빈 +container.machineTurbine=증기 터빈 +tile.launch_pad.name=미사일 발사대 +container.launchPad=미사일 발사대 +tile.compact_launcher.name=컴팩트 런치패드 +container.compactLauncher=컴팩트 런치패드 +tile.launch_table.name=대형 발사대 +container.launchTable=대형 발사대 +tile.soyuz_launcher.name=소유즈 출시 플랫폼 +container.soyuzLauncher=소유즈 출시 플랫폼 +tile.machine_missile_assembly.name=미사일 조립 스테이션 +container.missileAssembly=미사일 조립 스테이션 +tile.sat_dock.name=화물 착륙장 +container.satDock=화물 착륙장 +tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] +tile.machine_schrabidium_transmutator.name=핵변환 장치 +container.machine_schrabidium_transmutator=핵변환 장치 +container.microwave=마이크로파 +tile.machine_diesel.name=디젤 발전기 +container.machineDiesel=디젤 발전기 +tile.machine_shredder.name=슈레더 +container.machineShredder=슈레더 +tile.machine_combine_factory.name=CMB 강철로 +container.machineCMB=CMB 강철로 +tile.machine_teleporter.name=텔레포터 +container.teleporter=텔레포터 +tile.machine_reix_mainframe.name=Rei-X 메인프레임(WIP) +container.reix=Rei-X 메인프레임 +tile.machine_industrial_generator.name=산업용 발전기 +container.iGenerator=산업용 발전기 +tile.machine_cyclotron.name=사이클로트론 +tile.machine_detector.name=전력검출기 +container.cyclotron=사이클로트론 +tile.machine_well.name=오일 데릭 +container.plasmaHeater=플라즈마 히터 +tile.machine_pumpjack.name=펌프잭 +tile.oil_pipe.name=원유 추출 파이프 +container.oilWell=오일 데릭 +container.pumpjack=펌프잭 +tile.machine_refinery.name=정유 공장 +container.machineRefinery=정유 공장 +tile.oil_duct.name=오일 파이프 +tile.oil_duct_solid.name=코팅 오일 파이프 +tile.machine_flare.name=가스 플레어 +container.gasFlare=가스 플레어 +tile.gas_duct.name=가스관 +tile.gas_duct_solid.name=코팅된 가스 파이프 +tile.machine_drill.name=자동 채굴 드릴 +container.miningDrill=자동 채굴 드릴 +tile.drill_pipe.name=드릴 파이프 +tile.machine_assembler.name=조립 기계 +container.assembler=조립 기계 +tile.machine_chemplant.name=화학 공장 +container.chemplant=화학 공장 +tile.machine_chemfac.name=화학공장 +container.machineChemFac=화학공장 +tile.fluid_duct.name=범용 유체 덕트 [감가 상각] +tile.fluid_duct_mk2.name=범용 유체 덕트 +tile.machine_fluidtank.name=탱크 +item.fluid_duct.name=유체 덕트: +item.ff_fluid_duct.name=유체 덕트: +container.fluidtank=탱크 +tile.machine_turbofan.name=터보팬 +tile.machine_turbofan.desc=§e등유를 태워 에너지를 생산합니다 +container.machineTurbofan=터보팬 +tile.crate_iron.name=철 상자 +container.crateTungsten=텅스텐 상자 +tile.crate_jungle.name=에나르가이트 상자 +container.crateIron=철 상자 +tile.crate_steel.name=강철 상자 +tile.crate_tungsten.name=텅스텐 상자 +container.crateSteel=강철 상자 +tile.crate_desh.name=데쉬 상자 +container.crateDesh=데쉬 상자 +tile.safe.name=안전한 +tile.sand_polonium.name=폴로늄 모래 +container.safe=안전한 +tile.machine_press.name=버너프레스 +container.press=버너프레스 +tile.machine_epress.name=전기프레스 +container.epress=전기프레스 +tile.machine_siren.name=사이렌 +container.siren=사이렌 +tile.machine_radgen.name=방사선 구동 엔진 +container.radGen=방사선 구동 엔진 +tile.machine_selenium.name=방사형 성능 엔진 +container.machineSelenium=방사형 성능 엔진 +tile.machine_reactor_small.name=원자로 +container.reactorSmall=원자로 +tile.machine_controller.name=리액터 원격 제어 블록 +container.reactorControl=리액터 원격 제어 블록 +tile.soyuz_capsule.name=화물 착륙 캡슐 +container.soyuzCapsule=화물 착륙 캡슐 +tile.machine_crystallizer.name=광석 산성화제 +container.crystallizer=광석 산성화제 +tile.machine_mining_laser.name=마이닝 레이저 +container.miningLaser=마이닝 레이저 +tile.barricade.name=모래주머니 +tile.machine_solar_boiler.name=솔라 타워 보일러 +tile.machine_solar_boiler.desc=헬리오스타트 거울의 햇빛을 사용하여 유체를 가열합니다. +tile.solar_mirror.name=헬리오스타트 거울 +container.machineSILEX=사일렉스 +container.machineFEL=펠 + +tile.heater_firebox.name=화실 +tile.heater_firebox.desc=고체 연료를 태워 열을 발생시킵니다. +tile.heater_oilburner.name=유체 버너 +tile.heater_oilburner.desc=유체를 연소시켜 열을 발생시킵니다.$§e스크류드라이버를 사용하여 처리량을 증가시킵니다.$§e수동 드릴을 사용하여 처리량을 감소시킵니다. +tile.heater_oven.name=가열 오븐 +tile.heater_oven.desc=고체 연료를 연소하여 열을 생성합니다.$50%의 효율로 바닥의 열을 흡수합니다. +tile.furnace_steel.name=강철로 +tile.furnace_iron.name=철로 +tile.furnace_iron.desc=더 크고 효율적인 화로는 유휴 상태에서도 연료를 낭비하지 않습니다. + +tile.heat_boiler.name=대형보일러 +tile.heat_boiler.desc=물을 끓이거나 기름을 가열할 수 있는 대형 보일러.$외부 열원이 필요합니다.$열전달률: ΔT*0.01 TU/t +tile.furnace_steel.desc=광석을 제련할 때 보너스 아이템$을 제공할 수 있는 초대형 용광로입니다. 외부 열원이 필요합니다.$열 전달률: ΔT*0.05 TU/t$(Δ는 차이를 의미하고 T는 온도를 의미함) +container.heater_firebox=화실 +container.heaterOven=가열 오븐 +container.heaterOilburner=유체 버너 +container.furnaceIron=철로 + +tile.heater_heatex.name=열교환 히터 +tile.heater_heatex.desc=뜨거운 유체에서 열을 생성합니다. + +tile.heater_electric.name=전기 히터 +tile.heater_electric.desc=에너지를 사용하여 열을 생산합니다.$85%의 효율로 하부의 열을 수용합니다.$스크류 드라이버 및 핸드 드릴로 구성할 수 있습니다. + +tile.barrel_plastic.name=세이프 배럴™ +tile.barrel_corroded.name=부식된 통 +tile.barrel_iron.name=철통 +tile.barrel_steel.name=강철 배럴 +tile.barrel_antimatter.name=자기 반물질 용기 +container.barrel=통 + +tile.broadcaster_pc.name=타락한 브로드캐스터 + +tile.tesla.name=테슬라 코일 +tile.radiobox.name=로젠버그 해충 방제 상자 +tile.pribris.name=RBMK 잔해 +tile.pribris_burning.name=불타는 RBMK 잔해 +tile.pribris_digamma.name=검게 변한 RBMK 잔해 +tile.pribris_radiating.name=연기가 나는 RBMK 잔해 +tile.radiorec.name=고장난 FM 라디오 +container.radiobox=FM 송신기 +container.radiorec=FM 라디오 + +tile.rbmk_storage.name=RBMK 저장 컬럼 +tile.rbmk_storage.desc=§eRBMK 연료봉 또는 조사 채널용 초방사성 물품을 저장하는 데 사용됩니다 +tile.rbmk_absorber.name=RBMK 붕소 중성자 흡수체 +tile.rbmk_absorber.desc=§e유입 플럭스를 모두 흡수합니다. $§e유입 플럭스를 정지시킬 때 사용합니다. +tile.rbmk_blank.name=RBMK 구조 기둥 +tile.rbmk_blank.desc=§eRBMK의 예열 및 냉각 속도를 느리게 합니다.$§e그리고 원자로의 열을 더 빠르게 풀어줍니다 +tile.rbmk_boiler.name=RBMK 증기 채널 +tile.rbmk_boiler.desc=§e온도가 충분히 높으면 물을 증기로 변환합니다.$§eRBMK 유체 로더와 함께 사용 +tile.rbmk_console.name=RBMK 콘솔 +tile.rbmk_console.desc=§6뒷면에 레드스톤 포트를 사용하여 제어봉 설정$§e파워 1-15는 제어봉을 100-0%로 설정$§e그래서 15는 AZ-5와 같이 작용합니다 +tile.rbmk_control.name=RBMK 제어봉 +tile.rbmk_control.desc=§e통과하는 플럭스의 양을 제어하는 데 사용됩니다 +tile.rbmk_control_auto.name=RBMK 자동 제어봉 +tile.rbmk_control_auto.desc=§e온도에 따라 자동으로 제어봉 삽입을 조절할 수 있습니다 +tile.rbmk_control_mod.name=RBMK 조정 제어봉 +tile.rbmk_control_mod.desc=§e일반 컨트롤 로드와 동일하지만 통과하는 모든 빠른 플럭스를 느린 플럭스로 변환합니다. +tile.rbmk_loader.name=RBMK 유체 로더 +tile.rbmk_moderator.name=RBMK 흑연 감속재 +tile.rbmk_moderator.desc=§e통과하는 모든 빠른 플럭스를 느린 플럭스로 변환합니다 +tile.rbmk_outgasser.name=RBMK 조사 채널 +tile.rbmk_outgasser.desc=§e유입되는 플럭스를 흡수하고 그것으로 핵과학을 합니다. +tile.rbmk_reflector.name=RBMK 텅스텐 카바이드 중성자 반사경 +tile.rbmk_reflector.desc=§e이것은 중성자가 왔던 방향으로 플럭스를 반사합니다. +tile.rbmk_rod.name=RBMK 연료봉 +tile.rbmk_rod.desc=§a이것은 많은 열을 방출할 수 있는 RBMK 연료봉를 고정합니다. +tile.rbmk_rod_mod.name=RBMK 감속 연료봉 +tile.rbmk_rod_mod.desc=§aRBMK 연료봉와 동일하지만 유입되는 빠른 플럭스가 느린 플럭스로 변환됩니다. +tile.rbmk_rod_reasim.name=RBMK 연료봉(ReaSim) +tile.rbmk_rod_reasim.desc=§aRBMk 연료봉과 동일하지만 모든 수평 방향으로 무작위로 플럭스를 보냅니다. +tile.rbmk_rod_reasim_mod.name=RBMK 감속 연료봉(ReaSim) +tile.rbmk_rod_reasim_mod.desc=§aRBMK 연료봉(ReaSim)과 동일하지만 유입되는 빠른 플럭스는 느린 플럭스로 변환됩니다. +tile.rbmk_steam_inlet.name=RBMK ReaSim 물 유입구 +tile.rbmk_steam_outlet.name=RBMK ReaSim 스팀 콘센트 +tile.rbmk_cooler.name=RBMK 비상냉동고 +tile.rbmk_cooler.desc=§e컬럼 온도가 750°C 이상이 되면 cryogel을 사용하여 RBMK 채널을 빠르게 냉각하기 시작합니다.$§e용해 전에 시간을 벌기 위해 사용되므로 AZ-5를 누를 수 있습니다. +tile.rbmk_heater.name=RBMK 유체 히터 +tile.rbmk_heater.desc=§e액체를 끓이는 데 사용됩니다.$§e열이 끓이는 액체의 온도보다 높으면 열을 이용하여 액체를 전환합니다.$§e열교환히터는 열을 전달하고 시원한 액체를 되찾는 데 사용됩니다. + +tile.red_pylon.name=전주 +tile.red_pylon.desc=§6연결 형태: §eSingle$§6연결 범위: §e25m +item.wiring_red_copper.name=케이블 드럼 + +tile.red_pylon_large.name=대형 전력탑 +tile.red_pylon_large.desc=§6연결 유형: §e4 중$§6연결 범위: §e100m$§6이 Pylon은 변전소가 필요합니다! + +tile.substation.name=지서 +tile.substation.desc=§6연결 유형: §e4 중$§6연결 범위: §e20m + +item.wiring_red_copper.name=케이블 드럼 + +tile.rail_highspeed.name=고속 철도 +tile.rail_booster.name=고속 부스터 레일 + +tile.factory_titanium_hull.name=기본 공장 케이싱 +tile.factory_titanium_furnace.name=기본 공장 접근 해치 +tile.factory_titanium_conductor.name=기본 공장 전기 포트 +tile.factory_titanium_core.name=기본 공장 핵심 구성 요소 +item.factory_core_titanium.name=기본 공장 에너지 클러스터 +container.factoryTitanium=기본공장 +tile.factory_advanced_hull.name=고급 공장 케이싱 +tile.factory_advanced_furnace.name=고급 공장 접근 해치 +tile.factory_advanced_conductor.name=첨단공장 전기포트 +tile.factory_advanced_core.name=고급 공장 핵심 구성 요소 +item.factory_core_advanced.name=첨단공장에너지클러스터 +container.factoryAdvanced=첨단공장 + +tile.reactor_element.name=반응기 챔버 +tile.reactor_control.name=제어봉 +tile.reactor_hatch.name=원자로 접근 해치 +tile.reactor_ejector.name=원자로 폐기물 배출기 +tile.reactor_inserter.name=원자로 연료 주입기 +tile.reactor_conductor.name=원자로 보일러 +tile.reactor_computer.name=원자로 제어 +container.reactorLarge=대형 원자로 + +tile.fusion_conductor.name=초전도 자석 +tile.fusion_center.name=중앙 자석 조각 +tile.fusion_motor.name=자석 모터 조각 +tile.fusion_heater.name=플라즈마 히터 구성 요소 +tile.struct_plasma_core.name=플라즈마 히터 핵심 부품 +tile.fusion_hatch.name=핵융합로 접근 해치 +tile.fusion_core_block.name=핵융합로 제어 +tile.plasma.name=혈장 +tile.plasma_heater.name=플라즈마 히터 +container.fusionMultiblock=대형 핵융합로 + +tile.watz_element.name=와츠 반응 챔버 +tile.watz_control.name=강화된 제어봉 +tile.watz_cooler.name=Watz 원자로 과냉각기 +tile.watz_end.name=Watz 원자로 안정성 요소 +tile.watz_hatch.name=Watz 원자로 접근 해치 +tile.watz_conductor.name=와츠 전기 포트 +tile.watz_core.name=Watz 원자로 제어 +container.watzPowerplant=와츠 발전소 + +tile.fwatz_conductor.name=SAFE 초전도 자석 선체 +tile.fwatz_cooler.name=재생 냉각수 유체 탱크 라디에이터 +tile.fwatz_tank.name=재생 냉각수 유체 탱크 +tile.fwatz_scaffold.name=SAFE 구조적 지원 +tile.fwatz_hatch.name=SAFE 플랜트 접근 해치 +tile.fwatz_computer.name=특이점-반융합-실험 매트릭스 +tile.fwatz_core.name=특이점-반핵융합 실험로(SAFE) +tile.fwatz_plasma.name=융합 항스크라비디움 플라즈마 +container.fusionaryWatzPlant=특이점-반융합-실험 + +tile.machine_rtg_grey.name=RTG 생성기 +container.rtg=RTG 생성기 +tile.machine_rtg_red.name=폭발 발생기 +tile.machine_rtg_orange.name=강력한 RT 생성기 +tile.machine_rtg_yellow.name=오스트레일륨 초연료 원자로 +tile.machine_rtg_green.name=Verticium 자산 생성기 +tile.machine_rtg_cyan.name=슈라비듐 붕괴 발생기(WIP) +tile.machine_rtg_blue.name=대류 발생기 +tile.machine_rtg_purple.name=반물질 소멸 생성기 + +tile.machine_waste_drum.name=사용후 연료 풀 드럼 +tile.machine_waste_drum.desc=사용후연료를 냉각시킵니다. 적어도 한쪽에는 물이 필요합니다. 측면에 물이 많을수록 속도가 빨라집니다. +container.wasteDrum=사용후 연료 풀 드럼 + +tile.machine_spp_bottom.name=ZPE 전위 발생기(하단) +tile.machine_spp_top.name=ZPE 전위 발생기(상단) + +tile.ams_limiter.name=AMS Stabilizer [WIP] +container.amsLimiter=AMS Stabilizer [WIP] +tile.ams_emitter.name=AMS Emitter [WIP] +container.amsEmitter=AMS Emitter [WIP] +tile.ams_base.name=AMS Base [WIP] +container.amsBase=AMS Base [WIP] + +tile.hadron_analysis.name=입자 가속기 분석 챔버 벽 +tile.hadron_analysis_glass.name=입자 가속기 분석 챔버 창 +tile.hadron_coil_alloy.name=조밀한 초전도 코일 +tile.hadron_coil_chlorophyte.name=조밀한 엽록소 코일 +tile.hadron_coil_gold.name=조밀한 금 코일 +tile.hadron_coil_magtung.name=고밀도 4000K 초전도체 코일 +tile.hadron_coil_mese.name=조밀한 메세 코일 +tile.hadron_coil_neodymium.name=고밀도 네오디뮴 코일 +tile.hadron_coil_schrabidate.name=조밀한 슈라비데이트 코일 +tile.hadron_coil_schrabidium.name=조밀한 슈라비딕 코일 +tile.hadron_coil_starmetal.name=조밀한 스타메탈 코일 +tile.hadron_diode.name=쇼트키 입자 다이오드 +tile.hadron_plating.name=입자 가속기 도금 +tile.hadron_plating_black.name=입자가속기 도금(검은색) +tile.hadron_plating_blue.name=입자가속기 도금(청색) +tile.hadron_plating_glass.name=입자 가속기 도금(창) +tile.hadron_plating_striped.name=입자 가속기 도금(쿨 해저드 스트라이프) +tile.hadron_plating_voltz.name=입자 가속기 도금(VOLTZ) +tile.hadron_plating_yellow.name=입자가속기 도금(YelloDye) +tile.hadron_access.name=입자 가속기 접근 터미널 +tile.hadron_core.name=입자 가속기 핵심 구성 요소 +tile.hadron_power.name=입자 가속기 전원 플러그 + +tile.dfc_emitter.name=DFC 이미터 +container.dfcEmitter=DFC 이미터 +tile.dfc_receiver.name=DFC 수신기 +container.dfcReceiver=DFC 수신기 +tile.dfc_injector.name=DFC 연료 분사 장치 +container.dfcInjector=DFC 연료 분사 장치 +tile.dfc_stabilizer.name=DFC 안정제 +container.dfcStabilizer=DFC 안정제 +tile.dfc_core.name=DFC 코어 챔버 +container.dfcCore=DFC 코어 챔버 + +item.laser_crystal_nano.name=나노튜브 레이저 크리스탈 +item.laser_crystal_nano.desc=다결정 내부의 420km 길이의 탄소나노튜브 안테나 + +item.laser_crystal_pentacene.name=펜타센 레이저 크리스탈 +item.laser_crystal_pentacene.desc=고급 합금으로 코팅된 흥분된 펜타센 크리스탈 + +item.laser_crystal_co2.name=CO2-Desh 레이저 크리스탈 +item.laser_crystal_co2.desc=Crystalline Desh에 담긴 이산화탄소 + +item.laser_crystal_bismuth.name=비스무스 레이저 크리스탈 +item.laser_crystal_bismuth.desc=비스무트-사마륨-우라늄-토륨 결정 매트릭스 + +item.laser_crystal_cmb.name=크세논 레이저 크리스탈 +item.laser_crystal_cmb.desc=Lead-209-Starmetal 합금 격자에 매달린 Xenon135 + +item.laser_crystal_dem.name=악마 레이저 크리스탈 +item.laser_crystal_dem.desc=악마-기오르슘-결합 페르미온 초결정 + +item.laser_crystal_bale.name=베일 레이저 크리스탈 +item.laser_crystal_bale.desc=네오벨라인 케이싱의 베르티시움으로 코팅된 Balepellet + +item.laser_crystal_digamma.name=디감마 레이저 크리스탈 + + +wavelengths.name.radio=라디오 +wavelengths.name.micro=마이크로파 +wavelengths.name.ir=적외선 +wavelengths.name.visible=가시 광선 +wavelengths.name.uv=자외선 +wavelengths.name.xray=엑스레이 +wavelengths.name.gamma=감마 +wavelengths.name.drx=디감마 +wavelengths.waveRange.radio=>1m +wavelengths.waveRange.micro=1mm-1m +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=10nm-400nm +wavelengths.waveRange.xray=오후 9시 - 10시 +wavelengths.waveRange.gamma=<9pm +wavelengths.waveRange.drx=1916169 플랑크 길이 + +tile.digamma_matter.name=디감마리움 +tile.geysir_water.name=워터 간헐천 +tile.geysir_chlorine.name=클라우드 간헐천 +tile.geysir_vapor.name=증기 간헐천 +tile.geysir_nether.name=마그마 간헐천 +tile.stone_porous.name=다공성 돌 + +item.template_folder.name=머신 템플릿 폴더 +item.fluid_identifier.name=유체 식별자 +item.forge_fluid_identifier.name=유체 식별자 +item.assembly_template.name=어셈블리 템플릿: +item.chemistry_template.name=화학 템플릿: +item.siren_track.name=사이렌 트랙 + +item.bobmazon_materials.name=Vault-tec 지원: 재료 +item.bobmazon_machines.name=Vault-tec 지원: 블록 및 기계 +item.bobmazon_weapons.name=Vault-tec 지원: 무기 및 폭발물 +item.bobmazon_tools.name=Vault-tec 지원: 도구 +item.bobmazon_hidden.name=숨겨진 카탈로그 + +item.fuse.name=퓨즈 +item.arc_electrode.name=흑연 전극 +item.arc_electrode_burnt.name=용융 전극 +item.arc_electrode_desh.name=데쉬 전극 + +tile.test_nuke.name=핵무기 테스트 + +item.ingot_th232.name=토륨-232 주괴 +item.ingot_uranium.name=우라늄 주괴 +item.ingot_u233.name=우라늄-233 주괴 +item.ingot_u235.name=우라늄-235 주괴 +item.ingot_u238.name=우라늄-238 주괴 +item.ingot_u238m2.name=준안정 우라늄-238-2 주괴 +item.ingot_plutonium.name=플루토늄 주괴 +item.ingot_pu238.name=플루토늄-238 주괴 +item.ingot_pu239.name=플루토늄-239 주괴 +item.ingot_pu240.name=플루토늄-240 주괴 +item.ingot_polonium.name=폴로늄-210 주괴 +item.ingot_titanium.name=티타늄 주괴 +item.ingot_cobalt.name=코발트 주괴 +item.sulfur.name=황 +item.nugget_polonium.name=폴로늄-210 조각 +item.nugget_pu_mix.name=원자로 등급 플루토늄 덩어리 +item.powder_polonium.name=폴로늄-210 가루 +item.rod_polonium.name=폴로늄-210 막대 +item.rod_dual_polonium.name=폴로늄-210 이중 막대 +item.rod_quad_polonium.name=폴로늄-210 사중 막대 + +item.niter.name=니터 +item.ingot_copper.name=산업용 등급 구리 +item.ingot_red_copper.name=마인크래프트 등급 구리 +item.ingot_tungsten.name=텅스텐 잉곳 +# Yeah, aluminium. -um gang! +item.ingot_aluminium.name=알루미늄 잉곳 +item.fluorite.name=형석 +item.ingot_steel.name=강철 주괴 +item.plate_steel.name=강판 +item.ingot_beryllium.name=베릴륨 주괴 +item.plate_schrabidium.name=슈라비듐-326 플레이트 +item.ingot_schraranium.name=슈라라늄 주괴 +item.ingot_semtex.name=셈텍스 바 +item.ingot_schrabidium.name=슈라비듐-326 주괴 +item.nugget_schrabidium.name=슈라비듐-326 조각 +item.plate_copper.name=구리판 +item.board_copper.name=구리 패널 +item.ingot_advanced_alloy.name=고급 합금 주괴 +item.plate_advanced_alloy.name=고급 합금판 +item.wire_advanced_alloy.name=초전도체 +item.coil_advanced_alloy.name=초전도 코일 +item.coil_advanced_torus.name=초전도 링 코일 +item.coil_gold.name=골드 코일 +item.coil_gold_torus.name=황금 반지 코일 +item.ring_starmetal.name=§9스타메탈 링§r +item.lithium.name=리튬 큐브 +item.ingot_phosphorus.name=백린괴 +item.ingot_magnetized_tungsten.name=자화 텅스텐 주괴 +item.ingot_meteorite.name=운석 주괴 +item.ingot_meteorite_forged.name=단조 운석 주괴 +item.ingot_combine_steel.name=CMB 강철 주괴 item.plate_combine_steel.name=CMB 강판 -item.plate_copper.name=동판 -item.plate_dalekanium.name=화난 금속 -item.plate_desh.name=데쉬 컴파운드 플레이트 -item.plate_dineutronium.name=다이뉴트로늄 화합물 플레이트 -item.plate_euphemium.name=유페미움 컴파운드 플레이트 -item.plate_gold.name=금 접시 -item.plate_iron.name=철판 -item.plate_kevlar.name=케블라-세라믹 컴파운드 -item.plate_lead.name=리드 플레이트 +item.wire_magnetized_tungsten.name=4000K 고온 초전도체 +item.coil_magnetized_tungsten.name=4000K 고온 초전도 코일 item.plate_mixed.name=혼합 접시 -item.plate_paa.name=PaA 합금 플레이트 +item.plate_paa.name=PaA 합금판 +item.ingot_dura_steel.name=고속도강 주괴 +item.ingot_polymer.name=폴리머 바 +item.ingot_bakelite.name=베이클라이트 바 +item.powder_bakelite.name=베이클라이트 가루 +tile.block_bakelite.name=베이클라이트 블록 +tile.block_rubber.name=고무 블록 +item.ingot_rubber.name=고무바 +tile.block_au198.name=금 블록-198 +item.bolt_dura_steel.name=고속 강철 볼트 +item.pipes_steel.name=강관 +item.drill_titanium.name=티타늄 드릴 +item.drax.name=테라 드릴 +item.drax_mk2.name=강화 테라 드릴 +item.drax_mk3.name=슈라비딕 테라 드릴 +item.bolt_tungsten.name=텅스텐 볼트 +item.bolt_compound.name=강화된 터빈 샤프트 item.plate_polymer.name=절연체 -item.plate_saturnite.name=토성 판 -item.plate_schrabidium.name=슈라비디움-326 플레이트 -item.plate_steel.name=강판 -item.plate_titanium.name=티타늄 플레이트 -item.polaroid.name=폴라로이드 -item.powder_ac227.name=악티늄-227 분말 -item.powder_actinium.name=악티늄 분말 -item.powder_actinium_tiny.name=작은 악티늄 가루 더미 -item.powder_advanced_alloy.name=고급 합금 분말 -item.powder_aluminium.name=알루미늄 분말 -item.powder_asbestos.name=석면 분말 -item.powder_astatine.name=아스타틴 분말 -item.powder_at209.name=아스타틴-209 분말 -item.powder_au198.name=골드-198 파우더 -item.powder_australium.name=오스트랄륨 분말 -item.powder_balefire.name=열핵 재 -item.powder_beryllium.name=베릴륨 분말 -item.powder_boron.name=붕소 분말 -item.powder_boron_tiny.name=작은 붕소 가루 더미 -item.powder_bromine.name=브롬 분말 -item.powder_caesium.name=세슘 분말 -item.powder_cerium.name=세륨 분말 -item.powder_cerium_tiny.name=작은 세륨 가루 더미 -item.powder_chlorophyte.name=엽록소 분말 -item.powder_cloud.name=클라우드 잔류물 -item.powder_co60.name=코발트-60 분말 -item.powder_co60_tiny.name=코발트-60 분말의 작은 더미 -item.powder_coal.name=석탄 가루 -item.powder_coal_tiny.name=작은 석탄 가루 더미 -item.powder_cobalt.name=코발트 가루 -item.powder_cobalt_tiny.name=작은 코발트 가루 더미 -item.powder_coltan.name=정제된 탄탈라이트 -item.powder_coltan_ore.name=부서진 콜탄 -item.powder_combine_steel.name=CMB 스틸 파우더 -item.powder_copper.name=구리 가루 -item.powder_cs137.name=세슘-137 분말 -item.powder_cs137_tiny.name=작은 세슘-137 분말 더미 -item.powder_daffergon.name=다퍼곤 가루 -item.powder_desh.name=데시 파우더 -item.powder_desh_mix.name=데시 블렌드 +item.ingot_solinium.name=솔리늄-327 주괴 +item.nugget_solinium.name=솔리늄-327 조각 +item.photo_panel.name=태양광 패널 +item.sat_base.name=위성 기지 +item.thruster_nuclear.name=LV-N 핵 로켓 엔진 +item.sat_head_mapper.name=고이득 광학 카메라 +item.sat_head_scanner.name=M700 측량 스캐너 +item.sat_head_radar.name=레이더 접시 +item.sat_head_laser.name=죽음의 광선 +item.sat_head_resonator.name=제늄 공진기 + +item.ingot_australium.name=오스트레일륨 주괴 +item.ingot_weidanium.name=웨이다니늄 주괴 +item.ingot_reiium.name=레이움 주괴 +item.ingot_unobtainium.name=언옵테이늄 주괴 +item.ingot_daffergon.name=다퍼곤 주괴 +item.ingot_verticium.name=버티시움 주괴 +item.nugget_australium.name=오스트레일륨 덩어리 +item.nugget_australium_greater.name=오스트레일륨-406 조각 +item.nugget_australium_lesser.name=오스트레일륨-405 조각 +item.nugget_weidanium.name=웨이다니늄 조각 +item.nugget_reiium.name=레이움 조각 +item.nugget_unobtainium.name=언옵테이늄 조각 +item.nugget_daffergon.name=다퍼곤 조각 +item.nugget_verticium.name=버티시움 조각 + +item.ingot_desh.name=데쉬 주괴 +item.nugget_desh.name=데시 조각 +item.powder_desh.name=데쉬 파우더 +item.powder_desh_mix.name=데쉬 블렌드 item.powder_desh_ready.name=DeshReady™ 블렌드 -item.powder_diamond.name=다이아몬드 가루 -item.powder_dineutronium.name=디뉴트로늄 분말 -item.powder_dura_steel.name=고속철 분말 -item.powder_emerald.name=에메랄드 가루 -item.powder_euphemium.name=유페미움 가루 -item.powder_fire.name=적린 -item.powder_gold.name=금가루 -item.powder_i131.name=요오드-131 분말 -item.powder_i131_tiny.name=요오드-131 분말의 작은 더미 -item.powder_ice.name=극저온 분말 -item.powder_iodine.name=요오드 분말 -item.powder_iodine_tiny.name=작은 요오드 가루 더미 +item.powder_nitan_mix.name=니타늄 혼합물 +item.powder_spark_mix.name=스파크 블렌드 +item.ingot_dineutronium.name=디뉴트로늄 주괴 +item.powder_dineutronium.name=디뉴트로늄 가루 +item.nugget_dineutronium.name=디뉴트로늄 조각 +item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_saturnite.name=토성 주괴 +item.ingot_schrabidate.name=페릭 슈라비데이트 주괴 +item.plate_saturnite.name=토성판 +item.ingot_fiberglass.name=유리섬유 바 +item.ingot_arsenic.name=비소 주괴 +item.nugget_arsenic.name=비소 덩어리 +item.ingot_asbestos.name=석면 시트 +item.ingot_electronium.name=일렉트로늄 주괴 + +item.solid_fuel.name=고체연료 +item.rocket_fuel.name=고체 연료(로켓 추진제) +item.coke.name=콜라 +item.lignite.name=갈탄 +item.briquette_lignite.name=갈탄 연탄 +item.powder_lignite.name=갈탄가루 + +item.nugget_th232.name=토륨-232 덩어리 +item.nugget_u233.name=우라늄-233 덩어리 +item.nugget_u235.name=우라늄-235 덩어리 +item.nugget_u238.name=우라늄-238 조각 +item.nugget_pu238.name=플루토늄-238 조각 +item.nugget_pu239.name=플루토늄-239 조각 +item.nugget_pu240.name=플루토늄-240 조각 +item.nugget_pu241.name=플루토늄-241 조각 +item.plate_titanium.name=티타늄 플레이트 +item.plate_aluminium.name=알루미늄 판 +item.plate_armor_lunar.name=달의 도금 +item.plate_armor_ajr.name=철판 갑옷 도금 +item.plate_armor_titanium.name=티타늄 갑옷 판 +item.plate_armor_hev.name=반응성 장갑판 +item.hev_battery.name=정장 배터리 +item.wire_red_copper.name=빨간 구리선 +item.neutron_reflector.name=중성자 반사경 +item.nugget_beryllium.name=베릴륨 덩어리 + +item.crystal_iron.name=철 결정 +item.crystal_gold.name=금 결정 +item.crystal_redstone.name=레드스톤 결정 +item.crystal_lapis.name=청금석 결정 +item.crystal_diamond.name=다이아몬드 결정 +item.crystal_uranium.name=우라늄 결정 +item.crystal_thorium.name=토륨 결정 +item.crystal_plutonium.name=플루토늄 결정 +item.crystal_titanium.name=티타늄 결정 +item.crystal_sulfur.name=유황 결정 +item.crystal_niter.name=나이터 결정 +item.crystal_copper.name=구리 결정 +item.crystal_tungsten.name=텅스텐 결정 +item.crystal_aluminium.name=알루미늄 결정 +item.crystal_fluorite.name=형석 결정 +item.crystal_beryllium.name=베릴륨 결정 +item.crystal_lead.name=납 결정 +item.crystal_schraranium.name=슈라라늄 결정 +item.crystal_schrabidium.name=슈라비듐 결정 +item.crystal_rare.name=희토류 결정 +item.crystal_phosphorus.name=인 결정 +item.crystal_lithium.name=리튬 결정 +item.crystal_starmetal.name=스타메탈 결정 +item.crystal_trixite.name=삼중석 결정 +item.crystal_asbestos.name=석면 결정 + +item.wire_aluminium.name=알루미늄 와이어 +item.wire_copper.name=구리 와이어 +item.wire_gold.name=골드 와이어 +item.wire_schrabidium.name=슈라비듐 와이어 + +item.circuit_raw.name=기본 회로 조립 +item.circuit_aluminium.name=기본회로 +item.circuit_copper.name=향상된 회로 +item.circuit_red_copper.name=고급 회로 +item.circuit_gold.name=오버클럭된 회로 +item.circuit_schrabidium.name=고성능 회로 +item.circuit_targeting_tier1.name=군용 회로 기판(계층 1) +item.circuit_targeting_tier2.name=군용 회로 기판(계층 2) +item.circuit_targeting_tier3.name=군용 회로 기판(계층 3) +item.circuit_targeting_tier4.name=군용 회로 기판(계층 4) +item.circuit_targeting_tier5.name=군용 회로 기판(계층 5) +item.circuit_targeting_tier6.name=군용 회로 기판(계층 6) +item.mechanism_revolver_1.name=리볼버 메커니즘 +item.mechanism_revolver_2.name=고급 리볼버 메커니즘 +item.mechanism_rifle_1.name=소총 메커니즘 +item.mechanism_rifle_2.name=고급 소총 메커니즘 +item.mechanism_launcher_1.name=런처 메커니즘 +item.mechanism_launcher_2.name=고급 실행기 메커니즘 +item.mechanism_special.name=첨단 무기 메커니즘 + +item.primer_357.name=.357 매그넘 프라이머(x24) +item.primer_44.name=.44 매그넘 프라이머(x24) +item.primer_9.name=소구경 프라이머(x32) +item.primer_50.name=대구경 프라이머(x12) +item.primer_buckshot.name=벅샷 프라이머(x12) +item.casing_357.name=.357 매그넘 케이스(x24) +item.casing_44.name=.44 매그넘 케이스(x24) +item.casing_9.name=소구경 케이스(x32) +item.casing_50.name=대구경 케이스(x12) +item.casing_buckshot.name=벅샷 케이스(x12) +item.assembly_iron.name=철탄 조립 +item.assembly_steel.name=납탄 조립 +item.assembly_lead.name=유리 총알 조립 +item.assembly_gold.name=금총알 조립 +item.assembly_schrabidium.name=슈라비듐 총알 조립 +item.assembly_nightmare.name=악몽 총알 조립 +item.assembly_desh.name=Desh 총알 조립 +item.assembly_pip.name=오염된 총알 조립 +item.assembly_nopip.name=.44 매그넘 조립 +item.assembly_smg.name=9mm 조립 +item.assembly_556.name=5.56mm 조립 +item.assembly_uzi.name=.22 LR 조립 +item.assembly_actionexpress.name=.50 AE 조립 +item.assembly_calamity.name=.50 BMG 조립 +item.assembly_lacunae.name=.5mm 조립 + +item.piston_selenium.name=레이디얼 엔진 피스톤 + +tile.pink_double_slab.name=핑크 우드 더블 슬래브 +tile.radwater_block.name=조사수 + +tile.block_aluminium.name=알루미늄 블록 +tile.block_saturnite.name=토성 블록 +tile.block_ra226.name=라듐-226 블록 +tile.block_radspice.name=네오벨린 블록 +tile.block_polymer.name=폴리머 블록 +tile.block_copper.name=구리 블록 +tile.block_fluorite.name=형석 블록 +tile.block_niter.name=나이터 블록 +tile.block_red_copper.name=붉은 구리 블록 +tile.block_steel.name=강철 블록 +tile.block_sulfur.name=유황 블록 +tile.block_titanium.name=티타늄 블록 +tile.block_tungsten.name=텅스텐 블록 +tile.block_uranium.name=우라늄 블록 +tile.block_thorium.name=토륨 블록 +tile.block_trinitite.name=삼위일체 블록 +tile.block_beryllium.name=베릴륨 블록 +tile.block_waste.name=핵폐기물 블록 +tile.block_waste_painted.name=핵폐기물 도장 블록 +tile.block_scrap.name=스크랩 블록 +tile.block_electrical_scrap.name=전기 스크랩 블록 +tile.block_advanced_alloy.name=고급 합금 블록 +tile.block_magnetized_tungsten.name=자화 텅스텐 블록 +tile.block_combine_steel.name=CMB 강철 블록 +tile.block_australium.name=오스트레일륨 블록 +tile.block_weidanium.name=웨이다늄 블록 +tile.block_reiium.name=레이움 블록 +tile.block_unobtainium.name=언옵테이늄 블록 +tile.block_daffergon.name=다퍼곤 블록 +tile.block_verticium.name=버티시움 블록 +tile.block_desh.name=강화된 데쉬 블록 +tile.block_dineutronium.name=디뉴트로늄 블록 +tile.block_schrabidate.name=Ferric Schrabidate의 블록 +tile.block_schraranium.name=슈라라늄 블록 +tile.block_dura_steel.name=고속도강 강화블록 +tile.block_yellowcake.name=옐로케이크 블록 +tile.block_starmetal.name=§9스타메탈 블록§r +tile.block_insulator.name=단열재 롤 +tile.block_fiberglass.name=유리 섬유 롤 +tile.block_asbestos.name=석면 블록 +tile.block_cobalt.name=코발트 블록 +tile.block_lithium.name=리튬 블록 +tile.block_white_phosphorus.name=백린 블록 +tile.block_red_phosphorus.name=적린 블록 + +tile.block_u233.name=우라늄-233 블록 +tile.block_u235.name=우라늄-235 블록 +tile.block_u238.name=우라늄-238 블록 +tile.block_neptunium.name=넵투늄-237 블록 +tile.block_uranium_fuel.name=우라늄 연료 블록 +tile.block_mox_fuel.name=MOX 연료 블록 +tile.block_plutonium.name=플루토늄 블록 +tile.block_pu238.name=플루토늄-238 블록 +tile.block_pu239.name=플루토늄-239 블록 +tile.block_pu240.name=플루토늄-240 블록 +tile.block_plutonium_fuel.name=플루토늄 연료 블록 +tile.block_polonium.name=폴로늄-210 블록 +tile.block_thorium_fuel.name=토륨 연료 블록 +tile.block_solinium.name=솔리늄-327 블록 +tile.block_schrabidium_fuel.name=슈라비듐 연료 블록 + +tile.ore_aluminium.name=알루미늄 광석 +tile.ore_copper.name=구리 광석 +tile.ore_fluorite.name=형석 광석 +tile.ore_niter.name=나이터 광석 +tile.ore_sulfur.name=유황광석 +tile.ore_titanium.name=티타늄 광석 +tile.ore_tungsten.name=텅스텐 광석 +tile.ore_uranium.name=우라늄 광석 +tile.ore_uranium_scorched.name=그을린 우라늄 광석 +tile.ore_thorium.name=토륨 광석 +tile.ore_schrabidium.name=슈라비듐 광석 +tile.ore_beryllium.name=베릴륨 광석 +tile.ore_lignite.name=갈탄 광석 +tile.ore_asbestos.name=석면 광석 +tile.ore_gneiss_asbestos.name=편암 석면 광석 +tile.ore_gneiss_copper.name=편암 구리 광석 +tile.ore_gneiss_gold.name=편암 금광석 +tile.ore_gneiss_iron.name=편암 철광석 +tile.ore_gneiss_lithium.name=편암 리튬 광석 +tile.ore_gneiss_rare.name=편암 희토류 광석 +tile.ore_gneiss_schrabidium.name=편암 슈라비듐 광석 +tile.ore_gneiss_uranium.name=편암 우라늄 광석 +tile.ore_gneiss_uranium_scorched.name=그을린 편암 우라늄 광석 +tile.stone_gneiss.name=흑연 편암 +tile.ore_gneiss_gas.name=가스 셰일 +tile.ore_coal_oil.name=기름진 석탄 광석 +tile.ore_coal_oil_burning.name=불타는 기름진 석탄 광석 + +tile.ore_nether_uranium.name=네더 우라늄 광석 +tile.ore_nether_uranium_scorched.name=그을린 황천 우라늄 광석 +tile.ore_nether_plutonium.name=네더 플루토늄 광석 +tile.ore_nether_tungsten.name=네더 텅스텐 광석 +tile.ore_nether_sulfur.name=네더 유황 광석 +tile.ore_nether_fire.name=네더 인광석 +tile.ore_nether_schrabidium.name=네더 슈라비듐 광석 +tile.ore_nether_coal.name=불타는 황천 석탄 광석 +tile.ore_nether_smoldering.name=그을린 황천랙 + +tile.ore_meteor_aluminium.name=유성 알루미늄 광석 +tile.ore_meteor_copper.name=유성 구리 광석 +tile.ore_meteor_sulfur.name=유성 유황 광석 +tile.ore_meteor_titanium.name=유성 티타늄 광석 +tile.ore_meteor_tungsten.name=유성 텅스텐 광석 +tile.ore_meteor_uranium.name=유성 우라늄 광석 +tile.ore_meteor_thorium.name=유성 토륨 광석 +tile.ore_meteor_lead.name=유성 납 광석 +tile.ore_meteor_lithium.name=유성 리튬 광석 +tile.ore_meteor_starmetal.name=스타메탈 광석 + +tile.ore_tikite.name=트릭사이트 + +tile.ore_australium.name=호주 광석 +tile.ore_weidanium.name=웨이디트 +tile.ore_reiium.name=레이테 +tile.ore_unobtainium.name=브라이트블렌드 광석 +tile.ore_daffergon.name=델라이트 +tile.ore_verticium.name=달러 그린 미네랄 +tile.ore_rare.name=희토류 광석 + +tile.ore_oil.name=석유 매장지 +tile.ore_oil_empty.name=빈 석유 매장지 +tile.ore_oil_sand.name=타르 샌드 + +tile.deco_titanium.name=티타늄 데코 블록 +tile.deco_red_copper.name=레드 코퍼 데코 블록 +tile.deco_tungsten.name=텅스텐 데코 블록 +tile.deco_aluminium.name=알루미늄 데코 블록 +tile.deco_steel.name=스틸데코블록 +tile.deco_lead.name=리드 데코 블록 +tile.deco_beryllium.name=베릴륨 데코 블록 +tile.deco_asbestos.name=석면 지붕 + +tile.hazmat.name=위험물질 천 블록 +tile.iter.name=핵융합로 + +tile.reinforced_brick.name=강화벽돌 +tile.reinforced_glass.name=강화유리 +tile.reinforced_sand.name=강화된 사암 +tile.reinforced_light.name=강화된 발광석 +tile.reinforced_lamp_off.name=강화램프 +tile.reinforced_lamp_on.name=강화램프 + +tile.reinforced_stone.name=조밀한 돌 +tile.concrete_smooth.name=콘크리트 +tile.concrete.name=콘크리트 타일 +tile.concrete_pillar.name=철근 철근 콘크리트 기둥 +tile.brick_concrete.name=콘크리트 벽돌 +tile.brick_concrete_mossy.name=이끼 낀 콘크리트 벽돌 +tile.brick_concrete_cracked.name=깨진 콘크리트 벽돌 +tile.brick_concrete_broken.name=깨진 콘크리트 벽돌 +tile.brick_dungeon.name=베르젤리아나이트 벽돌 +tile.brick_dungeon_circle.name=베르젤리아나이트 서클 +tile.brick_dungeon_flat.name=베르젤리아나이트 블록 +tile.brick_dungeon_tile.name=베르젤리아나이트 타일 +tile.brick_obsidian.name=흑요석 벽돌 +tile.brick_light.name=가벼운 벽돌 +tile.asphalt.name=아스팔트 +tile.brick_compound.name=복합 메쉬 +tile.brick_jungle.name=에너자이트 벽돌 +tile.brick_jungle_cracked.name=깨진 에나르가이트 벽돌 +tile.brick_jungle_glyph.name=Enargite 문양 벽돌 +tile.brick_jungle_lava.name=마그마틱 에나르가이트 벽돌 +tile.brick_jungle_trap.name=갇힌 Enargite 벽돌 +tile.brick_jungle_mystic.name=신비한 에나르가이트 벽돌 +tile.brick_jungle_ooze.name=방사성 Enargite 벽돌 +tile.brick_jungle_circle.name=기계공 서클 +tile.spikes.name=스파이크 + +tile.tile_lab.name=실험실 타일 +tile.tile_lab_broken.name=부서진 실험실 타일 +tile.tile_lab_cracked.name=깨진 실험실 타일 + +tile.cmb_brick.name=CMB 스틸 타일 +tile.cmb_brick_reinforced.name=강화된 CMB 벽돌 + +tile.gravel_obsidian.name=으깬 흑요석 +tile.gravel_diamond.name=다이아몬드 자갈 + +tile.barbed_wire.name=가시 철사 +tile.barbed_wire_fire.name=불타는 철조망 +tile.barbed_wire_poison.name=중독된 철조망 +tile.barbed_wire_acid.name=가성 철조망 +tile.barbed_wire_wither.name=시든 철조망 +tile.barbed_wire_ultradeath.name=구름 철조망 + +tile.fence_metal.name=체인링크 울타리 +tile.sand_boron.name=붕소 모래 +tile.sand_boron_layer.name=붕소 모래층 +tile.sand_gold.name=금빛 모래 +tile.sand_gold198.name=골드-198 샌드 +tile.sand_lead.name=납 모래 +tile.sand_polonium.name=폴로늄 모래 +tile.sand_quartz.name=석영 모래 +tile.sand_uranium.name=우라늄 모래 +tile.glass_ash.name=애쉬 글래스 +tile.glass_boron.name=붕소 유리 +tile.glass_lead.name=납유리 +tile.glass_polonium.name=폴로늄 유리 +tile.glass_quartz.name=석영 유리 +tile.glass_trinitite.name=트리니티 유리 +tile.glass_uranium.name=우라늄 유리 + +tile.lamp_demon.name=데몬 코어 램프 + +tile.seal_frame.name=사일로 해치 프레임 +tile.seal_controller.name=사일로 해치 오프너 +tile.seal_hatch.name=사일로 해치 + +tile.silo_hatch.name=사일로 해치 + +tile.vault_door.name=Vault-Tec 방폭문 +tile.blast_door.name=슬라이딩 블래스트 도어 +tile.sliding_blast_door.name=측면 슬라이딩 블래스트 도어 +tile.sliding_blast_door_2.name=측면 슬라이딩 블래스트 도어 + +item.sliding_blast_door_skin0.name=측면 슬라이딩 블래스트 도어 기본 스킨 +item.sliding_blast_door_skin1.name=측면 슬라이딩 블래스트 도어 변형 1 스킨 +item.sliding_blast_door_skin2.name=측면 슬라이딩 블래스트 도어 변형 2 스킨 + +item.door_metal.name=금속 문 +item.door_office.name=사무실 문 +item.door_bunker.name=벙커 도어 + +item.nugget_uranium.name=우라늄 덩어리 +item.nugget_plutonium.name=플루토늄 덩어리 +item.nugget_neptunium.name=넵투늄-237 조각 +item.ingot_neptunium.name=넵투늄-237 주괴 +item.nugget_lead.name=리드 조각 +item.ingot_lead.name=납괴 +tile.block_lead.name=납 블록 +tile.ore_lead.name=납광석 + +item.powder_lead.name=납가루 +item.powder_neptunium.name=넵투늄-237 가루 +item.powder_schrabidium.name=슈라비듐-326 가루 +item.powder_semtex_mix.name=셈텍스 블렌드 item.powder_iron.name=철분 -item.powder_lanthanium.name=란탄 분말 -item.powder_lanthanium_tiny.name=작은 란타늄 분말 더미 +item.powder_gold.name=금가루 +item.powder_aluminium.name=알루미늄 가루 +item.powder_asbestos.name=석면가루 +item.powder_bismuth.name=비스무트-209 가루 +item.powder_beryllium.name=베릴륨 가루 +item.powder_copper.name=구리 가루 +item.powder_titanium.name=티타늄 가루 +item.powder_tungsten.name=텅스텐 가루 +item.powder_uranium.name=우라늄 가루 +item.powder_plutonium.name=플루토늄 가루 +item.dust.name=먼지 +item.powder_coal.name=석탄 가루 item.powder_lapis.name=청금석 가루 -item.powder_lead.name=납 가루 -item.powder_lignite.name=갈탄 분말 -item.powder_lithium.name=리튬 분말 +item.powder_emerald.name=에메랄드 가루 +item.powder_diamond.name=다이아몬드 가루 +item.powder_red_copper.name=붉은 구리 가루 +item.powder_steel.name=강철가루 +item.powder_steel_tiny.name=작은 강철 가루 더미 +item.powder_magnetized_tungsten.name=자화 텅스텐 가루 +item.powder_combine_steel.name=CMB 강철가루 +item.powder_lithium.name=리튬가루 +item.powder_advanced_alloy.name=고급 합금 가루 +item.powder_quartz.name=석영가루 +item.powder_power.name=에너지 파우더 +item.powder_iodine.name=요오드 가루 +item.powder_thorium.name=토륨 가루 +item.powder_neodymium.name=네오디뮴 가루 +item.powder_astatine.name=아스타틴 파우더 +item.powder_caesium.name=세슘가루 +item.powder_australium.name=오스트레일륨 가루 +item.powder_balefire.name=열핵 재 +item.powder_weidanium.name=웨이다늄 가루 +item.powder_reiium.name=레이움 가루 +item.powder_schrabidate.name=철 슈라비데이트 가루 +item.powder_unobtainium.name=언옵테이늄 가루 +item.powder_daffergon.name=다퍼곤 파우더 +item.powder_verticium.name=버티시움 가루 +item.powder_strontium.name=스트론튬 가루 +item.powder_cobalt.name=코발트 가루 +item.powder_bromine.name=브롬 가루 +item.powder_niobium.name=니오브 가루 +item.powder_tennessine.name=테네신-294 가루 +item.powder_cerium.name=세륨가루 +item.powder_dura_steel.name=고속도강가루 +item.powder_polymer.name=폴리머 파우더 +item.powder_lanthanium.name=란타늄 가루 +item.powder_actinium.name=악티늄 가루 item.powder_lithium_tiny.name=작은 리튬 가루 더미 -item.powder_magic.name=분쇄된 인챈트 -item.powder_magnetized_tungsten.name=자화 텅스텐 분말 +item.powder_cobalt_tiny.name=작은 코발트 가루 더미 +item.powder_neodymium_tiny.name=작은 네오디뮴 가루 더미 +item.powder_niobium_tiny.name=니오브 가루의 작은 더미 +item.powder_cerium_tiny.name=작은 세륨 가루 더미 +item.powder_chlorophyte.name=엽록소 가루 +item.powder_lanthanium_tiny.name=작은 란타늄 가루 더미 +item.powder_actinium_tiny.name=작은 악티늄 가루 더미 +item.powder_euphemium.name=유페늄 가루 item.powder_meteorite.name=운석 가루 item.powder_meteorite_tiny.name=작은 운석 가루 더미 -item.powder_neodymium.name=네오디뮴 분말 -item.powder_neodymium_tiny.name=작은 네오디뮴 분말 더미 -item.powder_neptunium.name=넵투늄-237 분말 -item.powder_niobium.name=니오븀 분말 -item.powder_niobium_tiny.name=니오븀 분말의 작은 더미 -item.powder_nitan_mix.name=니타늄 혼합 -item.powder_pb209.name=납-209 분말 -item.powder_plutonium.name=플루토늄 분말 -item.powder_poison.name=독 가루 -item.powder_polonium.name=폴로늄-210 분말 -item.powder_polymer.name=고분자 분말 -item.powder_power.name=에너지 파우더 -item.powder_quartz.name=석영 분말 -item.powder_ra226.name=라듐-226 분말 -item.powder_radspice.name=네오벨린 파우더 -item.powder_red_copper.name=적동분말 -item.powder_reiium.name=레이움 가루 -item.powder_schrabidate.name=Ferric Schrabidate 분말 -item.powder_schrabidium.name=Schrabidium-326 분말 -item.powder_semtex_mix.name=셈텍스 블렌드 -item.powder_spark_mix.name=스파크 블렌드 -item.powder_sr90.name=스트론튬-90 분말 -item.powder_sr90_tiny.name=작은 더미의 스트론튬-90 분말 -item.powder_steel.name=스틸 파우더 -item.powder_steel_tiny.name=작은 강철 가루 더미 -item.powder_strontium.name=스트론튬 분말 -item.powder_tantalium.name=탄탈륨 분말 -item.powder_tcalloy.name=테크네튬 강철 분말 -item.powder_tennessine.name=테네신-294 분말 -item.powder_thermite.name=테르밋 -item.powder_thorium.name=토륨 가루 -item.powder_titanium.name=티타늄 분말 -item.powder_tungsten.name=텅스텐 분말 -item.powder_unobtainium.name=언옵티늄 분말 -item.powder_uranium.name=우라늄 분말 -item.powder_verticium.name=버티시움 분말 -item.powder_weidanium.name=와이다늄 분말 -item.powder_xe135.name=크세논-135 분말 -item.powder_xe135_tiny.name=제논-135 분말의 작은 더미 item.powder_yellowcake.name=노란색 케이크 -item.powder_zirconium.name=지르코늄 분말 -item.primer_357.name=.357 매그넘 프라이머(x24) -item.primer_44.name=.44 매그넘 프라이머(x24) -item.primer_50.name=대구경 프라이머(x12) -item.primer_9.name=소구경 프라이머(x32) -item.primer_buckshot.name=벅샷 프라이머(x12) -item.prototype_kit.name=프로토타입 키트 -item.pudding.name=푸딩 -item.quartz_plutonium.name=심성 석영 -item.radaway.name=라드어웨이 -item.radaway_flush.name=엘리트 라드어웨이 -item.radaway_strong.name=강한 RadAway -item.radx.name=라드-X +item.powder_magic.name=분쇄된 마법 +item.redstone_depleted.name=채도가 낮은 레드스톤 가루 + +item.fragment_neodymium.name=네오디뮴 조각 +item.fragment_cobalt.name=코발트 조각 +item.fragment_niobium.name=니오브 조각 +item.fragment_cerium.name=세륨 조각 +item.fragment_lanthanium.name=란타늄 조각 +item.fragment_actinium.name=악티늄 조각 +item.fragment_meteorite.name=운석 조각 + +item.battery_generic.name=배터리 +item.battery_advanced.name=고급 배터리 +item.battery_lithium.name=리튬 이온 배터리 +item.battery_schrabidium.name=슈라비듐 배터리 +item.battery_spark.name=스파크 배터리 +item.battery_creative.name=무한 배터리 + +item.battery_su.name=SU-배터리 +item.battery_su_l.name=대형 SU-배터리 +item.battery_trixite.name=오프 브랜드 스파크 배터리 +item.battery_steam.name=증기 구동 에너지 저장 탱크 +item.battery_steam_large.name=대형 증기 구동 에너지 저장 탱크 + +item.battery_potato.name=감자 배터리 +item.battery_potatos.name=포타OS + +item.battery_red_cell.name=레드스톤 파워 셀 +item.battery_advanced_cell.name=고급 파워 셀 +item.battery_lithium_cell.name=리튬이온 동력전지 +item.battery_schrabidium_cell.name=슈라비듐 파워 셀 +item.battery_red_cell_6.name=6단 레드스톤 동력전지 +item.battery_advanced_cell_4.name=4중 고급 전력 셀 +item.battery_lithium_cell_3.name=삼중 리튬 이온 전력 셀 +item.battery_schrabidium_cell_2.name=이중 슈라비듐 파워 셀 +item.battery_red_cell_24.name=24접이식 레드스톤 파워 셀 +item.battery_advanced_cell_12.name=12배 고급 파워 셀 +item.battery_lithium_cell_6.name=6중 리튬 이온 전력 셀 +item.battery_schrabidium_cell_4.name=4중 슈라비듐 파워 셀 +item.battery_spark_cell_6.name=스파크 파워 셀 +item.battery_spark_cell_25.name=스파크 아케인 자동차 배터리 +item.battery_spark_cell_100.name=불꽃 비전 에너지 저장 배열 +item.battery_spark_cell_1000.name=불꽃 비전 질량 에너지 공허 +item.battery_spark_cell_2500.name=스파크 아케인 디랙 씨 +item.battery_spark_cell_10000.name=불꽃 고체 시공간 수정 +item.battery_spark_cell_power.name=Spark Ludicrous 물리학을 거부하는 에너지 저장 장치 + +item.upgrade_template.name=기계 업그레이드 템플릿 +item.upgrade_speed_1.name=속도 업그레이드 Mk.I +item.upgrade_speed_2.name=속도 업그레이드 Mk.II +item.upgrade_speed_3.name=속도 업그레이드 Mk.III +item.upgrade_effect_1.name=효율성 업그레이드 Mk.I +item.upgrade_effect_2.name=효율성 업그레이드 Mk.II +item.upgrade_effect_3.name=효율성 업그레이드 Mk.III +item.upgrade_power_1.name=절전 업그레이드 Mk.I +item.upgrade_power_2.name=절전 업그레이드 Mk.II +item.upgrade_power_3.name=절전 업그레이드 Mk.III +item.upgrade_fortune_1.name=포춘 업그레이드 Mk.I +item.upgrade_fortune_2.name=포춘 업그레이드 Mk.II +item.upgrade_fortune_3.name=포춘 업그레이드 Mk.III +item.upgrade_afterburn_1.name=애프터버너 업그레이드 Mk.I +item.upgrade_afterburn_2.name=애프터버너 업그레이드 Mk.II +item.upgrade_afterburn_3.name=애프터버너 업그레이드 Mk.III +item.upgrade_overdrive_1.name=오버드라이브 머신 업그레이드 Mk.I +item.upgrade_overdrive_2.name=오버드라이브 머신 업그레이드 Mk.II +item.upgrade_overdrive_3.name=오버드라이브 머신 업그레이드 Mk.III +item.upgrade_radius.name=이미터 반경 업그레이드 +item.upgrade_health.name=이미터 상태 업그레이드 +item.upgrade_smelter.name=제련소 업그레이드 +item.upgrade_shredder.name=슈레더 업그레이드 +item.upgrade_centrifuge.name=원심분리기 업그레이드 +item.upgrade_crystallizer.name=결정화기 업그레이드 +item.upgrade_nullifier.name=고철 파괴자 업그레이드 +item.upgrade_screm.name=비명을 지르는 과학자 업그레이드 + +item.fusion_core.name=퓨전코어 +item.energy_core.name=임시변통 에너지 코어 +item.fusion_core_infinite.name=무한 융합 코어 +item.fusion_shield_chlorophyte.name=엽록체 금속화 핵융합로 담요 +item.fusion_shield_desh.name=Desh 핵융합로 담요 +item.fusion_shield_tungsten.name=텅스텐 핵융합 반응기 담요 +item.fusion_shield_vaporwave.name=증기파 핵융합로 담요 + +item.dynosphere_base.name=빈 다이노스피어 +item.dynosphere_desh.name=데쉬 다이노스피어 +item.dynosphere_desh_charged.name=데쉬 다이노스피어(충전) +item.dynosphere_schrabidium.name=슈라비듐 다이노스피어 +item.dynosphere_schrabidium_charged.name=슈라비듐 다이노스피어(충전됨) +item.dynosphere_euphemium.name=유페미움 다이노스피어 +item.dynosphere_euphemium_charged.name=유페미움 다이노스피어(충전됨) +item.dynosphere_dineutronium.name=디뉴트로늄 다이노스피어 +item.dynosphere_dineutronium_charged.name=디뉴트로늄 다이노스피어(충전됨) + +item.plate_iron.name=철판 +item.plate_lead.name=리드 플레이트 +item.coil_copper.name=구리 코일 +item.coil_copper_torus.name=링 코일 +item.wire_tungsten.name=텅스텐 와이어 +item.coil_tungsten.name=가열 코일 +item.coin_maskman.name=마스크맨 코인 +item.coin_creeper.name=핵 크리퍼 코인 +item.coin_radiation.name=방사선 코인 +item.coin_worm.name=볼스오트론 코인 +item.tank_steel.name=강철 탱크 +item.motor.name=모터 +item.motor_desh.name=데쉬 모터 +item.centrifuge_element.name=원심분리기 요소 +item.centrifuge_tower.name=원심분리기 타워 +item.reactor_core.name=열 원자로 코어 item.rbmk_fuel_balefire.name=베일파이어 RBMK 연료봉 -item.rbmk_fuel_balefire_gold.name=Flashgold RBMK 연료봉 -item.rbmk_fuel_drx.name=§c디감마 RBMK 연료봉§r +item.rbmk_fuel_balefire_gold.name=플래시골드 RBMK 연료봉 +item.rbmk_fuel_drx.name=§cDigamma RBMK 연료봉§r item.rbmk_fuel_empty.name=빈 RBMK 연료봉 -item.rbmk_fuel_flashlead.name=Flashlead RBMK 연료봉 item.rbmk_fuel_hea241.name=HEA-241 RBMK 연료봉 item.rbmk_fuel_hea242.name=HEA-242 RBMK 연료봉 -item.rbmk_fuel_heaus.name=JESus RBMK 연료봉 +item.rbmk_fuel_heaus.name=HEAus RBMK 연료봉 item.rbmk_fuel_hen.name=HEN RBMK 연료봉 +item.rbmk_fuel_hes.name=HES RBMK 연료봉 item.rbmk_fuel_hep.name=HEP-239 RBMK 연료봉 item.rbmk_fuel_hep241.name=HEP-241 RBMK 연료봉 -item.rbmk_fuel_hes.name=HES RBMK 연료봉 item.rbmk_fuel_heu233.name=HEU-233 RBMK 연료봉 item.rbmk_fuel_heu235.name=HEU-235 RBMK 연료봉 item.rbmk_fuel_lea.name=LEA RBMK 연료봉 @@ -2287,7 +2682,7 @@ item.rbmk_fuel_leaus.name=LEAus RBMK 연료봉 item.rbmk_fuel_lep.name=LEP-239 RBMK 연료봉 item.rbmk_fuel_les.name=LES RBMK 연료봉 item.rbmk_fuel_mea.name=MEA RBMK 연료봉 -item.rbmk_fuel_men.name=MEN RBMK 연료봉 +item.rbmk_fuel_men.name=남자 RBMK 연료봉 item.rbmk_fuel_mep.name=MEP-239 RBMK 연료봉 item.rbmk_fuel_mes.name=MES RBMK 연료봉 item.rbmk_fuel_meu.name=MEU RBMK 연료봉 @@ -2297,25 +2692,20 @@ item.rbmk_fuel_pu238be.name=Pu238Be RBMK 중성자 소스 item.rbmk_fuel_ra226be.name=Ra226Be RBMK 중성자 소스 item.rbmk_fuel_thmeu.name=ThMEU RBMK 연료봉 item.rbmk_fuel_ueu.name=NU RBMK 연료봉 -item.rbmk_fuel_unobtainium.name=Unobtainium RBMK 중성자 막대 -item.rbmk_fuel_zfb_am_mix.name=연료 등급 Americium RBMK ZFB 로드 -item.rbmk_fuel_zfb_bismuth.name=비스무트 RBMK ZFB 막대 -item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB 로드 item.rbmk_lid.name=RBMK 커버 패널 item.rbmk_lid_glass.name=RBMK 유리 커버 패널 item.rbmk_pellet_balefire.name=베일파이어 연료 펠릿 -item.rbmk_pellet_balefire_gold.name=Flashgold 연료 펠릿 -item.rbmk_pellet_drx.name=§c디감마 연료 펠릿§r -item.rbmk_pellet_flashlead.name=Flashlead 연료 펠릿 -item.rbmk_pellet_hea241.name=HEA-241 연료 펠렛 +item.rbmk_pellet_balefire_gold.name=플래시골드 연료 펠릿 +item.rbmk_pellet_drx.name=§cDigamma 연료 펠릿§r +item.rbmk_pellet_hea241.name=HEA-241 연료 펠릿 item.rbmk_pellet_hea242.name=HEA-242 연료 펠릿 item.rbmk_pellet_heaus.name=HEAus 연료 펠릿 item.rbmk_pellet_hen.name=HEN 연료 펠릿 -item.rbmk_pellet_hep239.name=HEP-239 연료 펠렛 +item.rbmk_pellet_hep239.name=HEP-239 연료 펠릿 item.rbmk_pellet_hep241.name=HEP-241 연료 펠릿 -item.rbmk_pellet_hes.name=HES 연료 펠릿 item.rbmk_pellet_heu233.name=HEU-233 연료 펠릿 -item.rbmk_pellet_heu235.name=HEU-235 연료 펠렛 +item.rbmk_pellet_heu235.name=HEU-235 연료 펠릿 +item.rbmk_pellet_hes.name=HES 연료 펠릿 item.rbmk_pellet_lea.name=LEA 연료 펠릿 item.rbmk_pellet_leaus.name=LEAus 연료 펠릿 item.rbmk_pellet_lep.name=LEP 연료 펠릿 @@ -2326,1424 +2716,2099 @@ item.rbmk_pellet_mep.name=MEP 연료 펠릿 item.rbmk_pellet_mes.name=MES 연료 펠릿 item.rbmk_pellet_meu.name=MEU 연료 펠릿 item.rbmk_pellet_mox.name=MOX 연료 펠릿 -item.rbmk_pellet_po210be.name=Po210Be 중성자 소스 펠렛 +item.rbmk_pellet_po210be.name=Po210Be 중성자 소스 펠릿 item.rbmk_pellet_pu238be.name=Pu238Be 중성자 소스 펠릿 item.rbmk_pellet_ra226be.name=Ra226Be 중성자 소스 펠릿 -item.rbmk_pellet_thmeu.name=ThMEU 연료 펠렛 +item.rbmk_pellet_thmeu.name=ThMEU 연료 펠릿 item.rbmk_pellet_ueu.name=NU 연료 펠릿 -item.rbmk_pellet_unobtainium.name=언옵티늄 중성자 막대 -item.rbmk_pellet_zfb_am_mix.name=연료 등급 아메리슘 ZFB 펠릿 -item.rbmk_pellet_zfb_bismuth.name=비스무트 ZFB 펠릿 -item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB 펠릿 -item.rbmk_tool.desc=위치를 저장하려면 RBMK를 Sneak하고 우클릭하고 콘솔을 우클릭하면 연결됩니다! -item.rbmk_tool.linked=포지션 설정! item.rbmk_tool.name=RBMK 콘솔 연결 장치 -item.rbmk_tool.set=RBMK 연결! -item.reacher.name=텅스텐 리처 -item.reactor_core.name=번식 원자로 코어 -item.reactor_sensor.name=반응기 원격 센서 -item.record.glass.desc=? ? ? -item.record.lc.desc=밸브 - 디아볼릭 아드레날린 기타/람다 코어 -item.record.ss.desc=밸브 - 섹터 스윕 -item.record.vc.desc=밸브 - 보탈 컴뱃 -item.redcoil_capacitor.name=레드코일 커패시터 -item.redstone_depleted.name=채도가 낮은 레드스톤 가루 -item.redstone_sword.name=레드스톤 소드 -item.reer_graar.name=더 리어 그라아르 -item.remote.name=고장난 리모컨 -item.ring_pull.name=링 풀 -item.ring_starmetal.name=§9성금속 반지§r -item.rocket_fuel.name=고체 연료(로켓 추진제) -item.rod_ac227.name=악티늄-227 로드 -item.rod_australium.name=오스트랄륨 로드 +item.rbmk_tool.desc=위치를 저장하려면 몰래 RBMK를 마우스 오른쪽 버튼으로 클릭하고, 링크하려면 $sneak에서 콘솔/크레인을 마우스 오른쪽 버튼으로 클릭하세요! +item.rbmk_tool.linked=포지션 설정! +item.rbmk_tool.set=RBMK가 연결되었습니다! +item.reacher.name=텅스텐 도달기 +item.rtg_unit.name=RTG 유닛 +item.hazmat_cloth.name=방호천 +item.hazmat_cloth_red.name=고급 위험물질 천 +item.hazmat_cloth_grey.name=납 강화 방호 천 +item.asbestos_cloth.name=화재 근접 천 +item.filter_coal.name=활성탄 필터 +item.tritium_deuterium_cake.name=삼중수소-중수소-케이크 +item.telepad.name=텔레패드 +item.entanglement_kit.name=얽힘 키트 +item.toothpicks.name=이쑤시개 +item.ducttape.name=덕트 테이프 +item.magnet_dee.name=디 자석 +item.magnet_circular.name=편평한 자석 +item.cyclotron_tower.name=사이클로트론 타워 +item.debris_fuel.name=RBMK 연료 청크 +item.debris_graphite.name=뜨거운 흑연 덩어리 +item.debris_metal.name=깨진 금속 막대 +item.plate_dalekanium.name=앵그리메탈 +item.biomass.name=바이오매스 +item.biomass_compressed.name=압축 바이오매스 +item.component_limiter.name=안정제 성분 +item.component_emitter.name=이미터 구성요소 +item.catalyst_clay.name=점토촉매 + +item.cell_empty.name=빈 셀 +item.cell_uf6.name=육불화우라늄 셀 +item.cell_puf6.name=플루토늄 육불화 셀 +item.cell_antimatter.name=반물질 세포 +item.cell_deuterium.name=중수소 세포 +item.cell_tritium.name=삼중수소 셀 +item.cell_sas3.name=슈라비듐 삼황화물 세포 +item.cell_anti_schrabidium.name=안티스크라비듐 세포 + +item.capsule_empty.name=빈 캡슐 +item.capsule_xen.name=젠 캡슐 + +item.capsule_sing_tiny.name=작은 특이점 캡슐 +item.capsule_sing_counter_tiny.name=작은 격리된 반공진 특이점 캡슐 +item.capsule_sing_super_tiny.name=작은 과열 공명 특이점 캡슐 +item.capsule_sing_spark_tiny.name=작은 퀘이사 캡슐 +item.capsule_hole_tiny.name=작은 블랙홀 캡슐 + +item.singularity.name=특이점 캡슐 +item.singularity_counter_resonant.name=격리된 역공진 특이점 캡슐 +item.singularity_super_heated.name=과열된 공명 특이점 캡슐 +item.singularity_spark.name=퀘이사 캡슐 +item.black_hole.name=블랙홀 캡슐 + +item.blade_meteorite.name=운석 칼날 +item.crystal_xen.name=인공 젠 크리스탈 +item.pellet_antimatter.name=반물질 클러스터 + +item.inf_water.name=무한물탱크 +item.inf_deuterium.name=무한 중수소 탱크 +item.inf_tritium.name=무한 삼중수소 탱크 +item.inf_coolant.name=무한 냉각수 탱크 +item.inf_sulfur.name=무한 유황 탱크 +item.inf_diesel.name=무한 디젤 탱크 +item.inf_antimatter.name=무한 반물질 탱크 +item.inf_antischrabidium.name=무한 안티스크라비디움 탱크 + +item.oil_canola.name=생 카놀라유 + +item.pellet_coal.name=조밀한 석탄 클러스터 + +item.canister_superfuel.name=NITAN© 100 옥탄 슈퍼 연료 용기 +item.canister_biofuel.name=바이오 연료 용기 +item.canister_bitumen.name=역청 용기 +item.canister_canola.name=엔진 윤활유 +item.canister_empty.name=빈 용기 +item.canister_fuel.name=디젤 캐니스터 +item.canister_gasoline.name=유연 가솔린 용기 +item.canister_gasoline.desc=리드는 친구입니다$친구를 당신의 혈류에 넣습니다$*자지 총* 지금 하세요. +item.canister_heatingoil.name=난방유 용기 +item.canister_heavyoil.name=중유 용기 +item.canister_kerosene.name=등유 용기 +item.canister_lightoil.name=경유 용기 +item.canister_napalm.name=네이팜 B +item.canister_naphtha.name=나프타 용기 +item.canister_oil.name=원유 용기 +item.canister_petroil.name=석유 용기 +item.canister_reoil.name=재생산업유 용기 +item.canister_smear.name=산업용 오일통 +item.gas_empty.name=빈 가스 탱크 +item.gas_full.name=천연가스 탱크 +item.gas_petroleum.name=석유 가스 탱크 +item.gas_biogas.name=바이오가스 탱크 +item.gas_tritium.name=삼중수소 가스 탱크 +item.gas_deuterium.name=중수소 가스 탱크 +item.gas_hydrogen.name=수소가스 탱크 +item.gas_oxygen.name=산소가스 탱크 +item.fluid_tank_empty.name=빈 범용 유체 탱크 +item.fluid_tank_full.name=범용 유체 탱크: +item.fluid_barrel_empty.name=빈 유체 배럴 +item.fluid_barrel_full.name=유체 배럴: +item.fluid_barrel_infinite.name=무한 유체 배럴 + +item.rod_empty.name=빈 막대 +item.rod_th232.name=토륨-232 막대 +item.rod_uranium.name=우라늄 막대 +item.rod_u233.name=우라늄-233 막대 +item.rod_u235.name=우라늄-235 막대 +item.rod_u238.name=우라늄-238 막대 +item.rod_plutonium.name=플루토늄 막대 +item.rod_pu238.name=플루토늄-238 막대 +item.rod_pu239.name=플루토늄-239 막대 +item.rod_pu240.name=플루토늄-240 막대 +item.rod_neptunium.name=넵투늄-237 막대 +item.rod_of_discord.name=불화의 지팡이 +item.rod_lead.name=리드 막대 +item.rod_schrabidium.name=슈라비듐-326 막대 +item.rod_solinium.name=솔리늄-327 막대 +item.rod_euphemium.name=유페미움 막대 +item.rod_australium.name=오스트레일륨 막대 +item.rod_weidanium.name=웨이다늄 막대 +item.rod_reiium.name=레이움 막대 +item.rod_unobtainium.name=언옵테이늄 막대 +item.rod_daffergon.name=대퍼곤 막대 +item.rod_verticium.name=버티시움 막대 item.rod_balefire.name=베일파이어 막대 -item.rod_balefire_blazing.name=블레이징 베일파이어 로드 -item.rod_co60.name=코발트-60 로드 -item.rod_cobalt.name=코발트 막대 -item.rod_coolant.name=냉각수 셀 -item.rod_daffergon.name=대퍼곤 로드 -item.rod_dual_ac227.name=악티늄-227 듀얼로드 -item.rod_dual_balefire.name=베일파이어 듀얼로드 -item.rod_dual_balefire_blazing.name=블레이징 베일파이어 듀얼 로드 -item.rod_dual_co60.name=코발트-60 듀얼 로드 -item.rod_dual_cobalt.name=코발트 듀얼로드 -item.rod_dual_coolant.name=이중 냉각수 셀 +item.rod_balefire_blazing.name=타오르는 베일파이어 막대 +item.rod_dual_balefire.name=베일파이어 이중 막대 +item.rod_dual_balefire_blazing.name=블레이징 베일파이어 이중 막대 +item.rod_quad_balefire.name=베일파이어 사중 막대 +item.rod_quad_balefire_blazing.name=블레이징 베일파이어 사중 막대 + item.rod_dual_empty.name=빈 이중 막대 -item.rod_dual_lead.name=리드 듀얼로드 -item.rod_dual_lithium.name=듀얼 리튬 막대 -item.rod_dual_mox_fuel.name=MOX 이중 연료봉 -item.rod_dual_mox_fuel_depleted.name=고갈된 MOX 이중 연료봉 -item.rod_dual_neptunium.name=넵투늄-237 듀얼 로드 -item.rod_dual_plutonium.name=플루토늄 듀얼로드 -item.rod_dual_plutonium_fuel.name=플루토늄 이중 연료봉 -item.rod_dual_plutonium_fuel_depleted.name=고갈된 플루토늄 이중 연료봉 -item.rod_dual_polonium.name=폴로늄-210 듀얼 로드 -item.rod_dual_pu238.name=플루토늄-238 듀얼로드 -item.rod_dual_pu239.name=플루토늄-239 듀얼로드 -item.rod_dual_pu240.name=플루토늄-240 듀얼 로드 -item.rod_dual_ra226.name=라듐-226 듀얼 로드 -item.rod_dual_rgp.name=원자로 등급 플루토늄 이중 로드 -item.rod_dual_schrabidium.name=Schrabidium-326 듀얼로드 -item.rod_dual_schrabidium_fuel.name=Schrabidium 이중 연료봉 -item.rod_dual_schrabidium_fuel_depleted.name=고갈된 Schrabidium 이중 연료봉 -item.rod_dual_solinium.name=솔리늄-327 듀얼 로드 -item.rod_dual_th232.name=토륨-232 듀얼 로드 -item.rod_dual_thorium_fuel.name=토륨 이중 연료봉 -item.rod_dual_thorium_fuel_depleted.name=고갈된 토륨 이중 연료봉 -item.rod_dual_tritium.name=이중 삼중수소 셀 -item.rod_dual_u233.name=우라늄-233 듀얼로드 -item.rod_dual_u235.name=우라늄-235 듀얼로드 +item.rod_dual_th232.name=토륨-232 이중 막대 +item.rod_dual_uranium.name=우라늄 이중 막대 +item.rod_dual_u233.name=우라늄-233 이중 막대 +item.rod_dual_u235.name=우라늄-235 이중 막대 item.rod_dual_u238.name=우라늄-238 이중 막대 -item.rod_dual_uranium.name=우라늄 듀얼로드 +item.rod_dual_plutonium.name=플루토늄 이중 막대 +item.rod_dual_pu238.name=플루토늄-238 이중 막대 +item.rod_dual_pu239.name=플루토늄-239 이중 막대 +item.rod_dual_pu240.name=플루토늄-240 이중 막대 +item.rod_dual_neptunium.name=넵투늄-237 이중 막대 +item.rod_dual_lead.name=리드 이중 막대 +item.rod_dual_schrabidium.name=슈라비듐-326 이중 막대 +item.rod_dual_solinium.name=솔리늄-327 이중 막대 + +item.rod_quad_empty.name=빈 사중 막대 +item.rod_quad_th232.name=토륨-232 사중 막대 +item.rod_quad_uranium.name=우라늄 사중 막대 +item.rod_quad_u233.name=우라늄-233 사중 막대 +item.rod_quad_u235.name=우라늄-235 사중 막대 +item.rod_quad_u238.name=우라늄-238 사중 막대 +item.rod_quad_plutonium.name=플루토늄 사중 막대 +item.rod_quad_pu238.name=플루토늄-238 사중 막대 +item.rod_quad_pu239.name=플루토늄-239 사중 막대 +item.rod_quad_pu240.name=플루토늄-240 사중 막대 +item.rod_quad_neptunium.name=넵투늄-237 사중 막대 +item.rod_quad_lead.name=리드 사중 막대 +item.rod_quad_schrabidium.name=슈라비듐-326 사중 막대 +item.rod_quad_solinium.name=솔리늄-327 사중 막대 + +item.rod_uranium_fuel_depleted.name=열화우라늄 연료봉 +item.rod_dual_uranium_fuel_depleted.name=열화우라늄 이중 연료봉 +item.rod_quad_uranium_fuel_depleted.name=열화우라늄 사중 연료봉 +item.rod_thorium_fuel_depleted.name=고갈된 토륨 연료봉 +item.rod_dual_thorium_fuel_depleted.name=고갈된 토륨 이중 연료봉 +item.rod_quad_thorium_fuel_depleted.name=고갈된 토륨 사중 연료봉 +item.rod_plutonium_fuel_depleted.name=고갈된 플루토늄 연료봉 +item.rod_dual_plutonium_fuel_depleted.name=고갈된 플루토늄 이중 연료봉 +item.rod_quad_plutonium_fuel_depleted.name=고갈된 플루토늄 사중 연료봉 +item.rod_mox_fuel_depleted.name=고갈된 MOX 연료봉 +item.rod_dual_mox_fuel_depleted.name=고갈된 MOX 이중 연료봉 +item.rod_quad_mox_fuel_depleted.name=고갈된 MOX 사중 연료봉 +item.rod_schrabidium_fuel_depleted.name=고갈된 슈라비듐 연료봉 +item.rod_dual_schrabidium_fuel_depleted.name=고갈된 슈라비듐 이중 연료봉 +item.rod_quad_schrabidium_fuel_depleted.name=고갈된 슈라비듐 사중 연료봉 + +item.rod_waste.name=핵폐기물 막대 +item.rod_dual_waste.name=핵폐기물 이중 막대 +item.rod_quad_waste.name=핵폐기물 사중 막대 + +item.gun_rpg.name=칼 구스타프 무반동총 +item.gun_karl.name=칼 +item.gun_panzerschreck.name=판저슈렉 +item.gun_rpg_ammo.name=로켓(레거시) +item.gun_stinger.name=FIM-92 스팅어 +item.gun_skystinger.name=원 스카이 스팅어 +item.gun_stinger_ammo.name=스팅어 로켓 +item.gun_hk69.name=수류탄 권총 +item.gun_quadro.name=콰트로 포르마지 +item.gun_supershotgun.name=슈퍼 샷건 +item.gun_brimstone.name=유황 레이저총 +item.gun_dash_ammo.name=유황 탄약 + +item.flame_pony.name=만화 조랑말 그림 +item.flame_conspiracy.name=음모론 +item.flame_politics.name=정치적 주제 +item.flame_opinion.name=자신의 의견 + +item.pellet_cluster.name=폭발성 펠릿 +item.pellet_buckshot.name=납 펠릿 +item.pellet_flechette.name=플레셰트 +item.powder_fire.name=붉은 인 +item.powder_ice.name=크라이오 파우더 +item.powder_poison.name=독 가루 +item.pellet_gas.name=독가스 카트리지 +item.magnetron.name=마그네트론 +item.powder_thermite.name=테르밋 + +item.nuke_starter_kit.name=원자 과학 스타터 키트 +item.nuke_commercially_kit.name=상업용 원자 과학 키트 +item.nuke_advanced_kit.name=원자 과학 고급 키트 +item.gadget_kit.name=가젯 키트 +item.boy_kit.name=리틀 보이 키트 +item.man_kit.name=팻맨 키트 +item.mike_kit.name=아이비 마이크 키트 +item.tsar_kit.name=차르 봄바 키트 +item.fleija_kit.name=FLEIJA 키트 +item.multi_kit.name=다목적 폭탄 키트 +item.custom_kit.name=맞춤형 핵 키트 +item.grenade_kit.name=수류탄 키트 +item.nuke_electric_kit.name=전자 엔지니어 키트 +item.prototype_kit.name=프로토타입 키트 +item.missile_kit.name=미사일 키트 +item.t45_kit.name=T45 파워 아머 키트 +item.euphemium_kit.name=유페미움 키트 +item.solinium_kit.name=솔리늄 키트 +item.hazmat_kit.name=위험물질 키트 +item.hazmat_red_kit.name=고급 위험물질 키트 +item.hazmat_grey_kit.name=고성능 위험물질 키트 + +tile.waste_earth.name=죽은 풀 +tile.waste_trinitite.name=삼위일체 광석 +tile.waste_trinitite_red.name=붉은 삼위일체 광석 +tile.waste_log.name=까맣게 탄 통나무 +tile.waste_planks.name=까맣게 탄 나무 판자 + +item.trinitite.name=삼위일체 +item.nuclear_waste.name=핵폐기물 +item.nuclear_waste_tiny.name=작은 핵폐기물 더미 +item.nugget.name=치킨 조각 +item.peas.name=완두콩 +item.waste_uranium.name=고갈우라늄 연료 +item.waste_thorium.name=고갈된 토륨 연료 +item.waste_plutonium.name=고갈된 플루토늄 연료 +item.waste_mox.name=고갈된 MOX 연료 +item.waste_schrabidium.name=고갈된 슈라비듐 연료 +item.waste_uranium_hot.name=열화우라늄 연료(뜨거운) +item.waste_thorium_hot.name=고갈토륨 연료(뜨거운) +item.waste_plutonium_hot.name=고갈플루토늄 연료(핫) +item.waste_mox_hot.name=고갈된 MOX 연료(뜨거운) +item.waste_schrabidium_hot.name=고갈된 슈라비듐 연료(핫) +item.scrap.name=권투 시합 +item.nugget_mercury.name=작은 수은 방울 +item.bottle_mercury.name=수은 병 + +item.ingot_uranium_fuel.name=우라늄 연료 주괴 +item.ingot_thorium_fuel.name=토륨 연료 주괴 +item.ingot_plutonium_fuel.name=플루토늄 연료 주괴 +item.ingot_mox_fuel.name=MOX 연료 주괴 +item.ingot_schrabidium_fuel.name=슈라비듐 연료 주괴 + +item.nugget_uranium_fuel.name=우라늄 연료 덩어리 +item.nugget_thorium_fuel.name=토륨 연료 덩어리 +item.nugget_plutonium_fuel.name=플루토늄 연료 덩어리 +item.nugget_mox_fuel.name=MOX 연료 덩어리 +item.nugget_schrabidium_fuel.name=슈라비듐 연료 덩어리 + +item.grenade_generic.name=수류탄 +item.grenade_strong.name=강화 수류탄 +item.grenade_frag.name=세열 수류탄 +item.grenade_fire.name=화염 파편 수류탄 +item.grenade_shrapnel.name=파편 수류탄 +item.grenade_cluster.name=클러스터 폭탄 +item.grenade_flare.name=신호탄 +item.grenade_electric.name=번개폭탄 +item.grenade_poison.name=독 수류탄 +item.grenade_gas.name=가스 수류탄 +item.grenade_pulse.name=충격 수류탄 +item.grenade_plasma.name=플라즈마 수류탄 +item.grenade_tau.name=타우 수류탄 +item.grenade_schrabidium.name=슈라비듐 수류탄 +item.grenade_lemon.name=가연성 레몬 +item.grenade_gascan.name=던질 수 있는 가스 캔 +item.grenade_mk2.name=Mk 2 수류탄 "앰배서더 파인애플" +item.grenade_aschrab.name=던질 수 있는 안티스크라비디움 셀 +item.grenade_nuke.name=마크 VI 드릴 수류탄 +item.grenade_nuclear.name=누카 수류탄 +item.grenade_zomg.name=부정적인 에너지 쌍 섬멸 수류탄 +item.grenade_black_hole.name=블랙홀 수류탄 +item.grenade_cloud.name=구름의 항아리 +item.grenade_pink_cloud.name=핑크구름 항아리 +item.ullapool_caber.name=울라풀 카베르 +item.grenade_smart.name=스마트 수류탄 +item.grenade_mirv.name=MIRV 수류탄 +item.grenade_breach.name=위반 수류탄 +item.grenade_burst.name=파는 수류탄 + +item.grenade_if_generic.name=IF - 수류탄 +item.grenade_if_he.name=IF - HE 수류탄 +item.grenade_if_bouncy.name=IF - 탄력 있는 수류탄 +item.grenade_if_sticky.name=IF - 점착 수류탄 +item.grenade_if_impact.name=IF - 충격 수류탄 +item.grenade_if_incendiary.name=IF - 소이 수류탄 +item.grenade_if_toxic.name=IF - 독성 수류탄 +item.grenade_if_concussion.name=IF - 뇌진탕 수류탄 +item.grenade_if_brimstone.name=IF - 던질 수 있는 유황 광산 +item.grenade_if_mystery.name=IF - M.-수류탄 +item.grenade_if_spark.name=IF - S.-수류탄 +item.grenade_if_hopwire.name=IF - 소용돌이 홉와이어 +item.grenade_if_null.name=IF - 무효 수류탄 + +item.rod_uranium_fuel.name=우라늄 연료봉 item.rod_dual_uranium_fuel.name=우라늄 이중 연료봉 -item.rod_dual_uranium_fuel_depleted.name=열화 우라늄 이중 연료봉 -item.rod_dual_waste.name=핵폐기물 듀얼로드 -item.rod_dual_water.name=듀얼 워터 셀 -item.rod_empty.name=빈 로드 -item.rod_euphemium.name=유페미엄 로드 -item.rod_lead.name=리드로드 -item.rod_lithium.name=리튬 막대 -item.rod_mox_fuel.name=MOX 연료봉 -item.rod_mox_fuel_depleted.name=고갈된 MOX 연료봉 -item.rod_neptunium.name=넵투늄-237 막대 -item.rod_of_discord.name=불화의 막대 -item.rod_plutonium.name=플루토늄 로드 -item.rod_plutonium_fuel.name=플루토늄 연료봉 -item.rod_plutonium_fuel_depleted.name=고갈된 플루토늄 연료봉 -item.rod_polonium.name=폴로늄-210 막대 -item.rod_pu238.name=플루토늄-238 로드 -item.rod_pu239.name=플루토늄-239 로드 -item.rod_pu240.name=플루토늄-240 로드 -item.rod_quad_ac227.name=악티늄-227 쿼드 로드 -item.rod_quad_balefire.name=베일파이어 쿼드 로드 -item.rod_quad_balefire_blazing.name=블레이징 베일파이어 쿼드로드 -item.rod_quad_co60.name=코발트-60 쿼드 로드 -item.rod_quad_cobalt.name=코발트 쿼드로드 -item.rod_quad_coolant.name=쿼드 냉각수 셀 -item.rod_quad_empty.name=빈 쿼드 로드 -item.rod_quad_euphemium.name=타버린 쿼드 슈라비디움 로드 -item.rod_quad_lead.name=리드 쿼드 로드 -item.rod_quad_lithium.name=쿼드 리튬 막대 -item.rod_quad_mox_fuel.name=MOX 쿼드 연료봉 -item.rod_quad_mox_fuel_depleted.name=고갈된 MOX 쿼드 연료봉 -item.rod_quad_neptunium.name=넵투늄-237 쿼드 로드 -item.rod_quad_plutonium.name=플루토늄 쿼드 로드 -item.rod_quad_plutonium_fuel.name=플루토늄 쿼드 연료봉 -item.rod_quad_plutonium_fuel_depleted.name=고갈된 플루토늄 쿼드 연료봉 -item.rod_quad_polonium.name=폴로늄-210 쿼드 로드 -item.rod_quad_pu238.name=플루토늄-238 쿼드 로드 -item.rod_quad_pu239.name=플루토늄-239 쿼드 로드 -item.rod_quad_pu240.name=플루토늄-240 쿼드 로드 -item.rod_quad_ra226.name=라듐-226 쿼드 로드 -item.rod_quad_rgp.name=원자로급 플루토늄 쿼드로드 -item.rod_quad_schrabidium.name=Schrabidium-326 쿼드 로드 -item.rod_quad_schrabidium_fuel.name=슈라비디움 쿼드 연료봉 -item.rod_quad_schrabidium_fuel_depleted.name=고갈된 Schrabidium 쿼드 연료봉 -item.rod_quad_solinium.name=솔리늄-327 쿼드 로드 -item.rod_quad_th232.name=토륨-232 쿼드 로드 -item.rod_quad_thorium_fuel.name=토륨 쿼드 연료봉 -item.rod_quad_thorium_fuel_depleted.name=고갈된 토륨 쿼드 연료봉 -item.rod_quad_tritium.name=쿼드 트리튬 셀 -item.rod_quad_u233.name=우라늄-233 쿼드로드 -item.rod_quad_u235.name=우라늄-235 쿼드로드 -item.rod_quad_u238.name=우라늄-238 쿼드로드 -item.rod_quad_uranium.name=우라늄 쿼드로드 -item.rod_quad_uranium_fuel.name=우라늄 쿼드 연료봉 -item.rod_quad_uranium_fuel_depleted.name=열화 우라늄 쿼드 연료봉 -item.rod_quad_waste.name=핵폐기물 쿼드로드 -item.rod_quad_water.name=쿼드 워터셀 -item.rod_ra226.name=라듐-226 로드 -item.rod_reiium.name=레이움 로드 -item.rod_rgp.name=원자로급 플루토늄 로드 -item.rod_schrabidium.name=슈라비디움-326 로드 -item.rod_schrabidium_fuel.name=슈라비디움 연료봉 -item.rod_schrabidium_fuel_depleted.name=고갈된 슈라비디움 연료봉 -item.rod_solinium.name=솔리늄-327 로드 -item.rod_th232.name=토륨-232 로드 +item.rod_quad_uranium_fuel.name=우라늄 사중 연료봉 item.rod_thorium_fuel.name=토륨 연료봉 -item.rod_thorium_fuel_depleted.name=고갈된 토륨 연료봉 +item.rod_dual_thorium_fuel.name=토륨 이중 연료봉 +item.rod_quad_thorium_fuel.name=토륨 사중 연료봉 +item.rod_plutonium_fuel.name=플루토늄 연료봉 +item.rod_dual_plutonium_fuel.name=플루토늄 이중 연료봉 +item.rod_quad_plutonium_fuel.name=플루토늄 사중 연료봉 +item.rod_mox_fuel.name=MOX 연료봉 +item.rod_dual_mox_fuel.name=MOX 이중 연료봉 +item.rod_quad_mox_fuel.name=MOX 사중 연료봉 +item.rod_schrabidium_fuel.name=슈라비듐 연료봉 +item.rod_dual_schrabidium_fuel.name=슈라비듐 이중 연료봉 +item.rod_quad_schrabidium_fuel.name=슈라비듐 사중 연료봉 + +item.rod_water.name=워터셀 +item.rod_dual_water.name=이중 워터 셀 +item.rod_quad_water.name=사중 워터 셀 + +item.rod_coolant.name=냉각수 셀 +item.rod_dual_coolant.name=이중 절삭유 셀 +item.rod_quad_coolant.name=사중 절삭유 셀 + +item.rod_lithium.name=리튬로드 +item.rod_dual_lithium.name=이중 리튬 막대 +item.rod_quad_lithium.name=사중 리튬 막대 + item.rod_tritium.name=삼중수소 셀 -item.rod_u233.name=우라늄-233 로드 -item.rod_u235.name=우라늄-235 로드 -item.rod_u238.name=우라늄-238 로드 -item.rod_unobtainium.name=언옵티늄 막대 -item.rod_uranium.name=우라늄 막대 -item.rod_uranium_fuel.name=우라늄 연료봉 -item.rod_uranium_fuel_depleted.name=열화 우라늄 연료봉 -item.rod_verticium.name=버티시움 로드 -item.rod_waste.name=핵폐기물 막대 -item.rod_water.name=워터 셀 -item.rod_weidanium.name=와이다늄 로드 +item.rod_dual_tritium.name=이중 삼중수소 셀 +item.rod_quad_tritium.name=사중 트리튬 셀 + +item.levitation_unit.name=중력 조작기 +item.thermo_unit_empty.name=열 분배 장치 +item.thermo_unit_endo.name=냉기분배장치 +item.thermo_unit_exo.name=열 분배 장치 + +item.bomb_waffle.name=대량살상 와플 +item.schnitzel_vegan.name=비건 슈니첼 +item.apple_lead.name=리드 애플 +item.apple_lead1.name=리드 애플 +item.apple_lead2.name=리드 애플 +item.apple_schrabidium.name=슈라비듐 사과 +item.apple_schrabidium1.name=슈라비듐 사과 +item.apple_schrabidium2.name=슈라비듐 사과 +item.cotton_candy.name=방사성 솜사탕 +item.tem_flakes.name=템 플레이크 +item.tem_flakes1.name=템 플레이크 +item.tem_flakes2.name=템 플레이크 +item.glowing_stew.name=빛나는 버섯 스튜 +item.balefire_scrambled.name=스크램블 베일파이어 계란 +item.balefire_and_ham.name=햄과 베일파이어 계란 +item.lemon.name="레몬" +item.definitelyfood.name=TotallyNotDirt 브랜드 MRE +item.loops.name=뢰프스 +item.loop_stew.name=IT 아침 식사 +item.fooditem.name=식품 품목 +item.twinkie.name=트윙키 +item.static_sandwich.name=TV 정적으로 장식된 샌드위치 +item.pancake.name=고철, 못, 보석 가루로 만든 팬케이크 +item.spongebob_macaroni.name=스폰지밥 마카로니 + +tile.frozen_grass.name=얼어붙은 풀 +tile.frozen_dirt.name=얼어붙은 흙 +tile.frozen_log.name=냉동 로그 +tile.frozen_planks.name=얼어붙은 판자 + +tile.block_cap_fritz.name=프리츠 콜라 병뚜껑 블록 +tile.block_cap_korl.name=Korl 병뚜껑 블록 +tile.block_cap_nuka.name=누카 콜라 병뚜껑 블록 +tile.block_cap_quantum.name=누카콜라 퀀텀병 뚜껑 블록 +tile.block_cap_rad.name=S~Cola RAD 병뚜껑 블록 +tile.block_cap_sparkle.name=S~콜라 병뚜껑 블록 +tile.block_cap_star.name=블록 오브 선셋 사르사파릴라 스타 캡 +tile.block_cap_sunset.name=블록 오브 선셋 사르사파릴라 병뚜껑 + +tile.machine_microwave.name=마이크로파 + +tile.tape_recorder.name=테이프 레코더 +tile.steel_poles.name=강철 기둥 +tile.pole_top.name=안테나 탑 +tile.pole_satellite_receiver.name=위성 접시 +tile.steel_wall.name=강철 벽 +tile.steel_corner.name=강철 벽 코너 +tile.steel_roof.name=편평한 강철 지붕 +tile.steel_beam.name=철제 빔 +tile.steel_scaffold.name=강철 비계 + +item.gun_revolver_iron.name=단순 리볼버 +item.gun_revolver.name=강화된 리볼버 +item.gun_revolver_saturnite.name=새터나이트 슈터 +item.gun_revolver_gold.name=골든 리볼버 +item.gun_revolver_lead.name=누카 리볼버 +item.gun_revolver_schrabidium.name=슈라비듐 리볼버 +item.gun_revolver_cursed.name=저주받은 리볼버 +item.gun_revolver_nightmare.name=나이트메어 리볼버(오리지널) +item.gun_revolver_nightmare2.name=나이트메어 리볼버(어둠) +item.gun_revolver_pip.name=작은 핍스퀴크 +item.gun_revolver_nopip.name=노박 +item.gun_revolver_blackjack.name=블랙잭 5슈터 +item.gun_revolver_silver.name=빌려준 총 +item.gun_revolver_red.name=레드 키 리볼버 +item.gun_deagle.name=빅 아이언 +item.gun_darter.name=다트건 +item.gun_calamity.name=재난 +item.gun_calamity_dual.name=안장총 +item.gun_minigun.name=CZ53 개인용 미니건 +item.gun_avenger.name=CZ57 어벤저 미니건 +item.gun_lacunae.name=CZ33 아바돈 +item.gun_fatman.name=M42 핵 투석기 "팻맨" +item.gun_proto.name=M42 핵 투석기 "프로토 MIRV" +item.gun_mirv.name=M42 핵 투석기 "실험용 MIRV" +item.gun_bf.name=벨 +item.gun_mp40.name=기관단총 +item.gun_flechette.name=플레셰트 소총 +item.gun_uzi.name=IMI 우지 +item.gun_uzi_silencer.name=소음기를 장착한 IMI Uzi +item.gun_uzi_saturnite.name=토성 우지 +item.gun_uzi_saturnite_silencer.name=소음기가 장착된 토성 우지 +item.gun_uboinik.name=우보이니크 +item.gun_ks23.name=사무엘 더 빅 샷건 +item.gun_jshotgun.name=신비로운 산탄총 +item.gun_lever_action.name=암말의 다리 (원본) +item.gun_bolt_action.name=드림 볼트액션 라이플(오리지널) +item.gun_lever_action_dark.name=암말의 다리(어둠) +item.gun_bolt_action_green.name=드림 볼트액션 라이플(녹색) +item.gun_bolt_action_saturnite.name=토성 소총 +item.gun_bolter.name=체 +item.gun_lever_action_sonata.name=뒤집힌 암말의 다리 +item.gun_lever_action_sonata_2.name=§c소나타의 마이크§r +item.gun_b92.name=§9B92 에너지 피스톨§r +item.gun_b93.name=§cB93 에너지 모드§r +item.gun_xvl1456.name=XVL1456 타우 캐논 프로토타입 +item.gun_osipr.name=오버워치 표준형 펄스 소총 +item.gun_immolator.name=제물 +item.gun_flamer.name=미스터 토파즈 +item.gun_cryolator.name=크라이오레이터 +item.gun_mp.name=평화주의자의 기관총 +item.gun_zomg.name=ZOMG 캐논 +item.gun_emp.name=EMP 건 +item.gun_super_shotgun.name=슈퍼 샷건 +item.gun_thompson.name=톰슨 기관단총 +item.gun_sauer.name=스탠 사우어의 산탄총 +item.gun_moist_nugget.name=모신나강 +item.gun_revolver_inverted.name=뒤집힌 리볼버 +item.gun_jack.name=착암기 +item.gun_spark.name=점화 플러그 +item.gun_hp.name=HPP 레이저젯 +item.gun_euthanasia.name=안락사 +item.gun_defabricator.name=패브리케이터 +item.gun_dampfmaschine.name=전혀 농담이 아닌 무기 +item.gun_folly.name=프로토타입 디감마 "폴리" +item.gun_vortex.name=와동 +item.cc_plasma_gun.name=[WIP] CC 플라즈마 건 +item.gun_egon.name=글루온건 + +item.nossy_hat.name=멋진 모자 +item.beta.name=베타 기능 +item.canteen_fab.name=멋진 보드카 +tile.muffler.name=머플러 + +item.gun_revolver_iron_ammo.name=총알 +item.gun_revolver_ammo.name=납탄 +item.gun_revolver_gold_ammo.name=황금 총알 +item.gun_revolver_lead_ammo.name=유리로 덮인 핵탄 +item.gun_revolver_schrabidium_ammo.name=슈라비듐 총알 +item.gun_revolver_cursed_ammo.name=강철탄 +item.gun_revolver_nightmare_ammo.name=악몽의 총알 +item.gun_revolver_nightmare2_ammo.name=레이저 벅샷 +item.gun_revolver_pip_ammo.name=오염된 총알(레거시) +item.gun_revolver_nopip_ammo.name=.44 매그넘 총알(레거시) +item.gun_calamity_ammo.name=.50 BMG 라운드(레거시) +item.gun_lacunae_ammo.name=5mm 원형(레거시) +item.gun_fatman_ammo.name=팻맨 핵 +item.gun_mirv_ammo.name=8중 MIRV +item.gun_bf_ammo.name=베일파이어 껍데기 +item.gun_mp40_ammo.name=기관단총탄(LEGACY) +item.gun_uzi_ammo.name=.22 LR 라운드(레거시) +item.gun_uboinik_ammo.name=12x70 벅샷(레거시) +item.gun_lever_action_ammo.name=12x74 벅샷(레거시) +item.gun_bolt_action_ammo.name=12x74 슬러그(레거시) +item.gun_b92_ammo.name=§9B92 Energy Cell§r (레거시) +item.gun_xvl1456_ammo.name=열화우라늄-235 상자 +item.gun_osipr_ammo.name=암흑 에너지 펄스 플러그 +item.gun_osipr_ammo2.name=공 결합 +item.gun_immolator_ammo.name=Immolator 연료 +item.gun_cryolator_ammo.name=크라이오 셀 +item.gun_mp_ammo.name=소형 추진제 없는 5.56mm 원형 +item.gun_emp_ammo.name=에너지 셀 +item.gun_jack_ammo.name=4연장 산탄총 포탄 +item.gun_spark_ammo.name=전자기 카트리지 +item.gun_hp_ammo.name=잉크 카트리지 +item.gun_euthanasia_ammo.name=주사기 +item.gun_defabricator_ammo.name=제세동기 에너지 셀 + +item.ammo_mirv.name=미니 MIRV +item.ammo_mirv_high.name=미니 MIRV(고수율) +item.ammo_mirv_low.name=미니 MIRV(낮은 수율) +item.ammo_mirv_safe.name=미니 MIRV(안전) +item.ammo_mirv_special.name=미니 MILV +item.ammo_nuke.name=미니 핵 +item.ammo_nuke_high.name=미니 핵무기(고수율) +item.ammo_nuke_low.name=미니 핵무기(낮은 수율) +item.ammo_nuke_pumpkin.name=호박 폭탄 +item.ammo_nuke_safe.name=미니 핵무기(안전) +item.ammo_nuke_tots.name=미니 핵(타이니 토츠) + +item.ammo_12gauge.name=12게이지 벅샷 +item.ammo_12gauge_incendiary.name=12게이지 벅샷(방화) +item.ammo_12gauge_shrapnel.name=12게이지 벅샷(파탄) +item.ammo_12gauge_du.name=12게이지 벅샷(우라늄 코팅) +item.ammo_12gauge_sleek.name=12게이지 벅샷(IF-R&D) +item.ammo_12gauge_marauder.name=12게이지 전술적 약탈자 방지 쉘 +item.ammo_20gauge.name=20게이지 벅샷 +item.ammo_20gauge_slug.name=20게이지 브레네케 슬러그 +item.ammo_20gauge_flechette.name=20게이지 플레셰트 쉘 +item.ammo_20gauge_incendiary.name=20게이지 벅샷(방화) +item.ammo_20gauge_shrapnel.name=20게이지 벅샷(파탄) +item.ammo_20gauge_shock.name=20게이지 벅샷(충격) +item.ammo_20gauge_caustic.name=20게이지 벅샷(가성) +item.ammo_20gauge_explosive.name=20게이지 벅샷(폭발성) +item.ammo_20gauge_wither.name=20게이지 벅샷(위더링) +item.ammo_20gauge_sleek.name=20게이지 벅샷(IF-R&D) +item.ammo_4gauge.name=4게이지 벅샷 +item.ammo_4gauge_slug.name=4게이지 솔리드 스틸 슬러그 +item.ammo_4gauge_balefire.name=23mm 베일파이어 수류탄 +item.ammo_4gauge_canister.name=23mm 로켓(캐니스터 샷) +item.ammo_4gauge_claw.name=4게이지 클로 쉘 +item.ammo_4gauge_vampire.name=4 게이지 나무 스테이크 쉘 +item.ammo_4gauge_void.name=4게이지 보이드 쉘 +item.ammo_4gauge_explosive.name=23mm 수류탄 +item.ammo_4gauge_flechette.name=4게이지 플레셰트 쉘 +item.ammo_4gauge_flechette_phosphorus.name=4게이지 플레셰트 쉘(WP) +item.ammo_4gauge_kampf.name=23mm 로켓 +item.ammo_4gauge_semtex.name=23mm 마이닝 차지 +item.ammo_4gauge_sleek.name=4게이지 벅샷(IF-R&D) +item.ammo_5mm.name=5mm 원형 +item.ammo_5mm_explosive.name=5mm 원형(폭발성) +item.ammo_5mm_du.name=5mm 원형(DU) +item.ammo_5mm_star.name=5mm 원형(스타메탈) +item.ammo_75bolt.name=.75 볼트 탄창(30번째) +item.ammo_75bolt_incendiary.name=.75 소이 볼트 탄창(30번째) +item.ammo_75bolt_he.name=.75 볼트 고폭탄창(30번째) +item.ammo_50ae.name=.50 AE 라운드 +item.ammo_50ae_ap.name=.50 AE 라운드(갑옷 피어싱) +item.ammo_50ae_chlorophyte.name=.50 AE 라운드(엽록체) +item.ammo_50ae_du.name=.50 AE 라운드(DU) +item.ammo_50ae_star.name=.50 AE 라운드(스타메탈) +item.ammo_50bmg.name=.50 BMG 라운드 +item.ammo_50bmg_incendiary.name=.50 BMG 탄(발화탄) +item.ammo_50bmg_phosphorus.name=.50 BMG 탄(WP) +item.ammo_50bmg_sleek.name=.50 BMG 탄(IF-R&D) +item.ammo_50bmg_explosive.name=.50 BMG 탄(폭발성) +item.ammo_50bmg_ap.name=.50 BMG 라운드(갑옷 피어싱) +item.ammo_50bmg_chlorophyte.name=.50 BMG 탄(엽록체) +item.ammo_50bmg_du.name=.50 BMG 라운드(DU) +item.ammo_50bmg_star.name=.50 BMG 라운드(스타메탈) +item.ammo_9mm.name=9mm 원형 +item.ammo_9mm_ap.name=9mm 원형(아머 피어싱) +item.ammo_9mm_du.name=9mm 원형(DU) +item.ammo_9mm_rocket.name=9mm 로켓 +item.ammo_cell.name=에너지 셀 +item.ammo_dart.name=플라스틱 다트(시들음) +item.ammo_556.name=5.56mm 원형 +item.ammo_556_phosphorus.name=5.56mm 원형(WP) +item.ammo_556_sleek.name=5.56mm 원형(IF-R&D) +item.ammo_556_ap.name=5.56mm 원형(갑옷 피어싱) +item.ammo_556_chlorophyte.name=5.56mm 원형(엽록체) +item.ammo_556_du.name=5.56mm 원형(DU) +item.ammo_556_star.name=5.56mm 원형(스타메탈) +item.ammo_556_flechette.name=5.56mm 플레셰트 라운드 +item.ammo_556_flechette_incendiary.name=5.56mm 플레셰트탄(방화) +item.ammo_556_flechette_phosphorus.name=5.56mm 플레셰트 라운드(인 팁) +item.ammo_556_flechette_sleek.name=5.56mm 플레셰트 라운드(IF-R&D) +item.ammo_556_flechette_du.name=5.56mm 플레셰트 탄(우라늄 관통자) +item.ammo_556_tracer.name=5.56mm 원형(트레이서) +item.ammo_556_k.name=5.56mm K-라운드 +item.ammo_22lr.name=.22 LR 라운드 +item.ammo_22lr_ap.name=.22 LR 라운드(갑옷 피어싱) +item.ammo_22lr_chlorophyte.name=.22 LR 라운드(엽록체) +item.ammo_folly.name=실버 불릿(오리지널) +item.ammo_folly_nuclear.name=은총알(핵) +item.ammo_folly_du.name=은총알(DU, 비폭발성) +item.ammo_357_desh.name=.357 매그넘 데쉬 총알 +item.ammo_44.name=.44 매그넘 총알 +item.ammo_44_ap.name=.44 매그넘 총알(갑옷 피어싱) +item.ammo_44_du.name=.44 매그넘 총알(DU) +item.ammo_44_phosphorus.name=.44 매그넘 총알(WP) +item.ammo_44_star.name=.44 매그넘 총알(스타메탈) +item.ammo_44_pip.name=.44 매그넘 총알(박스카) +item.ammo_44_bj.name=.44 매그넘 총알(보트) +item.ammo_44_chlorophyte.name=.44 매그넘 총알(엽록소) +item.ammo_44_silver.name=.44 매그넘 총알(건물) +item.ammo_44_rocket.name=.44 매그넘 로켓 +item.ammo_rocket.name=84mm 로켓 +item.ammo_rocket_he.name=84mm 로켓(HE) +item.ammo_rocket_incendiary.name=84mm 로켓(방화) +item.ammo_rocket_phosphorus.name=84mm 로켓(WP) +item.ammo_rocket_shrapnel.name=84mm 로켓(파탄) +item.ammo_rocket_emp.name=84mm 로켓(펄스) +item.ammo_rocket_glare.name=84mm 로켓(적색 섬광) +item.ammo_rocket_toxic.name=84mm 로켓(화학) +item.ammo_rocket_sleek.name=84mm 로켓(IF-R&D) +item.ammo_rocket_nuclear.name=84mm 로켓(Привет) +item.ammo_rocket_rpc.name=84mm 로켓 추진 전기톱 +item.ammo_grenade.name=40mm 수류탄 +item.ammo_grenade_he.name=40mm 수류탄 (HE) +item.ammo_grenade_incendiary.name=40mm 수류탄(소이탄) +item.ammo_grenade_phosphorus.name=40mm 수류탄 (WP) +item.ammo_grenade_toxic.name=40mm 수류탄(화학) +item.ammo_grenade_concussion.name=40mm 수류탄(진탕) +item.ammo_grenade_finned.name=40mm 수류탄(핀 포함) +item.ammo_grenade_nuclear.name=40mm 수류탄 (Привет) +item.ammo_grenade_sleek.name=40mm 수류탄 (IF-R&D) +item.ammo_grenade_tracer.name=40mm 훈련용 수류탄 +item.ammo_grenade_kampf.name=40mm 로켓 +item.ammo_fuel.name=디젤 탱크 +item.ammo_fuel_napalm.name=네이팜 탱크 +item.ammo_fuel_phosphorus.name=WP 탱크 +item.ammo_fuel_vaporizer.name=기화기 탱크 +item.ammo_fuel_gas.name=가스 탱크 + +item.folly_shell.name=은탄 케이스 +item.folly_bullet.name=12.8cm 스타메탈 고에너지 쉘 +item.folly_bullet_nuclear.name=12.8cm 핵탄 +item.folly_bullet_du.name=12.8cm DU 쉘 + +item.cordite.name=코르다이트 +item.ballistite.name=탄도석 +item.plate_kevlar.name=케블라-세라믹 화합물 + +item.weaponized_starblaster_cell.name=§c조작된 별똥별 에너지 전지§r + +item.turret_light_ammo.name=경량 MG 터렛 탄약 상자 +item.turret_heavy_ammo.name=중MG 포탑 탄약 +item.turret_rocket_ammo.name=로켓 포탑 2x4 탄약 +item.turret_flamer_ammo.name=화염 터렛 연료 탱크 +item.turret_tau_ammo.name=타우 터렛 우라늄 탄약 +item.turret_spitfire_ammo.name=AA-쉘 +item.turret_cwis_ammo.name=CIWS 20mm 탄약통 +item.turret_cheapo_ammo.name=6x24 Cheapo 포탑 탄약 + +item.clip_revolver_iron.name=철제 탄약 상자 +item.clip_revolver.name=납탄 상자 +item.clip_revolver_gold.name=황금 총알이 담긴 작은 상자 +item.clip_revolver_schrabidium.name=슈라비듐 탄약통 +item.clip_rpg.name=로켓 컨테이너 +item.clip_xvl1456.name=대형 동위원소 상자 +item.clip_osipr.name=AR2 매거진 +item.clip_immolator.name=Immolator 연료 탱크 +item.clip_cryolator.name=냉동기 연료 탱크 +item.clip_revolver_lead.name=핵탄알 상자 +item.clip_revolver_cursed.name=브리타니아 군사 표준 발행물 피솔 탄창 +item.clip_fatman.name=미니 핵무기 6개 팩 +item.clip_mirv.name=미니 MIRV의 3가지 기능이 모두 포함된 팩 +item.clip_bf.name=베일파이어 쉘 더블 팩 +item.clip_mp.name=브리타니아 군사 표준 발행 돌격소총 탄창 +item.clip_mp40.name=9mm SMG 탄창 +item.clip_uzi.name=32번째 .22 LR 탄창 +item.clip_uboinik.name=12x70 벅샷 탄 상자 +item.clip_lever_action.name=12x74 벅샷 탄 상자 +item.clip_bolt_action.name=12x74 슬러그 상자 +item.clip_emp.name=소형 에너지 셀 팩 +item.clip_revolver_nightmare.name=총알 가방 +item.clip_revolver_nightmare2.name=레이저 벅샷 벨트 +item.clip_revolver_pip.name=오염된 총알이 장착된 스피드로더 +item.clip_revolver_nopip.name=.44발 상자 +item.clip_stinger.name=스팅어 로켓 팩 +item.clip_jack.name=4중 12x70 산탄총 상자 +item.clip_spark.name=대형 전자기 카트리지 +item.clip_hp.name=잉크탱크 +item.clip_euthanasia.name=최후의 수단 키트 +item.clip_defabricator.name=제세동기 에너지 셀이 포함된 벨트 + +item.ammo_container.name=탄약통 + +tile.block_schrabidium.name=Schrabidium-326 블록 +tile.block_euphemium.name=유페미움 블록 +tile.block_schrabidium_cluster.name=슈라비듐 클러스터 +tile.block_euphemium_cluster.name=유페미움 에칭 슈라비듐 클러스터 +item.plate_gold.name=금 접시 + +item.syringe_empty.name=빈 주사기 +item.syringe_antidote.name=해독제 +item.syringe_poison.name=독성 주사 +item.syringe_awesome.name=엄청난 +item.syringe_metal_empty.name=금속 주사기 +item.syringe_metal_stimpak.name=스팀팩 +item.syringe_metal_medx.name=메드-엑스 +item.syringe_metal_psycho.name=사이코 +item.syringe_metal_super.name=슈퍼 스팀팩 +item.syringe_taint.name=워터리 테인트 주입 +item.med_bag.name=의사의 가방 +item.iv_blood.name=혈액 가방 +item.iv_empty.name=IV 가방 +item.iv_xp.name=체험가방 +item.iv_xp_empty.name=빈 경험치 가방 +item.radaway.name=라드어웨이 백 +item.radaway_strong.name=강력한 RadAway 가방 +item.radaway_flush.name=엘리트 RadAway 가방 +item.radx.name=래드-X +item.pill_iodine.name=요오드 알약 +item.pill_herbal.name=허브 페이스트 +item.plan_c.name=플랜 C +item.med_ipecac.name=아이펙시럽 +item.med_ptsd.name=PTSD 약물 +item.med_schiziphrenia.name=정신분열증 약물 +item.gas_mask_filter.name=가스 마스크 필터 +item.gas_mask_filter_mono.name=촉매 마스크 필터 +item.gas_mask_filter_combo.name=방독면 콤보 필터 +item.gas_mask_filter_radon.name=가스 마스크 오메가 필터 +item.gas_mask_filter_piss.name=고급 임시 방독면 필터 +item.gas_mask_filter_rag.name=임시 방독면 필터 +item.gas_mask_mono.name=하프마스크 +item.mask_piss.name=트렌치 마스크 +item.mask_damp.name=조잡한 보호 마스크 +item.mask_rag.name=드라이 마스크 +item.rag.name=옷감 +item.rag_damp.name=젖은 천 +item.rag_piss.name=오줌에 젖은 걸레 +item.cladding_paint.name=납 페인트 +item.cladding_rubber.name=고무 클래딩 +item.cladding_lead.name=납 클래딩 +item.cladding_desh.name=데쉬 클래딩 +item.cladding_paa.name=PaA 합금 클래딩 +item.cladding_ghiorsium.name=기오르슘 클래딩 +item.cladding_euphemium.name=유페늄 클래딩 +item.cladding_di.name=디뉴트로늄 클래딩 +item.cladding_electronium.name=일렉트로늄 클래딩 +item.v1.name=V1 + +item.stealth_boy.name=스텔스 장치 + +entity.entity_bullet.name=총알 +entity.entity_bullet_mk2.name=총알 +entity.entity_rocket.name=로켓 +entity.entity_schrabnel.name=슈라브넬 +entity.entity_nuclear_creeper.name=핵 크리퍼 +entity.entity_tainted_creeper.name=오염된 크리퍼 +entity.entity_hunter_chopper.name=헌터 헬기 +entity.entity_cyber_crab.name=사이버 크랩 +entity.entity_tesla_crab.name=테슬라 크랩 +entity.entity_taint_crab.name=테인트 크랩 +entity.entity_balls_o_tron.name=볼스오트론 프라임 +entity.entity_balls_o_tron_seg.name=볼-오-트론 세그먼트 +entity.entity_mask_man.name=마스크맨 +entity.entity_fucc_a_ducc.name=오리 +entity.entity_glowing_one.name=빛나는 하나 +entity.entity_elder_one.name=Quackos The Elder One +entity.entity_ntm_fbi.name=FBI 요원 +entity.entity_ntm_radiation_blaze.name=멜트다운 정령 +entity.entity_ntm_ufo.name=화성 침공선 +entity.entity_rbmk_debris.name=방사성 RBMK 잔해 + +item.cap_aluminium.name=알루미늄 캡 +item.hull_small_steel.name=작은 강철 껍질 +item.hull_small_aluminium.name=작은 알루미늄 껍질 +item.hull_big_steel.name=큰 강철 껍질 +item.hull_big_aluminium.name=큰 알루미늄 껍질 +item.hull_big_titanium.name=큰 티타늄 껍질 +item.fins_flat.name=편평한 강철 케이싱 +item.fins_small_steel.name=소형 강철 그리드 핀 +item.fins_big_steel.name=큰 강철 그리드 핀 +item.fins_tri_steel.name=대형 강철 핀 +item.fins_quad_titanium.name=소형 티타늄 핀 +item.sphere_steel.name=강철 구체 +item.pedestal_steel.name=강철 받침대 +item.dysfunctional_reactor.name=기능 장애가 있는 원자로 + item.rotor_steel.name=대형 강철 로터 -item.rtg_unit.name=RTG 유닛 -item.rune_blank.name=빈 촉매 매트릭스 -item.rune_dagaz.name=균형 잡힌 촉매 매트릭스 -item.rune_hagalaz.name=거친 촉매 매트릭스 -item.rune_isa.name=냉각 촉매 매트릭스 -item.rune_jera.name=곱셈 촉매 매트릭스 -item.rune_thurisaz.name=첨가제 촉매 매트릭스 -item.sat_base.name=위성 기지 -item.sat_chip.name=위성 ID 칩 -item.sat_coord.name=위성 지정자 -item.sat_foeq.name=PEAF - 실험용 핵 추진 장치가 장착된 Mk.I FOEQ Duna 프로브 -item.sat_gerald.name=제럴드 더 컨스트럭션 안드로이드 -item.sat_head_laser.name=죽음의 광선 -item.sat_head_mapper.name=고이득 광학 카메라 -item.sat_head_radar.name=레이더 접시 -item.sat_head_resonator.name=제늄 공진기 -item.sat_head_scanner.name=M700 측량 스캐너 -item.sat_interface.name=위성 제어 인터페이스 -item.sat_laser.name=궤도 죽음의 광선 +item.generator_steel.name=발전기 본체 +item.blade_titanium.name=티타늄 블레이드 +item.turbine_titanium.name=티타늄 증기 터빈 +item.generator_front.name=발전기 전면 +item.blade_tungsten.name=텅스텐 강화 블레이드 +item.turbine_tungsten.name=강화된 터보팬 블레이드 + +item.combine_scrap.name=CMB 고철 +item.chopper_head.name=헌터 헬기 조종석 +item.chopper_gun.name=배치용 총 +item.chopper_torso.name=헌터 쵸퍼 바디 +item.chopper_tail.name=헌터 쵸퍼 테일 +item.chopper_wing.name=헌터 헬기 날개 +item.chopper_blades.name=헌터 헬기 로터 블레이드 + +item.igniter.name=점화기 +item.watch.name=부서진 회중시계 +item.apple_euphemium.name=유페미엄 사과 +item.ingot_euphemium.name=유페늄 주괴 +item.nugget_euphemium.name=유페늄 조각 +item.rod_quad_euphemium.name=번아웃 사중 슈라비듐 막대 +item.plate_euphemium.name=유페늄 복합 플레이트 +item.plate_dineutronium.name=디뉴트로늄 복합 플레이트 +item.plate_desh.name=데쉬 컴파운드 플레이트 + +item.euphemium_helmet.name=유페미움 헬멧 +item.euphemium_plate.name=유페미움 흉갑 +item.euphemium_legs.name=유페늄 레깅스 +item.euphemium_boots.name=유페미움 부츠 + +item.bj_boots.name=달빛 스터드 부츠 +item.bj_helmet.name=열 센서가 장착된 안대 +item.bj_legs.name=달의 사이버네틱 다리 교체 +item.bj_plate.name=달의 사이버네틱 도금 +item.bj_plate_jetpack.name=달의 사이버네틱 도금(날개) + +item.schrabidium_helmet.name=슈라비듐 헬멧 +item.schrabidium_plate.name=슈라비듐 흉갑 +item.schrabidium_legs.name=가시낭 다리보호구 +item.schrabidium_boots.name=슈라비듐 부츠 +item.schrabidium_sword.name=슈라비듐 소드 +item.schrabidium_pickaxe.name=슈라비듐 곡괭이 +item.schrabidium_axe.name=슈라비듐 도끼 +item.schrabidium_shovel.name=슈라비듐 삽 +item.schrabidium_hoe.name=슈라비듐 괭이 + +item.jetpack_boost.name=부스트팩 +item.jetpack_fly.name=제트팩 +item.jetpack_break.name=브레이크팩 +item.jetpack_vector.name=벡터화된 제트팩 +item.jetpack_glider.name=글라이더 제트팩 +item.jetpack_tank.name=제트팩 예비 연료 탱크 + +item.gun_kit_1.name=총기름 +item.gun_kit_2.name=총 수리 키트 + +item.chainsaw.name=전기톱 +item.crowbar.name=Mk.V 상자 개봉 장치 "지렛대" +item.crucible.name=도가니 +item.hs_sword.name=초경강검 +item.hf_sword.name=고주파 검 + +item.ingot_chainsteel.name=무거운 사슬강철 +item.ingot_steel_dusted.name=먼지를 뿌린 강철 주괴 + +item.wrench.name=파이프 렌치 +item.wrench_flipped.name=렌치의 칼날 +item.memespoon.name=§e마켓 가든 + +item.mask_of_infamy.name=악명 높은 가면 + +tile.det_cord.name=데트 코드 +tile.det_charge.name=폭발물 +tile.det_nuke.name=핵전하 +tile.det_miner.name=채굴 비용 +tile.red_barrel.name=폭발성 배럴 +tile.pink_barrel.name=등유 배럴 +tile.lox_barrel.name=LOX 배럴 +tile.taint_barrel.name=IMP 잔류물 배럴 +tile.yellow_barrel.name=방사성 배럴 +tile.vitrified_barrel.name=유리화된 핵 폐기물 드럼 + +item.designator.name=단거리 표적 지정자 +item.designator_range.name=장거리 표적 지정자 +item.designator_manual.name=수동 타겟 지정자 +item.missile_assembly.name=소형 미사일 조립 +item.missile_generic.name=고폭미사일 +item.missile_anti_ballistic.name=대탄도미사일 +item.missile_incendiary.name=소이 미사일 +item.missile_cluster.name=클러스터 미사일 +item.missile_buster.name=벙커 버스터 +item.missile_strong.name=강력한 HE 미사일 +item.missile_incendiary_strong.name=강력한 소이 미사일 +item.missile_cluster_strong.name=강력한 클러스터 미사일 +item.missile_buster_strong.name=강화된 벙커 파괴자 +item.missile_emp_strong.name=강력한 EMP 미사일 +item.missile_burst.name=예비 미사일 +item.missile_inferno.name=인페르노 미사일 GRN Mk.II +item.missile_rain.name=폭탄 비 +item.missile_drill.name=콘크리트 크래커 +item.missile_nuclear.name=핵미사일 +item.missile_nuclear_cluster.name=열핵 미사일 +item.missile_endo.name=흡열 미사일 +item.missile_exo.name=발열 미사일 +item.missile_doomsday.name=최후의 심판 미사일 +item.missile_taint.name=오염된 미사일 +item.missile_micro.name=초소형 미사일 +item.missile_bhole.name=블랙홀 미사일 +item.missile_schrabidium.name=슈라비듐 미사일 +item.missile_emp.name=EMP 미사일 + +item.seg_10.name=크기 10 커넥터 +item.seg_15.name=크기 15 커넥터 +item.seg_20.name=크기 20 커넥터 + +item.mp_c_1.name=Tier 1 미사일 타겟팅 회로 +item.mp_c_2.name=Tier 2 미사일 타겟팅 회로 +item.mp_c_3.name=Tier 3 미사일 타겟팅 회로 +item.mp_c_4.name=Tier 4 미사일 타겟팅 회로 +item.mp_c_5.name=Tier 5 미사일 타겟팅 회로 + +item.mp_warhead_10_he.name=크기 10 HE 탄두 +item.mp_warhead_10_incendiary.name=크기 10 소이탄두 +item.mp_warhead_10_buster.name=크기 10 벙커 버스터 탄두 +item.mp_warhead_10_nuclear.name=크기 10 미세 핵탄두 +item.mp_warhead_10_taint.name=크기 10 오염된 탄두 +item.mp_warhead_10_cloud.name=크기 10 핑크 클라우드 탄두 +item.mp_warhead_15_he.name=크기 15 HE 탄두 +item.mp_warhead_15_incendiary.name=크기 15 소이 탄두 +item.mp_warhead_10_nuclear_large.name=크기 10 핵탄두 +item.mp_warhead_15_nuclear.name=크기 15 핵탄두 +item.mp_warhead_15_thermo.name=크기 15 열핵탄두 +item.mp_warhead_15_nuclear_shark.name=크기 15 핵탄두 +item.mp_warhead_15_boxcar.name=사이즈 15 박스카? +item.mp_warhead_15_n2.name=크기 15 N² 광산 +item.mp_warhead_15_balefire.name=크기 15 베일파이어 탄두 +item.mp_warhead_15_mirv.name=크기 15 MIRV 탄두 + +item.mp_fuselage_10_kerosene.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_camo.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_desert.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_sky.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_insulation.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_flames.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_sleek.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_metal.name=크기 10 등유 동체 +item.mp_fuselage_10_kerosene_taint.name=크기 10 등유 동체 +item.mp_fuselage_10_solid.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_flames.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_insulation.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_sleek.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_soviet_glory.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_cathedral.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_moonlit.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_battery.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_solid_duracell.name=크기 10 고체 연료 동체 +item.mp_fuselage_10_xenon.name=크기 10 크세논 동체 +item.mp_fuselage_10_xenon_bhole.name=크기 10 크세논 동체 +item.mp_fuselage_10_long_kerosene.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_camo.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_desert.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_sky.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_flames.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_insulation.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_sleek.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_metal.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_taint.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_vap.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_kerosene_dash.name=크기 10 긴 등유 동체 +item.mp_fuselage_10_long_solid.name=크기 10 긴 고체 연료 동체 +item.mp_fuselage_10_long_solid_flames.name=크기 10 긴 고체 연료 동체 +item.mp_fuselage_10_long_solid_insulation.name=크기 10 긴 고체 연료 동체 +item.mp_fuselage_10_long_solid_sleek.name=크기 10 긴 고체 연료 동체 +item.mp_fuselage_10_long_solid_soviet_glory.name=크기 10 긴 고체 동체 +item.mp_fuselage_10_long_solid_silvermoonlight.name=크기 10 긴 고체 동체 +item.mp_fuselage_10_long_solid_bullet.name=크기 10 긴 고체 동체 + +item.mp_fuselage_10_15_kerosene.name=크기 10/15 등유 동체 +item.mp_fuselage_10_15_solid.name=크기 10/15 고체 연료 동체 +item.mp_fuselage_10_15_hydrogen.name=크기 10/15 수소 동체 +item.mp_fuselage_10_15_balefire.name=크기 10/15 베일파이어 동체 + +item.mp_fuselage_15_kerosene.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_camo.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_desert.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_sky.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_insulation.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_metal.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_decorated.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_steampunk.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_polite.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_blackjack.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_lambda.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_minuteman.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_taint.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_pip.name=크기 15 등유 동체 +item.mp_fuselage_15_kerosene_yuck.name=크기 15 등유 동체 +item.mp_fuselage_15_solid.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_insulation.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_soviet_glory.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_soviet_stank.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_desh.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_silvermoonlight.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_faust.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_snowy.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_panorama.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_solid_roses.name=크기 15 고체 연료 동체 +item.mp_fuselage_15_hydrogen.name=크기 15 수소 동체 +item.mp_fuselage_15_hydrogen_cathedral.name=크기 15 수소 동체 +item.mp_fuselage_15_balefire.name=크기 15 베일파이어 동체 + +item.mp_fuselage_15_20_kerosene.name=크기 15/20 등유 동체 +item.mp_fuselage_15_20_kerosene_magnusson.name=크기 15/20 등유 동체 +item.mp_fuselage_15_20_solid.name=크기 15/20 고체 연료 동체 + +item.mp_stability_10_flat.name=사이즈 10 플랫 핀 +item.mp_stability_10_cruise.name=크기 10 크루즈 핀 +item.mp_stability_10_space.name=크기 10 공간 핀 +item.mp_stability_15_flat.name=사이즈 15 플랫 핀 +item.mp_stability_15_thin.name=사이즈 15 얇은 핀 +item.mp_stability_15_soyuz.name=크기 15 뾰족한 지느러미 + +item.mp_thruster_10_kerosene.name=크기 10 액체 연료 추진기 +item.mp_thruster_10_solid.name=크기 10 고체 연료 추진기 +item.mp_thruster_10_xenon.name=사이즈 10 이온 추진기 +item.mp_thruster_15_kerosene.name=크기 15 액체 연료 추진기 +item.mp_thruster_15_kerosene_dual.name=크기 15 액체 연료 트윈 추진기 +item.mp_thruster_15_kerosene_triple.name=크기 15 액체 연료 삼중 추진기 +item.mp_thruster_15_solid.name=크기 15 고체 연료 추진기 +item.mp_thruster_15_solid_hexdecuple.name=크기 15 고체 연료 16진수 추진기 +item.mp_thruster_15_hydrogen.name=크기 15 수소 추진기 +item.mp_thruster_15_hydrogen_dual.name=크기 15 수소 트윈 추진기 +item.mp_thruster_15_balefire_short.name=핵 예열기가 포함된 크기 15 베일파이어 추진기(단축형) +item.mp_thruster_15_balefire.name=핵 예열기가 포함된 크기 15 베일파이어 추진기 +item.mp_thruster_15_balefire_large.name=핵 예열기가 포함된 크기 15 베일파이어 추진기(대형 노즐) +item.mp_thruster_15_balefire_large_rad.name=핵 예열기가 포함된 크기 15 베일파이어 추진기(대형 노즐) +item.mp_thruster_20_kerosene.name=크기 20 액체 연료 추진기 +item.mp_thruster_20_kerosene_dual.name=크기 20 액체 연료 트윈 추진기 +item.mp_thruster_20_kerosene_triple.name=크기 20 액체 연료 삼중 추진기 +item.mp_thruster_20_solid.name=크기 20 고체 연료 추진기 +item.mp_thruster_20_solid_multi.name=크기 20 고체 연료 30단 추진기 +item.mp_thruster_20_solid_multier.name=크기 20 고체 연료 47단 추진기 + +item.missile_skin_camo.name=미사일 스킨: 카모 +item.missile_skin_desert.name=미사일 스킨: 사막 위장 +item.missile_skin_flames.name=미사일 스킨: 역겨운 불꽃 +item.missile_skin_manly_pink.name=미사일 스킨: 맨리 핑크 +item.missile_skin_orange_insulation.name=미사일 스킨: 주황색 절연체 +item.missile_skin_sleek.name=미사일 스킨: IF-R&D +item.missile_skin_soviet_glory.name=미사일 스킨: 소련의 영광 +item.missile_skin_soviet_stank.name=미사일 스킨: 소비에트 스탠크 +item.missile_skin_metal.name=미사일 스킨: 금속 + +item.missile_custom.name=맞춤형 미사일 + +item.missile_carrier.name=HTR-01 캐리어 로켓 +item.missile_soyuz0.name=소유즈-FG +item.missile_soyuz1.name=소유즈-FG +item.missile_soyuz2.name=소유즈-FG +item.missile_soyuz_lander.name=궤도 모듈 item.sat_mapper.name=표면 매핑 위성 -item.sat_miner.name=소행성 채광선 +item.sat_scanner.name=심층 자원 스캐닝 모듈을 갖춘 위성 item.sat_radar.name=레이더 측량 위성 -item.sat_resonator.name=제니움 공진기 위성 -item.sat_scanner.name=깊이 자원 스캐닝 모듈이 있는 위성 -item.schnitzel_vegan.name=비건 슈니첼 -item.schrabidium_axe.name=슈라비디움 도끼 -item.schrabidium_boots.name=슈라비디움 부츠 -item.schrabidium_hammer.name=슈라비디움 해머 -item.schrabidium_helmet.name=슈라비디움 투구 -item.schrabidium_hoe.name=슈라비디움 괭이 -item.schrabidium_legs.name=슈라비디움 다리보호구 -item.schrabidium_pickaxe.name=슈라비디움 곡괭이 -item.schrabidium_plate.name=슈라비디움 흉갑 -item.schrabidium_shovel.name=슈라비디움 삽 -item.schrabidium_sword.name=슈라비디움 소드 -item.scrap.name=한조각 +item.sat_laser.name=궤도 죽음의 광선 +item.sat_foeq.name=PEAF - 실험적인 핵 추진 장치를 갖춘 Mk.I FOEQ Duna 탐사선 +item.sat_resonator.name=제늄 공진기 위성 +item.sat_miner.name=소행성 채굴선 +item.sat_gerald.name=제럴드 건설 안드로이드 +item.sat_chip.name=위성 ID 칩 +item.sat_interface.name=위성 제어 인터페이스 +item.sat_coord.name=위성 지정자 +tile.deco_sat_mapper.name=표면 매핑 위성(데코 블록) +tile.deco_sat_scanner.name=심층 자원 스캐닝 모듈을 갖춘 위성(데코 블록) +tile.deco_sat_radar.name=레이더 측량 위성(데코 블록) +tile.deco_sat_laser.name=궤도 죽음의 광선(데코 블록) +tile.deco_sat_foeq.name=PEAF - 실험적 핵 추진 장치를 갖춘 Mk.I FOEQ Duna 프로브(데코 블록) +tile.deco_sat_resonator.name=제니움 공진기 위성(데코 블록) + +item.hev_boots.name=HEV Mark IV 부츠 +item.hev_plate.name=HEV Mark IV 체스트플레이트 +item.hev_helmet.name=HEV Mark IV 헬멧 +item.hev_legs.name=HEV Mark IV 레깅스 +item.ajr_boots.name=T-60 레인저 파워 아머 부츠 +item.ajr_helmet.name=T-60 레인저 파워 아머 헬멧 +item.ajr_legs.name=T-60 레인저 파워 아머 레깅스 +item.ajr_plate.name=T-60 레인저 파워 아머 흉갑 +item.RPA_boots.name=X-01 렘넌트 파워 아머 부츠 +item.RPA_helmet.name=X-01 렘넌트 파워 아머 헬멧 +item.RPA_plate.name=X-01 렘넌트 파워 아머 흉갑 +item.RPA_legs.name=X-01 렘넌트 파워 아머 레깅스 +item.hazmat_helmet.name=위험물질 헬멧 +item.hazmat_plate.name=위험물 흉갑 +item.hazmat_legs.name=위험물 레깅스 +item.hazmat_boots.name=위험물질 장화 +item.hazmat_helmet_red.name=고급 위험물질 헬멧 +item.hazmat_plate_red.name=고급 위험물질 흉갑 +item.hazmat_legs_red.name=고급 위험물질 다리보호구 +item.hazmat_boots_red.name=고급 위험물질 장화 +item.hazmat_helmet_grey.name=고성능 위험물질 헬멧 +item.hazmat_plate_grey.name=고성능 방호 흉갑 +item.hazmat_legs_grey.name=고성능 방호 레깅스 +item.hazmat_boots_grey.name=고성능 위험물질 장화 +item.hazmat_paa_helmet.name=PaA 방호복 헬멧 +item.hazmat_paa_plate.name=PaA 방호복 가슴판 +item.hazmat_paa_legs.name=PaA 방호복 레깅스 +item.hazmat_paa_boots.name=PaA 방호복 부츠 +item.asbestos_helmet.name=화재 근접 헬멧 +item.asbestos_plate.name=화재 근접 흉갑 +item.asbestos_legs.name=화재 근접 레깅스 +item.asbestos_boots.name=화재 근접 장화 + +item.paa_helmet.name=PaA 헬멧 보호 +item.paa_plate.name=PaA 가슴 보호판 +item.paa_legs.name=PaA 다리 보강재 +item.paa_boots.name=PaA "좋은 구두" + +item.jackt.name=빌어먹을 스타일리시한 발리스틱 재킷 +item.jackt2.name=빌어먹을 스타일리시한 발리스틱 재킷 2: 도쿄 드리프트 + +item.goggles.name=보호 고글 +item.gas_mask.name=방독면 +item.gas_mask_m65.name=M65-Z 방독면 +item.oxy_mask.name=산소 마스크 +item.t45_helmet.name=T-45 파워 아머 헬멧 +item.t45_plate.name=T-45 파워 아머 흉갑 +item.t45_legs.name=T-45 파워 아머 레깅스 +item.t45_boots.name=T-45 파워 아머 부츠 + +tile.mush.name=빛나는 버섯 +tile.waste_mycelium.name=빛나는 균사체 + +tile.sellafield_slaked.name=소석회 셀라파이트 +tile.sellafield_0.name=셀라파이트 +tile.sellafield_1.name=핫 셀라파이트 +tile.sellafield_2.name=끓는 셀라파이트 +tile.sellafield_3.name=타오르는 셀라파이트 +tile.sellafield_4.name=지옥불 셀라파이트 +tile.sellafield_core.name=셀라파이트-코리움 + +tile.baleonitite_slaked.name=소석회암 +tile.baleonitite_0.name=발레오니타이트 +tile.baleonitite_1.name=뜨거운 발레오니타이트 +tile.baleonitite_2.name=끓는 발레오니타이트 +tile.baleonitite_3.name=타오르는 발레오니타이트 +tile.baleonitite_4.name=지옥불 발레나이트 +tile.baleonitite_core.name=발레오니타이트-진심 + +item.warhead_generic_small.name=소형 탄두 +item.warhead_generic_medium.name=중형 탄두 +item.warhead_generic_large.name=대형 탄두 +item.warhead_incendiary_small.name=소형 소이탄두 +item.warhead_incendiary_medium.name=중형 소이탄두 +item.warhead_incendiary_large.name=대형 소이탄두 +item.warhead_cluster_small.name=소형 클러스터 탄두 +item.warhead_cluster_medium.name=중형 클러스터 탄두 +item.warhead_cluster_large.name=대형 클러스터 탄두 +item.warhead_buster_small.name=소형 벙커 버스터 탄두 +item.warhead_buster_medium.name=중형 벙커 버스터 탄두 +item.warhead_buster_large.name=대형 벙커 버스터 탄두 +item.warhead_nuclear.name=핵탄두 +item.warhead_mirvlet.name=미르브 +item.warhead_mirv.name=열핵탄두 +item.warhead_thermo_endo.name=흡열 탄두 +item.warhead_thermo_exo.name=발열 탄두 +item.fuel_tank_small.name=소형 연료 탱크 +item.fuel_tank_medium.name=중형 연료 탱크 +item.fuel_tank_large.name=대형 연료 탱크 +item.thruster_small.name=소형 추진기 +item.thruster_medium.name=중형 추진기 +item.thruster_large.name=대형 추진기 + +item.wand_k.name=건설 지팡이 +item.wand_s.name=구조 지팡이 +item.wand_d.name=디버그 지팡이 +item.analyzer.name=분석기 + item.screwdriver.name=드라이버 -item.scrumpy.name=스크럼피 병 -item.security_boots.name=보안 부츠 +item.screwdriver_desh.name=데시 드라이버 +item.overfuse.name=특이점 드라이버 + +item.steel_helmet.name=강철 헬멧 +item.steel_plate.name=강철 흉갑 +item.steel_legs.name=강철 레깅스 +item.steel_boots.name=강철 장화 +item.titanium_helmet.name=티타늄 헬멧 +item.titanium_plate.name=티타늄 흉갑 +item.titanium_legs.name=티타늄 레깅스 +item.titanium_boots.name=티타늄 부츠 +item.alloy_helmet.name=고급 합금 헬멧 +item.alloy_plate.name=고급 합금 흉갑 +item.alloy_legs.name=고급 합금 레깅스 +item.alloy_boots.name=고급 합금 부츠 +item.cmb_helmet.name=CMB 강철 헬멧 +item.cmb_plate.name=CMB 강철 흉갑 +item.cmb_legs.name=CMB 강철 레깅스 +item.cmb_boots.name=CMB 강철 장화 item.security_helmet.name=보안 헬멧 -item.security_legs.name=보안 레깅스 item.security_plate.name=보안 흉갑 -item.seg_10.name=크기 10 커넥터 -item.seg_15.name=크기 15 커넥터 -item.seg_20.name=크기 20 커넥터 -item.serum.name=혈청 -item.servo_set.name=서보 세트 -item.servo_set_desh.name=데시 서보 세트 -item.shackles.name=족쇄 +item.security_legs.name=보안 레깅스 +item.security_boots.name=보안 부츠 +item.cobalt_helmet.name=코발트 투구 +item.cobalt_plate.name=코발트 흉갑 +item.cobalt_legs.name=코발트 레깅스 +item.cobalt_boots.name=코발트 부츠 +item.starmetal_helmet.name=스타메탈 헬멧 +item.starmetal_plate.name=별금속 가슴갑옷 +item.starmetal_legs.name=스타메탈 레깅스 +item.starmetal_boots.name=스타메탈 부츠 + +item.steel_sword.name=강철검 +item.steel_pickaxe.name=강철 곡괭이 +item.steel_axe.name=강철 도끼 +item.steel_shovel.name=강철 삽 +item.steel_hoe.name=강철 괭이 +item.titanium_sword.name=티타늄 검 +item.titanium_pickaxe.name=티타늄 곡괭이 +item.titanium_axe.name=티타늄 도끼 +item.titanium_shovel.name=티타늄 삽 +item.titanium_hoe.name=티타늄 괭이 +item.alloy_sword.name=고급 합금 검 +item.alloy_pickaxe.name=고급 합금 곡괭이 +item.alloy_axe.name=고급 합금 도끼 +item.alloy_shovel.name=고급 합금 삽 +item.alloy_hoe.name=고급 합금 괭이 +item.cmb_sword.name=CMB 강철검 +item.cmb_pickaxe.name=CMB 강철 곡괭이 +item.cmb_axe.name=CMB 강철 도끼 +item.cmb_shovel.name=CMB 강철 삽 +item.cmb_hoe.name=CMB 강철 괭이 +item.elec_sword.name=스턴스틱 +item.elec_pickaxe.name=임팩트 드릴 +item.elec_axe.name=전기톱 +item.elec_shovel.name=나선형 드릴 +item.desh_sword.name=일꾼의 합금 검 +item.desh_pickaxe.name=일꾼의 합금 곡괭이 +item.desh_axe.name=일꾼의 합금 도끼 +item.desh_shovel.name=노동자의 합금 삽 +item.desh_hoe.name=노동자의 합금 괭이 +item.cobalt_sword.name=코발트 검 +item.cobalt_pickaxe.name=코발트 곡괭이 +item.cobalt_axe.name=코발트 도끼 +item.cobalt_shovel.name=코발트 삽 +item.cobalt_hoe.name=코발트 괭이 +item.centri_stick.name=막대형 원심분리기 +item.smashing_hammer.name=스매싱 해머 + +tile.red_cable.name=빨간색 구리 케이블 + +tile.block_meteor.name=운석 블록 +tile.block_meteor_broken.name=부서진 운석 블록 +tile.block_meteor_cobble.name=운석 조약돌 +tile.block_meteor_molten.name=뜨거운 운석 조약돌 +tile.block_meteor_treasure.name=운석 보물 블록 +tile.meteor_polished.name=광택나는 유성 블록 +tile.meteor_brick.name=유성 벽돌 +tile.meteor_brick_chiseled.name=조각된 유성 벽돌 +tile.meteor_brick_cracked.name=금이 간 유성 벽돌 +tile.meteor_brick_mossy.name=이끼 낀 유성 벽돌 +tile.meteor_pillar.name=유성 기둥 +tile.meteor_spawner.name=사이버 크랩 어셈블러 +tile.meteor_battery.name=스타메탈 정전기 발생기 + +item.cape_radiation.name=망토 (방사선) +item.cape_gasmask.name=망토(방독면) +item.cape_schrabidium.name=망토(슈라비딕) +item.cape_hbm.name=HBM의 망토 +item.cape_dafnik.name=다프니크의 망토 +item.cape_lpkukin.name=LP쿠킨의 망토 +item.cape_vertice.name=막대 버티스 망토 +item.cape_codered_.name=codered_의 망토 +item.cape_ayy.name=아이의 망토 +item.cape_nostalgia.name=DrNostalgia의 망토 + +tile.machine_converter_he_rf.name=HE-RF 변환기 +tile.machine_converter_rf_he.name=RF-HE 변환기 +tile.machine_transformer.name=충전기 +tile.machine_transformer.desc=플레이어의 인벤토리에 있는 아이템을 충전하기 위해 전력을 사용합니다. 범위: 그 위의 3블록 +tile.machine_transformer_dnt.name=DNT 업 충전기 +tile.machine_transformer_dnt.desc=플레이어의 인벤토리에 있는 아이템을 충전하기 위해 전력을 사용합니다. 범위: 그 위의 3블록 +tile.machine_transformer_20.name=다운차저 +tile.machine_transformer_20.desc=플레이어의 인벤토리에 있는 아이템을 충전하기 위해 전력을 사용합니다. 범위: 그 아래 3블록 +tile.machine_transformer_dnt_20.name=DNT 다운 충전기 +tile.machine_transformer_dnt_20.desc=플레이어의 인벤토리에 있는 아이템을 충전하기 위해 전력을 사용합니다. 범위: 그 아래 3블록 + +tile.vent_chlorine.name=포이즌 벤트 +tile.vent_cloud.name=클라우드 벤트 +tile.vent_pink_cloud.name=핑크 클라우드 벤트 +tile.vent_chlorine_seal.name=염소 씰 +tile.chlorine_gas.name=염소가스 +item.chlorine_pinwheel.name=염소 바람개비 + +tile.absorber.name=방사선 흡수체 +tile.absorber_red.name=강화된 방사선 흡수체 +tile.absorber_green.name=고급 방사선 흡수체 +tile.absorber_pink.name=엘리트 방사선 흡수체 +tile.decon.name=방사선 오염제거기 +tile.decon_digamma.name=디감마 오염제거기 +tile.machine_amgen.name=대기 방사선 발생기 +tile.machine_geo.name=지열발전기 +tile.machine_minirtg.name=방사성 동위원소 세포 + +item.schrabidium_hammer.name=슈라비듐 망치 +item.shimmer_sledge.name=쉬머 슬레지 item.shimmer_axe.name=쉬머 액스 +item.euphemium_stopper.name=스토퍼 +item.matchstick.name=성냥개비 +item.mech_key.name=대형 은색 열쇠 +item.remote.name=고장난 리모컨 + +item.shimmer_head.name=헤비 해머 헤드 item.shimmer_axe_head.name=무거운 도끼 머리 item.shimmer_handle.name=강화 폴리머 핸들 -item.shimmer_head.name=헤비 해머 헤드 -item.shimmer_sledge.name=쉬머 썰매 -item.singularity.name=특이 -item.singularity_counter_resonant.name=포함된 반공진 특이점 -item.singularity_spark.name=스파크 특이점 -item.singularity_super_heated.name=과열된 공명 특이점 -item.siox.name=SiOX 암 치료제 -item.siren_track.name=사이렌 트랙 -item.sliding_blast_door_skin0.name=옆으로 슬라이딩 블래스트 도어 기본 스킨 -item.sliding_blast_door_skin1.name=옆으로 슬라이딩 블래스트 도어 변형 1 스킨 -item.sliding_blast_door_skin2.name=옆으로 슬라이딩 블래스트 도어 변형 2 스킨 -item.smashing_hammer.name=스매싱 해머 -item.solid_fuel.name=고체 연료 -item.solinium_core.name=준안정 솔리늄 코어 -item.solinium_igniter.name=SOL 펄스 점화기 -item.solinium_kit.name=솔리늄 키트 -item.solinium_propellant.name=SOL 압축 충전 -item.sopsign.name=소프 사인 전투 도끼 -item.spawn_ufo.name=화성 침공선 -item.spawn_worm.name=볼오트론 프라임 -item.sphere_steel.name=강철 구체 -item.spider_milk.name=거미 우유 한 병 -item.spongebob_macaroni.name=스폰지밥 마카로니 -item.stamp_357.name=.357 매그넘 스탬프 -item.stamp_44.name=.44 매그넘 스탬프 -item.stamp_50.name=대구경 스탬프 -item.stamp_9.name=소구경 스탬프 -item.stamp_iron_circuit.name=서킷 스탬프(철) + +item.redcoil_capacitor.name=레드코일 커패시터 +item.detonator.name=뇌관 +item.detonator_multi.name=다중뇌관 +item.detonator_laser.name=레이저 기폭 장치 +item.detonator_deadman.name=데드맨의 기폭 장치 +item.detonator_de.name=데드맨의 폭발물 +item.crate_caller.name=보급품 투하 요청자 +item.bomb_caller.name=공습 지정자 +item.meteor_remote.name=운석 리모콘 + +item.meteorite_sword.name=운석검 +item.meteorite_sword_seared.name=운석검(그슬린) +item.meteorite_sword_reforged.name=운석검(재련) +item.meteorite_sword_hardened.name=운석검(단화) +item.meteorite_sword_alloyed.name=운석검(합금) +item.meteorite_sword_machined.name=운석검(가공) +item.meteorite_sword_treated.name=운석검(처리됨) +item.meteorite_sword_etched.name=운석검(에칭) +item.meteorite_sword_bred.name=운석검(교배) +item.meteorite_sword_irradiated.name=§e운석검 (조사) +item.meteorite_sword_fused.name=§d운석검(융합) +item.meteorite_sword_baleful.name=§a운석검(해로움) +item.meteorite_sword_warped.name=§f운석검(뒤틀림) +item.meteorite_sword_demonic.name=§c운석검(악마) + +item.pellet_mercury.name=수은탄 +item.pellet_meteorite.name=운석탄 +item.pellet_canister.name=캐니스터 샷 +item.pellet_charged.name=이온화된 입자 +item.pellet_chlorophyte.name=엽록소 라운드 +item.pellet_claws.name=날카로운 금속 발톱 +item.ammo_rocket_canister.name=84mm 로켓(캐니스터 샷) +item.ammo_9mm_chlorophyte.name=9mm 원형(엽록체) +item.ammo_5mm_chlorophyte.name=5mm 원형(엽록체) +item.ammo_556_flechette_chlorophyte.name=5.56mm 플레셰트 원형(엽록체) + +item.ammo_shell.name=240mm 포탄 +item.ammo_shell_apfsds_du.name=240mm APFSDS-DU +item.ammo_shell_apfsds_t.name=240mm APFSDS-T +item.ammo_shell_explosive.name=240mm HE 포탄 +item.ammo_shell_w9.name=240mm W9 핵탄 +item.ammo_dgk.name=골키퍼 트윈 CIWS 200 라운드 벨트 + +item.ingot_hes.name=고농축 슈라비듐 연료 주괴 +item.ingot_les.name=저농축 슈라비듐 연료 주괴 +item.nugget_hes.name=고농축 슈라비듐 연료 덩어리 +item.nugget_les.name=저농축 슈라비듐 연료 덩어리 + +item.pellet_schrabidium.name=순수 슈라비듐 와츠 펠릿 +item.pellet_hes.name=HES 와츠 펠릿 +item.pellet_mes.name=MES 와츠 펠릿 +item.pellet_les.name=레 와츠 펠릿 +item.pellet_beryllium.name=베릴륨 감속재 펠릿 +item.pellet_neptunium.name=넵투늄 와츠 펠릿 +item.pellet_lead.name=리드 반사경 펠릿 +item.pellet_advanced.name=고급 Watz 성능 향상기 + +item.titanium_filter.name=티타늄 필터 + +tile.mud_block.name=산화된 와츠 진흙 +fluid.mud_fluid=산화된 와츠 진흙 +item.bucket_mud.name=산화된 와츠 진흙 양동이 +tile.acid_block.name=산 +fluid.acid_fluid=산 +item.bucket_acid.name=산성 양동이 +tile.toxic_block.name=셀라린 +fluid.toxic_fluid=셀라린 +item.bucket_toxic.name=셀라린 양동이 +item.tank_waste_0.name=진흙 컨테이너 +item.tank_waste_1.name=진흙 컨테이너 +item.tank_waste_2.name=진흙 컨테이너 +item.tank_waste_3.name=진흙 컨테이너 +item.tank_waste_4.name=진흙 컨테이너 +item.tank_waste_5.name=진흙 컨테이너 +item.tank_waste_6.name=진흙 컨테이너 +item.tank_waste_7.name=진흙 컨테이너 +item.tank_waste_8.name=진흙 컨테이너 + +item.can_empty.name=빈 캔 +item.can_smart.name='스마트' 에너지 드링크 +item.can_creature.name='생물'에너지 드링크 +item.can_redbomb.name='레드밤' 에너지 드링크 +item.can_mrsugar.name='박사. 슈가청량음료 +item.can_overcharge.name=과충전 섬망 XT +item.can_luna.name=블랙 메사 루나 - 다크 콜라 +item.can_bepis.name=베피스 +item.can_breen.name=브린스 박사 개인 보호구역 +item.bottle_empty.name=빈 폭탄 모양 병 +item.bottle_nuka.name=누카 콜라 한 병 +item.bottle_cherry.name=누카 체리 병 +item.bottle_quantum.name=누카 콜라 퀀텀 병 +item.bottle_sparkle.name=S~콜라 한병 +item.bottle_rad.name=S~콜라 RAD 한 병 +item.bottle2_empty.name=빈 병 +item.bottle2_korl.name=콜 +item.bottle2_fritz.name=프리츠 콜라 +item.bottle2_korl_special.name=첫 번째 콜 +item.bottle2_fritz_special.name=첫 번째 프리츠 콜라 +item.bottle2_sunset.name=선셋 사르사파릴라 +item.chocolate_milk.name=초콜릿 우유 +item.cbt_device.name=CBT 장치 +item.cap_nuka.name=누카콜라 병뚜껑 +item.cap_quantum.name=누카콜라 퀀텀 보틀캡 +item.cap_sparkle.name=S~콜라 병뚜껑 +item.cap_rad.name=에스~콜라 RAD 병뚜껑 +item.cap_korl.name=콜 병뚜껑 +item.cap_fritz.name=프리츠 콜라 병뚜껑 +item.cap_sunset.name=선셋 사르사파릴라 병뚜껑 +item.cap_star.name=선셋 사르사파릴라 스타 캡 +item.ring_pull.name=링 풀 +item.canned_beef.name=쇠고기 통조림 +item.canned_tuna.name=통조림 참치 +item.canned_mystery.name=통조림 미스터리 고기 +item.canned_pashtet.name=패스테트 +item.canned_cheese.name=통조림 녹은 치즈 +item.canned_jizz.name=FlimFlam Industries 통조림 종마 우유™ +item.canned_milk.name=통조림 증발 우유 +item.canned_ass.name=통조림 엉덩이 +item.canned_pizza.name=통조림 페퍼로니 피자 +item.canned_tube.name=우주 비행사 음식 튜브 +item.canned_tomato.name=통조림 토마토 수프 +item.canned_asbestos.name=통조림 석면 +item.canned_bhole.name=통조림 블랙홀 +item.canned_hotdogs.name=통조림 핫도그 +item.canned_leftovers.name=남은 음식 보존 +item.canned_yogurt.name=요구르트 통조림 +item.canned_stew.name=통조림 "버섯 스튜" +item.canned_chinese.name=통조림 중국 음식 +item.canned_oil.name=캔 엔진 오일 +item.canned_fist.name=통조림 주먹 +item.canned_spam.name=통조림 스팸 +item.canned_fried.name=통조림 프라이드 치킨 +item.canned_napalm.name=통조림 네이팜 +item.canned_diesel.name=통조림 디젤 +item.canned_kerosene.name=통조림 등유 +item.canned_recursion.name=미리 준비된 재귀 +item.canned_bark.name=통조림 소나무 껍질 육포 +item.can_key.name=와인딩 키 +item.pudding.name=푸딩 + +item.canteen_13.name=볼트 13 수통 +item.canteen_vodka.name=세련된 플라스크 + +item.bottle_opener.name=HBM이 직접 제작한 병따개 + +item.blades_aluminium.name=알루미늄 슈레더 블레이드 +item.blades_gold.name=황금 분쇄기 칼날 +item.blades_iron.name=철 분쇄기 블레이드 +item.blades_steel.name=강철 슈레더 블레이드 +item.blades_titanium.name=티타늄 슈레더 블레이드 +item.blades_advanced_alloy.name=고급 분쇄기 블레이드 +item.blades_combine_steel.name=CMB 슈레더 블레이드 +item.blades_schrabidium.name=슈라비듐 슈레더 블레이드 +item.blades_desh.name=Desh 슈레더 블레이드 + +item.stamp_stone_flat.name=플랫 스탬프(스톤) +item.stamp_stone_plate.name=플레이트 스탬프(스톤) +item.stamp_stone_wire.name=와이어 스탬프(석재) +item.stamp_stone_circuit.name=회로 스탬프(석재) item.stamp_iron_flat.name=플랫 스탬프(철) item.stamp_iron_plate.name=플레이트 스탬프(철) item.stamp_iron_wire.name=와이어 스탬프(철) -item.stamp_obsidian_circuit.name=서킷 스탬프(흑요석) -item.stamp_obsidian_flat.name=플랫 스탬프(흑요석) -item.stamp_obsidian_plate.name=플레이트 스탬프(흑요석) -item.stamp_obsidian_wire.name=와이어 스탬프(흑요석) -item.stamp_schrabidium_circuit.name=서킷 스탬프(Schrabidium) -item.stamp_schrabidium_flat.name=플랫 스탬프(Schrabidium) -item.stamp_schrabidium_plate.name=플레이트 스탬프(스크라비디움) -item.stamp_schrabidium_wire.name=와이어 스탬프(Schrabidium) -item.stamp_steel_circuit.name=서킷 스탬프(스틸) +item.stamp_iron_circuit.name=회로 스탬프(철) item.stamp_steel_flat.name=플랫 스탬프(스틸) -item.stamp_steel_plate.name=플레이트 스탬프(스틸) -item.stamp_steel_wire.name=와이어 스탬프(스틸) -item.stamp_stone_circuit.name=서킷 스탬프(스톤) -item.stamp_stone_flat.name=플랫 스탬프(스톤) -item.stamp_stone_plate.name=플레이트 스탬프(스톤) -item.stamp_stone_wire.name=와이어 스탬프(스톤) -item.stamp_titanium_circuit.name=서킷 스탬프(티타늄) +item.stamp_steel_plate.name=플레이트 스탬프(강철) +item.stamp_steel_wire.name=와이어 스탬프(강철) +item.stamp_steel_circuit.name=회로 스탬프(강철) item.stamp_titanium_flat.name=플랫 스탬프(티타늄) item.stamp_titanium_plate.name=플레이트 스탬프(티타늄) item.stamp_titanium_wire.name=와이어 스탬프(티타늄) -item.starmetal_axe.name=별금속 도끼 -item.starmetal_boots.name=스타메탈 부츠 -item.starmetal_helmet.name=스타메탈 헬멧 -item.starmetal_hoe.name=스타메탈 괭이 -item.starmetal_legs.name=스타메탈 레깅스 -item.starmetal_pickaxe.name=스타메탈 곡괭이 -item.starmetal_plate.name=별금속 흉갑 -item.starmetal_shovel.name=스타메탈 삽 -item.starmetal_sword.name=스타메탈 소드 -item.static_sandwich.name=TV 정적으로 장식된 샌드위치 -item.stealth_boy.name=스텔스 장치 -item.steel_axe.name=강철 도끼 -item.steel_boots.name=스틸 부츠 -item.steel_helmet.name=강철 헬멧 -item.steel_hoe.name=강철 괭이 -item.steel_legs.name=스틸 레깅스 -item.steel_pickaxe.name=강철 곡괭이 -item.steel_plate.name=강철 흉갑 -item.steel_shovel.name=강철 삽 -item.steel_sword.name=강철검 -item.stopsign.name=정지 신호 전투 도끼 -item.sulfur.name=황 -item.survey_scanner.name=측량 스캐너 -item.syringe_antidote.name=해독제 -item.syringe_awesome.name=엄청난 -item.syringe_empty.name=빈 주사기 -item.syringe_metal_empty.name=금속 주사기 -item.syringe_metal_medx.name=Med-X -item.syringe_metal_psycho.name=싸이코 -item.syringe_metal_stimpak.name=스팀팩 -item.syringe_metal_super.name=슈퍼 스팀팩 -item.syringe_mkunicorn.name=엠쿠니콘 -item.syringe_poison.name=유독 한 주사 -item.syringe_taint.name=워터리 테인트 주입 -item.t45_boots.name=T45 파워 아머 부츠 -item.t45_helmet.name=T45 파워 아머 헬멧 -item.t45_kit.name=T45 파워 아머 키트 -item.t45_legs.name=T45 파워 아머 레깅스 -item.t45_plate.name=T45 파워 아머 흉갑 -item.tank_steel.name=강철 탱크 -item.tank_waste_0.name=머드 컨테이너 -item.tank_waste_1.name=머드 컨테이너 -item.tank_waste_2.name=머드 컨테이너 -item.tank_waste_3.name=머드 컨테이너 -item.tank_waste_4.name=머드 컨테이너 -item.tank_waste_5.name=머드 컨테이너 -item.tank_waste_6.name=머드 컨테이너 -item.tank_waste_7.name=머드 컨테이너 -item.tank_waste_8.name=머드 컨테이너 -item.telepad.name=텔레패드 -item.tem_flakes.name=템 플레이크 -item.tem_flakes1.name=템 플레이크 -item.tem_flakes2.name=템 플레이크 -item.template_folder.name=머신 템플릿 폴더 -item.test_nuke_igniter.name=점화기 -item.test_nuke_propellant.name=추진제 -item.test_nuke_tier1_bullet.name=U235 발사체(1단계) -item.test_nuke_tier1_shielding.name=중성자 반사경(1단계) -item.test_nuke_tier1_target.name=아임계 U235 대상(계층 1) -item.test_nuke_tier2_bullet.name=MOX 발사체(2단계) -item.test_nuke_tier2_shielding.name=중성자 반사체(계층 2) -item.test_nuke_tier2_target.name=아임계 MOX 타겟(계층 2) +item.stamp_titanium_circuit.name=회로 스탬프(티타늄) +item.stamp_obsidian_flat.name=플랫 스탬프(흑요석) +item.stamp_obsidian_plate.name=플레이트 스탬프(흑요석) +item.stamp_obsidian_wire.name=와이어 스탬프(흑요석) +item.stamp_obsidian_circuit.name=회로 스탬프(흑요석) +item.stamp_schrabidium_flat.name=플랫 스탬프 (슈라비듐) +item.stamp_schrabidium_plate.name=플레이트 스탬프(슈라비듐) +item.stamp_schrabidium_wire.name=와이어 스탬프 (슈라비듐) +item.stamp_schrabidium_circuit.name=회로 스탬프(슈라비듐) +item.stamp_357.name=.357 매그넘 스탬프 +item.stamp_44.name=.44 매그넘 스탬프 +item.stamp_9.name=소구경 우표 +item.stamp_50.name=대구경 우표 + +item.stamp_desh_flat.name=플랫 스탬프(데쉬) +item.stamp_desh_plate.name=플레이트 스탬프(데쉬) +item.stamp_desh_wire.name=와이어 스탬프(데쉬) +item.stamp_desh_circuit.name=회로 스탬프(데쉬) +item.stamp_desh_357.name=.357 매그넘 스탬프(데쉬) +item.stamp_desh_44.name=.44 매그넘 스탬프(데쉬) +item.stamp_desh_9.name=소구경 스탬프(데쉬) +item.stamp_desh_50.name=대구경 스탬프(데쉬) + +item.part_lithium.name=리튬 가루 상자 +item.part_beryllium.name=베릴륨 가루 상자 +item.part_carbon.name=탄소 먼지 상자 +item.part_copper.name=구리 가루 상자 +item.part_plutonium.name=플루토늄 먼지 상자 + +item.particle_aelectron.name=양전자 캡슐 +item.particle_amat.name=반물질 캡슐 +item.particle_aproton.name=항양성자 캡슐 +item.particle_aschrab.name=안티스크라비디움 캡슐 +item.particle_dark.name=암흑물질 캡슐 +item.particle_empty.name=빈 입자 캡슐 +item.particle_higgs.name=힉스 보존 캡슐 +item.particle_muon.name=뮤온캡슐 +item.particle_sparkticle.name=스파크티클 캡슐 +item.particle_strange.name=이상한 쿼크 캡슐 +item.particle_copper.name=구리 이온 캡슐 +item.particle_digamma.name=§c디감마 입자§r +item.particle_lead.name=납 이온 캡슐 +item.particle_hydrogen.name=수소이온캡슐 + +geiger.title=가이거 계수관 +geiger.chunkRad=현재 청크 방사선: +geiger.envRad=총 환경 방사선: +geiger.recievedRad=총 수신된 방사선: +geiger.playerRad=플레이어 오염: +geiger.playerRes=플레이어 저항: + +dosimeter.title=선량계 + +digamma.title=디감마 진단 +digamma.playerDigamma=플레이어 오염: +digamma.playerHealth=플레이어 고갈: + +item.rune_blank.name=빈 촉매 매트릭스 +item.rune_isa.name=냉각 촉매 매트릭스 +item.rune_dagaz.name=균형 잡힌 촉매 매트릭스 +item.rune_hagalaz.name=거친 촉매 매트릭스 +item.rune_jera.name=곱셈 촉매 매트릭스 +item.rune_thurisaz.name=첨가제 촉매 매트릭스 + +item.ams_catalyst_blank.name=빈 DFC 촉매 +item.ams_catalyst_aluminium.name=알루미늄 DFC 촉매 +item.ams_catalyst_beryllium.name=베릴륨 DFC 촉매 +item.ams_catalyst_caesium.name=세세슘 DFC 촉매 +item.ams_catalyst_cerium.name=세륨 DFC 촉매 +item.ams_catalyst_cobalt.name=코발트 DFC 촉매 +item.ams_catalyst_copper.name=구리 DFC 촉매 +item.ams_catalyst_euphemium.name=유페늄 DFC 촉매 +item.ams_catalyst_iron.name=철 DFC 촉매 +item.ams_catalyst_lithium.name=리튬 DFC 촉매 +item.ams_catalyst_niobium.name=니오븀 DFC 촉매 +item.ams_catalyst_strontium.name=스트론튬 DFC 촉매 +item.ams_catalyst_thorium.name=토륨 DFC 촉매 +item.ams_catalyst_tungsten.name=텅스텐 DFC 촉매 +item.ams_catalyst_schrabidium.name=슈라비듐 DFC 촉매 +item.ams_catalyst_dineutronium.name=디뉴트로늄 DFC 촉매 + +item.ams_focus_blank.name=빈 안정기 렌즈 +item.ams_focus_limiter.name=제한 안정기 렌즈 +item.ams_focus_booster.name=부스팅 안정기 렌즈 +item.ams_focus_omega.name=정의되지 않은 안정기 렌즈 + +item.ams_muzzle.name=광선 방출 총구 +item.ams_lens.name=안정기 렌즈 +item.ams_core_sing.name=활기찬 특이점(DFC 코어) +item.ams_core_wormhole.name=작은 웜홀(DFC 코어) +item.ams_core_eyeofharmony.name=조화의 눈(DFC 코어) +item.ams_core_thingy.name=Thingy(DFC 코어) + +item.crystal_energy.name=에너지 크리스탈 +item.pellet_coolant.name=냉각수 클러스터 + +item.linker.name=텔레링커 +item.reactor_sensor.name=원자로 원격 센서 +item.oil_detector.name=오일 저장소 감지기 +item.oil_detector.desc1=오일을 스캔하려면 마우스 오른쪽 버튼을 클릭하세요. +item.oil_detector.desc2=감지기는 더 큰 침전물만 찾아냅니다. +item.oil_detector.bullseyeBedrock=바로 아래 기반암 기름 매장지 +item.oil_detector.detectedBedrock=근처에서 기반암유가 발견됨 +item.oil_detector.bullseye=바로 아래 석유 매장지 +item.oil_detector.detected=근처에서 기름이 발견되었습니다 +item.oil_detector.noOil=오일이 감지되지 않음 +item.geiger_counter.name=휴대용 가이거 계수기 +tile.geiger.name=가이거 계수관 +item.dosimeter.name=선량계 +item.digamma_diagnostic.name=디감마 진단 +tile.glass_polonium.name=폴로늄 유리 +item.survey_scanner.name=설문조사 스캐너 + item.thermo_element.name=열전소자 -item.thermo_unit_empty.name=열 분배 장치 -item.thermo_unit_endo.name=냉기 분배 장치 -item.thermo_unit_exo.name=열 분배 장치 -item.thruster_large.name=대형 추진기 -item.thruster_medium.name=미디엄 스러스터 -item.thruster_nuclear.name=LV-N 핵 로켓 엔진 -item.thruster_small.name=소형 추진기 -item.titanium_axe.name=티타늄 도끼 -item.titanium_boots.name=티타늄 부츠 -item.titanium_filter.name=티타늄 필터 -item.titanium_helmet.name=티타늄 헬멧 -item.titanium_hoe.name=티타늄 괭이 -item.titanium_legs.name=티타늄 레깅스 -item.titanium_pickaxe.name=티타늄 곡괭이 -item.titanium_plate.name=티타늄 흉갑 -item.titanium_shovel.name=티타늄 삽 -item.titanium_sword.name=티타늄 검 -item.toothpicks.name=이쑤시개 -item.trinitite.name=삼위일체 -item.tritium_deuterium_cake.name=삼중수소 케이크 -item.tsar_core.name=차르 봄바 코어 -item.tsar_kit.name=차르 봄바 키트 -item.turbine_titanium.name=티타늄 증기 터빈 -item.turbine_tungsten.name=강화 터보팬 블레이드 -item.turret_biometry.name=터렛 텔레메트리 카드 -item.turret_cheapo_ammo.name=6x24 칩포 포탑 탄약 -item.turret_chip.name=터렛 AI 칩 -item.turret_control.name=터렛 컨트롤러 -item.turret_cwis_ammo.name=CIWS 20mm 탄약통 -item.turret_flamer_ammo.name=화염 포탑 연료 탱크 -item.turret_heavy_ammo.name=헤비 MG 터렛 탄약 -item.turret_light_ammo.name=라이트 MG 터렛 탄약 상자 -item.turret_rocket_ammo.name=로켓 포탑 2x4 탄약 -item.turret_spitfire_ammo.name=AA-쉘 -item.turret_tau_ammo.name=타우 포탑 우라늄 탄약 -item.twinkie.name=트윙키 -item.ullapool_caber.name=울라풀 까베르 -item.undefined.name=한정되지 않은 -item.upgrade_afterburn_1.name=애프터버너 업그레이드 Mk.I -item.upgrade_afterburn_2.name=애프터버너 업그레이드 Mk.II -item.upgrade_afterburn_3.name=애프터버너 업그레이드 Mk.III -item.upgrade_centrifuge.name=원심분리기 업그레이드 -item.upgrade_crystallizer.name=결정체 업그레이드 -item.upgrade_effect_1.name=효율성 업그레이드 Mk.I -item.upgrade_effect_2.name=효율성 업그레이드 Mk.II -item.upgrade_effect_3.name=효율성 업그레이드 Mk.III -item.upgrade_fortune_1.name=포춘 업그레이드 Mk.I -item.upgrade_fortune_2.name=포춘 업그레이드 Mk.II -item.upgrade_fortune_3.name=포춘 업그레이드 Mk.III -item.upgrade_health.name=이미터 상태 업그레이드 -item.upgrade_nullifier.name=스크랩 파괴자 업그레이드 -item.upgrade_overdrive_1.name=오버드라이브 머신 업그레이드 Mk.I -item.upgrade_overdrive_2.name=오버드라이브 머신 업그레이드 Mk.II -item.upgrade_overdrive_3.name=오버드라이브 머신 업그레이드 Mk.III -item.upgrade_power_1.name=절전 업그레이드 Mk.I -item.upgrade_power_2.name=절전 업그레이드 Mk.II -item.upgrade_power_3.name=절전 업그레이드 Mk.III -item.upgrade_radius.name=방사체 반경 업그레이드 -item.upgrade_screm.name=절규하는 과학자 업그레이드 -item.upgrade_shredder.name=슈레더 업그레이드 -item.upgrade_smelter.name=제련소 업그레이드 -item.upgrade_speed_1.name=스피드 업그레이드 Mk.I -item.upgrade_speed_2.name=스피드 업그레이드 Mk.II -item.upgrade_speed_3.name=스피드 업그레이드 Mk.III -item.upgrade_template.name=머신 업그레이드 템플릿 -item.v1.name=V1 -item.volcanic_pickaxe.name=녹은 곡괭이 -item.wand_d.name=디버그 완드 -item.wand_k.name=건설 지팡이 -item.wand_s.name=구조 완드 -item.warhead_buster_large.name=대형 벙커 버스터 탄두 -item.warhead_buster_medium.name=미디엄 벙커 버스터 탄두 -item.warhead_buster_small.name=소형 벙커 버스터 탄두 -item.warhead_cluster_large.name=대형 클러스터 탄두 -item.warhead_cluster_medium.name=중형 클러스터 탄두 -item.warhead_cluster_small.name=소형 클러스터 탄두 -item.warhead_generic_large.name=대형 탄두 -item.warhead_generic_medium.name=중형 탄두 -item.warhead_generic_small.name=소형 탄두 -item.warhead_incendiary_large.name=대형 소이 탄두 -item.warhead_incendiary_medium.name=중간 소이 탄두 -item.warhead_incendiary_small.name=작은 소이 탄두 -item.warhead_mirv.name=열핵 탄두 -item.warhead_mirvlet.name=미르브 -item.warhead_nuclear.name=핵탄두 -item.warhead_thermo_endo.name=흡열 탄두 -item.warhead_thermo_exo.name=발열 탄두 -item.warhead_volcano.name=지각 탄두 -item.waste_mox.name=고갈된 MOX 연료 -item.waste_mox_hot.name=고갈된 MOX 연료(뜨거운) -item.waste_plutonium.name=열화 플루토늄 연료 -item.waste_plutonium_hot.name=열화 플루토늄 연료(뜨거운) -item.waste_schrabidium.name=고갈된 슈라비디움 연료 -item.waste_schrabidium_hot.name=고갈된 슈라비디움 연료(뜨거운) -item.waste_thorium.name=열화 토륨 연료 -item.waste_thorium_hot.name=열화 토륨 연료(뜨거운) -item.waste_uranium.name=열화 우라늄 연료 -item.waste_uranium_hot.name=열화 우라늄 연료(뜨거운) -item.watch.name=깨진 회중시계 -item.wd40.name=VT-40 +item.limiter.name=발전기 리미터 + +item.multitool_dig.name=파워 피스트(디깅 클로) +item.multitool_silk.name=파워 피스트(실크 터치 클로) +item.multitool_ext.name=파워 피스트(광석 추출기) +item.multitool_miner.name=파워 피스트(마이닝 레이저 추출) +item.multitool_hit.name=파워 피스트(주먹) +item.multitool_beam.name=파워 피스트(재퍼) +item.multitool_sky.name=파워 피스트 (크랙 더 스카이) +item.multitool_mega.name=파워피스트(슈퍼펀치) +item.multitool_joule.name=파워피스트(기가줄) +item.multitool_decon.name=파워 피스트(오염 제거기) + +item.australium_iii.name=마크 III 수명 연장 장치 +item.australium_iv.name=마크 IV 수명 연장 장치 +item.australium_v.name=마크 V 수명 연장 장치 + +item.weapon_saw.name=의사 조력 살인 item.weapon_bat.name=리차드의 디폴트 -item.weapon_bat_nail.name=클리셰 +item.weapon_bat_nail.name=진부한 표현 item.weapon_golf_club.name=러시아 마피아 클럽 -item.weapon_pipe_lead.name=수동 오버라이드 -item.weapon_pipe_rusty.name=자세 조절기 -item.weapon_saw.name=의사 조력 살인 -item.weaponized_starblaster_cell.name=§c리깅된 스타 블래스터 에너지 셀§r -item.wild_p.name=와일드 페가수스 드라이 위스키 -item.wings_limp.name=절름발이 날개 -item.wings_murk.name=어두운 날개 -item.wire_advanced_alloy.name=초전도체 -item.wire_aluminium.name=알루미늄 와이어 -item.wire_copper.name=구리 와이어 -item.wire_gold.name=골드 와이어 -item.wire_magnetized_tungsten.name=4000K 고온 초전도체 -item.wire_red_copper.name=레드 구리 와이어 -item.wire_schrabidium.name=슈라비디움 와이어 -item.wire_tungsten.name=텅스텐 와이어 -item.wiring_red_copper.name=케이블 드럼 +item.weapon_pipe_rusty.name=태도 조절자 +item.weapon_pipe_lead.name=수동 재정의 +item.reer_graar.name=더 리어 그라르 +item.stopsign.name=정지 신호 전투 도끼 +item.sopsign.name=Sop Sign 전투 도끼 +item.chernobylsign.name=체르노빌 경고 표시 전투 도끼 +item.diamond_gavel.name=다이아몬드 망치 +item.lead_gavel.name=납 망치 item.wood_gavel.name=나무 망치 -item.wrench.name=파이프 렌치 -item.wrench_flipped.name=렌치 위의 칼날 -item.xanax.name=NAXA 안티 디감마 약물 -itemGroup.tabBlocks=NTM 블록 -itemGroup.tabConsumable=NTM 소모품 및 장비 -itemGroup.tabControl=NTM 기계 항목 및 연료 -itemGroup.tabMachine=NTM 기계 -itemGroup.tabMissile=NTM 미사일과 위성 -itemGroup.tabNuke=NTM 폭탄 -itemGroup.tabParts=NTM 리소스 및 부품 -itemGroup.tabRessource=NTM 리소스 -itemGroup.tabTemplate=NTM 템플릿 -itemGroup.tabTest=핵 기술 모드 테스트 탭 -itemGroup.tabWeapon=NTM 무기 및 포탑 -key.categories.hbm=Hbm의 원자력 기술 모드 -key.categories.hbm.craneLoad=RBMK 크레인 하중 -key.categories.hbm.craneMoveDown=RBMK 크레인 다운 -key.categories.hbm.craneMoveLeft=RBMK 크레인 왼쪽 -key.categories.hbm.craneMoveRight=RBMK 크레인 우측 -key.categories.hbm.craneMoveUp=RBMK 크레인 업 -key.categories.hbm.reload=새로고침 -key.categories.hbm.toggleBack=뒤로 전환 -key.categories.hbm.toggleHUD=Hud 전환 -key.fsb_flashlight=FSB 손전등 전환 -key.jetpack_activate=제트팩 전환 -key.jetpack_hover=Jetpack 호버 모드 전환 -key.jetpack_hud=Jetpack HUD 모드 전환 -lung_scanner.player_asbestos_health=폐 건강[석면]: -lung_scanner.player_coal_health=폐 건강[석탄]: -lung_scanner.player_total_health=폐 건강 합계: -lung_scanner.title=폐 진단 -potion.hbm_bang=! ! ! -potion.hbm_lead=납 중독 -potion.hbm_mutation=오염된 심장 -potion.hbm_phosphorus=인화상 -potion.hbm_radaway=라다웨이 -potion.hbm_radiation=더럽히는 -potion.hbm_radx=라드-X -potion.hbm_stability=안정 -potion.hbm_taint=더럽혀진 -potion.hbm_telekinesis=! ! ! -rbmk.boiler.steam=스팀: %s / %s -rbmk.boiler.type=압축기: %s -rbmk.boiler.water=급수: %s / %s -rbmk.control.blue=§1블루 그룹 -rbmk.control.green=§a그린 그룹 -rbmk.control.level=%에스 -rbmk.control.purple=§5퍼플 그룹 -rbmk.control.red=§c레드 그룹 -rbmk.control.yellow=§e노란색 그룹 -rbmk.heat=열 온도: %s -rbmk.moderated=검토됨 -rbmk.rod.coreTemp=심부 온도: %s -rbmk.rod.depletion=고갈: %s -rbmk.rod.skinTemp=피부 온도: %s / %s -rbmk.rod.xenon=제논 독: %s -tile.absorber.name=방사선 흡수체 -tile.absorber_green.name=고급 방사선 흡수체 -tile.absorber_pink.name=엘리트 방사선 흡수기 -tile.absorber_red.name=향상된 방사선 흡수체 -tile.acid_block.name=산 -tile.ams_base.name=AMS 베이스 [WIP] -tile.ams_emitter.name=AMS 이미터 [WIP] -tile.ams_limiter.name=AMS 안정기 [WIP] -tile.ancient_scrap.name=고대 고철 -tile.anvil_bismuth.name=비스무트 모루 -tile.anvil_dnt.name=다이뉴트로늄 앤빌 -tile.anvil_ferrouranium.name=페로우라늄 앤빌 -tile.anvil_iron.name=철 모루 -tile.anvil_lead.name=리드 앤빌 -tile.anvil_meteorite.name=운석 모루 -tile.anvil_murky.name=머키 앤빌 -tile.anvil_schrabidate.name=Ferric Schrabidate 모루 -tile.anvil_starmetal.name=스타메탈 모루 -tile.anvil_steel.name=강철 모루 -tile.ash_digamma.name=금연 건강 증진 협회 -tile.asphalt.name=아스팔트 -tile.balefire.name=발파이어 -tile.barbed_wire.name=가시 철사 -tile.barbed_wire_acid.name=가성 철조망 -tile.barbed_wire_fire.name=불타는 철조망 -tile.barbed_wire_poison.name=독이 든 철조망 -tile.barbed_wire_ultradeath.name=구름 철조망 -tile.barbed_wire_wither.name=시든 철조망 -tile.barrel_antimatter.name=자성 반물질 용기 -tile.barrel_corroded.name=부식된 통 -tile.barrel_iron.name=철통 -tile.barrel_plastic.name=세이프 배럴™ -tile.barrel_steel.name=스틸 배럴 -tile.barrel_tcalloy.name=테크네튬 강철 배럴 -tile.barricade.name=모래주머니 -tile.basalt.name=현무암 -tile.basalt_asbestos.name=석면이 풍부한 현무암 -tile.basalt_brick.name=현무암 벽돌 -tile.basalt_fluorite.name=형석이 풍부한 현무암 -tile.basalt_gem.name=보석이 풍부한 현무암 -tile.basalt_polished.name=광택 현무암 -tile.basalt_smooth.name=매끄러운 현무암 -tile.basalt_sulfur.name=유황이 풍부한 현무암 -tile.basalt_tiles.name=현무암 타일 -tile.blast_door.name=슬라이딩 블래스트 도어 -tile.block_actinium.name=악티늄 블록 -tile.block_advanced_alloy.name=고급 합금 블록 -tile.block_aluminium.name=알루미늄 블록 -tile.block_asbestos.name=석면 블록 -tile.block_australium.name=오스트랄리움 블록 -tile.block_beryllium.name=베릴륨 블록 -tile.block_bismuth.name=비스무트 블록 -tile.block_boron.name=붕소 블록 -tile.block_cap_fritz.name=프리츠 콜라 병뚜껑 블록 -tile.block_cap_korl.name=Korl 병뚜껑 블록 -tile.block_cap_nuka.name=누카 콜라 병뚜껑 블록 -tile.block_cap_quantum.name=누카콜라 양자 병뚜껑 블록 -tile.block_cap_rad.name=S~Cola RAD 병뚜껑 블록 -tile.block_cap_sparkle.name=S~Cola 병뚜껑 블록 -tile.block_cap_star.name=블록 오브 선셋 사르사파릴라 스타 캡 -tile.block_cap_sunset.name=블록 오브 선셋 사르사파릴라 병뚜껑 -tile.block_cobalt.name=코발트 블록 -tile.block_coltan.name=콜탄 블록 -tile.block_combine_steel.name=CMB 강철 블록 -tile.block_copper.name=구리 블록 -tile.block_corium.name=진피 -tile.block_corium_cobble.name=코어블스톤 -tile.block_daffergon.name=Daffergon 블록 -tile.block_desh.name=강화된 데시 블록 -tile.block_dineutronium.name=다이뉴트로늄 블록 -tile.block_dura_steel.name=고속철강 블록 -tile.block_electrical_scrap.name=전기 스크랩 블록 -tile.block_euphemium.name=완곡한 블록 -tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium 클러스터 -tile.block_fallout.name=낙진 차단 -tile.block_fiberglass.name=유리 섬유 롤 -tile.block_fluorite.name=형석 블록 -tile.block_foam.name=거품 -tile.block_graphite.name=흑연 블록 -tile.block_graphite_drilled.name=뚫린 흑연 -tile.block_graphite_fuel.name=파일 연료 -tile.block_graphite_plutonium.name=파일 연료(사육) -tile.block_graphite_rod.name=말뚝 제어봉 -tile.block_graphite_source.name=파일 중성자 소스 -tile.block_insulator.name=단열재 롤 -tile.block_lanthanium.name=란탄 블록 -tile.block_lead.name=리드 블록 -tile.block_lithium.name=리튬 블록 -tile.block_magnetized_tungsten.name=자화 텅스텐 블록 -tile.block_meteor.name=운석 블록 -tile.block_meteor_broken.name=부서진 운석 블록 -tile.block_meteor_cobble.name=운석 조약돌 -tile.block_meteor_molten.name=뜨거운 운석 조약돌 -tile.block_meteor_treasure.name=운석 보물 블록 -tile.block_mox_fuel.name=MOX 연료 블록 -tile.block_neptunium.name=넵투늄-237 블록 -tile.block_niobium.name=니오븀 블록 -tile.block_niter.name=나이터 블록 -tile.block_niter_reinforced.name=강화된 나이터 -tile.block_plutonium.name=플루토늄 블록 -tile.block_plutonium_fuel.name=플루토늄 연료 블록 -tile.block_polonium.name=폴로늄-210 블록 -tile.block_polymer.name=폴리머 블록 -tile.block_pu238.name=플루토늄-238 블록 -tile.block_pu239.name=플루토늄-239 블록 -tile.block_pu240.name=플루토늄-240 블록 -tile.block_pu_mix.name=원자로 등급 플루토늄 블록 -tile.block_ra226.name=라듐-226 블록 -tile.block_red_copper.name=붉은 구리 블록 -tile.block_red_phosphorus.name=적린 블록 -tile.block_reiium.name=레이움 블록 -tile.block_saturnite.name=토성 블록 -tile.block_schrabidate.name=Ferric Schrabidate의 블록 -tile.block_schrabidium.name=Schrabidium-326 블록 -tile.block_schrabidium_cluster.name=슈라비디움 클러스터 -tile.block_schrabidium_fuel.name=Schrabidium 연료 블록 -tile.block_schraranium.name=슈라라늄 블록 -tile.block_scrap.name=스크랩 블록 -tile.block_semtex.name=Semtex 블록 -tile.block_smore.name=블록 오브 스모어 -tile.block_solinium.name=솔리늄-327 블록 -tile.block_starmetal.name=§9스타메탈 블록§r -tile.block_steel.name=강철 블록 -tile.block_sulfur.name=유황 블록 -tile.block_tantalium.name=탄탈륨 블록 -tile.block_thorium.name=토륨 블록 -tile.block_thorium_fuel.name=토륨 연료 블록 -tile.block_titanium.name=티타늄 블록 -tile.block_trinitite.name=트리니타이트 블록 -tile.block_tritium.name=삼중수소 세포 블록 -tile.block_tungsten.name=텅스텐 블록 -tile.block_u233.name=우라늄-233 블록 -tile.block_u235.name=우라늄-235 블록 -tile.block_u238.name=우라늄-238 블록 -tile.block_unobtainium.name=Unobtainium의 블록 -tile.block_uranium.name=우라늄 블록 -tile.block_uranium_fuel.name=우라늄 연료 블록 -tile.block_verticium.name=버티시움 블록 -tile.block_waste.name=핵 폐기물 블록 -tile.block_waste_painted.name=핵 폐기물의 페인트 블록 -tile.block_waste_vitrified.name=핵 폐기물의 유리화 블록 -tile.block_weidanium.name=Weidanium의 블록 -tile.block_white_phosphorus.name=백린 블록 -tile.block_yellowcake.name=옐로우케이크 블록 -tile.block_zirconium.name=지르코늄 블록 -tile.bm_power_box.name=블랙 메사 전원 스위치 -tile.boat.name=보트 -tile.bomb_multi.name=다목적 폭탄 -tile.bomber.name=추락한 폭격기 -tile.book_guide.name=Hbm의 원자력 기술 모드 매뉴얼 [LEGACY] -tile.boxcar.name=화차 -tile.brick_asbestos.name=석면 벽돌 -tile.brick_asbestos_slab.name=석면 벽돌 슬래브 -tile.brick_asbestos_stairs.name=석면 벽돌 계단 -tile.brick_compound.name=복합 메시 -tile.brick_compound_slab.name=복합 메쉬 슬래브 -tile.brick_compound_stairs.name=복합 메쉬 계단 -tile.brick_concrete.name=콘크리트 벽돌 -tile.brick_concrete_broken.name=깨진 콘크리트 벽돌 -tile.brick_concrete_broken_slab.name=깨진 콘크리트 슬래브 -tile.brick_concrete_broken_stairs.name=부서진 콘크리트 계단 -tile.brick_concrete_cracked.name=금이 간 콘크리트 벽돌 -tile.brick_concrete_cracked_slab.name=금이 간 콘크리트 슬래브 -tile.brick_concrete_cracked_stairs.name=금이 간 콘크리트 계단 -tile.brick_concrete_marked.name=표시된 콘크리트 벽돌 -tile.brick_concrete_mossy.name=이끼 콘크리트 벽돌 -tile.brick_concrete_mossy_slab.name=이끼 콘크리트 슬래브 -tile.brick_concrete_mossy_stairs.name=이끼 콘크리트 계단 -tile.brick_concrete_slab.name=콘크리트 벽돌 슬래브 -tile.brick_concrete_stairs.name=콘크리트 벽돌 계단 -tile.brick_dungeon.name=Berzelianite 벽돌 -tile.brick_dungeon_circle.name=브라질리언 서클 -tile.brick_dungeon_flat.name=Berzelianite 블록 -tile.brick_dungeon_tile.name=Berzelianite 타일 -tile.brick_jungle.name=에나자이트 벽돌 -tile.brick_jungle_circle.name=메카니스트 서클 -tile.brick_jungle_cracked.name=금이 간 Enargite 벽돌 -tile.brick_jungle_glyph.name=Enargite 글리프 브릭 -tile.brick_jungle_lava.name=마그마틱 에나자이트 벽돌 -tile.brick_jungle_mystic.name=비전 에나자이트 벽돌 -tile.brick_jungle_ooze.name=방사성 Enargite 벽돌 -tile.brick_jungle_trap.name=갇힌 Enargite 벽돌 -tile.brick_light.name=가벼운 벽돌 -tile.brick_obsidian.name=흑요석 벽돌 -tile.brick_obsidian_slab.name=흑요석 벽돌 슬래브 -tile.brick_obsidian_stairs.name=흑요석 벽돌 계단 -tile.broadcaster_pc.name=타락한 브로드캐스터 -tile.cable_switch.name=전원 스위치 -tile.cheater_virus.name=겔리드 완곡 -tile.cheater_virus_seed.name=불안정한 유페미움 슈라비드 블록 -tile.chlorine_gas.name=염소가스 -tile.cluster_aluminium.name=알루미늄 광석 클러스터 -tile.cluster_depth_iron.name=심층 철광석 클러스터 -tile.cluster_depth_titanium.name=깊이 있는 티타늄 광석 클러스터 -tile.cluster_depth_tungsten.name=깊이 텅스텐 광석 클러스터 -tile.cluster_iron.name=철광석 클러스터 -tile.cluster_titanium.name=티타늄 광석 클러스터 -tile.cmb_brick.name=CMB 스틸 타일 -tile.cmb_brick_reinforced.name=강화 CMB 벽돌 -tile.cmb_brick_reinforced_slab.name=강화 CMB 벽돌 슬래브 -tile.cmb_brick_reinforced_stairs.name=강화 CMB 벽돌 계단 -tile.compact_launcher.name=소형 발사대 -tile.concrete.name=콘크리트 타일 -tile.concrete_asbestos.name=석면 콘크리트 -tile.concrete_asbestos_slab.name=석면 콘크리트 슬래브 -tile.concrete_asbestos_stairs.name=석면 콘크리트 계단 -tile.concrete_black.name=블랙 콘크리트 -tile.concrete_black_slab.name=블랙 콘크리트 슬래브 -tile.concrete_black_stairs.name=검은색 콘크리트 계단 -tile.concrete_blue.name=파란색 콘크리트 -tile.concrete_blue_slab.name=파란색 콘크리트 슬래브 -tile.concrete_blue_stairs.name=파란색 콘크리트 계단 -tile.concrete_brown.name=갈색 콘크리트 -tile.concrete_brown_slab.name=갈색 콘크리트 슬래브 -tile.concrete_brown_stairs.name=갈색 콘크리트 계단 -tile.concrete_cyan.name=시안 콘크리트 -tile.concrete_cyan_slab.name=청록색 콘크리트 슬래브 -tile.concrete_cyan_stairs.name=청록색 콘크리트 계단 -tile.concrete_gray.name=회색 콘크리트 -tile.concrete_gray_slab.name=회색 콘크리트 슬래브 -tile.concrete_gray_stairs.name=회색 콘크리트 계단 -tile.concrete_green.name=녹색 콘크리트 -tile.concrete_green_slab.name=녹색 콘크리트 슬래브 -tile.concrete_green_stairs.name=녹색 콘크리트 계단 -tile.concrete_light_blue.name=하늘색 콘크리트 -tile.concrete_light_blue_slab.name=하늘색 콘크리트 슬래브 -tile.concrete_light_blue_stairs.name=하늘색 콘크리트 계단 -tile.concrete_lime.name=석회 콘크리트 -tile.concrete_lime_slab.name=석회 콘크리트 슬래브 -tile.concrete_lime_stairs.name=석회 콘크리트 계단 -tile.concrete_magenta.name=자홍색 콘크리트 -tile.concrete_magenta_slab.name=자홍색 콘크리트 슬래브 -tile.concrete_magenta_stairs.name=자홍색 콘크리트 계단 -tile.concrete_orange.name=주황색 콘크리트 -tile.concrete_orange_slab.name=주황색 콘크리트 슬래브 -tile.concrete_orange_stairs.name=주황색 콘크리트 계단 -tile.concrete_pillar.name=철근 철근 콘크리트 기둥 -tile.concrete_pink.name=핑크 콘크리트 -tile.concrete_pink_slab.name=핑크 콘크리트 슬래브 -tile.concrete_pink_stairs.name=핑크 콘크리트 계단 -tile.concrete_purple.name=보라색 콘크리트 -tile.concrete_purple_slab.name=보라색 콘크리트 슬래브 -tile.concrete_purple_stairs.name=보라색 콘크리트 계단 -tile.concrete_red.name=붉은 콘크리트 -tile.concrete_red_slab.name=빨간 콘크리트 슬래브 -tile.concrete_red_stairs.name=빨간 콘크리트 계단 -tile.concrete_silver.name=밝은 회색 콘크리트 -tile.concrete_silver_slab.name=실버 콘크리트 슬래브 -tile.concrete_silver_stairs.name=은색 콘크리트 계단 -tile.concrete_slab.name=콘크리트 슬래브 -tile.concrete_smooth.name=콘크리트 -tile.concrete_smooth_slab.name=매끄러운 콘크리트 슬래브 -tile.concrete_smooth_stairs.name=부드러운 콘크리트 계단 -tile.concrete_stairs.name=콘크리트 계단 -tile.concrete_white.name=흰색 콘크리트 -tile.concrete_white_slab.name=흰색 콘크리트 슬래브 -tile.concrete_white_stairs.name=흰색 콘크리트 계단 -tile.concrete_yellow.name=노란색 콘크리트 -tile.concrete_yellow_slab.name=노란색 콘크리트 슬래브 -tile.concrete_yellow_stairs.name=노란색 콘크리트 계단 -tile.control_panel0.name=[WIP]제어판 -tile.corium_block.name=액체 진피 -tile.crashed_bomb.name=바보 -tile.crate.name=보급품 상자 -tile.crate_ammo.name=별금속 상자 -tile.crate_can.name=상자 보존 -tile.crate_desh.name=접시 상자 -tile.crate_iron.name=철 상자 -tile.crate_jungle.name=에나자이트 크레이트 -tile.crate_lead.name=위험 물질 상자 -tile.crate_metal.name=기계 상자 -tile.crate_red.name=빨간 상자 -tile.crate_steel.name=강철 상자 -tile.crate_tungsten.name=텅스텐 상자 -tile.crate_weapon.name=무기 상자 -tile.crystal_hardened.name=강화된 다크 크리스탈 -tile.crystal_pulsar.name=맥동하는 수정 -tile.crystal_virus.name=다크 크리스탈 -tile.deco_aluminium.name=알루미늄 데코블록 -tile.deco_asbestos.name=석면 지붕 -tile.deco_beryllium.name=베릴륨 데코 블록 -tile.deco_lead.name=리드 데코 블록 -tile.deco_pipe.name=쇠 파이프 -tile.deco_pipe_framed.name=강관(프레임) -tile.deco_pipe_framed_green.name=그린 스틸 파이프(프레임) -tile.deco_pipe_framed_green_rusted.name=녹슨 녹색 강관(프레임) -tile.deco_pipe_framed_marked.name=가스관(액자) -tile.deco_pipe_framed_red.name=레드 스틸 파이프(액자) -tile.deco_pipe_framed_rusted.name=녹슨 강관(액자) -tile.deco_pipe_green.name=그린 스틸 파이프 -tile.deco_pipe_green_rusted.name=녹슨 녹색 강관 -tile.deco_pipe_marked.name=가스관 -tile.deco_pipe_quad.name=강관 -tile.deco_pipe_quad_green.name=그린 스틸 파이프 -tile.deco_pipe_quad_green_rusted.name=녹슨 녹색 강관 -tile.deco_pipe_quad_marked.name=가스관 -tile.deco_pipe_quad_red.name=레드 스틸 파이프 -tile.deco_pipe_quad_rusted.name=녹슨 강관 -tile.deco_pipe_red.name=레드 스틸 파이프 -tile.deco_pipe_rim.name=강관(테두리) -tile.deco_pipe_rim_green.name=그린 스틸 파이프(테두리) -tile.deco_pipe_rim_green_rusted.name=녹슨 녹색 강관(테두리) -tile.deco_pipe_rim_marked.name=가스관(테두리) -tile.deco_pipe_rim_red.name=레드 스틸 파이프(테두리) -tile.deco_pipe_rim_rusted.name=녹슨 강관(테두리) -tile.deco_pipe_rusted.name=녹슨 강관 -tile.deco_rbmk.name=RBMK 데코 -tile.deco_rbmk_smooth=RBMK 부드러운 데코 -tile.deco_red_copper.name=레드 구리 데코 블록 -tile.deco_sat_foeq.name=PEAF - 실험용 핵 추진 장치가 장착된 Mk.I FOEQ Duna Probe(Deco Block) -tile.deco_sat_laser.name=오비탈 데스 레이(데코 블록) -tile.deco_sat_mapper.name=표면 매핑 위성(Deco Block) -tile.deco_sat_radar.name=레이더 측량 위성(Deco Block) -tile.deco_sat_resonator.name=제니움 공진기 위성(Deco Block) -tile.deco_sat_scanner.name=깊이 자원 스캐닝 모듈이 있는 위성(Deco Block) -tile.deco_steel.name=스틸데코블럭 -tile.deco_titanium.name=티타늄 데코 블록 -tile.deco_tungsten.name=텅스텐 데코 블록 -tile.decon.name=방사선 오염 제거기 -tile.decon_digamma.name=디감마 제염기 -tile.depth_brick.name=깊이 벽돌 -tile.depth_dnt.name=DNT 강화 깊이 벽돌 -tile.depth_nether_brick.name=네더 깊이 벽돌 -tile.depth_nether_tiles.name=네더 깊이 타일 -tile.depth_tiles.name=깊이 타일 -tile.det_charge.name=폭발물 -tile.det_cord.name=데트 코드 -tile.det_miner.name=채굴 요금 -tile.det_nuke.name=핵 충전 -tile.dfc_core.name=다크 퓨전 코어 -tile.dfc_emitter.name=DFC 이미 터 -tile.dfc_injector.name=DFC 연료 분사 장치 -tile.dfc_receiver.name=DFC 수신기 -tile.dfc_stabilizer.name=DFC 안정제 -tile.digamma_matter.name=디감마리움 -tile.drill_pipe.name=드릴 파이프 -tile.ducrete.name=두크리트 -tile.ducrete_brick.name=두크리트 벽돌 -tile.ducrete_brick_slab.name=Ducrete 벽돌 슬래브 -tile.ducrete_brick_stairs.name=두크리트 벽돌 계단 -tile.ducrete_reinforced.name=강화된 듀르세테 -tile.ducrete_reinforced_slab.name=강화된 Ducrete 슬래브 -tile.ducrete_reinforced_stairs.name=강화 Ducrete 계단 -tile.ducrete_slab.name=두크리트 슬래브 -tile.ducrete_smooth.name=매끄러운 두크리트 -tile.ducrete_smooth_slab.name=부드러운 Ducrete 슬래브 -tile.ducrete_smooth_stairs.name=매끄러운 Ducrete 계단 -tile.ducrete_stairs.name=두크리트 계단 +item.mese_gavel.name=메세 망치 +item.mese_pickaxe.name=메세 곡괭이 +item.chlorophyte_pickaxe.name=엽록소 곡괭이 + +item.letter.name=빠른 우편 +item.polaroid.name=폴라로이드 +item.glitch.name=결함 +item.book_secret.name=3-596-50802-9 +item.book_of_.name=박스카의 책 +item.burnt_bark.name=탄 나무껍질 + +item.loot_10.name=사이즈 10 미사일 전리품 상자 +item.loot_15.name=사이즈 15 미사일 전리품 상자 +item.loot_misc.name=일반 미사일 전리품 상자 + +item.crystal_horn.name=크리스탈 혼 +item.crystal_charred.name=까맣게 탄 수정 +item.ingot_lanthanium.name=반안정한 란타늄 주괴 +item.ingot_actinium.name=반안정한 악티늄 주괴 + tile.dummy_block.name=더미 블록 tile.dummy_port.name=더미 블록(전기 포트) -tile.dungeon_chain.name=메탈 체인 -tile.emp_bomb.name=EMP 장치 -tile.energy_ball.name=에너지 볼 -tile.factory_advanced_conductor.name=고급 공장 전기 포트 -tile.factory_advanced_core.name=고급 공장 핵심 구성 요소 -tile.factory_advanced_furnace.name=고급 공장 액세스 해치 -tile.factory_advanced_hull.name=고급 공장 케이싱 -tile.factory_titanium_conductor.name=기본 공장 전기 포트 -tile.factory_titanium_core.name=기본 공장 핵심 구성 요소 -tile.factory_titanium_furnace.name=기본 공장 접근 해치 -tile.factory_titanium_hull.name=기본 공장 케이싱 + +tile.dungeon_chain.name=금속 체인 +tile.fireworks.name=불꽃놀이 배터리 +tile.fireworks.charges=로드된 요금: %s +tile.fireworks.message=메세지: %s +tile.fireworks.color=색: %s + +item.insert_doxium.name=아스톨피움 첨가 독시움 삽입물 +item.insert_du.name=DU 인서트 +item.insert_era.name=폭발성 반응 장갑 삽입물 +item.insert_esapi.name=ESAPI 삽입 +item.insert_kevlar.name=케블라 인서트 +item.insert_sapi.name=SAPI 삽입 +item.insert_polonium.name=폴로늄 인서트 +item.insert_ghiorsium.name=기오르슘 인서트 +item.insert_di.name=디뉴트로늄 인서트 +item.insert_steel.name=무거운 강철 삽입 +item.insert_xsapi.name=XSAPI 삽입 +item.insert_yharonite.name=야로나이트 인서트 +item.insert_ferrouranium.name=페로라늄 인서트 +item.attachment_mask.name=방독면 부착 가능 +item.attachment_mask_mono.name=일산화탄소 마스크 부착 가능 +item.servo_set.name=서보 세트 +item.servo_set_desh.name=Desh 서보 세트 + +item.demon_core_closed.name=폐쇄된 데몬 코어 +item.demon_core_open.name=매달린 악마 핵 + +item.billet_am_mix.name=원자로 등급 아메리슘 빌렛 +item.billet_am241.name=아메리슘-241 빌렛 +item.billet_am242.name=아메리슘-242 빌렛 +item.billet_americium_fuel.name=아메리슘 연료 빌렛 +item.billet_au198.name=골드-198 빌렛 +item.billet_australium.name=오스트레일륨 빌렛 +item.billet_australium_greater.name=오스트레일륨-406 빌렛 +item.billet_australium_lesser.name=오스트레일륨-405 빌렛 +item.billet_balefire_gold.name=플래시골드 빌렛 +item.billet_co60.name=코발트-60 빌렛 +item.billet_hes.name=고농축 슈라비듐 연료 빌릿 +item.billet_les.name=저농축 슈라비듐 연료 빌릿 +item.billet_mox_fuel.name=MOX 연료 빌릿 +item.billet_neptunium.name=넵투늄-237 빌렛 +item.billet_neptunium_fuel.name=넵투늄 연료 빌렛 +item.billet_po210be.name=Po210Be 빌렛 +item.billet_polonium.name=폴로늄-210 빌렛 +item.billet_pu_mix.name=원자로 등급 플루토늄 빌렛 +item.billet_pu238.name=플루토늄-238 빌렛 +item.billet_pu238be.name=Pu238Be 빌렛 +item.billet_pu239.name=플루토늄-239 빌렛 +item.billet_pu240.name=플루토늄-240 빌렛 +item.billet_pu241.name=플루토늄-241 빌렛 +item.billet_plutonium.name=플루토늄 빌렛 +item.billet_plutonium_fuel.name=플루토늄 연료 빌릿 +item.billet_ra226be.name=Ra226Be 빌렛 +item.billet_schrabidium.name=슈라비듐-326 빌렛 +item.billet_schrabidium_fuel.name=슈라비듐 연료 빌릿 +item.billet_solinium.name=솔리늄-327 빌렛 +item.billet_technetium.name=테크네튬-99 빌렛 +item.billet_th232.name=토륨-232 빌렛 +item.billet_thorium_fuel.name=토륨 연료 빌릿 +item.billet_u233.name=우라늄-233 빌렛 +item.billet_u235.name=우라늄-235 빌렛 +item.billet_u238.name=우라늄-238 빌렛 +item.billet_uranium.name=우라늄 빌렛 +item.billet_uranium_fuel.name=우라늄 연료 빌렛 +item.billet_yharonite.name=야로나이트 빌렛 + +item.fmn.name=플루니트라제팜 정제 +item.xanax.name=NAXA 항디감마 약물 +item.five_htp.name=엔테타민 알약 + +item.chopper.name=헌터 헬기 +item.spawn_worm.name=볼스오트론 프라임 +item.spawn_ufo.name=화성 침공선 + +item.nothing.name=아무것도 아님 + +tile.crystal_virus.name=다크 크리스탈 +tile.crystal_hardened.name=강화된 다크 크리스탈 +tile.crystal_pulsar.name=맥동하는 수정 + +tile.taint.name=더러움 +tile.residue.name=구름 잔류물 +item.powder_cloud.name=구름 잔류물 + +tile.cheater_virus.name=겔리드 유페미움 +tile.cheater_virus_seed.name=불안정한 유페늄 슈라비듐 블록 + +item.mysteryshovel.name=부서지기 쉬운 스페이드 +tile.ntm_dirt.name=흙 +item.memory.name=item.null.이름 + +tile.basalt.name=현무암 +tile.basalt_asbestos.name=석면이 풍부한 현무암 +tile.basalt_brick.name=현무암 벽돌 +tile.basalt_fluorite.name=형석이 풍부한 현무암 +tile.basalt_gem.name=보석이 풍부한 현무암 +tile.basalt_polished.name=광택나는 현무암 +tile.basalt_smooth.name=매끄러운 현무암 +tile.basalt_sulfur.name=유황이 풍부한 현무암 +tile.basalt_tiles.name=현무암 타일 +tile.ash_digamma.name=금연 건강 증진 협회 +item.ashglasses.name=애쉬 고글 +item.falloutitem.name=낙진 더미 +item.book_guide_book.name=가이드북 tile.fallout.name=낙진 -tile.fence_metal.name=체인링크 울타리 -tile.field_disturber.name=고에너지 분야 방해기 -tile.fire_digamma.name=여운의 디감마 -tile.fire_door.name=방화문 -tile.fireworks.charges=로드된 요금: %s -tile.fireworks.color=색상: %s -tile.fireworks.message=메시지: %s -tile.fireworks.name=불꽃놀이 배터리 -tile.flame_war.name=상자 속의 화염 전쟁 -tile.float_bomb.name=부상 폭탄 -tile.fluid_duct.name=범용 유체 덕트[지원 중단됨] -tile.fluid_duct_mk2.name=범용 유체 덕트 -tile.fluid_duct_solid.name=밀봉된 유체 덕트 -tile.fraction_spacer.name=분별탑 분리기 -tile.frozen_dirt.name=얼어붙은 먼지 -tile.frozen_grass.name=얼어붙은 풀 -tile.frozen_log.name=동결된 로그 -tile.frozen_planks.name=얼어붙은 널빤지 -tile.fusion_center.name=중앙 자석 조각 -tile.fusion_conductor.name=초전도 자석 -tile.fusion_core_block.name=핵융합로 제어 -tile.fusion_hatch.name=핵융합로 접근 해치 -tile.fusion_heater.name=플라즈마 히터 부품 -tile.fusion_motor.name=마그넷 모터 피스 -tile.fwatz_computer.name=Fusionary Watz Reactor 계산 매트릭스 -tile.fwatz_conductor.name=4000K 초전도 자석 -tile.fwatz_cooler.name=재생 냉각수 유체 탱크 쉘 -tile.fwatz_core.name=Fusionary Watz 반응기 제어 -tile.fwatz_hatch.name=Fusionary Watz 식물 액세스 해치 -tile.fwatz_plasma.name=불안정화된 항스크라비디움 혈장 -tile.fwatz_scaffold.name=Fusionary Watz 식물 구조 지원 -tile.fwatz_tank.name=재생 냉각수 유체 탱크 -tile.gas_asbestos.name=공기 중의 석면 입자 +tile.fire_digamma.name=느린 디감마 +item.marshmallow.name=막대기에 마시멜로 +item.marshmallow_roasted.name=막대기에 마시멜로 +tile.block_smore.name=스모어 블록 +item.ingot_smore.name=스모어 잉곳 +tile.gas_asbestos.name=공중 석면 입자 tile.gas_coal.name=공중 석탄 먼지 -tile.gas_duct.name=가스관 -tile.gas_duct_solid.name=코팅 가스관 tile.gas_explosive.name=폭발성 가스 tile.gas_flammable.name=가연성 가스 tile.gas_monoxide.name=일산화탄소 -tile.gas_radon.name=라돈 가스 -tile.gas_radon_dense.name=조밀한 라돈 가스 +tile.gas_radon.name=라돈가스 +tile.gas_radon_dense.name=고밀도 라돈 가스 tile.gas_radon_tomb.name=무덤 가스 -tile.geiger.name=가이거 계수관 -tile.geysir_chlorine.name=클로르가스 게이시르 -tile.geysir_nether.name=마그마 게이시르 -tile.geysir_vapor.name=증기 게이시르 -tile.geysir_water.name=워터 게이시르 -tile.glass_ash.name=재 유리 -tile.glass_boron.name=붕소 유리 -tile.glass_lead.name=납 유리 -tile.glass_polonium.name=폴로늄 유리 -tile.glass_quartz.name=석영 유리 -tile.glass_trinitite.name=트리니티 유리 -tile.glass_uranium.name=우라늄 유리 -tile.gravel_diamond.name=다이아몬드 자갈 -tile.gravel_obsidian.name=부서진 흑요석 -tile.hadron_access.name=입자 가속기 액세스 터미널 -tile.hadron_analysis.name=입자 가속기 분석 챔버 벽 -tile.hadron_analysis_glass.name=입자 가속기 분석 챔버 창 -tile.hadron_coil_alloy.name=조밀한 초전도 코일 -tile.hadron_coil_chlorophyte.name=조밀한 엽록소 코일 -tile.hadron_coil_gold.name=조밀한 금 코일 -tile.hadron_coil_magtung.name=조밀한 4000K 초전도체 코일 -tile.hadron_coil_mese.name=조밀한 메스 코일 -tile.hadron_coil_neodymium.name=고밀도 네오디뮴 코일 -tile.hadron_coil_schrabidate.name=조밀한 Schrabidate 코일 -tile.hadron_coil_schrabidium.name=고밀도 슈라비딕 코일 -tile.hadron_coil_starmetal.name=조밀한 스타메탈 코일 -tile.hadron_core.name=입자 가속기 핵심 구성 요소 -tile.hadron_diode.name=쇼트키 입자 다이오드 -tile.hadron_plating.name=입자 가속기 도금 -tile.hadron_plating_black.name=입자 가속기 도금(검은색) -tile.hadron_plating_blue.name=입자 가속기 도금(파란색) -tile.hadron_plating_glass.name=입자 가속기 도금(창문) -tile.hadron_plating_striped.name=입자 가속기 도금(차가운 위험 줄무늬) -tile.hadron_plating_voltz.name=입자 가속기 도금(VOLTZ) -tile.hadron_plating_yellow.name=입자 가속기 도금(YelloDye) -tile.hadron_power.name=입자 가속기 전원 플러그 -tile.hazmat.name=방호복 블록 -tile.iter.name=핵융합로 -tile.ladder_aluminium.name=알루미늄 사다리 -tile.ladder_cobalt.name=코발트 사다리 -tile.ladder_copper.name=구리 사다리 -tile.ladder_gold.name=황금사다리 -tile.ladder_iron.name=철 사다리 -tile.ladder_lead.name=리드 사다리 -tile.ladder_red.name=빨간 사다리 -tile.ladder_red_top.name=빨간 사다리 탑 -tile.ladder_steel.name=강철 사다리 -tile.ladder_sturdy.name=튼튼한 나무 사다리 -tile.ladder_titanium.name=티타늄 사다리 -tile.ladder_tungsten.name=텅스텐 사다리 -tile.lamp_demon.name=데몬 코어 램프 -tile.large_vehicle_door.name=대형 차량 도어 -tile.launch_pad.name=미사일 발사대 -tile.launch_table.name=대형 발사대 -tile.lox_barrel.name=LOX 배럴 -tile.machine_amgen.name=주변 방사선 발생기 -tile.machine_arc_furnace_off.name=아크로 -tile.machine_arc_furnace_on.name=아크로 -tile.machine_armor_table.name=갑옷 수정 표 -tile.machine_assembler.name=조립 기계 -tile.machine_bat9000.name=큰 엉덩이 탱크 9000 -tile.machine_battery.name=에너지 저장 블록 -tile.machine_battery_potato.name=감자 배터리 블록 -tile.machine_boiler_electric_off.name=전기 보일러 -tile.machine_boiler_electric_on.name=전기 보일러 -tile.machine_boiler_off.name=보일러 -tile.machine_boiler_on.name=보일러 -tile.machine_boiler_rtg_off.name=RTG 보일러 -tile.machine_boiler_rtg_on.name=RTG 보일러 -tile.machine_centrifuge.name=원심분리기 -tile.machine_chemplant.name=화학 공장 -tile.machine_chungus.name=리바이어던 증기 터빈 -tile.machine_coal_off.name=연소 발전기 -tile.machine_coal_on.name=연소 발전기 -tile.machine_combine_factory.name=CMB 강철로 -tile.machine_condenser.name=증기 콘덴서 -tile.machine_controller.name=반응기 원격 제어 블록 -tile.machine_converter_he_rf.name=HE에서 RF로의 변환기 -tile.machine_converter_rf_he.name=RF-HE 변환기 -tile.machine_crystallizer.name=광석 산성화제 -tile.machine_cyclotron.name=사이클로트론 -tile.machine_detector.name=전력 검출기 -tile.machine_deuterium.name=중수소 추출기 -tile.machine_diesel.name=디젤 발전기 -tile.machine_difurnace_off.name=고로 -tile.machine_difurnace_on.name=고로 -tile.machine_dineutronium_battery.name=스파크 에너지 저장 블록 -tile.machine_drill.name=자동 채광 드릴 -tile.machine_electric_furnace_off.name=전기로 -tile.machine_electric_furnace_on.name=전기로 -tile.machine_epress.name=전기 프레스 -tile.machine_fel.name=지옥 -tile.machine_fensu.name=펜수 -tile.machine_flare.name=가스 플레어 -tile.machine_fluidtank.name=탱크 -tile.machine_forcefield.name=포스필드 이미터 -tile.machine_fraction_tower.name=분별탑 -tile.machine_gascent.name=가스 원심 분리기 -tile.machine_generator.name=원자로(구형) -tile.machine_geo.name=지열 발전기 -tile.machine_industrial_generator.name=산업용 발전기 -tile.machine_keyforge.name=자물쇠 제조공 테이블 -tile.machine_large_turbine.name=산업용 증기 터빈 -tile.machine_lithium_battery.name=리튬 이온 에너지 저장 블록 -tile.machine_microwave.name=마이크로파 -tile.machine_mining_laser.name=마이닝 레이저 -tile.machine_minirtg.name=라디오 동위 원소 셀 -tile.machine_missile_assembly.name=미사일 조립소 -tile.machine_nuke_furnace_off.name=핵로 -tile.machine_nuke_furnace_on.name=핵로 -tile.machine_orbus.name=무거운 자기 저장 탱크 -tile.machine_press.name=버너 프레스 -tile.machine_puf6_tank.name=플루토늄 헥사플루오라이드 탱크 -tile.machine_pumpjack.name=펌프잭 -tile.machine_radar.name=레이더 -tile.machine_radgen.name=방사선 동력 엔진 -tile.machine_reactor.name=번식 반응기 -tile.machine_reactor_on.name=번식 반응기 -tile.machine_reactor_small.name=원자로 -tile.machine_refinery.name=정유 공장 -tile.machine_reix_mainframe.name=Rei-X 메인프레임(WIP) -tile.machine_rtg_blue.name=대류 발생기 -tile.machine_rtg_cyan.name=Schrabidium Decay Generator(WIP) -tile.machine_rtg_furnace_off.name=RTG로 -tile.machine_rtg_furnace_on.name=RTG로 -tile.machine_rtg_green.name=Verticium 부 생성기 -tile.machine_rtg_grey.name=RTG 생성기 -tile.machine_rtg_orange.name=강력한 RT 생성기 -tile.machine_rtg_purple.name=반물질 소멸 생성기 -tile.machine_rtg_red.name=폭발 발생기 -tile.machine_rtg_yellow.name=오스트랄륨 초연료 원자로 -tile.machine_satlinker.name=위성 ID 관리자 -tile.machine_schrabidium_battery.name=슈라비디움 에너지 저장 블록 -tile.machine_schrabidium_transmutator.name=슈라비디움 변환 장치 -tile.machine_selenium.name=방사형 성능 엔진 -tile.machine_shredder.name=슈레더 -tile.machine_silex.name=레이저 동위원소 분리기(SILEX) -tile.machine_siren.name=사이렌 -tile.machine_solar_boiler.name=태양광 타워 보일러 -tile.machine_spp_bottom.name=ZPE 전위 발생기(하단) -tile.machine_spp_top.name=ZPE 전위 발생기(상단) -tile.machine_storage_drum.name=핵 폐기물 처리 드럼 -tile.machine_telelinker.name=터렛 원격 측정 링커 -tile.machine_teleporter.name=텔레포터 -tile.machine_tower_large.name=냉각탑 -tile.machine_tower_small.name=보조 냉각탑 -tile.machine_transformer.name=10k-20Hz 변압기 -tile.machine_transformer_20.name=10k-1Hz 변압기 -tile.machine_transformer_dnt.name=DNT-20Hz 변압기 -tile.machine_transformer_dnt_20.name=DNT-1Hz 변압기 -tile.machine_turbine.name=증기 터빈 -tile.machine_turbofan.name=터보팬 -tile.machine_uf6_tank.name=우라늄 육불화물 탱크 -tile.machine_waste_drum.name=사용후 연료 풀 드럼 -tile.machine_well.name=유정탑 -tile.marker_structure.name=다중 블록 구조 마커 -tile.meteor_battery.name=스타메탈 정전기 발생기 -tile.meteor_brick.name=유성 벽돌 -tile.meteor_brick_chiseled.name=깎인 유성 벽돌 -tile.meteor_brick_cracked.name=금이 간 유성 벽돌 -tile.meteor_brick_mossy.name=이끼 낀 유성 벽돌 -tile.meteor_pillar.name=유성기둥 -tile.meteor_polished.name=광택이 나는 유성 블록 -tile.meteor_spawner.name=사이버 크랩 어셈블러 -tile.mine_ap.name=대인지뢰 -tile.mine_fat.name=팻 마인 -tile.mine_he.name=대전차 지뢰 -tile.mine_shrap.name=파편 광산 -tile.mud_block.name=유독한 진흙 -tile.muffler.name=머플러 -tile.mush.name=빛나는 버섯 -tile.mush_block.name=자란 빛나는 버섯 -tile.mush_block_stem.name=자란 빛나는 버섯 줄기 -tile.ntm_dirt.name=흙 -tile.nuke_boy.name=어린 소년 -tile.nuke_custom.name=커스텀 핵무기 -tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_fstbmb.name=베일파이어 폭탄 -tile.nuke_gadget.name=가제트 -tile.nuke_man.name=뚱뚱한 남자 -tile.nuke_mike.name=아이비 마이크 -tile.nuke_n2.name=N² 광산 -tile.nuke_n45.name=N45 해군 광산 -tile.nuke_prototype.name=프로토타입 -tile.nuke_solinium.name=더 블루 린스 -tile.nuke_tsar.name=차르 봄바 -tile.oil_duct.name=송유관 -tile.oil_duct_solid.name=코팅 송유관 -tile.oil_pipe.name=원유 추출 파이프 -tile.ore_aluminium.name=알루미늄 광석 -tile.ore_asbestos.name=석면 광석 -tile.ore_australium.name=호주 광석 +tile.block_corium.name=코륨 +tile.block_corium_cobble.name=코어블스톤 +tile.ancient_scrap.name=고대 고철 +tile.anvil_bismuth.name=비스무트-209 모루 +tile.anvil_dnt.name=디뉴트로늄 모루 +tile.anvil_ferrouranium.name=페로라늄 모루 +tile.anvil_iron.name=철 모루 +tile.anvil_lead.name=리드 앤빌 +tile.anvil_meteorite.name=운석 모루 +tile.anvil_murky.name=머키 앤빌 +tile.anvil_schrabidate.name=페릭 슈라비데이트 앤빌 +tile.anvil_starmetal.name=스타메탈 모루 +tile.anvil_steel.name=강철 모루 +item.nugget_am_mix.name=원자로 등급 아메리슘 조각 +item.nugget_am241.name=아메리슘-241 조각 +item.nugget_am242.name=아메리슘-242 조각 +item.nugget_americium_fuel.name=아메리슘 연료 덩어리 +item.nugget_au198.name=골드-198 조각 +item.nugget_australium.name=오스트레일륨 덩어리 +item.nugget_australium_greater.name=오스트레일륨-406 조각 +item.nugget_australium_lesser.name=오스트레일륨-405 조각 +item.ingot_am_mix.name=원자로 등급 아메리슘 주괴 +item.ingot_am241.name=아메리슘-241 주괴 +item.ingot_am242.name=아메리슘-242 주괴 +item.ingot_americium_fuel.name=아메리슘 연료 주괴 +item.ingot_au198.name=금-198 주괴 +item.powder_at209.name=아스타틴-209 가루 +item.powder_au198.name=골드-198 가루 +item.ingot_tantalium.name=탄탈륨 주괴 +item.ingot_tcalloy.name=테크네튬 강철 주괴 +item.ingot_technetium.name=테크네튬-99 주괴 +tile.cluster_aluminium.name=알루미늄 광석 클러스터 +tile.cluster_copper.name=구리 광석 클러스터 +tile.cluster_depth_iron.name=심층 철광석 클러스터 +tile.cluster_depth_titanium.name=깊이 티타늄 광석 클러스터 +tile.cluster_depth_tungsten.name=깊이 텅스텐 광석 클러스터 +tile.cluster_iron.name=철광석 클러스터 +tile.cluster_titanium.name=티타늄 광석 클러스터 +tile.depth_brick.name=깊이 벽돌 +tile.depth_dnt.name=DNT 강화 깊이 벽돌 +tile.depth_nether_brick.name=네더 깊이 벽돌 +tile.depth_nether_tiles.name=네더 깊이 타일 +tile.depth_tiles.name=깊이 타일 +item.powder_coltan.name=정제된 탄탈라이트 +item.powder_coltan_ore.name=으깬 콜탄 +tile.block_coltan.name=콜탄 블록 tile.ore_bedrock_coltan.name=기반암 콜탄 광석 -tile.ore_beryllium.name=베릴륨 광석 -tile.ore_cinnebar.name=진사 광석 -tile.ore_coal_oil.name=기름진 석탄 광석 -tile.ore_coal_oil_burning.name=불타는 기름진 석탄 광석 -tile.ore_cobalt.name=코발트 광석 tile.ore_coltan.name=콜탄 광석 -tile.ore_copper.name=구리 광석 -tile.ore_daffergon.name=델라이트 -tile.ore_depth_cinnebar.name=깊이 진사 광석 -tile.ore_depth_nether_neodymium.name=네더 깊이 네오디뮴 광석 -tile.ore_depth_zirconium.name=깊이 지르코늄 광석 -tile.ore_fluorite.name=형석 광석 -tile.ore_gneiss_asbestos.name=편암 석면 광석 -tile.ore_gneiss_copper.name=편암 구리 광석 -tile.ore_gneiss_gas.name=가스 셰일 -tile.ore_gneiss_gold.name=편암 금 광석 -tile.ore_gneiss_iron.name=편암 철광석 -tile.ore_gneiss_lithium.name=편암 리튬 광석 -tile.ore_gneiss_rare.name=편암 희토류 광석 -tile.ore_gneiss_schrabidium.name=편암 슈라비디움 광석 -tile.ore_gneiss_uranium.name=편암 우라늄 광석 -tile.ore_gneiss_uranium_scorched.name=그슬린 편암 우라늄 광석 -tile.ore_lead.name=납 광석 -tile.ore_lignite.name=갈탄 광석 -tile.ore_meteor_aluminium.name=유성 알루미늄 광석 -tile.ore_meteor_copper.name=유성 구리 광석 -tile.ore_meteor_lead.name=유성 납광석 -tile.ore_meteor_lithium.name=유성 리튬 광석 -tile.ore_meteor_starmetal.name=스타메탈 광석 -tile.ore_meteor_sulfur.name=유성 유황 광석 -tile.ore_meteor_thorium.name=유성 토륨 광석 -tile.ore_meteor_titanium.name=유성 티타늄 광석 -tile.ore_meteor_tungsten.name=유성 텅스텐 광석 -tile.ore_meteor_uranium.name=유성 우라늄 광석 -tile.ore_nether_coal.name=불타는 황천 석탄 광석 +tile.block_zirconium.name=지르코늄 블록 +item.ingot_zirconium.name=지르코늄 큐브 +item.powder_zirconium.name=지르코늄 가루 +item.nugget_zirconium.name=지르코늄 파편 +tile.block_fallout.name=낙진 블록 +item.gem_volcanic.name=화산 보석 +tile.block_foam.name=거품 +item.powder_boron.name=붕소 가루 +item.powder_boron_tiny.name=작은 붕소 가루 더미 +item.powder_tantalium.name=탄탈륨 가루 +item.powder_tcalloy.name=테크네튬 강철 가루 +item.nugget_tantalium.name=탄탈륨 조각 +item.nugget_technetium.name=테크네티움-99 조각 +tile.stone_depth.name=뎁스 록 +tile.stone_depth_nether.name=네더 깊이 바위 +tile.block_tantalium.name=탄탈륨 블록 +tile.block_lignite.name=갈탄 블록 +tile.block_coke.name=콜라 블록 +tile.block_coal_infernal.name=지옥불 석탄 블록 +tile.block_solid_fuel.name=고체 연료 블록 +tile.block_solid_fuel_presto.name=Presto 로그 블록 +tile.block_solid_fuel_presto_triplet.name=Boosted Presto 로그 블록 +item.ingot_graphite.name=흑연 주괴 +tile.block_graphite.name=흑연 블록 +tile.block_graphite_drilled.name=드릴된 흑연 +tile.block_graphite_fuel.name=더미 연료 +tile.block_graphite_plutonium.name=더미 연료(증식) +tile.block_graphite_rod.name=파일 제어봉 +tile.block_graphite_source.name=더미 중성자 소스 +item.gem_tantalium.name=탄탈륨 다결정 +item.powder_i131.name=요오드-131 가루 +item.powder_i131_tiny.name=요오드-131 가루의 작은 더미 +item.powder_xe135.name=크세논-135 가루 +item.powder_xe135_tiny.name=제논-135 가루의 작은 더미 +item.powder_cs137.name=세슘-137 가루 +item.powder_cs137_tiny.name=작은 세슘-137 가루 더미 +item.liquidator_boots.name=청산인 슈트 부츠 +item.liquidator_helmet.name=청산인 정장 헬멧 +item.liquidator_legs.name=청산인 수트 레깅스 +item.liquidator_plate.name=청산인 슈트 흉갑 +item.balefire_and_steel.name=베일파이어 앤 스틸 +item.nugget_neptunium_fuel.name=넵투늄 연료 덩어리 +item.fragment_boron.name=붕소 조각 +item.nugget_ra226.name=라듐-226 조각 +item.nugget_co60.name=코발트-60 조각 +item.powder_co60.name=코발트-60 가루 +item.cinnebar.name=단사 +item.ingot_co60.name=코발트-60 주괴 +item.ingot_boron.name=붕소 주괴 +item.powder_coal_tiny.name=작은 석탄 가루 더미 +item.fragment_coltan.name=콜탄 +item.coal_infernal.name=지옥불 석탄 +item.ingot_pu_mix.name=원자로 등급 플루토늄 주괴 +item.ingot_niobium.name=니오브 잉곳 +item.hand_drill.name=핸드 드릴 +item.hand_drill_desh.name=데쉬 핸드 드릴 +item.nuclear_waste.name=핵폐기물 +item.nuclear_waste_pearl.name=핵폐기물 진주 +item.nuclear_waste_tiny.name=작은 핵폐기물 더미 +item.nuclear_waste_long.name=장수명 핵폐기물 +item.nuclear_waste_long_tiny.name=장수명 핵 폐기물의 작은 더미 +item.nuclear_waste_long_depleted.name=부패된 장수명 핵폐기물 +item.nuclear_waste_long_depleted_tiny.name=부패된 장수명 핵 폐기물의 작은 더미 +item.nuclear_waste_short.name=단기 핵폐기물 +item.nuclear_waste_short_tiny.name=수명이 짧은 핵 폐기물의 작은 더미 +item.nuclear_waste_short_depleted.name=부패된 단수명 핵폐기물 +item.nuclear_waste_short_depleted_tiny.name=부패된 단수명 핵 폐기물의 작은 더미 +item.nuclear_waste_vitrified.name=유리화된 핵폐기물 +item.nuclear_waste_vitrified_tiny.name=유리화된 핵 폐기물의 작은 더미 +item.pile_rod_boron.name=시카고 파일 제어봉 +item.pile_rod_plutonium.name=시카고 파일 플루토늄 막대 +item.pile_rod_source.name=시카고 파일 Ra226Be 중성자 소스 +item.pile_rod_uranium.name=시카고 파일 우라늄 막대 +item.ammo_50bmg_flechette.name=.50 BMG 플레셰트탄 +item.ammo_50bmg_flechette_am.name=.50 BMG 플레셰트탄(아메리슘) +item.ammo_50bmg_flechette_po.name=.50 BMG 플레셰트탄(폴로늄) +item.plate_armor_dnt.name=DNT 갑옷 도금 +item.plate_armor_fau.name=파우 갑옷 도금 +item.warhead_volcano.name=지각 탄두 +item.ingot_neptunium_fuel.name=넵투늄 연료 주괴 +item.inf_water_mk2.name=무거운 무한 물 탱크 +item.inf_water_mk3.name=빌어먹을 두꺼운 무한 물탱크 +item.inf_water_mk4.name=큰 엉덩이 무한 물 탱크 +item.particle_tachyon.name=타키온 캡슐 +item.antiknock.name=테트라에틸납 안티노크제 +item.undefined.name=한정되지 않은 +item.oil_tar.name=오일타르 +item.circuit_bismuth.name=다목적 칩셋 +item.circuit_bismuth_raw.name=다목적 칩셋 어셈블리 +item.circuit_arsenic.name=적응형 회로 +item.circuit_arsenic_raw.name=적응형 회로 조립 +item.circuit_tantalium.name=커패시터 보드 +item.circuit_tantalium_raw.name=커패시터 보드 어셈블리 +item.gun_ar15.name=조롱 +item.coin_siege.name=공성 코인 +item.coin_ufo.name=UFO 코인 +item.wings_limp.name=축 늘어진 날개 +item.wings_murk.name=머키 날개 +item.nugget_bismuth.name=비스무트-209 조각 +item.ingot_bismuth.name=비스무트-209 주괴 +item.flywheel_beryllium.name=베릴륨 플라이휠 +item.missile_volcano.name=지각 미사일 +item.ingot_pu241.name=플루토늄-241 주괴 +tile.ore_cobalt.name=코발트 광석 +tile.ore_coltan.name=콜탄 광석 +tile.ore_depth_cinnebar.name=깊이 진사 광석 +tile.ore_depth_nether_neodymium.name=네더 깊이 네오디뮴 광석 +tile.ore_depth_nether_nitan.name=네더 깊이 니타늄 광석 +tile.ore_depth_zirconium.name=깊이 지르코늄 광석 +tile.block_boron.name=붕소 블록 +tile.block_bismuth.name=비스무트-209 블록 tile.ore_nether_cobalt.name=네더 코발트 광석 -tile.ore_nether_fire.name=네더 인광석 -tile.ore_nether_plutonium.name=네더 플루토늄 광석 -tile.ore_nether_schrabidium.name=네더 슈라비디움 광석 -tile.ore_nether_smoldering.name=그을린 황천의 선반 -tile.ore_nether_sulfur.name=네더 유황 광석 -tile.ore_nether_tungsten.name=네더 텅스텐 광석 -tile.ore_nether_uranium.name=네더 우라늄 광석 -tile.ore_nether_uranium_scorched.name=그을린 네더 우라늄 광석 -tile.ore_niter.name=나이터 광석 -tile.ore_oil.name=기름 매장지 -tile.ore_oil_empty.name=빈 기름 매장지 -tile.ore_oil_sand.name=타르샌드 -tile.ore_rare.name=희토류 광석 -tile.ore_reiium.name=라이테 -tile.ore_schrabidium.name=슈라비디움 광석 -tile.ore_sulfur.name=유황 광석 -tile.ore_thorium.name=토륨 광석 -tile.ore_tikite.name=트릭사이트 -tile.ore_titanium.name=티타늄 광석 -tile.ore_tungsten.name=텅스텐 광석 -tile.ore_unobtainium.name=밝은 혼합 ​​광석 -tile.ore_uranium.name=우라늄 광석 -tile.ore_uranium_scorched.name=그을린 우라늄 광석 -tile.ore_verticium.name=달러 그린 미네랄 -tile.ore_weidanium.name=웨이다이트 -tile.pink_barrel.name=등유 배럴 -tile.pink_double_slab.name=핑크 우드 더블 슬래브 -tile.pink_log.name=핑크 로그 -tile.pink_planks.name=핑크 나무 판자 -tile.pink_slab.name=핑크 우드 슬래브 -tile.pink_stairs.name=핑크 나무 계단 -tile.plasma.name=혈장 -tile.plasma_heater.name=플라즈마 히터 -tile.pole_satellite_receiver.name=위성 접시 -tile.pole_top.name=안테나 탑 -tile.pribris.name=RBMK 파편 -tile.pribris_burning.name=불타는 RBMK 잔해 -tile.pribris_digamma.name=검게 변한 RBMK 잔해 -tile.pribris_radiating.name=그을린 RBMK 잔해 -tile.qe_containment.name=QE 격리 문 +tile.block_niobium.name=니오브 블록 +tile.block_lanthanium.name=란타늄 블록 +tile.ore_cinnebar.name=진사 광석 +tile.block_actinium.name=악티늄 블록 +tile.machine_storage_drum.name=핵폐기물 처리 드럼 +tile.machine_storage_drum.desc=콘텐츠는 시간이 지남에 따라 천천히 부패됩니다. 내부 액체 및 기체 폐기물 탱크가 가득 차면 방사선이 누출됩니다. +tile.machine_condenser.name=증기 콘덴서 +tile.machine_orbus.name=무거운 자기 저장 탱크 +tile.fraction_spacer.name=분별탑 분리기 +tile.machine_tower_large.name=냉각탑 +tile.machine_tower_small.name=보조 냉각탑 +tile.machine_bat9000.name=빅애스 탱크 9000 +tile.machine_chungus.name=리바이어던 증기 터빈 +tile.machine_fraction_tower.name=분별탑 +tile.block_semtex.name=셈텍스 블록 +tile.block_pu_mix.name=원자로 등급 플루토늄 블록 +tile.block_tritium.name=삼중수소 셀 블록 +tile.barrel_tcalloy.name=테크네튬 강철 배럴 +tile.volcano_core.name=화산 코어 +tile.machine_silex.name=레이저 동위원소 분리기(SILEX) +tile.machine_fel.name=펠 +tile.brick_concrete_marked.name=표시된 콘크리트 벽돌 +tile.concrete_asbestos.name=석면 콘크리트 +item.syringe_mkunicorn.name=엠쿠니콘 +item.bandaid.name=벨벳 반창고 +item.spider_milk.name=거미 우유 병 +item.injector_5htp.name=5-HTP 자가주사기 +item.injector_knife.name=8인치 블레이드 자동 주사기 +item.pads_rubber.name=고무 패드 +item.pads_slime.name=슬라임 패드 +item.pads_static.name=정적 패드 +item.heart_booster.name=하트 부스터 +item.heart_container.name=하트 용기 +item.heart_fab.name=팹 하트 +item.heart_piece.name=하트피스 +item.lodestone.name=천연 자석 +item.bathwater.name=독성 비눗물 +item.bathwater_mk2.name=독성 비눗물(말 향) +item.bathwater_mk3.name=최고급 체르노빌 목욕수(멜트다운 향) +item.industrial_magnet.name=산업용 자석 +item.serum.name=혈청 +item.armor_polish.name=ShiningArmor™ 방어구 광택제 +item.cladding_iron.name=철 클래딩 +item.wild_p.name=와일드 페가수스 드라이 위스키 +item.back_tesla.name=후면 장착형 Tesla 코일 +item.wd40.name=VT-40 +item.fabsols_vodka.name=팹솔 보드카 +item.ink.name=림— 잉크 +item.black_diamond.name=블랙 다이아몬드 +item.cladding_obsidian.name=흑요석 피부 +item.quartz_plutonium.name=플루토닉 석영 +item.morning_glory.name=나팔꽃 +item.horseshoe_magnet.name=말굽 자석 +item.shackles.name=족쇄 +item.scrumpy.name=스크럼피 한 병 +item.medal_liquidator.name=청산인 메달 +item.medal_ghoul.name=공인 구울 +tile.steel_grate.name=강철 창살 +item.siox.name=SiOX 항암제 +item.ingot_smore.name=스모어 잉곳 +tile.block_waste_vitrified.name=핵폐기물 유리화 블록 +item.crystal_coal.name=석탄 결정 +item.crystal_cobalt.name=코발트 결정 +item.crystal_cinnebar.name=진사 결정 +item.battery_sc_yharonite.name=자가 충전 야로나이트 편집됨 배터리 +item.battery_sc_schrabidium.name=자체 충전 슈라비듐-326 배터리 +item.battery_sc_balefire.name=자체 충전 베일파이어-XXX 배터리 +item.battery_sc_americium.name=자체 충전 아메리슘-241 배터리 +item.battery_sc_gold.name=자체 충전 금-198 배터리 +item.battery_sc_plutonium.name=자체 충전 플루토늄-238 배터리 +item.battery_sc_polonium.name=자체 충전 폴로늄-210 배터리 +item.battery_sc_technetium.name=자체 충전 테크네티움-99 배터리 +item.battery_sc_uranium.name=자가 충전 우라늄-238 배터리 +item.ajro_boots.name=T-60 AJR 파워 아머 부츠 +item.ajro_helmet.name=T-60 AJR 파워 아머 헬멧 +item.ajro_legs.name=T-60 AJR 파워 아머 레깅스 +item.ajro_plate.name=T-60 AJR 파워 아머 흉갑 +item.dns_boots.name=DNT 나노 슈트 부츠 +item.dns_legs.name=DNT 나노슈트 레깅스 +item.dns_helmet.name=DNT 나노 슈트 헬멧 +item.dns_plate.name=DNT 나노 슈트 흉갑 +item.dnt_boots.name=다이나트로늄 부츠 +item.dnt_legs.name=중수소 다리 +item.dnt_helmet.name=디노트로니움 헬멧 +item.dnt_plate.name=중성체 흉갑 +item.fau_boots.name=파우 부츠 +item.fau_helmet.name=파우 헬멧 +item.fau_legs.name=포 레깅스 +item.fau_plate.name=파우 흉갑 +tile.deco_pipe.name=쇠 파이프 +tile.deco_pipe_rusted.name=녹슨 강철 파이프 +tile.deco_pipe_green.name=녹색 강관 +tile.deco_pipe_green_rusted.name=녹슨 녹색 강철 파이프 +tile.deco_pipe_red.name=레드 스틸 파이프 +tile.deco_pipe_marked.name=가스관 +tile.deco_pipe_framed.name=강관(액자) +tile.deco_pipe_framed_rusted.name=녹슨 강철 파이프(액자 포함) +tile.deco_pipe_framed_green.name=그린강관(액자) +tile.deco_pipe_framed_green_rusted.name=녹슨 녹색 강철 파이프(액자 포함) +tile.deco_pipe_framed_red.name=레드 스틸 파이프(액자) +tile.deco_pipe_framed_marked.name=가스관(액자형) +tile.deco_pipe_quad.name=강관 +tile.deco_pipe_quad_rusted.name=녹슨 강철 파이프 +tile.deco_pipe_quad_green.name=녹색 강관 +tile.deco_pipe_quad_green_rusted.name=녹슨 녹색 강철 파이프 +tile.deco_pipe_quad_red.name=빨간 강철 파이프 +tile.deco_pipe_quad_marked.name=가스관 +tile.deco_pipe_rim.name=강관(테두리형) +tile.deco_pipe_rim_rusted.name=녹슨 강철 파이프(테두리) +tile.deco_pipe_rim_green.name=그린 스틸 파이프(림드) +tile.deco_pipe_rim_green_rusted.name=녹슨 녹색 강철 파이프(테두리) +tile.deco_pipe_rim_red.name=레드 스틸 파이프(테두리) +tile.deco_pipe_rim_marked.name=가스 파이프(테두리) +tile.ladder_aluminium.name=알루미늄 사다리 +tile.ladder_cobalt.name=코발트 사다리 +tile.ladder_copper.name=구리 사다리 +tile.ladder_gold.name=황금사다리 +tile.ladder_iron.name=철 사다리 +tile.ladder_lead.name=리드 사다리 +tile.ladder_steel.name=강철 사다리 +tile.ladder_sturdy.name=튼튼한 나무 사다리 +tile.ladder_titanium.name=티타늄 사다리 +tile.ladder_tungsten.name=텅스텐 사다리 +item.bismuth_tool.name=자기 추출기 +item.meltdown_tool.name=Dyatlov 인스턴트 멜트다운 애플리케이터 +item.coltass.name=콜타스 +item.volcanic_pickaxe.name=녹은 곡괭이 +item.bismuth_pickaxe.name=비스무트 곡괭이 +item.starmetal_pickaxe.name=스타메탈 곡괭이 +item.starmetal_axe.name=스타메탈 액스 +item.starmetal_hoe.name=스타메탈 괭이 +item.starmetal_shovel.name=스타메탈 삽 +item.starmetal_sword.name=스타메탈 소드 +item.cobalt_decorated_axe.name=장식된 코발트 도끼 +item.cobalt_decorated_hoe.name=장식된 코발트 괭이 +item.cobalt_decorated_pickaxe.name=장식된 코발트 곡괭이 +item.cobalt_decorated_shovel.name=장식된 코발트 삽 +item.cobalt_decorated_sword.name=장식된 코발트 검 +tile.large_vehicle_door.name=대형 차량 도어 +tile.water_door.name=워터 도어 +tile.qe_containment.name=QE 격리 도어 tile.qe_sliding.name=QE 슬라이딩 도어 -tile.radiobox.name=Rosenberg 해충 방제 상자 -tile.radiorec.name=고장난 FM 라디오 -tile.radsensor.name=방사선 센서 -tile.radwater_block.name=조사된 물 -tile.rail_booster.name=고속 부스터 레일 -tile.rail_highspeed.name=고속 철도 -tile.railgun_plasma.name=레일건 -tile.railing_bend.name=난간 벤드 -tile.railing_end_flipped_floor.name=난간 끝 반전(바닥) -tile.railing_end_flipped_self.name=난간 끝 반전됨(자체) +tile.sliding_gate_door.name=소형 QE 격리 도어 +tile.sliding_seal_door.name=슬라이딩 금속 도어 +tile.fire_door.name=방화문 +tile.small_hatch.name=작은 해치 +tile.round_airlock_door.name=둥근 에어록 도어 +tile.secure_access_door.name=보안 액세스 도어 +tile.transition_seal.name=전환 씰 +tile.ladder_red.name=빨간 사다리 +tile.ladder_red_top.name=빨간 사다리 꼭대기 tile.railing_end_floor.name=난간 끝(바닥) tile.railing_end_self.name=난간 끝(자체) +tile.railing_end_flipped_floor.name=난간 끝이 반전됨(바닥) +tile.railing_end_flipped_self.name=난간 끝이 반전됨(자체) tile.railing_normal.name=난간 -tile.rbmk_absorber.name=RBMK 붕소 중성자 흡수체 -tile.rbmk_blank.name=RBMK 구조 기둥 -tile.rbmk_boiler.name=RBMK 스팀 채널 -tile.rbmk_console.name=RBMK 콘솔 -tile.rbmk_control.name=RBMK 제어봉 -tile.rbmk_control_auto.name=RBMK 자동 제어봉 -tile.rbmk_control_mod.name=RBMK 조절 제어봉 -tile.rbmk_crane_console.name=RBMK 크레인 콘솔 -tile.rbmk_loader.name=RBMK 스팀 커넥터 -tile.rbmk_moderator.name=RBMK 흑연 중재자 -tile.rbmk_outgasser.name=RBMK 조사 채널 -tile.rbmk_reflector.name=RBMK 텅스텐 카바이드 중성자 반사경 -tile.rbmk_rod.name=RBMK 연료봉 -tile.rbmk_rod_mod.name=RBMK 감속 연료봉 -tile.rbmk_rod_reasim.name=RBMK 연료봉(ReaSim) -tile.rbmk_rod_reasim_mod.name=RBMK 감속 연료봉(ReaSim) -tile.rbmk_steam_inlet.name=RBMK ReaSim 급수구 -tile.rbmk_steam_outlet.name=RBMK ReaSim 스팀 콘센트 -tile.rbmk_storage.name=RBMK 스토리지 컬럼 -tile.reactor_computer.name=원자로 제어 -tile.reactor_conductor.name=원자로 보일러 -tile.reactor_control.name=제어봉 -tile.reactor_ejector.name=원자로 폐기물 이젝터 -tile.reactor_element.name=반응기 챔버 -tile.reactor_hatch.name=원자로 접근 해치 -tile.reactor_inserter.name=원자로 연료 삽입기 -tile.red_barrel.name=폭발성 배럴 -tile.red_cable.name=레드 구리 케이블 -tile.red_pylon.name=전주 -tile.red_wire_coated.name=코팅된 적색 구리 케이블 -tile.reinforced_brick.name=강화 벽돌 -tile.reinforced_brick_slab.name=강화 벽돌 슬래브 -tile.reinforced_brick_stairs.name=강화 벽돌 계단 -tile.reinforced_glass.name=강화 유리 -tile.reinforced_lamp_off.name=강화 램프 -tile.reinforced_lamp_on.name=강화 램프 -tile.reinforced_light.name=강화 발광석 -tile.reinforced_sand.name=강화 사암 -tile.reinforced_sand_slab.name=강화 모래 슬래브 -tile.reinforced_sand_stairs.name=강화 모래 계단 -tile.reinforced_stone.name=조밀한 돌 -tile.reinforced_stone_slab.name=강화 석판 -tile.reinforced_stone_stairs.name=강화된 돌계단 -tile.rejuvinator.name=회춘 장치 -tile.residue.name=클라우드 잔류물 -tile.round_airlock_door.name=라운드 에어록 도어 -tile.rtg_polonium.name=PT 동위원소 세포 -tile.safe.name=안전한 -tile.sand_boron.name=붕소 모래 -tile.sand_boron_layer.name=붕소 모래 층 -tile.sand_gold.name=골드샌드 -tile.sand_gold198.name=금-198 모래 -tile.sand_lead.name=납모래 -tile.sand_polonium.name=폴로늄 모래 -tile.sand_quartz.name=석영 모래 -tile.sand_uranium.name=우라늄 모래 -tile.sat_dock.name=화물 랜딩 패드 -tile.schrabidic_block.name=슈라비딕산 -tile.seal_controller.name=사일로 해치 오프너 -tile.seal_frame.name=사일로 해치 프레임 -tile.seal_hatch.name=사일로 해치 -tile.secure_access_door.name=보안 액세스 도어 -tile.sellafield_0.name=셀라파이트 -tile.sellafield_1.name=핫 셀라파이트 -tile.sellafield_2.name=끓는 셀라파이트 -tile.sellafield_3.name=타오르는 셀라파이트 -tile.sellafield_4.name=지옥불 셀라파이트 -tile.sellafield_core.name=셀라파이트-코리움 -tile.sellafield_slaked.name=소석회 셀라파이트 -tile.silo_hatch.name=사일로 해치 -tile.sliding_blast_door.name=옆으로 슬라이딩 블래스트 도어 -tile.sliding_blast_door_2.name=옆으로 슬라이딩 블래스트 도어 -tile.sliding_seal_door.name=슬라이딩 씰 도어 -tile.small_hatch.name=작은 해치 -tile.solar_mirror.name=헬리오스탯 미러 -tile.soyuz_capsule.name=화물 착륙 캡슐 -tile.soyuz_launcher.name=소유즈 런칭 플랫폼 -tile.spikes.name=스파이크 -tile.spinny_light.name=스피니 라이트 -tile.steel_beam.name=철제 빔 -tile.steel_corner.name=강철 벽 모서리 -tile.steel_grate.name=스틸 창살 -tile.steel_poles.name=스틸 폴 -tile.steel_roof.name=평평한 강철 지붕 -tile.steel_scaffold.name=강철 비계 -tile.steel_wall.name=강철 벽 -tile.stone_depth.name=뎁스 록 -tile.stone_depth_nether.name=네더 뎁스 록 -tile.stone_gneiss.name=흑연 편암 -tile.stone_porous.name=다공성 석재 -tile.struct_iter_core.name=핵융합 반응기 핵심 구성 요소 -tile.struct_launcher.name=런치 패드 구성 요소 블록 -tile.struct_launcher_core.name=컴팩트 런처 핵심 구성 요소 -tile.struct_launcher_core_large.name=테이블 핵심 구성 요소 실행 -tile.struct_plasma_core.name=플라즈마 히터 코어 부품 -tile.struct_scaffold.name=런치 패드 발판 블록 -tile.struct_soyuz_core.name=소유즈 런처 코어 컴포넌트 -tile.taint.name=더러움 -tile.taint_barrel.name=IMP 잔류 물 배럴 -tile.tape_recorder.name=테이프 레코더 -tile.tesla.name=테슬라 코일 -tile.test_nuke.name=테스트 핵 -tile.therm_endo.name=흡열 폭탄 -tile.therm_exo.name=발열 폭탄 -tile.tile_lab.name=실험실 타일 -tile.tile_lab_broken.name=부서진 실험실 타일 -tile.tile_lab_broken_slab.name=부서진 실험실 타일 석판 -tile.tile_lab_broken_stairs.name=부서진 실험실 타일 계단 -tile.tile_lab_cracked.name=금이 간 실험실 타일 -tile.tile_lab_cracked_slab.name=금이 간 실험실 타일 석판 -tile.tile_lab_cracked_stairs.name=금이 간 실험실 타일 계단 -tile.tile_lab_slab.name=실험실 타일 슬래브 -tile.tile_lab_stairs.name=실험실 타일 계단 -tile.toxic_block.name=셀라린 -tile.transition_seal.name=전환 인감 -tile.turret_cheapo.name=치포 개틀링 센트리 -tile.turret_chekhov.name=중기관총 포탑 "체호프의 총" -tile.turret_cwis.name=팔랑크스 Mk-15 CIWS -tile.turret_flamer.name=화염 방사기 포탑 -tile.turret_friendly.name=체인건 터렛 "미스터 프렌들리" -tile.turret_fritz.name=중화염 방사기 포탑 "Fritz" -tile.turret_heavy.name=중기관총 포탑 -tile.turret_howard.name=골키퍼 트윈 체인건 CIWS "하워드" -tile.turret_howard_damaged.name=골키퍼 트윈 체인건 CIWS "Methusalem" -tile.turret_jeremy.name=오토캐논 포탑 "제레미" -tile.turret_light.name=경기관총 포탑 -tile.turret_maxwell.name=고에너지 MASER 터렛 "맥스웰" -tile.turret_richard.name=로켓 발사기 포탑 "리처드" -tile.turret_rocket.name=로켓 포탑 -tile.turret_spitfire.name=터렛 지금은 이름이 없습니다 [WIP] -tile.turret_tau.name=타우온 포탑 -tile.turret_tauon.name=XVL1456 프로토타입 포탑 "Tauon" -tile.vault_door.name=Vault-Tec 방폭문 -tile.vent_chlorine.name=염소 벤트 -tile.vent_chlorine_seal.name=염소 씰 -tile.vent_cloud.name=클라우드 벤트 -tile.vent_pink_cloud.name=핑크 클라우드 벤트 -tile.vitrified_barrel.name=유리화된 핵 폐기물 드럼 -tile.volcanic_lava_block.name=화산 용암 -tile.volcano_core.name=화산 코어 -tile.waste_dirt.name=오염된 흙 -tile.waste_earth.name=죽은 풀 -tile.waste_grass_tall.name=폐풀 -tile.waste_leaves.name=폐엽 -tile.waste_log.name=까맣게 탄 통나무 -tile.waste_mycelium.name=빛나는 균사체 -tile.waste_planks.name=까맣게 탄 나무 판자 -tile.waste_trinitite.name=삼위일체 광석 -tile.waste_trinitite_red.name=레드 트리니타이트 광석 -tile.water_door.name=워터 도어 -tile.watz_conductor.name=와츠 전기 포트 -tile.watz_control.name=강화 제어봉 -tile.watz_cooler.name=Watz Reactor 슈퍼쿨러 -tile.watz_core.name=Watz 반응기 제어 -tile.watz_element.name=Watz 반응 챔버 -tile.watz_end.name=Watz 반응기 안정성 요소 -tile.watz_hatch.name=Watz Reactor 액세스 해치 -tile.yellow_barrel.name=방사성 배럴 -tool.ability.centrifuge=자동 원심 분리기 -tool.ability.crystallizer=자동 결정화기 -tool.ability.explosion=폭발 -tool.ability.hammer=광역 -tool.ability.luck=행운 -tool.ability.mercury=머큐리 터치 -tool.ability.midas=마이다스의 손 -tool.ability.recursion=정맥 광부 -tool.ability.shredder=자동 분쇄기 -tool.ability.silktouch=섬세한 손길 -tool.ability.smelter=자동 제련소 -trait.asbestos=석면 -trait.blinding=실명 -trait.breeding=번식 반응기에서 %s 작업 가치 -trait.coal=석탄 먼지 -trait.digamma=디감마 방사선 -trait.drop=위험한 드롭 -trait.furnace=핵로에서 %s 작업 가치 -trait.heat=%s HEAT 제공 -trait.hlParticle=입자 반감기: %s -trait.hlPlayer=플레이어 반감기: %s -trait.hot=발화성 / 고온 -trait.hydro=수력 폭발 -trait.radResistance=방사선 저항: %s -trait.radioactive=방사능 -trait.rbmk.coreTemp=코어 온도: %s -trait.rbmk.depletion=고갈: %s -trait.rbmk.diffusion=확산: %s -trait.rbmk.fluxFunc=플럭스 함수: %s -trait.rbmk.funcType=함수 유형: %s -trait.rbmk.heat=최대 전력에서 틱당 열: %s -trait.rbmk.melt=녹는점: %s -trait.rbmk.neutron.any=모든 중성자 -trait.rbmk.neutron.any.x=모든 비유클리드 모양 -trait.rbmk.neutron.fast=고속 중성자 -trait.rbmk.neutron.fast.x=타원 비유클리드 모양 -trait.rbmk.neutron.slow=느린 중성자 -trait.rbmk.neutron.slow.x=쌍곡선 비유클리드 모양 -trait.rbmk.skinTemp=피부 온도: %s -trait.rbmk.source=자기 점화 -trait.rbmk.splitsInto=다음으로 분할: %s -trait.rbmk.splitsWith=분할 대상: %s -trait.rbmk.xenon=제논 독: %s -trait.rbmk.xenonBurn=Xenon 굽기 기능: %s -trait.rbmk.xenonGen=Xenon gen 기능: %s -trait.rbmx.coreTemp=코어 엔트로피: %s -trait.rbmx.depletion=딱딱함: %s -trait.rbmx.diffusion=흐름: %s -trait.rbmx.fluxFunc=파멸 기능: %s -trait.rbmx.funcType=기능 사양: %s -trait.rbmx.heat=최대 전력에서 틱당 크러스트: %s -trait.rbmx.melt=충돌 깊이: %s -trait.rbmx.skinTemp=스킨 엔트로피: %s -trait.rbmx.source=자기 연소 -trait.rbmx.splitsInto=출발지: %s -trait.rbmx.splitsWith=도착 위치: %s -trait.rbmx.xenon=납 독: %s -trait.rbmx.xenonBurn=리드 파괴 기능: %s -trait.rbmx.xenonGen=리드 생성 기능: %s -trait.tile.cluster=플레이어가 파괴했을 때만 떨어집니다. -trait.tile.depth=폭발로만 파괴 가능 -trait.unstable=불안정한 -wavelengths.name.drx=디감마 -wavelengths.name.gamma=감마 -wavelengths.name.ir=적외선 -wavelengths.name.micro=마이크로파 -wavelengths.name.radio=라디오 -wavelengths.name.uv=자외선 -wavelengths.name.visible=가시 광선 -wavelengths.name.xray=엑스레이 -wavelengths.waveRange.drx=1916169 플랑크 길이 -wavelengths.waveRange.gamma=<오후 9시 -wavelengths.waveRange.ir=780nm-1mm -wavelengths.waveRange.micro=1mm-1m -wavelengths.waveRange.radio=>1m -wavelengths.waveRange.uv=10nm-400nm -wavelengths.waveRange.visible=400nm-780nm -wavelengths.waveRange.xray=오후 9시-10시 -weapon.ability.beheader=참수기 -weapon.ability.chainsaw=고통 톱 -weapon.ability.fire=불타는 -weapon.ability.phosphorus=인 팁 -weapon.ability.radiation=방사성 칼날 -weapon.ability.stun=굉장히 멋진 -weapon.ability.vampire=흡혈귀 \ No newline at end of file +tile.railing_bend.name=난간 벤드 +item.assembly_nuke.name=미니 핵탄체 +tile.bm_power_box.name=블랙 메사 전원 스위치 +container.storageDrum=핵폐기물 처리 드럼 +container.orbus=중형 반물질 저장소 +container.bat9000=빅애스 탱크 9000 +container.anvil=Tier %s Anvil +container.heaterFirebox=화실 +container.heaterHeatex=열교환 기 +container.furnaceSteel=강철로 +item.charge_railgun.name=중수소 플라즈마 캡슐 +item.ducc.name=듀크 +commands.hbmrad.removeall=치수에 대해 로드된 방사선을 모두 제거했습니다 %1$s. +commands.hbmrad.rad_not_int=새로운 라드 값은 숫자가 아닙니다! +commands.hbmrad.player_success=모든 온라인 플레이어의 방사선을 성공적으로 제거했습니다! +commands.hbmrad.not_rad=새로운 rad 값을 입력하세요! +commands.hbmrad.not_found_player=플레이어를 찾을 수 없습니다 %1$s! +tile.bomb.tnt_enabled=[ 브레이크 시 점화: 활성화 ] +tile.bomb.tnt_disabled=[ 브레이크 시 점화: 비활성화 ] + +item.ingot_firebrick.name=내화 벽돌 +item.ball_fireclay.name=내화 점토 + +flare.ignition=점화 +flare.valve=흐름 밸브 diff --git a/src/main/resources/assets/hbm/lang/zh_cn.lang b/src/main/resources/assets/hbm/lang/zh_cn.lang index 9555c86e1d..f2d29ecbf3 100644 --- a/src/main/resources/assets/hbm/lang/zh_cn.lang +++ b/src/main/resources/assets/hbm/lang/zh_cn.lang @@ -1,40 +1,8 @@ -#book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 -#book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. -#book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. -#book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特殊用途. 建议在没有其他合适组件的情况下用结构柱填充反应堆, 因为结构柱能够传热. -#book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. -#book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.page16=§4§lAvoid. -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title1=Introduction -#book.rbmk.title10=Graphite Moderator -#book.rbmk.title11=Structural Column -#book.rbmk.title12=Console -#book.rbmk.title13=Console Usage -#book.rbmk.title15=Fuel -#book.rbmk.title16=Meltdown -#book.rbmk.title2=Heat -#book.rbmk.title3=Fuel Rod -#book.rbmk.title4=Control Rod -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.title7=Steam Channel -#book.rbmk.title8=Neutron Reflector -#book.rbmk.title9=Neutron Absorber -achievement.bossUFO=Ayy Lmao -achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? armor.blastProtection=修正 %s 的爆炸伤害 armor.cap=伤害上限 %s armor.damageModifier=修正 %s 对 %s 的伤害 armor.electricJetpack=离子喷射背包 +armor.explosionImmune=免疫除爆炸伤害外一切伤害 armor.fastFall=快速降落 armor.fireproof=防火 armor.fullSetBonus=全套效果: @@ -50,7 +18,14 @@ armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 armor.threshold=伤害阈值 %s -armor.vats=这是一个测试,以证明这些书的e[B]ic换行功能。字体比例是可自定义的,换行符也会相应调整,这使得编写新页面非常容易。 +armor.vats=敌对生物HUD +battery.priority.high=充电优先级:高 +battery.priority.high.desc=总是需要优先装满的紧急缓冲区 +battery.priority.low=充电优先级:低 +battery.priority.low.desc=在大多数情况下,需要在不影响机器性能的情况下$存储剩余的能量 +battery.priority.normal=充电优先级:正常 +battery.priority.normal.desc=较小的电网,其优先级无关紧要 +battery.priority.recommended=推荐用于: book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. @@ -63,11 +38,89 @@ book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难 book.rbmk.page2=当反应堆运行时, 它将会产生 §l热量§r. 热量会在各个组件之间扩散, 并在这个过程中会慢慢减少. 我们的目标是在不让反应堆熔化的情况下 产生尽可能多的热量, 并将热量传递到蒸汽管道中, 从而冷却反应堆并产生蒸汽. book.rbmk.page3=反应堆中的 §l燃料棒§r 将捕获周围的中子, 使棒内的燃料发生核反应, 并在此过程中释放中子. 中子会向四个方向释放, 最大释放范围为5格. 释放中子量的多少取决于所用的核燃料. book.rbmk.page4=反应堆中的 §l控制棒§r 将减少中子通过它的数量. 完全插入时, 它会阻挡所有中子; 当插入一半时, 它只会阻挡一半中子. 控制棒用于调节反应堆的活跃状态和使其关闭. -book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%的增量手动插入. +book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 旁边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%的增量手动插入. book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们不能手动调整, 而是根据当前温度来调整控制棒插入的程度. 使用哪种功能, 在多少的温度插入多少的深度必须被事先设定好. book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.title_fluxgraph=氙毒化 +book.rbmk.page_fluxgraph=从左侧的RBMK燃料棒§l发射50通量§r. 控制棒会让 §l80%% 通过,所以就是40§r 通量. §5§l氙毒化 §5§l会阻断 75%%§r 的入射通量. 所以只有10通量到达右侧燃料棒. 氙毒化作用会带来低通量. +book.rbmk.title_schematic=概述 +book.rbmk.page_schematic=在反应堆中,裂变产生热量,将水转化为蒸汽. 这些蒸汽通过管道流向蒸汽轮机, 蒸汽轮机发电并将蒸汽转化为较低级别的蒸汽. 低压蒸汽流入冷凝器,冷凝器将其转化为水. 输入/输出模式下的水箱充当备用水箱. +book.rbmk.title_flux=通量 +book.rbmk.page_flux=发射的中子流被称作通量. 中子是燃料棒中原子裂变过程中会产生热量的粒子. 中子放射函数f(x): 决定了在给定通量x的情况下发射多少通量和产生多少热量. 示例:中子放射函数为§lsqrt(输入)*2 =输出§r. 因此,对于10通量的输入,则输出为 sqrt(10) * 2=6.325 通量. +book.rbmk.title_flux_explain=中子放射函数 +book.rbmk.page_flux_explain=通量输出*热量/通量=热量输出. 对于最大热量,你需要大量通量或者高热量/通量. X轴为输入通量,Y轴为输出通量. 大多数燃料的f(0)=0,因此在0输入时它们的输出为0. +它们不是自发进行反应的,需要通量输入才能开始. 你可以通过放入带有§c自燃§r属性的燃料棒获得初始输入. +book.rbmk.title_func_passive=Passive +book.rbmk.page_func_passive=自我维持: §2是§r 使用中子反射器:§8无关§r 示例: f(x) = 50 +book.rbmk.title_func_euler=Euler +book.rbmk.page_func_euler=自我维持: §8否§r 使用中子反射器: §2有益§r 示例: f(x) = (1 - e^(-x/25)) * 20 +book.rbmk.title_func_sigmoid=Sigmoid +book.rbmk.page_func_sigmoid=自我维持: §8否§r 使用中子反射器: §2有益§r 示例: f(x) = 30 / (1 + e^(-0.1x + 5)) +book.rbmk.title_func_logarithmic=Logarithmic +book.rbmk.page_func_logarithmic=自我维持: §2是§r 使用中子反射器: §2有益§r 示例: f(x) = log10(x) * 10 +book.rbmk.title_func_square_root=Square Root +book.rbmk.page_func_square_root=自我维持: §2是§r 使用中子反射器: §2有益§r 示例: f(x) = √x * 2 +book.rbmk.title_func_neg_quad=Negative Quadratic +book.rbmk.page_func_neg_quad=自我维持 = §6或许§r 使用中子反射器: §6有风险§r 示例: f(x) = x - x² * 0.001 +book.rbmk.title_func_linear=Linear +book.rbmk.page_func_linear=自我维持: §8否§r 使用中子反射器: §4危险§r 示例: f(x) = x * 0.5 放在MEDIUM、SAFE、PASSIVE但不含较高的燃料棒的旁边. +book.rbmk.title_func_quadratic=Quadratic +book.rbmk.page_func_quadratic=自我维持: §8否§r 使用中子反射器: §4§l疯狂§r 示例: f(x) = x² * 0.1 只能放在SAFE和PASSIVE的燃料棒或吸收器旁边. +book.rbmk.title_tips=小提示 +book.rbmk.page_tips=如果通量离开反应堆(没有被阻挡或反射), 或者通量到达没有盖子的RBMK柱,辐射就会泄漏. 蒸汽连接器用于蒸汽通道的性能和可达性. 辐照通道是吸收材料,利用入射通量进行配方. +book.rbmk.title_mistakes=常见问题 +book.rbmk.page_mistakes=§l资讯§r: 通量可通过空RBMK燃料柱. §l方案§r: 你把耗尽的燃料棒换到粉色燃料柱. 红色燃料柱中使用了带有 §4DANGEROUS§r 类中子放射函数. 如果你拿出粉红色的燃料棒,RBMK就会爆炸。那发生了什么? 来自红色的通量不再被粉色吸收,而是被反射回来. 这就形成了一个反馈回路,使温度升高 +book.rbmk.title_post_meltdown=熔毁处理规程 +book.rbmk.page_post_meltdown=RBMK爆炸了——现在怎么办? 有两种危险来自辐射和高温. 使用具有高防爆性的方块来保护自己免受内部辐射的影响, 这样你就可以靠近并且使用火焰保护来对抗高温. RBMK慢慢冷却并衰变为规则的碎片, 如果硼砂靠近燃烧或放射的rbmk碎片, 它会加速衰变并降低辐射水平. 在具有防核爆炸性能的地下室中建造RBMK,以限制辐射传播. 用具有高抗爆性的方块阻挡燃料通道下方的熔融堆芯流动, 从而阻碍了堆芯石的形成. +book.msword.cover=如何去$制造出一把$属于你的陨石剑 +book.msword.title0=介绍 +book.msword.page0=1-8页: 如何制造陨石剑. 9-25页:如何升级你的陨石剑 +book.msword.title1=陨石块 +book.msword.page1=陨石碎片可以通过开采不时掉落的陨石来获得. +book.msword.title2=陨石锭 +book.msword.page2=§l工具 = 高炉§r +book.msword.title3=烧热的陨石锭 +book.msword.page3=§l工具 = 熔炉§r +book.msword.title4=锻造陨石锭 +book.msword.page4=§l工具 = 三级砧§r: 它们只能趁热制作,所以要快 +book.msword.title5=烧热的锻造陨石锭 +book.msword.page5=§l工具 = 熔炉§r +book.msword.title6=陨石刀 +book.msword.page6=§l工具 = 砧§r: 很好你做到了! 现在做第二个陨石刀你就可以得到你的第一把陨石剑了. +book.msword.title7=陨石剑 +book.msword.page7=§l工具 = 工作台§r +book.msword.title8=升级 1: 烧焦 +book.msword.page8=§l工具 = 熔炉§r +book.msword.title9=升级 2: 重铸 +book.msword.page9=§l工具 = 砧§r +book.msword.title10=升级 3: 硬化 +book.msword.page10=§l工具 = 锻压机§r 使用普通锻模 +book.msword.title11=升级 4: 合金 +book.msword.page11=§l工具 = 高炉§r +book.msword.title12=升级 5: 机械加工 +book.msword.page12=§l工具 = 装配机§r +book.msword.page13=将剑放在电池槽内时,在装配机内制作一些东西. +book.msword.title14=升级 6: 精制 +book.msword.page14=§l工具 = 化工厂§r +book.msword.page15=将剑放在电池槽内时,在化工厂内制作一些东西. +book.msword.title16=升级 7: 刻蚀 +book.msword.page16=§l工具 = 矿物酸化机§r +book.msword.title17=升级 8: 增殖 +book.msword.page17=§l工具 = 增殖反应堆§r 热量等级4 +book.msword.title18=升级 9: 辐照 +book.msword.page18=§l工具 = RBMK 辐照通道§r +book.msword.page19=使用巨量的辐射轰击这把剑. +book.msword.title20=升级 10: 熔融 +book.msword.page20=§l工具 = 聚变反应堆§r 使用任意等离子体: 将辐照过的剑放入增殖槽. +book.msword.title21=升级 11: 凶恶 +book.msword.page21=§l工具 = 聚变反应堆§r 使用野火等离子体: 将辐照过的剑放入增殖槽. +book.msword.title22=升级 12: 扭曲 +book.msword.page22=§l工具 = S.A.F.E 反应堆§r: 把剑扔进奇点反聚变反应堆 +book.msword.page23=一旦开始发电, 等离子体可见时,用陨石剑(凶恶)替换反应堆的核心. +book.msword.title24=升级 13: §kDemonic§r +book.msword.page24=§l工具 = DFC§r: §4REDACTED book.rbmk.title1=介绍 book.rbmk.title10=石墨慢化剂 book.rbmk.title11=结构柱 @@ -169,11 +222,15 @@ chem.DYNAMITE=硝糖炸药合成 chem.ALGE=生物质合成 chem.DYN_STR=Neoveline合成 chem.DYN_EL=电素合成 +chem.HEAVY_ELECTROLYSIS=低温电解重水 +chem.SOLVENT=有机溶剂混合 +chem.RADIOSOLVENT=高性能溶剂混合 +chem.NITRIC_ACID=硝酸生产 container.amsBase=AMS基座 [开发中] container.amsEmitter=AMS发射极 [开发中] container.amsLimiter=AMS稳能器 [开发中] -container.anvil=砧 +container.anvil=%s 级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 @@ -189,7 +246,7 @@ container.crateDesh=Desh箱子 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 -container.crystallizer=矿物酸化器 +container.crystallizer=矿物酸化机 container.cyclotron=回旋加速器 container.dfcCore=暗核聚变堆核心 container.dfcEmitter=DFC发射器 @@ -204,13 +261,15 @@ container.factoryTitanium=工厂 container.fluidtank=储罐 container.forceField=力场发生器 container.fusionMultiblock=大型聚变反应堆 -container.fusionaryWatzPlant=Watz聚变反应堆 +container.fusionaryWatzPlant=S.A.F.E container.gasCentrifuge=气体离心机 container.gasFlare=高架火炬 container.generator=核反应堆 container.hadron=粒子加速器 container.heaterOilburner=流体燃烧器 container.heaterOven=加热炉 +container.furnaceIron=铁炉 +container.furnaceSteel=钢炉 container.heaterHeatex=换热交换器 container.iGenerator=工业发电机 container.keyForge=锁匠桌 @@ -295,6 +354,16 @@ container.turretTauon=陶子发射器炮塔“陶恩” container.uf6_tank=六氟化铀储罐 container.wasteDrum=乏燃料池 container.watzPowerplant=Watz发电厂 +container.rttySender=无线红石发射器 +container.rttyReceiver=无线红石接收器 +container.rbmkHeater=RBMK流体加热器 +container.frackingTower=水力压裂塔 +commands.hbmrad.removeall=移除维度中的所有加载辐射 %1$s. +commands.hbmrad.rad_not_int=新的辐射值不是数字! +commands.hbmrad.player_success=成功清除所有在线玩家的辐射! +commands.hbmrad.not_rad=请输入新的辐射值! +commands.hbmrad.not_found_player=无法找到玩家 %1$s! + death.attack.acid=%1$s 掉进了酸里 death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 death.attack.amsCore=%1$s 在奇点之火中蒸发 @@ -320,7 +389,7 @@ death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 death.attack.exhaust=%1$s 被火箭烤成了羊肉串 death.attack.flamethrower=%1$s 被 %2$s 火化 -death.attack.gluon=%1$s 被浓缩胶子流解原子。 +death.attack.gluon=%1$s 被浓缩胶子流解成原子。 death.attack.gunGib=%1$s 被 %2$s 炸成了碎片。 death.attack.ice=%1$s 被 %2$s 做成了冰棒 death.attack.laser=%1$s 被 %2$s 变成了灰烬 @@ -349,31 +418,33 @@ death.attack.taint=%1$s 死于恶性肿瘤 death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 death.attack.teleporter=%1$s 被传送到虚空 + desc.item.rtgDecay=衰减为:%s desc.item.rtgHeat=热量:%s digamma.playerDigamma=玩家F-迪伽马辐照水平: digamma.playerHealth=玩家所受F-迪伽马辐照影响: digamma.title=玩家F-迪伽马辐射自检器 dosimeter.title=剂量计 -entity.entity_balls_o_tron.name=Balls-O-Tron 素数 -entity.entity_balls_o_tron_seg.name=Balls-O-Tron 段 +entity.entity_balls_o_tron.name=机械蠕虫 +entity.entity_balls_o_tron_seg.name=机械蠕虫 entity.entity_bullet.name=子弹 entity.entity_bullet_mk2.name=子弹 entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=老鸭子 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 -entity.entity_hunter_chopper.name=猎人斩波器 +entity.entity_hunter_chopper.name=猎人直升机 entity.entity_mask_man.name=面具人 entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 -entity.entity_ntm_ufo.name=火星入侵舰 +entity.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_nuclear_creeper.name=核爬行者 entity.entity_rbmk_debris.name=放射性 RBMK 碎片 entity.entity_rocket.name=火箭 -entity.entity_schrabnel.name=施拉内尔 +entity.entity_schrabnel.name=弹片 entity.entity_taint_crab.name=污染螃蟹 -entity.entity_tainted_creeper.name=被污染的苦力怕 +entity.entity_tainted_creeper.name=污染爬行者 entity.entity_tesla_crab.name=磁暴螃蟹 +entity.entity_glowing_one.name=发光种 fluid.acid=过氧化氢 fluid.acid_fluid=酸 fluid.amat=反物质 @@ -394,7 +465,6 @@ fluid.heavyoil=重油 fluid.hotoil=热原油 fluid.hotsteam=热蒸汽 fluid.hydrogen=液氢 -flare.ignition=点火开关 fluid.kerosene=煤油 fluid.lightoil=轻油 fluid.lubircant=发动机润滑油 @@ -402,17 +472,17 @@ fluid.lubricant=发动机润滑油 fluid.mercury=汞 fluid.mud_fluid=毒泥 fluid.naphtha=石脑油 -fluid.nitan=NITAN© 100 辛烷超级燃料 +fluid.nitan=NITAN© 100号超级燃料 fluid.oil=原油 fluid.oxygen=液氧 fluid.pain=Pandemonium(III)钽铁矿溶液 fluid.petroil=石油 fluid.petroleum=石油气 fluid.plasma_bf=野火等离子体 -fluid.plasma_dt=氘氚等离子体 -fluid.plasma_hd=氢氘等离子体 -fluid.plasma_ht=氢氚等离子​​体 -fluid.plasma_xm=氙汞等离子体 +fluid.plasma_dt=氘-氚等离子体 +fluid.plasma_hd=氢-氘等离子体 +fluid.plasma_ht=氢-氚等离子​​体 +fluid.plasma_xm=氙-汞等离子体 fluid.puf6=六氟化钚 fluid.radwater_fluid=核污染水 fluid.reclaimed=再生工业油 @@ -426,7 +496,6 @@ fluid.toxic_fluid=绿色软泥 fluid.tritium=氚 fluid.uf6=六氟化铀 fluid.ultrahotsteam=超浓密蒸汽 -flare.valve=燃气阀门 fluid.volcanic_lava_fluid=火山熔岩 fluid.wastefluid=液态核废料 fluid.wastegas=气态核废料 @@ -438,7 +507,10 @@ fluid.crackoil=裂化油 fluid.hotcrackoil=热裂化油 fluid.aromatics=芳香烃 fluid.unsaturateds=不饱和烃 -fluid.plasma_put=钚氚等离子体 +fluid.plasma_put=钚-氚等离子体 +fluid.fracksol=压裂液 +fluid.liquid_osmiridium=锇酸 + geiger.chunkRad=当前区块辐射: geiger.envRad=环境总辐射量: geiger.playerRad=玩家辐射: @@ -457,6 +529,24 @@ hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的 hadron.noresult=无结果 hadron.progress=正在进行中... hadron.success=已完成! +hadron.error_generic=错误! +hadron.error_no_charge=错误 0x01 [NC] +hadron.error_no_analysis=错误 0x02 [NA] +hadron.error_obstructed_channel=错误 0x03 [OC] +hadron.error_expected_coil=错误 0x04 [EC] +hadron.error_malformed_segment=错误 0x05 [MS] +hadron.error_analysis_too_long=错误 0x06 [ATL] +hadron.error_analysis_too_short=错误 0x07 [ATS] +hadron.error_diode_collision=错误 0x08 [DC] +hadron.error_branching_turn=错误 0x09 [BT] +hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 +hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 +hadron.noresult_too_slow=推进力不足! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=错误模式! +hadron.stats=上一次结果: +hadron.stats_coord=错误位置: %s / %s / %s +hadron.stats_momentum=推力: %s hbm.achievement.assembly=制造 hbm.achievement.assembly.desc=Vault-tec 支持级别 2 (装配机) hbm.achievement.bossCreeper=四条腿的行走核弹 @@ -576,15 +666,15 @@ hbm.achievement.progress_centrifuge_1.desc=离心力是假的,不要再@我了 hbm.achievement.progress_radium=第一核电 hbm.achievement.progress_radium.desc=把它丢进水里 hbm.achievement.progress_pile=领航员登陆新大陆 -hbm.achievement.progress_pile.desc=“原住民怎么样?” / “非常友好。” +hbm.achievement.progress_pile.desc=“当地人怎么样?” “非常友好。” hbm.achievement.progress_centrifuge_2=工业核气龙卷风 hbm.achievement.progress_centrifuge_2.desc=别让FBI发现 hbm.achievement.progress_u235=武器级铀 hbm.achievement.progress_u235.desc=你的选择:战争或和平 hbm.achievement.progress_pu239=武器级钚 -hbm.achievement.progress_pu239.desc=哈哈有趣的球---BOOM +hbm.achievement.progress_pu239.desc=哈哈好有趣的球---BOOM hbm.achievement.progress_au198=最热的黄金 -hbm.achievement.progress_au198.desc=让我们来做些珠宝吧 +hbm.achievement.progress_au198.desc=来做些珠宝吧 hbm.achievement.progress_radspice=切尔诺贝利锭 hbm.achievement.progress_radspice.desc=Awwww 好烫 hbm.achievement.progress_osmiridium=铱锇合金 @@ -593,15 +683,15 @@ hbm.achievement.progress_hadron=大型强子对撞机 hbm.achievement.progress_hadron.desc=你到达了人类的前沿 hbm.achievement.progress_singularity_spark=宇宙的主人 hbm.achievement.progress_singularity_spark.desc=制造一个Spark奇点 -hbm.achievement.progress_dineutronium=我草 DNT -hbm.achievement.progress_dineutronium.desc=天哪,我们做到了 +hbm.achievement.progress_dineutronium=我草 DNT! +hbm.achievement.progress_dineutronium.desc=天哪,我们做到了! hbm.achievement.progress_dfc=启动太阳 hbm.achievement.progress_dfc.desc=恒星营火 hbm.achievement.progress_creative=认证 DFC 专家 hbm.achievement.progress_creative.desc=你现在已经精通 DFC了 -hbm.achievement.progress_crystalizer=酸性的 -hbm.achievement.progress_crystalizer.desc=啊 我的皮肤 -hbm.achievement.progress_silex=同位素分离 +hbm.achievement.progress_crystalizer=酸 +hbm.achievement.progress_crystalizer.desc=噢!我的皮肤 +hbm.achievement.progress_silex=激光同位素分离 hbm.achievement.progress_silex.desc=它比听起来更酷,我保证。 hbm.achievement.progress_bismuth=铋-209 hbm.achievement.progress_bismuth.desc=还记得人们为此抱怨了一个月吗? @@ -614,7 +704,7 @@ hbm.achievement.progress_fusion.desc=氘核、氚核和能量的舞蹈。 hbm.achievement.progress_oil_1=我们发现了石油 hbm.achievement.progress_oil_1.desc=污染地球的第一步 hbm.achievement.progress_oil_2=我们需要更多石油!!! -hbm.achievement.progress_oil_2.desc=下一级抽油 +hbm.achievement.progress_oil_2.desc=下一级的油泵 hbm.achievement.progress_oil_3=压裂这块基岩 hbm.achievement.progress_oil_3.desc=无限石油! hbm.achievement.progress_refinery=我们加工石油 @@ -625,8 +715,32 @@ hbm.achievement.progress_crack=来裂化吧 hbm.achievement.progress_crack.desc=裂化油以获得更多东西 hbm.achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? hbm.achievement.bossUFO=呀哈哈哈,笑死我了 -hbm.achievement.progress_schrabidium=稳定之岛 -hbm.achievement.progress_schrabidium.desc=无论如何,我不会看它太久。 +hbm.achievement.progress_schrabidium=稳定岛 +hbm.achievement.progress_schrabidium.desc=无论如何,我不会看太久。 +hbm.achievement.progress_fensu=内心的平静 +hbm.achievement.progress_fensu.desc=没什么好说的了 +hbm.achievement.progress_dosimeter=剂量计 +hbm.achievement.progress_dosimeter.desc=你最好的伙伴 +hbm.achievement.progress_geiger=盖革计数器 +hbm.achievement.progress_geiger.desc=你升级过的最好的伙伴 +hbm.achievement.progress_mask=煤尘不再有 +hbm.achievement.progress_mask.desc=好吧,它干了 +hbm.achievement.progress_omega_filter=我为人人 +hbm.achievement.progress_omega_filter.desc=没有什么能做阻挡我了 +hbm.achievement.progress_book=§kboxcars 书 +hbm.achievement.progress_book.desc=§kThe most secret secret +hbm.achievement.progress_modtable=装甲改装台 +hbm.achievement.progress_modtable.desc=升级,人们,升级 +hbm.achievement.progress_cladding_electronium=最好的覆层 +hbm.achievement.progress_cladding_electronium.desc=抗辐射的辐射锭 +hbm.achievement.progress_steel=钢 +hbm.achievement.progress_steel.desc=我们帝国的基础 +hbm.achievement.progress_starmetal=XVIII 月亮女神 +hbm.achievement.progress_starmetal.desc=Yeah. +hbm.achievement.progress_excavator=大男孩钻头 +hbm.achievement.progress_excavator.desc=通往财富的大门 +hbm.achievement.progress_bedrock_ore=无限矿石 +hbm.achievement.progress_bedrock_ore.desc=也许我能找得到难得素 hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 @@ -652,7 +766,7 @@ hbmfluid.lightoil=轻油 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 hbmfluid.naphtha=石脑油 -hbmfluid.nitan=NITAN©100号超级燃料 +hbmfluid.nitan=NITAN© 100号超级燃料 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oxygen=液氧 @@ -687,7 +801,9 @@ hbmfluid.crackoil=裂化油 hbmfluid.hotcrackoil=热裂化油 hbmfluid.aromatics=芳香烃 hbmfluid.unsaturateds=不饱和烃 -hbmfluid.plasma_put=钚氚等离子体 +hbmfluid.plasma_put=钚-氚等离子体 +hbmfluid.fracksol=压裂液 +hbmfluid.none=无 info.coil=线圈强度 info.template_in=输入: info.template_in_p=输入: @@ -696,10 +812,10 @@ info.template_out_p=输出: info.template_seconds=秒 info.template_time=生产耗时: info.templatefolder=需要使用机器模板文件夹创建 -item.RPA_boots.name=残余靴子 -item.RPA_helmet.name=残余头盔 -item.RPA_legs.name=残余护腿 -item.RPA_plate.name=残余胸甲 +item.RPA_boots.name=动力装甲 靴子 +item.RPA_helmet.name=动力装甲 头盔 +item.RPA_legs.name=动力装甲 护腿 +item.RPA_plate.name=动力装甲 胸甲 item.ajr_boots.name=AJR 动力装甲靴子 item.ajr_helmet.name=AJR 动力装甲头盔 item.ajr_legs.name=AJR 动力装甲护腿 @@ -770,9 +886,9 @@ item.ammo_50bmg_ap.name=.50BMG子弹[AP] item.ammo_50bmg_chlorophyte.name=.50BMG子弹[叶绿] item.ammo_50bmg_du.name=.50BMG子弹[贫铀] item.ammo_50bmg_explosive.name=.50BMG子弹[高爆] -item.ammo_50bmg_flechette.name=.50 BMG镖形弹 -item.ammo_50bmg_flechette_am.name=.50 BMG镖形弹[含镅] -item.ammo_50bmg_flechette_po.name=.50 BMG镖形弹[含钋] +item.ammo_50bmg_flechette.name=.50 BMG箭形弹 +item.ammo_50bmg_flechette_am.name=.50 BMG箭形弹[含镅] +item.ammo_50bmg_flechette_po.name=.50 BMG箭形弹[含钋] item.ammo_50bmg_incendiary.name=.50BMG子弹[燃烧] item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] @@ -781,12 +897,12 @@ item.ammo_556.name=5.56mm子弹 item.ammo_556_ap.name=5.56mm子弹[AP] item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] item.ammo_556_du.name=5.56mm子弹[贫铀] -item.ammo_556_flechette.name=5.56mm弗莱彻子弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] -item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] -item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] -item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] +item.ammo_556_flechette.name=5.56mm箭形弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm箭形弹[叶绿] +item.ammo_556_flechette_du.name=5.56mm箭形弹 [贫铀穿甲] +item.ammo_556_flechette_incendiary.name=5.56mm箭形弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm箭形弹 [白磷穿甲] +item.ammo_556_flechette_sleek.name=5.56mm箭形弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 item.ammo_556_phosphorus.name=5.56mm子弹[白磷] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] @@ -879,6 +995,7 @@ item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 item.ams_focus_booster.name=增压稳定器焦点 item.ams_focus_limiter.name=限制稳定器焦点 +item.ams_focus_omega.name=UNDEFINED 稳定器焦点 item.ams_lens.name=稳定透镜 item.ams_muzzle.name=激活射线发射极 item.analyzer.name=分析仪 @@ -888,8 +1005,8 @@ item.apple_lead.name=铅苹果 item.apple_lead1.name=铅苹果 item.apple_lead2.name=铅苹果 item.apple_schrabidium.name=Sa326苹果 -item.apple_schrabidium1.name=苹果 -item.apple_schrabidium2.name=苹果 +item.apple_schrabidium1.name=Sa326苹果 +item.apple_schrabidium2.name=Sa326苹果 item.arc_electrode.name=石墨电极 item.arc_electrode_burnt.name=熔化电极 item.arc_electrode_desh.name=Desh电极 @@ -947,14 +1064,14 @@ item.battery_potatos.name=马铃薯OS item.battery_red_cell.name=红石电池组 item.battery_red_cell_24.name=二十四联红石电池组 item.battery_red_cell_6.name=六联红石电池组 -item.battery_sc_americium.name=自充电镅 241 电池 +item.battery_sc_americium.name=自充电 镅-241 电池 item.battery_sc_balefire.name=自充电 Balefire-XXX 电池 -item.battery_sc_gold.name=自充金198电池 -item.battery_sc_lead.name=自充电铅209电池 -item.battery_sc_plutonium.name=自充电钚 238 电池 -item.battery_sc_polonium.name=自充电钋210电池 -item.battery_sc_technetium.name=自充电 Technetium-99 电池 -item.battery_sc_uranium.name=自充电铀 238 电池 +item.battery_sc_gold.name=自充电 金-198 电池 +item.battery_sc_lead.name=自充电 铅-209 电池 +item.battery_sc_plutonium.name=自充电 钚-238 电池 +item.battery_sc_polonium.name=自充电 钋-210 电池 +item.battery_sc_technetium.name=自充电 锝-99 电池 +item.battery_sc_uranium.name=自充电 铀-238 电池 item.battery_schrabidium.name=Sa326电池 item.battery_schrabidium_cell.name=Sa326电池组 item.battery_schrabidium_cell_2.name=双联Sa326电池组 @@ -974,7 +1091,7 @@ item.battery_su_l.name=大型SU-电池 item.battery_trixite.name=杂牌Spark电池 item.beta.name=Bata测试版功能 item.big_sword.name=大剑 -item.billet_ac227.name=锕-227 坯料 +item.billet_ac227.name=锕-227坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 item.billet_am_mix.name=反应堆级镅坯料 @@ -984,26 +1101,26 @@ item.billet_australium.name=奥斯坯料 item.billet_australium_greater.name=富集奥斯坯料 item.billet_australium_lesser.name=贫化奥斯坯料 item.billet_balefire_gold.name=激活态金-198坯料 -item.billet_beryllium.name=铍坯 +item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋锭 item.billet_co60.name=钴-60坯料 -item.billet_flashlead.name=闪光铅坯 -item.billet_gh336.name=Ghiorsium-336 坯料 +item.billet_flashlead.name=闪光铅坯料 +item.billet_gh336.name=Gh-336坯料 item.billet_hes.name=高浓缩度Sa326燃料坯料 item.billet_les.name=低浓缩度Sa326燃料坯料 item.billet_mox_fuel.name=MOX燃料坯料 item.billet_neptunium.name=镎坯料 -item.billet_neptunium_fuel.name=镎核燃料坯料 -item.billet_nuclear_waste.name=核废料坯 -item.billet_pb209.name=铅209坯料 +item.billet_neptunium_fuel.name=镎燃料坯料 +item.billet_nuclear_waste.name=核废料坯料 +item.billet_pb209.name=铅-209坯料 item.billet_plutonium.name=钚坯料 item.billet_plutonium_fuel.name=钚燃料坯料 item.billet_po210be.name=钋210-铍坯料 -item.billet_polonium.name=钋坯料 -item.billet_pu238.name=钚238坯料 +item.billet_polonium.name=钋-210坯料 +item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 -item.billet_pu239.name=钚239坯料 -item.billet_pu240.name=钚240坯料 +item.billet_pu239.name=钚-239坯料 +item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_pu_mix.name=反应堆级钋坯料 item.billet_ra226.name=镭226坯料 @@ -1011,20 +1128,20 @@ item.billet_ra226be.name=镭226-铍坯料 item.billet_schrabidium.name=Sa326坯料 item.billet_schrabidium_fuel.name= Sa326燃料坯料 item.billet_solinium.name=Sa327坯料 -item.billet_sr90.name=锶90坯料 +item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 item.billet_th232.name=钍232坯料 item.billet_thorium_fuel.name=钍燃料坯料 -item.billet_u233.name=铀233坯料 -item.billet_u235.name=铀235坯料 -item.billet_u238.name=铀238坯料 -item.billet_unobtainium.name=Unobtainium中子坯料 +item.billet_u233.name=铀-233坯料 +item.billet_u235.name=铀-235坯料 +item.billet_u238.name=铀-238坯料 +item.billet_unobtainium.name=Uno中子坯料 item.billet_uranium.name=铀坯料 item.billet_uranium_fuel.name=铀燃料坯料 -item.billet_yharonite.name=Yharonite坯料 +item.billet_yharonite.name=犽戎龙素坯料 item.billet_zfb_am_mix.name=镅 ZFB 坯料 item.billet_zfb_bismuth.name=铋 ZFB 坯料 -item.billet_zfb_pu241.name=Pu-241 ZFB 坯料 +item.billet_zfb_pu241.name=钚-241 ZFB 坯料 item.billet_zirconium.name=锆坯料 item.bio_wafer.name=生物晶圆 item.biomass.name=生物质 @@ -1045,7 +1162,7 @@ item.blades_advanced_alloy.name=高级合金刀片 item.blades_aluminium.name=铝制刀片 item.blades_aluminum.name=铝粉碎机刀片 item.blades_combine_steel.name=CMB钢刀片 -item.blades_desh.name=Desh制刀片 +item.blades_desh.name=Desh刀片 item.blades_gold.name=金制刀片 item.blades_iron.name=铁制刀片 item.blades_schrabidium.name=Sa326刀片 @@ -1105,7 +1222,7 @@ item.canister_bitumen.name=桶装沥青 item.canister_canola.name=桶装润滑油 item.canister_empty.name=空油桶 item.canister_fuel.name=桶装柴油 -item.canister_gasoline.desc=铅是朋友$让朋友进入你的血液$*公鸡枪*现在就做。 +item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 item.canister_gasoline.name=含铅汽油罐 item.canister_heatingoil.name=桶装燃油 item.canister_heavyoil.name=桶装重油 @@ -1117,7 +1234,7 @@ item.canister_oil.name=桶装原油 item.canister_petroil.name=桶装汽油 item.canister_reoil.name=桶装再生油 item.canister_smear.name=桶装工业油 -item.canister_superfuel.name=NITAN© 100 辛烷值超级燃料罐 +item.canister_superfuel.name=桶装NITAN© 100号超级燃料 item.canned_asbestos.name=石棉罐头 item.canned_ass.name=驴罐头 item.canned_bark.name=松树皮罐头 @@ -1222,7 +1339,7 @@ item.circuit_targeting_tier6.name=军用级电路板[6级] item.cladding_desh.name=Desh覆层 item.cladding_di.name=双聚中子态素覆层 item.cladding_electronium.name=电素覆层 -item.cladding_ghiorsium.name=Ghiorsium覆层 +item.cladding_ghiorsium.name=Gh336覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 @@ -1299,7 +1416,7 @@ item.coin_siege.name=攻城币 item.coin_ufo.name=UFO硬币 item.coin_worm.name=机械蠕虫硬币 item.coke.name=焦炭 -item.coltass.name=科尔塔斯 +item.coltass.name=钶钽铁矿指针 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 item.component_limiter.name=稳定器组件 @@ -1311,7 +1428,7 @@ item.crucible.name=裁决剑 item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 -item.crystal_cinnebar.name=朱砂晶 +item.crystal_cinnebar.name=朱砂晶体 item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -1535,7 +1652,7 @@ item.grenade_pulse.name=脉冲手榴弹 item.grenade_schrabidium.name=Sa326手榴弹 item.grenade_shrapnel.name=榴霰弹手榴弹 item.grenade_smart.name=智能手榴弹 -item.grenade_solinium.name=中子手榴弹 +item.grenade_solinium.name=Sa327中子手榴弹 item.grenade_strong.name=增强型手榴弹 item.grenade_tau.name=陶子手榴弹 item.grenade_zomg.name=负能量湮灭手榴弹 @@ -1550,7 +1667,7 @@ item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 -item.gun_bolter.name=Bolter +item.gun_bolter.name=爆弹枪 item.gun_calamity.name=灾难 item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 @@ -1569,7 +1686,7 @@ item.gun_euthanasia_ammo.name=注射器 item.gun_fatman.name=M42核弹发射器 "胖子" item.gun_fatman_ammo.name=迷你核弹 item.gun_flamer.name=喷射器 -item.gun_flechette.name=弗莱彻突击步枪 +item.gun_flechette.name=箭形弹突击步枪 item.gun_folly.name=Digamma原型"愚蠢" item.gun_hk69.name=榴弹手枪 item.gun_hp.name=HPP射线炮 @@ -1700,7 +1817,7 @@ item.inf_diesel.name=无限柴油罐 item.inf_sulfur.name=无限硫磺罐 item.inf_tritium.name=无限氚罐 item.inf_water.name=无限水罐 -item.inf_water_mk2.name=重型无限水箱 +item.inf_water_mk2.name=重型无限水罐 item.ingot_ac227.name=锕-227锭 item.ingot_actinium.name=半稳定锕锭 item.ingot_advanced_alloy.name=高级合金锭 @@ -1733,10 +1850,10 @@ item.ingot_electronium.name=电素锭 item.ingot_euphemium.name=Ep锭 item.ingot_fiberglass.name=玻璃纤维 item.ingot_firebrick.name=耐火砖 -item.ingot_gh336.name=Ghiorsium-336锭 +item.ingot_gh336.name=Gh-336锭 item.ingot_graphite.name=石墨锭 item.ingot_hes.name=高浓度Sa326燃料锭 -item.ingot_i131.name=碘131锭 +item.ingot_i131.name=碘-131锭 item.ingot_iodine.name=碘锭 item.ingot_lanthanium.name=半稳定镧锭 item.ingot_lead.name=铅锭 @@ -1749,18 +1866,18 @@ item.ingot_neodymium.name=钕锭 item.ingot_neptunium.name=镎锭 item.ingot_neptunium_fuel.name=镎燃料锭 item.ingot_niobium.name=铌锭 -item.ingot_pb209.name=铅209锭 +item.ingot_pb209.name=铅-209锭 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 -item.ingot_polonium.name=钋锭 +item.ingot_polonium.name=钋-210锭 item.ingot_polymer.name=聚合物锭 -item.ingot_pu238.name=钚238锭 -item.ingot_pu239.name=钚239锭 -item.ingot_pu240.name=钚240锭 +item.ingot_pu238.name=钚-238锭 +item.ingot_pu239.name=钚-239锭 +item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 item.ingot_pu_mix.name=反应堆级钚锭 -item.ingot_ra226.name=镭226锭 +item.ingot_ra226.name=镭-226锭 item.ingot_radspice.name=Neoveline锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 @@ -1772,7 +1889,7 @@ item.ingot_schraranium.name=低丰度Sa326锭 item.ingot_semtex.name=塞姆汀塑胶炸药块 item.ingot_smore.name=S'more 锭 item.ingot_solinium.name=Sa327锭 -item.ingot_sr90.name=锶90锭 +item.ingot_sr90.name=锶-90锭 item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 item.ingot_steel_dusted.name=粉末钢锭 @@ -1780,14 +1897,14 @@ item.ingot_strontium.name=锶锭 item.ingot_tantalium.name=钽锭 item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 -item.ingot_tennessine.name=Tennessine-294锭 -item.ingot_th232.name=钍232锭 +item.ingot_tennessine.name=Ts-294锭 +item.ingot_th232.name=钍-232锭 item.ingot_thorium_fuel.name=钍燃料锭 item.ingot_titanium.name=钛锭 item.ingot_tungsten.name=钨锭 -item.ingot_u233.name=铀233锭 -item.ingot_u235.name=铀235锭 -item.ingot_u238.name=铀238锭 +item.ingot_u233.name=铀-233锭 +item.ingot_u235.name=铀-235锭 +item.ingot_u238.name=铀-238锭 item.ingot_u238m2.name=亚稳铀238-2锭 item.ingot_unobtainium.name=难得素锭 item.ingot_uranium.name=铀锭 @@ -1799,41 +1916,42 @@ item.injector_5htp.name=5-HTP自动药物注射器 item.injector_knife.name=8英寸刀片自动药物注射器 item.ink.name=林 墨水 item.insert_di.name=双聚中子态素插板 +item.insert_ferrouranium.name=铀铁合金插板 item.insert_doxium.name=掺砷Doxium插板 item.insert_du.name=贫铀插板 item.insert_era.name=反应装甲插板 item.insert_esapi.name=ESAPI插板 -item.insert_ghiorsium.name=Ghiorsium插板 +item.insert_ghiorsium.name=Gh-336插板 item.insert_kevlar.name=凯夫拉插板 item.insert_polonium.name=钋插板 item.insert_sapi.name=SAPI插板 item.insert_steel.name=重型钢插板 item.insert_xsapi.name=XSAPI插板 -item.insert_yharonite.name=Yharonite插板 +item.insert_yharonite.name=犽戎龙素插板 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 item.jetpack_boost.name=弹跳背包 item.jetpack_break.name=缓降背包 item.jetpack_fly.name=喷气背包 -item.jetpack_glider.name=滑翔机喷气背包 +item.jetpack_glider.name=滑翔喷气背包 item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 -item.laser_crystal_bale.desc=野火燃料芯块 在中子外壳中涂有 Verticium,Neoveline +item.laser_crystal_bale.desc=野火燃料芯块被包裹在韦德赛,Neoveline制成的外壳中 item.laser_crystal_bale.name=野火激光晶体 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 -item.laser_crystal_bismuth.name=铋激光晶体 +item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 item.laser_crystal_cmb.desc=氙135 悬浮在 CMB-达夫贡合金晶格中 item.laser_crystal_cmb.name=氙-达夫贡激光晶体 item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 item.laser_crystal_co2.name=CO2-Desh激光晶体 -item.laser_crystal_dem.desc=Demon-Schrabidate-Tenessine-钽费米子超晶 -item.laser_crystal_dem.name=恶魔镭射晶体 +item.laser_crystal_dem.desc=恶魔-Gh336联合费米子超晶 +item.laser_crystal_dem.name=恶魔激光晶体 item.laser_crystal_digamma.name=迪伽马激光晶体 -item.laser_crystal_nano.desc=多晶内的 420 公里长碳纳米管天线 +item.laser_crystal_nano.desc=420公里长的碳纳米管天线内置多晶体 item.laser_crystal_nano.name=纳米管激光晶体 item.laser_crystal_pentacene.desc=高级合金涂层的激发并五苯晶体 item.laser_crystal_pentacene.name=并五苯激光晶体 @@ -1880,7 +1998,7 @@ item.med_bag.name=医疗包 item.med_ipecac.name=吐根酊催吐剂 item.med_ptsd.name=PTSD治疗药物 item.med_schiziphrenia.name=抗精神分裂症药物 -item.medal_ghoul.name=认证食尸鬼 +item.medal_ghoul.name=认证食尸鬼勋章 item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=迪亚特洛夫快速熔毁装置 item.memespoon.name=§ee花园园丁 @@ -1891,7 +2009,7 @@ item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 item.meteorite_sword_alloyed.name=陨石剑(合金) item.meteorite_sword_baleful.name=陨石剑(凶恶) -item.meteorite_sword_bred.name=陨石剑(繁殖) +item.meteorite_sword_bred.name=陨石剑(增殖) item.meteorite_sword_etched.name=陨石剑(刻蚀) item.meteorite_sword_fused.name=陨石剑(熔融) item.meteorite_sword_hardened.name=陨石剑(硬化) @@ -1900,6 +2018,8 @@ item.meteorite_sword_machined.name=陨石剑(机械加工) item.meteorite_sword_reforged.name=陨石剑(重铸) item.meteorite_sword_seared.name=陨石剑(烧焦) item.meteorite_sword_treated.name=陨石剑(精制) +item.meteorite_sword_warped.name=§f陨石剑 (扭曲) +item.meteorite_sword_demonic.name=§c陨石剑 (§kDemonic§r) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 @@ -2104,8 +2224,8 @@ item.nuclear_waste_tiny.name=小撮核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 item.nuclear_waste_vitrified_tiny.name=一小堆玻璃化核废料 item.nugget.name=鸡块 -item.nugget_ac227.name=Actinium-227 金块 -item.nugget_actinium.name=锕金块 +item.nugget_ac227.name=锕-227粒 +item.nugget_actinium.name=锕粒 item.nugget_am241.name=镅-241粒 item.nugget_am242.name=镅-242粒 item.nugget_am_mix.name=反应堆级镅粒 @@ -2117,12 +2237,12 @@ item.nugget_australium_lesser.name=贫化奥斯粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 -item.nugget_cobalt.name=钴块 +item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 item.nugget_desh.name=Desh粒 item.nugget_dineutronium.name=双聚中子态素粒 item.nugget_euphemium.name=Ep粒 -item.nugget_gh336.name=Ghiorsium-336 粒 +item.nugget_gh336.name=Gh-336 粒 item.nugget_hes.name=高浓度Sa326燃料粒 item.nugget_lead.name=铅粒 item.nugget_les.name=低浓度Sa326燃料粒 @@ -2130,13 +2250,13 @@ item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_pb209.name=铅 209 块 +item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 -item.nugget_polonium.name=钋粒 -item.nugget_pu238.name=钚238粒 -item.nugget_pu239.name=钚239粒 -item.nugget_pu240.name=钚240粒 +item.nugget_polonium.name=钋-210粒 +item.nugget_pu238.name=钚-238粒 +item.nugget_pu239.name=钚-239粒 +item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_pu_mix.name=反应堆级钚粒 item.nugget_ra226.name=镭-226粒 @@ -2145,16 +2265,16 @@ item.nugget_reiium.name=魏丹粒 item.nugget_schrabidium.name=Sa326粒 item.nugget_schrabidium_fuel.name=Sa326燃料粒 item.nugget_solinium.name=Sa327粒 -item.nugget_sr90.name=锶 90 金块 -item.nugget_strontium.name=锶块 +item.nugget_sr90.name=锶-90 粒 +item.nugget_strontium.name=锶粒 item.nugget_tantalium.name=钽粒 item.nugget_technetium.name=锝-99粒 -item.nugget_th232.name=钍232粒 +item.nugget_th232.name=钍-232粒 item.nugget_thorium_fuel.name=钍燃料粒 -item.nugget_u233.name=铀233粒 -item.nugget_u235.name=铀235粒 -item.nugget_u238.name=铀238粒 -item.nugget_u238m2.name=亚稳态 U238-2 金块 +item.nugget_u233.name=铀-233粒 +item.nugget_u235.name=铀-235粒 +item.nugget_u238.name=铀-238粒 +item.nugget_u238m2.name=亚稳态 U238-2 粒 item.nugget_unobtainium.name=难得素粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 @@ -2172,12 +2292,25 @@ item.oil_detector.desc2=探测仪只会发现大片油田 item.oil_detector.detected=附近存在油田 item.oil_detector.name=石油探测仪 item.oil_detector.noOil=未发现油田 -item.oil_tar.name=油焦油 +item.oil_tar.name=焦油 item.overfuse.name=奇异螺丝刀 item.oxy_mask.name=氧气面罩 +item.ore_bedrock.name=基岩%s矿 +item.ore_bedrock_centrifuged.name=离心%s矿 +item.ore_bedrock_cleaned.name=清洁%s矿 +item.ore_bedrock_deepcleaned.name=深清洁%s矿 +item.ore_bedrock_enriched.name=富集%s矿 +item.ore_bedrock_nitrated.name=硝化%s矿 +item.ore_bedrock_nitrocrystalline.name=亚硝基结晶%s矿 +item.ore_bedrock_purified.name=净化%s矿 +item.ore_bedrock_seared.name=灼热的%s矿 +item.ore_bedrock_separated.name=分离的%s矿 +item.ore_bedrock_exquisite.name=精制的%s矿 +item.ore_bedrock_perfect.name=完美的%s矿 item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 item.paa_plate.name=PaA加固护胸 +item.paa_helmet.name=PaA 加固头盔 item.padlock.name=挂锁 item.padlock_reinforced.name=加强挂锁 item.padlock_rusty.name=生锈的挂锁 @@ -2252,14 +2385,14 @@ item.pellet_rtg_radium.desc=伟大的启动靶丸,源自全天然镭! item.pellet_rtg_radium.name=镭-226 放射性同位素燃料靶丸 item.pellet_rtg_strontium.desc=众所周知,加利福尼亚州... item.pellet_rtg_strontium.name=锶-90 放射性同位素燃料靶丸 -item.pellet_rtg_weak.desc=更便宜更弱的靶丸,现在有更多的 U238! +item.pellet_rtg_weak.desc=更便宜更弱的靶丸,现在有更多的铀238! item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 item.pellet_schrabidium.name=纯Sa326Watz靶丸 item.photo_panel.name=光伏板 -item.pile_rod_boron.name=芝加哥桩控制杆 -item.pile_rod_plutonium.name=芝加哥堆钚棒 -item.pile_rod_source.name=芝加哥堆 Ra226Be 中子源 -item.pile_rod_uranium.name=芝加哥堆铀棒 +item.pile_rod_boron.name=芝加哥反应堆 控制棒 +item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 +item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 +item.pile_rod_uranium.name=芝加哥反应堆 铀棒 item.pill_iodine.name=碘丸 item.pin.name=发夹 item.pipes_steel.name=钢管 @@ -2291,7 +2424,7 @@ item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 item.polaroid.name=偏光片 -item.powder_ac227.name=Actinium-227粉末 +item.powder_ac227.name=锕-227粉 item.powder_actinium.name=锕粉 item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 @@ -2312,7 +2445,7 @@ item.powder_cerium_tiny.name=小撮铈粉 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 -item.powder_co60_tiny.name=一小堆钴 60 粉末 +item.powder_co60_tiny.name=小撮钴-60粉 item.powder_coal.name=煤粉 item.powder_coal_tiny.name=小撮煤粉 item.powder_cobalt.name=钴粉 @@ -2338,7 +2471,7 @@ item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 item.powder_ice.name=冷冻粉 item.powder_iodine.name=碘粉 -item.powder_iodine_tiny.name=一小堆碘粉 +item.powder_iodine_tiny.name=小撮碘粉 item.powder_iron.name=铁粉 item.powder_lanthanium.name=镧粉 item.powder_lanthanium_tiny.name=小撮镧粉 @@ -2357,14 +2490,14 @@ item.powder_neptunium.name=镎粉 item.powder_niobium.name=铌粉 item.powder_niobium_tiny.name=小撮铌粉 item.powder_nitan_mix.name=Nitan混合物 -item.powder_pb209.name=铅209粉 +item.powder_pb209.name=铅-209粉 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 item.powder_polonium.name=钋粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 item.powder_quartz.name=石英粉 -item.powder_ra226.name=镭226粉 +item.powder_ra226.name=镭-226粉 item.powder_radspice.name=Neoveline粉 item.powder_red_copper.name=紫铜粉 item.powder_reiium.name=雷恩粉 @@ -2372,14 +2505,14 @@ item.powder_schrabidate.name=Sa酸铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 item.powder_spark_mix.name=Spark混合物 -item.powder_sr90.name=锶90粉 -item.powder_sr90_tiny.name=一小堆锶 90 粉末 +item.powder_sr90.name=锶-90粉 +item.powder_sr90_tiny.name=小撮锶-90粉 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 item.powder_tcalloy.name=锝-钢粉 -item.powder_tennessine.name=Ts粉 +item.powder_tennessine.name=Ts-294粉 item.powder_thermite.name=铝热剂 item.powder_thorium.name=钍粉 item.powder_titanium.name=钛粉 @@ -2433,17 +2566,17 @@ item.rbmk_fuel_pu238be.name=钚238-铍RBMK反应堆中子源 item.rbmk_fuel_ra226be.name=镭226-铍RBMK反应堆中子源 item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料棒 item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 -item.rbmk_fuel_unobtainium.name=Unobtainium RBMK 中子棒 -item.rbmk_fuel_zfb_am_mix.name=燃料级镅 RBMK ZFB 棒 -item.rbmk_fuel_zfb_bismuth.name=铋 RBMK ZFB 棒 -item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB 棒 +item.rbmk_fuel_unobtainium.name=高浓度Uno-440 RBMK反应堆中子源 +item.rbmk_fuel_zfb_am_mix.name=ZFB 反应堆级镅RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241 RBMK反应堆燃料棒 item.rbmk_lid.name=RBMK反应堆覆盖层 item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 -item.rbmk_pellet_hea241.name=HEA-241燃料芯块 +item.rbmk_pellet_hea241.name=HEA-241高浓缩度镅-241燃料芯块 item.rbmk_pellet_hea242.name=HEA-242高浓缩度镅-242燃料芯块 item.rbmk_pellet_heaus.name=HEAus高浓缩度奥斯燃料芯块 item.rbmk_pellet_hen.name=HEN 高浓度镎燃料芯块 @@ -2467,10 +2600,10 @@ item.rbmk_pellet_pu238be.name=钚238-铍中子源芯块 item.rbmk_pellet_ra226be.name=镭226-铍中子源芯块 item.rbmk_pellet_thmeu.name=ThMEU浓缩度铀-235导向钍燃料芯块 item.rbmk_pellet_ueu.name=未浓缩铀燃料芯块 -item.rbmk_pellet_unobtainium.name=Unobtainium 中子燃料芯块 -item.rbmk_pellet_zfb_am_mix.name=反应堆级镅 ZFB 燃料芯块 -item.rbmk_pellet_zfb_bismuth.name=铋 ZFB 燃料芯块 -item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB 燃料芯块 +item.rbmk_pellet_unobtainium.name=高浓度Uno-440 中子源芯块 +item.rbmk_pellet_zfb_am_mix.name=ZFB 反应堆级镅燃料芯块 +item.rbmk_pellet_zfb_bismuth.name=ZFB 铋燃料芯块 +item.rbmk_pellet_zfb_pu241.name=ZFB 钚-241燃料芯块 item.rbmk_tool.desc=按住Shift右击RBMK石墨式反应堆保存其坐标,$按住Shift右击控制台以连接反应堆! item.rbmk_tool.linked=反应堆坐标已记录! item.rbmk_tool.name=RBMK石墨式反应堆控制台连接装置 @@ -2527,9 +2660,9 @@ item.rod_dual_th232.name=双联钍232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀233燃料棒 -item.rod_dual_u235.name=双联铀235燃料棒 -item.rod_dual_u238.name=双联铀238燃料棒 +item.rod_dual_u233.name=双联铀-233燃料棒 +item.rod_dual_u235.name=双联铀-235燃料棒 +item.rod_dual_u238.name=双联铀-238燃料棒 item.rod_dual_uranium.name=双联铀棒 item.rod_dual_uranium_fuel.name=双联铀燃料棒 item.rod_dual_uranium_fuel_depleted.name=双联枯竭铀燃料棒 @@ -2550,7 +2683,7 @@ item.rod_polonium.name=钋棒 item.rod_pu238.name=钚238燃料棒 item.rod_pu239.name=钚239燃料棒 item.rod_pu240.name=钚240燃料棒 -item.rod_quad_ac227.name=Actinium-227 四杆 +item.rod_quad_ac227.name=四联锕-227燃料棒 item.rod_quad_balefire.name=四联野火燃料棒 item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_co60.name=Cobalt-60 四极杆 @@ -2570,8 +2703,8 @@ item.rod_quad_polonium.name=四联钋棒 item.rod_quad_pu238.name=四联钚238燃料棒 item.rod_quad_pu239.name=四联钚239燃料棒 item.rod_quad_pu240.name=四联钚240燃料棒 -item.rod_quad_ra226.name=镭226四极杆 -item.rod_quad_rgp.name=反应堆级钚四棒 +item.rod_quad_ra226.name=四联镭226燃料棒 +item.rod_quad_rgp.name=四联反应堆级钚燃料棒 item.rod_quad_schrabidium.name=四联Sa326燃料棒 item.rod_quad_schrabidium_fuel.name=四联Sa326燃料棒 item.rod_quad_schrabidium_fuel_depleted.name=四联枯竭Sa326燃料棒 @@ -2670,11 +2803,11 @@ item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_spark.name=Spark奇点 item.singularity_super_heated.name=超热共振奇点 -item.siox.name=SiOX 癌症药物 +item.siox.name=SiOX抗癌药物 item.siren_track.name=警报声轨 -item.sliding_blast_door_skin0.name=侧向滑动防爆门默认皮肤 -item.sliding_blast_door_skin1.name=侧向滑动防爆门变体 1 皮肤 -item.sliding_blast_door_skin2.name=侧向滑动防爆门变体 2 皮肤 +item.sliding_blast_door_skin0.name=侧向滑动防爆门(默认皮肤) +item.sliding_blast_door_skin1.name=侧向滑动防爆门(皮肤1) +item.sliding_blast_door_skin2.name=侧向滑动防爆门(皮肤2) item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 item.solinium_core.name=半稳定Sa327核心 @@ -2887,7 +3020,7 @@ item.weapon_saw.name=肢解骨锯 item.weaponized_starblaster_cell.name=§c星际爆能电池§r item.wild_p.name=野生珀伽索斯干威士忌 item.wings_limp.name=无力之翼 -item.wings_murk.name=暗黑之翼 +item.wings_murk.name=§4暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 @@ -2900,7 +3033,7 @@ item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 item.wrench.name=管道扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name= AXA抗Digamma药物 +item.xanax.name= AXA抗迪伽马药物 item.crystal_osmiridium.name=铱锇晶体 item.ingot_osmiridium.name=铱锇锭 item.nugget_osmiridium.name=铱锇粒 @@ -2909,15 +3042,15 @@ item.powder_osmiridium.name=铱锇粉 item.powder_tektite.name=熔融石粉 item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 -item.ingot_rubber.name=橡胶块 -item.powder_bismuth.name=铋-209 粉末 +item.ingot_rubber.name=橡胶锭 +item.powder_bismuth.name=铋-209 粉 item.ball_dynamite.name=硝糖炸药 item.ingot_arsenic.name=砷锭 item.nugget_arsenic.name=砷粒 -item.nugget_unobtainium_greater.name=Unobtainium-440 粒 -item.nugget_unobtainium_lesser.name=Unobtainium-439 粒 +item.nugget_unobtainium_greater.name=Uno-440 粒 +item.nugget_unobtainium_lesser.name=Uno-439 粒 item.rag.name=布 -item.rag_damp.name=湿布 +item.rag_damp.name=湿布 item.stamp_desh_flat.name=Desh质锻模 item.stamp_desh_plate.name=Desh质板锻模 item.stamp_desh_wire.name=Desh质线锻模 @@ -2925,7 +3058,7 @@ item.stamp_desh_circuit.name=Desh质电路板锻模 item.stamp_desh_357.name=Desh质.357马格南锻模 item.stamp_desh_44.name=Desh质.44马格南锻模 item.stamp_desh_9.name=Desh质小口径锻模 -item.stamp_desh_50.name=Desh质大口径锻模 +item.stamp_desh_50.name=Desh质大口径锻模 item.battery_sc_schrabidium.name=自充电Sa-326 电池 item.battery_sc_yharonite.name=自充电 犽戎龙素-REDACTED电池 item.capsule_empty.name=空胶囊 @@ -2950,6 +3083,31 @@ item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器 item.gas_mask_filter_rag.name=临时防毒面具过滤器 item.rag_piss.name=沾有尿的布 item.defuser_desh.name=Desh质高科技拆弹装置 +item.mask_piss.name=战壕面具 +item.mask_damp.name=粗糙防护面罩 +item.mask_rag.name=干燥的面具 +item.meteor_charm.name=陨石项链 +item.protection_charm.name=守护项链 +item.gas_tritium.name=氚气罐 +item.gas_deuterium.name=氘气罐 +item.gas_hydrogen.name=氢气罐 +item.gas_oxygen.name=氧气罐 +item.canister_fracksol.name=桶装压裂液 +item.crystal_asbestos.name=石棉晶体 +item.ingot_cadmium.name=镉锭 +item.nugget_cadmium.name=镉粒 +item.powder_cadmium.name=镉粉 +tile.block_cadmium.name=镉块 +item.deuterium_filter.name=氘过滤器 +item.ingot_ferrouranium.name=铀铁合金锭 +item.solid_fuel_presto.name=Presto固体燃料 +item.solid_fuel_presto_triplet.name=增强型Presto固体燃料 +item.ingot_cdalloy.name=镉钢锭 +item.powder_cdalloy.name=镉钢粉 +item.powder_borax.name=硼砂 +tile.ore_depth_borax.name=深层硼砂矿 +item.fluid_tank_empty.name==空通用流体罐 +item.fluid_barrel_empty.name=空流体桶 itemGroup.tabBlocks=NTM 矿石和方块 itemGroup.tabConsumable=HBM 食物和装备 @@ -2960,9 +3118,9 @@ itemGroup.tabNuke=HBM 炸弹 itemGroup.tabParts=HBM 资源和零件 itemGroup.tabResource=NTM 资源 itemGroup.tabTemplate=NTM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabTest=HBM核科技mod测试项[PastRine汉化优化] itemGroup.tabWeapon=HBM 武器和炮塔 -key.categories.hbm=Hbm 的核技术模组 +key.categories.hbm=HBM 的核技术 key.categories.hbm.craneLoad=RBMK起重机负载 key.categories.hbm.craneMoveDown=RBMK 起重机下降 key.categories.hbm.craneMoveLeft=RBMK 起重机左 @@ -3004,6 +3162,49 @@ rbmk.rod.coreTemp=核心温度: %s rbmk.rod.depletion=燃料消耗: %s rbmk.rod.skinTemp=表面温度: %s / %s rbmk.rod.xenon=氙元素堆积程度: %s +rbmk.cooler.cooling=-%s°C/s +rbmk.cooler.cryo=冷冻凝胶: %s / 16000mB +rbmk.console.assign=将选定列分配给屏幕#%s +rbmk.console.assignG=将选定列分配给图形 +rbmk.console.none=Off +rbmk.console.col_temp=监测平均柱温 +rbmk.console.rod_extraction=监控平均控制棒抽出量 +rbmk.console.fuel_depletion=监测平均燃料消耗 +rbmk.console.fuel_poison=监测平均氙中毒程度 +rbmk.console.fuel_temp=监测平均燃料温度 +rbmk.console.flux=监测平均发射通量 +rbmk.control.level=%s +rbmk.control.red=§c红色组 +rbmk.control.yellow=§e黄色组 +rbmk.control.green=§a绿色组 +rbmk.control.blue=§1蓝色组 +rbmk.control.purple=§5紫色组 +rbmk.moderated=慢化剂 +rbmk.rod.name=燃料棒类型: +rbmk.rod.flux=总发射通量: %s +rbmk.rod.depletion=燃料消耗: %s +rbmk.rod.xenon=氙元素堆积程度: %s +rbmk.rod.coreTemp=核心温度: %s +rbmk.rod.skinTemp=表面温度: %s / %s +rbmk.heater.fluid=%s: %s / %smB +rbmk.screen.core=核心: %s +rbmk.screen.depletion=消耗: %s +rbmk.screen.rod=控制: %s +rbmk.screen.temp=温度: %s +rbmk.screen.xenon=氙: %s +rbmk.screen.flux=通量: %s +rbmk.graph.fuel_temp=核心: %s°C +rbmk.graph.fuel_depletion=消耗: %s%% +rbmk.graph.rod_extraction=控制: %s%% +rbmk.graph.col_temp=温度: %s°C +rbmk.graph.fuel_poison=氙: %s%% +rbmk.graph.flux=通量: %s +rbmk.graph.none=None +rbmk.outgasser.eta=预计时间: %s +rbmk.outgasser.flux=接收通量: %s +rbmk.outgasser.progress=进度: %s / %s §b(%s%%) +rbmk.outgasser.gas=氚: %s / %smB + tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 @@ -3106,13 +3307,13 @@ tile.block_niter.name=硝石块 tile.block_niter_reinforced.name=硝石加固块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 -tile.block_polonium.name=钋块 +tile.block_polonium.name=钋-210块 tile.block_polymer.name=聚合物块 -tile.block_pu238.name=钚238块 -tile.block_pu239.name=钚239块 -tile.block_pu240.name=钚240块 +tile.block_pu238.name=钚-238块 +tile.block_pu239.name=钚-239块 +tile.block_pu240.name=钚-240块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_ra226.name=镭块 226 +tile.block_ra226.name=镭226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 @@ -3136,16 +3337,16 @@ tile.block_titanium.name=钛块 tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 -tile.block_u233.name=铀233块 -tile.block_u235.name=铀U235块 -tile.block_u238.name=铀U238块 +tile.block_u233.name=铀-233块 +tile.block_u235.name=铀-U235块 +tile.block_u238.name=铀-U238块 tile.block_unobtainium.name=难得素块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 tile.block_verticium.name=韦德赛块 tile.block_waste.name=核废料块 tile.block_waste_painted.name=带标志的核废料块 -tile.block_waste_vitrified.name=核废料玻璃化块 +tile.block_waste_vitrified.name=玻璃化核废料块 tile.block_weidanium.name=魏丹块 tile.block_white_phosphorus.name=白磷块 tile.block_yellowcake.name=黄饼块 @@ -3157,23 +3358,23 @@ tile.bomber.name=坠毁轰炸机 tile.book_guide.name=HBM的核科技mod手册[遗留] tile.boxcar.name=车厢 tile.brick_asbestos.name=石棉砖块 -tile.brick_asbestos_slab.name=石棉砖 +tile.brick_asbestos_slab.name=石棉砖台阶 tile.brick_asbestos_stairs.name=石棉砖楼梯 tile.brick_compound.name=复合网格砖块 -tile.brick_compound_slab.name=复合网板 +tile.brick_compound_slab.name=复合网格台阶 tile.brick_compound_stairs.name=复合网格楼梯 tile.brick_concrete.name=混凝土砖块 -tile.brick_concrete_broken.name=破混凝土砖块 -tile.brick_concrete_broken_slab.name=破碎的混凝土板 +tile.brick_concrete_broken.name=破碎的混凝土砖块 +tile.brick_concrete_broken_slab.name=破碎的混凝土台阶 tile.brick_concrete_broken_stairs.name=破碎的混凝土楼梯 -tile.brick_concrete_cracked.name=裂混凝土砖块 -tile.brick_concrete_cracked_slab.name=开裂的混凝土板 +tile.brick_concrete_cracked.name=开裂的混凝土砖块 +tile.brick_concrete_cracked_slab.name=开裂的混凝土台阶 tile.brick_concrete_cracked_stairs.name=开裂的混凝土楼梯 tile.brick_concrete_marked.name=标记混凝土砖 -tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_slab.name=长满苔藓的混凝土板 +tile.brick_concrete_mossy.name=长满苔藓的混凝土砖块 +tile.brick_concrete_mossy_slab.name=长满苔藓的混凝土台阶 tile.brick_concrete_mossy_stairs.name=长满苔藓的混凝土楼梯 -tile.brick_concrete_slab.name=混凝土砖板 +tile.brick_concrete_slab.name=混凝土砖台阶 tile.brick_concrete_stairs.name=混凝土砖楼梯 tile.brick_dungeon.name=硒铜砖 tile.brick_dungeon_circle.name=圆环硒铜块 @@ -3204,68 +3405,68 @@ tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 -tile.cmb_brick_reinforced_slab.name=增强型 CMB 砖板 -tile.cmb_brick_reinforced_stairs.name=加固 CMB 砖楼梯 +tile.cmb_brick_reinforced_slab.name=加固CMB钢砖台阶 +tile.cmb_brick_reinforced_stairs.name=加固CMB钢砖楼梯 tile.compact_launcher.name=紧凑型发射台 tile.concrete.name=混凝土瓦块 tile.concrete_asbestos.name=黑色混凝土 -tile.concrete_asbestos_slab.name=石棉混凝土板 +tile.concrete_asbestos_slab.name=石棉混凝土台阶 tile.concrete_asbestos_stairs.name=石棉混凝土楼梯 tile.concrete_black.name=黑色混凝土 -tile.concrete_black_slab.name=黑色混凝土板 +tile.concrete_black_slab.name=黑色混凝土台阶 tile.concrete_black_stairs.name=黑色混凝土楼梯 tile.concrete_blue.name=蓝色混凝土 -tile.concrete_blue_slab.name=蓝色混凝土板 +tile.concrete_blue_slab.name=蓝色混凝土台阶 tile.concrete_blue_stairs.name=蓝色混凝土楼梯 tile.concrete_brown.name=棕色混凝土 -tile.concrete_brown_slab.name=棕色混凝土板 +tile.concrete_brown_slab.name=棕色混凝土台阶 tile.concrete_brown_stairs.name=棕色混凝土楼梯 tile.concrete_cyan.name=青色混凝土 -tile.concrete_cyan_slab.name=青色混凝土板 +tile.concrete_cyan_slab.name=青色混凝土台阶 tile.concrete_cyan_stairs.name=青色混凝土楼梯 tile.concrete_gray.name=灰色混凝土 -tile.concrete_gray_slab.name=灰色混凝土板 +tile.concrete_gray_slab.name=灰色混凝土台阶 tile.concrete_gray_stairs.name=灰色混凝土楼梯 tile.concrete_green.name=绿色混凝土 -tile.concrete_green_slab.name=绿色混凝土板 +tile.concrete_green_slab.name=绿色混凝土台阶 tile.concrete_green_stairs.name=绿色混凝土楼梯 tile.concrete_light_blue.name=淡蓝色混凝土 -tile.concrete_light_blue_slab.name=浅蓝色混凝土板 +tile.concrete_light_blue_slab.name=浅蓝色混凝土台阶 tile.concrete_light_blue_stairs.name=浅蓝色混凝土楼梯 tile.concrete_lime.name=石灰混凝土 -tile.concrete_lime_slab.name=石灰混凝土板 +tile.concrete_lime_slab.name=石灰混凝土台阶 tile.concrete_lime_stairs.name=石灰混凝土楼梯 tile.concrete_magenta.name=洋红色混凝土 -tile.concrete_magenta_slab.name=洋红色混凝土板 +tile.concrete_magenta_slab.name=洋红色混凝土台阶 tile.concrete_magenta_stairs.name=洋红色混凝土楼梯 tile.concrete_orange.name=橙色混凝土 -tile.concrete_orange_slab.name=橙色混凝土板 +tile.concrete_orange_slab.name=橙色混凝土台阶 tile.concrete_orange_stairs.name=橙色混凝土楼梯 tile.concrete_pillar.name=钢筋混凝土柱 tile.concrete_pink.name=粉色混凝土 -tile.concrete_pink_slab.name=粉色混凝土板 +tile.concrete_pink_slab.name=粉色混凝土台阶 tile.concrete_pink_stairs.name=粉色混凝土楼梯 tile.concrete_purple.name=紫色混凝土 -tile.concrete_purple_slab.name=紫色混凝土板 +tile.concrete_purple_slab.name=紫色混凝土台阶 tile.concrete_purple_stairs.name=紫色混凝土楼梯 tile.concrete_red.name=红色混凝土 -tile.concrete_red_slab.name=红色混凝土板 +tile.concrete_red_slab.name=红色混凝土台阶 tile.concrete_red_stairs.name=红色混凝土楼梯 tile.concrete_silver.name=浅灰色混凝土 -tile.concrete_silver_slab.name=银色混凝土板 +tile.concrete_silver_slab.name=银色混凝土台阶 tile.concrete_silver_stairs.name=银色混凝土楼梯 -tile.concrete_slab.name=混凝土楼板 +tile.concrete_slab.name=混凝土台阶 tile.concrete_smooth.name=混凝土 -tile.concrete_smooth_slab.name=光滑混凝土板 +tile.concrete_smooth_slab.name=光滑混凝土台阶 tile.concrete_smooth_stairs.name=光滑的混凝土楼梯 tile.concrete_stairs.name=混凝土楼梯 tile.concrete_white.name=白色混凝土 -tile.concrete_white_slab.name=白色混凝土板 +tile.concrete_white_slab.name=白色混凝土台阶 tile.concrete_white_stairs.name=白色混凝土楼梯 tile.concrete_yellow.name=黄色混凝土 -tile.concrete_yellow_slab.name=黄色混凝土板 +tile.concrete_yellow_slab.name=黄色混凝土台阶 tile.concrete_yellow_stairs.name=黄色混凝土楼梯 -tile.control_panel0.name=[WIP]控制面板 +tile.control_panel0.name=控制面板 tile.corium_block.name=熔融堆芯 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 @@ -3314,22 +3515,22 @@ tile.deco_pipe_rusted.name=生锈的钢制管道 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 tile.deco_red_copper.name=紫铜装饰块 -tile.deco_sat_foeq.name=PEAF - Mk.I FOEQ Duna 探测器,具有实验性核推进(Deco Block) -tile.deco_sat_laser.name=轨道死光炮(Deco Block) -tile.deco_sat_mapper.name=表面测绘卫星(Deco Block) -tile.deco_sat_radar.name=雷达测量卫星(Deco Block) -tile.deco_sat_resonator.name=Xenium 谐振器卫星(Deco Block) -tile.deco_sat_scanner.name=带深度资源扫描模块(Deco Block)的卫星 +tile.deco_sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器(装饰块) +tile.deco_sat_laser.name=轨道死光炮(装饰块) +tile.deco_sat_mapper.name=表面测绘卫星(装饰块) +tile.deco_sat_radar.name=雷达探测卫星(装饰块) +tile.deco_sat_resonator.name=X晶体共振卫星(装饰块) +tile.deco_sat_scanner.name=绘测和资源探测卫星(装饰块) tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 tile.decon_digamma.name=Digamma 净化器 -tile.depth_brick.name=深度砖 -tile.depth_dnt.name=DNT-强化深度砖 -tile.depth_nether_brick.name=下界深度砖 -tile.depth_nether_tiles.name=下界深度瓷砖 -tile.depth_tiles.name=深度瓷砖 +tile.depth_brick.name=深层砖 +tile.depth_dnt.name=DNT-强化深层砖 +tile.depth_nether_brick.name=下界深层砖 +tile.depth_nether_tiles.name=下界深层瓷砖 +tile.depth_tiles.name=深层瓷砖 tile.det_charge.name=炸药 tile.det_cord.name=炸药引信 tile.det_miner.name=采矿炸药 @@ -3339,14 +3540,14 @@ tile.dfc_emitter.name=DFC发射器 tile.dfc_injector.name=DFC燃料喷射器 tile.dfc_receiver.name=DFC接收器 tile.dfc_stabilizer.name=DFC稳定器 -tile.digamma_matter.name=双股藻 +tile.digamma_matter.name=迪伽马物质 tile.drill_pipe.name=钻杆 tile.ducrete.name=贫铀混凝土 tile.ducrete_brick.name=贫铀混凝土砖块 tile.ducrete_brick_slab.name=贫铀混凝土砖台阶 tile.ducrete_brick_stairs.name=贫铀混凝土砖楼梯 -tile.ducrete_reinforced.name=强化高密度贫铀混凝土砖块 -tile.ducrete_reinforced_slab.name=钢筋高密度贫铀混凝土板 +tile.ducrete_reinforced.name=钢筋高密度贫铀混凝土砖块 +tile.ducrete_reinforced_slab.name=钢筋高密度贫铀混凝土台阶 tile.ducrete_reinforced_stairs.name=钢筋高密度贫铀混凝土楼梯 tile.ducrete_slab.name=贫铀混凝土台阶 tile.ducrete_smooth.name=光滑的贫铀混凝土 @@ -3369,7 +3570,7 @@ tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=辐射尘 tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰器 -tile.fire_digamma.name=挥之不去的迪伽玛之火 +tile.fire_digamma.name=挥之不去的迪伽马之火 tile.fire_door.name=防火门 tile.fireworks.charges=已充能: %s tile.fireworks.color=颜色: %s @@ -3381,8 +3582,8 @@ tile.fluid_duct.name=通用流体管道 tile.fluid_duct_mk2.name=通用流体管道 tile.fluid_duct_solid.name=密封流体管道 tile.fraction_spacer.name=分馏塔分离器 -tile.frozen_dirt.name=冰冻土 -tile.frozen_grass.name=冰冻草 +tile.frozen_dirt.name=冰冻泥土 +tile.frozen_grass.name=冰冻草地 tile.frozen_log.name=冰冻原木 tile.frozen_planks.name=冰冻木板 tile.fusion_center.name=中心磁铁 @@ -3391,14 +3592,14 @@ tile.fusion_core_block.name=聚变反应堆控制 tile.fusion_hatch.name=聚变反应堆端口 tile.fusion_heater.name=等离子加热器 tile.fusion_motor.name=磁体马达 -tile.fwatz_computer.name=Watz聚变反应堆计算矩阵 -tile.fwatz_conductor.name=4000K超导磁体 -tile.fwatz_cooler.name=冷却液罐壳 -tile.fwatz_core.name=Watz聚变反应堆控制器 -tile.fwatz_hatch.name=Watz聚变反应堆端口 +tile.fwatz_conductor.name=4000K高温超导磁体 +tile.fwatz_cooler.name=再生冷却液储液罐散热器 +tile.fwatz_tank.name=再生冷却液储液罐 +tile.fwatz_scaffold.name=S.A.F.E 反应堆结构支架 +tile.fwatz_hatch.name=S.A.F.E 反应堆端口 +tile.fwatz_computer.name=奇点反聚变反应堆矩阵 +tile.fwatz_core.name=奇点反聚变反应堆核心(S.A.F.E) tile.fwatz_plasma.name=不稳定反Sa326等离子体 -tile.fwatz_scaffold.name=Watz聚变反应堆结构支架 -tile.fwatz_tank.name=冷却液罐 tile.gas_asbestos.name=石棉粉尘 tile.gas_coal.name=空气中的煤尘 tile.gas_duct.name=输气管道 @@ -3495,12 +3696,11 @@ tile.machine_condenser.name=蒸汽冷凝器 tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 tile.machine_converter_rf_he.name=RF→HE转换器 -tile.machine_crystallizer.name=矿物酸化器 +tile.machine_crystallizer.name=矿物酸化机 tile.machine_cyclotron.name=回旋加速器 tile.machine_detector.name=功率检测器 tile.machine_deuterium.name=氘提取器 tile.machine_diesel.name=柴油发电机 -tile.machine_difurnace_ext.name=高炉风道 tile.machine_difurnace_off.name=高炉 tile.machine_difurnace_on.name=高炉 tile.machine_dineutronium_battery.name=Spark蓄电池 @@ -3545,7 +3745,7 @@ tile.machine_rtg_furnace_on.name=放射性同位素热力炉[RTG] tile.machine_rtg_green.name=韦德赛富集发电机 tile.machine_rtg_grey.name=放射性同位素发电机 tile.machine_rtg_orange.name=强RT发电机 -tile.machine_rtg_purple.name=反物质湮灭发发电机 +tile.machine_rtg_purple.name=反物质湮灭发电机 tile.machine_rtg_red.name=离子发生器 tile.machine_rtg_yellow.name=奥斯超级燃料反应堆 tile.machine_satlinker.name=卫星ID管理器 @@ -3556,6 +3756,7 @@ tile.machine_shredder.name=粉碎机 tile.machine_silex.name=激光同位素分离室 tile.machine_siren.name=警报器 tile.machine_solar_boiler.name=太阳能锅炉 +tile.machine_solar_boiler.desc=使用来自定日镜的阳光来加热流体 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] tile.machine_storage_drum.name=核废料处理桶 @@ -3563,10 +3764,15 @@ tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 tile.machine_tower_small.name=辅助冷却塔 -tile.machine_transformer.name=10k-20Hz变频器 -tile.machine_transformer_20.name=10k-1Hz变频器 -tile.machine_transformer_dnt.name=DNT-20Hz变频器 -tile.machine_transformer_dnt_20.name=DNT-1Hz变频器 +tile.machine_transformer.name=顶端充电座 +tile.machine_transformer.desc=使用电源为玩家物品栏中的物品充电. 范围:上方3个方块 +tile.machine_transformer_20.name=底部充电座 +tile.machine_transformer_20.desc=使用电源为玩家物品栏中的物品充电. 范围:下方3个方块 +tile.machine_transformer_dnt.name=DNT顶端充电座 +tile.machine_transformer_dnt.desc=使用电源为玩家物品栏中的物品充电. 范围:上方3个方块 +tile.machine_transformer_dnt_20.name=DNT底部充电座 +tile.machine_transformer_dnt_20.desc=使用电源为玩家物品栏中的物品充电. 范围:下方3个方块 + tile.machine_turbine.name=汽轮机 tile.machine_turbofan.name=涡扇发动机 tile.machine_uf6_tank.name=六氟化铀储罐 @@ -3593,8 +3799,8 @@ tile.mine_shrap.name=破片地雷 tile.mud_block.name=毒泥 tile.muffler.name=消声器 tile.mush.name=发光真菌 -tile.mush_block.name=生长的发光蘑菇 -tile.mush_block_stem.name=生长的发光蘑菇茎 +tile.mush_block.name=生长的发光真菌 +tile.mush_block_stem.name=生长的发光真菌茎 tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义核弹 @@ -3619,12 +3825,12 @@ tile.ore_beryllium.name=铍矿石 tile.ore_cinnebar.name=朱砂矿石 tile.ore_coal_oil.name=含油煤矿石 tile.ore_coal_oil_burning.name=燃烧的含油煤矿石 -tile.ore_cobalt.name=Cobalt Ore +tile.ore_cobalt.name=钴矿石 tile.ore_coltan.name=钶钽铁矿 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 tile.ore_depth_cinnebar.name=深层朱砂矿石 -tile.ore_depth_nether_neodymium.name=下界深度钕矿 +tile.ore_depth_nether_neodymium.name=下界深层钕矿 tile.ore_depth_zirconium.name=深层锆矿石 tile.ore_fluorite.name=氟石矿石 tile.ore_gneiss_asbestos.name=石棉矿页岩 @@ -3650,7 +3856,7 @@ tile.ore_meteor_titanium.name=钛矿陨石 tile.ore_meteor_tungsten.name=钨矿陨石 tile.ore_meteor_uranium.name=铀矿陨石 tile.ore_nether_coal.name=燃烧下界煤矿 -tile.ore_nether_cobalt.name=Nether Cobalt Ore +tile.ore_nether_cobalt.name=下界钴矿石 tile.ore_nether_fire.name=火矿石 tile.ore_nether_plutonium.name=下界钚矿石 tile.ore_nether_schrabidium.name=下界Sa326矿石 @@ -3690,12 +3896,12 @@ tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 -tile.qe_containment.name=QE 遏制门 +tile.qe_containment.name=QE 密封防辐射门 tile.qe_sliding.name=QE推拉门 tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.radsensor.name=辐射传感器 -tile.radwater_block.name=辐照水 +tile.radwater_block.name=核污染水 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 tile.railgun_plasma.name=电磁炮 @@ -3712,7 +3918,7 @@ tile.rbmk_blank.desc=§e使 RBMK反应堆升温或者更慢降温。$§e并使 tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 tile.rbmk_boiler.desc=§e如果温度足够高,将水转化为蒸汽$§e与 RBMK反应堆蒸汽导出器使用 tile.rbmk_console.name=RBMK石墨式反应堆控制台 -tile.rbmk_console.desc=§6使用背面的红石端口设置控制棒$§e功率 1-15 将控制棒设置为 100%-0%%$§e所以 功率15 就像 AZ-5 +tile.rbmk_console.desc=§a使用背面的红石端口设置控制棒$§e功率 1-15 将控制棒设置为 100%-0%%$§e所以 功率15 就像 AZ-5 tile.rbmk_control.name=RBMK反应堆控制棒 tile.rbmk_control.desc=§e它可以用于控制通过的中子。 tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 @@ -3724,15 +3930,15 @@ tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 tile.rbmk_moderator.desc=§e它可以将通过的快中子转换为慢中子。 tile.rbmk_outgasser.name=RBMK反应堆辐照通道 -tile.rbmk_outgasser.desc=§e吸收进入的中子并用它进行辐照。 +tile.rbmk_outgasser.desc=§e吸收入射的通量并用它进行辐照。 tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器 -tile.rbmk_reflector.desc=§e它可以将中子反射回原来的路径。 +tile.rbmk_reflector.desc=§e它可以将通量反射回原来的路径。 tile.rbmk_rod.name=RBMK反应堆燃料棒 tile.rbmk_rod.desc=§a它可以装有能产生热量的反应堆燃料棒。 tile.rbmk_rod_mod.name= RBMK反应堆慢化燃料棒 tile.rbmk_rod_mod.desc=§a和RBMK反应堆燃料棒一样,但将通过的快中子转换为慢中子。 tile.rbmk_rod_reasim.name= RBMK反应堆燃料棒(ReaSim) -tile.rbmk_rod_reasim.desc=§a与 RBMK反应堆燃料棒相同,但它在所有水平方向上随机发射中子。 +tile.rbmk_rod_reasim.desc=§a与 RBMK反应堆燃料棒相同,但它在所有水平方向上随机发射通量。 tile.rbmk_rod_reasim_mod.name= RBMK反应堆慢化燃料棒(ReaSim) tile.rbmk_rod_reasim_mod.desc=§a和RBMK反应堆燃料棒(ReaSim)一样,但是可以通过的快中子转换成慢中子 tile.rbmk_steam_inlet.name=RBMK ReaSim 进水口 @@ -3751,22 +3957,22 @@ tile.red_cable.name=紫铜电线 tile.red_pylon.name=电线杆 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 -tile.reinforced_brick_slab.name=钢筋砖 -tile.reinforced_brick_stairs.name=钢筋砖楼梯 +tile.reinforced_brick_slab.name=强化石台阶 +tile.reinforced_brick_stairs.name=强化石楼梯 tile.reinforced_glass.name=强化玻璃 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 tile.reinforced_sand.name=强化砂石 -tile.reinforced_sand_slab.name=强化沙板 -tile.reinforced_sand_stairs.name=强化沙楼梯 +tile.reinforced_sand_slab.name=强化砂石台阶 +tile.reinforced_sand_stairs.name=强化砂石楼梯 tile.reinforced_stone.name=致密石头 -tile.reinforced_stone_slab.name=强化石台阶 -tile.reinforced_stone_stairs.name=强化石阶 +tile.reinforced_stone_slab.name=致密石台阶 +tile.reinforced_stone_stairs.name=致密石楼梯 tile.rejuvinator.name=再生装置 tile.residue.name=云残留 tile.round_airlock_door.name=圆形气闸门 -tile.rtg_polonium.name=PT 同位素池 +tile.rtg_polonium.name=PT 同位素电池 tile.safe.name=保险箱 tile.sand_boron.name=硼砂 tile.sand_boron_layer.name=硼砂层 @@ -3777,7 +3983,7 @@ tile.sand_polonium.name=钋沙 tile.sand_quartz.name=石英砂 tile.sand_uranium.name=铀沙 tile.sat_dock.name=卸货平台 -tile.schrabidic_block.name=舒拉比酸 +tile.schrabidic_block.name=Sa酸 tile.seal_controller.name=发射井舱门开关 tile.seal_frame.name=发射井舱门框架 tile.seal_hatch.name=发射井舱门 @@ -3789,16 +3995,16 @@ tile.sellafield_3.name=灼热的放射性熔融凝固物 tile.sellafield_4.name=地狱般的放射性熔融凝固物 tile.sellafield_core.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 -tile.silo_hatch.name=筒仓舱口 +tile.silo_hatch.name=核弹发射井 tile.sliding_blast_door.name=侧向滑动防爆门 tile.sliding_blast_door_2.name=侧向滑动防爆门 tile.sliding_seal_door.name=滑动密封门 -tile.small_hatch.name=小舱口 +tile.small_hatch.name=小型舱口 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 -tile.spinny_light.name=旋转光 +tile.spinny_light.name=旋转警示灯 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 @@ -3818,7 +4024,7 @@ tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 tile.substation.name=变电站 -tile.substation.desc=§6连接类型: §eQuadruple$§6连接距离: §e20m +tile.substation.desc=§6连接类型: §e四倍$§6连接距离: §e20m tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 @@ -3828,15 +4034,15 @@ tile.therm_endo.name=吸热炸弹 tile.therm_exo.name=放热炸弹 tile.tile_lab.name=实验室瓷砖 tile.tile_lab_broken.name=破损实验室瓷砖 -tile.tile_lab_broken_slab.name=破碎的实验室瓷砖板 +tile.tile_lab_broken_slab.name=破碎的实验室瓷砖台阶 tile.tile_lab_broken_stairs.name=破碎的实验室瓷砖楼梯 tile.tile_lab_cracked.name=开裂实验室瓷砖 -tile.tile_lab_cracked_slab.name=开裂的实验室瓷砖板 +tile.tile_lab_cracked_slab.name=开裂的实验室瓷砖台阶 tile.tile_lab_cracked_stairs.name=破裂的实验室瓷砖楼梯 -tile.tile_lab_slab.name=实验室瓷砖大板 +tile.tile_lab_slab.name=实验室瓷砖台阶 tile.tile_lab_stairs.name=实验室瓷砖楼梯 tile.toxic_block.name=绿色软泥 -tile.transition_seal.name=过渡密封门 +tile.transition_seal.name=巨型安全门 tile.turret_cheapo.name=奇普-加特林哨兵 tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” tile.turret_cwis.name=Mk-15“密集阵”近防系统 @@ -3851,7 +4057,7 @@ tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_richard.name=火箭炮塔“理查德” tile.turret_rocket.name=火箭炮塔 -tile.turret_spitfire.name=目前没有名字[开发中] +tile.turret_spitfire.name=重炮炮塔 tile.turret_tau.name=陶子炮塔 tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vault_door.name=避难所防爆门 @@ -3864,8 +4070,8 @@ tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 tile.waste_dirt.name=污染土 tile.waste_earth.name=死亡草地 -tile.waste_grass_tall.name=废草 -tile.waste_leaves.name=废叶 +tile.waste_grass_tall.name=枯草 +tile.waste_leaves.name=枯叶 tile.waste_log.name=烧焦原木 tile.waste_mycelium.name=发光菌丝 tile.waste_planks.name=烧焦木板 @@ -3908,9 +4114,9 @@ tile.machine_catalytic_cracker.name=催化裂化塔 tile.rbmk_heater.name=RBMK反应堆流体加热器 tile.rbmk_heater.desc=§e它被用来加热流体$§e如果热量高于沸腾液体的温度,则它会利用热量将其转化$§e热交换加热器用于传递热量并回收冷却液 tile.heat_boiler.name=大型锅炉 -tile.heat_boiler.desc=大型锅炉可被用来加热水或原油$需要外部热源$热量转换速率: ΔT*0.01 TU/t +tile.heat_boiler.desc=大型锅炉可被用来加热水或原油$需要外部热源$传热率: ΔT*0.01 TU/t$(Δ表示差值,T表示温度) tile.red_pylon_large.name=大型输电塔 -tile.red_pylon_large.desc=§6连接类型: §eQuadruple$§6连接距离: §e100m$§6这个输电塔需要一个变电站! +tile.red_pylon_large.desc=§6连接类型: §e四倍$§6连接距离: §e100m$§6这个塔架需要一个变电站! tile.rbmk_cooler.name=RBMK反应堆紧急冷却器 tile.rbmk_cooler.desc=§e如果堆芯温度超过 750°C,它会开始使用冷冻凝胶快速冷却 RBMK 通道$§e它用于在熔毁前为您争取时间,以便您有机会按下 AZ-5。 tile.uu_gigafactory.name=UU物质超级工厂 @@ -3919,6 +4125,24 @@ tile.machine_turbofan.desc=§e燃烧煤油以产生能量 tile.cable_diode.name=紫铜二极管 tile.cable_diode.desc=§6限制吞吐量并限制流向$§e使用螺丝刀提高吞吐量$§e使用手钻降低吞吐量$§e使用拆弹器更改网络优先级 tile.cable_detector.name=红石电源开关 +tile.radio_torch_sender.name=无线红石发射器 +tile.radio_torch_receiver.name=无线电接收器 +tile.heater_firebox.name=燃烧室 +tile.heater_firebox.desc=燃烧固体燃料以产生热量 +tile.furnace_steel.name=钢炉 +tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) +tile.machine_storage_drum.desc=核废料随着时间慢慢衰变。如果内部液体和气体核废料已满,则辐射将泄漏。 +tile.machine_waste_drum.desc=至少一侧需要有水接触。接触水的面越多,燃料冷却速度越快。 +tile.red_pylon.desc=§6连接类型: §e单倍$§6连接距离: §e25m +tile.bomb.tnt_enabled=[ 被破坏时点燃: 启用 ] +tile.bomb.tnt_disabled=[ 被破坏时点燃: 关闭 ] +tile.baleonitite_slaked.name=消沉的野火熔融凝固物 +tile.baleonitite_0.name=野火熔融凝固物 +tile.baleonitite_1.name=高温野火熔融凝固物 +tile.baleonitite_2.name=沸腾的野火熔融凝固物 +tile.baleonitite_3.name=灼热的野火熔融凝固物 +tile.baleonitite_4.name=地狱般的野火熔融凝固物 +tile.baleonitite_core.name=野火熔融凝固物核心 tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 @@ -3934,7 +4158,7 @@ tool.ability.smelter=自动熔炼 trait.asbestos=石棉 trait.blinding=致盲 trait.breeding=可在增殖反应堆中工作 %s 次 -trait.coal=煤炭粉尘 +trait.coal=煤尘 trait.digamma=迪伽马辐射 trait.drop=掉落物危险 trait.furnace=可在核熔炉中工作 %s 次 @@ -3979,18 +4203,12 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s +trait.rbmk.meltdown=内部熔毁: %s trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 trait.unstable=不稳定 -trait.flammable=可燃烧 -trait.flammable.desc=§e提供 §4%sTU §e每桶. -trait.coolable=可冷却 -trait.coolable.desc=§b提供 §4%sTU §b每桶. -trait.boilable=可加热 -trait.boilable.desc=§b需要 §4%sTU §b每桶. - wavelengths.name.drx=迪伽马 -wavelengths.name.gamma=伽马 +wavelengths.name.gamma=伽马射线 wavelengths.name.ir=红外线 wavelengths.name.micro=微波 wavelengths.name.radio=无线电波 @@ -4089,7 +4307,7 @@ achievement.stratum.desc=快刹车, Mitts! achievement.tasteofblood=血的味道 achievement.tasteofblood.desc=这不是任何测试的一部分 -armor.explosionImmune=免疫除爆炸伤害外的一切伤害 + book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 chem.XENON_OXY=增强林德循环制氙 @@ -4117,7 +4335,7 @@ item.ammo_fireext_sand.name=灭火器 硼砂罐 item.ammo_rocket_digamma.name=§4归 零§r item.book_guide.name=RBMK反应堆操作指导书 item.bucket_schrabidic_acid.name=一桶Sa酸 -item.canister_NITAN.name=桶装NITAN 100号超级燃料 +item.canister_NITAN.name=桶装NITAN© 100号超级燃料 item.cell_balefire.name=气态野火单元 item.cheese.name=奶酪 item.coffee.name=咖啡 @@ -4125,16 +4343,16 @@ item.coffee_radium.name=加镭咖啡 item.coltan_tool.name=钶钽铁矿指针 item.cube_power.name=电子块 item.fallout.name=一堆辐射尘 -item.gun_bolter_digamma.name=迪伽马Bolter +item.gun_bolter_digamma.name=迪伽马爆弹枪 item.gun_fireext.name=灭火器 -item.gun_mymy.name=Nietes +item.gun_mymy.name=Nietes软弹枪 item.gun_supershotgun.name=超级猎枪 item.journal_bj.name=被威士忌浸透的笔记本 item.journal_pip.name=生存主义者日记 item.journal_silver.name=承包商注释 item.missile_soyuz.name=联盟-FG运载火箭 item.mp_warhead_15_turbine.name=15号喷气发动机弹头 -item.particle_lutece.name=Lutece准粒子 +item.particle_lutece.name=Lutece镥准粒子胶囊 item.pipes_steel.desc=为了逃税,所以造价如此高昂. item.robes_boots.name=战地靴 item.robes_helmet.name=休闲兜帽 @@ -4182,15 +4400,32 @@ tile.sat_mapper.name=地表测绘卫星[装饰块] tile.sat_radar.name=雷达探测卫星[装饰块] tile.sat_resonator.name=X晶体共振卫星[装饰块] tile.sat_scanner.name=绘测和资源探测卫星[装饰块] + trait.explosive=高度易燃/易爆 trait.cryogenic=低温 / 寒冷 trait.hydro=与水反应 trait.toxic=毒性 +trait.contaminating=掉落物污染 +trait.contaminating.radius=污染半径: %sm +trait.cleanroom=洁净 +trait.cleanroom.desc=掉落的污染物品不会消失 +trait.dfcFuel=DFC燃料 +trait.dfcFuel.desc=§d输出功率 §5%s%% +trait.flammable=可燃 +trait.flammable.desc=§e每桶提供 §6%sTU §e的热量 +trait.coolable=可冷却 +trait.coolable.desc=§c每桶提供 §4%sTU §c的热量 +trait.boilable=可加热 +trait.boilable.desc=§b每桶需要 §3%sTU §b的热量 +trait.hotfluid=高温 +trait.antimatter=反物质湮灭 +trait.corrosivePlastic=腐蚀性 +trait.corrosiveIron=强腐蚀性 adjective.little=低 adjective.medium=中等 adjective.high=高 -adjective.veryhigh=超高 -adjective.extreme=剧 +adjective.veryhigh=剧 +adjective.extreme=极 hazard.prot=可防护: hazard.noprot=不可防护: hazard.bacteria=细菌/气溶胶 @@ -4198,9 +4433,86 @@ hazard.corrosive=腐蚀性烟雾 hazard.gasChlorine=化学气体 hazard.gasInert=惰性气体/窒息 hazard.gasMonoxide=一氧化碳 -hazard.light=光气 +hazard.light=强光 hazard.nerveAgent=神经毒剂 hazard.neverProtects=永远不能防护: hazard.particleCoarse=空气微粒 hazard.particleFine=微粒 -hazard.sand=眼睛刺激物 \ No newline at end of file +hazard.sand=眼睛刺激物 +hazard.radGas=放射性气体 + +tile.heater_rt.name=放射性同位素加热器 +tile.heater_rt.desc=由放射性同位素燃料靶丸产生热量 +container.heaterRadioThermal=放射性同位素加热器 +tile.machine_deuterium_extractor.name=氘提取器 +tile.machine_deuterium_tower.name=氘萃取塔 +container.machineMixer=工业搅拌机 +container.machineUUMixer=工业UU搅拌机 +tile.machine_mixer.name=工业搅拌机 +tile.machine_difurnace_ext.name=高炉烟道 +tile.machine_difurnace_rtg_off.name=核高炉 +tile.machine_difurnace_rtg_on.name=核高炉 +container.diFurnaceRTG=核高炉 +tile.machine_excavator.name=大型采矿钻机 +tile.red_wire_sealed.name=辐射密封紫铜电缆座 +tile.ore_bedrock_block.name=基岩矿石 +tile.ore_depth_nether_nitan.name=下界深层NITAN矿 +tile.fluid_duct_solid_sealed.name=辐射密封流体管 +tile.block_lignite.name=褐煤块 +tile.block_coke.name=焦炭块 +tile.block_coal_infernal.name=地狱煤块 +tile.block_solid_fuel.name=固体燃料块 +tile.block_solid_fuel_presto.name=Presto固体燃料块 +tile.block_solid_fuel_presto_triplet.name=增强型Presto固体燃料块 +tile.sliding_gate_door.name=小型QE 密封防辐射门 +tile.cluster_copper.name=铜矿簇 + +hbmfluid.heavywater=重水 +fluid.heavywater=重水 +hbmfluid.nitric_acid=硝酸 +fluid.nitric_acid=硝酸 +hbmfluid.solvent=有机溶剂 +fluid.solvent=有机溶剂 +hbmfluid.radiosolvent=高性能溶剂 +fluid.radiosolvent=高性能溶剂 +fluid.fishoil=鱼油 +fluid.sunfloweroil=葵花籽油 +fluid.colloid=胶体 +fluid.nitroglycerin=硝酸甘油 +fluid.tile.water=水 +fluid.tile.lava=岩浆 +hbmfluid.experience=经验汁 +fluid.experience=经验汁 + +item.drillbit_dnt.name=双聚中子态素钻头 +item.drillbit_dnt_diamond.name=双聚中子态素钻头(镶钻) +item.drillbit_desh.name=Desh钻头 +item.drillbit_desh_diamond.name=Desh钻头(镶钻) +item.drillbit_ferro.name=铀铁合金钻头 +item.drillbit_ferro_diamond.name=铀铁合金钻头(镶钻) +item.drillbit_hss.name=高速钢钻头 +item.drillbit_hss_diamond.name=高速钢钻头(镶钻) +item.drillbit_steel.name=钢钻头 +item.drillbit_steel_diamond.name=钢钻头(镶钻) +item.drillbit_tcalloy.name=锝钢钻头 +item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) +item.euphemium_capacitor.name=Ep电容器 +item.gas_mask_filter_radon.name=欧米伽防毒面具过滤器 +desc.gui.rtg.heat=§e当前热等级: %s +desc.gui.rtgBFurnace.desc=热量越多,运行速度越快$热量超过最大值 %s 不会有任何影响$短半衰期的靶丸可能会衰变 +item.inf_water_mk3.name=超重型无限水罐 +item.inf_water_mk4.name=大屁股无限水坦克 +item.custom_sol.name=自定义核弹-Sa327棒 +item.custom_euph.name=自定义核弹-反质量棒 + + +turret.animals=被动目标:%s +turret.machines=以机械为目标: %s +turret.mobs=以怪物为目标: %s +turret.none=无 +turret.off=关 +turret.on=开 +turret.players=以玩家为目标:%s + +flare.ignition=点火装置 +flare.valve=流量阀 diff --git a/src/main/resources/assets/hbm/models/block/blast_door.json b/src/main/resources/assets/hbm/models/block/blast_door.json index 8f57d15e40..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/blast_door.json +++ b/src/main/resources/assets/hbm/models/block/blast_door.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/blast_door" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/boat.json b/src/main/resources/assets/hbm/models/block/boat.json index adbd1b5cae..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/boat.json +++ b/src/main/resources/assets/hbm/models/block/boat.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/boat" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/dummy_block_drill.json b/src/main/resources/assets/hbm/models/block/concrete_hazard.json similarity index 56% rename from src/main/resources/assets/hbm/models/block/dummy_block_drill.json rename to src/main/resources/assets/hbm/models/block/concrete_hazard.json index ee949f8c00..0eec5b9edd 100644 --- a/src/main/resources/assets/hbm/models/block/dummy_block_drill.json +++ b/src/main/resources/assets/hbm/models/block/concrete_hazard.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/block_lead" + "all": "hbm:blocks/concrete_hazard" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/crane_ejector.json b/src/main/resources/assets/hbm/models/block/crane_ejector.json index 4764ab50a2..ed32fcb1b1 100644 --- a/src/main/resources/assets/hbm/models/block/crane_ejector.json +++ b/src/main/resources/assets/hbm/models/block/crane_ejector.json @@ -3,8 +3,8 @@ "textures": { "down": "hbm:blocks/crane_out_top", "up": "hbm:blocks/crane_out_top", - "north": "hbm:blocks/crane_in", - "south": "hbm:blocks/crane_out", + "north": "hbm:blocks/crane_out", + "south": "hbm:blocks/crane_in", "west": "hbm:blocks/crane_out_side_turn_right", "east": "hbm:blocks/crane_out_side_turn_left", "particle": "hbm:blocks/crane_out_top" diff --git a/src/main/resources/assets/hbm/models/block/crashed_bomb.json b/src/main/resources/assets/hbm/models/block/crashed_bomb.json index 71b8e9fbe4..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/crashed_bomb.json +++ b/src/main/resources/assets/hbm/models/block/crashed_bomb.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/crashed_balefire" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/det_bale.json b/src/main/resources/assets/hbm/models/block/det_bale.json new file mode 100644 index 0000000000..ca9b8667ab --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/det_bale.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cube_column", + "textures": { + "side": "hbm:blocks/det_bale", + "end": "hbm:blocks/det_bale_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/det_n2.json b/src/main/resources/assets/hbm/models/block/det_n2.json new file mode 100644 index 0000000000..0e74739461 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/det_n2.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cube_column", + "textures": { + "side": "hbm:blocks/det_n2", + "end": "hbm:blocks/det_n2_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/dummy_port_drill.json b/src/main/resources/assets/hbm/models/block/dummy_port_drill.json deleted file mode 100644 index ee949f8c00..0000000000 --- a/src/main/resources/assets/hbm/models/block/dummy_port_drill.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/block_lead" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/iter.json b/src/main/resources/assets/hbm/models/block/iter.json index 9c6d9085b8..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/iter.json +++ b/src/main/resources/assets/hbm/models/block/iter.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/iter" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_catalytic_cracker.json b/src/main/resources/assets/hbm/models/block/machine_catalytic_cracker.json index b642b62417..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_catalytic_cracker.json +++ b/src/main/resources/assets/hbm/models/block/machine_catalytic_cracker.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_catalytic_cracker" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_centrifuge.json b/src/main/resources/assets/hbm/models/block/machine_centrifuge.json index 4df7e27b7b..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_centrifuge.json +++ b/src/main/resources/assets/hbm/models/block/machine_centrifuge.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_centrifuge" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_chemplant.json b/src/main/resources/assets/hbm/models/block/machine_chemplant.json index 5d6894cb31..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_chemplant.json +++ b/src/main/resources/assets/hbm/models/block/machine_chemplant.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_chemplant" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_chungus.json b/src/main/resources/assets/hbm/models/block/machine_chungus.json index fd16d5056b..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_chungus.json +++ b/src/main/resources/assets/hbm/models/block/machine_chungus.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_chungus" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_drill.json b/src/main/resources/assets/hbm/models/block/machine_drill.json deleted file mode 100644 index 25b0a806f2..0000000000 --- a/src/main/resources/assets/hbm/models/block/machine_drill.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/machine_drill" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_epress.json b/src/main/resources/assets/hbm/models/block/machine_epress.json index 86a8cd77c8..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_epress.json +++ b/src/main/resources/assets/hbm/models/block/machine_epress.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_epress" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_fensu.json b/src/main/resources/assets/hbm/models/block/machine_fensu.json index 3a143e1937..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_fensu.json +++ b/src/main/resources/assets/hbm/models/block/machine_fensu.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_fensu" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_flare.json b/src/main/resources/assets/hbm/models/block/machine_flare.json index 7874163d9c..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_flare.json +++ b/src/main/resources/assets/hbm/models/block/machine_flare.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_flare" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_fluidtank.json b/src/main/resources/assets/hbm/models/block/machine_fluidtank.json index 9d87061ba1..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_fluidtank.json +++ b/src/main/resources/assets/hbm/models/block/machine_fluidtank.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_fluidtank" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_forcefield.json b/src/main/resources/assets/hbm/models/block/machine_forcefield.json index 09c7241a9d..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_forcefield.json +++ b/src/main/resources/assets/hbm/models/block/machine_forcefield.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_forcefield" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_fracking_tower.json b/src/main/resources/assets/hbm/models/block/machine_fracking_tower.json index 534c0de7b7..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_fracking_tower.json +++ b/src/main/resources/assets/hbm/models/block/machine_fracking_tower.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_fracking_tower" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_gascent.json b/src/main/resources/assets/hbm/models/block/machine_gascent.json index bf3e366a91..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_gascent.json +++ b/src/main/resources/assets/hbm/models/block/machine_gascent.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_gascent" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_large_turbine.json b/src/main/resources/assets/hbm/models/block/machine_large_turbine.json index ba25a75097..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_large_turbine.json +++ b/src/main/resources/assets/hbm/models/block/machine_large_turbine.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_large_turbine" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_mining_laser.json b/src/main/resources/assets/hbm/models/block/machine_mining_laser.json index fc395ee763..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_mining_laser.json +++ b/src/main/resources/assets/hbm/models/block/machine_mining_laser.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_mining_laser" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_press.json b/src/main/resources/assets/hbm/models/block/machine_press.json index e75910408e..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_press.json +++ b/src/main/resources/assets/hbm/models/block/machine_press.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_press" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_pumpjack.json b/src/main/resources/assets/hbm/models/block/machine_pumpjack.json index 90d07927e1..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_pumpjack.json +++ b/src/main/resources/assets/hbm/models/block/machine_pumpjack.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_pumpjack" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_radar.json b/src/main/resources/assets/hbm/models/block/machine_radar.json index 54fbb36858..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_radar.json +++ b/src/main/resources/assets/hbm/models/block/machine_radar.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_radar" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_radgen.json b/src/main/resources/assets/hbm/models/block/machine_radgen.json index a0dce3b343..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_radgen.json +++ b/src/main/resources/assets/hbm/models/block/machine_radgen.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_radgen" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_reactor.json b/src/main/resources/assets/hbm/models/block/machine_reactor.json index 5b43b624da..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_reactor.json +++ b/src/main/resources/assets/hbm/models/block/machine_reactor.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_reactor" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_reactor_on.json b/src/main/resources/assets/hbm/models/block/machine_reactor_on.json index 8c43e658f4..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_reactor_on.json +++ b/src/main/resources/assets/hbm/models/block/machine_reactor_on.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_reactor_on" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_reactor_small.json b/src/main/resources/assets/hbm/models/block/machine_reactor_small.json index a1d51dd797..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_reactor_small.json +++ b/src/main/resources/assets/hbm/models/block/machine_reactor_small.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_reactor_small" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_refinery.json b/src/main/resources/assets/hbm/models/block/machine_refinery.json index d2a9e139bc..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_refinery.json +++ b/src/main/resources/assets/hbm/models/block/machine_refinery.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_refinery" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_selenium.json b/src/main/resources/assets/hbm/models/block/machine_selenium.json index 825d758336..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_selenium.json +++ b/src/main/resources/assets/hbm/models/block/machine_selenium.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_selenium" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_solar_boiler.json b/src/main/resources/assets/hbm/models/block/machine_solar_boiler.json index 60f17f8fb1..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_solar_boiler.json +++ b/src/main/resources/assets/hbm/models/block/machine_solar_boiler.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_solar_boiler" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_storage_drum.json b/src/main/resources/assets/hbm/models/block/machine_storage_drum.json index dc9b7f9a89..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_storage_drum.json +++ b/src/main/resources/assets/hbm/models/block/machine_storage_drum.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_storage_drum" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_uf6_tank.json b/src/main/resources/assets/hbm/models/block/machine_uf6_tank.json index 28eebe02a8..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_uf6_tank.json +++ b/src/main/resources/assets/hbm/models/block/machine_uf6_tank.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_uf6_tank" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_well.json b/src/main/resources/assets/hbm/models/block/machine_well.json index dbc46556cc..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/machine_well.json +++ b/src/main/resources/assets/hbm/models/block/machine_well.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/machine_well" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_fleija.json b/src/main/resources/assets/hbm/models/block/nuke_fleija.json index fc924bcf33..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_fleija.json +++ b/src/main/resources/assets/hbm/models/block/nuke_fleija.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_fleija" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_fstbmb.json b/src/main/resources/assets/hbm/models/block/nuke_fstbmb.json index 76401c574f..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_fstbmb.json +++ b/src/main/resources/assets/hbm/models/block/nuke_fstbmb.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_fstbmb" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_gadget.json b/src/main/resources/assets/hbm/models/block/nuke_gadget.json index e65d9e4287..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_gadget.json +++ b/src/main/resources/assets/hbm/models/block/nuke_gadget.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_gadget" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_man.json b/src/main/resources/assets/hbm/models/block/nuke_man.json index 7966226139..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_man.json +++ b/src/main/resources/assets/hbm/models/block/nuke_man.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_man" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_mike.json b/src/main/resources/assets/hbm/models/block/nuke_mike.json index cd25b6e4be..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_mike.json +++ b/src/main/resources/assets/hbm/models/block/nuke_mike.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_mike" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_n2.json b/src/main/resources/assets/hbm/models/block/nuke_n2.json index b3d8162fb0..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_n2.json +++ b/src/main/resources/assets/hbm/models/block/nuke_n2.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_n2" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_solinium.json b/src/main/resources/assets/hbm/models/block/nuke_solinium.json index 40485b8894..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_solinium.json +++ b/src/main/resources/assets/hbm/models/block/nuke_solinium.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_solinium" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/nuke_tsar.json b/src/main/resources/assets/hbm/models/block/nuke_tsar.json index cd9224506b..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/nuke_tsar.json +++ b/src/main/resources/assets/hbm/models/block/nuke_tsar.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/nuke_tsar" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/obj_tester.json b/src/main/resources/assets/hbm/models/block/obj_tester.json index 2e8a1cb320..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/obj_tester.json +++ b/src/main/resources/assets/hbm/models/block/obj_tester.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/obj_tester" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/railgun_plasma.json b/src/main/resources/assets/hbm/models/block/railgun_plasma.json index 4c899d5074..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/railgun_plasma.json +++ b/src/main/resources/assets/hbm/models/block/railgun_plasma.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/railgun_plasma" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/red_cable_gauge.json b/src/main/resources/assets/hbm/models/block/red_cable_gauge.json new file mode 100644 index 0000000000..3a8f0d50a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/red_cable_gauge.json @@ -0,0 +1,8 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "hbm:blocks/concrete_tile", + "front": "hbm:blocks/red_cable_gauge_front", + "side": "hbm:blocks/concrete_tile" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_0.json b/src/main/resources/assets/hbm/models/block/sellafield_0.json deleted file mode 100644 index 085556f127..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_0" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_0_1.json b/src/main/resources/assets/hbm/models/block/sellafield_0_1.json new file mode 100644 index 0000000000..c848105fe0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_0_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_0/sellafield_0_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_0_2.json b/src/main/resources/assets/hbm/models/block/sellafield_0_2.json new file mode 100644 index 0000000000..e4eda58d77 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_0_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_0/sellafield_0_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_0_3.json b/src/main/resources/assets/hbm/models/block/sellafield_0_3.json new file mode 100644 index 0000000000..901676f696 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_0_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_0/sellafield_0_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_0_4.json b/src/main/resources/assets/hbm/models/block/sellafield_0_4.json new file mode 100644 index 0000000000..e8a448f2c8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_0_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_0/sellafield_0_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_1.json b/src/main/resources/assets/hbm/models/block/sellafield_1.json deleted file mode 100644 index 53d25ed442..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_1" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_1_1.json b/src/main/resources/assets/hbm/models/block/sellafield_1_1.json new file mode 100644 index 0000000000..3339e4aeda --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_1_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_1/sellafield_1_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_1_2.json b/src/main/resources/assets/hbm/models/block/sellafield_1_2.json new file mode 100644 index 0000000000..d77b95ef5a --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_1_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_1/sellafield_1_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_1_3.json b/src/main/resources/assets/hbm/models/block/sellafield_1_3.json new file mode 100644 index 0000000000..695f344fb9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_1_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_1/sellafield_1_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_1_4.json b/src/main/resources/assets/hbm/models/block/sellafield_1_4.json new file mode 100644 index 0000000000..31fe171cbe --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_1_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_1/sellafield_1_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_2.json b/src/main/resources/assets/hbm/models/block/sellafield_2.json deleted file mode 100644 index f32d16f4e2..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_2" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_2_1.json b/src/main/resources/assets/hbm/models/block/sellafield_2_1.json new file mode 100644 index 0000000000..eb1b61a9cc --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_2_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_2/sellafield_2_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_2_2.json b/src/main/resources/assets/hbm/models/block/sellafield_2_2.json new file mode 100644 index 0000000000..73be308916 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_2_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_2/sellafield_2_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_2_3.json b/src/main/resources/assets/hbm/models/block/sellafield_2_3.json new file mode 100644 index 0000000000..8568422403 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_2_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_2/sellafield_2_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_2_4.json b/src/main/resources/assets/hbm/models/block/sellafield_2_4.json new file mode 100644 index 0000000000..8a59f6884a --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_2_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_2/sellafield_2_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_3.json b/src/main/resources/assets/hbm/models/block/sellafield_3.json deleted file mode 100644 index d5a144875f..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_3_1.json b/src/main/resources/assets/hbm/models/block/sellafield_3_1.json new file mode 100644 index 0000000000..0dd787b34b --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_3_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_3/sellafield_3_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_3_2.json b/src/main/resources/assets/hbm/models/block/sellafield_3_2.json new file mode 100644 index 0000000000..7925504565 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_3_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_3/sellafield_3_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_3_3.json b/src/main/resources/assets/hbm/models/block/sellafield_3_3.json new file mode 100644 index 0000000000..d98b56c093 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_3_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_3/sellafield_3_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_3_4.json b/src/main/resources/assets/hbm/models/block/sellafield_3_4.json new file mode 100644 index 0000000000..8cd3521018 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_3_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_3/sellafield_3_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_4.json b/src/main/resources/assets/hbm/models/block/sellafield_4.json deleted file mode 100644 index d7b7f16413..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_4" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_4_1.json b/src/main/resources/assets/hbm/models/block/sellafield_4_1.json new file mode 100644 index 0000000000..fa07702e1b --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_4_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_4/sellafield_4_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_4_2.json b/src/main/resources/assets/hbm/models/block/sellafield_4_2.json new file mode 100644 index 0000000000..56df465f53 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_4_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_4/sellafield_4_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_4_3.json b/src/main/resources/assets/hbm/models/block/sellafield_4_3.json new file mode 100644 index 0000000000..cf4da9de37 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_4_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_4/sellafield_4_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_4_4.json b/src/main/resources/assets/hbm/models/block/sellafield_4_4.json new file mode 100644 index 0000000000..16afa06e2e --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_4_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_4/sellafield_4_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_5_1.json b/src/main/resources/assets/hbm/models/block/sellafield_5_1.json new file mode 100644 index 0000000000..e370689865 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_5_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_5/sellafield_5_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_5_2.json b/src/main/resources/assets/hbm/models/block/sellafield_5_2.json new file mode 100644 index 0000000000..fb74c70447 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_5_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_5/sellafield_5_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_5_3.json b/src/main/resources/assets/hbm/models/block/sellafield_5_3.json new file mode 100644 index 0000000000..913df6b2bf --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_5_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_5/sellafield_5_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_5_4.json b/src/main/resources/assets/hbm/models/block/sellafield_5_4.json new file mode 100644 index 0000000000..a8a6b0a211 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_5_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_5/sellafield_5_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_6_1.json b/src/main/resources/assets/hbm/models/block/sellafield_6_1.json new file mode 100644 index 0000000000..6309ff015d --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_6_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_6/sellafield_6_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_6_2.json b/src/main/resources/assets/hbm/models/block/sellafield_6_2.json new file mode 100644 index 0000000000..23f984c4fa --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_6_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_6/sellafield_6_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_6_3.json b/src/main/resources/assets/hbm/models/block/sellafield_6_3.json new file mode 100644 index 0000000000..1fea92212a --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_6_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_6/sellafield_6_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_6_4.json b/src/main/resources/assets/hbm/models/block/sellafield_6_4.json new file mode 100644 index 0000000000..b70276f390 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sellafield_6_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sellafield_6/sellafield_6_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/sellafield_core.json b/src/main/resources/assets/hbm/models/block/sellafield_core.json deleted file mode 100644 index e12f7d1bbd..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_core.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_core" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/sellafield_slaked.json b/src/main/resources/assets/hbm/models/block/sellafield_slaked.json deleted file mode 100644 index e30f46bb20..0000000000 --- a/src/main/resources/assets/hbm/models/block/sellafield_slaked.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/sellafield_slaked" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/uu_gigafactory.json b/src/main/resources/assets/hbm/models/block/uu_gigafactory.json index 104e1c8bcd..9f7d8502af 100644 --- a/src/main/resources/assets/hbm/models/block/uu_gigafactory.json +++ b/src/main/resources/assets/hbm/models/block/uu_gigafactory.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/uu_gigafactory" + "all": "hbm:blocks/block_steel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt.json b/src/main/resources/assets/hbm/models/block/waste_dirt.json deleted file mode 100644 index 7897a501be..0000000000 --- a/src/main/resources/assets/hbm/models/block/waste_dirt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "blocks/dirt" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_0.json b/src/main/resources/assets/hbm/models/block/waste_dirt_0.json new file mode 100644 index 0000000000..a3b66ae3dd --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_1.json b/src/main/resources/assets/hbm/models/block/waste_dirt_1.json new file mode 100644 index 0000000000..0a7498f6b3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_2.json b/src/main/resources/assets/hbm/models/block/waste_dirt_2.json new file mode 100644 index 0000000000..e324050d6c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_3.json b/src/main/resources/assets/hbm/models/block/waste_dirt_3.json new file mode 100644 index 0000000000..fbc76442b1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_4.json b/src/main/resources/assets/hbm/models/block/waste_dirt_4.json new file mode 100644 index 0000000000..4b03286cf3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_5.json b/src/main/resources/assets/hbm/models/block/waste_dirt_5.json new file mode 100644 index 0000000000..84a4d8a37a --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_dirt_6.json b/src/main/resources/assets/hbm/models/block/waste_dirt_6.json new file mode 100644 index 0000000000..e960533e7c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_dirt_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/dirt/waste_dirt_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth.json b/src/main/resources/assets/hbm/models/block/waste_earth.json index 6f8ee98c79..a067929254 100644 --- a/src/main/resources/assets/hbm/models/block/waste_earth.json +++ b/src/main/resources/assets/hbm/models/block/waste_earth.json @@ -2,7 +2,7 @@ "parent": "block/cube_bottom_top", "textures": { "top": "hbm:blocks/waste_grass_top", - "bottom": "hbm:blocks/waste_earth_bottom", + "bottom": "hbm:blocks/waste_earth", "side": "hbm:blocks/waste_grass_side" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_0.json b/src/main/resources/assets/hbm/models/block/waste_earth_0.json new file mode 100644 index 0000000000..acd9809575 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_0.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_0", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_0", + "side": "hbm:blocks/contamination/grass/waste_grass_side_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_1.json b/src/main/resources/assets/hbm/models/block/waste_earth_1.json new file mode 100644 index 0000000000..00f85fe6f9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_1.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_1", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_1", + "side": "hbm:blocks/contamination/grass/waste_grass_side_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_2.json b/src/main/resources/assets/hbm/models/block/waste_earth_2.json new file mode 100644 index 0000000000..877643a298 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_2.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_2", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_2", + "side": "hbm:blocks/contamination/grass/waste_grass_side_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_3.json b/src/main/resources/assets/hbm/models/block/waste_earth_3.json new file mode 100644 index 0000000000..40e5b7cd3e --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_3.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_3", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_3", + "side": "hbm:blocks/contamination/grass/waste_grass_side_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_4.json b/src/main/resources/assets/hbm/models/block/waste_earth_4.json new file mode 100644 index 0000000000..31b069f8e1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_4.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_4", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_4", + "side": "hbm:blocks/contamination/grass/waste_grass_side_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_5.json b/src/main/resources/assets/hbm/models/block/waste_earth_5.json new file mode 100644 index 0000000000..e29d8d05ab --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_5.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_5", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_5", + "side": "hbm:blocks/contamination/grass/waste_grass_side_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_earth_6.json b/src/main/resources/assets/hbm/models/block/waste_earth_6.json new file mode 100644 index 0000000000..0b3a028ff3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_earth_6.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/grass/waste_grass_top_6", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_6", + "side": "hbm:blocks/contamination/grass/waste_grass_side_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_0.json similarity index 53% rename from src/main/resources/assets/hbm/models/block/waste_grass_tall.json rename to src/main/resources/assets/hbm/models/block/waste_grass_tall_0.json index d48e31a063..871efce3e0 100644 --- a/src/main/resources/assets/hbm/models/block/waste_grass_tall.json +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_0.json @@ -1,7 +1,7 @@ { "parent": "block/cross", "textures": { - "cross": "hbm:blocks/waste_grass_tall" + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_0" }, "ambientocclusion": false -} +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_1.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_1.json new file mode 100644 index 0000000000..a5b843cbc6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_1.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_1" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_2.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_2.json new file mode 100644 index 0000000000..d4072c1513 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_2.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_2" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_3.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_3.json new file mode 100644 index 0000000000..fe9da82b50 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_3.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_3" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_4.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_4.json new file mode 100644 index 0000000000..4af91ba67a --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_4.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_4" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_5.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_5.json new file mode 100644 index 0000000000..553683e17f --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_5.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_5" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_grass_tall_6.json b/src/main/resources/assets/hbm/models/block/waste_grass_tall_6.json new file mode 100644 index 0000000000..8ff35f4151 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_grass_tall_6.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "hbm:blocks/contamination/grass_tall/waste_grass_tall_6" + }, + "ambientocclusion": false +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel.json b/src/main/resources/assets/hbm/models/block/waste_gravel.json index 03e08e27aa..d50591dbd2 100644 --- a/src/main/resources/assets/hbm/models/block/waste_gravel.json +++ b/src/main/resources/assets/hbm/models/block/waste_gravel.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "blocks/gravel" + "all": "hbm:blocks/waste_gravel" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_0.json b/src/main/resources/assets/hbm/models/block/waste_gravel_0.json new file mode 100644 index 0000000000..be4b1c13c2 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_1.json b/src/main/resources/assets/hbm/models/block/waste_gravel_1.json new file mode 100644 index 0000000000..22a9a83164 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_2.json b/src/main/resources/assets/hbm/models/block/waste_gravel_2.json new file mode 100644 index 0000000000..23bcdae5d6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_3.json b/src/main/resources/assets/hbm/models/block/waste_gravel_3.json new file mode 100644 index 0000000000..5b25c063b2 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_4.json b/src/main/resources/assets/hbm/models/block/waste_gravel_4.json new file mode 100644 index 0000000000..dcde65a60c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_5.json b/src/main/resources/assets/hbm/models/block/waste_gravel_5.json new file mode 100644 index 0000000000..6f6ddb9a28 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_gravel_6.json b/src/main/resources/assets/hbm/models/block/waste_gravel_6.json new file mode 100644 index 0000000000..c0a37aeb58 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_gravel_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/gravel/waste_gravel_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium.json b/src/main/resources/assets/hbm/models/block/waste_mycelium.json deleted file mode 100644 index 4c54162bd6..0000000000 --- a/src/main/resources/assets/hbm/models/block/waste_mycelium.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "top": "hbm:blocks/waste_mycelium_top", - "bottom": "minecraft:blocks/dirt", - "side": "hbm:blocks/waste_mycelium_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_0.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_0.json new file mode 100644 index 0000000000..fc458ac6d3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_0.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_0", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_1.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_1.json new file mode 100644 index 0000000000..33a8c486e5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_1.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_1", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_2.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_2.json new file mode 100644 index 0000000000..98618ee84f --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_2.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_2", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_3.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_3.json new file mode 100644 index 0000000000..1e1e53e521 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_3.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_3", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_4.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_4.json new file mode 100644 index 0000000000..18b5e7ad43 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_4.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_4", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_5.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_5.json new file mode 100644 index 0000000000..a753970281 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_5.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_5", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_mycelium_6.json b/src/main/resources/assets/hbm/models/block/waste_mycelium_6.json new file mode 100644 index 0000000000..7018a4aaa7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_mycelium_6.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/mycelium/waste_mycelium_top", + "bottom": "hbm:blocks/contamination/dirt/waste_dirt_6", + "side": "hbm:blocks/contamination/mycelium/waste_mycelium_side_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_0.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_0.json new file mode 100644 index 0000000000..2018e3da31 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_0.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_0", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_0", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_1.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_1.json new file mode 100644 index 0000000000..51859a398b --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_1.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_1", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_1", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_2.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_2.json new file mode 100644 index 0000000000..5891d3112c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_2.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_2", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_2", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_3.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_3.json new file mode 100644 index 0000000000..3113d9c8ae --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_3.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_3", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_3", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_4.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_4.json new file mode 100644 index 0000000000..6cab8216b6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_4.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_4", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_4", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_5.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_5.json new file mode 100644 index 0000000000..891ea39bfd --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_5.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_5", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_5", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_red_sandstone_6.json b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_6.json new file mode 100644 index 0000000000..9c91a23d2d --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_red_sandstone_6.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_top_6", + "bottom": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_bottom_6", + "side": "hbm:blocks/contamination/red_sandstone/waste_red_sandstone_normal_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand.json b/src/main/resources/assets/hbm/models/block/waste_sand.json index 6cafcf4641..0d616a64bb 100644 --- a/src/main/resources/assets/hbm/models/block/waste_sand.json +++ b/src/main/resources/assets/hbm/models/block/waste_sand.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "blocks/sand" + "all": "hbm:blocks/waste_sand" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_0.json b/src/main/resources/assets/hbm/models/block/waste_sand_0.json new file mode 100644 index 0000000000..6d75a7edf9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_1.json b/src/main/resources/assets/hbm/models/block/waste_sand_1.json new file mode 100644 index 0000000000..b3e0720427 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_2.json b/src/main/resources/assets/hbm/models/block/waste_sand_2.json new file mode 100644 index 0000000000..17cdf67724 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_3.json b/src/main/resources/assets/hbm/models/block/waste_sand_3.json new file mode 100644 index 0000000000..a8d7d16190 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_4.json b/src/main/resources/assets/hbm/models/block/waste_sand_4.json new file mode 100644 index 0000000000..1413550601 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_5.json b/src/main/resources/assets/hbm/models/block/waste_sand_5.json new file mode 100644 index 0000000000..2050254d1e --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_6.json b/src/main/resources/assets/hbm/models/block/waste_sand_6.json new file mode 100644 index 0000000000..0e7923abe8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/sand/waste_sand_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red.json b/src/main/resources/assets/hbm/models/block/waste_sand_red.json deleted file mode 100644 index 505c2801a3..0000000000 --- a/src/main/resources/assets/hbm/models/block/waste_sand_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "blocks/red_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_0.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_0.json new file mode 100644 index 0000000000..5aa9f80e80 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_1.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_1.json new file mode 100644 index 0000000000..4e75a1b821 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_2.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_2.json new file mode 100644 index 0000000000..3753201430 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_3.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_3.json new file mode 100644 index 0000000000..4f982f5b71 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_4.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_4.json new file mode 100644 index 0000000000..8853c39b72 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_5.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_5.json new file mode 100644 index 0000000000..1a517269e6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sand_red_6.json b/src/main/resources/assets/hbm/models/block/waste_sand_red_6.json new file mode 100644 index 0000000000..9ad7f48449 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sand_red_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_sand/waste_red_sand_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone.json b/src/main/resources/assets/hbm/models/block/waste_sandstone.json new file mode 100644 index 0000000000..01b253e908 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "bottom": "hbm:blocks/waste_sandstone_bottom", + "top": "hbm:blocks/waste_sandstone_top", + "side": "hbm:blocks/waste_sandstone_normal" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_0.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_0.json new file mode 100644 index 0000000000..e52cb733ac --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_0.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_0", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_0", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_1.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_1.json new file mode 100644 index 0000000000..a1247f85ac --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_1.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_1", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_1", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_2.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_2.json new file mode 100644 index 0000000000..c0a736eb0e --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_2.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_2", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_2", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_3.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_3.json new file mode 100644 index 0000000000..befc1186ee --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_3.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_3", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_3", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_4.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_4.json new file mode 100644 index 0000000000..4b4ffd9bca --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_4.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_4", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_4", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_5.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_5.json new file mode 100644 index 0000000000..5d16d43627 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_5.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_5", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_5", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_sandstone_6.json b/src/main/resources/assets/hbm/models/block/waste_sandstone_6.json new file mode 100644 index 0000000000..79ad7c2cdf --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_sandstone_6.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "top": "hbm:blocks/contamination/sandstone/waste_sandstone_top_6", + "bottom": "hbm:blocks/contamination/sandstone/waste_sandstone_bottom_6", + "side": "hbm:blocks/contamination/sandstone/waste_sandstone_normal_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_0.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_0.json new file mode 100644 index 0000000000..043c5e86f1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_1.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_1.json new file mode 100644 index 0000000000..f35a5a1a67 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_2.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_2.json new file mode 100644 index 0000000000..31a5f026f9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_3.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_3.json new file mode 100644 index 0000000000..cf8b662334 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_4.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_4.json new file mode 100644 index 0000000000..3dd88450f9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_5.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_5.json new file mode 100644 index 0000000000..9f2f128c90 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_terracotta_6.json b/src/main/resources/assets/hbm/models/block/waste_terracotta_6.json new file mode 100644 index 0000000000..4f1a43775d --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_terracotta_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/terracotta/waste_terracotta_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_0.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_0.json new file mode 100644 index 0000000000..f510729431 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_1.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_1.json new file mode 100644 index 0000000000..8b77906bc5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_2.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_2.json new file mode 100644 index 0000000000..ecc9c31fe7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_3.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_3.json new file mode 100644 index 0000000000..5ec416631c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_4.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_4.json new file mode 100644 index 0000000000..1d9fa22719 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_5.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_5.json new file mode 100644 index 0000000000..2fc8c5a95e --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_6.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_6.json new file mode 100644 index 0000000000..6f161cb959 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/trinitite/waste_trinitite_6" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red.json deleted file mode 100644 index c97471361a..0000000000 --- a/src/main/resources/assets/hbm/models/block/waste_trinitite_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "hbm:blocks/waste_trinitite_red" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_0.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_0.json new file mode 100644 index 0000000000..24465110f9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_0" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_1.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_1.json new file mode 100644 index 0000000000..166825f490 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_1" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_2.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_2.json new file mode 100644 index 0000000000..a77fd757be --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_2" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_3.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_3.json new file mode 100644 index 0000000000..1fe68fd133 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_3" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_4.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_4.json new file mode 100644 index 0000000000..2d60faa6d0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_4" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_5.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_5.json new file mode 100644 index 0000000000..9fb45eb065 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_5.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_5" + } +} diff --git a/src/main/resources/assets/hbm/models/block/waste_trinitite_red_6.json b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_6.json new file mode 100644 index 0000000000..28e2168268 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/waste_trinitite_red_6.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/contamination/red_trinitite/waste_trinitite_red_6" + } +} diff --git a/src/main/resources/assets/hbm/models/blocks/conveyor.obj b/src/main/resources/assets/hbm/models/blocks/conveyor.obj deleted file mode 100644 index d85e17f0fb..0000000000 --- a/src/main/resources/assets/hbm/models/blocks/conveyor.obj +++ /dev/null @@ -1,50 +0,0 @@ -# Made in Blockbench 4.9.3 -mtllib conveyor.mtl - -o conveyor -v 1 0.25 1 -v 1 0.25 0 -v 1 0 1 -v 1 0 0 -v 0 0.25 1 -v 0 0.25 0 -v 0 0 1 -v 0 0 0 -vt 1 0.25 -vt 0 0.25 -vt 0 0 -vt 1 0 -vt 1 0 -vt 1 0.25 -vt 0 0.25 -vt 0 0 -vt 0 0 -vt 1 0 -vt 1 1 -vt 0 1 -vt 1 0 -vt 1 1 -vt 0 1 -vt 0 0 -vt 1 0.75 -vt 1 1 -vt 0 1 -vt 0 0.75 -vt 1 1 -vt 0 1 -vt 0 0.75 -vt 1 0.75 -vn 1 0 0 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -vn 0 0 1 -vn 0 0 -1 -usemtl m_bb126d08-7821-6e47-8032-b411bedee09a -f 2/1/1 1/2/1 3/3/1 4/4/1 -f 7/5/2 5/6/2 6/7/2 8/8/2 -usemtl m_faf1884d-366c-ce32-3278-6fc04005967d -f 5/9/3 1/10/3 2/11/3 6/12/3 -f 4/13/4 3/14/4 7/15/4 8/16/4 -f 3/17/5 1/18/5 5/19/5 7/20/5 -f 6/21/6 2/22/6 4/23/6 8/24/6 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/balefirecrashed.obj b/src/main/resources/assets/hbm/models/bombs/balefirecrashed.obj similarity index 100% rename from src/main/resources/assets/hbm/models/balefirecrashed.obj rename to src/main/resources/assets/hbm/models/bombs/balefirecrashed.obj diff --git a/src/main/resources/assets/hbm/models/bombgeneric.obj b/src/main/resources/assets/hbm/models/bombs/bombgeneric.obj similarity index 100% rename from src/main/resources/assets/hbm/models/bombgeneric.obj rename to src/main/resources/assets/hbm/models/bombs/bombgeneric.obj diff --git a/src/main/resources/assets/hbm/models/fatman.obj b/src/main/resources/assets/hbm/models/bombs/fatman.obj similarity index 100% rename from src/main/resources/assets/hbm/models/fatman.obj rename to src/main/resources/assets/hbm/models/bombs/fatman.obj diff --git a/src/main/resources/assets/hbm/models/fleija.obj b/src/main/resources/assets/hbm/models/bombs/fleija.obj similarity index 100% rename from src/main/resources/assets/hbm/models/fleija.obj rename to src/main/resources/assets/hbm/models/bombs/fleija.obj diff --git a/src/main/resources/assets/hbm/models/bombs/gadget.obj b/src/main/resources/assets/hbm/models/bombs/gadget.obj new file mode 100644 index 0000000000..e2e007e50d --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/gadget.obj @@ -0,0 +1,10019 @@ +# Blender v2.79 (sub 0) OBJ File: 'gadget.blend' +# www.blender.org +o Wires +v -1.174005 1.942922 -0.549430 +v -1.183310 1.913090 -0.549430 +v -1.182231 1.912753 -0.518200 +v -1.172926 1.942586 -0.518200 +v -1.196076 1.821231 -0.548875 +v -1.202886 1.790732 -0.548875 +v -1.202886 1.790732 -0.517625 +v -1.196076 1.821231 -0.517625 +v -1.238634 1.797799 -0.528074 +v -1.233117 1.828558 -0.528074 +v -1.206878 1.823852 -0.511767 +v -1.212395 1.793093 -0.511767 +v -1.217782 1.698130 -0.548875 +v -1.224592 1.667631 -0.548875 +v -1.224592 1.667631 -0.517625 +v -1.217782 1.698130 -0.517625 +v -1.259217 1.671675 -0.533248 +v -1.257805 1.702893 -0.533248 +v -1.235729 1.701894 -0.511153 +v -1.237141 1.670676 -0.511153 +v -1.239488 1.575029 -0.548875 +v -1.246298 1.544530 -0.548875 +v -1.246298 1.544530 -0.517625 +v -1.239488 1.575029 -0.517625 +v -1.279112 1.546412 -0.529872 +v -1.280785 1.577617 -0.529872 +v -1.255606 1.578968 -0.511412 +v -1.253933 1.547762 -0.511412 +v -1.216391 1.945193 -0.663251 +v -1.188182 1.958640 -0.663251 +v -1.181072 1.943725 -0.636726 +v -1.209281 1.930278 -0.636726 +v -1.241104 1.815372 -0.659276 +v -1.217851 1.836249 -0.659276 +v -1.203790 1.820588 -0.636177 +v -1.227042 1.799710 -0.636177 +v -1.239636 1.660727 -0.666553 +v -1.261933 1.682622 -0.666553 +v -1.253403 1.691308 -0.637772 +v -1.231106 1.669413 -0.637772 +v -1.239488 1.575029 -0.673875 +v -1.246298 1.544530 -0.673875 +v -1.246298 1.544530 -0.642625 +v -1.239488 1.575029 -0.642625 +v -1.256174 1.540192 -0.672388 +v -1.280892 1.559312 -0.672388 +v -1.279152 1.561561 -0.641268 +v -1.254434 1.542440 -0.641268 +v -1.174370 1.944332 -0.798875 +v -1.181180 1.913833 -0.798875 +v -1.181180 1.913833 -0.767625 +v -1.174370 1.944332 -0.767625 +v -1.215594 1.947240 -0.785575 +v -1.186501 1.958649 -0.785575 +v -1.179327 1.940356 -0.761275 +v -1.208420 1.928947 -0.761275 +v -1.196076 1.821231 -0.798875 +v -1.202886 1.790732 -0.798875 +v -1.202886 1.790732 -0.767625 +v -1.196076 1.821231 -0.767625 +v -1.240732 1.814322 -0.788906 +v -1.217902 1.835661 -0.788906 +v -1.207178 1.824188 -0.761889 +v -1.230008 1.802849 -0.761889 +v -1.242324 1.660806 -0.790220 +v -1.262535 1.684641 -0.790220 +v -1.251858 1.693694 -0.762281 +v -1.231647 1.669860 -0.762281 +v -1.239488 1.575029 -0.798875 +v -1.246298 1.544530 -0.798875 +v -1.246298 1.544530 -0.767625 +v -1.239488 1.575029 -0.767625 +v -1.252976 1.544934 -0.802555 +v -1.277033 1.564880 -0.802555 +v -1.282493 1.558295 -0.772498 +v -1.258435 1.538350 -0.772498 +v -1.174370 1.944332 -0.923875 +v -1.181180 1.913833 -0.923875 +v -1.181180 1.913833 -0.892625 +v -1.174370 1.944332 -0.892625 +v -1.212353 1.945965 -0.921560 +v -1.181977 1.953300 -0.921560 +v -1.180960 1.949093 -0.890611 +v -1.211337 1.941757 -0.890611 +v -1.196076 1.821231 -0.923875 +v -1.202886 1.790732 -0.923875 +v -1.202886 1.790732 -0.892625 +v -1.196076 1.821231 -0.892625 +v -1.239209 1.806511 -0.919429 +v -1.222351 1.832825 -0.919429 +v -1.215715 1.828573 -0.889189 +v -1.232572 1.802260 -0.889189 +v -1.217782 1.698130 -0.923875 +v -1.224592 1.667631 -0.923875 +v -1.224592 1.667631 -0.892625 +v -1.217782 1.698130 -0.892625 +v -1.228890 1.670839 -0.929152 +v -1.253067 1.690639 -0.929152 +v -1.261768 1.680014 -0.901081 +v -1.237591 1.660214 -0.901081 +v -1.239488 1.575029 -0.923875 +v -1.246298 1.544530 -0.923875 +v -1.246298 1.544530 -0.892625 +v -1.239488 1.575029 -0.892625 +v -1.259141 1.538664 -0.919660 +v -1.282409 1.559525 -0.919660 +v -1.277393 1.565119 -0.889326 +v -1.254125 1.544258 -0.889326 +v -1.174370 1.944332 -1.048875 +v -1.181180 1.913833 -1.048875 +v -1.181180 1.913833 -1.017625 +v -1.174370 1.944332 -1.017625 +v -1.209377 1.949713 -1.046222 +v -1.178154 1.951008 -1.046222 +v -1.177951 1.946095 -1.015361 +v -1.209174 1.944801 -1.015361 +v -1.196076 1.821231 -1.048875 +v -1.202886 1.790732 -1.048875 +v -1.202886 1.790732 -1.017625 +v -1.196076 1.821231 -1.017625 +v -1.217782 1.698130 -1.048875 +v -1.224592 1.667631 -1.048875 +v -1.224592 1.667631 -1.017625 +v -1.217782 1.698130 -1.017625 +v -1.239488 1.575029 -1.048875 +v -1.246298 1.544530 -1.048875 +v -1.246298 1.544530 -1.017625 +v -1.239488 1.575029 -1.017625 +v -1.174370 1.944332 -1.173875 +v -1.181180 1.913833 -1.173875 +v -1.181180 1.913833 -1.142625 +v -1.174370 1.944332 -1.142625 +v -1.196076 1.821231 -1.173875 +v -1.202886 1.790732 -1.173875 +v -1.202886 1.790732 -1.142625 +v -1.196076 1.821231 -1.142625 +v -1.224011 1.796775 -1.180323 +v -1.203896 1.820690 -1.180323 +v -1.221566 1.835552 -1.159265 +v -1.241681 1.811637 -1.159265 +v -1.217782 1.698130 -1.173875 +v -1.224592 1.667631 -1.173875 +v -1.224592 1.667631 -1.142625 +v -1.217782 1.698130 -1.142625 +v -1.239488 1.575029 -1.173875 +v -1.246298 1.544530 -1.173875 +v -1.246298 1.544530 -1.142625 +v -1.239488 1.575029 -1.142625 +v -1.256882 1.542336 -1.175459 +v -1.278993 1.564419 -1.175459 +v -1.281359 1.562049 -1.144389 +v -1.259249 1.539966 -1.144389 +v 0.362842 2.375147 0.326274 +v 0.386903 2.373444 0.306407 +v 0.370036 2.388315 0.284706 +v 0.345975 2.390018 0.304574 +v 0.384077 2.432766 0.344619 +v 0.405915 2.423475 0.324288 +v 0.384420 2.422550 0.301623 +v 0.362582 2.431840 0.321954 +v -0.918945 1.110495 -0.342736 +v -0.931564 1.094373 -0.319127 +v -0.936371 1.121008 -0.303506 +v -0.923751 1.137131 -0.327115 +v -0.379805 2.444080 -0.309020 +v -0.367132 2.433805 -0.335673 +v -0.388692 2.411236 -0.337222 +v -0.401364 2.421511 -0.310569 +v 0.402196 2.434005 -0.311901 +v 0.396841 2.423141 -0.340708 +v 0.366301 2.421311 -0.334341 +v 0.371656 2.432175 -0.305534 +v -0.378623 0.564951 0.303071 +v -0.371040 0.557246 0.332392 +v -0.389874 0.579733 0.343171 +v -0.397457 0.587438 0.313851 +v 0.393651 0.572855 0.303131 +v 0.404220 0.573220 0.332537 +v 0.374846 0.571829 0.343111 +v 0.364277 0.571465 0.313705 +v 0.390783 0.579489 -0.342983 +v 0.405056 0.566658 -0.318321 +v 0.377714 0.565195 -0.303259 +v 0.363441 0.578026 -0.327921 +v 0.701539 1.282990 0.756744 +v 0.694797 1.253772 0.747945 +v 0.701307 1.261198 0.718296 +v 0.708049 1.290416 0.727095 +v -0.378277 2.436777 0.342343 +v -0.368708 2.439423 0.312712 +v -0.390220 2.418539 0.303900 +v -0.399789 2.415894 0.333531 +v 0.440212 2.090464 0.757640 +v 0.454304 2.095352 0.730180 +v 0.426795 2.102869 0.717400 +v 0.412703 2.097980 0.744860 +v 0.712255 1.254904 -0.728834 +v 0.684271 1.258951 -0.742139 +v 0.690591 1.289284 -0.746206 +v 0.718576 1.285237 -0.732900 +v 0.019550 0.757477 0.728517 +v 0.010032 0.767352 0.756596 +v -0.019550 0.767483 0.746523 +v -0.010032 0.757608 0.718444 +v 0.011101 0.775618 -0.751392 +v 0.014829 0.746439 -0.740846 +v -0.011101 0.749342 -0.723648 +v -0.014829 0.778521 -0.734194 +v -0.692788 1.289504 -0.748037 +v -0.694407 1.258821 -0.753733 +v -0.710059 1.254684 -0.727003 +v -0.708439 1.285368 -0.721307 +v -0.933840 1.870228 0.339042 +v -0.923487 1.899704 0.338352 +v -0.921475 1.898269 0.307200 +v -0.931829 1.868792 0.307890 +v 0.451844 2.105888 -0.729343 +v 0.445829 2.082972 -0.749720 +v 0.415163 2.087443 -0.745697 +v 0.421178 2.110360 -0.725320 +v -0.423559 2.116383 -0.738324 +v -0.421411 2.089866 -0.754719 +v -0.443448 2.076950 -0.736716 +v -0.445596 2.103467 -0.720321 +v -0.377169 0.573822 -0.344001 +v -0.369308 0.556547 -0.319174 +v -0.391328 0.570862 -0.302241 +v -0.399189 0.588137 -0.327067 +v 0.935823 1.863839 -0.325374 +v 0.912476 1.879881 -0.338572 +v 0.919493 1.904657 -0.320868 +v 0.942839 1.888617 -0.307670 +v 0.922768 1.100037 0.337866 +v 0.918963 1.103356 0.307026 +v 0.932547 1.131467 0.308377 +v 0.936352 1.128147 0.339216 +v -0.925593 1.094452 0.328629 +v -0.931403 1.120862 0.344290 +v -0.929723 1.137052 0.317614 +v -0.923912 1.110641 0.301952 +v 0.943630 1.125342 -0.311239 +v 0.933693 1.095992 -0.315285 +v 0.911686 1.106161 -0.335003 +v 0.921622 1.135511 -0.330957 +v -0.425439 2.093643 0.757870 +v -0.422154 2.115550 0.735828 +v -0.441567 2.099689 0.717170 +v -0.444853 2.077783 0.739212 +v 0.942297 1.870918 0.332933 +v 0.937698 1.880986 0.303709 +v 0.913019 1.897579 0.313309 +v 0.917617 1.887511 0.342533 +v -1.156318 1.937406 -0.550100 +v -1.165622 1.907573 -0.550100 +v -1.164544 1.907237 -0.518870 +v -1.155239 1.937070 -0.518870 +v -1.178721 1.817356 -0.548875 +v -1.185531 1.786857 -0.548875 +v -1.185531 1.786857 -0.517625 +v -1.178721 1.817356 -0.517625 +v -1.200428 1.694255 -0.548875 +v -1.207237 1.663756 -0.548875 +v -1.207237 1.663756 -0.517625 +v -1.200428 1.694255 -0.517625 +v -1.222133 1.571154 -0.548875 +v -1.228943 1.540655 -0.548875 +v -1.228943 1.540655 -0.517625 +v -1.222133 1.571154 -0.517625 +v -1.157016 1.940457 -0.673875 +v -1.163825 1.909958 -0.673875 +v -1.163825 1.909958 -0.642625 +v -1.157016 1.940457 -0.642625 +v -1.178721 1.817356 -0.673875 +v -1.185531 1.786857 -0.673875 +v -1.185531 1.786857 -0.642625 +v -1.178721 1.817356 -0.642625 +v -1.200428 1.694255 -0.673875 +v -1.207237 1.663756 -0.673875 +v -1.207237 1.663756 -0.642625 +v -1.200428 1.694255 -0.642625 +v -1.222133 1.571154 -0.673875 +v -1.228943 1.540655 -0.673875 +v -1.228943 1.540655 -0.642625 +v -1.222133 1.571154 -0.642625 +v -1.157016 1.940457 -0.798875 +v -1.163825 1.909958 -0.798875 +v -1.163825 1.909958 -0.767625 +v -1.157016 1.940457 -0.767625 +v -1.178721 1.817356 -0.798875 +v -1.185531 1.786857 -0.798875 +v -1.185531 1.786857 -0.767625 +v -1.178721 1.817356 -0.767625 +v -1.200428 1.694255 -0.798875 +v -1.207237 1.663756 -0.798875 +v -1.207237 1.663756 -0.767625 +v -1.200428 1.694255 -0.767625 +v -1.222133 1.571154 -0.798875 +v -1.228943 1.540655 -0.798875 +v -1.228943 1.540655 -0.767625 +v -1.222133 1.571154 -0.767625 +v -1.157016 1.940457 -0.923875 +v -1.163825 1.909958 -0.923875 +v -1.163825 1.909958 -0.892625 +v -1.157016 1.940457 -0.892625 +v -1.178721 1.817356 -0.923875 +v -1.185531 1.786857 -0.923875 +v -1.185531 1.786857 -0.892625 +v -1.178721 1.817356 -0.892625 +v -1.200428 1.694255 -0.923875 +v -1.207237 1.663756 -0.923875 +v -1.207237 1.663756 -0.892625 +v -1.200428 1.694255 -0.892625 +v -1.222133 1.571154 -0.923875 +v -1.228943 1.540655 -0.923875 +v -1.228943 1.540655 -0.892625 +v -1.222133 1.571154 -0.892625 +v -1.157016 1.940457 -1.048875 +v -1.163825 1.909958 -1.048875 +v -1.163825 1.909958 -1.017625 +v -1.157016 1.940457 -1.017625 +v -1.178721 1.817356 -1.048875 +v -1.185531 1.786857 -1.048875 +v -1.185531 1.786857 -1.017625 +v -1.178721 1.817356 -1.017625 +v -1.200428 1.694255 -1.048875 +v -1.207237 1.663756 -1.048875 +v -1.207237 1.663756 -1.017625 +v -1.200428 1.694255 -1.017625 +v -1.222133 1.571154 -1.048875 +v -1.228943 1.540655 -1.048875 +v -1.228943 1.540655 -1.017625 +v -1.222133 1.571154 -1.017625 +v -1.157016 1.940457 -1.173875 +v -1.163825 1.909958 -1.173875 +v -1.163825 1.909958 -1.142625 +v -1.157016 1.940457 -1.142625 +v -1.178721 1.817356 -1.173875 +v -1.185531 1.786857 -1.173875 +v -1.185531 1.786857 -1.142625 +v -1.178721 1.817356 -1.142625 +v -1.200428 1.694255 -1.173875 +v -1.207237 1.663756 -1.173875 +v -1.207237 1.663756 -1.142625 +v -1.200428 1.694255 -1.142625 +v -1.222133 1.571154 -1.173875 +v -1.228943 1.540655 -1.173875 +v -1.228943 1.540655 -1.142625 +v -1.222133 1.571154 -1.142625 +v 0.017136 0.743499 0.724780 +v 0.004522 0.734500 0.751918 +v -0.022795 0.747049 0.743382 +v -0.010181 0.756049 0.716244 +v -0.932735 1.892860 -0.303414 +v -0.921417 1.904215 -0.330238 +v -0.922581 1.875637 -0.342828 +v -0.933899 1.864282 -0.316004 +v -0.871601 1.130094 -0.328227 +v -0.874083 1.115559 -0.300674 +v -0.888143 1.140746 -0.288653 +v -0.885661 1.155281 -0.316206 +v -0.354684 2.391416 -0.290709 +v -0.345393 2.386196 -0.320086 +v -0.372583 2.372046 -0.326171 +v -0.381874 2.377266 -0.296794 +v 0.383366 2.379659 -0.294388 +v 0.378403 2.372027 -0.324283 +v 0.349512 2.383803 -0.322492 +v 0.354475 2.391435 -0.292597 +v -0.359405 0.609935 0.285871 +v -0.343644 0.613086 0.312670 +v -0.367861 0.628427 0.325109 +v -0.383623 0.625276 0.298310 +v 0.376633 0.615788 0.286180 +v 0.384590 0.629038 0.313341 +v 0.356245 0.622573 0.324799 +v 0.348287 0.609324 0.297639 +v 0.372838 0.627684 -0.327806 +v 0.386201 0.623987 -0.299800 +v 0.360040 0.610678 -0.289074 +v 0.346677 0.614375 -0.317080 +v 0.657378 1.298058 0.712639 +v 0.654377 1.267693 0.705891 +v 0.678131 1.269832 0.685699 +v 0.681132 1.300197 0.692447 +v -0.350919 2.380516 0.323522 +v -0.347705 2.392903 0.295013 +v -0.376347 2.382946 0.287458 +v -0.379561 2.370559 0.315968 +v 0.415770 2.049235 0.711656 +v 0.433448 2.064315 0.690760 +v 0.410693 2.085341 0.686682 +v 0.393014 2.070262 0.707578 +v 0.675740 1.267926 -0.689162 +v 0.653419 1.269644 -0.710965 +v 0.659769 1.299965 -0.715076 +v 0.682090 1.298246 -0.693273 +v 0.020709 0.791764 0.692041 +v 0.012137 0.813454 0.712841 +v -0.017903 0.807859 0.706297 +v -0.009332 0.786169 0.685497 +v 0.012411 0.812776 -0.716227 +v 0.020553 0.791856 -0.694488 +v -0.009605 0.786847 -0.688011 +v -0.017748 0.807768 -0.709750 +v -0.658659 1.301218 -0.714382 +v -0.650449 1.271109 -0.712762 +v -0.671239 1.266673 -0.689856 +v -0.679449 1.296781 -0.691476 +v -0.880574 1.849442 0.320662 +v -0.869416 1.878621 0.319862 +v -0.879170 1.881541 0.290318 +v -0.890328 1.852362 0.291118 +v 0.430095 2.071926 -0.688614 +v 0.424389 2.049967 -0.710104 +v 0.396367 2.062652 -0.715624 +v 0.402074 2.084610 -0.694134 +v -0.396101 2.083585 -0.697934 +v -0.396827 2.059312 -0.717603 +v -0.424750 2.050992 -0.706304 +v -0.424023 2.075265 -0.686635 +v -0.355627 0.622050 -0.328835 +v -0.344899 0.609076 -0.302507 +v -0.371639 0.616312 -0.288045 +v -0.382368 0.629286 -0.314372 +v 0.890566 1.844954 -0.310510 +v 0.875991 1.865047 -0.329496 +v 0.874790 1.886029 -0.306370 +v 0.889365 1.865937 -0.287384 +v 0.871530 1.122561 0.319584 +v 0.881710 1.119498 0.290198 +v 0.893825 1.148279 0.291396 +v 0.883646 1.151341 0.320782 +v -0.870180 1.116141 0.310253 +v -0.875363 1.142718 0.325854 +v -0.889564 1.154698 0.300727 +v -0.884381 1.128121 0.285126 +v 0.892881 1.146892 -0.292548 +v 0.879864 1.118546 -0.294453 +v 0.872474 1.123948 -0.324332 +v 0.885491 1.152294 -0.322427 +v -0.396307 2.059003 0.714012 +v -0.396346 2.083800 0.694994 +v -0.424543 2.075575 0.684326 +v -0.424505 2.050777 0.703344 +v 0.888492 1.845253 0.312187 +v 0.891987 1.861657 0.285820 +v 0.876863 1.885731 0.298793 +v 0.873368 1.869327 0.325160 +v -0.882969 1.873529 -0.288091 +v -0.870514 1.884555 -0.314546 +v -0.876775 1.857454 -0.328789 +v -0.889231 1.846428 -0.302334 +v -0.699444 1.251063 0.744007 +v -0.694129 1.278865 0.757249 +v -0.703402 1.293125 0.731034 +v -0.708717 1.265323 0.717791 +v -0.658734 1.263845 0.700877 +v -0.653428 1.291646 0.714126 +v -0.676775 1.304045 0.697461 +v -0.682081 1.276244 0.684212 +v -1.250682 1.800300 -0.504844 +v -1.244312 1.830791 -0.507355 +v -1.213916 1.824775 -0.503297 +v -1.220286 1.794284 -0.500787 +v -0.982266 1.884840 0.312786 +v -0.974819 1.915070 0.310093 +v -0.951790 1.907635 0.290320 +v -0.959237 1.877405 0.293013 +v -1.167644 1.905013 -0.411622 +v -1.147809 1.916676 -0.432767 +v -1.136946 1.887927 -0.438433 +v -1.156782 1.876265 -0.417288 +v -1.257349 1.835502 -0.632977 +v -1.231683 1.852062 -0.639583 +v -1.214005 1.829928 -0.626387 +v -1.239671 1.813368 -0.619780 +v -1.269599 1.671725 -0.522009 +v -1.273585 1.701356 -0.512916 +v -1.243640 1.702671 -0.504076 +v -1.239654 1.673040 -0.513170 +v -0.968102 1.101122 0.300168 +v -0.972912 1.126964 0.317068 +v -0.948098 1.140378 0.303620 +v -0.943288 1.114537 0.286720 +v -1.267418 1.634185 -0.650618 +v -1.296099 1.645030 -0.644588 +v -1.286089 1.656278 -0.617205 +v -1.257408 1.645433 -0.623235 +v -1.219398 1.450479 -0.568415 +v -1.246450 1.444145 -0.554110 +v -1.237709 1.461724 -0.529796 +v -1.210657 1.468058 -0.544101 +v -1.225639 1.945001 -0.500581 +v -1.202324 1.964765 -0.507089 +v -1.181590 1.941875 -0.502320 +v -1.204905 1.922112 -0.495812 +v -0.739907 2.136739 0.580774 +v -0.720859 2.154554 0.563559 +v -0.706554 2.128916 0.552854 +v -0.725602 2.111100 0.570069 +v -0.475138 2.112171 0.756943 +v -0.463366 2.130661 0.734670 +v -0.462442 2.106389 0.715009 +v -0.474215 2.087899 0.737281 +v -1.291063 1.545456 -0.511536 +v -1.294220 1.576348 -0.508029 +v -1.263562 1.578856 -0.502518 +v -1.260405 1.547964 -0.506026 +v -0.948442 1.317475 0.575246 +v -0.950512 1.347329 0.584250 +v -0.924351 1.353901 0.568470 +v -0.922282 1.324048 0.559466 +v -0.756633 1.265295 0.736868 +v -0.754544 1.293962 0.749129 +v -0.740023 1.303943 0.723320 +v -0.742113 1.275275 0.711059 +v -1.225876 1.970677 -0.643945 +v -1.196034 1.974689 -0.652306 +v -1.187520 1.951665 -0.632966 +v -1.217363 1.947655 -0.624605 +v -0.708222 2.312728 0.031637 +v -0.684215 2.309114 0.011961 +v -0.679826 2.280078 0.022649 +v -0.703834 2.283692 0.042325 +v -0.411357 2.455568 0.318103 +v -0.391060 2.450723 0.294841 +v -0.394931 2.419864 0.297890 +v -0.415228 2.424709 0.321152 +v -1.228111 1.987383 -0.749764 +v -1.198901 1.987463 -0.760869 +v -1.191670 1.963609 -0.742021 +v -1.220880 1.963529 -0.730916 +v -0.277296 2.456410 -0.010313 +v -0.260202 2.446807 -0.034647 +v -0.260223 2.417734 -0.023188 +v -0.277317 2.427338 0.001146 +v 0.382950 2.477947 0.302954 +v 0.401710 2.466248 0.280868 +v 0.384206 2.440387 0.279700 +v 0.365446 2.452085 0.301786 +v -1.273125 1.853628 -0.757993 +v -1.244658 1.862154 -0.767662 +v -1.231839 1.845921 -0.744237 +v -1.260306 1.837394 -0.734568 +v -1.160286 2.014342 -0.651530 +v -1.136128 2.009203 -0.670676 +v -1.128525 1.983731 -0.654246 +v -1.152682 1.988870 -0.635100 +v 0.080443 2.494827 0.551902 +v 0.096290 2.488848 0.525641 +v 0.084872 2.459760 0.525373 +v 0.069024 2.465739 0.551635 +v 0.430137 2.160579 0.735670 +v 0.443491 2.155233 0.707927 +v 0.418740 2.138223 0.699291 +v 0.405385 2.143569 0.727033 +v -0.689883 2.292951 -0.139719 +v -0.666622 2.287297 -0.159807 +v -0.663706 2.258391 -0.148296 +v -0.686967 2.264045 -0.128207 +v -0.300987 2.458956 0.229682 +v -0.279693 2.452532 0.207731 +v -0.279809 2.422510 0.216403 +v -0.301103 2.428934 0.238355 +v -1.277962 1.837572 -0.904344 +v -1.249453 1.847567 -0.912339 +v -1.238062 1.836657 -0.885362 +v -1.266571 1.826662 -0.877367 +v -1.141885 2.033298 -0.805968 +v -1.119419 2.022224 -0.824656 +v -1.112888 2.000027 -0.803651 +v -1.135353 2.011101 -0.784963 +v -0.418521 2.457716 -0.345257 +v -0.399861 2.444430 -0.366514 +v -0.405683 2.416358 -0.354078 +v -0.424342 2.429645 -0.332821 +v -1.270686 1.522317 -0.670676 +v -1.301203 1.527655 -0.666583 +v -1.295299 1.539801 -0.638402 +v -1.264781 1.534463 -0.642495 +v -0.780971 0.763280 -0.028970 +v -0.806318 0.752764 -0.014020 +v -0.804512 0.776759 0.005919 +v -0.779165 0.787275 -0.009031 +v -0.406400 0.557614 0.294573 +v -0.420413 0.542511 0.318069 +v -0.425938 0.569777 0.332302 +v -0.411926 0.584881 0.308805 +v -0.344519 2.443688 -0.494384 +v -0.331553 2.418868 -0.508254 +v -0.339349 2.401105 -0.483754 +v -0.352316 2.425925 -0.469884 +v 0.733007 2.298563 0.154754 +v 0.732383 2.276609 0.132523 +v 0.709714 2.261625 0.147956 +v 0.710338 2.283579 0.170187 +v 0.954970 1.941841 0.330687 +v 0.946309 1.933336 0.301891 +v 0.916809 1.930163 0.311700 +v 0.925469 1.938668 0.340496 +v -1.218629 1.988256 -0.914058 +v -1.189564 1.977734 -0.918651 +v -1.189073 1.966384 -0.889539 +v -1.218138 1.976906 -0.884946 +v 0.177467 2.442102 -0.227170 +v 0.184429 2.416794 -0.244128 +v 0.169763 2.398763 -0.223239 +v 0.162800 2.424071 -0.206282 +v -1.262764 1.537974 -0.805700 +v -1.293445 1.540689 -0.810977 +v -1.299228 1.533265 -0.781178 +v -1.268546 1.530550 -0.775901 +v -1.209338 1.460512 -0.817654 +v -1.227308 1.436931 -0.827533 +v -1.233191 1.428994 -0.797885 +v -1.215221 1.452575 -0.788007 +v -0.408007 0.558527 -0.352639 +v -0.414998 0.536402 -0.331706 +v -0.416323 0.558080 -0.309236 +v -0.409331 0.580204 -0.330169 +v -0.619798 0.742553 -0.370855 +v -0.640000 0.728000 -0.351969 +v -0.629834 0.745133 -0.327893 +v -0.609632 0.759685 -0.346778 +v -1.230728 1.458044 -0.706418 +v -1.257711 1.452871 -0.691528 +v -1.246891 1.468263 -0.666576 +v -1.219908 1.473435 -0.681466 +v -1.251448 1.654751 -0.784951 +v -1.278645 1.668818 -0.778707 +v -1.267097 1.679091 -0.751547 +v -1.239899 1.665023 -0.757791 +v -0.464045 2.119620 -0.761644 +v -0.457127 2.092153 -0.774844 +v -0.468140 2.077278 -0.749664 +v -0.475058 2.104745 -0.736464 +v -1.117438 2.044700 -0.999156 +v -1.103125 2.018915 -1.009494 +v -1.108725 2.004847 -0.982157 +v -1.123038 2.030631 -0.971820 +v -1.208328 1.975719 -1.041368 +v -1.179732 1.963533 -1.044577 +v -1.180409 1.954099 -1.014793 +v -1.209006 1.966285 -1.011583 +v 0.370087 2.477650 -0.329685 +v 0.371356 2.459130 -0.354824 +v 0.353789 2.437906 -0.340075 +v 0.352520 2.456427 -0.314936 +v -0.132913 2.490284 -0.521946 +v -0.120696 2.470372 -0.542701 +v -0.124076 2.446984 -0.522253 +v -0.136292 2.466897 -0.501497 +v -1.147826 2.037695 -0.938888 +v -1.124978 2.023528 -0.954821 +v -1.120232 2.004141 -0.930775 +v -1.143079 2.018309 -0.914842 +v -1.246547 1.833347 -1.032266 +v -1.216374 1.838247 -1.038758 +v -1.208372 1.824850 -1.011683 +v -1.238545 1.819950 -1.005191 +v 0.428442 2.141779 -0.767958 +v 0.426250 2.114627 -0.783271 +v 0.404111 2.105176 -0.763344 +v 0.406303 2.132328 -0.748031 +v 0.164884 2.170792 -0.897882 +v 0.168723 2.142047 -0.909527 +v 0.159689 2.129786 -0.882239 +v 0.155849 2.158530 -0.870595 +v -1.150275 2.044380 -1.142511 +v -1.135978 2.018185 -1.151785 +v -1.138413 2.006614 -1.122859 +v -1.152710 2.032808 -1.113584 +v -1.227184 1.966674 -1.172049 +v -1.196179 1.963353 -1.174106 +v -1.194762 1.957582 -1.143427 +v -1.225767 1.960901 -1.141370 +v -0.081033 0.550667 0.561118 +v -0.099551 0.530750 0.576511 +v -0.122591 0.551858 0.576106 +v -0.104073 0.571775 0.560713 +v -0.347769 0.595844 -0.578732 +v -0.369951 0.574112 -0.575229 +v -0.384405 0.592243 -0.554278 +v -0.362223 0.613974 -0.557781 +v -1.209457 1.466930 -0.928891 +v -1.232608 1.446149 -0.925946 +v -1.231919 1.449780 -0.894915 +v -1.208768 1.470561 -0.897860 +v -1.270576 1.532740 -0.915894 +v -1.301602 1.533237 -0.912197 +v -1.297879 1.535439 -0.881248 +v -1.266853 1.534943 -0.884945 +v 0.389232 0.555409 0.297459 +v 0.391752 0.529902 0.315335 +v 0.364631 0.536924 0.329180 +v 0.362111 0.562432 0.311304 +v -0.207880 0.569246 -0.561510 +v -0.220553 0.540752 -0.563527 +v -0.238641 0.547050 -0.538834 +v -0.225968 0.575543 -0.536817 +v -1.211726 1.465680 -0.963766 +v -1.237311 1.449687 -0.971904 +v -1.245983 1.448300 -0.941913 +v -1.220399 1.464293 -0.933775 +v -1.253845 1.642335 -0.948006 +v -1.283614 1.650151 -0.953414 +v -1.290991 1.642364 -0.924063 +v -1.261222 1.634548 -0.918655 +v 0.943516 1.871226 -0.359015 +v 0.914742 1.883286 -0.357229 +v 0.926923 1.911920 -0.354350 +v 0.955696 1.899860 -0.356136 +v 0.889329 1.870978 -0.569970 +v 0.863983 1.882787 -0.556015 +v 0.874178 1.911718 -0.561980 +v 0.899523 1.899910 -0.575935 +v 0.495434 1.861500 -0.981034 +v 0.480957 1.873584 -0.956116 +v 0.486243 1.902391 -0.967014 +v 0.500721 1.890307 -0.991932 +v -0.834393 1.814548 -1.283235 +v -0.836801 1.826961 -1.254658 +v -0.835730 1.855639 -1.267025 +v -0.833322 1.843226 -1.295602 +v -1.148200 1.825860 -1.266218 +v -1.138704 1.838350 -1.239193 +v -1.145305 1.866894 -1.250066 +v -1.154801 1.854404 -1.277091 +v -1.234792 1.805403 -1.194849 +v -1.212062 1.823185 -1.182861 +v -1.232931 1.845551 -1.176468 +v -1.255660 1.827768 -1.188457 +v 0.715545 1.248159 -0.776684 +v 0.686409 1.254946 -0.767652 +v 0.692966 1.285450 -0.769420 +v 0.722102 1.278663 -0.778453 +v 0.546517 1.291902 -0.987323 +v 0.530960 1.295632 -0.960479 +v 0.538480 1.325963 -0.960335 +v 0.554037 1.322233 -0.987180 +v -0.873200 1.639222 -1.281797 +v -0.876222 1.639836 -1.250700 +v -0.868384 1.670086 -1.250535 +v -0.865361 1.669473 -1.281632 +v -1.186465 1.724763 -1.278934 +v -1.168041 1.720581 -1.254042 +v -1.162655 1.751340 -1.252860 +v -1.181080 1.755523 -1.277752 +v -1.252684 1.708028 -1.067193 +v -1.221807 1.705025 -1.063432 +v -1.221114 1.731966 -1.047613 +v -1.251991 1.734969 -1.051374 +v -0.954687 1.560271 -1.298775 +v -0.985937 1.560271 -1.298775 +v -0.985937 1.591521 -1.298775 +v -0.954687 1.591521 -1.298775 +v -0.963335 1.590347 -1.336192 +v -0.970149 1.559849 -1.336192 +v -0.952451 1.555895 -1.310741 +v -0.945637 1.586393 -1.310741 +v -1.101448 1.611016 -1.336589 +v -1.086425 1.583614 -1.336589 +v -1.066532 1.594520 -1.315097 +v -1.081556 1.621922 -1.315097 +v -0.954687 1.560271 -1.251899 +v -0.985937 1.560271 -1.251899 +v -0.985937 1.591521 -1.251900 +v -0.954687 1.591521 -1.251900 +v -1.077788 1.581977 -1.252000 +v -1.109038 1.581977 -1.252000 +v -1.109038 1.613227 -1.252000 +v -1.077788 1.613227 -1.252000 +v 0.745194 1.273139 0.735025 +v 0.735015 1.244827 0.726576 +v 0.719654 1.257532 0.702510 +v 0.729833 1.285844 0.710959 +v 0.943610 1.259989 0.566791 +v 0.931926 1.231665 0.560645 +v 0.906328 1.244857 0.548509 +v 0.918013 1.273181 0.554655 +v 0.973016 1.351905 -0.575358 +v 0.960954 1.323080 -0.574949 +v 0.934052 1.334495 -0.563880 +v 0.946114 1.363320 -0.564288 +v 0.600109 1.441009 -1.009472 +v 0.592197 1.411235 -1.004230 +v 0.577894 1.419695 -0.977765 +v 0.585806 1.449470 -0.983007 +v -1.073487 1.623846 -1.364865 +v -1.067278 1.593794 -1.358955 +v -1.058762 1.601281 -1.329834 +v -1.064971 1.631332 -1.335745 +v 0.951122 1.085692 0.312932 +v 0.926018 1.099264 0.300198 +v 0.940128 1.127087 0.302037 +v 0.965232 1.113515 0.314771 +v 0.935073 1.197188 -0.576146 +v 0.909195 1.208910 -0.563128 +v 0.922666 1.237072 -0.561709 +v 0.948544 1.225349 -0.574726 +v 0.560659 1.358615 -0.982424 +v 0.547104 1.365096 -0.955023 +v 0.557465 1.394521 -0.956857 +v 0.571020 1.388041 -0.984259 +v -0.840678 1.692593 -1.288240 +v -0.843022 1.696158 -1.257282 +v -0.836343 1.726539 -1.260275 +v -0.833999 1.722973 -1.291232 +v -1.187308 1.756017 -1.283439 +v -1.176978 1.758718 -1.254070 +v -1.181892 1.789558 -1.255177 +v -1.192222 1.786859 -1.284546 +v -1.281084 1.697572 -1.201442 +v -1.256675 1.712997 -1.189491 +v -1.276172 1.731483 -1.173532 +v -1.300580 1.716059 -1.185483 +v 0.953203 1.134244 -0.358307 +v 0.944705 1.104700 -0.363921 +v 0.914640 1.113173 -0.362995 +v 0.923138 1.142717 -0.357381 +v 0.925834 1.168328 -0.575803 +v 0.918043 1.138104 -0.577344 +v 0.890808 1.144413 -0.563379 +v 0.898599 1.174636 -0.561838 +v 0.528609 1.250118 -0.993705 +v 0.521870 1.219603 -0.993587 +v 0.506780 1.223040 -0.966439 +v 0.513519 1.253554 -0.966556 +v -0.935810 1.584189 -1.354551 +v -0.942693 1.553706 -1.354520 +v -0.936888 1.552426 -1.323841 +v -0.930005 1.582909 -1.323871 +v -0.246489 0.832329 -0.855722 +v -0.258502 0.803503 -0.856856 +v -0.266625 0.805704 -0.826760 +v -0.254612 0.834530 -0.825626 +v -1.214327 1.469654 -1.049257 +v -1.236530 1.447909 -1.052539 +v -1.241021 1.447826 -1.021614 +v -1.218818 1.469571 -1.018332 +v -1.262501 1.543276 -1.052072 +v -1.293222 1.548172 -1.055042 +v -1.296599 1.545773 -1.024067 +v -1.265878 1.540877 -1.021098 +v 0.374585 0.560388 -0.353116 +v 0.377918 0.534075 -0.336591 +v 0.358668 0.545373 -0.314720 +v 0.355335 0.571686 -0.331244 +v -0.000276 0.530372 -0.584431 +v -0.012797 0.502610 -0.577427 +v -0.023881 0.514358 -0.550675 +v -0.011360 0.542120 -0.557679 +v -1.218359 1.455832 -1.164818 +v -1.241896 1.435340 -1.163192 +v -1.245818 1.442244 -1.132967 +v -1.222281 1.462735 -1.134594 +v -1.269335 1.533842 -1.177511 +v -1.300350 1.537532 -1.178506 +v -1.301281 1.538129 -1.147276 +v -1.270266 1.534439 -1.146281 +v -1.173318 1.944097 -0.673875 +v -1.180127 1.913598 -0.673875 +v -1.180127 1.913598 -0.642625 +v -1.173318 1.944097 -0.642625 +v -1.195024 1.820996 -0.673875 +v -1.201833 1.790497 -0.673875 +v -1.201833 1.790497 -0.642625 +v -1.195024 1.820996 -0.642625 +v -1.216730 1.697895 -0.673875 +v -1.223539 1.667396 -0.673875 +v -1.223539 1.667396 -0.642625 +v -1.216730 1.697895 -0.642625 +v -1.216730 1.697895 -0.798875 +v -1.223539 1.667396 -0.798875 +v -1.223539 1.667396 -0.767625 +v -1.216730 1.697895 -0.767625 +v -0.364991 2.414379 -0.298050 +v -0.355700 2.409160 -0.327426 +v -0.382890 2.395009 -0.333511 +v -0.392181 2.400229 -0.304135 +v 0.425906 2.063924 0.730832 +v 0.443584 2.079004 0.709936 +v 0.420829 2.100030 0.705858 +v 0.403150 2.084951 0.726754 +v -0.904467 1.858820 0.329478 +v -0.893309 1.888000 0.328678 +v -0.903063 1.890920 0.299133 +v -0.914221 1.861741 0.299933 +v -0.894073 1.106308 0.319069 +v -0.899256 1.132884 0.334669 +v -0.913457 1.144864 0.309542 +v -0.908274 1.118287 0.293942 +v -0.675568 1.257920 0.720053 +v -0.670262 1.285721 0.733302 +v -0.693610 1.298119 0.716636 +v -0.698915 1.270318 0.703387 +v -1.219347 1.937230 -0.524101 +v -1.196883 1.958954 -0.524101 +v -1.177292 1.938695 -0.510599 +v -1.199756 1.916971 -0.510599 +v -0.430747 0.577754 -0.354696 +v -0.447749 0.560204 -0.335216 +v -0.436113 0.575960 -0.310866 +v -0.419111 0.593510 -0.330346 +v -1.252167 1.693828 -1.058028 +v -1.220919 1.694257 -1.058028 +v -1.221169 1.712454 -1.032624 +v -1.252416 1.712025 -1.032624 +v -1.259744 1.683084 -1.186409 +v -1.242361 1.709054 -1.186409 +v -1.255320 1.717729 -1.159328 +v -1.272704 1.691760 -1.159328 +vt 0.017442 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.122093 0.038835 +vt 0.110465 0.029126 +vt 0.122093 0.029126 +vt 0.168605 0.048544 +vt 0.162791 0.038835 +vt 0.168605 0.038835 +vt 0.168605 0.019417 +vt 0.162791 0.009709 +vt 0.168605 0.009709 +vt 0.168605 0.029126 +vt 0.162791 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.348837 0.038835 +vt 0.343023 0.029126 +vt 0.348837 0.029126 +vt 0.348837 0.048544 +vt 0.343023 0.038835 +vt 0.348837 0.019417 +vt 0.343023 0.009709 +vt 0.348837 0.009709 +vt 0.343023 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.308140 0.048544 +vt 0.302326 0.038835 +vt 0.308140 0.038835 +vt 0.308140 0.019417 +vt 0.302326 0.009709 +vt 0.308140 0.009709 +vt 0.308140 0.029126 +vt 0.302326 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011814 0.038878 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.011628 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.023256 0.019417 +vt 0.011628 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.023256 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.424419 0.038835 +vt 0.412791 0.048544 +vt 0.412791 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.009709 +vt 0.424419 0.009709 +vt 0.424419 0.029126 +vt 0.412791 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.319767 0.029126 +vt 0.308140 0.038835 +vt 0.308140 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.174419 0.029126 +vt 0.174419 0.048544 +vt 0.174419 0.038835 +vt 0.174419 0.019417 +vt 0.174419 0.009709 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.406977 0.029126 +vt 0.412791 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.313953 0.029126 +vt 0.313953 0.048544 +vt 0.313953 0.038835 +vt 0.313953 0.019417 +vt 0.313953 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.151163 0.019417 +vt 0.139535 0.009709 +vt 0.151163 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.581395 0.029126 +vt 0.569767 0.019417 +vt 0.581395 0.019417 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.180233 0.029126 +vt 0.168605 0.038835 +vt 0.168605 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.005814 0.048544 +vt 0.383721 0.029126 +vt 0.372093 0.038835 +vt 0.372093 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.011628 0.019417 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.343023 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.563953 0.029126 +vt 0.563953 0.019417 +vt 0.569767 0.029126 +vt 0.563953 0.038835 +vt 0.569767 0.048544 +vt 0.569767 0.038835 +vt 0.569767 0.009709 +vt 0.563953 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.116279 0.029126 +vt 0.116279 0.019417 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.029126 +vt 0.279070 0.038835 +vt 0.273256 0.048544 +vt 0.279070 0.019417 +vt 0.273256 0.009709 +vt 0.279070 0.009709 +vt 0.273256 0.019417 +vt 0.284884 0.038835 +vt 0.284884 0.029126 +vt 0.279070 0.048544 +vt 0.284884 0.019417 +vt 0.284884 0.009709 +vt 0.383721 0.038835 +vt 0.372093 0.048544 +vt 0.383721 0.019417 +vt 0.372093 0.009709 +vt 0.383721 0.009709 +vt 0.372093 0.019417 +vt 0.360465 0.038835 +vt 0.360465 0.029126 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.038835 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.529070 0.019417 +vt 0.540698 0.029126 +vt 0.529070 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.029126 +vt 0.412791 0.019417 +vt 0.424419 0.029126 +vt 0.412791 0.038835 +vt 0.424419 0.048544 +vt 0.424419 0.038835 +vt 0.715116 0.038835 +vt 0.703488 0.048544 +vt 0.703488 0.038835 +vt 0.715116 0.019417 +vt 0.703488 0.009709 +vt 0.715116 0.009709 +vt 0.715116 0.029126 +vt 0.703488 0.019417 +vt 0.697674 0.029126 +vt 0.703488 0.029126 +vt 0.290698 0.038835 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.290698 0.019417 +vt 0.279070 0.009709 +vt 0.290698 0.009709 +vt 0.290698 0.029126 +vt 0.279070 0.019417 +vt 0.476744 0.029126 +vt 0.470930 0.038835 +vt 0.470930 0.029126 +vt 0.476744 0.038835 +vt 0.470930 0.048544 +vt 0.476744 0.019417 +vt 0.470930 0.009709 +vt 0.476744 0.009709 +vt 0.470930 0.019417 +vt 0.482558 0.038835 +vt 0.482558 0.029126 +vt 0.482558 0.048544 +vt 0.482558 0.009709 +vt 0.482558 0.019417 +vt 0.453488 0.009709 +vt 0.441860 0.019417 +vt 0.441860 0.009709 +vt 0.453488 0.029126 +vt 0.453488 0.019417 +vt 0.453488 0.038835 +vt 0.441860 0.029126 +vt 0.441860 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.038835 +vt 0.581395 0.038835 +vt 0.581395 0.009709 +vt 0.308140 0.019417 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.308140 0.029126 +vt 0.296512 0.038835 +vt 0.308140 0.048544 +vt 0.308140 0.038835 +vt 0.139535 0.029126 +vt 0.151163 0.029126 +vt 0.139535 0.038835 +vt 0.151163 0.038835 +vt 0.151163 0.048544 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.197674 0.029126 +vt 0.191860 0.019417 +vt 0.197674 0.019417 +vt 0.191860 0.038835 +vt 0.191860 0.029126 +vt 0.197674 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.197674 0.009709 +vt 0.209302 0.029126 +vt 0.209302 0.019417 +vt 0.209302 0.048544 +vt 0.209302 0.038835 +vt 0.209302 0.009709 +vt 0.343023 0.038835 +vt 0.331395 0.048544 +vt 0.343023 0.019417 +vt 0.331395 0.009709 +vt 0.343023 0.009709 +vt 0.331395 0.019417 +vt 0.325581 0.038835 +vt 0.325581 0.029126 +vt 0.180233 0.038835 +vt 0.168605 0.048544 +vt 0.180233 0.019417 +vt 0.168605 0.009709 +vt 0.180233 0.009709 +vt 0.168605 0.019417 +vt 0.162791 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.023256 0.038835 +vt 0.488372 0.019417 +vt 0.476744 0.009709 +vt 0.488372 0.009709 +vt 0.488372 0.029126 +vt 0.476744 0.019417 +vt 0.476744 0.038835 +vt 0.476744 0.029126 +vt 0.476744 0.048544 +vt 0.470930 0.038835 +vt 0.680233 0.019417 +vt 0.668605 0.009709 +vt 0.680233 0.009709 +vt 0.680233 0.029126 +vt 0.668605 0.019417 +vt 0.668605 0.038835 +vt 0.668605 0.029126 +vt 0.232558 0.029126 +vt 0.226744 0.019417 +vt 0.232558 0.019417 +vt 0.226744 0.038835 +vt 0.226744 0.029126 +vt 0.232558 0.038835 +vt 0.226744 0.048544 +vt 0.226744 0.009709 +vt 0.232558 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.019417 +vt 0.238372 0.048544 +vt 0.238372 0.038835 +vt 0.238372 0.009709 +vt 0.482558 0.038835 +vt 0.470930 0.048544 +vt 0.470930 0.038835 +vt 0.482558 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.482558 0.029126 +vt 0.482558 0.019417 +vt 0.319767 0.038835 +vt 0.308140 0.048544 +vt 0.319767 0.019417 +vt 0.308140 0.009709 +vt 0.319767 0.009709 +vt 0.308140 0.019417 +vt 0.302326 0.029126 +vt 0.552326 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.552326 0.019417 +vt 0.540698 0.009709 +vt 0.552326 0.009709 +vt 0.552326 0.029126 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.540698 0.029126 +vt 0.110465 0.048544 +vt 0.110465 0.038835 +vt 0.122093 0.009709 +vt 0.110465 0.019417 +vt 0.110465 0.009709 +vt 0.122093 0.019417 +vt 0.063953 0.048544 +vt 0.290698 0.019417 +vt 0.284884 0.029126 +vt 0.284884 0.019417 +vt 0.290698 0.029126 +vt 0.284884 0.038835 +vt 0.290698 0.048544 +vt 0.290698 0.038835 +vt 0.284884 0.009709 +vt 0.290698 0.009709 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.009709 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.186047 0.029126 +vt 0.186047 0.048544 +vt 0.186047 0.038835 +vt 0.186047 0.009709 +vt 0.023256 0.029126 +vt 0.023256 0.019417 +vt 0.116279 0.009709 +vt 0.116279 0.038835 +vt 0.156977 0.038835 +vt 0.162791 0.029126 +vt 0.220930 0.029126 +vt 0.220930 0.038835 +vt 0.220930 0.019417 +vt 0.220930 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.186047 0.019417 +vt 0.023256 0.048544 +vt 0.063953 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.019417 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.220930 0.048544 +vt 0.156977 0.019417 +vt 0.156977 0.029126 +vt 0.156977 0.009709 +vt 0.156977 0.048544 +vt 0.162791 0.048544 +vt 0.116279 0.048544 +vt 0.302326 0.038835 +vt 0.302326 0.019417 +vt 0.302326 0.009709 +vt 0.023256 0.038835 +vt 0.017442 0.029126 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.244186 0.029126 +vt 0.244186 0.038835 +vt 0.244186 0.048544 +vt 0.244186 0.019417 +vt 0.302326 0.048544 +vt 0.244186 0.009709 +vt 0.290698 0.038835 +vt 0.191860 0.029126 +vt 0.290698 0.029126 +vt 0.279070 0.029126 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.279070 0.019417 +vt 0.279070 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.238372 0.029126 +vt 0.238372 0.038835 +vt 0.238372 0.048544 +vt 0.238372 0.019417 +vt 0.238372 0.009709 +vt 0.273256 0.029126 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.019417 +vt 0.273256 0.009709 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.197674 0.029126 +vt 0.197674 0.038835 +vt 0.197674 0.048544 +vt 0.197674 0.019417 +vt 0.273256 0.048544 +vt 0.406977 0.038835 +vt 0.406977 0.019417 +vt 0.406977 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.038835 +vt 0.261628 0.048544 +vt 0.261628 0.019417 +vt 0.406977 0.048544 +vt 0.261628 0.009709 +vt 0.459302 0.038835 +vt 0.459302 0.019417 +vt 0.459302 0.009709 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.019417 +vt 0.023256 0.029126 +vt 0.377907 0.038835 +vt 0.377907 0.048544 +vt 0.290698 0.048544 +vt 0.290698 0.019417 +vt 0.377907 0.009709 +vt 0.377907 0.019417 +vt 0.377907 0.029126 +vt 0.459302 0.048544 +vt 0.191860 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.191860 0.019417 +vt 0.290698 0.009709 +vt 0.261628 0.038835 +vt 0.261628 0.019417 +vt 0.261628 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.069767 0.029126 +vt 0.069767 0.038835 +vt 0.069767 0.048544 +vt 0.069767 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.048544 +vt 0.069767 0.009709 +vt 0.023256 0.029126 +vt 0.017442 0.029126 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.337209 0.038835 +vt 0.354651 0.038835 +vt 0.354651 0.048544 +vt 0.354651 0.009709 +vt 0.354651 0.019417 +vt 0.354651 0.029126 +vt 0.023256 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.029126 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.009709 +vt 0.337209 0.048544 +vt 0.343023 0.048544 +vt 0.127907 0.029126 +vt 0.127907 0.019417 +vt 0.127907 0.009709 +vt 0.127907 0.038835 +vt 0.023256 0.009709 +vt 0.529070 0.038835 +vt 0.529070 0.019417 +vt 0.529070 0.009709 +vt 0.023256 0.038835 +vt 0.215116 0.029126 +vt 0.215116 0.038835 +vt 0.023256 0.048544 +vt 0.215116 0.048544 +vt 0.023256 0.009709 +vt 0.215116 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.325581 0.029126 +vt 0.447674 0.038835 +vt 0.325581 0.038835 +vt 0.447674 0.048544 +vt 0.325581 0.048544 +vt 0.325581 0.019417 +vt 0.447674 0.009709 +vt 0.447674 0.019417 +vt 0.447674 0.029126 +vt 0.529070 0.048544 +vt 0.215116 0.009709 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.139535 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.139535 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.009709 +vt 0.023256 0.048544 +vt 0.069767 0.038835 +vt 0.029070 0.029126 +vt 0.069767 0.029126 +vt 0.029070 0.019417 +vt 0.069767 0.019417 +vt 0.069767 0.009709 +vt 0.029070 0.009709 +vt 0.029070 0.048544 +vt 0.029070 0.038835 +vt 0.255814 0.038835 +vt 0.255814 0.029126 +vt 0.255814 0.019417 +vt 0.255814 0.009709 +vt 0.255814 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.009709 +vt 0.302326 0.029126 +vt 0.296512 0.048544 +vt 0.302326 0.048544 +vt 0.162791 0.038835 +vt 0.162791 0.019417 +vt 0.162791 0.009709 +vt 0.040698 0.038835 +vt 0.162791 0.048544 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.360465 0.009709 +vt 0.360465 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.360465 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.017442 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.038835 +vt 0.325581 0.009709 +vt 0.325581 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.325581 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.034884 0.038835 +vt 0.034884 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.517442 0.019417 +vt 0.517442 0.029126 +vt 0.517442 0.038835 +vt 0.517442 0.048544 +vt 0.563953 0.048544 +vt 0.517442 0.009709 +vt 0.284884 0.029126 +vt 0.284884 0.038835 +vt 0.284884 0.048544 +vt 0.284884 0.009709 +vt 0.284884 0.019417 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.040698 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.523256 0.009709 +vt 0.529070 0.009709 +vt 0.523256 0.019417 +vt 0.523256 0.038835 +vt 0.523256 0.029126 +vt 0.523256 0.048544 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.063953 0.038835 +vt 0.063953 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.540698 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.470930 0.029126 +vt 0.436047 0.048544 +vt 0.470930 0.048544 +vt 0.436047 0.019417 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.337209 0.048544 +vt 0.337209 0.009709 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.038835 +vt 0.093023 0.038835 +vt 0.093023 0.048544 +vt 0.093023 0.019417 +vt 0.093023 0.029126 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.009709 +vt 0.488372 0.038835 +vt 0.436047 0.019417 +vt 0.436047 0.009709 +vt 0.436047 0.029126 +vt 0.389535 0.038835 +vt 0.389535 0.048544 +vt 0.389535 0.009709 +vt 0.389535 0.019417 +vt 0.389535 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.441860 0.048544 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.470930 0.029126 +vt 0.459302 0.038835 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.005814 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.005814 0.029126 +vt 0.023256 0.019417 +vt 0.005814 0.019417 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.029070 0.038835 +vt 0.029070 0.029126 +vt 0.697674 0.038835 +vt 0.697674 0.019417 +vt 0.697674 0.009709 +vt 0.651163 0.038835 +vt 0.651163 0.048544 +vt 0.697674 0.048544 +vt 0.651163 0.009709 +vt 0.651163 0.019417 +vt 0.651163 0.029126 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.019417 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.331395 0.009709 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.680233 0.038835 +vt 0.668605 0.048544 +vt 0.662791 0.038835 +vt 0.662791 0.019417 +vt 0.662791 0.009709 +vt 0.662791 0.029126 +vt 0.488372 0.038835 +vt 0.662791 0.048544 +vt 0.488372 0.048544 +vt 0.488372 0.009709 +vt 0.488372 0.019417 +vt 0.488372 0.029126 +vt 0.383721 0.038835 +vt 0.383721 0.048544 +vt 0.383721 0.009709 +vt 0.383721 0.019417 +vt 0.383721 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.052326 0.009709 +vt 0.052326 0.019417 +vt 0.052326 0.029126 +vt 0.052326 0.038835 +vt 0.029070 0.048544 +vt 0.052326 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.029070 0.038835 +vt 0.023256 0.038835 +vt 0.459302 0.009709 +vt 0.459302 0.019417 +vt 0.424419 0.038835 +vt 0.424419 0.048544 +vt 0.459302 0.048544 +vt 0.424419 0.009709 +vt 0.424419 0.019417 +vt 0.424419 0.029126 +vt 0.313953 0.029126 +vt 0.313953 0.038835 +vt 0.313953 0.048544 +vt 0.313953 0.019417 +vt 0.029070 0.038835 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.023256 0.009709 +vt 0.238372 0.019417 +vt 0.296512 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.048544 +vt 0.296512 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.034884 0.038835 +vt 0.238372 0.038835 +vt 0.034884 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.308140 0.009709 +vt 0.406977 0.009709 +vt 0.412791 0.009709 +vt 0.406977 0.019417 +vt 0.406977 0.029126 +vt 0.406977 0.048544 +vt 0.406977 0.038835 +vt 0.325581 0.019417 +vt 0.325581 0.029126 +vt 0.325581 0.038835 +vt 0.325581 0.048544 +vt 0.040698 0.019417 +vt 0.325581 0.009709 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.005814 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.009709 +vt 0.005814 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.048544 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.284884 0.048544 +vt 0.383721 0.048544 +vt 0.005814 0.048544 +vt 0.529070 0.048544 +vt 0.412791 0.048544 +vt 0.715116 0.048544 +vt 0.290698 0.048544 +vt 0.476744 0.048544 +vt 0.581395 0.048544 +vt 0.197674 0.048544 +vt 0.343023 0.048544 +vt 0.180233 0.048544 +vt 0.005814 0.009709 +vt 0.232558 0.048544 +vt 0.482558 0.048544 +vt 0.319767 0.048544 +vt 0.552326 0.048544 +vt 0.122093 0.048544 +vt 0.284884 0.048544 +vt 0.197674 0.009709 +vt 0.058140 0.009709 +vt 0.127907 0.048544 +vt 0.325581 0.009709 +vt 0.069767 0.048544 +vt 0.273256 0.009709 +vt 0.273256 0.009709 +vt 0.331395 0.009709 +vt 0.436047 0.009709 +vt 0.093023 0.009709 +vt 0.488372 0.048544 +vt 0.116279 0.009709 +vt 0.453488 0.048544 +vt 0.005814 0.048544 +vt 0.436047 0.009709 +vt 0.680233 0.048544 +vt 0.116279 0.009709 +vt 0.023256 0.048544 +vt 0.313953 0.009709 +vt 0.238372 0.009709 +vt 0.040698 0.009709 +vn -0.1987 -0.9327 0.3009 +vn -0.4297 -0.5556 -0.7118 +vn -0.0322 -0.8001 0.5990 +vn 0.8167 0.0672 0.5732 +vn 0.5228 0.6581 0.5419 +vn -0.0041 0.9160 -0.4012 +vn 0.0025 0.6642 -0.7475 +vn -0.2349 -0.6674 -0.7066 +vn 0.1861 0.6827 -0.7066 +vn -0.3240 -0.5971 -0.7338 +vn -0.4111 0.7374 -0.5360 +vn -0.0434 0.6814 -0.7306 +vn 0.0026 -0.7882 0.6154 +vn -0.6562 -0.5407 -0.5264 +vn 0.3294 0.7106 0.6217 +vn 0.2890 -0.8069 0.5151 +vn 0.5413 0.6728 0.5043 +vn -0.2631 -0.6162 -0.7423 +vn -0.4144 0.6926 -0.5904 +vn -0.0036 0.6890 -0.7247 +vn 0.0106 -0.7691 0.6390 +vn -0.4894 -0.6433 -0.5888 +vn 0.2780 0.7127 0.6441 +vn -0.1731 -0.5478 0.8185 +vn 0.4082 0.7238 0.5563 +vn -0.2815 -0.6019 -0.7473 +vn -0.5240 0.6396 -0.5624 +vn -0.0329 0.6894 -0.7237 +vn 0.0527 -0.7923 0.6079 +vn -0.5185 -0.6701 -0.5311 +vn 0.3061 0.7107 0.6334 +vn 0.3483 -0.6377 0.6870 +vn 0.3925 0.7915 0.4685 +vn -0.3480 -0.6379 -0.6871 +vn -0.5016 -0.7102 0.4940 +vn -0.7390 -0.1192 -0.6631 +vn -0.2105 -0.7437 0.6346 +vn 0.5180 0.2010 0.8315 +vn 0.4184 0.6429 0.6416 +vn 0.3503 0.7327 -0.5835 +vn 0.2726 0.7074 -0.6521 +vn -0.8686 0.4478 -0.2122 +vn -0.3249 -0.6289 -0.7064 +vn -0.2826 -0.8411 0.4611 +vn -0.7449 -0.2105 -0.6331 +vn -0.1211 -0.7602 0.6383 +vn 0.5858 0.2530 0.7700 +vn 0.4078 0.6594 0.6316 +vn 0.1204 0.8161 -0.5652 +vn 0.4208 0.8642 -0.2758 +vn -0.2328 0.4357 0.8695 +vn -0.1424 0.3654 0.9199 +vn 0.1164 -0.7448 0.6571 +vn 0.1257 -0.7617 -0.6356 +vn -0.0781 -0.6041 -0.7931 +vn 0.0683 0.7675 0.6374 +vn 0.4322 -0.3767 0.8194 +vn -0.0481 0.7362 -0.6750 +vn -0.2721 0.8014 0.5326 +vn 0.2499 -0.9033 0.3486 +vn 0.2764 -0.4564 -0.8457 +vn 0.3547 -0.2366 -0.9045 +vn 0.0214 -0.6144 -0.7887 +vn -0.5098 0.5459 -0.6649 +vn -0.0537 0.7549 -0.6536 +vn 0.1032 -0.6636 0.7409 +vn 0.3203 -0.6132 -0.7221 +vn -0.0290 0.7634 0.6453 +vn 0.2851 -0.5604 0.7776 +vn -0.4289 0.6390 0.6385 +vn 0.1055 0.5991 -0.7937 +vn -0.7651 -0.0157 -0.6437 +vn 0.3776 0.7691 -0.5156 +vn -0.3675 -0.6247 -0.6889 +vn -0.5403 -0.7272 0.4234 +vn -0.1941 -0.7585 0.6221 +vn 0.6650 -0.0222 0.7465 +vn 0.3773 0.6784 0.6304 +vn 0.1253 0.6280 -0.7681 +vn -0.6681 -0.3254 -0.6692 +vn 0.1932 0.7529 -0.6291 +vn -0.3097 -0.6454 -0.6982 +vn -0.3230 -0.7746 0.5437 +vn -0.1680 -0.7435 0.6473 +vn 0.5529 0.3586 0.7521 +vn 0.3940 0.6391 0.6605 +vn 0.1134 -0.7473 0.6548 +vn 0.0412 -0.7952 -0.6050 +vn -0.1031 -0.6071 -0.7879 +vn 0.0994 0.7632 0.6384 +vn 0.4049 -0.4241 0.8101 +vn -0.0390 0.7303 -0.6820 +vn -0.2053 0.8301 0.5185 +vn 0.8458 -0.4633 0.2644 +vn 0.3933 -0.0332 -0.9188 +vn 0.3572 0.1234 -0.9259 +vn 0.0197 0.7699 -0.6379 +vn 0.3813 -0.4495 -0.8078 +vn -0.3840 0.7257 -0.5708 +vn 0.1511 -0.7325 -0.6638 +vn 0.2022 -0.7544 0.6245 +vn -0.0330 -0.5991 0.8000 +vn -0.5785 0.4643 0.6706 +vn -0.0590 0.7452 0.6642 +vn 0.2660 0.5494 -0.7921 +vn -0.6977 -0.2607 -0.6672 +vn 0.5392 0.4678 -0.7003 +vn -0.3682 -0.6581 -0.6568 +vn -0.6589 -0.4275 0.6189 +vn -0.3391 -0.6858 0.6439 +vn 0.5198 0.3263 0.7895 +vn 0.4013 0.5646 0.7212 +vn 0.1574 0.6517 -0.7420 +vn -0.4791 -0.5461 -0.6872 +vn 0.1738 0.7123 -0.6800 +vn -0.2478 -0.6701 -0.6997 +vn -0.2610 -0.7103 0.6537 +vn -0.1769 -0.7169 0.6743 +vn 0.3358 0.6040 0.7228 +vn 0.2714 0.6559 0.7044 +vn 0.0637 0.7755 -0.6282 +vn 0.5355 -0.2746 -0.7987 +vn -0.3209 0.8036 -0.5013 +vn 0.0937 -0.7779 -0.6214 +vn 0.1674 -0.7911 0.5883 +vn -0.0858 -0.5874 0.8048 +vn -0.6290 0.3764 0.6802 +vn -0.0707 0.7365 0.6728 +vn -0.0274 -0.6061 -0.7949 +vn -0.5492 0.4956 -0.6729 +vn -0.0503 0.7458 -0.6643 +vn 0.1415 -0.7141 0.6856 +vn 0.1464 -0.7715 -0.6191 +vn 0.0185 0.7670 0.6414 +vn 0.3708 -0.4877 0.7903 +vn -0.3791 0.7174 0.5845 +vn 0.2682 0.5175 -0.8126 +vn -0.7339 -0.1388 -0.6649 +vn 0.6189 0.4247 -0.6608 +vn -0.4028 -0.6453 -0.6491 +vn -0.7259 -0.3441 0.5955 +vn -0.3715 -0.6781 0.6342 +vn 0.5317 0.2193 0.8181 +vn 0.4652 0.5966 0.6540 +vn -0.8947 0.0303 -0.4457 +vn -0.3087 -0.7240 0.6169 +vn -0.6429 -0.4665 0.6076 +vn 0.6424 -0.0806 0.7621 +vn 0.4092 0.6117 0.6770 +vn 0.2052 0.4256 -0.8813 +vn 0.0785 0.6076 -0.7903 +vn -0.1541 -0.6901 -0.7071 +vn 0.1541 0.6901 -0.7071 +vn -0.7380 0.1716 0.6526 +vn -0.3768 -0.7319 -0.5678 +vn -0.4807 -0.5952 0.6439 +vn 0.1003 0.5476 0.8307 +vn 0.6662 0.5656 0.4861 +vn 0.6275 0.5623 -0.5385 +vn 0.6760 -0.2402 -0.6966 +vn 0.1847 -0.1508 0.9712 +vn 0.0499 -0.6952 -0.7171 +vn -0.0981 -0.6249 0.7745 +vn -0.1198 0.7536 0.6463 +vn -0.8413 0.2036 0.5008 +vn -0.0738 0.7751 -0.6275 +vn -0.7186 0.2744 -0.6390 +vn 0.2823 0.5925 -0.7545 +vn -0.0766 -0.7686 -0.6351 +vn 0.4568 0.3596 -0.8137 +vn 0.4108 0.6761 -0.6117 +vn -0.3244 -0.6204 0.7140 +vn -0.1571 -0.8670 -0.4729 +vn 0.0430 0.6478 0.7606 +vn -0.7702 -0.2511 0.5863 +vn 0.0060 0.8495 0.5276 +vn -0.6346 -0.4263 0.6447 +vn -0.1690 -0.7494 -0.6402 +vn -0.3227 -0.6359 0.7011 +vn 0.0807 0.6449 0.7600 +vn 0.0732 0.7883 0.6109 +vn 0.3775 0.6348 -0.6742 +vn 0.4561 0.5005 -0.7358 +vn -0.0017 0.7596 -0.6504 +vn 0.3155 -0.5701 -0.7586 +vn -0.3876 0.6785 -0.6240 +vn 0.0782 -0.6688 -0.7393 +vn 0.1825 -0.7019 0.6885 +vn -0.0006 -0.6256 0.7801 +vn -0.4645 0.5846 0.6652 +vn -0.0316 0.7504 0.6602 +vn -0.7490 -0.6504 -0.1266 +vn 0.3403 -0.8625 0.3746 +vn 0.6673 -0.6999 0.2549 +vn -0.7240 0.6670 -0.1761 +vn -0.6766 -0.5182 -0.5231 +vn 0.6065 0.7850 0.1262 +vn -0.3891 0.7577 -0.5240 +vn 0.7104 0.5808 0.3976 +vn 0.9360 -0.3489 0.0475 +vn 0.1504 -0.2267 -0.9623 +vn 0.9639 -0.1225 0.2366 +vn -0.9097 0.4116 -0.0547 +vn 0.1790 0.3744 -0.9098 +vn -0.1465 -0.2820 0.9482 +vn -0.9324 0.3108 0.1844 +vn -0.1861 -0.6826 0.7066 +vn 0.2349 0.6674 0.7066 +vn 0.6368 -0.3605 0.6816 +vn 0.5636 0.8227 0.0748 +vn 0.3938 -0.0795 0.9158 +vn -0.1541 -0.6901 0.7071 +vn 0.1541 0.6901 0.7071 +vn -0.1341 0.1854 0.9735 +vn 0.8973 -0.2880 0.3345 +vn -0.2066 0.4012 0.8924 +vn 0.1397 0.5999 -0.7878 +vn 0.0783 0.6345 -0.7690 +vn 0.1359 0.8990 0.4163 +vn 0.0466 0.2350 0.9709 +vn 0.6456 -0.5877 -0.4877 +vn 0.3547 0.6721 -0.6500 +vn 0.2630 0.7857 -0.5599 +vn 0.4795 0.6087 0.6320 +vn 0.9667 -0.1673 -0.1936 +vn 0.8642 -0.3905 -0.3173 +vn 0.6464 0.7413 0.1806 +vn 0.6023 -0.1871 -0.7761 +vn 0.4726 0.8787 -0.0666 +vn -0.4138 -0.6167 -0.6697 +vn 0.7769 -0.0817 0.6243 +vn 0.6816 -0.1570 -0.7146 +vn 0.8539 0.2805 0.4385 +vn -0.3819 -0.6595 -0.6474 +vn 0.2402 0.6116 0.7538 +vn -0.3768 -0.6620 0.6479 +vn 0.7731 0.2130 0.5975 +vn 0.6519 -0.5646 -0.5062 +vn 0.8757 0.3674 0.3135 +vn 0.3347 -0.4721 0.8155 +vn 0.9334 -0.1140 -0.3404 +vn 0.4092 0.2351 0.8816 +vn -0.8497 0.0342 0.5261 +vn -0.6330 0.0984 -0.7678 +vn -0.7932 0.2621 0.5497 +vn -0.1729 0.7512 -0.6370 +vn -0.4712 0.0065 0.8820 +vn -0.2611 -0.9544 0.1444 +vn -0.3929 0.2436 0.8867 +vn 0.2852 0.9511 -0.1184 +vn -0.3122 0.8760 -0.3676 +vn -0.8135 -0.5406 -0.2144 +vn -0.4886 0.2032 0.8485 +vn 0.4018 0.4518 0.7965 +vn 0.7895 0.3989 -0.4665 +vn 0.2153 0.7629 0.6096 +vn 0.8207 0.2092 -0.5316 +vn -0.1640 -0.7047 -0.6903 +vn -0.8343 -0.1971 0.5149 +vn -0.4283 -0.3953 -0.8126 +vn -0.7326 -0.1263 0.6688 +vn 0.8255 0.2021 -0.5270 +vn 0.4050 0.4383 0.8024 +vn -0.8255 -0.2021 0.5270 +vn -0.4050 -0.4383 -0.8024 +vn 0.5512 -0.4219 -0.7198 +vn -0.7104 -0.3079 -0.6329 +vn -0.5454 0.4621 0.6993 +vn -0.7567 0.1368 -0.6393 +vn -0.3768 0.2713 0.8857 +vn 0.4880 0.2185 -0.8450 +vn 0.3818 0.9001 0.2100 +vn -0.6068 0.7171 -0.3429 +vn -0.9275 0.2130 -0.3071 +vn 0.1651 -0.4340 -0.8856 +vn 0.3850 -0.4908 -0.7816 +vn 0.8231 0.4343 0.3659 +vn -0.2725 -0.0363 0.9615 +vn 0.8754 0.0177 0.4831 +vn -0.4555 0.1385 0.8794 +vn -0.9397 -0.0794 -0.3326 +vn 0.4553 -0.1778 -0.8724 +vn -0.8018 -0.4861 -0.3475 +vn 0.9005 0.2043 0.3839 +vn -0.0753 -0.3799 0.9219 +vn 0.9465 -0.2556 0.1970 +vn -0.2968 -0.4084 0.8632 +vn -0.9147 0.3074 -0.2624 +vn 0.2880 0.3635 -0.8859 +vn -0.8699 -0.2801 -0.4061 +vn -0.5841 -0.7385 0.3368 +vn -0.1116 -0.7158 -0.6894 +vn -0.2993 -0.7263 0.6188 +vn 0.6527 0.7016 -0.2861 +vn 0.5372 -0.6386 -0.5511 +vn -0.4582 0.6183 0.6386 +vn 0.2784 0.9477 -0.1559 +vn 0.5644 0.3101 0.7650 +vn -0.0334 0.4046 0.9139 +vn 0.7022 0.5285 -0.4771 +vn -0.1951 -0.4628 -0.8647 +vn 0.7413 0.6178 -0.2622 +vn -0.7412 -0.4814 0.4679 +vn -0.6072 0.1258 -0.7846 +vn 0.5695 -0.0387 0.8211 +vn -0.6237 -0.4191 0.6598 +vn 0.1319 -0.7982 0.5877 +vn 0.9894 -0.1101 -0.0945 +vn 0.3317 -0.2589 0.9071 +vn 0.9229 -0.1076 -0.3696 +vn -0.1720 0.3889 -0.9051 +vn -0.9055 0.1755 0.3863 +vn -0.0534 0.9031 -0.4261 +vn -0.8136 -0.0107 0.5813 +vn 0.9149 -0.1346 -0.3806 +vn 0.1149 -0.8170 0.5651 +vn -0.1149 0.8170 -0.5651 +vn -0.9149 0.1346 0.3805 +vn -0.6417 -0.6459 -0.4136 +vn -0.3821 0.8420 -0.3808 +vn -0.7065 -0.6883 -0.1645 +vn 0.6580 0.6409 0.3953 +vn -0.3559 0.7176 -0.5986 +vn 0.3721 -0.7243 0.5804 +vn 0.8200 0.5213 0.2365 +vn 0.5610 -0.7234 0.4024 +vn -0.7080 -0.6741 0.2105 +vn 0.5748 -0.7962 -0.1886 +vn -0.8752 0.3490 0.3350 +vn -0.4792 -0.6581 -0.5807 +vn 0.8653 -0.3782 0.3289 +vn -0.2807 -0.7853 0.5519 +vn 0.6372 -0.7411 -0.2113 +vn -0.5180 -0.6049 0.6048 +vn -0.6122 0.7706 0.1772 +vn 0.4757 0.5678 -0.6718 +vn -0.8631 0.2704 -0.4266 +vn -0.2540 -0.8889 0.3812 +vn -0.2973 -0.7836 0.5455 +vn -0.3425 0.5823 0.7373 +vn -0.6858 0.5747 0.4465 +vn -0.3263 -0.4130 -0.8503 +vn -0.5737 -0.7394 0.3525 +vn 0.4609 0.5945 0.6589 +vn -0.2703 -0.5498 0.7903 +vn -0.0407 -0.7186 0.6942 +vn 0.2925 0.7527 -0.5898 +vn 0.1464 0.6427 0.7520 +vn 0.0092 0.7270 -0.6866 +vn -0.2542 -0.7843 -0.5658 +vn -0.4950 -0.5784 -0.6484 +vn 0.4732 0.5942 0.6504 +vn -0.0318 -0.7263 0.6866 +vn -0.4732 -0.5942 -0.6504 +vn 0.0318 0.7263 -0.6866 +vn 0.5156 -0.7732 -0.3691 +vn -0.7364 -0.4992 -0.4565 +vn -0.5054 0.7930 0.3402 +vn -0.7567 -0.1865 -0.6267 +vn -0.3983 0.6908 0.6034 +vn 0.5338 -0.2659 -0.8027 +vn 0.5662 0.8138 -0.1306 +vn 0.6100 -0.3559 -0.7079 +vn -0.4050 -0.9141 -0.0185 +vn -0.6263 0.3606 0.6911 +vn -0.6635 -0.7193 -0.2060 +vn -0.4668 0.4479 0.7625 +vn 0.1080 0.9510 -0.2897 +vn -0.2329 -0.1743 0.9567 +vn 0.6717 -0.7263 0.1462 +vn -0.3719 -0.1344 0.9185 +vn -0.7324 0.6351 -0.2456 +vn -0.8581 0.4350 -0.2728 +vn 0.1661 -0.2106 -0.9633 +vn -0.3430 0.9364 0.0747 +vn -0.6911 -0.2147 -0.6901 +vn -0.2434 0.0053 -0.9699 +vn 0.3164 0.0251 0.9483 +vn -0.2154 0.9453 0.2449 +vn 0.5033 -0.8631 0.0415 +vn 0.6902 0.1939 0.6971 +vn 0.4746 -0.8751 -0.0949 +vn 0.5283 0.5594 -0.6387 +vn -0.4281 -0.6918 -0.5815 +vn -0.0044 -0.7265 -0.6872 +vn 0.0569 0.7064 0.7055 +vn 0.3348 0.7987 -0.5000 +vn -0.1546 -0.6357 0.7563 +vn 0.3769 0.4792 0.7927 +vn 0.1890 0.3140 0.9304 +vn 0.0563 -0.9287 0.3666 +vn 0.4215 -0.8770 0.2306 +vn -0.1489 0.9889 -0.0026 +vn -0.1696 0.1151 0.9788 +vn -0.4754 0.8520 -0.2192 +vn 0.1701 -0.4667 -0.8679 +vn -0.2498 -0.3312 -0.9099 +vn 0.2041 0.3303 0.9216 +vn 0.4386 -0.8724 0.2156 +vn -0.2041 -0.3303 -0.9216 +vn -0.4386 0.8724 -0.2156 +vn -0.0958 -0.7667 0.6348 +vn -0.6132 -0.6768 -0.4072 +vn 0.3413 -0.8457 0.4102 +vn -0.4209 -0.5140 -0.7474 +vn -0.0863 0.9762 -0.1987 +vn 0.4885 0.5012 0.7142 +vn 0.1795 0.7247 -0.6653 +vn 0.6291 0.7573 -0.1751 +vn -0.2848 0.2525 -0.9247 +vn -0.6573 -0.7283 0.1935 +vn -0.6652 0.3941 -0.6342 +vn -0.4200 -0.8624 0.2825 +vn -0.2708 0.1673 0.9480 +vn 0.4379 -0.1541 -0.8857 +vn -0.6430 0.6024 -0.4730 +vn 0.5907 -0.2668 -0.7615 +vn -0.4049 0.1976 0.8927 +vn -0.1982 0.9410 -0.2743 +vn 0.2786 -0.9100 0.3070 +vn -0.2843 0.0119 0.9586 +vn 0.8624 0.2612 0.4336 +vn 0.6756 -0.5956 0.4346 +vn 0.2653 -0.3415 -0.9017 +vn 0.2986 0.9157 -0.2689 +vn 0.1365 -0.3645 -0.9212 +vn -0.3365 -0.8709 0.3583 +vn -0.4280 -0.8614 0.2735 +vn 0.6924 -0.3819 -0.6122 +vn 0.3992 -0.9112 0.1021 +vn 0.3246 0.1860 0.9274 +vn 0.1185 -0.9056 0.4073 +vn 0.6368 0.3335 0.6952 +vn -0.0183 0.9992 -0.0366 +vn -0.6853 -0.3414 -0.6433 +vn -0.4501 0.8913 -0.0558 +vn -0.3135 -0.5477 -0.7757 +vn 0.6484 0.3485 0.6769 +vn 0.4082 -0.9096 0.0773 +vn -0.6484 -0.3485 -0.6769 +vn -0.4082 0.9096 -0.0773 +vn -0.3210 -0.8300 0.4562 +vn -0.6943 0.3903 0.6046 +vn -0.0034 0.8914 -0.4532 +vn -0.9766 0.1648 -0.1381 +vn -0.4063 0.8092 0.4244 +vn 0.2642 -0.9099 -0.3197 +vn 0.6182 0.6582 -0.4296 +vn -0.6470 0.7509 -0.1324 +vn -0.8747 -0.4842 -0.0214 +vn 0.8025 0.5477 0.2367 +vn 0.3362 -0.3065 -0.8905 +vn 0.2268 -0.4975 -0.8373 +vn -0.5725 0.4524 -0.6838 +vn -0.7144 0.1696 0.6788 +vn 0.3935 0.9071 0.1492 +vn -0.4974 -0.8672 -0.0226 +vn 0.6116 -0.4102 -0.6765 +vn 0.7246 0.6868 0.0569 +vn 0.3657 -0.9172 0.1581 +vn -0.7300 -0.3981 0.5556 +vn 0.0714 0.9675 -0.2427 +vn 0.9870 -0.0412 0.1553 +vn -0.3877 -0.8217 0.4178 +vn -0.7500 -0.5546 -0.3604 +vn 0.3517 0.8382 0.4168 +vn -0.8003 0.5975 0.0502 +vn -0.1623 -0.7226 0.6719 +vn -0.5460 0.4845 0.6835 +vn -0.9104 0.0213 -0.4132 +vn 0.7965 0.0791 0.5995 +vn 0.2178 0.9745 0.0544 +vn -0.2725 -0.9457 0.1773 +vn 0.3271 -0.0944 -0.9402 +vn -0.0894 0.9675 -0.2364 +vn -0.8719 -0.0755 -0.4839 +vn -0.9938 0.0941 0.0589 +vn 0.9998 -0.0174 0.0077 +vn -0.2200 -0.9383 0.2667 +vn -0.7517 0.2021 0.6277 +vn 0.0117 0.9977 -0.0670 +vn 0.7580 -0.1398 -0.6371 +vn -0.2097 -0.9497 0.2325 +vn 0.4615 0.5732 -0.6771 +vn -0.5932 0.7810 0.1952 +vn -0.4711 0.8332 0.2896 +vn -0.2876 0.3872 0.8760 +vn 0.2811 -0.4577 -0.8435 +vn 0.3577 0.9110 -0.2051 +vn -0.3941 -0.8261 0.4027 +vn 0.4298 0.8782 0.2101 +vn -0.8149 0.5790 -0.0280 +vn 0.6148 -0.7839 0.0867 +vn -0.7295 -0.6585 -0.1848 +vn -0.6685 0.4797 0.5683 +vn 0.4678 0.8795 -0.0877 +vn 0.5949 -0.5882 -0.5479 +vn -0.6039 -0.7701 0.2056 +vn -0.3291 0.8416 0.4282 +vn 0.2781 0.4194 0.8642 +vn 0.5038 0.6762 -0.5376 +vn -0.5943 -0.4566 0.6621 +vn 0.5481 -0.7374 -0.3948 +vn 0.8556 -0.3745 0.3573 +vn -0.6550 -0.4905 0.5748 +vn -0.6499 0.7288 0.2155 +vn 0.4264 0.5950 -0.6813 +vn 0.6335 -0.7499 -0.1903 +vn -0.4599 -0.5565 0.6919 +vn 0.8109 0.3794 -0.4456 +vn -0.8100 -0.1752 0.5596 +vn 0.2914 -0.7470 -0.5976 +vn 0.2690 0.6740 -0.6880 +vn -0.8448 0.5217 -0.1193 +vn 0.7547 -0.5933 0.2801 +vn -0.6461 -0.4114 0.6429 +vn -0.3883 0.8721 0.2978 +vn 0.3508 0.5176 -0.7804 +vn 0.3826 -0.8795 -0.2829 +vn -0.4180 -0.3621 0.8332 +vn 0.8765 0.2784 -0.3927 +vn -0.8407 -0.2444 0.4833 +vn -0.1261 -0.5163 -0.8471 +vn 0.3504 0.5253 0.7754 +vn 0.8547 -0.2614 0.4485 +vn 0.0839 0.5954 -0.7990 +vn -0.5247 -0.5033 0.6866 +vn -0.6983 0.7157 0.0145 +vn 0.3298 0.5010 -0.8001 +vn 0.7411 -0.6602 -0.1225 +vn -0.4331 -0.4093 0.8031 +vn -0.9589 0.1474 -0.2423 +vn 0.5949 0.6374 -0.4898 +vn 0.1486 -0.7505 -0.6439 +vn 0.4890 -0.8146 -0.3119 +vn -0.5073 -0.4918 0.7076 +vn -0.6247 -0.3704 0.6874 +vn -0.0710 0.8171 0.5721 +vn 0.4464 0.5441 -0.7104 +vn 0.5914 -0.7831 -0.1927 +vn -0.4738 -0.5082 0.7192 +vn 0.5172 0.4376 -0.7356 +vn -0.5878 -0.1870 0.7871 +vn 0.3673 -0.8894 -0.2722 +vn 0.0349 0.4740 -0.8798 +vn -0.9371 0.0139 -0.3487 +vn 0.7538 -0.1086 0.6480 +vn -0.5897 -0.4279 0.6849 +vn -0.6510 0.7559 -0.0687 +vn 0.3060 0.3065 -0.9013 +vn 0.6576 -0.7530 0.0232 +vn -0.4199 -0.1893 0.8876 +vn -0.2473 0.9580 0.1455 +vn -0.2020 -0.9484 0.2444 +vn 0.5830 -0.6765 0.4500 +vn -0.4605 0.1303 0.8781 +vn 0.4085 -0.4306 -0.8048 +vn 0.2165 0.9668 -0.1358 +vn 0.3120 -0.4462 -0.8388 +vn 0.2631 -0.1403 -0.9545 +vn -0.5192 -0.5257 -0.6738 +vn -0.8836 -0.0571 -0.4648 +vn -0.7339 0.3227 0.5977 +vn -0.8435 -0.1810 -0.5057 +vn 0.7459 0.0919 0.6597 +vn -0.6172 -0.7793 -0.1086 +vn -0.5849 0.2350 0.7763 +vn 0.6106 0.7832 0.1175 +vn 0.4756 -0.3733 -0.7965 +vn 0.6124 -0.0786 -0.7866 +vn -0.3226 0.1594 0.9330 +vn -0.8634 -0.2877 -0.4145 +vn 0.4235 0.1895 -0.8858 +vn -0.1220 0.9649 -0.2326 +vn 0.4553 -0.0643 -0.8880 +vn 0.5315 -0.4396 0.7241 +vn 0.1099 -0.9620 0.2501 +vn -0.4799 0.2512 0.8406 +vn -0.7576 0.1088 0.6436 +vn -0.7008 0.5242 -0.4838 +vn 0.1837 0.9773 -0.1054 +vn 0.5751 -0.0263 -0.8176 +vn 0.4974 -0.1172 -0.8595 +vn -0.5375 -0.8324 -0.1348 +vn -0.1628 -0.9842 0.0700 +vn -0.4796 0.2149 0.8508 +vn -0.4151 0.2790 0.8659 +vn 0.5206 0.8375 0.1659 +vn 0.1999 0.2686 0.9423 +vn 0.4974 0.6591 -0.5640 +vn 0.5980 0.1225 -0.7921 +vn -0.6773 0.1812 -0.7131 +vn 0.2671 -0.2905 0.9188 +vn -0.8915 -0.1078 0.4400 +vn 0.3109 -0.6088 -0.7299 +vn -0.2057 -0.2590 0.9437 +vn -0.1071 -0.9928 -0.0531 +vn 0.1601 0.9863 -0.0400 +vn 0.2084 -0.0774 -0.9750 +vn -0.6295 -0.7689 -0.1116 +vn -0.7003 -0.7117 -0.0558 +vn -0.0933 -0.0398 0.9948 +vn -0.2426 0.0430 0.9692 +vn 0.6697 0.7197 0.1831 +vn 0.7238 0.6792 0.1215 +vn 0.1418 0.0367 -0.9892 +vn 0.2546 -0.2867 -0.9236 +vn -0.8678 -0.4559 -0.1977 +vn -0.4612 0.1783 0.8692 +vn 0.8370 0.4766 0.2687 +vn 0.1574 -0.5422 -0.8254 +vn -0.9128 0.1144 -0.3920 +vn -0.4638 0.5400 0.7024 +vn 0.7789 -0.0185 0.6269 +vn -0.5785 0.4621 -0.6722 +vn 0.4140 -0.2452 -0.8766 +vn -0.3969 0.3223 0.8594 +vn -0.0643 -0.9634 0.2601 +vn 0.4249 -0.1725 -0.8886 +vn 0.1659 -0.8895 0.4257 +vn -0.4703 0.3457 0.8120 +vn -0.2182 0.9112 -0.3495 +vn 0.5066 0.0654 -0.8597 +vn 0.5320 -0.3871 0.7531 +vn -0.7423 0.1524 0.6525 +vn -0.6625 0.5178 -0.5412 +vn -0.3562 -0.8956 -0.2664 +vn -0.3446 0.1057 0.9328 +vn -0.1992 0.9799 0.0053 +vn 0.3336 0.1680 -0.9276 +vn 0.2019 -0.9794 -0.0085 +vn -0.3694 0.0117 0.9292 +vn 0.3135 0.2266 -0.9222 +vn 0.6053 -0.7645 0.2216 +vn -0.4899 -0.0173 0.8716 +vn -0.6371 0.7546 -0.1572 +vn -0.7236 -0.5849 -0.3664 +vn -0.5327 -0.8438 0.0647 +vn -0.3446 0.5336 0.7724 +vn 0.1284 0.9133 -0.3865 +vn 0.2985 -0.3186 -0.8997 +vn -0.1022 -0.9435 0.3152 +vn -0.2823 0.4325 0.8563 +vn 0.3348 -0.2232 -0.9155 +vn 0.2145 -0.8276 0.5187 +vn -0.4124 0.4160 0.8104 +vn -0.3006 0.8738 -0.3824 +vn 0.3416 0.1692 -0.9245 +vn 0.4642 -0.1135 0.8784 +vn -0.8134 -0.1030 0.5724 +vn -0.8122 0.1267 -0.5695 +vn 0.9415 -0.2104 -0.2631 +vn 0.0633 -0.9271 0.3694 +vn -0.9104 -0.1301 0.3928 +vn -0.1711 0.9275 -0.3324 +vn -0.0690 -0.8846 -0.4613 +vn -0.8465 -0.2876 0.4481 +vn 0.3498 0.8982 0.2664 +vn 0.7957 -0.0475 -0.6039 +vn -0.5592 -0.4258 0.7113 +vn 0.5651 0.5927 0.5739 +vn 0.4646 0.3662 -0.8063 +vn -0.7067 0.0222 0.7072 +vn 0.4937 0.0294 0.8691 +vn 0.7111 0.1980 -0.6746 +vn 0.5981 0.0137 -0.8013 +vn 0.6127 -0.7754 0.1525 +vn -0.7857 0.6172 0.0416 +vn -0.4353 -0.5450 0.7166 +vn 0.1299 -0.7822 -0.6094 +vn -0.6591 -0.6440 0.3884 +vn -0.1085 0.7966 0.5946 +vn 0.7068 0.3494 -0.6151 +vn 0.7064 0.3379 -0.6220 +vn -0.4297 -0.3527 -0.8313 +vn -0.8181 -0.4300 0.3817 +vn 0.3101 0.2952 0.9037 +vn 0.7115 0.0658 -0.6996 +vn -0.5774 0.3389 -0.7428 +vn -0.9075 0.0416 0.4179 +vn 0.3667 -0.3583 0.8586 +vn -0.2755 0.9545 0.1143 +vn -0.9270 -0.3737 0.0329 +vn 0.9256 0.3770 0.0335 +vn -0.7865 -0.4321 0.4412 +vn -0.2490 0.9599 0.1285 +vn 0.8157 0.3547 -0.4569 +vn 0.4216 -0.8783 -0.2255 +vn -0.4351 -0.4289 0.7917 +vn -0.1481 0.9665 0.2094 +vn 0.4549 0.3426 -0.8220 +vn 0.2574 -0.8763 -0.4072 +vn 0.0335 -0.9107 -0.4116 +vn -0.0791 -0.4056 0.9106 +vn -0.0265 0.9485 0.3156 +vn 0.0798 0.3353 -0.9387 +vn 0.3401 -0.3729 0.8633 +vn 0.0044 0.9708 0.2399 +vn -0.3684 0.3597 -0.8573 +vn -0.1224 -0.8686 -0.4803 +vn 0.9876 0.1284 -0.0904 +vn -0.2107 0.9162 0.3407 +vn -0.9769 0.1397 -0.1614 +vn -0.3239 -0.8267 -0.4601 +vn 0.3711 -0.9220 -0.1109 +vn -0.3999 0.9080 0.1250 +vn 0.8647 0.4267 -0.2651 +vn 0.2298 -0.7115 -0.6640 +vn -0.4953 -0.6927 0.5242 +vn -0.1132 0.8403 0.5301 +vn 0.5370 0.5298 -0.6565 +vn -0.1055 -0.6795 -0.7261 +vn -0.2539 -0.6941 0.6737 +vn 0.1121 0.7165 0.6885 +vn 0.2393 0.6455 -0.7253 +vn 0.1504 -0.9154 0.3734 +vn 0.4241 0.8094 0.4062 +vn -0.3577 0.7131 -0.6029 +vn -0.5820 -0.4526 -0.6756 +vn -0.8391 -0.3764 -0.3927 +vn 0.7841 -0.5636 -0.2600 +vn 0.6074 0.6459 0.4624 +vn -0.6371 0.7212 0.2719 +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.7565 0.2801 0.5910 +vn 0.5443 -0.8297 -0.1235 +vn 0.8828 0.4547 0.1177 +vn 0.8838 -0.4285 0.1878 +vn -0.6795 -0.7130 -0.1730 +vn -0.2525 -0.9041 -0.3447 +vn -0.8862 0.2546 -0.3871 +vn -0.7540 0.6569 -0.0005 +vn 0.1598 0.9663 0.2016 +vn 0.6875 0.7038 0.1787 +vn 0.6206 -0.7828 -0.0449 +vn -0.1026 -0.7106 -0.6961 +vn -0.3012 0.4964 -0.8142 +vn 0.1147 -0.9166 0.3830 +vn -0.1488 0.9297 -0.3370 +vn -0.6268 -0.3634 -0.6893 +vn 0.4333 -0.8807 0.1914 +vn -0.7989 -0.4539 -0.3947 +vn -0.1489 0.9872 -0.0565 +vn 0.8655 0.2728 0.4202 +vn 0.9019 0.3333 -0.2748 +vn 0.4442 -0.8537 -0.2717 +vn -0.8436 -0.4830 0.2346 +vn -0.1912 0.9616 0.1970 +vn 0.2033 -0.8017 -0.5622 +vn -0.4912 -0.5450 0.6795 +vn -0.0721 0.9248 0.3736 +vn 0.5095 0.4379 -0.7407 +vn 0.3860 -0.5540 0.7376 +vn -0.0119 0.9527 0.3037 +vn -0.4849 -0.5845 0.6506 +vn 0.3445 -0.8966 0.2782 +vn -0.0772 0.9793 -0.1873 +vn -0.8300 -0.5010 -0.2453 +vn 0.9119 0.1938 0.3618 +vn 0.3814 -0.8538 -0.3543 +vn -0.8523 -0.4728 0.2238 +vn -0.1429 0.9481 0.2840 +vn 0.9097 0.3007 -0.2865 +vn 0.1304 -0.7520 -0.6461 +vn -0.5343 -0.5766 0.6181 +vn -0.0021 0.8722 0.4892 +vn 0.5445 0.4768 -0.6901 +vn -0.0902 -0.7405 -0.6660 +vn -0.2096 -0.6247 0.7522 +vn 0.1063 0.7960 0.5958 +vn 0.2020 0.5904 -0.7814 +vn 0.3252 -0.6269 0.7080 +vn 0.0485 0.8656 0.4984 +vn -0.3481 0.6422 -0.6829 +vn -0.1956 -0.6185 -0.7610 +vn 0.9736 -0.0040 -0.2282 +vn -0.2017 0.7745 0.5995 +vn -0.9944 0.0933 0.0504 +vn -0.4004 -0.6883 -0.6049 +vn -0.1248 -0.7838 -0.6083 +vn -0.8725 -0.4818 -0.0812 +vn -0.4472 0.8721 0.1986 +vn 0.5213 -0.7642 -0.3797 +vn -0.7499 -0.6135 0.2476 +vn -0.3307 0.8915 0.3096 +vn 0.8182 0.4883 -0.3035 +vn 0.5073 0.5487 -0.6645 +vn 0.2258 -0.7195 -0.6568 +vn -0.4715 -0.6893 0.5501 +vn -0.1392 0.8252 0.5474 +vn -0.2674 -0.5836 -0.7667 +vn -0.0568 -0.8294 0.5558 +vn 0.3050 0.7751 0.5533 +vn 0.0095 0.6415 -0.7671 +vn -0.0947 -0.7168 -0.6909 +vn 0.6058 0.3301 -0.7240 +vn -0.4589 -0.6586 0.5963 +vn 0.4527 0.5344 -0.7138 +vn 0.5595 0.4568 -0.6916 +vn -0.4402 -0.5088 -0.7398 +vn -0.6433 -0.5243 0.5579 +vn 0.3556 0.4699 0.8079 +vn 0.0817 0.6801 0.7285 +vn 0.3670 -0.0994 -0.9249 +vn 0.4477 0.2074 -0.8698 +vn 0.4768 0.2563 -0.8408 +vn 0.5041 -0.8597 -0.0821 +vn -0.2968 -0.4352 0.8500 +vn -0.4614 0.8538 0.2413 +vn -0.0479 -0.9042 -0.4244 +vn -0.5334 -0.4823 0.6949 +vn 0.0086 0.8769 0.4806 +vn 0.5231 0.2213 -0.8231 +vn -0.4604 -0.6189 -0.6364 +vn -0.6689 -0.3560 0.6525 +vn 0.4275 0.6255 0.6527 +vn 0.5744 0.2549 -0.7779 +vn 0.4376 -0.0943 -0.8942 +vn -0.7630 0.0448 -0.6449 +vn -0.8311 0.0761 0.5509 +vn 0.3769 -0.0973 0.9211 +s 1 +f 900/1/1 2/2/2 3/3/3 +f 899/4/4 3/3/3 4/5/5 +f 898/6/6 4/7/5 1/8/7 +f 254/9/8 1/8/7 253/10/9 +f 6/11/10 10/12/11 5/13/12 +f 7/14/13 9/15/14 6/11/10 +f 8/16/15 12/17/16 7/18/13 +f 5/13/12 11/19/17 8/16/15 +f 14/20/18 18/21/19 13/22/20 +f 15/23/21 17/24/22 14/20/18 +f 16/25/23 20/26/24 15/27/21 +f 13/22/20 19/28/25 16/25/23 +f 22/29/26 26/30/27 21/31/28 +f 23/32/29 25/33/30 22/29/26 +f 24/34/31 28/35/32 23/36/29 +f 21/31/28 27/37/33 24/34/31 +f 862/38/34 32/39/35 29/40/36 +f 863/41/37 31/42/38 32/39/35 +f 864/43/39 30/44/40 31/45/38 +f 518/46/41 29/40/36 517/47/42 +f 866/48/43 36/49/44 33/50/45 +f 867/51/46 35/52/47 36/49/44 +f 868/53/48 34/54/49 35/55/47 +f 450/56/50 353/57/51 449/58/52 +f 871/59/53 37/60/54 870/61/55 +f 872/62/56 40/63/57 871/64/53 +f 869/65/58 39/66/59 872/62/56 +f 358/67/60 161/68/61 357/69/62 +f 42/70/63 46/71/64 41/72/65 +f 43/73/66 45/74/67 42/70/63 +f 44/75/68 48/76/69 43/77/66 +f 41/72/65 47/78/70 44/75/68 +f 49/79/71 53/80/72 54/81/73 +f 50/82/74 56/83/75 53/80/72 +f 51/84/76 55/85/77 56/83/75 +f 52/86/78 54/81/73 55/87/77 +f 57/88/79 61/89/80 62/90/81 +f 58/91/82 64/92/83 61/89/80 +f 59/93/84 63/94/85 64/92/83 +f 60/95/86 62/90/81 63/96/85 +f 875/97/87 65/98/88 874/99/89 +f 876/100/90 68/101/91 875/102/87 +f 873/103/92 67/104/93 876/100/90 +f 422/105/94 225/106/95 421/107/96 +f 69/108/97 73/109/98 74/110/99 +f 70/111/100 76/112/101 73/113/98 +f 71/114/102 75/115/103 76/112/101 +f 72/116/104 74/110/99 75/115/103 +f 77/117/105 81/118/106 82/119/107 +f 78/120/108 84/121/109 81/118/106 +f 79/122/110 83/123/111 84/121/109 +f 80/124/112 82/119/107 83/125/111 +f 85/126/113 89/127/114 90/128/115 +f 86/129/116 92/130/117 89/127/114 +f 87/131/118 91/132/119 92/130/117 +f 88/133/120 90/128/115 91/134/119 +f 93/135/121 97/136/122 98/137/123 +f 94/138/124 100/139/125 97/140/122 +f 95/141/126 99/142/127 100/139/125 +f 96/143/128 98/137/123 99/142/127 +f 102/144/129 106/145/130 101/146/131 +f 103/147/132 105/148/133 102/144/129 +f 104/149/134 108/150/135 103/151/132 +f 101/146/131 107/152/136 104/149/134 +f 109/153/137 113/154/138 114/155/139 +f 110/156/140 116/157/141 113/154/138 +f 111/158/142 115/159/143 116/157/141 +f 112/160/144 114/155/139 115/161/143 +f 657/162/145 119/163/146 660/164/147 +f 659/165/148 119/163/146 120/166/149 +f 658/167/150 120/168/149 117/169/151 +f 322/170/152 117/169/151 321/171/153 +f 908/172/154 122/173/155 123/174/156 +f 908/172/154 124/175/157 907/176/158 +f 907/176/158 121/177/159 906/178/160 +f 326/179/152 121/180/159 325/181/153 +f 844/182/161 126/183/162 127/184/163 +f 844/182/161 128/185/164 843/186/165 +f 843/186/165 125/187/166 842/188/167 +f 330/189/152 125/187/166 329/190/153 +f 334/191/152 129/192/168 333/193/153 +f 134/194/169 138/195/170 133/196/171 +f 135/197/172 137/198/173 134/194/169 +f 136/199/174 140/200/175 135/197/172 +f 133/201/171 139/202/176 136/199/174 +f 912/203/177 142/204/178 143/205/179 +f 912/203/177 144/206/180 911/207/181 +f 911/207/181 141/208/182 910/209/183 +f 342/210/152 141/211/182 341/212/153 +f 145/213/184 149/214/185 150/215/186 +f 146/216/187 152/217/188 149/218/185 +f 147/219/189 151/220/190 152/217/188 +f 148/221/191 150/215/186 151/220/190 +f 754/222/192 759/223/193 753/224/194 +f 755/225/195 758/226/196 754/222/192 +f 756/227/197 757/228/198 755/225/195 +f 753/229/194 760/230/199 756/227/197 +f 154/231/200 159/232/201 158/233/202 +f 156/234/203 159/235/201 155/236/204 +f 153/237/205 160/238/206 156/234/203 +f 286/239/152 49/79/71 285/240/153 +f 3/3/3 254/9/8 255/241/207 +f 4/5/5 255/241/207 256/242/208 +f 1/8/7 256/243/208 253/10/9 +f 441/244/209 246/245/210 245/246/211 +f 259/247/212 6/11/10 258/248/152 +f 259/249/212 8/16/15 7/18/13 +f 257/250/153 8/16/15 260/251/213 +f 262/252/152 13/22/20 261/253/153 +f 263/254/212 14/20/18 262/252/152 +f 263/255/212 16/25/23 15/27/21 +f 261/253/153 16/25/23 264/256/213 +f 266/257/152 21/31/28 265/258/153 +f 267/259/212 22/29/26 266/257/152 +f 267/260/212 24/34/31 23/36/29 +f 265/258/153 24/34/31 268/261/213 +f 175/262/214 370/263/215 371/264/216 +f 269/265/153 862/38/34 861/266/217 +f 271/267/212 862/38/34 270/268/152 +f 272/269/213 863/41/37 271/267/212 +f 269/265/153 864/43/39 272/270/213 +f 274/271/152 865/272/218 273/273/153 +f 275/274/212 866/48/43 274/271/152 +f 275/274/212 868/275/48 867/51/46 +f 273/273/153 868/53/48 276/276/213 +f 277/277/153 870/61/55 869/65/58 +f 279/278/212 870/61/55 278/279/152 +f 280/280/213 871/64/53 279/281/212 +f 277/277/153 872/62/56 280/280/213 +f 287/282/212 50/82/74 286/239/152 +f 287/282/212 52/283/78 51/84/76 +f 285/240/153 52/86/78 288/284/213 +f 158/233/202 537/285/219 157/286/220 +f 291/287/212 58/91/82 290/288/152 +f 291/287/212 60/289/86 59/93/84 +f 289/290/153 60/95/86 292/291/213 +f 258/248/152 5/13/12 257/250/153 +f 293/292/153 874/99/89 873/103/92 +f 295/293/212 874/99/89 294/294/152 +f 296/295/213 875/102/87 295/296/212 +f 293/292/153 876/100/90 296/295/213 +f 299/297/212 70/111/100 298/298/152 +f 299/297/212 72/116/104 71/114/102 +f 297/299/153 72/116/104 300/300/213 +f 406/301/221 209/302/222 405/303/223 +f 303/304/212 78/120/108 302/305/152 +f 303/304/212 80/306/112 79/122/110 +f 301/307/153 80/124/112 304/308/213 +f 307/309/212 86/129/116 306/310/152 +f 307/309/212 88/311/120 87/131/118 +f 305/312/153 88/133/120 308/313/213 +f 290/288/152 57/88/79 289/290/153 +f 311/314/212 94/138/124 310/315/152 +f 311/314/212 96/143/128 95/141/126 +f 309/316/153 96/143/128 312/317/213 +f 315/318/212 102/144/129 314/319/152 +f 315/320/212 104/149/134 103/151/132 +f 313/321/153 104/149/134 316/322/213 +f 398/323/224 201/324/225 397/325/226 +f 319/326/212 110/156/140 318/327/152 +f 319/326/212 112/328/144 111/158/142 +f 317/329/153 112/160/144 320/330/213 +f 417/331/227 222/332/228 221/333/229 +f 323/334/212 118/335/230 322/170/152 +f 323/334/212 120/166/149 119/163/146 +f 321/171/153 120/168/149 324/336/213 +f 365/337/231 170/338/232 169/339/233 +f 327/340/212 122/173/155 326/179/152 +f 327/340/212 124/175/157 123/174/156 +f 325/341/153 124/175/157 328/342/213 +f 331/343/212 126/183/162 330/344/152 +f 331/343/212 128/185/164 127/184/163 +f 329/190/153 128/185/164 332/345/213 +f 335/346/212 130/347/234 334/191/152 +f 335/346/212 132/348/235 131/349/236 +f 333/193/153 132/350/235 336/351/213 +f 413/352/237 218/353/238 217/354/239 +f 339/355/212 134/194/169 338/356/152 +f 339/355/212 136/199/174 135/197/172 +f 337/357/153 136/199/174 340/358/213 +f 343/359/212 142/204/178 342/210/152 +f 343/359/212 144/206/180 143/205/179 +f 341/360/153 144/206/180 344/361/213 +f 347/362/212 146/216/187 346/363/152 +f 347/362/212 148/221/191 147/219/189 +f 345/364/153 148/221/191 348/365/213 +f 201/324/225 350/366/240 349/367/241 +f 202/368/242 351/369/243 350/366/240 +f 204/370/244 351/369/243 203/371/245 +f 204/372/244 349/367/241 352/373/246 +f 358/67/60 163/374/247 162/375/248 +f 359/376/249 164/377/250 163/374/247 +f 357/69/62 164/378/250 360/379/251 +f 490/380/252 163/374/247 491/381/253 +f 877/382/254 166/383/255 165/384/256 +f 878/385/257 167/386/258 166/383/255 +f 880/387/259 167/388/258 879/389/260 +f 877/382/254 168/390/261 880/387/259 +f 362/391/262 877/382/254 361/392/263 +f 362/391/262 879/393/260 878/385/257 +f 364/394/264 879/389/260 363/395/265 +f 364/394/264 877/382/254 880/387/259 +f 366/396/266 171/397/267 170/338/232 +f 368/398/268 171/399/267 367/400/269 +f 365/337/231 172/401/270 368/398/268 +f 169/339/233 646/402/271 645/403/272 +f 176/404/273 371/264/216 372/405/274 +f 176/406/273 369/407/275 173/408/276 +f 374/409/277 179/410/278 178/411/279 +f 375/412/280 180/413/281 179/410/278 +f 373/414/282 180/413/281 376/415/283 +f 378/416/284 183/417/285 182/418/286 +f 379/419/287 184/420/288 183/417/285 +f 377/421/289 184/420/288 380/422/290 +f 382/423/291 187/424/292 186/425/293 +f 384/426/294 187/427/292 383/428/295 +f 381/429/296 188/430/297 384/426/294 +f 186/425/293 773/431/298 185/432/299 +f 386/433/300 191/434/301 190/435/302 +f 388/436/303 191/437/301 387/438/304 +f 385/439/305 192/440/306 388/436/303 +f 881/441/307 194/442/308 193/443/309 +f 882/444/310 195/445/311 194/442/308 +f 884/446/312 195/447/311 883/448/313 +f 881/441/307 196/449/314 884/446/312 +f 390/450/315 881/441/307 389/451/316 +f 391/452/317 882/444/310 390/450/315 +f 391/453/317 884/446/312 883/448/313 +f 392/454/318 881/441/307 884/446/312 +f 394/455/319 199/456/320 198/457/321 +f 396/458/322 199/456/320 395/459/323 +f 393/460/324 200/461/325 396/458/322 +f 197/462/326 734/463/327 733/464/328 +f 398/323/224 203/371/245 202/368/242 +f 399/465/329 204/370/244 203/371/245 +f 397/325/226 204/372/244 400/466/330 +f 402/467/331 207/468/332 206/469/333 +f 403/470/334 208/471/335 207/468/332 +f 401/472/336 208/471/335 404/473/337 +f 211/474/338 406/301/221 407/475/339 +f 212/476/340 407/475/339 408/477/341 +f 405/478/223 212/476/340 408/477/341 +f 614/479/342 211/474/338 615/480/343 +f 886/481/344 213/482/345 885/483/346 +f 886/481/344 215/484/347 214/485/348 +f 887/486/349 216/487/350 215/484/347 +f 885/483/346 216/488/350 888/489/351 +f 410/490/352 885/483/346 409/491/353 +f 410/490/352 887/486/349 886/481/344 +f 412/492/354 887/486/349 411/493/355 +f 409/491/353 888/489/351 412/494/354 +f 414/495/356 219/496/357 218/353/238 +f 416/497/358 219/498/357 415/499/359 +f 413/352/237 220/500/360 416/497/358 +f 217/354/239 662/501/361 661/502/362 +f 418/503/363 223/504/364 222/332/228 +f 420/505/365 223/506/364 419/507/366 +f 417/331/227 224/508/367 420/505/365 +f 222/332/228 633/509/368 221/333/229 +f 422/105/94 227/510/369 226/511/370 +f 423/512/371 228/513/372 227/510/369 +f 421/107/96 228/514/372 424/515/373 +f 226/511/370 617/516/374 225/106/95 +f 427/517/375 230/518/376 426/519/377 +f 428/520/378 231/521/379 427/517/375 +f 428/520/378 229/522/380 232/523/381 +f 230/524/376 709/525/382 229/522/380 +f 431/526/383 234/527/384 430/528/385 +f 432/529/386 235/530/387 431/526/383 +f 432/529/386 233/531/388 236/532/389 +f 890/533/390 237/534/391 889/535/392 +f 890/533/390 239/536/393 238/537/394 +f 891/538/395 240/539/396 239/536/393 +f 889/535/392 240/540/396 892/541/397 +f 434/542/398 889/535/392 433/543/399 +f 434/542/398 891/538/395 890/533/390 +f 436/544/400 891/538/395 435/545/401 +f 436/546/400 889/535/392 892/541/397 +f 438/547/402 243/548/403 242/549/404 +f 439/550/405 244/551/406 243/552/403 +f 437/553/407 244/551/406 440/554/408 +f 442/555/409 247/556/410 246/245/210 +f 444/557/411 247/558/410 443/559/412 +f 441/244/209 248/560/413 444/557/411 +f 246/245/210 501/561/414 245/246/211 +f 446/562/415 251/563/416 250/564/417 +f 448/565/418 251/566/416 447/567/419 +f 445/568/420 252/569/421 448/565/418 +f 250/564/417 597/570/422 249/571/423 +f 450/56/50 355/572/424 354/573/425 +f 451/574/426 356/575/427 355/576/424 +f 449/58/52 356/575/427 452/577/428 +f 471/578/429 354/573/425 355/572/424 +f 893/579/430 454/580/431 453/581/432 +f 894/582/433 455/583/434 454/580/431 +f 896/584/435 455/583/434 895/585/436 +f 893/579/430 456/586/437 896/587/435 +f 458/588/438 893/579/430 457/589/439 +f 458/588/438 895/585/436 894/582/433 +f 460/590/440 895/585/436 459/591/441 +f 457/589/439 896/587/435 460/592/440 +f 471/593/429 356/575/427 472/594/442 +f 472/594/442 353/57/51 469/595/443 +f 474/596/444 33/50/45 473/597/445 +f 215/484/347 466/598/446 214/485/348 +f 215/484/347 468/599/447 467/600/448 +f 213/482/345 468/601/447 216/488/350 +f 462/602/449 9/15/14 461/603/450 +f 491/381/253 164/377/250 492/604/451 +f 489/605/452 164/378/250 161/68/61 +f 485/606/453 38/607/454 37/60/54 +f 239/536/393 482/608/455 238/537/394 +f 240/539/396 483/609/456 239/536/393 +f 240/540/396 481/610/457 484/611/458 +f 463/612/459 10/12/11 462/602/449 +f 463/612/459 12/17/16 11/19/17 +f 464/613/460 9/15/14 12/614/16 +f 462/602/449 465/615/461 466/598/446 +f 463/612/459 466/598/446 467/600/448 +f 463/612/459 468/599/447 464/616/460 +f 464/613/460 465/615/461 461/603/450 +f 473/597/445 470/617/462 474/596/444 +f 475/618/463 470/617/462 471/578/429 +f 476/619/464 471/593/429 472/594/442 +f 476/619/464 469/595/443 473/597/445 +f 470/617/462 353/57/51 354/573/425 +f 475/618/463 34/54/49 474/596/444 +f 475/620/463 36/49/44 35/52/47 +f 476/619/464 33/50/45 36/49/44 +f 477/621/465 18/21/19 17/24/22 +f 479/622/466 18/21/19 478/623/467 +f 480/624/468 19/28/25 479/622/466 +f 480/625/468 17/24/22 20/626/24 +f 477/621/465 482/608/455 478/623/467 +f 479/622/466 482/608/455 483/609/456 +f 480/624/468 483/609/456 484/627/458 +f 480/625/468 481/610/457 477/621/465 +f 214/485/348 465/615/461 213/482/345 +f 487/628/469 38/607/454 486/629/470 +f 488/630/471 39/66/59 487/628/469 +f 488/631/471 37/60/54 40/632/57 +f 485/606/453 490/380/252 486/629/470 +f 486/629/470 491/381/253 487/628/469 +f 488/630/471 491/381/253 492/604/451 +f 485/606/453 492/633/451 489/605/452 +f 490/380/252 161/68/61 162/375/248 +f 247/556/410 502/634/472 246/245/210 +f 247/558/410 504/635/473 503/636/474 +f 248/560/413 501/561/414 504/635/473 +f 494/637/475 897/638/476 493/639/477 +f 495/640/478 898/6/6 494/637/475 +f 495/641/478 900/1/1 899/4/4 +f 496/642/479 897/638/476 900/1/1 +f 494/637/475 497/643/480 498/644/481 +f 495/640/478 498/644/481 499/645/482 +f 495/641/478 500/646/483 496/642/479 +f 496/642/479 497/643/480 493/639/477 +f 498/644/481 501/561/414 502/634/472 +f 498/644/481 503/647/474 499/645/482 +f 499/648/482 504/635/473 500/646/483 +f 497/643/480 504/635/473 501/561/414 +f 562/649/484 557/650/485 561/651/486 +f 455/583/434 514/652/487 454/580/431 +f 455/583/434 516/653/488 515/654/489 +f 456/586/437 513/655/490 516/656/488 +f 507/657/491 26/30/27 506/658/492 +f 508/659/493 27/37/33 507/657/491 +f 508/660/493 25/33/30 28/661/32 +f 505/662/494 510/663/495 506/658/492 +f 507/657/491 510/663/495 511/664/496 +f 508/659/493 511/664/496 512/665/497 +f 508/660/493 509/666/498 505/662/494 +f 510/663/495 513/655/490 514/652/487 +f 511/664/496 514/652/487 515/654/489 +f 511/664/496 516/653/488 512/665/497 +f 512/667/497 513/655/490 509/666/498 +f 237/534/391 482/608/455 481/610/457 +f 190/435/302 525/668/499 189/669/500 +f 191/434/301 526/670/501 190/435/302 +f 191/437/301 528/671/502 527/672/503 +f 192/440/306 525/668/499 528/671/502 +f 519/673/504 30/44/40 518/46/41 +f 519/674/504 32/39/35 31/42/38 +f 520/675/505 29/40/36 32/39/35 +f 518/46/41 521/676/506 522/677/507 +f 519/673/504 522/677/507 523/678/508 +f 519/674/504 524/679/509 520/675/505 +f 520/675/505 521/676/506 517/47/42 +f 385/439/305 190/435/302 189/669/500 +f 521/676/506 526/670/501 522/677/507 +f 522/677/507 527/680/503 523/678/508 +f 524/679/509 527/672/503 528/671/502 +f 521/676/506 528/671/502 525/668/499 +f 159/232/201 538/681/510 158/233/202 +f 159/235/201 540/682/511 539/683/512 +f 157/286/220 540/682/511 160/238/206 +f 530/684/513 53/80/72 529/685/514 +f 531/686/515 54/81/73 530/684/513 +f 531/687/515 56/83/75 55/85/77 +f 532/688/516 53/80/72 56/83/75 +f 530/684/513 533/689/517 534/690/518 +f 531/686/515 534/690/518 535/691/519 +f 531/687/515 536/692/520 532/688/516 +f 532/688/516 533/689/517 529/685/514 +f 534/690/518 537/285/219 538/681/510 +f 534/690/518 539/693/512 535/691/519 +f 535/694/519 540/682/511 536/692/520 +f 533/689/517 540/682/511 537/285/219 +f 195/445/311 554/695/521 194/442/308 +f 195/447/311 556/696/522 555/697/523 +f 196/449/314 553/698/524 556/696/522 +f 543/699/525 62/90/81 542/700/526 +f 543/701/525 64/92/83 63/94/85 +f 544/702/527 61/89/80 64/92/83 +f 542/700/526 545/703/528 546/704/529 +f 542/700/526 547/705/530 543/699/525 +f 543/701/525 548/706/531 544/702/527 +f 541/707/532 548/706/531 545/703/528 +f 561/651/486 550/708/533 562/649/484 +f 562/649/484 551/709/534 563/710/535 +f 564/711/536 551/712/534 552/713/537 +f 561/651/486 552/713/537 549/714/538 +f 550/708/533 553/698/524 554/695/521 +f 551/709/534 554/695/521 555/715/523 +f 551/712/534 556/696/522 552/713/537 +f 552/713/537 553/698/524 549/714/538 +f 545/703/528 558/716/539 546/704/529 +f 547/705/530 558/716/539 559/717/540 +f 548/706/531 559/718/540 560/719/541 +f 548/706/531 557/650/485 545/703/528 +f 563/710/535 558/716/539 562/649/484 +f 563/720/535 560/719/541 559/718/540 +f 557/650/485 564/711/536 561/651/486 +f 505/662/494 26/30/27 25/33/30 +f 167/386/258 574/721/542 166/383/255 +f 167/388/258 576/722/543 575/723/544 +f 165/384/256 576/722/543 168/390/261 +f 566/724/545 89/127/114 565/725/546 +f 567/726/547 90/128/115 566/724/545 +f 567/727/547 92/130/117 91/132/119 +f 568/728/548 89/127/114 92/130/117 +f 566/724/545 569/729/549 570/730/550 +f 567/726/547 570/730/550 571/731/551 +f 567/727/547 572/732/552 568/728/548 +f 568/728/548 569/729/549 565/725/546 +f 570/730/550 573/733/553 574/721/542 +f 570/730/550 575/734/544 571/731/551 +f 571/735/551 576/722/543 572/732/552 +f 569/729/549 576/722/543 573/733/553 +f 542/700/526 61/89/80 541/707/532 +f 175/262/214 586/736/554 174/737/555 +f 176/404/273 587/738/556 175/262/214 +f 176/406/273 585/739/557 588/740/558 +f 577/741/559 46/71/64 45/74/67 +f 43/73/66 282/742/152 283/743/212 +f 44/75/68 283/744/212 284/745/213 +f 41/72/65 284/745/213 281/746/153 +f 689/747/560 686/748/561 690/749/562 +f 282/742/152 41/72/65 281/746/153 +f 173/408/276 370/263/215 174/737/555 +f 579/750/563 46/71/64 578/751/564 +f 580/752/565 47/78/70 579/750/563 +f 580/753/565 45/74/67 48/754/69 +f 577/741/559 582/755/566 578/751/564 +f 579/750/563 582/755/566 583/756/567 +f 580/752/565 583/756/567 584/757/568 +f 580/753/565 581/758/569 577/741/559 +f 582/755/566 585/739/557 586/736/554 +f 582/755/566 587/738/556 583/756/567 +f 583/756/567 588/759/558 584/757/568 +f 581/758/569 588/740/558 585/739/557 +f 251/563/416 598/760/570 250/564/417 +f 251/566/416 600/761/571 599/762/572 +f 252/569/421 597/570/422 600/761/571 +f 602/763/573 589/764/574 590/765/575 +f 603/766/576 590/765/575 591/767/577 +f 603/768/576 592/769/578 604/770/579 +f 604/770/579 589/764/574 601/771/580 +f 602/763/573 81/118/106 601/771/580 +f 605/772/581 594/773/582 606/774/583 +f 606/774/583 595/775/584 607/776/585 +f 608/777/586 595/778/584 596/779/587 +f 605/772/581 596/779/587 593/780/588 +f 593/780/588 598/760/570 594/773/582 +f 594/773/582 599/781/572 595/775/584 +f 596/779/587 599/762/572 600/761/571 +f 593/780/588 600/761/571 597/570/422 +f 603/766/576 82/119/107 602/763/573 +f 603/768/576 84/121/109 83/123/111 +f 604/770/579 81/118/106 84/121/109 +f 590/765/575 605/772/581 606/774/583 +f 591/767/577 606/774/583 607/776/585 +f 591/782/577 608/777/586 592/769/578 +f 592/769/578 605/772/581 589/764/574 +f 616/783/589 211/474/338 212/476/340 +f 613/784/590 212/476/340 209/785/222 +f 609/786/591 74/110/99 73/109/98 +f 610/787/592 75/115/103 74/110/99 +f 612/788/593 75/115/103 611/789/594 +f 609/790/591 76/112/101 612/788/593 +f 609/786/591 614/479/342 610/787/592 +f 610/787/592 615/480/343 611/789/594 +f 612/788/593 615/480/343 616/783/589 +f 609/790/591 616/783/589 613/784/590 +f 613/791/590 210/792/595 614/479/342 +f 226/511/370 619/793/596 618/794/597 +f 227/510/369 620/795/598 619/793/596 +f 225/106/95 620/796/598 228/514/372 +f 621/797/599 902/798/600 622/799/601 +f 622/799/601 903/800/602 623/801/603 +f 624/802/604 903/800/602 904/803/605 +f 621/797/599 904/804/605 901/805/606 +f 617/516/374 902/798/600 901/805/606 +f 619/793/596 902/798/600 618/794/597 +f 620/795/598 903/800/602 619/793/596 +f 620/796/598 901/805/606 904/804/605 +f 625/806/607 622/799/601 626/807/608 +f 627/808/609 622/799/601 623/801/603 +f 628/809/610 623/801/603 624/802/604 +f 628/810/610 621/797/599 625/806/607 +f 629/811/611 626/807/608 630/812/612 +f 630/812/612 627/808/609 631/813/613 +f 632/814/614 627/808/609 628/809/610 +f 629/811/611 628/810/610 625/806/607 +f 629/811/611 66/815/615 65/98/88 +f 631/813/613 66/815/615 630/812/612 +f 632/814/614 67/104/93 631/813/613 +f 632/816/614 65/98/88 68/817/91 +f 381/429/296 186/425/293 185/432/299 +f 223/504/364 634/818/616 222/332/228 +f 223/506/364 636/819/617 635/820/618 +f 224/508/367 633/509/368 636/819/617 +f 638/821/619 633/509/368 634/818/616 +f 638/821/619 635/822/618 639/823/620 +f 639/824/620 636/819/617 640/825/621 +f 637/826/622 636/819/617 633/509/368 +f 642/827/623 637/826/622 638/821/619 +f 643/828/624 638/821/619 639/823/620 +f 643/829/624 640/825/621 644/830/625 +f 644/830/625 637/826/622 641/831/626 +f 642/827/623 113/154/138 641/831/626 +f 643/828/624 114/155/139 642/827/623 +f 643/829/624 116/157/141 115/159/143 +f 644/830/625 113/154/138 116/157/141 +f 171/397/267 646/402/271 170/338/232 +f 172/401/270 647/832/627 171/399/267 +f 172/401/270 645/403/272 648/833/628 +f 649/834/629 646/402/271 650/835/630 +f 650/835/630 647/836/627 651/837/631 +f 652/838/632 647/832/627 648/833/628 +f 649/834/629 648/833/628 645/403/272 +f 654/839/633 649/834/629 650/835/630 +f 655/840/634 650/835/630 651/837/631 +f 655/841/634 652/838/632 656/842/635 +f 656/842/635 649/834/629 653/843/636 +f 658/167/150 653/843/636 654/839/633 +f 658/167/150 655/840/634 659/844/148 +f 659/165/148 656/842/635 660/164/147 +f 657/162/145 656/842/635 653/843/636 +f 906/845/160 122/173/155 905/846/637 +f 219/496/357 662/501/361 218/353/238 +f 220/500/360 663/847/638 219/498/357 +f 220/500/360 661/502/362 664/848/639 +f 665/849/640 662/501/361 666/850/641 +f 666/850/641 663/851/638 667/852/642 +f 668/853/643 663/847/638 664/848/639 +f 665/849/640 664/848/639 661/502/362 +f 670/854/644 665/849/640 666/850/641 +f 670/854/644 667/852/642 671/855/645 +f 671/856/645 668/853/643 672/857/646 +f 669/858/647 668/853/643 665/849/640 +f 674/859/648 669/858/647 670/854/644 +f 675/860/649 670/854/644 671/855/645 +f 675/861/649 672/857/646 676/862/650 +f 676/862/650 669/858/647 673/863/651 +f 130/347/234 674/859/648 129/192/168 +f 129/192/168 675/860/649 132/350/235 +f 131/349/236 675/861/649 676/862/650 +f 130/347/234 676/862/650 673/863/651 +f 677/864/652 350/366/240 678/865/653 +f 679/866/654 350/366/240 351/369/243 +f 680/867/655 351/369/243 352/868/246 +f 680/869/655 349/367/241 677/864/652 +f 682/870/656 677/864/652 678/865/653 +f 683/871/657 678/865/653 679/866/654 +f 683/871/657 680/867/655 684/872/658 +f 684/873/658 677/864/652 681/874/659 +f 686/748/561 681/874/659 682/870/656 +f 686/748/561 683/871/657 687/875/660 +f 687/875/660 684/872/658 688/876/661 +f 685/877/662 684/873/658 681/874/659 +f 690/749/562 687/875/660 691/878/663 +f 687/875/660 692/879/664 691/878/663 +f 688/880/661 689/747/560 692/881/664 +f 346/882/152 145/213/184 345/364/153 +f 689/747/560 106/145/130 105/148/133 +f 690/749/562 107/152/136 106/145/130 +f 692/879/664 107/152/136 691/878/663 +f 689/747/560 108/883/135 692/881/664 +f 310/884/152 93/135/121 309/316/153 +f 178/411/279 693/885/665 177/886/666 +f 179/410/278 694/887/667 178/411/279 +f 179/410/278 696/888/668 695/889/669 +f 180/413/281 693/890/665 696/888/668 +f 698/891/670 693/885/665 694/887/667 +f 699/892/671 694/887/667 695/889/669 +f 699/892/671 696/888/668 700/893/672 +f 700/893/672 693/890/665 697/894/673 +f 701/895/674 698/891/670 702/896/675 +f 702/896/675 699/892/671 703/897/676 +f 704/898/677 699/892/671 700/893/672 +f 701/899/674 700/893/672 697/894/673 +f 705/900/678 702/896/675 706/901/679 +f 706/901/679 703/897/676 707/902/680 +f 708/903/681 701/899/674 705/904/678 +f 708/903/681 703/897/676 704/898/677 +f 98/137/123 705/900/678 706/901/679 +f 98/137/123 707/902/680 99/142/127 +f 99/142/127 708/903/681 100/139/125 +f 97/140/122 708/903/681 705/904/678 +f 374/409/277 177/886/666 373/905/282 +f 230/518/376 711/906/682 710/907/683 +f 231/521/379 712/908/684 711/906/682 +f 229/522/380 712/908/684 232/523/381 +f 714/909/685 709/525/382 710/910/683 +f 715/911/686 710/907/683 711/906/682 +f 715/911/686 712/908/684 716/912/687 +f 716/912/687 709/525/382 713/913/688 +f 718/914/689 713/913/688 714/909/685 +f 718/915/689 715/911/686 719/916/690 +f 719/916/690 716/912/687 720/917/691 +f 717/918/692 716/912/687 713/913/688 +f 302/305/152 77/117/105 301/307/153 +f 721/919/693 718/914/689 722/920/694 +f 723/921/695 718/915/689 719/916/690 +f 724/922/696 719/916/690 720/917/691 +f 724/922/696 717/918/692 721/919/693 +f 726/923/697 721/919/693 722/920/694 +f 726/924/697 723/921/695 727/925/698 +f 727/925/698 724/922/696 728/926/699 +f 725/927/700 724/922/696 721/919/693 +f 730/928/701 725/927/700 726/923/697 +f 730/929/701 727/925/698 731/930/702 +f 731/930/702 728/926/699 732/931/703 +f 729/932/704 728/926/699 725/927/700 +f 730/928/701 137/198/173 729/932/704 +f 730/929/701 139/202/176 138/933/170 +f 731/930/702 140/200/175 139/202/176 +f 729/932/704 140/200/175 732/931/703 +f 425/934/705 230/524/376 229/522/380 +f 198/457/321 735/935/706 734/936/327 +f 200/461/325 735/935/706 199/456/320 +f 197/462/326 736/937/707 200/461/325 +f 737/938/708 734/463/327 738/939/709 +f 738/940/709 735/935/706 739/941/710 +f 740/942/711 735/935/706 736/937/707 +f 737/938/708 736/937/707 733/464/328 +f 741/943/712 738/939/709 742/944/713 +f 743/945/714 738/940/709 739/941/710 +f 744/946/715 739/941/710 740/942/711 +f 744/946/715 737/938/708 741/943/712 +f 746/947/716 741/943/712 742/944/713 +f 746/948/716 743/945/714 747/949/717 +f 747/949/717 744/946/715 748/950/718 +f 745/951/719 744/946/715 741/943/712 +f 749/952/720 746/947/716 750/953/721 +f 750/954/721 747/949/717 751/955/722 +f 752/956/723 747/949/717 748/950/718 +f 749/952/720 748/950/718 745/951/719 +f 393/460/324 198/957/321 197/462/326 +f 750/953/721 905/846/637 749/952/720 +f 750/954/721 907/176/158 906/178/160 +f 751/955/722 908/172/154 907/176/158 +f 749/952/720 908/172/154 752/956/723 +f 754/222/192 765/958/724 766/959/725 +f 754/222/192 767/960/726 755/225/195 +f 755/225/195 768/961/727 756/227/197 +f 753/229/194 768/961/727 765/962/724 +f 241/963/728 818/964/729 817/965/730 +f 763/966/731 770/967/732 762/968/733 +f 761/969/734 770/967/732 771/970/735 +f 764/971/736 771/970/735 772/972/737 +f 763/973/731 772/972/737 769/974/738 +f 790/975/739 761/969/734 789/976/740 +f 187/424/292 774/977/741 186/425/293 +f 187/427/292 776/978/742 775/979/743 +f 188/430/297 773/431/298 776/978/742 +f 778/980/744 773/431/298 774/977/741 +f 779/981/745 774/977/741 775/982/743 +f 779/983/745 776/978/742 780/984/746 +f 780/984/746 773/431/298 777/985/747 +f 781/986/748 778/980/744 782/987/749 +f 782/987/749 779/981/745 783/988/750 +f 784/989/751 779/983/745 780/984/746 +f 781/986/748 780/984/746 777/985/747 +f 786/990/752 781/986/748 782/987/749 +f 786/990/752 783/988/750 787/991/753 +f 787/992/753 784/989/751 788/993/754 +f 785/994/755 784/989/751 781/986/748 +f 786/990/752 791/995/756 790/975/739 +f 791/996/756 788/993/754 792/997/757 +f 792/997/757 785/994/755 789/976/740 +f 785/994/755 790/975/739 789/976/740 +f 791/995/756 762/968/733 790/975/739 +f 791/996/756 764/971/736 763/973/731 +f 792/997/757 761/969/734 764/971/736 +f 429/998/758 234/999/384 233/531/388 +f 234/999/384 793/1000/759 233/531/388 +f 234/527/384 795/1001/760 794/1002/761 +f 236/532/389 795/1001/760 235/530/387 +f 233/531/388 796/1003/762 236/532/389 +f 797/1004/763 794/1005/761 798/1006/764 +f 798/1007/764 795/1001/760 799/1008/765 +f 800/1009/766 795/1001/760 796/1003/762 +f 797/1004/763 796/1003/762 793/1000/759 +f 801/1010/767 798/1006/764 802/1011/768 +f 802/1012/768 799/1008/765 803/1013/769 +f 804/1014/770 799/1008/765 800/1009/766 +f 801/1010/767 800/1009/766 797/1004/763 +f 805/1015/771 802/1011/768 806/1016/772 +f 807/1017/773 802/1012/768 803/1013/769 +f 808/1018/774 803/1013/769 804/1014/770 +f 808/1018/774 801/1010/767 805/1015/771 +f 810/1019/775 807/1017/773 811/1020/776 +f 811/1020/776 808/1018/774 812/1021/777 +f 808/1018/774 809/1022/778 812/1021/777 +f 814/1023/779 809/1022/778 810/1024/775 +f 814/1025/779 811/1020/776 815/1026/780 +f 815/1026/780 812/1021/777 816/1027/781 +f 813/1028/782 812/1021/777 809/1022/778 +f 814/1023/779 909/1029/783 813/1028/782 +f 814/1025/779 911/207/181 910/209/183 +f 815/1026/780 912/203/177 911/207/181 +f 813/1028/782 912/203/177 816/1027/781 +f 243/548/403 818/964/729 242/549/404 +f 244/551/406 819/1030/784 243/552/403 +f 244/551/406 817/965/730 820/1031/785 +f 822/1032/786 817/965/730 818/964/729 +f 823/1033/787 818/964/729 819/1034/784 +f 823/1035/787 820/1031/785 824/1036/788 +f 824/1036/788 817/965/730 821/1037/789 +f 825/1038/790 822/1032/786 826/1039/791 +f 826/1039/791 823/1033/787 827/1040/792 +f 828/1041/793 823/1035/787 824/1036/788 +f 825/1038/790 824/1036/788 821/1037/789 +f 830/1042/794 825/1038/790 826/1039/791 +f 831/1043/795 826/1039/791 827/1040/792 +f 831/1044/795 828/1041/793 832/1045/796 +f 832/1045/796 825/1038/790 829/1046/797 +f 830/1042/794 757/228/198 829/1046/797 +f 831/1043/795 758/226/196 830/1042/794 +f 831/1044/795 760/230/199 759/1047/193 +f 832/1045/796 757/228/198 760/230/199 +f 834/1048/798 205/1049/799 206/469/333 +f 207/468/332 834/1048/798 206/469/333 +f 208/471/335 835/1050/800 207/468/332 +f 833/1051/801 208/471/335 205/1052/799 +f 837/1053/802 834/1048/798 838/1054/803 +f 838/1054/803 835/1050/800 839/1055/804 +f 840/1056/805 835/1050/800 836/1057/806 +f 837/1058/802 836/1057/806 833/1051/801 +f 841/1059/807 838/1054/803 842/188/167 +f 842/188/167 839/1055/804 843/186/165 +f 844/182/161 839/1055/804 840/1056/805 +f 841/1060/807 840/1056/805 837/1058/802 +f 402/467/331 205/1049/799 401/1061/336 +f 182/418/286 845/1062/808 181/1063/809 +f 183/417/285 846/1064/810 182/418/286 +f 184/420/288 847/1065/811 183/417/285 +f 184/420/288 845/1066/808 848/1067/812 +f 850/1068/813 845/1062/808 846/1064/810 +f 851/1069/814 846/1064/810 847/1065/811 +f 851/1069/814 848/1067/812 852/1070/815 +f 852/1070/815 845/1066/808 849/1071/816 +f 854/1072/817 849/1073/816 850/1068/813 +f 854/1072/817 851/1069/814 855/1074/818 +f 855/1074/818 852/1070/815 856/1075/819 +f 853/1076/820 852/1070/815 849/1071/816 +f 857/1077/821 854/1072/817 858/1078/822 +f 858/1078/822 855/1074/818 859/1079/823 +f 860/1080/824 855/1074/818 856/1075/819 +f 857/1081/821 856/1075/819 853/1076/820 +f 857/1077/821 150/215/186 149/214/185 +f 859/1079/823 150/215/186 858/1078/822 +f 860/1080/824 151/220/190 859/1079/823 +f 860/1080/824 149/218/185 152/217/188 +f 194/442/308 553/698/524 193/443/309 +f 454/580/431 513/655/490 453/581/432 +f 173/408/276 586/736/554 585/739/557 +f 166/383/255 573/733/553 165/384/256 +f 897/638/476 1/8/7 2/2/2 +f 870/61/55 38/607/454 869/65/58 +f 865/272/218 33/50/45 34/54/49 +f 861/266/217 29/40/36 30/44/40 +f 874/99/89 66/815/615 873/103/92 +f 805/1015/771 810/1024/775 809/1022/778 +f 909/1029/783 141/211/182 142/204/178 +f 298/1082/152 69/108/97 297/299/153 +f 314/319/152 101/146/131 313/321/153 +f 438/547/402 241/963/728 437/553/407 +f 841/1059/807 125/187/166 126/1083/162 +f 318/327/152 109/153/137 317/329/153 +f 658/167/150 118/335/230 657/162/145 +f 378/416/284 181/1063/809 377/1084/289 +f 338/356/152 133/196/171 337/1085/153 +f 445/568/420 250/564/417 249/571/423 +f 153/237/205 158/233/202 157/286/220 +f 306/310/152 85/126/113 305/312/153 +f 900/1/1 897/638/476 2/2/2 +f 899/4/4 900/1/1 3/3/3 +f 898/6/6 899/1086/4 4/7/5 +f 254/9/8 2/2/2 1/8/7 +f 6/11/10 9/15/14 10/12/11 +f 7/14/13 12/614/16 9/15/14 +f 8/16/15 11/19/17 12/17/16 +f 5/13/12 10/12/11 11/19/17 +f 14/20/18 17/24/22 18/21/19 +f 15/23/21 20/626/24 17/24/22 +f 16/25/23 19/28/25 20/26/24 +f 13/22/20 18/21/19 19/28/25 +f 22/29/26 25/33/30 26/30/27 +f 23/32/29 28/661/32 25/33/30 +f 24/34/31 27/37/33 28/35/32 +f 21/31/28 26/30/27 27/37/33 +f 862/38/34 863/41/37 32/39/35 +f 863/41/37 864/1087/39 31/42/38 +f 864/43/39 861/266/217 30/44/40 +f 518/46/41 30/44/40 29/40/36 +f 866/48/43 867/51/46 36/49/44 +f 867/51/46 868/275/48 35/52/47 +f 868/53/48 865/272/218 34/54/49 +f 450/56/50 354/573/425 353/57/51 +f 871/59/53 40/632/57 37/60/54 +f 872/62/56 39/66/59 40/63/57 +f 869/65/58 38/607/454 39/66/59 +f 358/67/60 162/375/248 161/68/61 +f 42/70/63 45/74/67 46/71/64 +f 43/73/66 48/754/69 45/74/67 +f 44/75/68 47/78/70 48/76/69 +f 41/72/65 46/71/64 47/78/70 +f 49/79/71 50/82/74 53/80/72 +f 50/82/74 51/84/76 56/83/75 +f 51/84/76 52/283/78 55/85/77 +f 52/86/78 49/79/71 54/81/73 +f 57/88/79 58/91/82 61/89/80 +f 58/91/82 59/93/84 64/92/83 +f 59/93/84 60/289/86 63/94/85 +f 60/95/86 57/88/79 62/90/81 +f 875/97/87 68/817/91 65/98/88 +f 876/100/90 67/104/93 68/101/91 +f 873/103/92 66/815/615 67/104/93 +f 422/105/94 226/511/370 225/106/95 +f 69/108/97 70/1088/100 73/109/98 +f 70/111/100 71/114/102 76/112/101 +f 71/114/102 72/116/104 75/115/103 +f 72/116/104 69/108/97 74/110/99 +f 77/117/105 78/120/108 81/118/106 +f 78/120/108 79/122/110 84/121/109 +f 79/122/110 80/306/112 83/123/111 +f 80/124/112 77/117/105 82/119/107 +f 85/126/113 86/129/116 89/127/114 +f 86/129/116 87/131/118 92/130/117 +f 87/131/118 88/311/120 91/132/119 +f 88/133/120 85/126/113 90/128/115 +f 93/135/121 94/1089/124 97/136/122 +f 94/138/124 95/141/126 100/139/125 +f 95/141/126 96/143/128 99/142/127 +f 96/143/128 93/135/121 98/137/123 +f 102/144/129 105/148/133 106/145/130 +f 103/147/132 108/883/135 105/148/133 +f 104/149/134 107/152/136 108/150/135 +f 101/146/131 106/145/130 107/152/136 +f 109/153/137 110/156/140 113/154/138 +f 110/156/140 111/158/142 116/157/141 +f 111/158/142 112/328/144 115/159/143 +f 112/160/144 109/153/137 114/155/139 +f 657/162/145 118/335/230 119/163/146 +f 659/165/148 660/164/147 119/163/146 +f 658/167/150 659/844/148 120/168/149 +f 322/170/152 118/335/230 117/169/151 +f 908/172/154 905/846/637 122/173/155 +f 908/172/154 123/174/156 124/175/157 +f 907/176/158 124/175/157 121/177/159 +f 326/179/152 122/173/155 121/180/159 +f 844/182/161 841/1060/807 126/183/162 +f 844/182/161 127/184/163 128/185/164 +f 843/186/165 128/185/164 125/187/166 +f 330/189/152 126/1083/162 125/187/166 +f 334/191/152 130/347/234 129/192/168 +f 134/194/169 137/198/173 138/195/170 +f 135/197/172 140/200/175 137/198/173 +f 136/199/174 139/202/176 140/200/175 +f 133/201/171 138/933/170 139/202/176 +f 912/203/177 909/1029/783 142/204/178 +f 912/203/177 143/205/179 144/206/180 +f 911/207/181 144/206/180 141/208/182 +f 342/210/152 142/204/178 141/211/182 +f 145/213/184 146/1090/187 149/214/185 +f 146/216/187 147/219/189 152/217/188 +f 147/219/189 148/221/191 151/220/190 +f 148/221/191 145/213/184 150/215/186 +f 754/222/192 758/226/196 759/223/193 +f 755/225/195 757/228/198 758/226/196 +f 756/227/197 760/230/199 757/228/198 +f 753/229/194 759/1047/193 760/230/199 +f 154/231/200 155/1091/204 159/232/201 +f 156/234/203 160/238/206 159/235/201 +f 153/237/205 157/286/220 160/238/206 +f 286/239/152 50/82/74 49/79/71 +f 3/3/3 2/2/2 254/9/8 +f 4/5/5 3/3/3 255/241/207 +f 1/8/7 4/7/5 256/243/208 +f 441/244/209 442/555/409 246/245/210 +f 259/247/212 7/14/13 6/11/10 +f 259/249/212 260/251/213 8/16/15 +f 257/250/153 5/13/12 8/16/15 +f 262/252/152 14/20/18 13/22/20 +f 263/254/212 15/23/21 14/20/18 +f 263/255/212 264/256/213 16/25/23 +f 261/253/153 13/22/20 16/25/23 +f 266/257/152 22/29/26 21/31/28 +f 267/259/212 23/32/29 22/29/26 +f 267/260/212 268/261/213 24/34/31 +f 265/258/153 21/31/28 24/34/31 +f 175/262/214 174/737/555 370/263/215 +f 269/265/153 270/268/152 862/38/34 +f 271/267/212 863/41/37 862/38/34 +f 272/269/213 864/1087/39 863/41/37 +f 269/265/153 861/266/217 864/43/39 +f 274/271/152 866/48/43 865/272/218 +f 275/274/212 867/51/46 866/48/43 +f 275/274/212 276/1092/213 868/275/48 +f 273/273/153 865/272/218 868/53/48 +f 277/277/153 278/279/152 870/61/55 +f 279/278/212 871/59/53 870/61/55 +f 280/280/213 872/62/56 871/64/53 +f 277/277/153 869/65/58 872/62/56 +f 287/282/212 51/84/76 50/82/74 +f 287/282/212 288/1093/213 52/283/78 +f 285/240/153 49/79/71 52/86/78 +f 158/233/202 538/681/510 537/285/219 +f 291/287/212 59/93/84 58/91/82 +f 291/287/212 292/1094/213 60/289/86 +f 289/290/153 57/88/79 60/95/86 +f 258/248/152 6/11/10 5/13/12 +f 293/292/153 294/294/152 874/99/89 +f 295/293/212 875/97/87 874/99/89 +f 296/295/213 876/100/90 875/102/87 +f 293/292/153 873/103/92 876/100/90 +f 299/297/212 71/114/102 70/111/100 +f 299/297/212 300/300/213 72/116/104 +f 297/299/153 69/108/97 72/116/104 +f 406/301/221 210/792/595 209/302/222 +f 303/304/212 79/122/110 78/120/108 +f 303/304/212 304/1095/213 80/306/112 +f 301/307/153 77/117/105 80/124/112 +f 307/309/212 87/131/118 86/129/116 +f 307/309/212 308/1096/213 88/311/120 +f 305/312/153 85/126/113 88/133/120 +f 290/288/152 58/91/82 57/88/79 +f 311/314/212 95/141/126 94/138/124 +f 311/314/212 312/317/213 96/143/128 +f 309/316/153 93/135/121 96/143/128 +f 315/318/212 103/147/132 102/144/129 +f 315/320/212 316/322/213 104/149/134 +f 313/321/153 101/146/131 104/149/134 +f 398/323/224 202/368/242 201/324/225 +f 319/326/212 111/158/142 110/156/140 +f 319/326/212 320/1097/213 112/328/144 +f 317/329/153 109/153/137 112/160/144 +f 417/331/227 418/503/363 222/332/228 +f 323/334/212 119/163/146 118/335/230 +f 323/334/212 324/1098/213 120/166/149 +f 321/171/153 117/169/151 120/168/149 +f 365/337/231 366/396/266 170/338/232 +f 327/340/212 123/174/156 122/173/155 +f 327/340/212 328/342/213 124/175/157 +f 325/341/153 121/177/159 124/175/157 +f 331/343/212 127/184/163 126/183/162 +f 331/343/212 332/345/213 128/185/164 +f 329/190/153 125/187/166 128/185/164 +f 335/346/212 131/349/236 130/347/234 +f 335/346/212 336/1099/213 132/348/235 +f 333/193/153 129/192/168 132/350/235 +f 413/352/237 414/495/356 218/353/238 +f 339/355/212 135/197/172 134/194/169 +f 339/355/212 340/358/213 136/199/174 +f 337/357/153 133/201/171 136/199/174 +f 343/359/212 143/205/179 142/204/178 +f 343/359/212 344/361/213 144/206/180 +f 341/360/153 141/208/182 144/206/180 +f 347/362/212 147/219/189 146/216/187 +f 347/362/212 348/365/213 148/221/191 +f 345/364/153 145/213/184 148/221/191 +f 201/324/225 202/368/242 350/366/240 +f 202/368/242 203/371/245 351/369/243 +f 204/370/244 352/868/246 351/369/243 +f 204/372/244 201/324/225 349/367/241 +f 358/67/60 359/376/249 163/374/247 +f 359/376/249 360/1100/251 164/377/250 +f 357/69/62 161/68/61 164/378/250 +f 490/380/252 162/375/248 163/374/247 +f 877/382/254 878/385/257 166/383/255 +f 878/385/257 879/393/260 167/386/258 +f 880/387/259 168/390/261 167/388/258 +f 877/382/254 165/384/256 168/390/261 +f 362/391/262 878/385/257 877/382/254 +f 362/391/262 363/1101/265 879/393/260 +f 364/394/264 880/387/259 879/389/260 +f 364/394/264 361/392/263 877/382/254 +f 366/396/266 367/1102/269 171/397/267 +f 368/398/268 172/401/270 171/399/267 +f 365/337/231 169/339/233 172/401/270 +f 169/339/233 170/338/232 646/402/271 +f 176/404/273 175/262/214 371/264/216 +f 176/406/273 372/1103/274 369/407/275 +f 374/409/277 375/412/280 179/410/278 +f 375/412/280 376/415/283 180/413/281 +f 373/414/282 177/1104/666 180/413/281 +f 378/416/284 379/419/287 183/417/285 +f 379/419/287 380/422/290 184/420/288 +f 377/421/289 181/1105/809 184/420/288 +f 382/423/291 383/1106/295 187/424/292 +f 384/426/294 188/430/297 187/427/292 +f 381/429/296 185/432/299 188/430/297 +f 186/425/293 774/977/741 773/431/298 +f 386/433/300 387/1107/304 191/434/301 +f 388/436/303 192/440/306 191/437/301 +f 385/439/305 189/669/500 192/440/306 +f 881/441/307 882/444/310 194/442/308 +f 882/444/310 883/1108/313 195/445/311 +f 884/446/312 196/449/314 195/447/311 +f 881/441/307 193/443/309 196/449/314 +f 390/450/315 882/444/310 881/441/307 +f 391/452/317 883/1108/313 882/444/310 +f 391/453/317 392/454/318 884/446/312 +f 392/454/318 389/451/316 881/441/307 +f 394/455/319 395/459/323 199/456/320 +f 396/458/322 200/461/325 199/456/320 +f 393/460/324 197/462/326 200/461/325 +f 197/462/326 198/957/321 734/463/327 +f 398/323/224 399/465/329 203/371/245 +f 399/465/329 400/1109/330 204/370/244 +f 397/325/226 201/324/225 204/372/244 +f 402/467/331 403/470/334 207/468/332 +f 403/470/334 404/473/337 208/471/335 +f 401/472/336 205/1052/799 208/471/335 +f 211/474/338 210/792/595 406/301/221 +f 212/476/340 211/474/338 407/475/339 +f 405/478/223 209/785/222 212/476/340 +f 614/479/342 210/792/595 211/474/338 +f 886/481/344 214/485/348 213/482/345 +f 886/481/344 887/486/349 215/484/347 +f 887/486/349 888/1110/351 216/487/350 +f 885/483/346 213/482/345 216/488/350 +f 410/490/352 886/481/344 885/483/346 +f 410/490/352 411/493/355 887/486/349 +f 412/492/354 888/1110/351 887/486/349 +f 409/491/353 885/483/346 888/489/351 +f 414/495/356 415/1111/359 219/496/357 +f 416/497/358 220/500/360 219/498/357 +f 413/352/237 217/354/239 220/500/360 +f 217/354/239 218/353/238 662/501/361 +f 418/503/363 419/1112/366 223/504/364 +f 420/505/365 224/508/367 223/506/364 +f 417/331/227 221/333/229 224/508/367 +f 222/332/228 634/818/616 633/509/368 +f 422/105/94 423/512/371 227/510/369 +f 423/512/371 424/1113/373 228/513/372 +f 421/107/96 225/106/95 228/514/372 +f 226/511/370 618/794/597 617/516/374 +f 427/517/375 231/521/379 230/518/376 +f 428/520/378 232/523/381 231/521/379 +f 428/520/378 425/934/705 229/522/380 +f 230/524/376 710/910/683 709/525/382 +f 431/526/383 235/530/387 234/527/384 +f 432/529/386 236/532/389 235/530/387 +f 432/529/386 429/998/758 233/531/388 +f 890/533/390 238/537/394 237/534/391 +f 890/533/390 891/538/395 239/536/393 +f 891/538/395 892/1114/397 240/539/396 +f 889/535/392 237/534/391 240/540/396 +f 434/542/398 890/533/390 889/535/392 +f 434/542/398 435/545/401 891/538/395 +f 436/544/400 892/1114/397 891/538/395 +f 436/546/400 433/543/399 889/535/392 +f 438/547/402 439/1115/405 243/548/403 +f 439/550/405 440/554/408 244/551/406 +f 437/553/407 241/963/728 244/551/406 +f 442/555/409 443/1116/412 247/556/410 +f 444/557/411 248/560/413 247/558/410 +f 441/244/209 245/246/211 248/560/413 +f 246/245/210 502/634/472 501/561/414 +f 446/562/415 447/1117/419 251/563/416 +f 448/565/418 252/569/421 251/566/416 +f 445/568/420 249/571/423 252/569/421 +f 250/564/417 598/760/570 597/570/422 +f 450/56/50 451/1118/426 355/572/424 +f 451/574/426 452/577/428 356/575/427 +f 449/58/52 353/57/51 356/575/427 +f 471/578/429 470/617/462 354/573/425 +f 893/579/430 894/582/433 454/580/431 +f 894/582/433 895/585/436 455/583/434 +f 896/584/435 456/1119/437 455/583/434 +f 893/579/430 453/581/432 456/586/437 +f 458/588/438 894/582/433 893/579/430 +f 458/588/438 459/591/441 895/585/436 +f 460/590/440 896/584/435 895/585/436 +f 457/589/439 893/579/430 896/587/435 +f 471/593/429 355/576/424 356/575/427 +f 472/594/442 356/575/427 353/57/51 +f 474/596/444 34/54/49 33/50/45 +f 215/484/347 467/600/448 466/598/446 +f 215/484/347 216/487/350 468/599/447 +f 213/482/345 465/615/461 468/601/447 +f 462/602/449 10/12/11 9/15/14 +f 491/381/253 163/374/247 164/377/250 +f 489/605/452 492/633/451 164/378/250 +f 485/606/453 486/629/470 38/607/454 +f 239/536/393 483/609/456 482/608/455 +f 240/539/396 484/627/458 483/609/456 +f 240/540/396 237/534/391 481/610/457 +f 463/612/459 11/19/17 10/12/11 +f 463/612/459 464/616/460 12/17/16 +f 464/613/460 461/603/450 9/15/14 +f 462/602/449 461/603/450 465/615/461 +f 463/612/459 462/602/449 466/598/446 +f 463/612/459 467/600/448 468/599/447 +f 464/613/460 468/601/447 465/615/461 +f 473/597/445 469/595/443 470/617/462 +f 475/618/463 474/596/444 470/617/462 +f 476/619/464 475/620/463 471/593/429 +f 476/619/464 472/594/442 469/595/443 +f 470/617/462 469/595/443 353/57/51 +f 475/618/463 35/55/47 34/54/49 +f 475/620/463 476/619/464 36/49/44 +f 476/619/464 473/597/445 33/50/45 +f 477/621/465 478/623/467 18/21/19 +f 479/622/466 19/28/25 18/21/19 +f 480/624/468 20/26/24 19/28/25 +f 480/625/468 477/621/465 17/24/22 +f 477/621/465 481/610/457 482/608/455 +f 479/622/466 478/623/467 482/608/455 +f 480/624/468 479/622/466 483/609/456 +f 480/625/468 484/611/458 481/610/457 +f 214/485/348 466/598/446 465/615/461 +f 487/628/469 39/66/59 38/607/454 +f 488/630/471 40/63/57 39/66/59 +f 488/631/471 485/606/453 37/60/54 +f 485/606/453 489/605/452 490/380/252 +f 486/629/470 490/380/252 491/381/253 +f 488/630/471 487/628/469 491/381/253 +f 485/606/453 488/631/471 492/633/451 +f 490/380/252 489/605/452 161/68/61 +f 247/556/410 503/647/474 502/634/472 +f 247/558/410 248/560/413 504/635/473 +f 248/560/413 245/246/211 501/561/414 +f 494/637/475 898/6/6 897/638/476 +f 495/640/478 899/1086/4 898/6/6 +f 495/641/478 496/642/479 900/1/1 +f 496/642/479 493/639/477 897/638/476 +f 494/637/475 493/639/477 497/643/480 +f 495/640/478 494/637/475 498/644/481 +f 495/641/478 499/648/482 500/646/483 +f 496/642/479 500/646/483 497/643/480 +f 498/644/481 497/643/480 501/561/414 +f 498/644/481 502/634/472 503/647/474 +f 499/648/482 503/636/474 504/635/473 +f 497/643/480 500/646/483 504/635/473 +f 562/649/484 558/716/539 557/650/485 +f 455/583/434 515/654/489 514/652/487 +f 455/583/434 456/1119/437 516/653/488 +f 456/586/437 453/581/432 513/655/490 +f 507/657/491 27/37/33 26/30/27 +f 508/659/493 28/35/32 27/37/33 +f 508/660/493 505/662/494 25/33/30 +f 505/662/494 509/666/498 510/663/495 +f 507/657/491 506/658/492 510/663/495 +f 508/659/493 507/657/491 511/664/496 +f 508/660/493 512/667/497 509/666/498 +f 510/663/495 509/666/498 513/655/490 +f 511/664/496 510/663/495 514/652/487 +f 511/664/496 515/654/489 516/653/488 +f 512/667/497 516/656/488 513/655/490 +f 237/534/391 238/537/394 482/608/455 +f 190/435/302 526/670/501 525/668/499 +f 191/434/301 527/680/503 526/670/501 +f 191/437/301 192/440/306 528/671/502 +f 192/440/306 189/669/500 525/668/499 +f 519/673/504 31/45/38 30/44/40 +f 519/674/504 520/675/505 32/39/35 +f 520/675/505 517/47/42 29/40/36 +f 518/46/41 517/47/42 521/676/506 +f 519/673/504 518/46/41 522/677/507 +f 519/674/504 523/1120/508 524/679/509 +f 520/675/505 524/679/509 521/676/506 +f 385/439/305 386/433/300 190/435/302 +f 521/676/506 525/668/499 526/670/501 +f 522/677/507 526/670/501 527/680/503 +f 524/679/509 523/1120/508 527/672/503 +f 521/676/506 524/679/509 528/671/502 +f 159/232/201 539/693/512 538/681/510 +f 159/235/201 160/238/206 540/682/511 +f 157/286/220 537/285/219 540/682/511 +f 530/684/513 54/81/73 53/80/72 +f 531/686/515 55/87/77 54/81/73 +f 531/687/515 532/688/516 56/83/75 +f 532/688/516 529/685/514 53/80/72 +f 530/684/513 529/685/514 533/689/517 +f 531/686/515 530/684/513 534/690/518 +f 531/687/515 535/694/519 536/692/520 +f 532/688/516 536/692/520 533/689/517 +f 534/690/518 533/689/517 537/285/219 +f 534/690/518 538/681/510 539/693/512 +f 535/694/519 539/683/512 540/682/511 +f 533/689/517 536/692/520 540/682/511 +f 195/445/311 555/715/523 554/695/521 +f 195/447/311 196/449/314 556/696/522 +f 196/449/314 193/443/309 553/698/524 +f 543/699/525 63/96/85 62/90/81 +f 543/701/525 544/702/527 64/92/83 +f 544/702/527 541/707/532 61/89/80 +f 542/700/526 541/707/532 545/703/528 +f 542/700/526 546/704/529 547/705/530 +f 543/701/525 547/1121/530 548/706/531 +f 541/707/532 544/702/527 548/706/531 +f 561/651/486 549/714/538 550/708/533 +f 562/649/484 550/708/533 551/709/534 +f 564/711/536 563/720/535 551/712/534 +f 561/651/486 564/711/536 552/713/537 +f 550/708/533 549/714/538 553/698/524 +f 551/709/534 550/708/533 554/695/521 +f 551/712/534 555/697/523 556/696/522 +f 552/713/537 556/696/522 553/698/524 +f 545/703/528 557/650/485 558/716/539 +f 547/705/530 546/704/529 558/716/539 +f 548/706/531 547/1121/530 559/718/540 +f 548/706/531 560/719/541 557/650/485 +f 563/710/535 559/717/540 558/716/539 +f 563/720/535 564/711/536 560/719/541 +f 557/650/485 560/719/541 564/711/536 +f 505/662/494 506/658/492 26/30/27 +f 167/386/258 575/734/544 574/721/542 +f 167/388/258 168/390/261 576/722/543 +f 165/384/256 573/733/553 576/722/543 +f 566/724/545 90/128/115 89/127/114 +f 567/726/547 91/134/119 90/128/115 +f 567/727/547 568/728/548 92/130/117 +f 568/728/548 565/725/546 89/127/114 +f 566/724/545 565/725/546 569/729/549 +f 567/726/547 566/724/545 570/730/550 +f 567/727/547 571/735/551 572/732/552 +f 568/728/548 572/732/552 569/729/549 +f 570/730/550 569/729/549 573/733/553 +f 570/730/550 574/721/542 575/734/544 +f 571/735/551 575/723/544 576/722/543 +f 569/729/549 572/732/552 576/722/543 +f 542/700/526 62/90/81 61/89/80 +f 175/262/214 587/738/556 586/736/554 +f 176/404/273 588/759/558 587/738/556 +f 176/406/273 173/408/276 585/739/557 +f 577/741/559 578/751/564 46/71/64 +f 43/73/66 42/70/63 282/742/152 +f 44/75/68 43/77/66 283/744/212 +f 41/72/65 44/75/68 284/745/213 +f 689/747/560 685/877/662 686/748/561 +f 282/742/152 42/70/63 41/72/65 +f 173/408/276 369/407/275 370/263/215 +f 579/750/563 47/78/70 46/71/64 +f 580/752/565 48/76/69 47/78/70 +f 580/753/565 577/741/559 45/74/67 +f 577/741/559 581/758/569 582/755/566 +f 579/750/563 578/751/564 582/755/566 +f 580/752/565 579/750/563 583/756/567 +f 580/753/565 584/1122/568 581/758/569 +f 582/755/566 581/758/569 585/739/557 +f 582/755/566 586/736/554 587/738/556 +f 583/756/567 587/738/556 588/759/558 +f 581/758/569 584/1122/568 588/740/558 +f 251/563/416 599/781/572 598/760/570 +f 251/566/416 252/569/421 600/761/571 +f 252/569/421 249/571/423 597/570/422 +f 602/763/573 601/771/580 589/764/574 +f 603/766/576 602/763/573 590/765/575 +f 603/768/576 591/782/577 592/769/578 +f 604/770/579 592/769/578 589/764/574 +f 602/763/573 82/119/107 81/118/106 +f 605/772/581 593/780/588 594/773/582 +f 606/774/583 594/773/582 595/775/584 +f 608/777/586 607/1123/585 595/778/584 +f 605/772/581 608/777/586 596/779/587 +f 593/780/588 597/570/422 598/760/570 +f 594/773/582 598/760/570 599/781/572 +f 596/779/587 595/778/584 599/762/572 +f 593/780/588 596/779/587 600/761/571 +f 603/766/576 83/125/111 82/119/107 +f 603/768/576 604/770/579 84/121/109 +f 604/770/579 601/771/580 81/118/106 +f 590/765/575 589/764/574 605/772/581 +f 591/767/577 590/765/575 606/774/583 +f 591/782/577 607/1123/585 608/777/586 +f 592/769/578 608/777/586 605/772/581 +f 616/783/589 615/480/343 211/474/338 +f 613/784/590 616/783/589 212/476/340 +f 609/786/591 610/787/592 74/110/99 +f 610/787/592 611/789/594 75/115/103 +f 612/788/593 76/112/101 75/115/103 +f 609/790/591 73/113/98 76/112/101 +f 609/786/591 613/791/590 614/479/342 +f 610/787/592 614/479/342 615/480/343 +f 612/788/593 611/789/594 615/480/343 +f 609/790/591 612/788/593 616/783/589 +f 613/791/590 209/302/222 210/792/595 +f 226/511/370 227/510/369 619/793/596 +f 227/510/369 228/513/372 620/795/598 +f 225/106/95 617/516/374 620/796/598 +f 621/797/599 901/805/606 902/798/600 +f 622/799/601 902/798/600 903/800/602 +f 624/802/604 623/801/603 903/800/602 +f 621/797/599 624/1124/604 904/804/605 +f 617/516/374 618/794/597 902/798/600 +f 619/793/596 903/800/602 902/798/600 +f 620/795/598 904/803/605 903/800/602 +f 620/796/598 617/516/374 901/805/606 +f 625/806/607 621/797/599 622/799/601 +f 627/808/609 626/807/608 622/799/601 +f 628/809/610 627/808/609 623/801/603 +f 628/810/610 624/1124/604 621/797/599 +f 629/811/611 625/806/607 626/807/608 +f 630/812/612 626/807/608 627/808/609 +f 632/814/614 631/813/613 627/808/609 +f 629/811/611 632/816/614 628/810/610 +f 629/811/611 630/812/612 66/815/615 +f 631/813/613 67/104/93 66/815/615 +f 632/814/614 68/101/91 67/104/93 +f 632/816/614 629/811/611 65/98/88 +f 381/429/296 382/423/291 186/425/293 +f 223/504/364 635/822/618 634/818/616 +f 223/506/364 224/508/367 636/819/617 +f 224/508/367 221/333/229 633/509/368 +f 638/821/619 637/826/622 633/509/368 +f 638/821/619 634/818/616 635/822/618 +f 639/824/620 635/820/618 636/819/617 +f 637/826/622 640/825/621 636/819/617 +f 642/827/623 641/831/626 637/826/622 +f 643/828/624 642/827/623 638/821/619 +f 643/829/624 639/824/620 640/825/621 +f 644/830/625 640/825/621 637/826/622 +f 642/827/623 114/155/139 113/154/138 +f 643/828/624 115/161/143 114/155/139 +f 643/829/624 644/830/625 116/157/141 +f 644/830/625 641/831/626 113/154/138 +f 171/397/267 647/836/627 646/402/271 +f 172/401/270 648/833/628 647/832/627 +f 172/401/270 169/339/233 645/403/272 +f 649/834/629 645/403/272 646/402/271 +f 650/835/630 646/402/271 647/836/627 +f 652/838/632 651/1125/631 647/832/627 +f 649/834/629 652/838/632 648/833/628 +f 654/839/633 653/843/636 649/834/629 +f 655/840/634 654/839/633 650/835/630 +f 655/841/634 651/1125/631 652/838/632 +f 656/842/635 652/838/632 649/834/629 +f 658/167/150 657/162/145 653/843/636 +f 658/167/150 654/839/633 655/840/634 +f 659/165/148 655/841/634 656/842/635 +f 657/162/145 660/164/147 656/842/635 +f 906/845/160 121/180/159 122/173/155 +f 219/496/357 663/851/638 662/501/361 +f 220/500/360 664/848/639 663/847/638 +f 220/500/360 217/354/239 661/502/362 +f 665/849/640 661/502/362 662/501/361 +f 666/850/641 662/501/361 663/851/638 +f 668/853/643 667/1126/642 663/847/638 +f 665/849/640 668/853/643 664/848/639 +f 670/854/644 669/858/647 665/849/640 +f 670/854/644 666/850/641 667/852/642 +f 671/856/645 667/1126/642 668/853/643 +f 669/858/647 672/857/646 668/853/643 +f 674/859/648 673/863/651 669/858/647 +f 675/860/649 674/859/648 670/854/644 +f 675/861/649 671/856/645 672/857/646 +f 676/862/650 672/857/646 669/858/647 +f 130/347/234 673/863/651 674/859/648 +f 129/192/168 674/859/648 675/860/649 +f 131/349/236 132/348/235 675/861/649 +f 130/347/234 131/349/236 676/862/650 +f 677/864/652 349/367/241 350/366/240 +f 679/866/654 678/865/653 350/366/240 +f 680/867/655 679/866/654 351/369/243 +f 680/869/655 352/373/246 349/367/241 +f 682/870/656 681/874/659 677/864/652 +f 683/871/657 682/870/656 678/865/653 +f 683/871/657 679/866/654 680/867/655 +f 684/873/658 680/869/655 677/864/652 +f 686/748/561 685/877/662 681/874/659 +f 686/748/561 682/870/656 683/871/657 +f 687/875/660 683/871/657 684/872/658 +f 685/877/662 688/880/661 684/873/658 +f 690/749/562 686/748/561 687/875/660 +f 687/875/660 688/876/661 692/879/664 +f 688/880/661 685/877/662 689/747/560 +f 346/882/152 146/1090/187 145/213/184 +f 689/747/560 690/749/562 106/145/130 +f 690/749/562 691/878/663 107/152/136 +f 692/879/664 108/150/135 107/152/136 +f 689/747/560 105/148/133 108/883/135 +f 310/884/152 94/1089/124 93/135/121 +f 178/411/279 694/887/667 693/885/665 +f 179/410/278 695/889/669 694/887/667 +f 179/410/278 180/413/281 696/888/668 +f 180/413/281 177/1104/666 693/890/665 +f 698/891/670 697/1127/673 693/885/665 +f 699/892/671 698/891/670 694/887/667 +f 699/892/671 695/889/669 696/888/668 +f 700/893/672 696/888/668 693/890/665 +f 701/895/674 697/1127/673 698/891/670 +f 702/896/675 698/891/670 699/892/671 +f 704/898/677 703/897/676 699/892/671 +f 701/899/674 704/898/677 700/893/672 +f 705/900/678 701/895/674 702/896/675 +f 706/901/679 702/896/675 703/897/676 +f 708/903/681 704/898/677 701/899/674 +f 708/903/681 707/902/680 703/897/676 +f 98/137/123 97/136/122 705/900/678 +f 98/137/123 706/901/679 707/902/680 +f 99/142/127 707/902/680 708/903/681 +f 97/140/122 100/139/125 708/903/681 +f 374/409/277 178/411/279 177/886/666 +f 230/518/376 231/521/379 711/906/682 +f 231/521/379 232/523/381 712/908/684 +f 229/522/380 709/525/382 712/908/684 +f 714/909/685 713/913/688 709/525/382 +f 715/911/686 714/1128/685 710/907/683 +f 715/911/686 711/906/682 712/908/684 +f 716/912/687 712/908/684 709/525/382 +f 718/914/689 717/918/692 713/913/688 +f 718/915/689 714/1128/685 715/911/686 +f 719/916/690 715/911/686 716/912/687 +f 717/918/692 720/917/691 716/912/687 +f 302/305/152 78/120/108 77/117/105 +f 721/919/693 717/918/692 718/914/689 +f 723/921/695 722/1129/694 718/915/689 +f 724/922/696 723/921/695 719/916/690 +f 724/922/696 720/917/691 717/918/692 +f 726/923/697 725/927/700 721/919/693 +f 726/924/697 722/1129/694 723/921/695 +f 727/925/698 723/921/695 724/922/696 +f 725/927/700 728/926/699 724/922/696 +f 730/928/701 729/932/704 725/927/700 +f 730/929/701 726/924/697 727/925/698 +f 731/930/702 727/925/698 728/926/699 +f 729/932/704 732/931/703 728/926/699 +f 730/928/701 138/195/170 137/198/173 +f 730/929/701 731/930/702 139/202/176 +f 731/930/702 732/931/703 140/200/175 +f 729/932/704 137/198/173 140/200/175 +f 425/934/705 426/1130/377 230/524/376 +f 198/457/321 199/456/320 735/935/706 +f 200/461/325 736/937/707 735/935/706 +f 197/462/326 733/464/328 736/937/707 +f 737/938/708 733/464/328 734/463/327 +f 738/940/709 734/936/327 735/935/706 +f 740/942/711 739/941/710 735/935/706 +f 737/938/708 740/942/711 736/937/707 +f 741/943/712 737/938/708 738/939/709 +f 743/945/714 742/1131/713 738/940/709 +f 744/946/715 743/945/714 739/941/710 +f 744/946/715 740/942/711 737/938/708 +f 746/947/716 745/951/719 741/943/712 +f 746/948/716 742/1131/713 743/945/714 +f 747/949/717 743/945/714 744/946/715 +f 745/951/719 748/950/718 744/946/715 +f 749/952/720 745/951/719 746/947/716 +f 750/954/721 746/948/716 747/949/717 +f 752/956/723 751/955/722 747/949/717 +f 749/952/720 752/956/723 748/950/718 +f 393/460/324 394/1132/319 198/957/321 +f 750/953/721 906/845/160 905/846/637 +f 750/954/721 751/955/722 907/176/158 +f 751/955/722 752/956/723 908/172/154 +f 749/952/720 905/846/637 908/172/154 +f 754/222/192 753/224/194 765/958/724 +f 754/222/192 766/959/725 767/960/726 +f 755/225/195 767/960/726 768/961/727 +f 753/229/194 756/227/197 768/961/727 +f 241/963/728 242/549/404 818/964/729 +f 763/966/731 769/1133/738 770/967/732 +f 761/969/734 762/968/733 770/967/732 +f 764/971/736 761/969/734 771/970/735 +f 763/973/731 764/971/736 772/972/737 +f 790/975/739 762/968/733 761/969/734 +f 187/424/292 775/982/743 774/977/741 +f 187/427/292 188/430/297 776/978/742 +f 188/430/297 185/432/299 773/431/298 +f 778/980/744 777/985/747 773/431/298 +f 779/981/745 778/980/744 774/977/741 +f 779/983/745 775/979/743 776/978/742 +f 780/984/746 776/978/742 773/431/298 +f 781/986/748 777/985/747 778/980/744 +f 782/987/749 778/980/744 779/981/745 +f 784/989/751 783/1134/750 779/983/745 +f 781/986/748 784/989/751 780/984/746 +f 786/990/752 785/994/755 781/986/748 +f 786/990/752 782/987/749 783/988/750 +f 787/992/753 783/1134/750 784/989/751 +f 785/994/755 788/993/754 784/989/751 +f 786/990/752 787/991/753 791/995/756 +f 791/996/756 787/992/753 788/993/754 +f 792/997/757 788/993/754 785/994/755 +f 785/994/755 786/990/752 790/975/739 +f 791/995/756 763/966/731 762/968/733 +f 791/996/756 792/997/757 764/971/736 +f 792/997/757 789/976/740 761/969/734 +f 429/998/758 430/1135/385 234/999/384 +f 234/999/384 794/1005/761 793/1000/759 +f 234/527/384 235/530/387 795/1001/760 +f 236/532/389 796/1003/762 795/1001/760 +f 233/531/388 793/1000/759 796/1003/762 +f 797/1004/763 793/1000/759 794/1005/761 +f 798/1007/764 794/1002/761 795/1001/760 +f 800/1009/766 799/1008/765 795/1001/760 +f 797/1004/763 800/1009/766 796/1003/762 +f 801/1010/767 797/1004/763 798/1006/764 +f 802/1012/768 798/1007/764 799/1008/765 +f 804/1014/770 803/1013/769 799/1008/765 +f 801/1010/767 804/1014/770 800/1009/766 +f 805/1015/771 801/1010/767 802/1011/768 +f 807/1017/773 806/1136/772 802/1012/768 +f 808/1018/774 807/1017/773 803/1013/769 +f 808/1018/774 804/1014/770 801/1010/767 +f 810/1019/775 806/1136/772 807/1017/773 +f 811/1020/776 807/1017/773 808/1018/774 +f 808/1018/774 805/1015/771 809/1022/778 +f 814/1023/779 813/1028/782 809/1022/778 +f 814/1025/779 810/1019/775 811/1020/776 +f 815/1026/780 811/1020/776 812/1021/777 +f 813/1028/782 816/1027/781 812/1021/777 +f 814/1023/779 910/1137/183 909/1029/783 +f 814/1025/779 815/1026/780 911/207/181 +f 815/1026/780 816/1027/781 912/203/177 +f 813/1028/782 909/1029/783 912/203/177 +f 243/548/403 819/1034/784 818/964/729 +f 244/551/406 820/1031/785 819/1030/784 +f 244/551/406 241/963/728 817/965/730 +f 822/1032/786 821/1037/789 817/965/730 +f 823/1033/787 822/1032/786 818/964/729 +f 823/1035/787 819/1030/784 820/1031/785 +f 824/1036/788 820/1031/785 817/965/730 +f 825/1038/790 821/1037/789 822/1032/786 +f 826/1039/791 822/1032/786 823/1033/787 +f 828/1041/793 827/1138/792 823/1035/787 +f 825/1038/790 828/1041/793 824/1036/788 +f 830/1042/794 829/1046/797 825/1038/790 +f 831/1043/795 830/1042/794 826/1039/791 +f 831/1044/795 827/1138/792 828/1041/793 +f 832/1045/796 828/1041/793 825/1038/790 +f 830/1042/794 758/226/196 757/228/198 +f 831/1043/795 759/223/193 758/226/196 +f 831/1044/795 832/1045/796 760/230/199 +f 832/1045/796 829/1046/797 757/228/198 +f 834/1048/798 833/1139/801 205/1049/799 +f 207/468/332 835/1050/800 834/1048/798 +f 208/471/335 836/1057/806 835/1050/800 +f 833/1051/801 836/1057/806 208/471/335 +f 837/1053/802 833/1139/801 834/1048/798 +f 838/1054/803 834/1048/798 835/1050/800 +f 840/1056/805 839/1055/804 835/1050/800 +f 837/1058/802 840/1056/805 836/1057/806 +f 841/1059/807 837/1053/802 838/1054/803 +f 842/188/167 838/1054/803 839/1055/804 +f 844/182/161 843/186/165 839/1055/804 +f 841/1060/807 844/182/161 840/1056/805 +f 402/467/331 206/469/333 205/1049/799 +f 182/418/286 846/1064/810 845/1062/808 +f 183/417/285 847/1065/811 846/1064/810 +f 184/420/288 848/1067/812 847/1065/811 +f 184/420/288 181/1105/809 845/1066/808 +f 850/1068/813 849/1073/816 845/1062/808 +f 851/1069/814 850/1068/813 846/1064/810 +f 851/1069/814 847/1065/811 848/1067/812 +f 852/1070/815 848/1067/812 845/1066/808 +f 854/1072/817 853/1140/820 849/1073/816 +f 854/1072/817 850/1068/813 851/1069/814 +f 855/1074/818 851/1069/814 852/1070/815 +f 853/1076/820 856/1075/819 852/1070/815 +f 857/1077/821 853/1140/820 854/1072/817 +f 858/1078/822 854/1072/817 855/1074/818 +f 860/1080/824 859/1079/823 855/1074/818 +f 857/1081/821 860/1080/824 856/1075/819 +f 857/1077/821 858/1078/822 150/215/186 +f 859/1079/823 151/220/190 150/215/186 +f 860/1080/824 152/217/188 151/220/190 +f 860/1080/824 857/1081/821 149/218/185 +f 194/442/308 554/695/521 553/698/524 +f 454/580/431 514/652/487 513/655/490 +f 173/408/276 174/737/555 586/736/554 +f 166/383/255 574/721/542 573/733/553 +f 897/638/476 898/6/6 1/8/7 +f 870/61/55 37/60/54 38/607/454 +f 865/272/218 866/48/43 33/50/45 +f 861/266/217 862/38/34 29/40/36 +f 874/99/89 65/98/88 66/815/615 +f 805/1015/771 806/1016/772 810/1024/775 +f 909/1029/783 910/1137/183 141/211/182 +f 298/1082/152 70/1088/100 69/108/97 +f 314/319/152 102/144/129 101/146/131 +f 438/547/402 242/549/404 241/963/728 +f 841/1059/807 842/188/167 125/187/166 +f 318/327/152 110/156/140 109/153/137 +f 658/167/150 117/169/151 118/335/230 +f 378/416/284 182/418/286 181/1063/809 +f 338/356/152 134/194/169 133/196/171 +f 445/568/420 446/562/415 250/564/417 +f 153/237/205 154/231/200 158/233/202 +f 306/310/152 86/129/116 85/126/113 +o Body +v -1.000000 0.062500 -0.500000 +v -1.000000 0.000000 -0.562500 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.562500 +v 1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.437500 +v -1.000000 0.125000 -0.500000 +v 1.000000 0.062500 -0.500000 +v 1.000000 0.062500 -0.437500 +v -1.000000 0.000000 -0.437500 +v 1.000000 0.000000 -0.437500 +v 1.000000 0.125000 -0.437500 +v -0.937500 0.187500 -0.500000 +v 0.937500 0.187500 -0.437500 +v 0.937500 0.187500 -0.500000 +v -0.937500 0.187500 -0.437500 +v -1.000000 0.125000 -0.437500 +v 1.000000 0.125000 -0.500000 +v -1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.500000 +v 1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.562500 +v 1.000000 -0.000000 0.500000 +v 1.000000 0.062500 0.562500 +v -1.000000 0.125000 0.500000 +v -1.000000 0.062500 0.437500 +v 1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.437500 +v 1.000000 0.062500 0.437500 +v 1.000000 -0.000000 0.437500 +v 1.000000 0.125000 0.437500 +v 0.937500 0.187500 0.437500 +v -0.937500 0.187500 0.500000 +v 0.937500 0.187500 0.500000 +v -1.000000 0.125000 0.437500 +v 1.000000 0.125000 0.500000 +v -0.531250 0.187500 0.437500 +v -0.531250 0.000000 -0.437500 +v -0.531250 -0.000000 0.437500 +v -0.468750 0.187500 -0.437500 +v -0.468750 -0.000000 0.437500 +v -0.468750 0.000000 -0.437500 +v -0.531250 0.187500 -0.437500 +v -0.468750 0.187500 0.437500 +v 0.531250 0.000000 -0.437500 +v 0.531250 0.187500 0.437500 +v 0.531250 -0.000000 0.437500 +v 0.468750 -0.000000 0.437500 +v 0.468750 0.187500 -0.437500 +v 0.468750 0.000000 -0.437500 +v 0.468750 0.187500 0.437500 +v 0.531250 0.187500 -0.437500 +v -0.619649 0.820234 -0.375000 +v -0.749885 0.081628 -0.437500 +v -0.749885 0.081628 -0.375000 +v -0.619649 0.820234 -0.437500 +v -0.565233 0.049069 -0.437500 +v -0.434997 0.787675 -0.437500 +v -0.565233 0.049069 -0.375000 +v -0.434997 0.787675 -0.375000 +v -0.600024 0.335540 -0.421875 +v -0.379053 0.114569 -0.453125 +v -0.379053 0.114569 -0.421875 +v -0.600024 0.335540 -0.453125 +v -0.334858 0.158763 -0.453125 +v -0.555829 0.379734 -0.453125 +v -0.334858 0.158763 -0.421875 +v -0.555829 0.379734 -0.421875 +v 0.749885 0.081628 -0.437500 +v 0.619649 0.820234 -0.375000 +v 0.749885 0.081628 -0.375000 +v 0.565233 0.049069 -0.437500 +v 0.619649 0.820234 -0.437500 +v 0.565233 0.049069 -0.375000 +v 0.434997 0.787675 -0.437500 +v 0.434997 0.787675 -0.375000 +v 0.379053 0.114569 -0.453125 +v 0.600024 0.335540 -0.421875 +v 0.379053 0.114569 -0.421875 +v 0.334858 0.158763 -0.453125 +v 0.600024 0.335540 -0.453125 +v 0.334858 0.158763 -0.421875 +v 0.555829 0.379734 -0.453125 +v 0.555829 0.379734 -0.421875 +v -0.749885 0.081628 0.437500 +v -0.619649 0.820234 0.375000 +v -0.749885 0.081628 0.375000 +v -0.565233 0.049069 0.437500 +v -0.619649 0.820234 0.437500 +v -0.565233 0.049069 0.375000 +v -0.434997 0.787675 0.437500 +v -0.434997 0.787675 0.375000 +v -0.379053 0.114569 0.453125 +v -0.600024 0.335540 0.421875 +v -0.379053 0.114569 0.421875 +v -0.334858 0.158763 0.453125 +v -0.600024 0.335540 0.453125 +v -0.334858 0.158763 0.421875 +v -0.555829 0.379734 0.453125 +v -0.555829 0.379734 0.421875 +v 0.619649 0.820234 0.375000 +v 0.749885 0.081628 0.437500 +v 0.749885 0.081628 0.375000 +v 0.619649 0.820234 0.437500 +v 0.565233 0.049069 0.437500 +v 0.434997 0.787675 0.437500 +v 0.565233 0.049069 0.375000 +v 0.434997 0.787675 0.375000 +v 0.600024 0.335540 0.421875 +v 0.379053 0.114569 0.453125 +v 0.379053 0.114569 0.421875 +v 0.600024 0.335540 0.453125 +v 0.334858 0.158763 0.453125 +v 0.555829 0.379734 0.453125 +v 0.334858 0.158763 0.421875 +v 0.555829 0.379734 0.421875 +v 0.000000 1.980546 1.233917 +v 0.183897 1.943967 0.733917 +v 0.000000 1.980546 0.733917 +v 0.183897 1.943967 1.233917 +v 0.339797 1.839797 0.733917 +v 0.339797 1.839797 1.233917 +v 0.443967 1.683897 0.733917 +v 0.443967 1.683897 1.233917 +v 0.480546 1.500000 0.733917 +v 0.480546 1.500000 1.233917 +v 0.443967 1.316103 0.733917 +v 0.443967 1.316103 1.233917 +v 0.339797 1.160202 0.733917 +v 0.183897 1.056033 1.233917 +v 0.183897 1.056033 0.733917 +v 0.000000 1.019453 0.733917 +v 0.000000 1.019453 1.233917 +v -0.183897 1.056033 0.733917 +v -0.183897 1.056033 1.233917 +v -0.339798 1.160202 0.733917 +v -0.339798 1.160202 1.233917 +v -0.443967 1.316103 0.733917 +v -0.443967 1.316103 1.233917 +v -0.480547 1.500000 0.733917 +v -0.480547 1.500000 1.233917 +v -0.443967 1.683897 0.733917 +v -0.443967 1.683897 1.233917 +v -0.339798 1.839797 0.733917 +v 0.339797 1.160202 1.233917 +v -0.339798 1.839797 1.233917 +v -0.183897 1.943967 0.733917 +v -0.183897 1.943967 1.233917 +v 0.490881 1.143354 -0.961093 +v -0.187500 0.922934 -0.961093 +v -0.606763 1.500000 -0.961093 +v 0.187500 2.077066 -0.961093 +v 0.361622 2.222140 -0.627943 +v 0.312593 2.071245 -0.856743 +v 0.736322 2.034969 -0.523593 +v 0.281250 2.365599 -0.523593 +v 0.490881 1.856646 -0.961093 +v 0.575049 2.067076 -0.627943 +v 0.446690 1.973818 -0.856743 +v 0.717021 1.871668 -0.627943 +v 0.588663 1.778410 -0.856743 +v 0.910144 1.500000 -0.523593 +v 0.606763 1.500000 -0.961093 +v 0.798543 1.620769 -0.627943 +v 0.639883 1.620769 -0.856743 +v 0.798543 1.379231 -0.627943 +v 0.639883 1.379231 -0.856743 +v 0.736322 0.965031 -0.523593 +v 0.717021 1.128333 -0.627943 +v 0.588663 1.221590 -0.856743 +v 0.575048 0.932924 -0.627943 +v 0.446690 1.026182 -0.856743 +v 0.361622 0.777860 -0.627943 +v 0.187500 0.922934 -0.961093 +v 0.281250 0.634401 -0.523593 +v 0.312593 0.928755 -0.856743 +v 0.131905 0.703221 -0.627943 +v 0.082876 0.854115 -0.856743 +v -0.131905 0.703221 -0.627943 +v -0.281250 0.634401 -0.523593 +v -0.082877 0.854115 -0.856743 +v -0.361622 0.777860 -0.627943 +v -0.312593 0.928755 -0.856743 +v -0.736322 0.965031 -0.523593 +v -0.490881 1.143354 -0.961093 +v -0.575049 0.932924 -0.627943 +v -0.446690 1.026182 -0.856743 +v -0.717021 1.128332 -0.627943 +v -0.588663 1.221591 -0.856743 +v -0.910144 1.500000 -0.523593 +v -0.798543 1.379231 -0.627943 +v -0.639883 1.379231 -0.856743 +v -0.798543 1.620769 -0.627943 +v -0.639883 1.620769 -0.856743 +v -0.736322 2.034969 -0.523593 +v -0.490881 1.856646 -0.961093 +v -0.717021 1.871668 -0.627943 +v -0.588663 1.778410 -0.856743 +v -0.575048 2.067076 -0.627943 +v -0.446690 1.973818 -0.856743 +v -0.281250 2.365598 -0.523593 +v -0.187500 2.077066 -0.961093 +v -0.361621 2.222140 -0.627943 +v -0.312593 2.071246 -0.856743 +v -0.131905 2.296779 -0.627943 +v -0.082876 2.145885 -0.856743 +v 0.131905 2.296779 -0.627943 +v 0.082876 2.145885 -0.856743 +v -0.606763 1.500000 0.961093 +v 0.490881 1.143354 0.961093 +v 0.490881 1.856646 0.961093 +v 0.187500 2.077066 0.961093 +v 0.361622 2.222140 0.627943 +v 0.281250 2.365599 0.523593 +v 0.736322 2.034969 0.523593 +v 0.575049 2.067076 0.627943 +v 0.446690 1.973818 0.856743 +v 0.717021 1.871668 0.627943 +v 0.910144 1.500000 0.523593 +v 0.798543 1.620769 0.627943 +v 0.606763 1.500000 0.961093 +v 0.588663 1.778410 0.856743 +v 0.798543 1.379231 0.627943 +v 0.736322 0.965031 0.523593 +v 0.717021 1.128333 0.627943 +v 0.588663 1.221590 0.856743 +v 0.575048 0.932924 0.627943 +v 0.361622 0.777860 0.627943 +v 0.281250 0.634401 0.523593 +v 0.187500 0.922934 0.961093 +v 0.312593 0.928755 0.856743 +v 0.131905 0.703221 0.627943 +v -0.131905 0.703221 0.627943 +v -0.281250 0.634401 0.523593 +v -0.187500 0.922934 0.961093 +v -0.082877 0.854115 0.856743 +v -0.361622 0.777860 0.627943 +v -0.736322 0.965031 0.523593 +v -0.575049 0.932924 0.627943 +v -0.490881 1.143354 0.961093 +v -0.312593 0.928755 0.856743 +v -0.717021 1.128332 0.627943 +v -0.798543 1.379231 0.627943 +v -0.910144 1.500000 0.523593 +v -0.639883 1.379231 0.856743 +v -0.798543 1.620769 0.627943 +v -0.736322 2.034969 0.523593 +v -0.717021 1.871668 0.627943 +v -0.490881 1.856646 0.961093 +v -0.588663 1.778410 0.856743 +v -0.575048 2.067076 0.627943 +v -0.361621 2.222140 0.627943 +v -0.281250 2.365598 0.523593 +v -0.187500 2.077066 0.961093 +v -0.312593 2.071246 0.856743 +v -0.131905 2.296779 0.627943 +v 0.131905 2.296779 0.627943 +v 0.082876 2.145885 0.856743 +v 0.000000 2.461093 -0.437500 +v 0.367794 2.387934 -0.562500 +v 0.000000 2.461093 -0.562500 +v 0.367794 2.387934 -0.437500 +v 0.679595 2.179595 -0.562500 +v 0.679595 2.179595 -0.437500 +v 0.887934 1.867794 -0.562500 +v 0.887934 1.867794 -0.437500 +v 0.961093 1.500000 -0.562500 +v 0.961093 1.500000 -0.437500 +v 0.887934 1.132205 -0.562500 +v 0.887934 1.132205 -0.437500 +v 0.679595 0.820405 -0.562500 +v 0.367794 0.612066 -0.437500 +v 0.367794 0.612066 -0.562500 +v 0.000000 0.538907 -0.562500 +v 0.000000 0.538907 -0.437500 +v -0.367794 0.612066 -0.562500 +v -0.367794 0.612066 -0.437500 +v -0.679595 0.820404 -0.562500 +v -0.679595 0.820404 -0.437500 +v -0.887934 1.132205 -0.562500 +v -0.887934 1.132205 -0.437500 +v -0.961093 1.500000 -0.562500 +v -0.961093 1.500000 -0.437500 +v -0.887934 1.867795 -0.562500 +v -0.887934 1.867795 -0.437500 +v -0.679595 2.179596 -0.562500 +v -0.679595 2.179596 -0.437500 +v -0.367794 2.387935 -0.562500 +v -0.367794 2.387935 -0.437500 +v 0.294635 2.211313 -0.562500 +v 0.294635 2.211313 -0.437500 +v 0.000000 2.269920 -0.437500 +v 0.544415 2.044415 -0.562500 +v 0.711313 1.794636 -0.562500 +v 0.711313 1.794636 -0.437500 +v 0.544415 2.044415 -0.437500 +v 0.769920 1.500000 -0.562500 +v 0.711313 1.205364 -0.562500 +v 0.711313 1.205364 -0.437500 +v 0.769920 1.500000 -0.437500 +v 0.544415 0.955585 -0.562500 +v 0.679595 0.820405 -0.437500 +v 0.294635 0.788687 -0.562500 +v 0.294635 0.788687 -0.437500 +v 0.544415 0.955585 -0.437500 +v 0.000000 0.730080 -0.562500 +v -0.294635 0.788687 -0.562500 +v 0.000000 0.730080 -0.437500 +v -0.544415 0.955584 -0.562500 +v -0.544415 0.955584 -0.437500 +v -0.294635 0.788687 -0.437500 +v -0.711313 1.205364 -0.562500 +v -0.769920 1.500000 -0.562500 +v -0.769920 1.500000 -0.437500 +v -0.711313 1.205364 -0.437500 +v -0.711313 1.794636 -0.562500 +v -0.544415 2.044416 -0.562500 +v -0.711313 1.794636 -0.437500 +v -0.294635 2.211313 -0.562500 +v -0.294635 2.211313 -0.437500 +v -0.544415 2.044416 -0.437500 +v 0.000000 2.269920 -0.562500 +v 0.367794 2.387934 0.562500 +v 0.000000 2.461093 0.437500 +v 0.000000 2.461093 0.562500 +v 0.679595 2.179595 0.437500 +v 0.367794 2.387934 0.437500 +v 0.887934 1.867794 0.562500 +v 0.679595 2.179595 0.562500 +v 0.961093 1.500000 0.562500 +v 0.887934 1.867794 0.437500 +v 0.887934 1.132205 0.562500 +v 0.961093 1.500000 0.437500 +v 0.679595 0.820405 0.562500 +v 0.887934 1.132205 0.437500 +v 0.367794 0.612066 0.437500 +v 0.679595 0.820405 0.437500 +v 0.000000 0.538907 0.562500 +v 0.367794 0.612066 0.562500 +v -0.367794 0.612066 0.562500 +v 0.000000 0.538907 0.437500 +v -0.679595 0.820404 0.562500 +v -0.367794 0.612066 0.437500 +v -0.887934 1.132205 0.562500 +v -0.679595 0.820404 0.437500 +v -0.961093 1.500000 0.562500 +v -0.887934 1.132205 0.437500 +v -0.887934 1.867795 0.562500 +v -0.961093 1.500000 0.437500 +v -0.679595 2.179596 0.562500 +v -0.887934 1.867795 0.437500 +v -0.367794 2.387935 0.562500 +v -0.679595 2.179596 0.437500 +v -0.367794 2.387935 0.437500 +v 0.000000 2.269920 0.562500 +v 0.294635 2.211313 0.562500 +v 0.294635 2.211313 0.437500 +v 0.000000 2.269920 0.437500 +v 0.544415 2.044415 0.562500 +v 0.544415 2.044415 0.437500 +v 0.711313 1.794636 0.562500 +v 0.711313 1.794636 0.437500 +v 0.769920 1.500000 0.562500 +v 0.769920 1.500000 0.437500 +v 0.711313 1.205364 0.562500 +v 0.711313 1.205364 0.437500 +v 0.544415 0.955585 0.562500 +v 0.544415 0.955585 0.437500 +v 0.294635 0.788687 0.562500 +v 0.294635 0.788687 0.437500 +v 0.000000 0.730080 0.562500 +v 0.000000 0.730080 0.437500 +v -0.294635 0.788687 0.562500 +v -0.294635 0.788687 0.437500 +v -0.544415 0.955584 0.562500 +v -0.544415 0.955584 0.437500 +v -0.711313 1.205364 0.562500 +v -0.711313 1.205364 0.437500 +v -0.769920 1.500000 0.562500 +v -0.769920 1.500000 0.437500 +v -0.711313 1.794636 0.562500 +v -0.711313 1.794636 0.437500 +v -0.544415 2.044416 0.562500 +v -0.544415 2.044416 0.437500 +v -0.294635 2.211313 0.562500 +v -0.294635 2.211313 0.437500 +v 0.613304 2.201693 0.000000 +v 0.657498 2.245887 -0.312500 +v 0.569110 2.157499 -0.312500 +v 0.701693 2.113304 -0.437500 +v 0.613304 2.201693 -0.437500 +v 0.701693 2.113304 0.000000 +v 0.745887 2.157498 0.312500 +v 0.657498 2.069110 0.312500 +v 0.657498 2.245887 0.312500 +v 0.701693 2.113304 0.437500 +v 0.701693 2.290081 0.000000 +v 0.790081 2.201693 0.000000 +v 0.613304 2.024916 0.437500 +v 0.569110 2.157499 0.312500 +v 0.613304 2.201693 0.437500 +v 0.745887 2.157498 -0.312500 +v 0.657498 2.069110 -0.312500 +v 0.524916 2.113304 -0.437500 +v -0.613304 2.201693 0.000000 +v -0.657498 2.245887 -0.312500 +v -0.701693 2.290081 0.000000 +v -0.701693 2.113304 -0.437500 +v -0.745887 2.157498 -0.312500 +v -0.701693 2.113304 0.000000 +v -0.745887 2.157498 0.312500 +v -0.790081 2.201693 0.000000 +v -0.701693 2.113304 0.437500 +v -0.657498 2.245887 0.312500 +v -0.657498 2.069110 0.312500 +v -0.613304 2.201693 0.437500 +v -0.569110 2.157499 0.312500 +v -0.657498 2.069110 -0.312500 +v -0.569110 2.157499 -0.312500 +v -0.613304 2.201693 -0.437500 +v 0.613304 0.798307 0.000000 +v 0.657498 0.754113 -0.312500 +v 0.701693 0.709919 0.000000 +v 0.613304 0.798307 -0.437500 +v 0.745887 0.842502 -0.312500 +v 0.701693 0.886696 0.000000 +v 0.745887 0.842502 0.312500 +v 0.790081 0.798307 0.000000 +v 0.613304 0.798307 0.437500 +v 0.657498 0.754113 0.312500 +v 0.657498 0.930890 0.312500 +v 0.701693 0.886696 0.437500 +v 0.569110 0.842502 0.312500 +v 0.657498 0.930890 -0.312500 +v 0.569110 0.842502 -0.312500 +v 0.701693 0.886696 -0.437500 +v -0.613304 0.798307 0.000000 +v -0.657498 0.754113 -0.312500 +v -0.569110 0.842502 -0.312500 +v -0.745887 0.842502 -0.312500 +v -0.613304 0.798307 -0.437500 +v -0.701693 0.886696 0.000000 +v -0.745887 0.842502 0.312500 +v -0.657498 0.930890 0.312500 +v -0.613304 0.798307 0.437500 +v -0.701693 0.886696 0.437500 +v -0.701693 0.709919 0.000000 +v -0.790081 0.798307 0.000000 +v -0.613304 0.975084 0.437500 +v -0.569110 0.842502 0.312500 +v -0.657498 0.754113 0.312500 +v -0.657498 0.930890 -0.312500 +v -0.524916 0.886696 -0.437500 +v -0.701693 0.886696 -0.437500 +v 0.000000 2.064916 0.777541 +v 0.113655 1.774387 0.914054 +v 0.216184 2.021915 0.777541 +v 0.000000 1.796994 -0.914054 +v 0.216184 2.021915 -0.777540 +v 0.113655 1.774387 -0.914054 +v 0.000000 2.414054 -0.296994 +v 0.367794 2.387934 0.000000 +v 0.349793 2.344476 -0.296994 +v 0.297552 2.218354 0.564917 +v 0.000000 2.277541 0.564917 +v 0.000000 1.500000 -0.961093 +v 0.000000 2.277541 -0.564916 +v 0.297552 2.218354 -0.564916 +v 0.349793 2.344476 0.296994 +v 0.000000 2.414054 0.296994 +v 0.000000 1.796994 0.914054 +v 0.000000 1.500000 0.961093 +v 0.000000 2.064916 -0.777540 +v 0.000000 2.461093 0.000000 +v 0.210007 1.710007 0.914054 +v 0.399456 1.899456 0.777541 +v 0.210007 1.710006 -0.914054 +v 0.679596 2.179595 0.000000 +v 0.646334 2.146334 -0.296994 +v 0.549804 2.049804 0.564917 +v 0.549804 2.049804 -0.564916 +v 0.646334 2.146334 0.296994 +v 0.399456 1.899456 -0.777540 +v 0.844476 1.849793 0.296994 +v 0.887934 1.867794 0.000000 +v 0.521915 1.716184 0.777541 +v 0.274387 1.613655 -0.914054 +v 0.844476 1.849793 -0.296994 +v 0.718354 1.797552 0.564917 +v 0.718354 1.797552 -0.564916 +v 0.274387 1.613655 0.914054 +v 0.521915 1.716184 -0.777540 +v 0.296994 1.500000 0.914054 +v 0.564916 1.500000 -0.777540 +v 0.914054 1.500000 0.296994 +v 0.961093 1.500000 0.000000 +v 0.564916 1.500000 0.777541 +v 0.296994 1.500000 -0.914054 +v 0.914054 1.500000 -0.296994 +v 0.777541 1.500000 0.564917 +v 0.777541 1.500000 -0.564916 +v 0.718354 1.202448 -0.564916 +v 0.844476 1.150206 0.296994 +v 0.274387 1.386345 0.914054 +v 0.521915 1.283816 -0.777540 +v 0.887934 1.132205 0.000000 +v 0.521915 1.283816 0.777541 +v 0.274387 1.386345 -0.914054 +v 0.844476 1.150206 -0.296994 +v 0.718354 1.202448 0.564917 +v 0.549804 0.950195 0.564917 +v 0.210007 1.289993 -0.914054 +v 0.549804 0.950195 -0.564916 +v 0.646334 0.853666 0.296994 +v 0.210007 1.289993 0.914054 +v 0.399456 1.100543 -0.777540 +v 0.679595 0.820404 0.000000 +v 0.399456 1.100543 0.777541 +v 0.646334 0.853666 -0.296994 +v 0.349793 0.655524 -0.296994 +v 0.297552 0.781646 0.564916 +v 0.113655 1.225613 -0.914054 +v 0.297552 0.781646 -0.564916 +v 0.349793 0.655524 0.296994 +v 0.113655 1.225613 0.914054 +v 0.216184 0.978085 -0.777540 +v 0.367794 0.612066 0.000000 +v 0.216184 0.978085 0.777541 +v 0.000000 0.935084 0.777541 +v 0.000000 1.203006 -0.914054 +v 0.000000 0.585946 -0.296994 +v 0.000000 0.722459 0.564916 +v 0.000000 0.722459 -0.564916 +v 0.000000 0.585946 0.296994 +v 0.000000 1.203006 0.914054 +v 0.000000 0.935084 -0.777540 +v 0.000000 0.538907 0.000000 +v -0.297552 0.781646 -0.564916 +v -0.216184 0.978085 -0.777540 +v -0.367795 0.612066 0.000000 +v -0.113655 1.225613 0.914054 +v -0.216184 0.978085 0.777541 +v -0.113655 1.225613 -0.914054 +v -0.349794 0.655524 -0.296994 +v -0.297552 0.781646 0.564916 +v -0.349793 0.655524 0.296994 +v -0.646334 0.853666 0.296994 +v -0.210007 1.289993 0.914054 +v -0.549804 0.950196 -0.564916 +v -0.399456 1.100544 -0.777540 +v -0.679596 0.820405 0.000000 +v -0.399456 1.100544 0.777541 +v -0.210007 1.289994 -0.914054 +v -0.646334 0.853666 -0.296994 +v -0.549804 0.950196 0.564917 +v -0.718354 1.202448 -0.564916 +v -0.844476 1.150207 0.296994 +v -0.274387 1.386345 0.914054 +v -0.521915 1.283816 -0.777540 +v -0.887934 1.132206 0.000000 +v -0.521915 1.283816 0.777541 +v -0.274387 1.386345 -0.914054 +v -0.844476 1.150207 -0.296994 +v -0.718354 1.202448 0.564917 +v -0.777541 1.500000 0.564917 +v -0.296994 1.500000 -0.914054 +v -0.777541 1.500000 -0.564916 +v -0.914054 1.500000 0.296994 +v -0.296994 1.500000 0.914054 +v -0.564916 1.500000 -0.777540 +v -0.961093 1.500000 0.000000 +v -0.564916 1.500000 0.777541 +v -0.914054 1.500000 -0.296994 +v -0.521914 1.716184 -0.777540 +v -0.274387 1.613655 -0.914054 +v -0.844476 1.849794 -0.296994 +v -0.718354 1.797552 0.564917 +v -0.718354 1.797552 -0.564916 +v -0.844476 1.849793 0.296994 +v -0.274387 1.613655 0.914054 +v -0.887934 1.867795 0.000000 +v -0.521914 1.716184 0.777541 +v -0.679595 2.179596 0.000000 +v -0.210007 1.710007 0.914054 +v -0.399456 1.899456 0.777541 +v -0.210006 1.710007 -0.914054 +v -0.646333 2.146334 -0.296994 +v -0.549804 2.049804 0.564917 +v -0.549804 2.049804 -0.564916 +v -0.646333 2.146334 0.296994 +v -0.399456 1.899456 -0.777540 +v -0.113655 1.774387 0.914054 +v -0.297551 2.218354 -0.564916 +v -0.216184 2.021915 -0.777540 +v -0.367794 2.387934 0.000000 +v -0.216184 2.021915 0.777541 +v -0.113655 1.774387 -0.914054 +v -0.349793 2.344476 -0.296994 +v -0.297551 2.218354 0.564917 +v -0.349793 2.344476 0.296994 +v -0.937500 0.187500 0.437500 +v 0.312593 2.071245 0.856743 +v 0.639883 1.620769 0.856743 +v 0.639883 1.379231 0.856743 +v 0.446690 1.026182 0.856743 +v 0.082876 0.854115 0.856743 +v -0.446690 1.026182 0.856743 +v -0.588663 1.221591 0.856743 +v -0.639883 1.620769 0.856743 +v -0.446690 1.973818 0.856743 +v -0.082876 2.145885 0.856743 +v 0.524916 2.113304 0.437500 +v 0.613304 2.024916 -0.437500 +v -0.613304 2.024916 0.437500 +v -0.524916 2.113304 0.437500 +v -0.524916 2.113304 -0.437500 +v -0.613304 2.024916 -0.437500 +v 0.613304 0.975084 0.437500 +v 0.524916 0.886696 0.437500 +v 0.524916 0.886696 -0.437500 +v 0.613304 0.975084 -0.437500 +v -0.524916 0.886696 0.437500 +v -0.613304 0.975084 -0.437500 +v 0.284663 2.432218 -0.215667 +v 0.241696 2.328486 -0.378320 +v 0.261693 2.376764 -0.198249 +v 0.264666 2.383941 -0.395739 +v 0.414923 2.256733 -0.378320 +v 0.437894 2.312188 -0.395739 +v 0.434921 2.305010 -0.198249 +v 0.386817 2.352198 -0.335715 +v 0.416453 2.423745 -0.293109 +v 0.393482 2.368290 -0.275691 +v 0.335740 2.392208 -0.275691 +v 0.329074 2.376116 -0.335715 +v 0.457891 2.360465 -0.215667 +v 0.409787 2.407653 -0.353133 +v 0.358710 2.447663 -0.293109 +v 0.352044 2.431571 -0.353133 +v -0.261693 2.376764 -0.198249 +v -0.264666 2.383941 -0.395739 +v -0.284663 2.432218 -0.215667 +v -0.414923 2.256733 -0.378320 +v -0.241696 2.328486 -0.378320 +v -0.434921 2.305010 -0.198249 +v -0.437894 2.312188 -0.395739 +v -0.457891 2.360465 -0.215667 +v -0.416453 2.423745 -0.293109 +v -0.386817 2.352198 -0.335715 +v -0.393482 2.368290 -0.275691 +v -0.329074 2.376116 -0.335715 +v -0.335740 2.392208 -0.275691 +v -0.409787 2.407653 -0.353133 +v -0.358710 2.447663 -0.293109 +v -0.352044 2.431571 -0.353133 +v 0.261693 2.376764 0.198249 +v 0.264666 2.383941 0.395739 +v 0.284663 2.432218 0.215667 +v 0.414923 2.256733 0.378320 +v 0.241696 2.328486 0.378320 +v 0.434921 2.305010 0.198249 +v 0.437894 2.312188 0.395739 +v 0.457891 2.360465 0.215667 +v 0.416453 2.423745 0.293109 +v 0.386817 2.352198 0.335715 +v 0.393482 2.368290 0.275691 +v 0.329074 2.376116 0.335715 +v 0.335740 2.392208 0.275691 +v 0.409787 2.407653 0.353133 +v 0.358710 2.447663 0.293109 +v 0.352044 2.431571 0.353133 +v -0.284663 2.432218 0.215667 +v -0.241696 2.328486 0.378320 +v -0.261693 2.376764 0.198249 +v -0.264666 2.383941 0.395739 +v -0.414923 2.256733 0.378320 +v -0.437894 2.312188 0.395739 +v -0.434921 2.305010 0.198249 +v -0.386817 2.352198 0.335715 +v -0.416453 2.423745 0.293109 +v -0.393482 2.368290 0.275691 +v -0.335740 2.392208 0.275691 +v -0.329074 2.376116 0.335715 +v -0.457891 2.360465 0.215667 +v -0.409787 2.407653 0.353133 +v -0.358710 2.447663 0.293109 +v -0.352044 2.431571 0.353133 +v 0.261693 0.623236 -0.198249 +v 0.264666 0.616059 -0.395739 +v 0.284663 0.567782 -0.215667 +v 0.414923 0.743267 -0.378320 +v 0.241696 0.671514 -0.378320 +v 0.434921 0.694990 -0.198249 +v 0.437894 0.687812 -0.395739 +v 0.457891 0.639535 -0.215667 +v 0.416453 0.576255 -0.293109 +v 0.386817 0.647802 -0.335715 +v 0.393482 0.631710 -0.275691 +v 0.329074 0.623884 -0.335715 +v 0.335740 0.607792 -0.275691 +v 0.409787 0.592347 -0.353133 +v 0.358710 0.552337 -0.293109 +v 0.352044 0.568430 -0.353133 +v -0.284663 0.567782 -0.215667 +v -0.241696 0.671514 -0.378320 +v -0.261693 0.623236 -0.198249 +v -0.264666 0.616059 -0.395739 +v -0.414923 0.743267 -0.378320 +v -0.437894 0.687812 -0.395739 +v -0.434921 0.694990 -0.198249 +v -0.386817 0.647802 -0.335715 +v -0.416453 0.576255 -0.293109 +v -0.393482 0.631710 -0.275691 +v -0.335740 0.607792 -0.275691 +v -0.329074 0.623884 -0.335715 +v -0.457891 0.639535 -0.215667 +v -0.409787 0.592347 -0.353133 +v -0.358710 0.552337 -0.293109 +v -0.352044 0.568430 -0.353133 +v 0.284663 0.567782 0.215667 +v 0.241696 0.671514 0.378320 +v 0.261693 0.623236 0.198249 +v 0.264666 0.616059 0.395739 +v 0.414923 0.743267 0.378320 +v 0.437894 0.687812 0.395739 +v 0.434921 0.694990 0.198249 +v 0.386817 0.647802 0.335715 +v 0.416453 0.576255 0.293109 +v 0.393482 0.631710 0.275691 +v 0.335740 0.607792 0.275691 +v 0.329074 0.623884 0.335715 +v 0.457891 0.639535 0.215667 +v 0.409787 0.592347 0.353133 +v 0.358710 0.552337 0.293109 +v 0.352044 0.568430 0.353133 +v -0.261693 0.623236 0.198249 +v -0.264666 0.616059 0.395739 +v -0.284663 0.567782 0.215667 +v -0.414923 0.743267 0.378320 +v -0.241696 0.671514 0.378320 +v -0.434921 0.694990 0.198249 +v -0.437894 0.687812 0.395739 +v -0.457891 0.639535 0.215667 +v -0.416453 0.576255 0.293109 +v -0.386817 0.647802 0.335715 +v -0.393482 0.631710 0.275691 +v -0.329074 0.623884 0.335715 +v -0.335740 0.607792 0.275691 +v -0.409787 0.592347 0.353133 +v -0.358710 0.552337 0.293109 +v -0.352044 0.568430 0.353133 +v 0.292716 2.062386 0.759617 +v 0.344670 2.133894 0.582840 +v 0.266740 2.026632 0.715423 +v 0.370646 2.169648 0.627035 +v 0.496360 2.023684 0.582840 +v 0.522337 2.059438 0.627035 +v 0.418430 1.916423 0.715423 +v 0.444407 1.952176 0.759617 +v 0.419820 2.024667 0.715423 +v 0.395233 2.097157 0.759617 +v 0.369257 2.061403 0.715423 +v 0.395233 2.097157 0.671229 +v 0.445797 2.060421 0.671229 +v 0.421210 2.132911 0.715423 +v 0.445797 2.060421 0.759617 +v 0.471774 2.096174 0.715423 +v 0.625315 1.395397 0.759617 +v 0.709378 1.368084 0.582840 +v 0.583284 1.409054 0.715423 +v 0.751409 1.354427 0.627035 +v 0.651437 1.189760 0.582840 +v 0.567375 1.217074 0.759617 +v 0.525343 1.230731 0.715423 +v 0.628719 1.262858 0.715423 +v 0.690064 1.308643 0.759617 +v 0.648033 1.322299 0.715423 +v 0.690064 1.308643 0.671229 +v 0.670751 1.249202 0.671229 +v 0.693468 1.176104 0.627035 +v 0.732095 1.294986 0.715423 +v 0.670751 1.249202 0.759617 +v 0.712782 1.235545 0.715423 +v 0.093750 0.872966 0.759617 +v 0.093750 0.784577 0.582840 +v 0.093750 0.917160 0.715423 +v -0.093750 0.740383 0.627035 +v -0.093750 0.784577 0.582840 +v -0.093750 0.872966 0.759617 +v -0.093750 0.917160 0.715423 +v -0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.759617 +v 0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.671229 +v -0.031250 0.784577 0.671229 +v 0.093750 0.740383 0.627035 +v 0.031250 0.740383 0.715423 +v -0.031250 0.784577 0.759617 +v -0.031250 0.740383 0.715423 +v -0.567375 1.217074 0.759617 +v -0.651437 1.189761 0.582840 +v -0.525344 1.230731 0.715423 +v -0.751409 1.354427 0.627035 +v -0.709378 1.368084 0.582840 +v -0.625316 1.395398 0.759617 +v -0.583284 1.409054 0.715423 +v -0.648033 1.322300 0.715423 +v -0.670751 1.249202 0.759617 +v -0.628720 1.262859 0.715423 +v -0.670751 1.249202 0.671229 +v -0.690064 1.308643 0.671229 +v -0.693468 1.176104 0.627035 +v -0.712782 1.235545 0.715423 +v -0.690064 1.308643 0.759617 +v -0.732096 1.294986 0.715423 +v -0.444407 1.952177 0.759617 +v -0.496360 2.023685 0.582840 +v -0.418430 1.916423 0.715423 +v -0.370646 2.169648 0.627035 +v -0.344669 2.133894 0.582840 +v -0.266739 2.026633 0.715423 +v -0.292716 2.062387 0.759617 +v -0.369256 2.061404 0.715423 +v -0.445797 2.060421 0.759617 +v -0.419820 2.024667 0.715423 +v -0.445797 2.060421 0.671229 +v -0.395233 2.097158 0.671229 +v -0.522337 2.059438 0.627035 +v -0.471773 2.096175 0.715423 +v -0.395233 2.097158 0.759617 +v -0.421210 2.132912 0.715423 +v 0.344670 2.133894 -0.582840 +v 0.292716 2.062386 -0.759617 +v 0.266740 2.026632 -0.715423 +v 0.496360 2.023684 -0.582840 +v 0.370646 2.169648 -0.627035 +v 0.418430 1.916423 -0.715423 +v 0.522337 2.059438 -0.627035 +v 0.444407 1.952176 -0.759617 +v 0.395233 2.097157 -0.759617 +v 0.419820 2.024667 -0.715423 +v 0.369257 2.061403 -0.715423 +v 0.395233 2.097157 -0.671229 +v 0.445797 2.060421 -0.671229 +v 0.445797 2.060421 -0.759617 +v 0.421210 2.132911 -0.715423 +v 0.471774 2.096174 -0.715423 +v 0.709378 1.368084 -0.582840 +v 0.625315 1.395397 -0.759617 +v 0.583284 1.409054 -0.715423 +v 0.693468 1.176104 -0.627035 +v 0.751409 1.354427 -0.627035 +v 0.525343 1.230731 -0.715423 +v 0.651437 1.189760 -0.582840 +v 0.567375 1.217074 -0.759617 +v 0.690064 1.308643 -0.759617 +v 0.628719 1.262858 -0.715423 +v 0.648033 1.322299 -0.715423 +v 0.690064 1.308643 -0.671229 +v 0.670751 1.249202 -0.671229 +v 0.670751 1.249202 -0.759617 +v 0.732095 1.294986 -0.715423 +v 0.712782 1.235545 -0.715423 +v 0.093750 0.784577 -0.582840 +v 0.093750 0.872966 -0.759617 +v 0.093750 0.917160 -0.715423 +v -0.093750 0.740383 -0.627035 +v 0.093750 0.740383 -0.627035 +v -0.093750 0.784577 -0.582840 +v -0.093750 0.872966 -0.759617 +v -0.093750 0.917160 -0.715423 +v 0.031250 0.784577 -0.759617 +v -0.031250 0.828771 -0.715423 +v 0.031250 0.828771 -0.715423 +v 0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.759617 +v 0.031250 0.740383 -0.715423 +v -0.031250 0.740383 -0.715423 +v -0.651437 1.189761 -0.582840 +v -0.567375 1.217074 -0.759617 +v -0.525344 1.230731 -0.715423 +v -0.751409 1.354427 -0.627035 +v -0.693468 1.176104 -0.627035 +v -0.709378 1.368084 -0.582840 +v -0.625316 1.395398 -0.759617 +v -0.583284 1.409054 -0.715423 +v -0.670751 1.249202 -0.759617 +v -0.648033 1.322300 -0.715423 +v -0.628720 1.262859 -0.715423 +v -0.670751 1.249202 -0.671229 +v -0.690064 1.308643 -0.671229 +v -0.690064 1.308643 -0.759617 +v -0.712782 1.235545 -0.715423 +v -0.732096 1.294986 -0.715423 +v -0.496360 2.023685 -0.582840 +v -0.444407 1.952177 -0.759617 +v -0.418430 1.916423 -0.715423 +v -0.344669 2.133894 -0.582840 +v -0.522337 2.059438 -0.627035 +v -0.266739 2.026633 -0.715423 +v -0.370646 2.169648 -0.627035 +v -0.292716 2.062387 -0.759617 +v -0.445797 2.060421 -0.759617 +v -0.369256 2.061404 -0.715423 +v -0.419820 2.024667 -0.715423 +v -0.445797 2.060421 -0.671229 +v -0.395233 2.097158 -0.671229 +v -0.395233 2.097158 -0.759617 +v -0.471773 2.096175 -0.715423 +v -0.421210 2.132912 -0.715423 +v 0.932218 1.215337 -0.215667 +v 0.828486 1.258304 -0.378320 +v 0.876764 1.238307 -0.198249 +v 0.883941 1.235334 -0.395739 +v 0.756733 1.085077 -0.378320 +v 0.860465 1.042109 -0.215667 +v 0.805010 1.065079 -0.198249 +v 0.852198 1.113183 -0.335715 +v 0.923745 1.083547 -0.293109 +v 0.868290 1.106518 -0.275691 +v 0.876116 1.170926 -0.335715 +v 0.892208 1.164260 -0.275691 +v 0.812188 1.062106 -0.395739 +v 0.907653 1.090213 -0.353133 +v 0.947663 1.141290 -0.293109 +v 0.931570 1.147956 -0.353133 +v 0.828486 1.741696 -0.378320 +v 0.932218 1.784663 -0.215667 +v 0.876764 1.761693 -0.198249 +v 0.756733 1.914923 -0.378320 +v 0.883941 1.764666 -0.395739 +v 0.805010 1.934921 -0.198249 +v 0.812188 1.937894 -0.395739 +v 0.860465 1.957891 -0.215667 +v 0.923745 1.916453 -0.293109 +v 0.852198 1.886817 -0.335715 +v 0.868290 1.893483 -0.275691 +v 0.892208 1.835740 -0.275691 +v 0.876116 1.829074 -0.335715 +v 0.931570 1.852044 -0.353133 +v 0.907653 1.909787 -0.353133 +v 0.947663 1.858710 -0.293109 +v 0.828486 1.258304 0.378320 +v 0.932218 1.215337 0.215667 +v 0.876764 1.238307 0.198249 +v 0.756733 1.085077 0.378320 +v 0.883941 1.235334 0.395739 +v 0.860465 1.042109 0.215667 +v 0.812188 1.062106 0.395739 +v 0.805010 1.065079 0.198249 +v 0.868290 1.106518 0.275691 +v 0.907653 1.090213 0.353133 +v 0.852198 1.113183 0.335715 +v 0.892208 1.164260 0.275691 +v 0.876116 1.170926 0.335715 +v 0.947663 1.141290 0.293109 +v 0.931570 1.147956 0.353133 +v 0.932218 1.784663 0.215667 +v 0.828486 1.741696 0.378320 +v 0.876764 1.761693 0.198249 +v 0.883941 1.764666 0.395739 +v 0.756733 1.914923 0.378320 +v 0.812188 1.937894 0.395739 +v 0.805010 1.934921 0.198249 +v 0.860465 1.957891 0.215667 +v 0.852198 1.886817 0.335715 +v 0.923745 1.916453 0.293109 +v 0.868290 1.893483 0.275691 +v 0.876116 1.829074 0.335715 +v 0.892208 1.835740 0.275691 +v 0.931570 1.852044 0.353133 +v 0.907653 1.909787 0.353133 +v 0.947663 1.858710 0.293109 +v -0.828486 1.258304 -0.378320 +v -0.932218 1.215337 -0.215667 +v -0.876764 1.238307 -0.198249 +v -0.756733 1.085077 -0.378320 +v -0.883941 1.235334 -0.395739 +v -0.805010 1.065079 -0.198249 +v -0.812188 1.062106 -0.395739 +v -0.860465 1.042109 -0.215667 +v -0.923745 1.083547 -0.293109 +v -0.852198 1.113183 -0.335715 +v -0.868290 1.106517 -0.275691 +v -0.892208 1.164260 -0.275691 +v -0.876116 1.170926 -0.335715 +v -0.931570 1.147956 -0.353133 +v -0.907653 1.090213 -0.353133 +v -0.947663 1.141290 -0.293109 +v -0.932218 1.784663 -0.215667 +v -0.828486 1.741696 -0.378320 +v -0.876764 1.761693 -0.198249 +v -0.883941 1.764666 -0.395739 +v -0.756733 1.914923 -0.378320 +v -0.860465 1.957891 -0.215667 +v -0.805010 1.934921 -0.198249 +v -0.852198 1.886817 -0.335715 +v -0.923745 1.916453 -0.293109 +v -0.868290 1.893482 -0.275691 +v -0.876116 1.829074 -0.335715 +v -0.892208 1.835740 -0.275691 +v -0.812188 1.937894 -0.395739 +v -0.907653 1.909787 -0.353133 +v -0.947663 1.858710 -0.293109 +v -0.931570 1.852044 -0.353133 +v -0.932218 1.215337 0.215667 +v -0.828486 1.258304 0.378320 +v -0.876764 1.238307 0.198249 +v -0.883941 1.235334 0.395739 +v -0.756733 1.085077 0.378320 +v -0.812188 1.062106 0.395739 +v -0.805010 1.065079 0.198249 +v -0.860465 1.042109 0.215667 +v -0.852198 1.113183 0.335715 +v -0.923745 1.083547 0.293109 +v -0.868290 1.106517 0.275691 +v -0.876116 1.170926 0.335715 +v -0.892208 1.164260 0.275691 +v -0.931570 1.147956 0.353133 +v -0.907653 1.090213 0.353133 +v -0.947663 1.141290 0.293109 +v -0.828486 1.741696 0.378320 +v -0.932218 1.784663 0.215667 +v -0.876764 1.761693 0.198249 +v -0.756733 1.914923 0.378320 +v -0.883941 1.764666 0.395739 +v -0.860465 1.957891 0.215667 +v -0.812188 1.937894 0.395739 +v -0.805010 1.934921 0.198249 +v -0.868290 1.893482 0.275691 +v -0.907653 1.909787 0.353133 +v -0.852198 1.886817 0.335715 +v -0.892208 1.835740 0.275691 +v -0.876116 1.829074 0.335715 +v -0.947663 1.858710 0.293109 +v -0.931570 1.852044 0.353133 +v 0.923745 1.083547 0.293109 +v -0.923745 1.916453 0.293109 +v -0.807442 1.959695 -1.252000 +v -0.807442 1.959695 -0.439500 +v -1.212871 1.460005 -0.439500 +v -0.905119 1.405740 -0.439500 +v -0.905119 1.405740 -1.252000 +v -1.212871 1.460005 -1.252000 +v -1.115194 2.013960 -1.252000 +v -1.115194 2.013960 -0.439500 +v -1.126047 1.952409 -1.189500 +v -1.202018 1.521556 -1.189500 +v -1.191165 1.583106 -1.189500 +v -1.180312 1.644657 -1.189500 +v -1.169459 1.706207 -1.189500 +v -1.158606 1.767758 -1.189500 +v -1.136900 1.890859 -1.189500 +v -1.147753 1.829308 -1.189500 +v -1.136900 1.890859 -0.502000 +v -1.180312 1.644657 -0.939500 +v -1.231010 1.717060 -0.939500 +v -1.169459 1.706207 -0.939500 +v -1.126047 1.952409 -0.564500 +v -1.136900 1.890859 -0.627000 +v -1.136900 1.890859 -0.564500 +v -1.202018 1.521556 -1.064500 +v -1.252716 1.593959 -1.064500 +v -1.191165 1.583106 -1.064500 +v -1.126047 1.952409 -0.689500 +v -1.136900 1.890859 -0.752000 +v -1.136900 1.890859 -0.689500 +v -1.187598 1.963262 -0.627000 +v -1.198451 1.901712 -0.627000 +v -1.126047 1.952409 -0.814500 +v -1.136900 1.890859 -0.877000 +v -1.136900 1.890859 -0.814500 +v -1.147753 1.829308 -0.752000 +v -1.220157 1.778611 -0.752000 +v -1.158606 1.767758 -0.752000 +v -1.126047 1.952409 -0.939500 +v -1.136900 1.890859 -1.002000 +v -1.136900 1.890859 -0.939500 +v -1.191165 1.583106 -0.939500 +v -1.252716 1.593959 -0.877000 +v -1.191165 1.583106 -0.877000 +v -1.126047 1.952409 -1.064500 +v -1.136900 1.890859 -1.127000 +v -1.136900 1.890859 -1.064500 +v -1.180312 1.644657 -0.877000 +v -1.231010 1.717060 -0.877000 +v -1.241863 1.655510 -0.877000 +v -1.147753 1.829308 -0.502000 +v -1.147753 1.829308 -0.564500 +v -1.147753 1.829308 -0.627000 +v -1.147753 1.829308 -0.689500 +v -1.147753 1.829308 -0.814500 +v -1.147753 1.829308 -0.877000 +v -1.147753 1.829308 -0.939500 +v -1.147753 1.829308 -1.002000 +v -1.147753 1.829308 -1.064500 +v -1.147753 1.829308 -1.127000 +v -1.158606 1.767758 -0.502000 +v -1.169459 1.706207 -1.064500 +v -1.231010 1.717060 -1.002000 +v -1.169459 1.706207 -1.002000 +v -1.158606 1.767758 -0.627000 +v -1.158606 1.767758 -0.564500 +v -1.202018 1.521556 -1.002000 +v -1.252716 1.593959 -1.002000 +v -1.263569 1.532409 -1.002000 +v -1.158606 1.767758 -0.689500 +v -1.209304 1.840161 -1.189500 +v -1.209304 1.840161 -1.127000 +v -1.158606 1.767758 -0.877000 +v -1.158606 1.767758 -0.814500 +v -1.187598 1.963262 -0.564500 +v -1.158606 1.767758 -1.002000 +v -1.158606 1.767758 -0.939500 +v -1.220157 1.778611 -0.689500 +v -1.209304 1.840161 -0.689500 +v -1.158606 1.767758 -1.064500 +v -1.158606 1.767758 -1.127000 +v -1.180312 1.644657 -0.814500 +v -1.231010 1.717060 -0.814500 +v -1.169459 1.706207 -0.814500 +v -1.169459 1.706207 -0.502000 +v -1.169459 1.706207 -0.564500 +v -1.169459 1.706207 -0.627000 +v -1.169459 1.706207 -0.689500 +v -1.169459 1.706207 -0.752000 +v -1.169459 1.706207 -0.877000 +v -1.169459 1.706207 -1.127000 +v -1.180312 1.644657 -0.502000 +v -1.202018 1.521556 -0.939500 +v -1.252716 1.593959 -0.939500 +v -1.180312 1.644657 -0.627000 +v -1.180312 1.644657 -0.564500 +v -1.187598 1.963262 -0.502000 +v -1.198451 1.901712 -0.502000 +v -1.180312 1.644657 -0.752000 +v -1.180312 1.644657 -0.689500 +v -1.220157 1.778611 -0.627000 +v -1.191165 1.583106 -0.814500 +v -1.252716 1.593959 -0.752000 +v -1.191165 1.583106 -0.752000 +v -1.180312 1.644657 -1.002000 +v -1.231010 1.717060 -0.752000 +v -1.241863 1.655510 -0.752000 +v -1.180312 1.644657 -1.127000 +v -1.180312 1.644657 -1.064500 +v -1.191165 1.583106 -0.502000 +v -1.191165 1.583106 -0.564500 +v -1.191165 1.583106 -0.627000 +v -1.191165 1.583106 -0.689500 +v -1.191165 1.583106 -1.002000 +v -1.191165 1.583106 -1.127000 +v -1.202018 1.521556 -0.502000 +v -1.202018 1.521556 -0.877000 +v -1.263569 1.532409 -0.877000 +v -1.202018 1.521556 -0.627000 +v -1.202018 1.521556 -0.564500 +v -1.209304 1.840161 -1.002000 +v -1.202018 1.521556 -0.752000 +v -1.202018 1.521556 -0.689500 +v -1.187598 1.963262 -1.127000 +v -1.126047 1.952409 -1.127000 +v -1.202018 1.521556 -0.814500 +v -1.220157 1.778611 -0.564500 +v -1.209304 1.840161 -0.564500 +v -1.231010 1.717060 -0.689500 +v -1.202018 1.521556 -1.127000 +v -1.252716 1.593959 -0.814500 +v -1.126047 1.952409 -0.502000 +v -1.126047 1.952409 -0.627000 +v -1.126047 1.952409 -0.752000 +v -1.126047 1.952409 -0.877000 +v -1.126047 1.952409 -1.002000 +v -1.198451 1.901712 -0.564500 +v -1.198451 1.901712 -0.689500 +v -1.187598 1.963262 -0.752000 +v -1.198451 1.901712 -0.814500 +v -1.198451 1.901712 -0.752000 +v -1.187598 1.963262 -0.877000 +v -1.198451 1.901712 -0.939500 +v -1.198451 1.901712 -0.877000 +v -1.187598 1.963262 -1.002000 +v -1.198451 1.901712 -1.064500 +v -1.198451 1.901712 -1.002000 +v -1.198451 1.901712 -1.127000 +v -1.187598 1.963262 -1.189500 +v -1.198451 1.901712 -1.189500 +v -1.209304 1.840161 -0.502000 +v -1.220157 1.778611 -0.502000 +v -1.209304 1.840161 -0.627000 +v -1.209304 1.840161 -0.752000 +v -1.220157 1.778611 -0.814500 +v -1.209304 1.840161 -0.877000 +v -1.220157 1.778611 -0.939500 +v -1.220157 1.778611 -0.877000 +v -1.220157 1.778611 -1.064500 +v -1.220157 1.778611 -1.002000 +v -1.220157 1.778611 -1.189500 +v -1.220157 1.778611 -1.127000 +v -1.231010 1.717060 -0.502000 +v -1.241863 1.655510 -0.564500 +v -1.241863 1.655510 -0.502000 +v -1.231010 1.717060 -0.627000 +v -1.241863 1.655510 -0.689500 +v -1.241863 1.655510 -0.627000 +v -1.241863 1.655510 -0.814500 +v -1.241863 1.655510 -0.939500 +v -1.241863 1.655510 -1.064500 +v -1.241863 1.655510 -1.002000 +v -1.241863 1.655510 -1.127000 +v -1.231010 1.717060 -1.189500 +v -1.241863 1.655510 -1.189500 +v -1.252716 1.593959 -0.502000 +v -1.263569 1.532409 -0.564500 +v -1.263569 1.532409 -0.502000 +v -1.252716 1.593959 -0.627000 +v -1.263569 1.532409 -0.689500 +v -1.263569 1.532409 -0.627000 +v -1.263569 1.532409 -0.814500 +v -1.263569 1.532409 -0.752000 +v -1.263569 1.532409 -0.939500 +v -1.263569 1.532409 -1.064500 +v -1.263569 1.532409 -1.127000 +v -1.252716 1.593959 -1.189500 +v -1.263569 1.532409 -1.189500 +v -1.209304 1.840161 -0.814500 +v -1.187598 1.963262 -0.689500 +v -1.252716 1.593959 -1.127000 +v -1.231010 1.717060 -1.127000 +v -1.231010 1.717060 -1.064500 +v -1.209304 1.840161 -0.939500 +v -1.187598 1.963262 -0.814500 +v -1.209304 1.840161 -1.064500 +v -1.187598 1.963262 -0.939500 +v -1.187598 1.963262 -1.064500 +v -1.252716 1.593959 -0.564500 +v -1.252716 1.593959 -0.689500 +v -1.231010 1.717060 -0.564500 +v -0.934110 1.601245 -1.252000 +v -0.995661 1.612098 -1.252000 +v -0.944963 1.539694 -1.252000 +v -1.006514 1.550547 -1.252000 +v -0.934110 1.601245 -1.314400 +v -0.995661 1.612098 -1.314400 +v -0.944963 1.539694 -1.314400 +v -1.006514 1.550547 -1.314400 +v -1.057211 1.622951 -1.252000 +v -1.118762 1.633804 -1.252000 +v -1.068064 1.561400 -1.252000 +v -1.129615 1.572253 -1.252000 +v -1.057211 1.622951 -1.314500 +v -1.118762 1.633804 -1.314500 +v -1.068064 1.561400 -1.314500 +v -1.129615 1.572253 -1.314500 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.982558 0.495146 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.470930 0.834951 +vt 0.837209 0.242718 +vt 0.831395 0.252427 +vt 0.831395 0.242718 +vt 0.488372 0.699029 +vt 0.494186 0.834951 +vt 0.494186 0.699029 +vt 0.802326 0.233010 +vt 0.802326 0.242718 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.988372 0.582524 +vt 0.808140 0.495146 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.831395 0.252427 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.994186 0.563107 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.988372 0.504854 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.802326 0.563107 +vt 0.988372 0.543689 +vt 0.802326 0.553398 +vt 0.802326 0.543689 +vt 0.802326 0.233010 +vt 0.831395 0.242718 +vt 0.831395 0.233010 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.802326 0.310680 +vt 0.988372 0.485437 +vt 0.808140 0.504854 +vt 0.802326 0.514563 +vt 0.802326 0.524272 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.872093 0.300971 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.796512 0.572816 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.802326 0.300971 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.488372 0.699029 +vt 0.802326 0.233010 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.988372 0.553398 +vt 0.988372 0.504854 +vt 0.994186 0.495146 +vt 0.796512 0.252427 +vt 0.994186 0.553398 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.796512 0.310680 +vt 0.802326 0.533981 +vt 0.988372 0.543689 +vt 0.988372 0.533981 +vt 0.831395 0.223301 +vt 0.802326 0.242718 +vt 0.831395 0.242718 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.796512 0.252427 +vt 0.802326 0.242718 +vt 0.802326 0.252427 +vt 0.872093 0.310680 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.796512 0.310680 +vt 0.831395 0.252427 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.796512 0.495146 +vt 0.802326 0.242718 +vt 0.831395 0.252427 +vt 0.872093 0.310680 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.796512 0.553398 +vt 0.802326 0.563107 +vt 0.802326 0.553398 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.802326 0.504854 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.300971 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.994186 0.563107 +vt 0.988372 0.553398 +vt 0.465116 0.699029 +vt 0.494186 0.834951 +vt 0.877907 0.310680 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.494186 0.699029 +vt 0.511628 0.834951 +vt 0.994186 0.495146 +vt 0.994186 0.504854 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.511628 0.834951 +vt 0.511628 0.699029 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.533981 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.337209 0.640777 +vt 0.354651 0.689320 +vt 0.354651 0.650485 +vt 0.325581 0.582524 +vt 0.308140 0.533981 +vt 0.308140 0.572816 +vt 0.325581 0.466019 +vt 0.308140 0.514563 +vt 0.325581 0.524272 +vt 0.325581 0.640777 +vt 0.308140 0.592233 +vt 0.308140 0.631068 +vt 0.593023 0.514563 +vt 0.406977 0.689320 +vt 0.389535 0.640777 +vt 0.389535 0.699029 +vt 0.360465 0.747573 +vt 0.377907 0.699029 +vt 0.360465 0.708738 +vt 0.308140 0.922330 +vt 0.325581 0.873786 +vt 0.308140 0.883495 +vt 0.337209 0.932039 +vt 0.354651 0.980583 +vt 0.354651 0.941748 +vt 0.337209 0.815534 +vt 0.354651 0.766990 +vt 0.337209 0.757282 +vt 0.360465 0.223301 +vt 0.377907 0.174757 +vt 0.360465 0.184466 +vt 0.308140 0.825243 +vt 0.308140 0.864078 +vt 0.337209 0.873786 +vt 0.354651 0.922330 +vt 0.354651 0.883495 +vt 0.360465 0.592233 +vt 0.377907 0.640777 +vt 0.377907 0.582524 +vt 0.360465 0.980583 +vt 0.377907 0.932039 +vt 0.360465 0.941748 +vt 0.360465 0.067961 +vt 0.377907 0.116505 +vt 0.377907 0.058252 +vt 0.337209 0.466019 +vt 0.354651 0.417476 +vt 0.337209 0.407767 +vt 0.325581 0.116505 +vt 0.308140 0.067961 +vt 0.308140 0.106796 +vt 0.308140 0.165049 +vt 0.308140 0.126214 +vt 0.406977 0.165049 +vt 0.389535 0.116505 +vt 0.389535 0.174757 +vt 0.325581 0.407767 +vt 0.308140 0.359223 +vt 0.308140 0.398058 +vt 0.325581 0.174757 +vt 0.308140 0.223301 +vt 0.325581 0.233010 +vt 0.360465 0.339806 +vt 0.377907 0.291262 +vt 0.360465 0.300971 +vt 0.389535 0.233010 +vt 0.406977 0.281553 +vt 0.406977 0.242718 +vt 0.337209 0.291262 +vt 0.354651 0.242718 +vt 0.337209 0.233010 +vt 0.389535 0.291262 +vt 0.406977 0.339806 +vt 0.406977 0.300971 +vt 0.354651 0.359223 +vt 0.354651 0.398058 +vt 0.406977 0.922330 +vt 0.389535 0.873786 +vt 0.389535 0.932039 +vt 0.360465 0.533981 +vt 0.360465 0.572816 +vt 0.308140 0.417476 +vt 0.308140 0.456311 +vt 0.360465 0.825243 +vt 0.377907 0.873786 +vt 0.377907 0.815534 +vt 0.389535 0.466019 +vt 0.406977 0.514563 +vt 0.406977 0.475728 +vt 0.802326 0.233010 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.831395 0.242718 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.808140 0.495146 +vt 0.802326 0.504854 +vt 0.465116 0.699029 +vt 0.470930 0.834951 +vt 0.465116 0.834951 +vt 0.808140 0.504854 +vt 0.337209 0.582524 +vt 0.354651 0.533981 +vt 0.337209 0.524272 +vt 0.406977 0.533981 +vt 0.389535 0.582524 +vt 0.406977 0.572816 +vt 0.354651 0.592233 +vt 0.354651 0.631068 +vt 0.406977 0.592233 +vt 0.406977 0.631068 +vt 0.360465 0.689320 +vt 0.360465 0.650485 +vt 0.308140 0.689320 +vt 0.308140 0.650485 +vt 0.406977 0.747573 +vt 0.389535 0.757282 +vt 0.325581 0.699029 +vt 0.308140 0.747573 +vt 0.325581 0.757282 +vt 0.360465 0.766990 +vt 0.360465 0.805825 +vt 0.308140 0.281553 +vt 0.325581 0.291262 +vt 0.406977 0.825243 +vt 0.406977 0.864078 +vt 0.360465 0.359223 +vt 0.377907 0.407767 +vt 0.377907 0.349515 +vt 0.337209 0.116505 +vt 0.354651 0.165049 +vt 0.354651 0.126214 +vt 0.337209 0.174757 +vt 0.354651 0.223301 +vt 0.354651 0.184466 +vt 0.354651 0.067961 +vt 0.354651 0.106796 +vt 0.325581 0.932039 +vt 0.308140 0.980583 +vt 0.325581 0.990291 +vt 0.406977 0.067961 +vt 0.406977 0.106796 +vt 0.406977 0.980583 +vt 0.406977 0.941748 +vt 0.360465 0.922330 +vt 0.360465 0.883495 +vt 0.360465 0.165049 +vt 0.360465 0.126214 +vt 0.354651 0.825243 +vt 0.354651 0.864078 +vt 0.406977 0.223301 +vt 0.406977 0.184466 +vt 0.360465 0.242718 +vt 0.360465 0.281553 +vt 0.308140 0.339806 +vt 0.325581 0.349515 +vt 0.354651 0.339806 +vt 0.354651 0.300971 +vt 0.406977 0.766990 +vt 0.389535 0.815534 +vt 0.406977 0.805825 +vt 0.406977 0.359223 +vt 0.389535 0.407767 +vt 0.406977 0.398058 +vt 0.308140 0.805825 +vt 0.325581 0.815534 +vt 0.406977 0.417476 +vt 0.406977 0.456311 +vt 0.377907 0.466019 +vt 0.360465 0.417476 +vt 0.360465 0.456311 +vt 0.354651 0.514563 +vt 0.354651 0.475728 +vt 0.360465 0.514563 +vt 0.360465 0.475728 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.558140 0.466019 +vt 0.569767 0.446602 +vt 0.569767 0.466019 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.563107 +vt 0.831395 0.223301 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.569767 0.446602 +vt 0.581395 0.563107 +vt 0.593023 0.514563 +vt 0.593023 0.563107 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.569767 0.563107 +vt 0.569767 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.582524 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.593023 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.582524 +vt 0.581395 0.563107 +vt 0.877907 0.310680 +vt 0.593023 0.514563 +vt 0.569767 0.446602 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.581395 0.466019 +vt 0.569767 0.446602 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.662281 0.950003 +vt 0.570315 0.837433 +vt 0.570033 0.949354 +vt 0.337209 0.699029 +vt 0.354651 0.747573 +vt 0.354651 0.708738 +vt 0.802326 0.485437 +vt 0.988372 0.485437 +vt 0.982558 0.495146 +vt 0.988372 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.524272 +vt 0.802326 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.485437 +vt 0.988372 0.514563 +vt 0.525581 0.851052 +vt 0.548382 0.944680 +vt 0.492314 0.982754 +vt 0.570027 0.744687 +vt 0.570320 0.632766 +vt 0.634153 0.598647 +vt 0.598452 0.984140 +vt 0.633688 0.984388 +vt 0.673311 0.894119 +vt 0.662564 0.838082 +vt 0.634144 0.803296 +vt 0.598908 0.803048 +vt 0.559286 0.893317 +vt 0.796512 0.553398 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.819767 0.708738 +vt 0.802326 0.718447 +vt 0.819767 0.718447 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.951456 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.802326 0.718447 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.819767 0.708738 +vt 0.819767 0.718447 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.718447 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.825581 0.747573 +vt 0.825581 0.718447 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.831395 0.728155 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.747573 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.837209 0.737864 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.819767 0.708738 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.825581 0.980583 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.718447 +vt 0.819767 0.708738 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.737864 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.819767 0.718447 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.728155 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.796512 0.718447 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.718447 +vt 0.843023 0.737864 +vt 0.848837 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.837209 0.747573 +vt 0.843023 0.737864 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.708738 +vt 0.819767 0.708738 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.825581 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.951456 +vt 0.819767 0.941748 +vt 0.802326 0.941748 +vt 0.837209 0.718447 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.951456 +vt 0.819767 0.980583 +vt 0.819767 0.941748 +vt 0.802326 0.951456 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.848837 0.961165 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.941748 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.970874 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.757282 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.517442 0.291262 +vt 0.546512 0.378641 +vt 0.517442 0.378641 +vt 0.517442 0.427184 +vt 0.441860 0.514563 +vt 0.441860 0.427184 +vt 0.441860 0.242718 +vt 0.517442 0.242718 +vt 0.441860 0.378641 +vt 0.441860 0.291262 +vt 0.552326 0.203883 +vt 0.558140 0.213592 +vt 0.552326 0.213592 +vt 0.627907 0.126214 +vt 0.622093 0.116505 +vt 0.627907 0.116505 +vt 0.610465 0.155340 +vt 0.604651 0.145631 +vt 0.610465 0.145631 +vt 0.604651 0.213592 +vt 0.610465 0.203883 +vt 0.610465 0.213592 +vt 0.639535 0.252427 +vt 0.645349 0.242718 +vt 0.645349 0.252427 +vt 0.575581 0.116505 +vt 0.569767 0.126214 +vt 0.569767 0.116505 +vt 0.627907 0.165049 +vt 0.633721 0.155340 +vt 0.633721 0.165049 +vt 0.593023 0.242718 +vt 0.598837 0.233010 +vt 0.598837 0.242718 +vt 0.569767 0.223301 +vt 0.575581 0.233010 +vt 0.569767 0.233010 +vt 0.627907 0.223301 +vt 0.633721 0.213592 +vt 0.633721 0.223301 +vt 0.639535 0.233010 +vt 0.633721 0.242718 +vt 0.633721 0.233010 +vt 0.575581 0.242718 +vt 0.581395 0.233010 +vt 0.581395 0.242718 +vt 0.627907 0.194175 +vt 0.633721 0.203883 +vt 0.627907 0.203883 +vt 0.610465 0.252427 +vt 0.604651 0.262136 +vt 0.604651 0.252427 +vt 0.622093 0.174757 +vt 0.616279 0.165049 +vt 0.622093 0.165049 +vt 0.569767 0.174757 +vt 0.563953 0.184466 +vt 0.563953 0.174757 +vt 0.610465 0.184466 +vt 0.616279 0.174757 +vt 0.616279 0.184466 +vt 0.569767 0.194175 +vt 0.575581 0.184466 +vt 0.575581 0.194175 +vt 0.645349 0.184466 +vt 0.639535 0.174757 +vt 0.645349 0.174757 +vt 0.645349 0.126214 +vt 0.639535 0.116505 +vt 0.645349 0.116505 +vt 0.569767 0.165049 +vt 0.575581 0.174757 +vt 0.622093 0.242718 +vt 0.627907 0.233010 +vt 0.627907 0.242718 +vt 0.563953 0.126214 +vt 0.563953 0.116505 +vt 0.616279 0.203883 +vt 0.616279 0.213592 +vt 0.581395 0.126214 +vt 0.581395 0.116505 +vt 0.587209 0.262136 +vt 0.581395 0.252427 +vt 0.587209 0.252427 +vt 0.633721 0.126214 +vt 0.633721 0.116505 +vt 0.627907 0.145631 +vt 0.633721 0.145631 +vt 0.627907 0.135922 +vt 0.651163 0.116505 +vt 0.651163 0.126214 +vt 0.616279 0.233010 +vt 0.610465 0.242718 +vt 0.610465 0.233010 +vt 0.569767 0.203883 +vt 0.563953 0.213592 +vt 0.563953 0.203883 +vt 0.639535 0.203883 +vt 0.639535 0.213592 +vt 0.610465 0.271845 +vt 0.604651 0.271845 +vt 0.627907 0.184466 +vt 0.627907 0.174757 +vt 0.558140 0.135922 +vt 0.563953 0.145631 +vt 0.558140 0.145631 +vt 0.604651 0.194175 +vt 0.610465 0.194175 +vt 0.598837 0.252427 +vt 0.593023 0.252427 +vt 0.616279 0.106796 +vt 0.622093 0.106796 +vt 0.587209 0.233010 +vt 0.587209 0.242718 +vt 0.581395 0.165049 +vt 0.587209 0.155340 +vt 0.587209 0.165049 +vt 0.651163 0.233010 +vt 0.651163 0.242718 +vt 0.575581 0.262136 +vt 0.581395 0.271845 +vt 0.575581 0.271845 +vt 0.558140 0.194175 +vt 0.563953 0.194175 +vt 0.639535 0.165049 +vt 0.639535 0.106796 +vt 0.616279 0.135922 +vt 0.622093 0.126214 +vt 0.622093 0.135922 +vt 0.563953 0.155340 +vt 0.569767 0.145631 +vt 0.569767 0.155340 +vt 0.581395 0.223301 +vt 0.587209 0.213592 +vt 0.587209 0.223301 +vt 0.633721 0.271845 +vt 0.627907 0.262136 +vt 0.633721 0.262136 +vt 0.610465 0.126214 +vt 0.616279 0.116505 +vt 0.616279 0.126214 +vt 0.627907 0.252427 +vt 0.616279 0.262136 +vt 0.616279 0.271845 +vt 0.581395 0.135922 +vt 0.587209 0.145631 +vt 0.581395 0.145631 +vt 0.587209 0.126214 +vt 0.593023 0.116505 +vt 0.593023 0.126214 +vt 0.604651 0.135922 +vt 0.598837 0.126214 +vt 0.552326 0.155340 +vt 0.552326 0.145631 +vt 0.604651 0.165049 +vt 0.610465 0.165049 +vt 0.627907 0.281553 +vt 0.633721 0.281553 +vt 0.610465 0.281553 +vt 0.604651 0.281553 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.598837 0.184466 +vt 0.604651 0.174757 +vt 0.604651 0.184466 +vt 0.651163 0.174757 +vt 0.651163 0.184466 +vt 0.598837 0.106796 +vt 0.593023 0.106796 +vt 0.563953 0.223301 +vt 0.558140 0.223301 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.593023 0.165049 +vt 0.598837 0.174757 +vt 0.593023 0.174757 +vt 0.587209 0.271845 +vt 0.569767 0.252427 +vt 0.575581 0.252427 +vt 0.575581 0.106796 +vt 0.569767 0.106796 +vt 0.581395 0.194175 +vt 0.587209 0.203883 +vt 0.581395 0.203883 +vt 0.558140 0.165049 +vt 0.563953 0.165049 +vt 0.616279 0.223301 +vt 0.622093 0.233010 +vt 0.581395 0.213592 +vt 0.558140 0.271845 +vt 0.563953 0.281553 +vt 0.558140 0.281553 +vt 0.645349 0.233010 +vt 0.563953 0.271845 +vt 0.569767 0.262136 +vt 0.569767 0.271845 +vt 0.593023 0.145631 +vt 0.593023 0.155340 +vt 0.558140 0.262136 +vt 0.552326 0.271845 +vt 0.552326 0.262136 +vt 0.622093 0.194175 +vt 0.616279 0.194175 +vt 0.639535 0.262136 +vt 0.639535 0.271845 +vt 0.639535 0.145631 +vt 0.639535 0.155340 +vt 0.639535 0.135922 +vt 0.645349 0.135922 +vt 0.563953 0.242718 +vt 0.563953 0.233010 +vt 0.598837 0.155340 +vt 0.598837 0.145631 +vt 0.604651 0.233010 +vt 0.604651 0.242718 +vt 0.575581 0.155340 +vt 0.575581 0.145631 +vt 0.587209 0.184466 +vt 0.587209 0.174757 +vt 0.622093 0.155340 +vt 0.622093 0.145631 +vt 0.639535 0.223301 +vt 0.593023 0.203883 +vt 0.593023 0.213592 +vt 0.581395 0.174757 +vt 0.581395 0.184466 +vt 0.587209 0.281553 +vt 0.581395 0.281553 +vt 0.622093 0.271845 +vt 0.622093 0.262136 +vt 0.598837 0.135922 +vt 0.593023 0.135922 +vt 0.616279 0.145631 +vt 0.616279 0.155340 +vt 0.622093 0.213592 +vt 0.622093 0.203883 +vt 0.593023 0.194175 +vt 0.598837 0.194175 +vt 0.575581 0.213592 +vt 0.575581 0.203883 +vt 0.610465 0.223301 +vt 0.604651 0.223301 +vt 0.598837 0.271845 +vt 0.598837 0.262136 +vt 0.563953 0.252427 +vt 0.558140 0.252427 +vt 0.639535 0.194175 +vt 0.645349 0.194175 +vt 0.593023 0.262136 +vt 0.593023 0.271845 +vt 0.593023 0.223301 +vt 0.598837 0.223301 +vt 0.616279 0.252427 +vt 0.622093 0.252427 +vt 0.633721 0.184466 +vt 0.633721 0.174757 +vt 0.598837 0.203883 +vt 0.598837 0.213592 +vt 0.843023 0.961165 +vt 0.843023 0.737864 +vt 0.843023 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.970874 +vt 0.843023 0.737864 +vt 0.837209 0.970874 +vt 0.412791 0.378641 +vt 0.412791 0.291262 +vt 0.593023 0.135922 +vt 0.598837 0.126214 +vt 0.598837 0.135922 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.598837 0.106796 +vt 0.593023 0.116505 +vt 0.593023 0.106796 +vt 0.587209 0.116505 +vt 0.593023 0.126214 +vt 0.587209 0.126214 +vt 0.575581 0.106796 +vt 0.569767 0.116505 +vt 0.569767 0.106796 +vt 0.563953 0.116505 +vt 0.569767 0.126214 +vt 0.563953 0.126214 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.581395 0.126214 +vt 0.575581 0.116505 +vt 0.581395 0.116505 +vt 0.837209 0.252427 +vt 0.593023 0.582524 +vt 0.802326 0.262136 +vt 0.796512 0.572816 +vt 0.796512 0.310680 +vt 0.988372 0.582524 +vt 0.872093 0.271845 +vt 0.802326 0.223301 +vt 0.994186 0.504854 +vt 0.796512 0.242718 +vt 0.802326 0.543689 +vt 0.802326 0.223301 +vt 0.796512 0.310680 +vt 0.796512 0.242718 +vt 0.802326 0.349515 +vt 0.796512 0.495146 +vt 0.802326 0.223301 +vt 0.994186 0.553398 +vt 0.465116 0.834951 +vt 0.877907 0.339806 +vt 0.511628 0.699029 +vt 0.802326 0.349515 +vt 0.802326 0.262136 +vt 0.988372 0.533981 +vt 0.308140 0.475728 +vt 0.406977 0.650485 +vt 0.377907 0.757282 +vt 0.337209 0.990291 +vt 0.354651 0.805825 +vt 0.377907 0.233010 +vt 0.360465 0.631068 +vt 0.377907 0.990291 +vt 0.360465 0.106796 +vt 0.354651 0.456311 +vt 0.325581 0.058252 +vt 0.406977 0.126214 +vt 0.308140 0.184466 +vt 0.354651 0.281553 +vt 0.389535 0.349515 +vt 0.337209 0.349515 +vt 0.406977 0.883495 +vt 0.377907 0.524272 +vt 0.360465 0.864078 +vt 0.389535 0.524272 +vt 0.837209 0.252427 +vt 0.354651 0.572816 +vt 0.406977 0.708738 +vt 0.308140 0.708738 +vt 0.308140 0.242718 +vt 0.360465 0.398058 +vt 0.337209 0.058252 +vt 0.308140 0.941748 +vt 0.389535 0.058252 +vt 0.389535 0.990291 +vt 0.308140 0.300971 +vt 0.308140 0.766990 +vt 0.872093 0.271845 +vt 0.558140 0.446602 +vt 0.558140 0.582524 +vt 0.802326 0.223301 +vt 0.569767 0.514563 +vt 0.593023 0.446602 +vt 0.558140 0.446602 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.593023 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.582524 +vt 0.593023 0.582524 +vt 0.877907 0.339806 +vt 0.581395 0.514563 +vt 0.558140 0.446602 +vt 0.558140 0.446602 +vt 0.593023 0.446602 +vt 0.469513 0.889126 +vt 0.478881 0.866040 +vt 0.492825 0.850698 +vt 0.509224 0.845435 +vt 0.539406 0.866694 +vt 0.548594 0.889980 +vt 0.551745 0.917365 +vt 0.539014 0.967766 +vt 0.525070 0.983108 +vt 0.508671 0.988371 +vt 0.478489 0.967112 +vt 0.469302 0.943826 +vt 0.466150 0.916441 +vt 0.673311 0.689481 +vt 0.662275 0.745362 +vt 0.633678 0.779739 +vt 0.598443 0.779481 +vt 0.559285 0.688647 +vt 0.598917 0.598389 +vt 0.662569 0.633441 +vt 0.802326 0.708738 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.802326 0.708738 +vt 0.848837 0.970874 +vt 0.831395 0.728155 +vt 0.848837 0.970874 +vt 0.819767 0.757282 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.837209 0.728155 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.796512 0.747573 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.802326 0.708738 +vt 0.837209 0.747573 +vt 0.843023 0.718447 +vt 0.848837 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.802326 0.941748 +vt 0.819767 0.757282 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.546512 0.291262 +vt 0.517442 0.514563 +vt 0.558140 0.203883 +vt 0.604651 0.155340 +vt 0.604651 0.203883 +vt 0.639535 0.242718 +vt 0.627907 0.155340 +vt 0.593023 0.233010 +vt 0.575581 0.223301 +vt 0.627907 0.213592 +vt 0.633721 0.194175 +vt 0.610465 0.262136 +vt 0.569767 0.184466 +vt 0.610465 0.174757 +vt 0.639535 0.184466 +vt 0.639535 0.126214 +vt 0.575581 0.165049 +vt 0.581395 0.262136 +vt 0.633721 0.135922 +vt 0.616279 0.242718 +vt 0.569767 0.213592 +vt 0.622093 0.184466 +vt 0.563953 0.135922 +vt 0.581395 0.155340 +vt 0.645349 0.165049 +vt 0.645349 0.106796 +vt 0.627907 0.271845 +vt 0.610465 0.116505 +vt 0.633721 0.252427 +vt 0.587209 0.135922 +vt 0.587209 0.116505 +vt 0.610465 0.135922 +vt 0.558140 0.155340 +vt 0.598837 0.165049 +vt 0.569767 0.242718 +vt 0.587209 0.194175 +vt 0.622093 0.223301 +vt 0.563953 0.262136 +vt 0.593023 0.184466 +vt 0.645349 0.223301 +vt 0.412791 0.961165 +vt 0.459302 0.990291 +vt 0.412791 0.990291 +vt 0.412791 0.844660 +vt 0.459302 0.873786 +vt 0.412791 0.873786 +vt 0.412791 0.728155 +vt 0.459302 0.757282 +vt 0.412791 0.757282 +vt 0.412791 0.932039 +vt 0.459302 0.961165 +vt 0.412791 0.582524 +vt 0.459302 0.611650 +vt 0.412791 0.611650 +vt 0.459302 0.786408 +vt 0.412791 0.786408 +vt 0.412791 0.902913 +vt 0.459302 0.932039 +vt 0.459302 0.902913 +vt 0.459302 0.815534 +vt 0.412791 0.815534 +vt 0.151163 0.174757 +vt 0.122093 0.233010 +vt 0.122093 0.174757 +vt 0.412791 0.640777 +vt 0.459302 0.669903 +vt 0.412791 0.669903 +vt 0.459302 0.640777 +vt 0.779070 0.485437 +vt 0.790698 0.553398 +vt 0.779070 0.533981 +vt 0.680233 0.815534 +vt 0.720930 0.834951 +vt 0.691860 0.834951 +vt 0.732558 0.902913 +vt 0.732558 0.815534 +vt 0.680233 0.902913 +vt 0.720930 0.883495 +vt 0.691860 0.660194 +vt 0.680233 0.728155 +vt 0.680233 0.640777 +vt 0.680233 0.728155 +vt 0.720930 0.747573 +vt 0.691860 0.747573 +vt 0.732558 0.815534 +vt 0.732558 0.728155 +vt 0.680233 0.815534 +vt 0.720930 0.796117 +vt 0.779070 0.660194 +vt 0.790698 0.728155 +vt 0.779070 0.708738 +vt 0.720930 0.660194 +vt 0.732558 0.728155 +vt 0.732558 0.640777 +vt 0.720930 0.708738 +vt 0.779070 0.796117 +vt 0.790698 0.728155 +vt 0.790698 0.815534 +vt 0.680233 0.553398 +vt 0.720930 0.572816 +vt 0.691860 0.572816 +vt 0.732558 0.553398 +vt 0.720930 0.621359 +vt 0.680233 0.640777 +vt 0.732349 0.640524 +vt 0.790698 0.466019 +vt 0.779070 0.398058 +vt 0.790698 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.485437 +vt 0.691860 0.485437 +vt 0.732558 0.466019 +vt 0.720930 0.533981 +vt 0.680233 0.553398 +vt 0.732558 0.553398 +vt 0.779070 0.135922 +vt 0.790698 0.203883 +vt 0.779070 0.184466 +vt 0.680233 0.378641 +vt 0.720930 0.398058 +vt 0.691860 0.398058 +vt 0.732558 0.466019 +vt 0.732558 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.446602 +vt 0.779070 0.621359 +vt 0.790698 0.553398 +vt 0.790698 0.640777 +vt 0.680233 0.291262 +vt 0.720376 0.311760 +vt 0.691860 0.310680 +vt 0.732558 0.378641 +vt 0.732558 0.291262 +vt 0.680233 0.378641 +vt 0.720930 0.359223 +vt 0.779070 0.310680 +vt 0.790698 0.378641 +vt 0.779070 0.359223 +vt 0.680233 0.203883 +vt 0.720930 0.223301 +vt 0.691860 0.223301 +vt 0.732558 0.291262 +vt 0.732558 0.203883 +vt 0.680233 0.291262 +vt 0.720930 0.271845 +vt 0.691860 0.796117 +vt 0.680233 0.116505 +vt 0.720930 0.135922 +vt 0.691860 0.135922 +vt 0.732558 0.203883 +vt 0.732558 0.116505 +vt 0.680233 0.203883 +vt 0.720930 0.184466 +vt 0.779070 0.922330 +vt 0.790698 0.990291 +vt 0.779070 0.970874 +vt 0.680233 0.902913 +vt 0.720930 0.922330 +vt 0.691860 0.922330 +vt 0.732558 0.902913 +vt 0.720930 0.970874 +vt 0.680233 0.990291 +vt 0.732558 0.990291 +vt 0.691860 0.621359 +vt 0.063954 0.281553 +vt 0.034884 0.252427 +vt 0.063954 0.242718 +vt 0.790698 0.815534 +vt 0.750000 0.834951 +vt 0.738372 0.815534 +vt 0.738372 0.902913 +vt 0.750000 0.883495 +vt 0.790698 0.902913 +vt 0.691860 0.883495 +vt 0.750000 0.747573 +vt 0.738372 0.728155 +vt 0.738372 0.815534 +vt 0.750000 0.796117 +vt 0.691860 0.271845 +vt 0.790698 0.640777 +vt 0.750000 0.660194 +vt 0.738372 0.640777 +vt 0.738372 0.728155 +vt 0.750000 0.708738 +vt 0.779070 0.223301 +vt 0.790698 0.291262 +vt 0.779070 0.271845 +vt 0.750000 0.572816 +vt 0.738372 0.553398 +vt 0.750000 0.621359 +vt 0.738581 0.640524 +vt 0.779070 0.834951 +vt 0.779070 0.883495 +vt 0.790698 0.466019 +vt 0.750000 0.485437 +vt 0.738372 0.466019 +vt 0.750000 0.533981 +vt 0.738372 0.553398 +vt 0.691860 0.533981 +vt 0.750000 0.398058 +vt 0.738372 0.378641 +vt 0.738372 0.466019 +vt 0.750000 0.446602 +vt 0.790698 0.291262 +vt 0.750554 0.311760 +vt 0.738372 0.291262 +vt 0.750000 0.359223 +vt 0.738372 0.378641 +vt 0.790698 0.203883 +vt 0.750000 0.223301 +vt 0.738372 0.203883 +vt 0.738372 0.291262 +vt 0.750000 0.271845 +vt 0.790698 0.116505 +vt 0.750000 0.135922 +vt 0.738372 0.116505 +vt 0.750000 0.184466 +vt 0.738372 0.203883 +vt 0.790698 0.902913 +vt 0.750000 0.922330 +vt 0.738372 0.902913 +vt 0.738372 0.990291 +vt 0.750000 0.970874 +vt 0.412791 0.524272 +vt 0.459302 0.553398 +vt 0.412791 0.553398 +vt 0.459302 0.844660 +vt 0.412791 0.699029 +vt 0.459302 0.728155 +vt 0.459302 0.699029 +vt 0.459302 0.582524 +vt 0.267442 0.951456 +vt 0.238372 0.980583 +vt 0.238372 0.941748 +vt 0.267442 0.485437 +vt 0.238372 0.514563 +vt 0.238372 0.475728 +vt 0.180233 0.524272 +vt 0.151163 0.582524 +vt 0.151163 0.524272 +vt 0.005814 0.553398 +vt 0.034884 0.543689 +vt 0.034884 0.563107 +vt 0.122093 0.116505 +vt 0.093023 0.169903 +vt 0.093023 0.121359 +vt 0.122093 0.699029 +vt 0.093023 0.752427 +vt 0.093023 0.703884 +vt 0.267442 0.543689 +vt 0.296512 0.553398 +vt 0.267442 0.563107 +vt 0.063954 0.708738 +vt 0.151163 0.466019 +vt 0.238372 0.417476 +vt 0.267442 0.446602 +vt 0.238372 0.456311 +vt 0.063954 0.165049 +vt 0.034884 0.135922 +vt 0.063954 0.126214 +vt 0.151163 0.932039 +vt 0.122093 0.990291 +vt 0.122093 0.932039 +vt 0.005814 0.611650 +vt 0.034884 0.601942 +vt 0.034884 0.621359 +vt 0.122093 0.640777 +vt 0.093023 0.694175 +vt 0.093023 0.645631 +vt 0.209302 0.228155 +vt 0.180233 0.174757 +vt 0.209302 0.179612 +vt 0.267442 0.601942 +vt 0.296512 0.611651 +vt 0.267442 0.621359 +vt 0.238372 0.592233 +vt 0.209302 0.635922 +vt 0.209302 0.587379 +vt 0.122093 0.582524 +vt 0.180233 0.407767 +vt 0.151163 0.349515 +vt 0.180233 0.349515 +vt 0.267442 0.213592 +vt 0.238372 0.184466 +vt 0.267442 0.194175 +vt 0.267442 0.155340 +vt 0.238372 0.126214 +vt 0.267442 0.135922 +vt 0.151163 0.640777 +vt 0.180233 0.699029 +vt 0.151163 0.699029 +vt 0.238372 0.223301 +vt 0.005814 0.669903 +vt 0.034884 0.660194 +vt 0.034884 0.679612 +vt 0.093023 0.228155 +vt 0.093023 0.179612 +vt 0.180233 0.640777 +vt 0.180233 0.582524 +vt 0.267442 0.660194 +vt 0.296512 0.669903 +vt 0.267442 0.679612 +vt 0.063954 0.223301 +vt 0.063954 0.184466 +vt 0.267442 0.718447 +vt 0.296512 0.728155 +vt 0.267442 0.737864 +vt 0.093023 0.762136 +vt 0.063954 0.805825 +vt 0.063954 0.766990 +vt 0.151163 0.116505 +vt 0.267442 0.252427 +vt 0.238372 0.281553 +vt 0.238372 0.242718 +vt 0.034884 0.796116 +vt 0.034884 0.776699 +vt 0.180233 0.233010 +vt 0.151163 0.291262 +vt 0.151163 0.233010 +vt 0.093023 0.529126 +vt 0.063954 0.572816 +vt 0.063954 0.533981 +vt 0.005814 0.728155 +vt 0.034884 0.718447 +vt 0.034884 0.737864 +vt 0.093023 0.286408 +vt 0.093023 0.237864 +vt 0.209302 0.286408 +vt 0.209302 0.237864 +vt 0.122093 0.058252 +vt 0.093023 0.111651 +vt 0.093023 0.063107 +vt 0.093023 0.878641 +vt 0.093023 0.927184 +vt 0.267442 0.776699 +vt 0.296512 0.786408 +vt 0.267442 0.796117 +vt 0.122093 0.291262 +vt 0.238372 0.747573 +vt 0.238372 0.708738 +vt 0.063954 0.980583 +vt 0.034884 0.951456 +vt 0.063954 0.941748 +vt 0.180233 0.757282 +vt 0.151163 0.815534 +vt 0.151163 0.757282 +vt 0.209302 0.752427 +vt 0.209302 0.703884 +vt 0.005814 0.786408 +vt 0.063954 0.883495 +vt 0.005814 0.844660 +vt 0.034884 0.834951 +vt 0.034884 0.854369 +vt 0.122093 0.407767 +vt 0.093023 0.461165 +vt 0.093023 0.412621 +vt 0.209302 0.461165 +vt 0.209302 0.412621 +vt 0.267442 0.834952 +vt 0.296512 0.844660 +vt 0.267442 0.854369 +vt 0.238372 0.864078 +vt 0.209302 0.820388 +vt 0.238372 0.825243 +vt 0.122093 0.466019 +vt 0.180233 0.873786 +vt 0.151163 0.873786 +vt 0.180233 0.932039 +vt 0.093023 0.470874 +vt 0.063954 0.514563 +vt 0.063954 0.475728 +vt 0.005814 0.902913 +vt 0.034884 0.893204 +vt 0.034884 0.912621 +vt 0.122093 0.524272 +vt 0.093023 0.519417 +vt 0.093023 0.820388 +vt 0.063954 0.864078 +vt 0.063954 0.825243 +vt 0.267442 0.893204 +vt 0.296512 0.902913 +vt 0.267442 0.912621 +vt 0.063954 0.689320 +vt 0.063954 0.650485 +vt 0.063954 0.631068 +vt 0.063954 0.592233 +vt 0.238372 0.883495 +vt 0.238372 0.922330 +vt 0.238372 0.067961 +vt 0.267442 0.097087 +vt 0.238372 0.106796 +vt 0.063954 0.067961 +vt 0.034884 0.097087 +vt 0.034884 0.077670 +vt 0.180233 0.990291 +vt 0.209302 0.063107 +vt 0.209302 0.111651 +vt 0.005814 0.961165 +vt 0.034884 0.970874 +vt 0.180233 0.116505 +vt 0.180233 0.058252 +vt 0.209302 0.121359 +vt 0.296512 0.961165 +vt 0.267442 0.970874 +vt 0.063953 0.106796 +vt 0.151163 0.058252 +vt 0.180233 0.815534 +vt 0.238372 0.766990 +vt 0.034884 0.485437 +vt 0.005814 0.087379 +vt 0.209302 0.694175 +vt 0.209302 0.645631 +vt 0.209302 0.985437 +vt 0.209302 0.936893 +vt 0.267442 0.077670 +vt 0.296512 0.087379 +vt 0.122093 0.349515 +vt 0.093023 0.402913 +vt 0.093023 0.354369 +vt 0.296512 0.145631 +vt 0.238372 0.300971 +vt 0.209302 0.344660 +vt 0.209302 0.296116 +vt 0.122093 0.757282 +vt 0.122093 0.815534 +vt 0.063954 0.417476 +vt 0.034884 0.446602 +vt 0.034884 0.427184 +vt 0.238372 0.359223 +vt 0.267442 0.388349 +vt 0.238372 0.398058 +vt 0.063954 0.359223 +vt 0.063954 0.398058 +vt 0.005814 0.145631 +vt 0.034884 0.155340 +vt 0.093023 0.985437 +vt 0.093023 0.936893 +vt 0.209302 0.927184 +vt 0.093023 0.587379 +vt 0.093023 0.635922 +vt 0.296512 0.203884 +vt 0.238372 0.689320 +vt 0.122093 0.873786 +vt 0.005814 0.203883 +vt 0.034884 0.194175 +vt 0.034884 0.213592 +vt 0.209302 0.762136 +vt 0.238372 0.805825 +vt 0.209302 0.810680 +vt 0.005814 0.262136 +vt 0.034884 0.271845 +vt 0.093023 0.577670 +vt 0.209302 0.529126 +vt 0.296512 0.262136 +vt 0.267442 0.271845 +vt 0.238372 0.572816 +vt 0.238372 0.533981 +vt 0.063954 0.747573 +vt 0.267442 0.330097 +vt 0.267442 0.310680 +vt 0.063954 0.300971 +vt 0.093023 0.344660 +vt 0.063954 0.339806 +vt 0.005814 0.320388 +vt 0.034884 0.310680 +vt 0.034884 0.330097 +vt 0.093023 0.810680 +vt 0.296512 0.320388 +vt 0.209302 0.878641 +vt 0.238372 0.631068 +vt 0.034884 0.368932 +vt 0.063954 0.456311 +vt 0.005814 0.378641 +vt 0.034884 0.388349 +vt 0.209302 0.354369 +vt 0.209302 0.470874 +vt 0.180233 0.466019 +vt 0.267442 0.368932 +vt 0.296512 0.378641 +vt 0.209302 0.402913 +vt 0.267442 0.427184 +vt 0.296512 0.436893 +vt 0.151163 0.407767 +vt 0.238372 0.650485 +vt 0.005814 0.436893 +vt 0.180233 0.291262 +vt 0.296512 0.495146 +vt 0.267442 0.504854 +vt 0.209302 0.169903 +vt 0.005814 0.495146 +vt 0.034884 0.504854 +vt 0.093023 0.296116 +vt 0.691860 0.708738 +vt 0.691860 0.446602 +vt 0.691860 0.359223 +vt 0.691860 0.184466 +vt 0.691860 0.970874 +vt 0.779070 0.747573 +vt 0.779070 0.572816 +vt 0.779070 0.446602 +vt 0.459302 0.524272 +vt 0.151163 0.990291 +vt 0.238372 0.165049 +vt 0.063954 0.922330 +vt 0.209302 0.868932 +vt 0.093023 0.868932 +vt 0.238372 0.339806 +vt 0.209302 0.577670 +vt 0.209302 0.519417 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9848 -0.1736 -0.0000 +vn -0.9848 0.1736 0.0000 +vn 0.1736 -0.9848 -0.0000 +vn 0.9848 -0.1736 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.1736 -0.9848 0.0000 +vn 0.9848 0.1736 0.0000 +vn 0.1736 0.9848 0.0000 +vn -0.1736 0.9848 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.2575 -0.1067 -0.9604 +vn 0.9239 -0.3827 0.0000 +vn -0.1066 -0.2575 0.9604 +vn 0.6725 0.2185 -0.7071 +vn 0.3675 0.8873 -0.2787 +vn -0.3827 0.9239 0.0000 +vn 0.1067 -0.2575 0.9604 +vn 0.1066 -0.2575 0.9604 +vn -0.9239 0.3827 0.0000 +vn -0.1067 -0.2575 0.9604 +vn 0.2575 -0.1066 -0.9604 +vn -0.9239 -0.3827 -0.0000 +vn -0.3675 0.8873 -0.2787 +vn 0.6725 0.2185 0.7071 +vn -0.1067 0.2575 -0.9604 +vn -0.1066 0.2575 0.9604 +vn 0.3675 0.8873 0.2787 +vn -0.1067 0.2575 0.9604 +vn -0.8090 0.5878 -0.0000 +vn -0.2575 -0.1067 -0.9604 +vn -0.1067 -0.2575 -0.9604 +vn 0.1066 0.2575 0.9604 +vn -0.3675 0.8873 0.2787 +vn 0.1067 0.2575 0.9604 +vn 0.1066 -0.2575 -0.9604 +vn -0.1066 -0.2575 -0.9604 +vn 0.3675 -0.8873 -0.2787 +vn 0.2575 0.1066 -0.9604 +vn -0.3675 -0.8873 -0.2787 +vn -0.4156 -0.5721 0.7071 +vn 0.1067 -0.2575 -0.9604 +vn 0.3827 -0.9239 -0.0000 +vn 0.3675 -0.8873 0.2787 +vn 0.1067 0.2575 -0.9604 +vn -0.8090 -0.5878 0.0000 +vn 0.1066 0.2575 -0.9604 +vn -0.3675 -0.8873 0.2787 +vn -0.1066 0.2575 -0.9604 +vn -0.4156 -0.5721 -0.7071 +vn 0.4156 0.5721 0.7071 +vn -0.3090 -0.9511 -0.0000 +vn 0.8090 -0.5878 0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.6725 -0.2185 0.7071 +vn -0.3090 0.9511 -0.0000 +vn -0.6725 0.2185 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.3090 -0.9511 0.0000 +vn -0.2575 -0.1066 -0.9604 +vn -0.6725 0.2185 0.7071 +vn -0.6725 -0.2185 0.7071 +vn 0.4156 -0.5721 -0.7071 +vn -0.4156 0.5721 0.7071 +vn 0.8090 0.5878 0.0000 +vn 0.4156 0.5721 -0.7071 +vn 0.6725 -0.2185 -0.7071 +vn -0.3827 -0.9239 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.6725 -0.2185 -0.7071 +vn -0.4156 0.5721 -0.7071 +vn 0.4156 -0.5721 0.7071 +vn -0.4156 0.5720 -0.7071 +vn 0.3827 0.9239 0.0000 +vn 0.8873 -0.3675 -0.2787 +vn -0.2575 0.1067 0.9604 +vn 0.2575 0.1067 -0.9604 +vn -0.2575 -0.1067 0.9604 +vn 0.8873 0.3675 -0.2787 +vn -0.2575 -0.1066 0.9604 +vn 0.2575 0.1067 0.9604 +vn 0.2575 -0.1067 0.9604 +vn -0.2575 0.1066 -0.9604 +vn 0.8873 -0.3675 0.2787 +vn -0.2575 0.1067 -0.9604 +vn 0.2575 -0.1066 0.9604 +vn 0.8873 0.3675 0.2787 +vn 0.2575 0.1066 0.9604 +vn -0.8873 -0.3675 -0.2787 +vn -0.8873 0.3675 -0.2787 +vn -0.8873 -0.3675 0.2787 +vn -0.2575 0.1066 0.9604 +vn -0.8873 0.3675 0.2787 +vn -0.4156 0.5720 0.7071 +vn -0.9848 0.1737 0.0000 +vn -0.6688 -0.6688 0.3245 +vn -0.6325 -0.6325 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.6688 -0.6688 0.3245 +vn -0.6688 -0.6688 -0.3245 +vn 0.6325 -0.6325 -0.4472 +vn 0.6688 -0.6688 -0.3245 +vn -0.8803 -0.3646 -0.3034 +vn -0.6738 -0.6738 -0.3034 +vn -0.6325 -0.6325 -0.4472 +vn 0.0000 -0.8348 0.5506 +vn -0.2539 -0.7815 0.5698 +vn 0.2539 0.7815 -0.5698 +vn 0.4907 0.6754 -0.5506 +vn 0.6648 0.4830 -0.5698 +vn 0.7939 -0.2580 -0.5506 +vn 0.6648 -0.4830 -0.5698 +vn 0.8218 -0.0000 -0.5698 +vn 0.7939 0.2580 -0.5506 +vn 0.7939 -0.2580 0.5506 +vn 0.6648 -0.4830 0.5698 +vn 0.7939 0.2580 0.5506 +vn 0.6648 0.4830 0.5698 +vn 0.8218 0.0000 0.5698 +vn 0.4907 -0.6754 -0.5506 +vn 0.2539 -0.7815 -0.5698 +vn -0.6648 -0.4830 0.5698 +vn -0.4907 -0.6754 0.5506 +vn -0.0000 -0.8348 -0.5506 +vn -0.2539 -0.7815 -0.5698 +vn -0.4907 0.6754 0.5506 +vn -0.2539 0.7815 0.5698 +vn -0.4907 -0.6754 -0.5506 +vn -0.6648 -0.4830 -0.5698 +vn 0.4907 -0.6754 0.5506 +vn 0.2539 -0.7815 0.5698 +vn -0.7939 -0.2580 -0.5506 +vn -0.8218 -0.0000 -0.5698 +vn -0.7939 -0.2580 0.5506 +vn -0.8218 0.0000 0.5698 +vn -0.7939 0.2580 -0.5506 +vn -0.6648 0.4830 -0.5698 +vn -0.4907 0.6754 -0.5506 +vn -0.2539 0.7815 -0.5698 +vn 0.0000 0.8348 0.5506 +vn 0.2539 0.7815 0.5698 +vn 0.0000 0.8348 -0.5506 +vn -0.6003 0.0000 -0.7998 +vn -0.3016 -0.1249 -0.9452 +vn -0.5546 -0.2297 -0.7998 +vn 0.4907 0.6754 0.5506 +vn -0.7939 0.2580 0.5506 +vn -0.6648 0.4830 0.5698 +vn 0.6325 0.6325 0.4472 +vn 0.6688 0.6688 0.3245 +vn -0.6325 0.6325 -0.4472 +vn -0.6688 0.6688 -0.3245 +vn -0.6325 0.6325 0.4472 +vn -0.6688 0.6688 0.3245 +vn 0.6688 0.6688 -0.3245 +vn 0.6325 0.6325 -0.4472 +vn 0.1249 -0.3016 0.9452 +vn -0.0000 -0.6003 0.7998 +vn 0.2297 -0.5546 0.7998 +vn -0.1249 0.3016 0.9452 +vn -0.0000 0.6003 0.7998 +vn -0.2297 0.5546 0.7998 +vn -0.0000 0.9528 0.3034 +vn 0.0000 0.3265 -0.9452 +vn 0.1249 0.3016 -0.9452 +vn -0.3646 -0.8803 -0.3034 +vn -0.5767 -0.5767 -0.5787 +vn -0.3121 -0.7535 -0.5787 +vn 0.8803 0.3646 -0.3034 +vn 0.8155 -0.0000 -0.5787 +vn 0.7535 0.3121 -0.5787 +vn -0.0000 0.3265 0.9452 +vn 0.1249 0.3016 0.9452 +vn 0.5546 0.2297 -0.7998 +vn -0.4245 0.4245 0.7998 +vn -0.4245 -0.4245 -0.7998 +vn -0.1249 -0.3016 -0.9452 +vn -0.2297 -0.5546 -0.7998 +vn 0.0000 -0.9528 -0.3034 +vn 0.3646 -0.8803 -0.3034 +vn 0.2309 0.2309 -0.9452 +vn 0.6738 0.6738 -0.3034 +vn 0.5767 0.5767 -0.5787 +vn -0.7535 -0.3121 0.5787 +vn -0.6738 -0.6738 0.3034 +vn -0.5767 -0.5767 0.5787 +vn 0.2309 0.2309 0.9452 +vn 0.2297 0.5546 0.7998 +vn 0.5767 0.5767 0.5787 +vn 0.3121 0.7535 0.5787 +vn 0.3646 0.8803 -0.3034 +vn -0.6738 0.6738 0.3034 +vn -0.8803 0.3646 0.3034 +vn -0.3016 -0.1249 0.9452 +vn -0.4245 -0.4245 0.7998 +vn -0.2309 -0.2309 0.9452 +vn -0.2297 -0.5546 0.7998 +vn -0.1249 -0.3016 0.9452 +vn 0.8803 0.3646 0.3034 +vn -0.5546 -0.2297 0.7998 +vn 0.3016 0.1249 -0.9452 +vn -0.7535 -0.3121 -0.5787 +vn 0.6738 0.6738 0.3034 +vn 0.3646 0.8803 0.3034 +vn 0.3016 0.1249 0.9452 +vn 0.3265 -0.0000 0.9452 +vn 0.5546 -0.2297 -0.7998 +vn 0.6003 -0.0000 -0.7998 +vn -0.6003 0.0000 0.7998 +vn 0.3016 -0.1249 -0.9452 +vn 0.3265 -0.0000 -0.9452 +vn -0.8803 -0.3646 0.3034 +vn -0.0000 0.8155 -0.5787 +vn 0.2297 0.5546 -0.7998 +vn -0.0000 0.6003 -0.7998 +vn -0.8155 0.0000 -0.5787 +vn -0.8155 0.0000 0.5787 +vn -0.0000 -0.8155 -0.5787 +vn 0.5767 -0.5767 -0.5787 +vn 0.3121 -0.7535 -0.5787 +vn 0.3016 -0.1249 0.9452 +vn -0.9528 -0.0000 -0.3034 +vn 0.6003 -0.0000 0.7998 +vn 0.5546 0.2297 0.7998 +vn -0.0000 -0.6003 -0.7998 +vn 0.1249 -0.3016 -0.9452 +vn 0.2297 -0.5546 -0.7998 +vn 0.9528 -0.0000 0.3034 +vn 0.8155 -0.0000 0.5787 +vn 0.7535 0.3121 0.5787 +vn 0.4245 -0.4245 -0.7998 +vn 0.2309 -0.2309 -0.9452 +vn -0.6738 0.6738 -0.3034 +vn -0.3121 0.7535 -0.5787 +vn -0.5767 0.5767 -0.5787 +vn -0.3121 0.7535 0.5787 +vn -0.5767 0.5767 0.5787 +vn 0.2309 -0.2309 0.9452 +vn 0.4245 -0.4245 0.7998 +vn 0.7535 -0.3121 0.5787 +vn 0.5546 -0.2297 0.7998 +vn -0.3646 0.8803 -0.3034 +vn 0.6738 -0.6738 0.3034 +vn 0.3646 -0.8803 0.3034 +vn -0.2297 0.5546 -0.7998 +vn -0.0000 0.9528 -0.3034 +vn 0.7535 -0.3121 -0.5787 +vn 0.4245 0.4245 -0.7998 +vn 0.0000 -0.3265 -0.9452 +vn 0.0000 -0.9528 0.3034 +vn -0.0000 -0.8155 0.5787 +vn -0.3121 -0.7535 0.5787 +vn -0.3646 -0.8803 0.3034 +vn 0.0000 -0.3265 0.9452 +vn 0.8803 -0.3646 0.3034 +vn -0.1249 0.3016 -0.9452 +vn 0.3121 -0.7535 0.5787 +vn -0.8803 0.3646 -0.3034 +vn -0.7535 0.3121 -0.5787 +vn -0.7535 0.3121 0.5787 +vn 0.9528 0.0000 -0.3034 +vn 0.8803 -0.3646 -0.3034 +vn -0.4245 0.4245 -0.7998 +vn -0.2309 0.2309 -0.9452 +vn -0.5546 0.2297 0.7998 +vn -0.2309 0.2309 0.9452 +vn -0.5546 0.2297 -0.7998 +vn -0.2309 -0.2309 -0.9452 +vn 0.3121 0.7535 -0.5787 +vn 0.6738 -0.6738 -0.3034 +vn -0.3265 -0.0000 -0.9452 +vn -0.0000 0.8155 0.5787 +vn -0.3265 -0.0000 0.9452 +vn -0.3016 0.1249 0.9452 +vn -0.3016 0.1249 -0.9452 +vn 0.5767 -0.5767 0.5787 +vn 0.4245 0.4245 0.7998 +vn -0.3646 0.8803 0.3034 +vn -0.9528 0.0000 0.3034 +s off +f 949/1141/825 946/1142/825 947/1143/825 +f 967/1144/826 962/1145/826 960/1146/826 +f 1030/1147/827 1025/1148/827 1028/1149/827 +f 961/1150/828 964/1151/828 966/1152/828 +f 1031/1153/829 1028/1149/829 1029/1154/829 +f 920/1155/830 925/1156/830 923/1157/830 +f 1516/1158/831 944/1159/831 941/1160/831 +f 1027/1161/832 1026/1162/832 1024/1163/832 +f 1331/1164/825 1332/1165/825 1329/1166/825 +f 1012/1167/827 1010/1168/827 1008/1169/827 +f 923/1170/826 919/1171/826 922/1172/826 +f 929/1173/825 926/1174/825 932/1175/825 +f 1013/1176/832 1008/1169/832 1010/1177/832 +f 924/1178/833 913/1179/833 915/1180/833 +f 918/1181/831 914/1182/831 916/1183/831 +f 999/1184/829 995/1185/829 997/1186/829 +f 991/1187/834 987/1188/834 989/1189/834 +f 1004/1190/835 1002/1191/835 1000/1192/835 +f 947/1143/831 946/1193/831 944/1159/831 +f 1516/1158/828 949/1141/828 947/1143/828 +f 948/1194/830 940/1195/830 934/1196/830 +f 971/1197/835 970/1198/835 968/1199/835 +f 943/1200/833 934/1201/833 941/1202/833 +f 1022/1203/836 1017/1204/836 1020/1205/836 +f 1007/1206/837 1003/1207/837 1005/1208/837 +f 1003/1207/830 1004/1190/830 1000/1192/830 +f 941/1209/831 945/1210/831 943/1200/831 +f 985/1211/830 989/1212/830 986/1213/830 +f 958/1214/833 954/1215/833 952/1216/833 +f 983/1217/830 978/1218/830 982/1219/830 +f 919/1171/838 914/1182/838 917/1220/838 +f 1029/1154/830 1025/1148/830 1027/1161/830 +f 951/1221/826 944/1222/826 946/1142/826 +f 1024/1223/825 1029/1154/825 1027/1161/825 +f 922/1172/826 917/1220/826 918/1224/826 +f 1016/1225/831 1022/1226/831 1023/1227/831 +f 989/1228/836 984/1229/836 986/1230/836 +f 934/1231/828 939/1232/828 942/1233/828 +f 994/1234/830 999/1184/830 997/1186/830 +f 1014/1235/830 1008/1169/830 1011/1236/830 +f 974/1237/839 969/1238/839 972/1239/839 +f 976/1240/829 981/1241/829 979/1242/829 +f 1019/1243/830 1020/1205/830 1017/1204/830 +f 968/1199/830 974/1244/830 975/1245/830 +f 1005/1246/839 1000/1192/839 1002/1247/839 +f 981/1241/831 977/1248/831 979/1242/831 +f 931/1249/833 913/1250/833 920/1251/833 +f 998/1252/831 992/1253/831 995/1185/831 +f 987/1188/831 988/1254/831 984/1229/831 +f 971/1197/831 972/1239/831 969/1238/831 +f 1023/1255/834 1020/1205/834 1021/1256/834 +f 937/1257/833 935/1258/833 933/1259/833 +f 950/1260/833 934/1261/833 940/1262/833 +f 1031/1153/831 1026/1263/831 1030/1264/831 +f 997/1265/827 992/1253/827 994/1266/827 +f 1019/1243/840 1018/1267/840 1016/1225/840 +f 944/1268/826 938/1269/826 945/1210/826 +f 1001/1270/841 1006/1271/841 1007/1272/841 +f 988/1254/840 986/1213/840 984/1229/840 +f 942/1273/826 936/1274/826 938/1269/826 +f 945/1210/838 935/1258/838 943/1200/838 +f 963/1275/838 960/1146/838 962/1145/838 +f 952/1216/828 955/1276/828 958/1214/828 +f 1016/1277/842 1021/1256/842 1019/1243/842 +f 993/1278/825 998/1252/825 999/1279/825 +f 1516/1158/829 940/1262/829 948/1194/829 +f 939/1232/830 933/1259/830 936/1274/830 +f 959/1280/826 957/1281/826 955/1276/826 +f 932/1175/826 923/1282/826 922/1283/826 +f 975/1284/837 972/1239/837 973/1285/837 +f 938/1269/838 933/1259/838 935/1258/838 +f 966/1152/833 965/1286/833 963/1287/833 +f 925/1156/838 915/1180/838 919/1171/838 +f 985/1288/842 990/1289/842 991/1290/842 +f 996/1291/832 994/1292/832 992/1253/832 +f 913/1293/828 918/1181/828 916/1183/828 +f 1009/1294/829 1014/1235/829 1015/1295/829 +f 1241/1296/831 1277/1297/831 1275/1298/831 +f 1238/1299/830 1270/1300/830 1271/1301/830 +f 1267/1302/830 1270/1303/830 1240/1304/830 +f 1244/1305/830 1271/1306/830 1274/1307/830 +f 1320/1308/825 1329/1166/825 1332/1165/825 +f 1209/1309/831 1178/1310/831 1180/1311/831 +f 1215/1312/830 1181/1313/830 1210/1314/830 +f 1284/1315/830 1249/1316/830 1282/1317/830 +f 1251/1318/831 1287/1319/831 1285/1320/831 +f 1250/1321/831 1279/1322/831 1248/1323/831 +f 1230/1324/830 1194/1325/830 1225/1326/830 +f 1249/1316/830 1280/1327/830 1282/1328/830 +f 1252/1329/831 1285/1330/831 1283/1331/831 +f 1206/1332/830 1179/1333/830 1177/1334/830 +f 1223/1335/830 1187/1336/830 1219/1337/830 +f 1223/1338/830 1192/1339/830 1190/1340/830 +f 1269/1341/831 1299/1342/831 1268/1343/831 +f 1255/1344/830 1286/1345/830 1288/1346/830 +f 1290/1347/830 1255/1344/830 1288/1348/830 +f 1224/1349/831 1191/1350/831 1193/1351/831 +f 1265/1352/830 1296/1353/830 1298/1354/830 +f 1257/1355/830 1292/1356/830 1259/1357/830 +f 1233/1358/830 1198/1359/830 1229/1360/830 +f 1195/1361/831 1228/1362/831 1227/1363/831 +f 1264/1364/831 1293/1365/831 1262/1366/831 +f 1197/1367/831 1231/1368/831 1228/1369/831 +f 1297/1370/831 1268/1343/831 1299/1371/831 +f 1218/1372/831 1186/1373/831 1188/1374/831 +f 1177/1334/830 1207/1375/830 1206/1376/830 +f 1267/1302/830 1298/1377/830 1300/1378/830 +f 1214/1379/830 1217/1380/830 1185/1381/830 +f 1203/1382/831 1237/1383/831 1234/1384/831 +f 1015/1385/825 1011/1236/825 1013/1386/825 +f 982/1387/832 977/1248/832 980/1388/832 +f 983/1217/825 980/1388/825 981/1241/825 +f 979/1242/827 978/1389/827 976/1390/827 +f 930/1391/829 921/1392/829 931/1249/829 +f 956/1393/838 953/1394/838 957/1395/838 +f 930/1391/828 929/1173/828 927/1396/828 +f 1242/1397/831 1273/1398/831 1239/1399/831 +f 1237/1400/831 1175/1401/831 1205/1402/831 +f 1272/1403/831 1241/1296/831 1275/1404/831 +f 1205/1405/831 1178/1310/831 1208/1406/831 +f 1210/1407/830 1179/1333/830 1211/1408/830 +f 1276/1409/830 1244/1305/830 1274/1410/830 +f 1212/1411/831 1180/1311/831 1182/1412/831 +f 1243/1413/830 1278/1414/830 1245/1415/830 +f 1185/1381/830 1215/1416/830 1214/1417/830 +f 1259/1357/830 1294/1418/830 1261/1419/830 +f 1213/1420/831 1186/1373/831 1216/1421/831 +f 1233/1422/830 1202/1423/830 1200/1424/830 +f 1258/1425/831 1291/1426/831 1289/1427/831 +f 1260/1428/831 1293/1429/831 1291/1430/831 +f 1287/1431/831 1258/1425/831 1289/1432/831 +f 1254/1433/830 1286/1434/830 1253/1435/830 +f 1221/1436/831 1191/1350/831 1222/1437/831 +f 1188/1374/831 1221/1438/831 1218/1439/831 +f 1219/1440/830 1217/1380/830 1220/1441/830 +f 1225/1442/830 1192/1339/830 1226/1443/830 +f 1281/1444/831 1252/1329/831 1283/1445/831 +f 1193/1351/831 1227/1446/831 1224/1447/831 +f 1198/1359/830 1230/1448/830 1229/1449/830 +f 1261/1419/830 1296/1450/830 1263/1451/830 +f 1264/1364/831 1297/1452/831 1295/1453/831 +f 1212/1454/831 1184/1455/831 1213/1456/831 +f 1231/1457/831 1201/1458/831 1232/1459/831 +f 1245/1415/830 1280/1460/830 1247/1461/830 +f 1232/1462/831 1203/1382/831 1234/1463/831 +f 1204/1464/830 1236/1465/830 1235/1466/830 +f 1269/1341/831 1273/1467/831 1301/1468/831 +f 1207/1469/830 1204/1464/830 1235/1470/830 +f 1320/1308/825 1321/1471/825 1322/1472/825 +f 1001/1473/831 1005/1474/831 1002/1191/831 +f 1367/1475/829 1369/1476/829 1355/1477/829 +f 1346/1478/825 1347/1479/825 1342/1480/825 +f 1010/1481/831 1015/1385/831 1013/1386/831 +f 1325/1482/827 1324/1483/827 1333/1484/827 +f 1357/1485/829 1358/1486/829 1359/1487/829 +f 1334/1488/825 1335/1489/825 1321/1471/825 +f 1323/1490/827 1333/1484/827 1324/1483/827 +f 1310/1491/829 1302/1492/829 1315/1493/829 +f 1307/1494/832 1308/1495/832 1309/1496/832 +f 1359/1487/829 1361/1497/829 1364/1498/829 +f 1304/1499/829 1306/1500/829 1319/1501/829 +f 1325/1482/827 1326/1502/827 1327/1503/827 +f 1302/1492/829 1303/1504/829 1304/1499/829 +f 1315/1493/829 1316/1505/829 1310/1491/829 +f 1330/1506/827 1328/1507/827 1326/1502/827 +f 1317/1508/832 1307/1494/832 1318/1509/832 +f 1341/1510/825 1340/1511/825 1349/1512/825 +f 1344/1513/827 1348/1514/827 1345/1515/827 +f 1354/1516/832 1356/1517/832 1368/1518/832 +f 1336/1519/827 1337/1520/827 1338/1521/827 +f 1341/1510/825 1342/1480/825 1343/1522/825 +f 1309/1496/832 1311/1523/832 1314/1524/832 +f 1365/1525/832 1360/1526/832 1366/1527/832 +f 1336/1519/827 1345/1515/827 1348/1514/827 +f 968/1528/841 973/1285/841 971/1197/841 +f 1366/1527/832 1352/1529/832 1365/1525/832 +f 1351/1530/825 1349/1512/825 1340/1511/825 +f 923/1531/830 930/1391/830 920/1532/830 +f 1352/1529/832 1353/1533/832 1354/1516/832 +f 1355/1477/829 1357/1485/829 1367/1475/829 +f 1318/1509/832 1305/1534/832 1317/1508/832 +f 1350/1535/827 1339/1536/827 1337/1520/827 +f 1164/1537/830 1125/1538/830 1126/1539/830 +f 1246/1540/831 1279/1541/831 1277/1542/831 +f 931/1543/830 920/1532/830 930/1391/830 +f 923/1531/830 926/1544/830 928/1545/830 +f 932/1546/831 922/1547/831 929/1173/831 +f 913/1548/831 921/1549/831 927/1396/831 +f 949/1141/830 934/1196/830 942/1550/830 +f 941/1160/831 950/1551/831 1516/1158/831 +f 913/1548/831 929/1173/831 922/1547/831 +f 942/1550/830 951/1552/830 949/1141/830 +f 1045/1553/830 1039/1554/830 1063/1555/830 +f 1072/1556/831 1064/1557/831 1065/1558/831 +f 1126/1539/830 1127/1559/830 1169/1560/830 +f 1169/1560/830 1164/1537/830 1126/1539/830 +f 1124/1561/830 1155/1562/830 1150/1563/830 +f 1150/1563/830 1145/1564/830 1125/1538/830 +f 1125/1538/830 1136/1565/830 1126/1539/830 +f 1124/1561/830 1150/1563/830 1125/1538/830 +f 916/1566/833 915/1180/833 913/1179/833 +f 1587/1567/843 1588/1568/843 1589/1569/843 +f 1872/1570/844 1867/1571/844 1870/1572/844 +f 1578/1573/845 1574/1574/845 1576/1575/845 +f 1631/1576/846 1621/1577/846 1625/1578/846 +f 1802/1579/847 1796/1580/847 1801/1581/847 +f 1549/1582/848 1542/1583/848 1539/1584/848 +f 1550/1585/848 1544/1586/848 1542/1583/848 +f 1546/1587/848 1551/1588/848 1544/1586/848 +f 1548/1589/848 1539/1584/848 1551/1588/848 +f 1888/1590/849 1884/1591/849 1882/1592/849 +f 1617/1593/850 1613/1594/850 1615/1595/850 +f 1598/1596/851 1600/1597/851 1594/1598/851 +f 1575/1599/852 1573/1600/852 1571/1601/852 +f 1574/1602/853 1572/1603/853 1575/1604/853 +f 1850/1605/849 1846/1606/849 1848/1607/849 +f 1861/1608/854 1864/1609/854 1866/1610/854 +f 1594/1611/855 1595/1612/855 1596/1613/855 +f 1557/1614/856 1566/1615/856 1567/1616/856 +f 1556/1617/856 1564/1618/856 1566/1615/856 +f 1564/1618/856 1562/1619/856 1565/1620/856 +f 1565/1620/856 1557/1614/856 1567/1616/856 +f 1729/1621/857 1724/1622/857 1722/1623/857 +f 1549/1624/852 1554/1625/852 1550/1626/852 +f 1596/1627/858 1601/1628/858 1597/1629/858 +f 1584/1630/846 1582/1631/846 1580/1632/846 +f 1539/1584/852 1540/1633/852 1541/1634/852 +f 1590/1635/850 1591/1636/850 1588/1637/850 +f 1562/1619/855 1558/1638/855 1560/1639/855 +f 1555/1640/859 1562/1619/859 1560/1641/859 +f 1563/1642/855 1564/1643/855 1565/1644/855 +f 1573/1600/860 1582/1645/860 1583/1646/860 +f 1572/1603/860 1580/1647/860 1582/1645/860 +f 1580/1647/860 1578/1573/860 1581/1648/860 +f 1581/1648/860 1573/1600/860 1583/1646/860 +f 1597/1649/843 1602/1650/843 1598/1651/843 +f 1569/1652/861 1565/1653/861 1567/1654/861 +f 1670/1655/862 1669/1656/862 1667/1657/862 +f 1846/1658/863 1847/1659/863 1843/1660/863 +f 1542/1583/864 1543/1661/864 1540/1662/864 +f 1551/1588/845 1543/1663/845 1544/1586/845 +f 1551/1588/865 1541/1664/865 1545/1665/865 +f 1546/1666/845 1547/1667/845 1548/1668/845 +f 1597/1669/866 1590/1635/866 1587/1567/866 +f 1598/1670/866 1592/1671/866 1590/1635/866 +f 1594/1672/866 1599/1673/866 1592/1671/866 +f 1596/1674/866 1587/1567/866 1599/1673/866 +f 1570/1675/843 1567/1676/843 1566/1677/843 +f 1548/1678/867 1553/1679/867 1549/1680/867 +f 1568/1681/868 1566/1682/868 1564/1683/868 +f 1655/1684/845 1653/1685/845 1651/1686/845 +f 1654/1687/867 1652/1688/867 1655/1689/867 +f 1658/1690/852 1654/1691/852 1656/1692/852 +f 1651/1693/869 1658/1690/869 1656/1694/869 +f 1659/1695/852 1660/1696/852 1661/1697/852 +f 1605/1698/870 1614/1699/870 1615/1700/870 +f 1604/1701/870 1612/1702/870 1614/1699/870 +f 1612/1702/870 1610/1703/870 1613/1704/870 +f 1613/1704/870 1605/1698/870 1615/1700/870 +f 1666/1705/845 1663/1706/845 1662/1707/845 +f 1665/1708/864 1661/1709/864 1663/1710/864 +f 1903/1711/871 1899/1712/871 1904/1713/871 +f 1635/1714/855 1636/1715/855 1637/1716/855 +f 1638/1717/861 1639/1718/861 1636/1719/861 +f 1647/1720/843 1639/1721/843 1640/1722/843 +f 1647/1720/868 1637/1723/868 1641/1724/868 +f 1642/1725/843 1643/1726/843 1644/1727/843 +f 1629/1728/872 1622/1729/872 1619/1730/872 +f 1630/1731/872 1624/1732/872 1622/1729/872 +f 1626/1733/872 1631/1576/872 1624/1732/872 +f 1628/1734/872 1619/1730/872 1631/1576/872 +f 1667/1657/873 1673/1735/873 1674/1736/873 +f 1644/1737/874 1649/1738/874 1645/1739/874 +f 1666/1705/865 1660/1740/865 1664/1741/865 +f 1843/1742/875 1844/1743/875 1845/1744/875 +f 1558/1745/874 1556/1617/874 1559/1746/874 +f 1610/1703/843 1606/1747/843 1608/1748/843 +f 1603/1749/851 1610/1703/851 1608/1750/851 +f 1579/1751/845 1580/1752/845 1581/1753/845 +f 1645/1754/876 1638/1717/876 1635/1714/876 +f 1646/1755/876 1640/1722/876 1638/1717/876 +f 1642/1756/876 1647/1720/876 1640/1722/876 +f 1644/1757/876 1635/1714/876 1647/1720/876 +f 1629/1758/845 1634/1759/845 1630/1760/845 +f 1559/1761/843 1557/1614/843 1555/1762/843 +f 1634/1759/877 1626/1763/877 1630/1764/877 +f 1619/1730/845 1620/1765/845 1621/1766/845 +f 1622/1729/877 1623/1767/877 1620/1768/877 +f 1741/1769/878 1739/1770/878 1744/1771/878 +f 1571/1772/879 1578/1573/879 1576/1773/879 +f 1626/1774/852 1627/1775/852 1628/1776/852 +f 1653/1685/880 1662/1777/880 1663/1778/880 +f 1652/1688/880 1660/1779/880 1662/1777/880 +f 1660/1779/880 1658/1690/880 1661/1780/880 +f 1661/1780/880 1653/1685/880 1663/1778/880 +f 1815/1781/878 1813/1782/878 1811/1783/878 +f 1645/1784/855 1650/1785/855 1646/1786/855 +f 1628/1787/853 1633/1788/853 1629/1789/853 +f 1618/1790/881 1612/1791/881 1616/1792/881 +f 1751/1793/862 1749/1794/862 1747/1795/862 +f 1748/1796/882 1752/1797/882 1749/1798/882 +f 1755/1799/882 1756/1800/882 1757/1801/882 +f 1678/1802/883 1667/1657/883 1677/1803/883 +f 1679/1804/883 1670/1655/883 1678/1802/883 +f 1675/1805/883 1672/1806/883 1679/1804/883 +f 1677/1803/883 1674/1736/883 1675/1805/883 +f 1770/1807/884 1769/1808/884 1768/1809/884 +f 1760/1810/885 1759/1811/885 1756/1812/885 +f 1822/1813/878 1819/1814/878 1821/1815/878 +f 1767/1816/886 1765/1817/886 1763/1818/886 +f 1763/1819/887 1766/1820/887 1767/1816/887 +f 1802/1821/888 1798/1822/888 1800/1823/888 +f 1753/1824/883 1747/1825/883 1750/1826/883 +f 1776/1827/889 1773/1828/889 1771/1829/889 +f 1693/1830/887 1683/1831/887 1692/1832/887 +f 1694/1833/887 1686/1834/887 1693/1830/887 +f 1690/1835/887 1695/1836/887 1694/1833/887 +f 1692/1832/887 1688/1837/887 1690/1835/887 +f 1650/1785/861 1642/1838/861 1646/1839/861 +f 1777/1840/886 1773/1841/886 1774/1842/886 +f 1783/1843/826 1781/1844/826 1779/1845/826 +f 1793/1846/890 1791/1847/890 1794/1848/890 +f 1786/1849/833 1782/1850/833 1784/1851/833 +f 1709/1852/890 1699/1853/890 1708/1854/890 +f 1710/1855/890 1711/1856/890 1709/1852/890 +f 1706/1857/890 1702/1858/890 1710/1855/890 +f 1708/1854/890 1704/1859/890 1706/1857/890 +f 1586/1860/852 1583/1861/852 1582/1862/852 +f 1708/1863/826 1712/1864/826 1709/1865/826 +f 1699/1853/891 1705/1866/891 1704/1859/891 +f 1713/1867/891 1708/1868/891 1706/1869/891 +f 1799/1870/892 1797/1871/892 1795/1872/892 +f 1931/1873/893 1934/1874/893 1932/1875/893 +f 1697/1876/894 1692/1877/894 1690/1878/894 +f 1631/1576/852 1623/1879/852 1624/1732/852 +f 1808/1880/847 1805/1881/847 1803/1882/847 +f 1725/1883/895 1715/1884/895 1724/1885/895 +f 1726/1886/895 1727/1887/895 1725/1883/895 +f 1726/1886/895 1720/1888/895 1718/1889/895 +f 1724/1885/895 1720/1888/895 1722/1890/895 +f 1692/1891/886 1696/1892/886 1693/1893/886 +f 1761/1894/883 1759/1895/883 1762/1896/883 +f 1806/1897/892 1803/1882/892 1805/1898/892 +f 1611/1899/843 1612/1900/843 1613/1901/843 +f 1550/1902/869 1552/1903/869 1546/1904/869 +f 1725/1905/892 1723/1906/892 1728/1907/892 +f 1813/1908/896 1818/1909/896 1816/1910/896 +f 1741/1911/897 1731/1912/897 1740/1913/897 +f 1742/1914/897 1743/1915/897 1741/1911/897 +f 1742/1914/897 1737/1916/897 1734/1917/897 +f 1740/1913/897 1737/1916/897 1738/1918/897 +f 1825/1919/897 1823/1920/897 1826/1921/897 +f 1817/1922/897 1811/1923/897 1814/1924/897 +f 1824/1925/898 1823/1926/898 1820/1927/898 +f 1755/1799/862 1758/1928/862 1761/1894/862 +f 1686/1834/886 1685/1929/886 1683/1831/886 +f 1672/1806/899 1668/1930/899 1670/1655/899 +f 1672/1806/885 1673/1931/885 1671/1932/885 +f 1810/1933/895 1806/1934/895 1807/1935/895 +f 1742/1936/898 1745/1937/898 1738/1938/898 +f 1748/1796/899 1758/1939/899 1757/1940/899 +f 1758/1939/899 1753/1824/899 1759/1941/899 +f 1759/1941/899 1754/1942/899 1756/1943/899 +f 1754/1942/899 1757/1940/899 1756/1943/899 +f 1680/1944/899 1679/1945/899 1678/1946/899 +f 1618/1790/855 1615/1947/855 1614/1948/855 +f 1676/1949/862 1678/1950/862 1677/1951/862 +f 1727/1887/892 1717/1952/892 1715/1884/892 +f 1607/1953/855 1605/1698/855 1603/1954/855 +f 1695/1836/884 1689/1955/884 1687/1956/884 +f 1683/1831/894 1689/1957/894 1688/1837/894 +f 1776/1827/884 1775/1958/884 1772/1959/884 +f 1764/1960/900 1774/1961/900 1773/1962/900 +f 1767/1816/900 1775/1963/900 1774/1961/900 +f 1766/1820/900 1772/1964/900 1775/1963/900 +f 1770/1807/900 1773/1962/900 1772/1964/900 +f 1775/1965/887 1777/1840/887 1774/1966/887 +f 1694/1967/900 1696/1892/900 1698/1968/900 +f 1694/1969/884 1697/1876/884 1690/1970/884 +f 1953/1971/901 1869/1972/901 1867/1973/901 +f 1702/1858/833 1705/1974/833 1703/1975/833 +f 1712/1864/902 1710/1976/902 1709/1977/902 +f 1734/1917/898 1736/1978/898 1735/1979/898 +f 1792/1980/903 1789/1981/903 1787/1982/903 +f 1711/1856/902 1703/1983/902 1700/1984/902 +f 1780/1985/902 1790/1986/902 1789/1987/902 +f 1783/1843/902 1791/1988/902 1790/1986/902 +f 1782/1850/902 1788/1989/902 1791/1988/902 +f 1785/1990/902 1789/1987/902 1788/1989/902 +f 1714/1991/833 1706/1992/833 1710/1993/833 +f 1794/1848/833 1788/1994/833 1792/1980/833 +f 1784/1995/890 1783/1843/890 1779/1996/890 +f 1780/1985/903 1786/1997/903 1781/1998/903 +f 1606/1999/858 1604/1701/858 1607/2000/858 +f 1716/2001/904 1718/1889/904 1719/2002/904 +f 1718/1889/888 1721/2003/888 1719/2004/888 +f 1715/1884/857 1721/2005/857 1720/1888/857 +f 1764/1960/889 1768/2006/889 1765/2007/889 +f 1796/1580/904 1806/2008/904 1805/2009/904 +f 1799/1870/904 1807/2010/904 1806/2008/904 +f 1807/2010/904 1801/1581/904 1804/2011/904 +f 1801/1581/904 1805/2009/904 1804/2011/904 +f 1725/2012/904 1730/2013/904 1726/2014/904 +f 1726/2015/888 1729/1621/888 1722/2016/888 +f 1795/2017/895 1798/1822/895 1799/1870/895 +f 1743/1915/878 1733/2018/878 1731/1912/878 +f 1732/2019/905 1734/1917/905 1735/2020/905 +f 1711/1856/826 1701/2021/826 1699/1853/826 +f 1737/1916/906 1733/2022/906 1736/2023/906 +f 1745/1937/906 1740/2024/906 1738/2025/906 +f 1812/2026/905 1822/2027/905 1821/2028/905 +f 1815/1781/905 1823/2029/905 1822/2027/905 +f 1823/2029/907 1818/1909/907 1820/2030/907 +f 1818/1909/905 1821/2028/905 1820/2030/905 +f 1744/1771/905 1742/2031/905 1741/2032/905 +f 1679/2033/885 1681/2034/885 1675/2035/885 +f 1599/1673/855 1591/2036/855 1592/1671/855 +f 1922/2037/849 1923/2038/849 1924/2039/849 +f 1909/2040/844 1910/2041/844 1907/2042/844 +f 1929/2043/893 1924/2044/893 1928/2045/893 +f 1913/2046/908 1914/2047/908 1915/2048/908 +f 1837/2049/909 1827/2050/909 1838/2051/909 +f 1837/2049/909 1839/2052/909 1830/2053/909 +f 1836/2054/909 1839/2052/909 1834/2055/909 +f 1836/2054/909 1827/2050/909 1832/2056/909 +f 1917/2057/901 1921/2058/901 1916/2059/901 +f 1915/2060/910 1920/2061/910 1917/2062/910 +f 1913/2063/854 1921/2058/854 1919/2064/854 +f 1859/2065/908 1860/2066/908 1861/2067/908 +f 1893/2068/911 1894/2069/911 1890/2070/911 +f 1929/2043/875 1926/2071/875 1927/2072/875 +f 1891/2073/912 1895/2074/912 1892/2075/912 +f 1824/1925/896 1821/2076/896 1819/1814/896 +f 1854/2077/913 1847/1659/913 1855/2078/913 +f 1847/1659/913 1852/2079/913 1855/2078/913 +f 1849/2080/913 1853/2081/913 1852/2079/913 +f 1850/1605/913 1854/2077/913 1853/2081/913 +f 1903/1711/849 1901/2082/849 1902/2083/849 +f 1898/2084/914 1901/2085/914 1905/2086/914 +f 1935/2087/915 1930/2088/915 1933/2089/915 +f 1890/2090/849 1891/2073/849 1892/2091/849 +f 1941/2092/916 1942/2093/916 1938/2094/916 +f 1941/2095/908 1943/2096/908 1944/2097/908 +f 1945/2098/917 1939/2099/917 1943/2096/917 +f 1954/2100/908 1948/2101/908 1946/2102/908 +f 1870/2103/918 1863/2104/918 1871/2105/918 +f 1871/2105/918 1865/2106/918 1869/2107/918 +f 1869/2107/918 1864/1609/918 1867/2108/918 +f 1867/2108/918 1860/2066/918 1870/2103/918 +f 1856/2109/875 1854/2110/875 1855/2111/875 +f 1951/2112/919 1946/2113/919 1949/2114/919 +f 1952/2115/901 1949/2116/901 1950/2117/901 +f 1906/2118/901 1907/2119/901 1908/2120/901 +f 1830/2053/919 1831/2121/919 1828/2122/919 +f 1897/2123/875 1893/2124/875 1895/2125/875 +f 1832/2056/920 1829/2126/920 1833/2127/920 +f 1936/2128/875 1932/2129/875 1930/2130/875 +f 1885/2131/921 1874/2132/921 1886/2133/921 +f 1885/2131/921 1879/2134/921 1877/2135/921 +f 1884/2136/921 1879/2134/921 1882/2137/921 +f 1884/2136/921 1874/2132/921 1881/2138/921 +f 1808/1880/888 1807/2139/888 1804/2140/888 +f 1934/2141/849 1935/2087/849 1933/2142/849 +f 1851/2143/922 1854/2144/922 1858/2145/922 +f 1948/2146/916 1952/2115/916 1950/2147/916 +f 1938/2148/901 1939/2099/901 1940/2149/901 +f 1862/2150/910 1863/2104/910 1859/2151/910 +f 1862/2152/901 1864/1609/901 1865/2106/901 +f 1816/2153/898 1817/1922/898 1814/2154/898 +f 1857/2155/849 1853/2156/849 1851/2143/849 +f 1901/2157/923 1894/2069/923 1902/2158/923 +f 1894/2069/923 1899/2159/923 1902/2158/923 +f 1896/2160/923 1900/2161/923 1899/2159/923 +f 1897/2123/923 1901/2157/923 1900/2161/923 +f 1886/2162/875 1887/2163/875 1885/2164/875 +f 1599/1673/881 1589/2165/881 1593/2166/881 +f 1856/2109/893 1852/2167/893 1857/2155/893 +f 1752/2168/885 1753/1824/885 1750/2169/885 +f 1925/2170/915 1926/2171/915 1923/2172/915 +f 1831/2173/901 1832/2056/901 1833/2174/901 +f 1874/2132/871 1880/2175/871 1881/2138/871 +f 1916/2176/924 1906/2118/924 1917/2177/924 +f 1916/2176/924 1918/2178/924 1909/2040/924 +f 1915/2179/924 1918/2178/924 1913/2180/924 +f 1915/2179/924 1906/2118/924 1911/2181/924 +f 1675/2182/873 1676/1949/873 1677/2183/873 +f 1585/2184/877 1581/2185/877 1583/2186/877 +f 1869/2187/910 1873/2188/910 1871/2189/910 +f 1874/2132/875 1875/2190/875 1876/2191/875 +f 1695/1836/900 1684/2192/900 1686/1834/900 +f 1881/2138/849 1878/2193/849 1879/2134/849 +f 1845/2194/922 1850/1605/922 1848/2195/922 +f 1904/1713/875 1900/2196/875 1898/2084/875 +f 1933/2197/925 1922/2037/925 1934/2198/925 +f 1933/2197/925 1927/2072/925 1925/2170/925 +f 1932/2199/925 1927/2072/925 1930/2200/925 +f 1932/2199/925 1922/2037/925 1929/2043/925 +f 1838/2201/908 1842/2202/908 1837/2203/908 +f 1883/2204/871 1886/2205/871 1884/2206/871 +f 1887/2163/912 1882/2207/912 1885/2208/912 +f 1827/2050/908 1828/2209/908 1829/2210/908 +f 1877/2135/912 1878/2211/912 1875/2212/912 +f 1910/2213/908 1911/2181/908 1912/2214/908 +f 1911/2181/926 1908/2215/926 1912/2216/926 +f 1834/2217/901 1835/2218/901 1836/2219/901 +f 1949/2220/927 1942/2093/927 1950/2221/927 +f 1950/2221/927 1944/2097/927 1948/2222/927 +f 1948/2222/927 1943/2096/927 1946/2223/927 +f 1946/2223/927 1939/2099/927 1949/2220/927 +f 1873/2188/908 1870/2224/908 1871/2225/908 +f 1836/2226/916 1841/2227/916 1838/2228/916 +f 1834/2229/917 1842/2202/917 1840/2230/917 +f 1549/1582/848 1550/1585/848 1542/1583/848 +f 1550/1585/848 1546/1587/848 1544/1586/848 +f 1546/1587/848 1548/1589/848 1551/1588/848 +f 1548/1589/848 1549/1582/848 1539/1584/848 +f 1557/1614/856 1556/1617/856 1566/1615/856 +f 1556/1617/856 1561/2231/856 1564/1618/856 +f 1564/1618/856 1561/2231/856 1562/1619/856 +f 1565/1620/856 1562/1619/856 1557/1614/856 +f 1573/1600/860 1572/1603/860 1582/1645/860 +f 1572/1603/860 1577/2232/860 1580/1647/860 +f 1580/1647/860 1577/2232/860 1578/1573/860 +f 1581/1648/860 1578/1573/860 1573/1600/860 +f 1597/1669/866 1598/1670/866 1590/1635/866 +f 1598/1670/866 1594/1672/866 1592/1671/866 +f 1594/1672/866 1596/1674/866 1599/1673/866 +f 1596/1674/866 1597/1669/866 1587/1567/866 +f 1605/1698/870 1604/1701/870 1614/1699/870 +f 1604/1701/870 1609/2233/870 1612/1702/870 +f 1612/1702/870 1609/2233/870 1610/1703/870 +f 1613/1704/870 1610/1703/870 1605/1698/870 +f 1629/1728/872 1630/1731/872 1622/1729/872 +f 1630/1731/872 1626/1733/872 1624/1732/872 +f 1626/1733/872 1628/1734/872 1631/1576/872 +f 1628/1734/872 1629/1728/872 1619/1730/872 +f 1645/1754/876 1646/1755/876 1638/1717/876 +f 1646/1755/876 1642/1756/876 1640/1722/876 +f 1642/1756/876 1644/1757/876 1647/1720/876 +f 1644/1757/876 1645/1754/876 1635/1714/876 +f 1653/1685/880 1652/1688/880 1662/1777/880 +f 1652/1688/880 1657/2234/880 1660/1779/880 +f 1660/1779/880 1657/2234/880 1658/1690/880 +f 1661/1780/880 1658/1690/880 1653/1685/880 +f 1678/1802/883 1670/1655/883 1667/1657/883 +f 1679/1804/883 1672/1806/883 1670/1655/883 +f 1675/1805/883 1674/1736/883 1672/1806/883 +f 1677/1803/883 1667/1657/883 1674/1736/883 +f 1693/1830/887 1686/1834/887 1683/1831/887 +f 1694/1833/887 1695/1836/887 1686/1834/887 +f 1690/1835/887 1688/1837/887 1695/1836/887 +f 1692/1832/887 1683/1831/887 1688/1837/887 +f 1709/1852/890 1711/1856/890 1699/1853/890 +f 1710/1855/890 1702/1858/890 1711/1856/890 +f 1706/1857/890 1704/1859/890 1702/1858/890 +f 1708/1854/890 1699/1853/890 1704/1859/890 +f 1725/1883/895 1727/1887/895 1715/1884/895 +f 1726/1886/895 1718/1889/895 1727/1887/895 +f 1726/1886/895 1722/1890/895 1720/1888/895 +f 1724/1885/895 1715/1884/895 1720/1888/895 +f 1741/1911/897 1743/1915/897 1731/1912/897 +f 1742/1914/897 1734/1917/897 1743/1915/897 +f 1742/1914/928 1738/1918/928 1737/1916/928 +f 1740/1913/897 1731/1912/897 1737/1916/897 +f 1748/1796/899 1751/1793/899 1758/1939/899 +f 1758/1939/899 1751/1793/899 1753/1824/899 +f 1759/1941/899 1753/1824/899 1754/1942/899 +f 1754/1942/899 1748/1796/899 1757/1940/899 +f 1764/1960/900 1767/1816/900 1774/1961/900 +f 1767/1816/900 1766/1820/900 1775/1963/900 +f 1766/1820/900 1770/1807/900 1772/1964/900 +f 1770/1807/900 1764/1960/900 1773/1962/900 +f 1780/1985/902 1783/1843/902 1790/1986/902 +f 1783/1843/902 1782/1850/902 1791/1988/902 +f 1782/1850/902 1785/1990/902 1788/1989/902 +f 1785/1990/902 1780/1985/902 1789/1987/902 +f 1796/1580/904 1799/1870/904 1806/2008/904 +f 1799/1870/904 1798/1822/904 1807/2010/904 +f 1807/2010/904 1798/1822/904 1801/1581/904 +f 1801/1581/904 1796/1580/904 1805/2009/904 +f 1812/2026/905 1815/1781/905 1822/2027/905 +f 1815/1781/905 1817/1922/905 1823/2029/905 +f 1823/2029/905 1817/1922/905 1818/1909/905 +f 1818/1909/905 1812/2026/905 1821/2028/905 +f 1837/2049/909 1830/2053/909 1827/2050/909 +f 1837/2049/909 1834/2055/909 1839/2052/909 +f 1836/2054/909 1832/2056/909 1839/2052/909 +f 1836/2054/909 1838/2051/909 1827/2050/909 +f 1854/2077/913 1844/1743/913 1847/1659/913 +f 1847/1659/913 1849/2080/913 1852/2079/913 +f 1849/2080/913 1850/1605/913 1853/2081/913 +f 1850/1605/913 1844/1743/913 1854/2077/913 +f 1870/2103/918 1860/2066/918 1863/2104/918 +f 1871/2105/918 1863/2104/918 1865/2106/918 +f 1869/2107/918 1865/2106/918 1864/1609/918 +f 1867/2108/918 1864/1609/918 1860/2066/918 +f 1885/2131/921 1877/2135/921 1874/2132/921 +f 1885/2131/921 1882/2137/921 1879/2134/921 +f 1884/2136/921 1881/2138/921 1879/2134/921 +f 1884/2136/921 1886/2133/921 1874/2132/921 +f 1901/2157/923 1891/2073/923 1894/2069/923 +f 1894/2069/923 1896/2160/923 1899/2159/923 +f 1896/2160/923 1897/2123/923 1900/2161/923 +f 1897/2123/923 1891/2073/923 1901/2157/923 +f 1916/2176/924 1909/2040/924 1906/2118/924 +f 1916/2176/924 1913/2180/924 1918/2178/924 +f 1915/2179/924 1911/2181/924 1918/2178/924 +f 1915/2179/924 1917/2177/924 1906/2118/924 +f 1933/2197/925 1925/2170/925 1922/2037/925 +f 1933/2197/925 1930/2200/925 1927/2072/925 +f 1932/2199/925 1929/2043/925 1927/2072/925 +f 1932/2199/925 1934/2198/925 1922/2037/925 +f 1949/2220/927 1939/2099/927 1942/2093/927 +f 1950/2221/927 1942/2093/927 1944/2097/927 +f 1948/2222/927 1944/2097/927 1943/2096/927 +f 1946/2223/927 1943/2096/927 1939/2099/927 +f 1793/1846/826 1789/2235/826 1790/2236/826 +f 1957/2237/830 1956/2238/830 1962/2239/830 +f 1956/2240/837 1959/2241/837 1955/2242/837 +f 1957/2237/839 1959/2243/839 1958/2244/839 +f 1956/2240/841 1961/2245/841 1962/2239/841 +f 1962/2239/835 1960/2246/835 1957/2237/835 +f 2062/2247/831 2146/2248/831 2015/2249/831 +f 1966/2250/831 2127/2251/831 1967/2252/831 +f 2047/2253/929 2071/2254/929 1996/2255/929 +f 2147/2256/929 2111/2257/929 2109/2258/929 +f 1978/2259/831 1979/2260/831 1980/2261/831 +f 2024/2262/835 2115/2263/835 2025/2264/835 +f 1988/2265/831 2148/2266/831 1986/2267/831 +f 2142/2268/929 1990/2269/929 2107/2270/929 +f 2045/2271/830 2116/2272/830 2118/2273/830 +f 1977/2274/831 2028/2275/831 1975/2276/831 +f 2022/2277/839 1978/2278/839 2020/2279/839 +f 2154/2280/841 2038/2281/841 2039/2282/841 +f 1971/2283/830 2050/2284/830 2051/2285/830 +f 2033/2286/831 2149/2287/831 2012/2288/831 +f 2036/2289/841 2042/2290/841 2037/2291/841 +f 2121/2292/839 2053/2293/839 2048/2294/839 +f 2052/2295/830 2059/2296/830 2060/2297/830 +f 2053/2298/831 2082/2299/831 2041/2300/831 +f 2152/2301/929 2131/2302/929 2129/2303/929 +f 2150/2304/929 2097/2305/929 2095/2306/929 +f 2048/2307/830 2119/2308/830 2121/2292/830 +f 2153/2309/841 2065/2310/841 2066/2311/841 +f 2025/2264/830 2034/2312/830 2013/2313/830 +f 2109/2258/830 2026/2314/830 2009/2315/830 +f 1968/2316/831 2024/2262/831 1970/2317/831 +f 2054/2318/839 2023/2319/839 2018/2320/839 +f 2097/2305/839 1994/2321/839 1987/2322/839 +f 2148/2266/929 2094/2323/929 2092/2324/929 +f 1982/2325/830 2092/2324/830 2094/2323/830 +f 2150/2304/841 2088/2326/841 1992/2327/841 +f 2134/2328/839 2076/2329/839 2072/2330/839 +f 2058/2331/830 2016/2332/830 2125/2333/830 +f 2028/2275/841 2085/2334/841 1975/2335/841 +f 2149/2287/835 2113/2336/835 2074/2337/835 +f 2035/2338/831 2036/2289/831 2037/2339/831 +f 1993/2340/830 2098/2341/830 2100/2342/830 +f 2111/2257/839 2030/2343/839 2026/2344/839 +f 2142/2268/841 1989/2345/841 2008/2346/841 +f 2127/2251/841 2044/2347/841 1967/2348/841 +f 2027/2349/831 2142/2268/831 2008/2350/831 +f 2079/2351/831 2084/2352/831 2055/2353/831 +f 1979/2260/841 2067/2354/841 1980/2355/841 +f 2023/2356/831 2032/2357/831 2007/2358/831 +f 2125/2333/839 2062/2359/839 2058/2360/839 +f 2069/2361/830 2129/2303/830 2131/2302/830 +f 1987/2362/830 2095/2306/830 2097/2305/830 +f 2061/2363/839 2128/2364/839 1966/2365/839 +f 2151/2366/841 2089/2367/841 1998/2368/841 +f 1969/2369/831 2102/2370/831 1963/2371/831 +f 2143/2372/929 1985/2373/929 1984/2374/929 +f 2061/2375/830 2145/2376/830 2126/2377/830 +f 1976/2378/830 1984/2374/830 1985/2373/830 +f 2113/2336/839 2033/2379/839 2029/2380/839 +f 2075/2381/830 2056/2382/830 2136/2383/830 +f 2083/2384/830 2144/2385/830 2139/2386/830 +f 2070/2387/830 1996/2255/830 2071/2254/830 +f 2144/2385/835 2141/2388/835 2139/2386/835 +f 2100/2342/839 2000/2389/839 1993/2390/839 +f 2046/2391/831 2047/2253/831 1995/2392/831 +f 1983/2393/831 2143/2372/831 1981/2394/831 +f 2074/2337/830 2029/2395/830 2011/2396/830 +f 2034/2397/839 2114/2398/839 1968/2399/839 +f 1973/2400/841 2043/2401/841 1974/2402/841 +f 2152/2301/841 2063/2403/841 2064/2404/841 +f 1965/2405/841 2144/2385/841 2068/2406/841 +f 2028/2275/929 2051/2285/929 2050/2284/929 +f 2146/2248/841 2017/2407/841 2015/2408/841 +f 2082/2299/929 2121/2292/929 2119/2308/929 +f 1964/2409/831 2140/2410/831 1965/2411/831 +f 2001/2412/830 2002/2413/830 2003/2414/830 +f 2032/2357/929 2054/2318/929 2106/2415/929 +f 2151/2366/835 2100/2342/835 2098/2341/835 +f 2049/2416/831 2154/2280/831 2039/2417/831 +f 1970/2418/841 2025/2264/841 2013/2419/841 +f 1999/2420/830 2077/2421/830 2101/2422/830 +f 2000/2423/831 2151/2366/831 1998/2424/831 +f 2072/2425/830 2132/2426/830 2134/2328/830 +f 2077/2421/835 2103/2427/835 2101/2422/835 +f 2104/2428/830 2014/2429/830 2004/2430/830 +f 1979/2260/835 2022/2277/835 2021/2431/835 +f 2105/2432/839 2019/2433/839 2014/2434/839 +f 2084/2352/841 2057/2435/841 2055/2436/841 +f 2081/2437/841 2004/2438/841 2005/2439/841 +f 2060/2297/839 2035/2440/839 2052/2441/839 +f 2143/2372/841 2086/2442/841 1981/2443/841 +f 2148/2266/841 2087/2444/841 1986/2445/841 +f 1994/2446/831 2150/2304/831 1992/2447/831 +f 2118/2273/839 2049/2448/839 2045/2449/839 +f 2071/2254/839 2046/2450/839 2070/2451/839 +f 2107/2270/830 1991/2452/830 1989/2453/830 +f 2136/2383/839 2079/2454/839 2075/2455/839 +f 2084/2352/929 2136/2383/929 2056/2382/929 +f 2003/2414/839 1972/2456/839 2001/2457/839 +f 2094/2323/839 1988/2458/839 1982/2459/839 +f 2154/2280/929 2118/2273/929 2116/2272/929 +f 2020/2460/830 2021/2431/830 2022/2277/830 +f 2102/2370/841 2078/2461/841 1963/2462/841 +f 1973/2400/929 2003/2414/929 2002/2413/929 +f 2082/2299/841 2040/2463/841 2041/2464/841 +f 2146/2248/835 2125/2333/835 2016/2332/835 +f 2032/2357/841 2006/2465/841 2007/2466/841 +f 1985/2373/839 1983/2467/839 1976/2468/839 +f 2139/2386/839 1964/2469/839 2083/2470/839 +f 2047/2253/841 1997/2471/841 1995/2472/841 +f 2145/2376/835 2128/2364/835 2126/2377/835 +f 2051/2285/839 1977/2473/839 1971/2474/839 +f 2036/2289/929 2060/2297/929 2059/2296/929 +f 1972/2475/831 1973/2400/831 1974/2476/831 +f 2101/2422/839 1969/2477/839 1999/2478/839 +f 2147/2256/841 2009/2479/841 2010/2480/841 +f 2149/2287/841 2011/2481/841 2012/2482/841 +f 2081/2437/929 2105/2432/929 2104/2428/929 +f 2153/2309/929 2134/2328/929 2132/2426/929 +f 2019/2483/831 2081/2437/831 2005/2484/831 +f 2073/2485/831 2152/2301/831 2064/2486/831 +f 2106/2415/830 2018/2487/830 2006/2488/830 +f 1990/2269/839 2027/2489/839 1991/2490/839 +f 2076/2491/831 2153/2309/831 2066/2492/831 +f 2131/2302/839 2073/2493/839 2069/2494/839 +f 2030/2495/831 2147/2256/831 2010/2496/831 +f 1904/1713/923 1905/2086/923 1903/1711/923 +f 1584/1630/860 1585/2184/860 1586/1860/860 +f 1568/1681/856 1569/1652/856 1570/1675/856 +f 1552/1903/848 1553/1679/848 1547/1667/848 +f 1664/1741/880 1665/1708/880 1666/1705/880 +f 1648/2497/876 1649/1738/876 1643/1726/876 +f 1616/1792/870 1617/1593/870 1618/1790/870 +f 1696/1892/887 1697/1876/887 1698/1968/887 +f 1600/1597/866 1601/1628/866 1595/1612/866 +f 1680/1944/883 1681/2034/883 1682/2498/883 +f 1776/1827/900 1777/1840/900 1778/2499/900 +f 1712/1864/890 1713/1867/890 1714/1991/890 +f 1792/1980/902 1793/1846/902 1794/1848/902 +f 1810/1933/904 1803/1882/904 1809/2500/904 +f 1947/2501/927 1951/2112/927 1952/2115/927 +f 1760/1810/899 1761/1894/899 1762/1896/899 +f 1730/2013/895 1723/1906/895 1729/1621/895 +f 1824/1925/905 1825/1919/905 1826/1921/905 +f 1632/2502/872 1633/1788/872 1627/1775/872 +f 1857/2155/913 1858/2145/913 1856/2109/913 +f 1868/2503/918 1872/1570/918 1873/2188/918 +f 1936/2128/925 1937/2504/925 1931/1873/925 +f 1840/2230/909 1841/2227/909 1835/2218/909 +f 1744/1771/897 1745/1937/897 1746/2505/897 +f 1888/1590/921 1889/2506/921 1883/2204/921 +f 1919/2064/924 1920/2061/924 1914/2047/924 +f 1960/2246/831 1955/2507/831 1959/2508/831 +f 2157/2509/837 2159/2510/837 2155/2511/837 +f 2155/2512/841 2160/2513/841 2156/2514/841 +f 2156/2515/835 2162/2516/835 2158/2517/835 +f 2158/2518/839 2161/2519/839 2157/2520/839 +f 2164/2521/835 2170/2522/835 2166/2523/835 +f 2166/2524/839 2169/2525/839 2165/2526/839 +f 2165/2527/837 2167/2528/837 2163/2529/837 +f 2163/2530/841 2168/2531/841 2164/2532/841 +f 2159/2510/831 2162/2516/831 2160/2513/831 +f 2168/2531/831 2169/2525/831 2170/2522/831 +f 949/1141/825 951/1221/825 946/1142/825 +f 967/1144/826 961/1150/826 962/1145/826 +f 1030/1147/827 1026/2533/827 1025/1148/827 +f 961/1150/828 967/1144/828 964/1151/828 +f 1031/1153/829 1030/1264/829 1028/1149/829 +f 920/1155/830 924/1178/830 925/1156/830 +f 1516/1158/831 947/1143/831 944/1159/831 +f 1027/1161/832 1025/1148/832 1026/1162/832 +f 1331/1164/825 1530/2534/825 1332/1165/825 +f 1012/1167/827 1009/2535/827 1010/1168/827 +f 923/1170/826 925/1156/826 919/1171/826 +f 929/1173/825 928/1545/825 926/1174/825 +f 1013/1176/832 1011/1236/832 1008/1169/832 +f 924/1178/833 920/2536/833 913/1179/833 +f 918/1181/831 917/1220/831 914/1182/831 +f 999/1184/829 998/1252/829 995/1185/829 +f 991/1187/834 990/1289/834 987/1188/834 +f 1004/1190/835 1001/1473/835 1002/1191/835 +f 1516/1158/828 948/1194/828 949/1141/828 +f 971/1197/835 969/1238/835 970/1198/835 +f 943/1200/833 935/1258/833 934/1201/833 +f 1022/1203/836 1018/2537/836 1017/1204/836 +f 1007/1206/837 1006/1271/837 1003/1207/837 +f 1003/1207/830 1006/1271/830 1004/1190/830 +f 941/1209/831 944/2538/831 945/1210/831 +f 985/1211/830 991/2539/830 989/1212/830 +f 958/1214/833 953/1394/833 954/1215/833 +f 983/1217/830 976/2540/830 978/1218/830 +f 919/1171/838 915/1180/838 914/1182/838 +f 1029/1154/830 1028/1149/830 1025/1148/830 +f 951/1221/826 942/2541/826 944/1222/826 +f 1024/1223/825 1031/2542/825 1029/1154/825 +f 922/1172/826 919/1171/826 917/1220/826 +f 1016/1225/831 1018/1267/831 1022/1226/831 +f 989/1228/836 987/1188/836 984/1229/836 +f 934/1231/828 937/2543/828 939/1232/828 +f 994/1234/830 993/2544/830 999/1184/830 +f 1014/1235/830 1012/1167/830 1008/1169/830 +f 974/1237/839 970/2545/839 969/1238/839 +f 976/1240/829 983/2546/829 981/1241/829 +f 1019/1243/830 1021/1256/830 1020/1205/830 +f 968/1199/830 970/1198/830 974/1244/830 +f 1005/1246/839 1003/1207/839 1000/1192/839 +f 981/1241/831 980/1388/831 977/1248/831 +f 931/1249/833 921/1392/833 913/1250/833 +f 998/1252/831 996/1291/831 992/1253/831 +f 987/1188/831 990/1289/831 988/1254/831 +f 971/1197/831 973/1285/831 972/1239/831 +f 1023/1255/834 1022/2547/834 1020/1205/834 +f 937/1257/833 934/1201/833 935/1258/833 +f 950/1260/833 941/2548/833 934/1261/833 +f 1031/1153/831 1024/2549/831 1026/1263/831 +f 997/1265/827 995/1185/827 992/1253/827 +f 1019/1243/840 1017/1204/840 1018/1267/840 +f 944/1268/826 942/1273/826 938/1269/826 +f 1001/1270/841 1004/1190/841 1006/1271/841 +f 988/1254/840 985/1211/840 986/1213/840 +f 942/1273/826 939/2550/826 936/1274/826 +f 945/1210/838 938/1269/838 935/1258/838 +f 963/1275/838 965/2551/838 960/1146/838 +f 952/1216/828 959/1280/828 955/1276/828 +f 1016/1277/842 1023/2552/842 1021/1256/842 +f 993/1278/825 996/1291/825 998/1252/825 +f 1516/1158/829 950/1260/829 940/1262/829 +f 939/1232/830 937/2543/830 933/1259/830 +f 959/1280/826 956/2553/826 957/1281/826 +f 932/1175/826 926/1174/826 923/1282/826 +f 975/1284/837 974/2554/837 972/1239/837 +f 938/1269/838 936/1274/838 933/1259/838 +f 966/1152/833 964/1151/833 965/1286/833 +f 925/1156/838 924/1178/838 915/1180/838 +f 985/1288/842 988/1254/842 990/1289/842 +f 996/1291/832 993/2555/832 994/1292/832 +f 913/1293/828 922/2556/828 918/1181/828 +f 1009/1294/829 1012/1167/829 1014/1235/829 +f 1241/1296/831 1246/1540/831 1277/1297/831 +f 1238/1299/830 1240/1304/830 1270/1300/830 +f 1267/1302/830 1300/2557/830 1270/1303/830 +f 1244/1305/830 1238/1299/830 1271/1306/830 +f 1320/1308/825 1322/1472/825 1329/1166/825 +f 1209/1309/831 1208/2558/831 1178/1310/831 +f 1215/1312/830 1183/2559/830 1181/1313/830 +f 1284/1315/830 1254/1433/830 1249/1316/830 +f 1251/1318/831 1256/2560/831 1287/1319/831 +f 1250/1321/831 1281/2561/831 1279/1322/831 +f 1230/1324/830 1196/2562/830 1194/1325/830 +f 1249/1316/830 1247/1461/830 1280/1327/830 +f 1252/1329/831 1251/1318/831 1285/1330/831 +f 1206/1332/830 1211/2563/830 1179/1333/830 +f 1223/1335/830 1190/2564/830 1187/1336/830 +f 1223/1338/830 1226/2565/830 1192/1339/830 +f 1269/1341/831 1301/2566/831 1299/1342/831 +f 1255/1344/830 1253/2567/830 1286/1345/830 +f 1290/1347/830 1257/1355/830 1255/1344/830 +f 1224/1349/831 1222/2568/831 1191/1350/831 +f 1265/1352/830 1263/1451/830 1296/1353/830 +f 1257/1355/830 1290/2569/830 1292/1356/830 +f 1233/1358/830 1200/1424/830 1198/1359/830 +f 1195/1361/831 1197/1367/831 1228/1362/831 +f 1264/1364/831 1295/2570/831 1293/1365/831 +f 1197/1367/831 1199/2571/831 1231/1368/831 +f 1297/1370/831 1266/2572/831 1268/1343/831 +f 1218/1372/831 1216/2573/831 1186/1373/831 +f 1177/1334/830 1174/2574/830 1207/1375/830 +f 1267/1302/830 1265/1352/830 1298/1377/830 +f 1214/1379/830 1220/2575/830 1217/1380/830 +f 1203/1382/831 1176/2576/831 1237/1383/831 +f 1015/1385/825 1014/1235/825 1011/1236/825 +f 982/1387/832 978/2577/832 977/1248/832 +f 983/1217/825 982/1219/825 980/1388/825 +f 979/1242/827 977/1248/827 978/1389/827 +f 930/1391/829 927/1396/829 921/1392/829 +f 956/1393/838 954/1215/838 953/1394/838 +f 930/1391/828 928/1545/828 929/1173/828 +f 1242/1397/831 1272/2578/831 1273/1398/831 +f 1237/1400/831 1176/2576/831 1175/1401/831 +f 1272/1403/831 1242/1397/831 1241/1296/831 +f 1205/1405/831 1175/1401/831 1178/1310/831 +f 1210/1407/830 1181/1313/830 1179/1333/830 +f 1276/1409/830 1243/1413/830 1244/1305/830 +f 1212/1411/831 1209/2579/831 1180/1311/831 +f 1243/1413/830 1276/2580/830 1278/1414/830 +f 1185/1381/830 1183/2559/830 1215/1416/830 +f 1259/1357/830 1292/2581/830 1294/1418/830 +f 1213/1420/831 1184/1455/831 1186/1373/831 +f 1233/1422/830 1236/2582/830 1202/1423/830 +f 1258/1425/831 1260/1428/831 1291/1426/831 +f 1260/1428/831 1262/1366/831 1293/1429/831 +f 1287/1431/831 1256/2583/831 1258/1425/831 +f 1254/1433/830 1284/2584/830 1286/1434/830 +f 1221/1436/831 1189/2585/831 1191/1350/831 +f 1188/1374/831 1189/2586/831 1221/1438/831 +f 1219/1440/830 1187/1336/830 1217/1380/830 +f 1225/1442/830 1194/1325/830 1192/1339/830 +f 1281/1444/831 1250/1321/831 1252/1329/831 +f 1193/1351/831 1195/1361/831 1227/1446/831 +f 1198/1359/830 1196/2562/830 1230/1448/830 +f 1261/1419/830 1294/2587/830 1296/1450/830 +f 1264/1364/831 1266/2572/831 1297/1452/831 +f 1212/1454/831 1182/1412/831 1184/1455/831 +f 1231/1457/831 1199/2571/831 1201/1458/831 +f 1245/1415/830 1278/2588/830 1280/1460/830 +f 1232/1462/831 1201/1458/831 1203/1382/831 +f 1204/1464/830 1202/1423/830 1236/1465/830 +f 1269/1341/831 1239/1399/831 1273/1467/831 +f 1207/1469/830 1174/2574/830 1204/1464/830 +f 1320/1308/825 1334/1488/825 1321/1471/825 +f 1001/1473/831 1007/2589/831 1005/1474/831 +f 1367/1475/829 1538/2590/829 1369/1476/829 +f 1346/1478/825 1533/2591/825 1347/1479/825 +f 1010/1481/831 1009/2592/831 1015/1385/831 +f 1325/1482/827 1327/1503/827 1324/1483/827 +f 1357/1485/829 1363/2593/829 1358/1486/829 +f 1334/1488/825 1531/2594/825 1335/1489/825 +f 1323/1490/827 1532/2595/827 1333/1484/827 +f 1310/1491/829 1312/2596/829 1302/1492/829 +f 1307/1494/832 1313/2597/832 1308/1495/832 +f 1359/1487/829 1358/1486/829 1361/1497/829 +f 1304/1499/829 1303/1504/829 1306/1500/829 +f 1325/1482/827 1330/1506/827 1326/1502/827 +f 1302/1492/829 1312/2596/829 1303/1504/829 +f 1315/1493/829 1527/2598/829 1316/1505/829 +f 1330/1506/827 1529/2599/827 1328/1507/827 +f 1317/1508/832 1313/2597/832 1307/1494/832 +f 1341/1510/825 1343/1522/825 1340/1511/825 +f 1344/1513/827 1534/2600/827 1348/1514/827 +f 1354/1516/832 1353/1533/832 1356/1517/832 +f 1336/1519/827 1350/1535/827 1337/1520/827 +f 1341/1510/825 1346/1478/825 1342/1480/825 +f 1309/1496/832 1308/1495/832 1311/1523/832 +f 1365/1525/832 1537/2601/832 1360/1526/832 +f 1336/1519/827 1338/1521/827 1345/1515/827 +f 968/1528/841 975/2602/841 973/1285/841 +f 1366/1527/832 1362/2603/832 1352/1529/832 +f 1351/1530/825 1536/2604/825 1349/1512/825 +f 923/1531/830 928/1545/830 930/1391/830 +f 1352/1529/832 1362/2603/832 1353/1533/832 +f 1355/1477/829 1363/2593/829 1357/1485/829 +f 1318/1509/832 1528/2605/832 1305/1534/832 +f 1350/1535/827 1535/2606/827 1339/1536/827 +f 1164/1537/830 1124/1561/830 1125/1538/830 +f 1246/1540/831 1248/1323/831 1279/1541/831 +f 949/1141/830 948/1194/830 934/1196/830 +f 913/1548/831 927/1396/831 929/1173/831 +f 1054/2607/830 1052/2608/830 1050/2609/830 +f 1050/2609/830 1048/2610/830 1045/1553/830 +f 1045/1553/830 1060/2611/830 1043/2612/830 +f 1043/2612/830 1041/2613/830 1045/1553/830 +f 1041/2613/830 1039/1554/830 1045/1553/830 +f 1039/1554/830 1037/2614/830 1063/1555/830 +f 1037/2614/830 1035/2615/830 1063/1555/830 +f 1035/2615/830 1032/2616/830 1063/1555/830 +f 1063/1555/830 1061/2617/830 1054/2607/830 +f 1061/2617/830 1058/2618/830 1054/2607/830 +f 1058/2618/830 1056/2619/830 1054/2607/830 +f 1054/2607/830 1050/2609/830 1045/1553/830 +f 1054/2607/830 1045/1553/830 1063/1555/830 +f 1066/2620/831 1111/2621/831 1072/1556/831 +f 1111/2621/831 1117/2622/831 1072/1556/831 +f 1117/2622/831 1067/2623/831 1072/1556/831 +f 1072/1556/831 1078/2624/831 1064/1557/831 +f 1064/1557/831 1089/2625/831 1065/1558/831 +f 1065/1558/831 1100/2626/831 1072/1556/831 +f 1100/2626/831 1066/2620/831 1072/1556/831 +f 916/1566/833 914/1182/833 915/1180/833 +f 1587/1567/843 1590/1635/843 1588/1568/843 +f 1872/1570/854 1953/1971/854 1867/1571/854 +f 1578/1573/845 1577/2232/845 1574/1574/845 +f 1631/1576/853 1619/1730/853 1621/1577/853 +f 1802/1579/847 1797/2627/847 1796/1580/847 +f 1888/1590/849 1883/2204/849 1884/1591/849 +f 1617/1593/851 1611/1899/851 1613/1594/851 +f 1598/1596/851 1602/1650/851 1600/1597/851 +f 1575/1599/852 1572/1603/852 1573/1600/852 +f 1574/1602/853 1577/2232/853 1572/1603/853 +f 1850/1605/849 1849/2080/849 1846/1606/849 +f 1861/1608/844 1860/2066/844 1864/1609/844 +f 1594/1611/855 1600/1597/855 1595/1612/855 +f 1729/1621/857 1723/1906/857 1724/1622/857 +f 1549/1624/852 1553/1679/852 1554/1625/852 +f 1596/1627/881 1595/1612/881 1601/1628/881 +f 1584/1630/846 1586/1860/846 1582/1631/846 +f 1539/1584/852 1542/1583/852 1540/1633/852 +f 1590/1635/850 1592/1671/850 1591/1636/850 +f 1562/1619/855 1561/2231/855 1558/1638/855 +f 1555/1640/861 1557/1614/861 1562/1619/861 +f 1563/1642/855 1568/1681/855 1564/1643/855 +f 1597/1649/843 1601/1628/843 1602/1650/843 +f 1569/1652/859 1563/1642/859 1565/1653/859 +f 1670/1655/862 1668/2628/862 1669/1656/862 +f 1846/1658/863 1849/2080/863 1847/1659/863 +f 1542/1583/864 1544/1586/864 1543/1661/864 +f 1551/1588/845 1545/2629/845 1543/1663/845 +f 1551/1588/867 1539/1584/867 1541/1664/867 +f 1546/1666/845 1552/1903/845 1547/1667/845 +f 1570/1675/843 1569/1652/843 1567/1676/843 +f 1548/1678/865 1547/1667/865 1553/1679/865 +f 1568/1681/868 1570/1675/868 1566/1682/868 +f 1655/1684/845 1652/1688/845 1653/1685/845 +f 1654/1687/867 1657/2234/867 1652/1688/867 +f 1658/1690/852 1657/2234/852 1654/1691/852 +f 1651/1693/864 1653/1685/864 1658/1690/864 +f 1659/1695/852 1664/1741/852 1660/1696/852 +f 1666/1705/845 1665/1708/845 1663/1706/845 +f 1665/1708/869 1659/1695/869 1661/1709/869 +f 1903/1711/911 1902/2630/911 1899/1712/911 +f 1635/1714/855 1638/1717/855 1636/1715/855 +f 1638/1717/861 1640/1722/861 1639/1718/861 +f 1647/1720/843 1641/2631/843 1639/1721/843 +f 1647/1720/874 1635/1714/874 1637/1723/874 +f 1642/1725/843 1648/2497/843 1643/1726/843 +f 1667/1657/873 1669/2632/873 1673/1735/873 +f 1644/1737/868 1643/1726/868 1649/1738/868 +f 1666/1705/867 1662/2633/867 1660/1740/867 +f 1843/1742/875 1847/1659/875 1844/1743/875 +f 1558/1745/874 1561/2231/874 1556/1617/874 +f 1610/1703/843 1609/2233/843 1606/1747/843 +f 1603/1749/850 1605/1698/850 1610/1703/850 +f 1579/1751/845 1584/1630/845 1580/1752/845 +f 1629/1758/845 1633/1788/845 1634/1759/845 +f 1559/1761/843 1556/1617/843 1557/1614/843 +f 1634/1759/879 1632/2502/879 1626/1763/879 +f 1619/1730/845 1622/1729/845 1620/1765/845 +f 1622/1729/877 1624/1732/877 1623/1767/877 +f 1741/1769/878 1740/2634/878 1739/1770/878 +f 1571/1772/877 1573/1600/877 1578/1573/877 +f 1626/1774/852 1632/2502/852 1627/1775/852 +f 1815/1781/878 1812/2026/878 1813/1782/878 +f 1645/1784/855 1649/1738/855 1650/1785/855 +f 1628/1787/846 1627/1775/846 1633/1788/846 +f 1618/1790/858 1614/2635/858 1612/1791/858 +f 1751/1793/862 1748/1796/862 1749/1794/862 +f 1748/1796/882 1754/1942/882 1752/1797/882 +f 1755/1799/882 1760/1810/882 1756/1800/882 +f 1770/1807/884 1766/1820/884 1769/1808/884 +f 1760/1810/885 1762/1896/885 1759/1811/885 +f 1822/1813/878 1825/1919/878 1819/1814/878 +f 1767/1816/886 1764/1960/886 1765/1817/886 +f 1763/1819/887 1769/2636/887 1766/1820/887 +f 1802/1821/888 1801/1581/888 1798/1822/888 +f 1753/1824/883 1751/1793/883 1747/1825/883 +f 1776/1827/889 1772/2637/889 1773/1828/889 +f 1650/1785/859 1648/2497/859 1642/1838/859 +f 1777/1840/886 1771/1829/886 1773/1841/886 +f 1783/1843/826 1780/1985/826 1781/1844/826 +f 1793/1846/890 1790/2638/890 1791/1847/890 +f 1786/1849/833 1785/1990/833 1782/1850/833 +f 1586/1860/852 1585/2184/852 1583/1861/852 +f 1708/1863/826 1707/2639/826 1712/1864/826 +f 1699/1853/891 1701/2640/891 1705/1866/891 +f 1713/1867/891 1707/2639/891 1708/1868/891 +f 1799/1870/892 1796/1580/892 1797/1871/892 +f 1931/1873/893 1937/2504/893 1934/1874/893 +f 1697/1876/894 1691/2641/894 1692/1877/894 +f 1631/1576/852 1625/2642/852 1623/1879/852 +f 1808/1880/847 1804/2643/847 1805/1881/847 +f 1692/1891/886 1691/2641/886 1696/1892/886 +f 1761/1894/883 1758/2644/883 1759/1895/883 +f 1806/1897/892 1809/2500/892 1803/1882/892 +f 1611/1899/843 1616/1792/843 1612/1900/843 +f 1550/1902/869 1554/1625/869 1552/1903/869 +f 1725/1905/892 1724/2645/892 1723/1906/892 +f 1813/1908/896 1812/2026/896 1818/1909/896 +f 1825/1919/897 1822/2646/897 1823/1920/897 +f 1817/1922/897 1815/1781/897 1811/1923/897 +f 1824/1925/898 1826/1921/898 1823/1926/898 +f 1755/1799/862 1757/2647/862 1758/1928/862 +f 1686/1834/886 1684/2648/886 1685/1929/886 +f 1672/1806/899 1671/2649/899 1668/1930/899 +f 1672/1806/885 1674/1736/885 1673/1931/885 +f 1810/1933/895 1809/2500/895 1806/1934/895 +f 1742/1936/898 1746/2505/898 1745/1937/898 +f 1680/1944/899 1682/2498/899 1679/1945/899 +f 1618/1790/855 1617/1593/855 1615/1947/855 +f 1676/1949/862 1680/1944/862 1678/1950/862 +f 1727/1887/892 1716/2650/892 1717/1952/892 +f 1607/1953/855 1604/1701/855 1605/1698/855 +f 1695/1836/884 1688/1837/884 1689/1955/884 +f 1683/1831/894 1685/2651/894 1689/1957/894 +f 1776/1827/884 1778/2499/884 1775/1958/884 +f 1775/1965/887 1778/2499/887 1777/1840/887 +f 1694/1967/900 1693/2652/900 1696/1892/900 +f 1694/1969/884 1698/1968/884 1697/1876/884 +f 1953/1971/901 1868/2503/901 1869/1972/901 +f 1702/1858/833 1704/1859/833 1705/1974/833 +f 1712/1864/902 1714/1991/902 1710/1976/902 +f 1734/1917/898 1737/1916/898 1736/1978/898 +f 1792/1980/903 1788/2653/903 1789/1981/903 +f 1711/1856/902 1702/1858/902 1703/1983/902 +f 1714/1991/833 1713/1867/833 1706/1992/833 +f 1794/1848/833 1791/2654/833 1788/1994/833 +f 1784/1995/890 1782/1850/890 1783/1843/890 +f 1780/1985/903 1785/1990/903 1786/1997/903 +f 1606/1999/858 1609/2233/858 1604/1701/858 +f 1716/2001/904 1727/1887/904 1718/1889/904 +f 1718/1889/888 1720/1888/888 1721/2003/888 +f 1715/1884/857 1717/2655/857 1721/2005/857 +f 1764/1960/889 1770/1807/889 1768/2006/889 +f 1725/2012/904 1728/1907/904 1730/2013/904 +f 1726/2015/888 1730/2013/888 1729/1621/888 +f 1795/2017/895 1800/2656/895 1798/1822/895 +f 1743/1915/878 1732/2657/878 1733/2018/878 +f 1732/2019/905 1743/1915/905 1734/1917/905 +f 1711/1856/826 1700/2658/826 1701/2021/826 +f 1737/1916/906 1731/1912/906 1733/2022/906 +f 1745/1937/906 1739/1770/906 1740/2024/906 +f 1744/1771/905 1746/2505/905 1742/2031/905 +f 1679/2033/885 1682/2498/885 1681/2034/885 +f 1599/1673/855 1593/2659/855 1591/2036/855 +f 1922/2037/849 1925/2170/849 1923/2038/849 +f 1909/2040/844 1918/2178/844 1910/2041/844 +f 1929/2043/863 1922/2037/863 1924/2044/863 +f 1913/2046/908 1919/2064/908 1914/2047/908 +f 1917/2057/901 1920/2061/901 1921/2058/901 +f 1915/2060/926 1914/2047/926 1920/2061/926 +f 1913/2063/844 1916/2660/844 1921/2058/844 +f 1859/2065/908 1863/2104/908 1860/2066/908 +f 1893/2068/911 1896/2160/911 1894/2069/911 +f 1929/2043/875 1928/2661/875 1926/2071/875 +f 1891/2073/914 1897/2123/914 1895/2074/914 +f 1824/1925/896 1820/2662/896 1821/2076/896 +f 1903/1711/849 1905/2086/849 1901/2082/849 +f 1898/2084/914 1900/2663/914 1901/2085/914 +f 1935/2087/922 1936/2128/922 1930/2088/922 +f 1890/2090/849 1894/2069/849 1891/2073/849 +f 1941/2092/916 1944/2097/916 1942/2093/916 +f 1941/2095/908 1945/2664/908 1943/2096/908 +f 1945/2098/919 1940/2665/919 1939/2099/919 +f 1954/2100/908 1947/2501/908 1948/2101/908 +f 1856/2109/875 1858/2145/875 1854/2110/875 +f 1951/2112/917 1954/2100/917 1946/2113/917 +f 1952/2115/901 1951/2112/901 1949/2116/901 +f 1906/2118/901 1909/2040/901 1907/2119/901 +f 1830/2053/919 1839/2052/919 1831/2121/919 +f 1897/2123/875 1896/2160/875 1893/2124/875 +f 1832/2056/916 1827/2050/916 1829/2126/916 +f 1936/2128/875 1931/1873/875 1932/2129/875 +f 1808/1880/888 1810/1933/888 1807/2139/888 +f 1934/2141/849 1937/2504/849 1935/2087/849 +f 1851/2143/922 1853/2666/922 1854/2144/922 +f 1948/2146/920 1947/2501/920 1952/2115/920 +f 1938/2148/901 1942/2093/901 1939/2099/901 +f 1862/2150/910 1865/2106/910 1863/2104/910 +f 1862/2152/901 1866/2667/901 1864/1609/901 +f 1816/2153/898 1818/1909/898 1817/1922/898 +f 1857/2155/849 1852/2668/849 1853/2156/849 +f 1886/2162/875 1889/2506/875 1887/2163/875 +f 1599/1673/858 1587/1567/858 1589/2165/858 +f 1856/2109/863 1855/2669/863 1852/2167/863 +f 1752/2168/885 1754/1942/885 1753/1824/885 +f 1925/2170/915 1927/2072/915 1926/2171/915 +f 1831/2173/901 1839/2052/901 1832/2056/901 +f 1874/2132/911 1876/2670/911 1880/2175/911 +f 1675/2182/873 1681/2034/873 1676/1949/873 +f 1585/2184/879 1579/1751/879 1581/2185/879 +f 1869/2187/926 1868/2503/926 1873/2188/926 +f 1874/2132/875 1877/2135/875 1875/2190/875 +f 1695/1836/900 1687/2671/900 1684/2192/900 +f 1881/2138/849 1880/2672/849 1878/2193/849 +f 1845/2194/922 1844/1743/922 1850/1605/922 +f 1904/1713/875 1899/2673/875 1900/2196/875 +f 1838/2201/908 1841/2227/908 1842/2202/908 +f 1883/2204/871 1889/2506/871 1886/2205/871 +f 1887/2163/914 1888/1590/914 1882/2207/914 +f 1827/2050/908 1830/2053/908 1828/2209/908 +f 1877/2135/912 1879/2134/912 1878/2211/912 +f 1910/2213/908 1918/2178/908 1911/2181/908 +f 1911/2181/910 1906/2118/910 1908/2215/910 +f 1834/2217/901 1840/2230/901 1835/2218/901 +f 1873/2188/908 1872/1570/908 1870/2224/908 +f 1836/2226/920 1835/2218/920 1841/2227/920 +f 1834/2229/919 1837/2674/919 1842/2202/919 +f 1793/1846/826 1787/1982/826 1789/2235/826 +f 1957/2237/830 1958/2675/830 1956/2238/830 +f 1956/2240/837 1958/2676/837 1959/2241/837 +f 1957/2237/839 1960/2246/839 1959/2243/839 +f 1956/2240/841 1955/2242/841 1961/2245/841 +f 1962/2239/835 1961/2245/835 1960/2246/835 +f 2062/2247/831 2124/2677/831 2146/2248/831 +f 1966/2250/831 2128/2364/831 2127/2251/831 +f 2047/2253/929 2137/2678/929 2071/2254/929 +f 2147/2256/929 2110/2679/929 2111/2257/929 +f 1978/2259/831 2138/2680/831 1979/2260/831 +f 2024/2262/929 2114/2398/929 2115/2263/929 +f 1988/2265/831 2093/2681/831 2148/2266/831 +f 2142/2268/929 2108/2682/929 1990/2269/929 +f 2045/2271/830 2038/2683/830 2116/2272/830 +f 1977/2274/831 2090/2684/831 2028/2275/831 +f 2022/2277/839 2138/2680/839 1978/2278/839 +f 2154/2280/841 2116/2272/841 2038/2281/841 +f 1971/2283/830 2085/2685/830 2050/2284/830 +f 2033/2286/831 2112/2686/831 2149/2287/831 +f 2036/2289/841 2059/2296/841 2042/2290/841 +f 2121/2292/839 2120/2687/839 2053/2293/839 +f 2052/2295/830 2042/2688/830 2059/2296/830 +f 2053/2298/831 2120/2687/831 2082/2299/831 +f 2152/2301/929 2130/2689/929 2131/2302/929 +f 2150/2304/929 2096/2690/929 2097/2305/929 +f 2048/2307/830 2040/2691/830 2119/2308/830 +f 2153/2309/841 2132/2426/841 2065/2310/841 +f 2025/2264/830 2115/2263/830 2034/2312/830 +f 2109/2258/830 2111/2257/830 2026/2314/830 +f 1968/2316/831 2114/2398/831 2024/2262/831 +f 2054/2318/839 2031/2692/839 2023/2319/839 +f 2097/2305/839 2096/2690/839 1994/2321/839 +f 2148/2266/929 2093/2681/929 2094/2323/929 +f 1982/2325/830 2087/2693/830 2092/2324/830 +f 2150/2304/841 2095/2306/841 2088/2326/841 +f 2134/2328/839 2133/2694/839 2076/2329/839 +f 2058/2331/830 2017/2695/830 2016/2332/830 +f 2028/2275/841 2050/2284/841 2085/2334/841 +f 2149/2287/929 2112/2686/929 2113/2336/929 +f 2035/2338/831 2122/2696/831 2036/2289/831 +f 1993/2340/830 2089/2697/830 2098/2341/830 +f 2111/2257/839 2110/2679/839 2030/2343/839 +f 2142/2268/841 2107/2270/841 1989/2345/841 +f 2127/2251/841 2145/2376/841 2044/2347/841 +f 2027/2349/831 2108/2682/831 2142/2268/831 +f 2079/2351/831 2135/2698/831 2084/2352/831 +f 1979/2260/841 2021/2431/841 2067/2354/841 +f 2023/2356/831 2031/2692/831 2032/2357/831 +f 2125/2333/839 2124/2677/839 2062/2359/839 +f 2069/2361/830 2063/2699/830 2129/2303/830 +f 1987/2362/830 2088/2700/830 2095/2306/830 +f 2061/2363/839 2126/2377/839 2128/2364/839 +f 2151/2366/841 2098/2341/841 2089/2367/841 +f 1969/2369/831 2103/2427/831 2102/2370/831 +f 2143/2372/929 2091/2701/929 1985/2373/929 +f 2061/2375/830 2044/2702/830 2145/2376/830 +f 1976/2378/830 2086/2703/830 1984/2374/830 +f 2113/2336/839 2112/2686/839 2033/2379/839 +f 2075/2381/830 2057/2704/830 2056/2382/830 +f 2083/2384/830 2068/2705/830 2144/2385/830 +f 2070/2387/830 1997/2706/830 1996/2255/830 +f 2144/2385/929 2140/2410/929 2141/2388/929 +f 2100/2342/839 2099/2707/839 2000/2389/839 +f 2046/2391/831 2137/2678/831 2047/2253/831 +f 1983/2393/831 2091/2701/831 2143/2372/831 +f 2074/2337/830 2113/2336/830 2029/2395/830 +f 2034/2397/839 2115/2263/839 2114/2398/839 +f 1973/2400/841 2002/2413/841 2043/2401/841 +f 2152/2301/841 2129/2303/841 2063/2403/841 +f 1965/2405/841 2140/2410/841 2144/2385/841 +f 2028/2275/929 2090/2684/929 2051/2285/929 +f 2146/2248/841 2016/2332/841 2017/2407/841 +f 2082/2299/929 2120/2687/929 2121/2292/929 +f 1964/2409/831 2141/2388/831 2140/2410/831 +f 2001/2412/830 2043/2708/830 2002/2413/830 +f 2032/2357/929 2031/2692/929 2054/2318/929 +f 2151/2366/929 2099/2707/929 2100/2342/929 +f 2049/2416/831 2117/2709/831 2154/2280/831 +f 1970/2418/841 2024/2262/841 2025/2264/841 +f 1999/2420/830 2078/2710/830 2077/2421/830 +f 2000/2423/831 2099/2707/831 2151/2366/831 +f 2072/2425/830 2065/2711/830 2132/2426/830 +f 2077/2421/929 2102/2370/929 2103/2427/929 +f 2104/2428/830 2105/2432/830 2014/2429/830 +f 1979/2260/929 2138/2680/929 2022/2277/929 +f 2105/2432/839 2080/2712/839 2019/2433/839 +f 2084/2352/841 2056/2382/841 2057/2435/841 +f 2081/2437/841 2104/2428/841 2004/2438/841 +f 2060/2297/839 2122/2696/839 2035/2440/839 +f 2143/2372/841 1984/2374/841 2086/2442/841 +f 2148/2266/841 2092/2324/841 2087/2444/841 +f 1994/2446/831 2096/2690/831 2150/2304/831 +f 2118/2273/839 2117/2709/839 2049/2448/839 +f 2071/2254/839 2137/2678/839 2046/2450/839 +f 2107/2270/830 1990/2269/830 1991/2452/830 +f 2136/2383/839 2135/2698/839 2079/2454/839 +f 2084/2352/929 2135/2698/929 2136/2383/929 +f 2003/2414/839 2123/2713/839 1972/2456/839 +f 2094/2323/839 2093/2681/839 1988/2458/839 +f 2154/2280/929 2117/2709/929 2118/2273/929 +f 2020/2460/830 2067/2714/830 2021/2431/830 +f 2102/2370/841 2077/2421/841 2078/2461/841 +f 1973/2400/929 2123/2713/929 2003/2414/929 +f 2082/2299/841 2119/2308/841 2040/2463/841 +f 2146/2248/929 2124/2677/929 2125/2333/929 +f 2032/2357/841 2106/2415/841 2006/2465/841 +f 1985/2373/839 2091/2701/839 1983/2467/839 +f 2139/2386/839 2141/2388/839 1964/2469/839 +f 2047/2253/841 1996/2255/841 1997/2471/841 +f 2145/2376/929 2127/2251/929 2128/2364/929 +f 2051/2285/839 2090/2684/839 1977/2473/839 +f 2036/2289/929 2122/2696/929 2060/2297/929 +f 1972/2475/831 2123/2713/831 1973/2400/831 +f 2101/2422/839 2103/2427/839 1969/2477/839 +f 2147/2256/841 2109/2258/841 2009/2479/841 +f 2149/2287/841 2074/2337/841 2011/2481/841 +f 2081/2437/929 2080/2712/929 2105/2432/929 +f 2153/2309/929 2133/2694/929 2134/2328/929 +f 2019/2483/831 2080/2712/831 2081/2437/831 +f 2073/2485/831 2130/2689/831 2152/2301/831 +f 2106/2415/830 2054/2318/830 2018/2487/830 +f 1990/2269/839 2108/2682/839 2027/2489/839 +f 2076/2491/831 2133/2694/831 2153/2309/831 +f 2131/2302/839 2130/2689/839 2073/2493/839 +f 2030/2495/831 2110/2679/831 2147/2256/831 +f 1904/1713/923 1898/2084/923 1905/2086/923 +f 1584/1630/860 1579/1751/860 1585/2184/860 +f 1568/1681/856 1563/1642/856 1569/1652/856 +f 1552/1903/848 1554/1625/848 1553/1679/848 +f 1664/1741/880 1659/1695/880 1665/1708/880 +f 1648/2497/876 1650/1785/876 1649/1738/876 +f 1616/1792/870 1611/1899/870 1617/1593/870 +f 1696/1892/887 1691/2641/887 1697/1876/887 +f 1600/1597/866 1602/1650/866 1601/1628/866 +f 1680/1944/883 1676/1949/883 1681/2034/883 +f 1776/1827/900 1771/1829/900 1777/1840/900 +f 1712/1864/890 1707/2639/890 1713/1867/890 +f 1792/1980/902 1787/1982/902 1793/1846/902 +f 1810/1933/904 1808/1880/904 1803/1882/904 +f 1947/2501/927 1954/2100/927 1951/2112/927 +f 1760/1810/899 1755/1799/899 1761/1894/899 +f 1730/2013/895 1728/1907/895 1723/1906/895 +f 1824/1925/905 1819/1814/905 1825/1919/905 +f 1632/2502/872 1634/1759/872 1633/1788/872 +f 1857/2155/913 1851/2143/913 1858/2145/913 +f 1868/2503/918 1953/1971/918 1872/1570/918 +f 1936/2128/925 1935/2087/925 1937/2504/925 +f 1840/2230/909 1842/2202/909 1841/2227/909 +f 1744/1771/897 1739/1770/897 1745/1937/897 +f 1888/1590/921 1887/2163/921 1889/2506/921 +f 1919/2064/924 1921/2058/924 1920/2061/924 +f 1960/2246/831 1961/2245/831 1955/2507/831 +f 2157/2509/837 2161/2519/837 2159/2510/837 +f 2155/2512/841 2159/2510/841 2160/2513/841 +f 2156/2515/835 2160/2513/835 2162/2516/835 +f 2158/2518/839 2162/2516/839 2161/2519/839 +f 2164/2521/835 2168/2531/835 2170/2522/835 +f 2166/2524/839 2170/2522/839 2169/2525/839 +f 2165/2527/837 2169/2525/837 2167/2528/837 +f 2163/2530/841 2167/2528/841 2168/2531/841 +f 2159/2510/831 2161/2519/831 2162/2516/831 +f 2168/2531/831 2167/2528/831 2169/2525/831 +s 1 +f 1252/1329/832 1247/1461/845 1249/1316/832 +f 1262/1366/855 1257/1355/827 1259/1357/855 +f 1050/2715/901 1047/2716/838 1048/2717/838 +f 1244/1305/825 1242/1397/908 1238/1299/908 +f 1058/2718/852 1055/2719/833 1056/2720/833 +f 1366/1527/930 1361/1497/931 1358/1486/930 +f 1202/1423/829 1199/2571/852 1200/1424/852 +f 1260/1428/827 1255/1344/901 1257/1355/827 +f 1266/2572/852 1261/1419/833 1263/1451/852 +f 1035/2721/908 1034/2722/828 1032/2723/828 +f 1256/2560/838 1254/1433/875 1253/1435/838 +f 1242/1397/908 1240/1304/828 1238/1299/908 +f 1250/1321/845 1245/1415/826 1247/1461/845 +f 1052/2724/827 1049/2725/901 1050/2715/901 +f 1060/2726/832 1042/2727/845 1043/2728/845 +f 1181/1313/843 1178/1310/825 1179/1333/825 +f 1174/2574/828 1203/1382/849 1204/1464/849 +f 1347/1479/932 1345/1515/933 1342/1480/933 +f 1032/2723/828 1062/2729/849 1063/2730/849 +f 1362/2603/827 1355/1477/934 1353/1533/934 +f 1269/1341/849 1265/1352/829 1267/1302/849 +f 1351/1530/935 1337/1520/936 1339/1536/935 +f 1239/1399/828 1267/1302/849 1240/1304/828 +f 1246/1540/843 1244/1305/825 1243/1413/843 +f 1190/2564/838 1188/1374/875 1187/1336/875 +f 1185/1381/845 1182/1412/826 1183/2559/826 +f 1054/2731/855 1051/2732/827 1052/2724/827 +f 1264/1364/833 1259/1357/855 1261/1419/833 +f 1056/2720/833 1053/2733/855 1054/2731/855 +f 1200/1424/852 1197/1367/833 1198/1359/833 +f 1063/2730/849 1059/2734/829 1061/2735/829 +f 1466/2736/827 1478/2737/937 1469/2738/938 +f 1041/2739/826 1038/2740/843 1039/2741/843 +f 1043/2728/845 1040/2742/826 1041/2739/826 +f 1248/1323/826 1243/1413/843 1245/1415/826 +f 1179/1333/825 1175/1401/908 1177/1334/908 +f 1217/1380/832 1184/1455/845 1185/1381/845 +f 1254/1433/875 1252/1329/832 1249/1316/832 +f 1369/1476/939 1353/1533/934 1355/1477/934 +f 1521/2743/940 1150/2744/941 1151/2745/940 +f 1067/2746/942 1068/2747/943 1069/2748/943 +f 1070/2749/944 1068/2747/943 1071/2750/942 +f 1072/2751/944 1073/2752/943 1070/2749/944 +f 1082/2753/945 1064/2754/946 1078/2755/947 +f 1072/2756/944 1075/2757/948 1076/2758/948 +f 1077/2759/947 1075/2757/948 1070/2760/944 +f 1078/2761/947 1079/2762/948 1077/2759/947 +f 1519/2763/949 1125/2764/950 1141/2765/949 +f 1078/2755/947 1081/2766/945 1082/2753/945 +f 1083/2767/946 1081/2766/945 1077/2768/947 +f 1064/2754/946 1084/2769/945 1083/2767/946 +f 1518/2770/951 1126/2771/952 1136/2772/953 +f 1064/2773/946 1086/2774/954 1087/2775/954 +f 1083/2776/946 1088/2777/954 1086/2774/954 +f 1089/2778/955 1088/2777/954 1090/2779/955 +f 1155/2780/956 1156/2781/957 1150/2782/941 +f 1089/2783/955 1092/2784/958 1093/2785/958 +f 1090/2786/955 1094/2787/958 1092/2784/958 +f 1065/2788/959 1094/2787/958 1095/2789/959 +f 1525/2790/960 1169/2791/961 1170/2792/960 +f 1065/2793/959 1097/2794/962 1098/2795/962 +f 1099/2796/963 1097/2794/962 1095/2797/959 +f 1100/2798/963 1101/2799/962 1099/2796/963 +f 1146/2800/964 1125/2801/950 1145/2802/965 +f 1100/2803/963 1103/2804/966 1104/2805/966 +f 1105/2806/967 1103/2804/966 1099/2807/963 +f 1066/2808/967 1106/2809/966 1105/2806/967 +f 1523/2810/968 1124/2811/969 1160/2812/968 +f 1066/2813/967 1108/2814/970 1109/2815/970 +f 1110/2816/971 1108/2814/970 1105/2817/967 +f 1111/2818/971 1112/2819/970 1110/2816/971 +f 1072/2756/944 1080/2820/948 1078/2761/947 +f 1111/2821/971 1114/2822/972 1115/2823/972 +f 1116/2824/973 1114/2822/972 1110/2825/971 +f 1117/2826/973 1118/2827/972 1116/2824/973 +f 1526/2828/974 1127/2829/975 1173/2830/974 +f 1117/2831/973 1120/2832/976 1121/2833/976 +f 1116/2834/973 1122/2835/976 1120/2832/976 +f 1067/2836/942 1122/2835/976 1071/2837/942 +f 1064/2773/946 1091/2838/954 1089/2778/955 +f 1485/2839/977 1477/2840/978 1474/2841/979 +f 1127/2842/975 1128/2843/980 1129/2844/975 +f 1128/2843/980 1130/2845/952 1129/2844/975 +f 1131/2846/980 1126/2847/952 1130/2845/952 +f 1072/2751/944 1069/2748/943 1074/2848/943 +f 1126/2771/952 1133/2849/951 1130/2850/952 +f 1133/2849/951 1134/2851/953 1130/2850/952 +f 1135/2852/951 1136/2772/953 1134/2851/953 +f 1111/2818/971 1109/2815/970 1113/2853/970 +f 1136/2854/953 1138/2855/949 1134/2856/953 +f 1138/2855/949 1139/2857/950 1134/2856/953 +f 1140/2858/949 1125/2764/950 1139/2857/950 +f 1524/2859/981 1164/2860/982 1165/2861/981 +f 1125/2801/950 1142/2862/964 1139/2863/950 +f 1139/2863/950 1143/2864/964 1144/2865/965 +f 1143/2864/964 1145/2802/965 1144/2865/965 +f 1517/2866/980 1126/2847/952 1132/2867/980 +f 1145/2868/965 1147/2869/940 1144/2870/965 +f 1144/2870/965 1148/2871/940 1149/2872/941 +f 1148/2871/940 1150/2744/941 1149/2872/941 +f 1065/2788/959 1093/2785/958 1096/2873/958 +f 1150/2782/941 1152/2874/957 1149/2875/941 +f 1152/2874/957 1153/2876/956 1149/2875/941 +f 1154/2877/957 1155/2780/956 1153/2876/956 +f 1098/2795/962 1100/2798/963 1065/2793/959 +f 1155/2878/956 1157/2879/968 1153/2880/956 +f 1153/2880/956 1158/2881/968 1159/2882/969 +f 1158/2881/968 1124/2811/969 1159/2882/969 +f 1124/2883/969 1161/2884/981 1159/2885/969 +f 1161/2884/981 1162/2886/982 1159/2885/969 +f 1163/2887/981 1164/2860/982 1162/2886/982 +f 1104/2805/966 1066/2808/967 1100/2803/963 +f 1164/2888/982 1166/2889/960 1162/2890/982 +f 1162/2890/982 1167/2891/960 1168/2892/961 +f 1167/2891/960 1169/2791/961 1168/2892/961 +f 1115/2823/972 1117/2826/973 1111/2821/971 +f 1169/2893/961 1171/2894/974 1168/2895/961 +f 1171/2894/974 1129/2896/975 1168/2895/961 +f 1172/2897/974 1127/2829/975 1129/2896/975 +f 1121/2833/976 1067/2836/942 1117/2831/973 +f 1048/2898/838 1046/2899/875 1045/2900/875 +f 1258/1425/901 1253/2567/838 1255/1344/901 +f 1316/1505/983 1308/1495/984 1310/1491/984 +f 1217/1380/832 1188/1374/875 1186/1373/832 +f 1061/2735/829 1057/2901/852 1058/2718/852 +f 1037/2902/825 1033/2903/908 1035/2721/908 +f 1183/2559/826 1180/1311/843 1181/1313/843 +f 1196/2562/855 1193/1351/827 1194/1325/827 +f 1194/1325/827 1191/1350/901 1192/1339/901 +f 1204/1464/849 1201/1458/829 1202/1423/829 +f 1198/1359/833 1195/1361/855 1196/2562/855 +f 1177/1334/908 1176/2576/828 1174/2574/828 +f 1192/1339/901 1189/2585/838 1190/1340/838 +f 1335/1489/985 1324/1483/986 1321/1471/986 +f 1327/1503/829 1321/1471/986 1324/1483/986 +f 1331/1164/987 1326/1502/988 1328/1507/987 +f 1317/1508/989 1306/1500/990 1303/1504/989 +f 1310/1491/984 1313/2597/825 1312/2596/825 +f 1303/1504/989 1313/2597/825 1317/1508/989 +f 1268/1343/829 1263/1451/852 1265/1352/829 +f 1039/2741/843 1036/2904/825 1037/2902/825 +f 1343/1522/832 1337/1520/936 1340/1511/936 +f 1366/1527/930 1363/2593/827 1362/2603/827 +f 1060/2726/832 1046/2899/875 1044/2905/832 +f 1329/1166/988 1327/1503/829 1326/1502/988 +f 1345/1515/933 1343/1522/832 1342/1480/933 +f 1440/2906/991 1444/2907/992 1443/2908/993 +f 1507/2909/994 1370/2910/995 1511/2911/996 +f 1385/2912/997 1377/2913/908 1389/2914/828 +f 1381/2915/831 1373/2916/998 1375/2917/999 +f 1459/2918/1000 1464/2919/1001 1453/2920/1002 +f 1403/2921/1003 1416/2922/1004 1405/2923/1005 +f 1386/2924/1006 1387/2925/830 1371/2926/1007 +f 1416/2922/1004 1407/2927/1008 1405/2923/1005 +f 1510/2928/849 1385/2912/997 1389/2914/828 +f 1500/2929/1009 1507/2930/994 1511/2931/996 +f 1465/2932/1010 1458/2933/1011 1454/2934/1012 +f 1442/2935/875 1446/2936/1013 1435/2937/1014 +f 1454/2934/1012 1464/2919/1001 1465/2932/1010 +f 1381/2938/831 1375/2939/999 1392/2940/1015 +f 1394/2941/1016 1405/2942/1005 1396/2943/1017 +f 1479/2944/1018 1462/2945/1019 1470/2946/1020 +f 1371/2947/1007 1387/2948/830 1390/2949/1021 +f 1372/2950/1022 1395/2951/1023 1379/2952/1024 +f 1377/2913/908 1394/2941/1016 1378/2953/1025 +f 1505/2954/1026 1496/2955/852 1494/2956/1027 +f 1473/2957/1028 1467/2958/1029 1463/2959/1030 +f 1463/2960/1030 1457/2961/1031 1456/2962/1032 +f 1393/2963/825 1399/2964/1033 1400/2965/843 +f 1476/2966/1034 1470/2946/1020 1467/2958/1029 +f 1381/2967/831 1392/2968/1015 1402/2969/1035 +f 1469/2738/938 1471/2970/1036 1464/2971/1001 +f 1379/2952/1024 1397/2972/1037 1384/2973/1038 +f 1390/2974/1021 1387/2975/830 1406/2976/1039 +f 1464/2971/1001 1474/2977/979 1465/2978/1010 +f 1406/2979/1039 1387/2980/830 1408/2981/1040 +f 1416/2982/1004 1420/2983/1041 1409/2984/1042 +f 1455/2985/901 1469/2738/938 1459/2918/1000 +f 1473/2986/1028 1487/2987/1043 1476/2988/1034 +f 1409/2984/1042 1423/2989/1044 1413/2990/1045 +f 1472/2991/1046 1486/2992/833 1475/2993/855 +f 1382/2994/1047 1374/2995/1048 1388/2996/1049 +f 1381/2997/831 1402/2998/1035 1413/2999/1045 +f 1478/2737/937 1482/3000/1050 1471/3001/1036 +f 1480/3002/1051 1472/2991/1046 1479/3003/1018 +f 1446/3004/1013 1453/3005/1002 1448/3006/1052 +f 1428/3007/1053 1435/2937/1014 1438/3008/1054 +f 1408/3009/1040 1387/3010/830 1419/3011/1055 +f 1474/2841/979 1482/3000/1050 1485/2839/977 +f 1496/2955/852 1488/3012/1056 1486/2992/833 +f 1406/2979/1039 1412/3013/1057 1401/3014/1058 +f 1451/3015/1059 1437/3016/1060 1441/3017/1061 +f 1410/3018/1062 1421/3019/845 1411/3020/826 +f 1401/3014/1058 1415/3021/1063 1404/3022/1064 +f 1381/3023/831 1413/2990/1045 1423/2989/1044 +f 1438/3008/1054 1431/3024/1065 1428/3007/1053 +f 1381/3025/831 1423/3026/1044 1427/3027/1066 +f 1502/3028/1067 1508/3029/1068 1504/3030/1069 +f 1514/3031/1070 1505/2954/1026 1503/3032/1071 +f 1419/3033/1055 1387/3034/830 1430/3035/1072 +f 1433/3036/1073 1425/3037/1074 1422/3038/1075 +f 1502/3028/1067 1510/2928/849 1513/3039/1076 +f 1422/3038/1075 1430/3035/1072 1433/3036/1073 +f 1421/3019/845 1429/3040/1077 1432/3041/832 +f 1432/3041/832 1439/3042/1078 1442/2935/875 +f 1508/3043/1068 1388/3044/1049 1509/3045/1079 +f 1381/3046/831 1427/3047/1066 1437/3048/1060 +f 1508/3043/1068 1376/3049/1080 1382/3050/1047 +f 1417/3051/1081 1431/3052/1065 1420/3053/1041 +f 1430/3054/1072 1387/3055/830 1440/3056/991 +f 1396/2943/1017 1407/3057/1008 1398/3058/1082 +f 1393/2963/825 1403/2921/1003 1394/2941/1016 +f 1398/3059/1082 1375/2939/999 1374/3060/1048 +f 1433/3061/1073 1440/3056/991 1443/3062/993 +f 1444/3063/992 1456/3064/1032 1457/3065/1031 +f 1451/3066/1059 1458/3067/1011 1445/3068/1083 +f 1449/3069/1084 1442/2935/875 1439/3042/1078 +f 1447/3070/1085 1457/3065/1031 1460/3071/1086 +f 1381/3072/831 1437/3016/1060 1445/3073/1083 +f 1447/3070/1085 1461/3074/1087 1449/3075/1084 +f 1460/3076/1086 1462/2945/1019 1461/3074/1087 +f 1440/2906/991 1387/3077/830 1450/3078/1088 +f 1448/3006/1052 1454/3079/1012 1451/3066/1059 +f 1452/3080/838 1459/2918/1000 1446/3004/1013 +f 1476/2988/1034 1480/3002/1051 1479/3003/1018 +f 1425/3037/1074 1429/3040/1077 1418/3081/1089 +f 1419/3011/1055 1412/3082/1057 1408/3009/1040 +f 1388/3044/1049 1512/3083/1090 1509/3045/1079 +f 1475/2993/855 1488/3012/1056 1478/2737/937 +f 1503/3032/1071 1511/2931/996 1514/3031/1070 +f 1381/3084/831 1445/3068/1083 1458/3067/1011 +f 1404/3085/1064 1397/2972/1037 1395/3086/1023 +f 1447/3087/1085 1439/3042/1078 1436/3088/1091 +f 1450/3089/1088 1387/3090/830 1456/3064/1032 +f 1491/3091/1092 1504/3092/1069 1493/3093/1093 +f 1456/2962/1032 1387/3094/830 1463/2960/1030 +f 1487/3095/1043 1492/3096/1094 1480/3097/1051 +f 1414/3098/1095 1421/3019/845 1424/3099/1096 +f 1506/3100/1097 1512/3101/1090 1501/3102/1098 +f 1497/3103/1099 1499/3104/1100 1500/3105/1009 +f 1510/2928/849 1376/3049/1080 1513/3039/1076 +f 1489/3106/1101 1504/3092/1069 1506/3107/1097 +f 1381/3108/831 1458/2933/1011 1468/3109/1102 +f 1435/2937/1014 1448/3110/1052 1438/3111/1054 +f 1429/3040/1077 1436/3112/1091 1439/3042/1078 +f 1383/3113/1103 1394/2941/1016 1396/3114/1017 +f 1463/2959/1030 1387/3115/830 1473/2957/1028 +f 1395/3086/1023 1401/3116/1058 1404/3085/1064 +f 1432/3041/832 1435/2937/1014 1434/3117/1104 +f 1420/3053/1041 1427/3027/1066 1423/3026/1044 +f 1398/3058/1082 1402/2969/1035 1392/2968/1015 +f 1466/2736/827 1472/2991/1046 1475/2993/855 +f 1396/3114/1017 1374/3060/1048 1383/3113/1103 +f 1381/3118/831 1468/3119/1102 1477/3120/978 +f 1415/3121/1063 1422/3122/1075 1425/3123/1074 +f 1381/3124/831 1477/2840/978 1481/3125/1105 +f 1382/2994/1047 1378/2953/1025 1383/3126/1103 +f 1380/3127/1106 1384/2973/1038 1385/2912/997 +f 1473/2986/1028 1387/3128/830 1484/3129/1107 +f 1372/3130/1022 1380/3127/1106 1370/3131/995 +f 1399/2964/1033 1411/3020/826 1400/2965/843 +f 1431/3024/1065 1437/3048/1060 1427/3047/1066 +f 1409/3132/1042 1402/2998/1035 1407/2927/1008 +f 1411/3020/826 1403/2921/1003 1400/2965/843 +f 1495/3133/1108 1487/3095/1043 1484/3134/1107 +f 1397/2972/1037 1377/2913/908 1384/2973/1038 +f 1485/3135/977 1493/3136/1093 1489/3137/1101 +f 1381/3138/831 1481/3139/1105 1490/3140/1109 +f 1414/3098/1095 1417/3141/1081 1416/2982/1004 +f 1415/3021/1063 1399/2964/1033 1404/3022/1064 +f 1484/3134/1107 1387/3142/830 1495/3133/1108 +f 1433/3061/1073 1436/3112/1091 1426/3143/1110 +f 1461/3074/1087 1452/3080/838 1449/3075/1084 +f 1371/2947/1007 1391/3144/1111 1372/2950/1022 +f 1462/2945/1019 1455/2985/901 1461/3074/1087 +f 1506/3107/1097 1490/3145/1109 1489/3106/1101 +f 1485/3135/977 1490/3140/1109 1481/3139/1105 +f 1486/2992/833 1494/2956/1027 1496/2955/852 +f 1504/3030/1069 1509/3146/1079 1506/3100/1097 +f 1381/3147/831 1490/3145/1109 1501/3148/1098 +f 1492/3149/1094 1505/2954/1026 1494/2956/1027 +f 1514/3150/1070 1385/2912/997 1515/3151/1112 +f 1495/3152/1108 1387/3153/830 1499/3104/1100 +f 1497/3103/1099 1503/3154/1071 1492/3149/1094 +f 1499/3155/1100 1387/3156/830 1507/2930/994 +f 1443/2908/993 1447/3087/1085 1436/3088/1091 +f 1491/3091/1092 1498/3157/829 1502/3028/1067 +f 1465/2978/1010 1477/3120/978 1468/3119/1102 +f 1406/2976/1039 1391/3158/1111 1390/2974/1021 +f 1505/2954/1026 1510/2928/849 1498/3157/829 +f 1441/3017/1061 1448/3110/1052 1451/3015/1059 +f 1381/3159/831 1501/3102/1098 1512/3101/1090 +f 1480/3097/1051 1494/2956/1027 1483/3160/1113 +f 1434/3117/1104 1417/3051/1081 1424/3099/1096 +f 1425/3123/1074 1410/3018/1062 1415/3121/1063 +f 1507/2909/994 1387/3161/830 1386/3162/1006 +f 1370/2910/995 1514/3150/1070 1511/2911/996 +f 1421/3019/845 1434/3117/1104 1424/3099/1096 +f 1370/3131/995 1371/2926/1007 1372/3130/1022 +f 1388/2996/1049 1375/2917/999 1373/2916/998 +f 1376/3049/1080 1377/2913/908 1378/2953/1025 +f 1457/2961/1031 1470/3163/1020 1460/3076/1086 +f 1381/3164/831 1512/3083/1090 1373/3165/998 +f 1488/3012/1056 1493/3136/1093 1482/3166/1050 +f 1067/2746/942 1071/2750/942 1068/2747/943 +f 1070/2749/944 1073/2752/943 1068/2747/943 +f 1072/2751/944 1074/2848/943 1073/2752/943 +f 1072/2756/944 1070/2760/944 1075/2757/948 +f 1077/2759/947 1079/2762/948 1075/2757/948 +f 1078/2761/947 1080/2820/948 1079/2762/948 +f 1078/2755/947 1077/2768/947 1081/2766/945 +f 1083/2767/946 1084/2769/945 1081/2766/945 +f 1064/2754/946 1085/3167/945 1084/2769/945 +f 1064/2773/946 1083/2776/946 1086/2774/954 +f 1083/2776/946 1090/2779/955 1088/2777/954 +f 1089/2778/955 1091/2838/954 1088/2777/954 +f 1089/2783/955 1090/2786/955 1092/2784/958 +f 1090/2786/955 1095/2789/959 1094/2787/958 +f 1065/2788/959 1096/2873/958 1094/2787/958 +f 1065/2793/959 1095/2797/959 1097/2794/962 +f 1099/2796/963 1101/2799/962 1097/2794/962 +f 1100/2798/963 1102/3168/962 1101/2799/962 +f 1100/2803/963 1099/2807/963 1103/2804/966 +f 1105/2806/967 1106/2809/966 1103/2804/966 +f 1066/2808/967 1107/3169/966 1106/2809/966 +f 1066/2813/967 1105/2817/967 1108/2814/970 +f 1110/2816/971 1112/2819/970 1108/2814/970 +f 1111/2818/971 1113/2853/970 1112/2819/970 +f 1111/2821/971 1110/2825/971 1114/2822/972 +f 1116/2824/973 1118/2827/972 1114/2822/972 +f 1117/2826/973 1119/3170/972 1118/2827/972 +f 1117/2831/973 1116/2834/973 1120/2832/976 +f 1116/2834/973 1071/2837/942 1122/2835/976 +f 1067/2836/942 1123/3171/976 1122/2835/976 +f 1127/2842/975 1517/2866/980 1128/2843/980 +f 1128/2843/980 1131/2846/980 1130/2845/952 +f 1131/2846/980 1132/2867/980 1126/2847/952 +f 1126/2771/952 1137/3172/951 1133/2849/951 +f 1133/2849/951 1135/2852/951 1134/2851/953 +f 1135/2852/951 1518/2770/951 1136/2772/953 +f 1136/2854/953 1519/2763/949 1138/2855/949 +f 1138/2855/949 1140/2858/949 1139/2857/950 +f 1140/2858/949 1141/2765/949 1125/2764/950 +f 1125/2801/950 1520/3173/964 1142/2862/964 +f 1139/2863/950 1142/2862/964 1143/2864/964 +f 1143/2864/964 1146/2800/964 1145/2802/965 +f 1145/2868/965 1521/2743/940 1147/2869/940 +f 1144/2870/965 1147/2869/940 1148/2871/940 +f 1148/2871/940 1151/2745/940 1150/2744/941 +f 1150/2782/941 1156/2781/957 1152/2874/957 +f 1152/2874/957 1154/2877/957 1153/2876/956 +f 1154/2877/957 1522/3174/957 1155/2780/956 +f 1155/2878/956 1523/2810/968 1157/2879/968 +f 1153/2880/956 1157/2879/968 1158/2881/968 +f 1158/2881/968 1160/2812/968 1124/2811/969 +f 1124/2883/969 1524/2859/981 1161/2884/981 +f 1161/2884/981 1163/2887/981 1162/2886/982 +f 1163/2887/981 1165/2861/981 1164/2860/982 +f 1164/2888/982 1525/2790/960 1166/2889/960 +f 1162/2890/982 1166/2889/960 1167/2891/960 +f 1167/2891/960 1170/2792/960 1169/2791/961 +f 1169/2893/961 1526/2828/974 1171/2894/974 +f 1171/2894/974 1172/2897/974 1129/2896/975 +f 1172/2897/974 1173/2830/974 1127/2829/975 +f 1252/1329/832 1250/1321/845 1247/1461/845 +f 1262/1366/855 1260/1428/827 1257/1355/827 +f 1050/2715/901 1049/2725/901 1047/2716/838 +f 1244/1305/825 1241/1296/825 1242/1397/908 +f 1058/2718/852 1057/2901/852 1055/2719/833 +f 1366/1527/930 1360/1526/931 1361/1497/931 +f 1202/1423/829 1201/1458/829 1199/2571/852 +f 1260/1428/827 1258/1425/901 1255/1344/901 +f 1266/2572/852 1264/1364/833 1261/1419/833 +f 1035/2721/908 1033/2903/908 1034/2722/828 +f 1256/2560/838 1251/1318/875 1254/1433/875 +f 1242/1397/908 1239/1399/828 1240/1304/828 +f 1250/1321/845 1248/1323/826 1245/1415/826 +f 1052/2724/827 1051/2732/827 1049/2725/901 +f 1060/2726/832 1044/2905/832 1042/2727/845 +f 1181/1313/843 1180/1311/843 1178/1310/825 +f 1174/2574/828 1176/2576/828 1203/1382/849 +f 1347/1479/932 1344/1513/932 1345/1515/933 +f 1032/2723/828 1034/2722/828 1062/2729/849 +f 1362/2603/827 1363/2593/827 1355/1477/934 +f 1269/1341/849 1268/1343/829 1265/1352/829 +f 1351/1530/935 1340/1511/936 1337/1520/936 +f 1239/1399/828 1269/1341/849 1267/1302/849 +f 1246/1540/843 1241/1296/825 1244/1305/825 +f 1190/2564/838 1189/2586/838 1188/1374/875 +f 1185/1381/845 1184/1455/845 1182/1412/826 +f 1054/2731/855 1053/2733/855 1051/2732/827 +f 1264/1364/833 1262/1366/855 1259/1357/855 +f 1056/2720/833 1055/2719/833 1053/2733/855 +f 1200/1424/852 1199/2571/852 1197/1367/833 +f 1063/2730/849 1062/2729/849 1059/2734/829 +f 1466/2736/827 1475/2993/855 1478/2737/937 +f 1041/2739/826 1040/2742/826 1038/2740/843 +f 1043/2728/845 1042/2727/845 1040/2742/826 +f 1248/1323/826 1246/1540/843 1243/1413/843 +f 1179/1333/825 1178/1310/825 1175/1401/908 +f 1217/1380/832 1186/1373/832 1184/1455/845 +f 1254/1433/875 1251/1318/875 1252/1329/832 +f 1369/1476/939 1356/1517/939 1353/1533/934 +f 1521/2743/940 1145/2868/965 1150/2744/941 +f 1082/2753/945 1085/3167/945 1064/2754/946 +f 1519/2763/949 1136/2854/953 1125/2764/950 +f 1518/2770/951 1137/3172/951 1126/2771/952 +f 1155/2780/956 1522/3174/957 1156/2781/957 +f 1525/2790/960 1164/2888/982 1169/2791/961 +f 1146/2800/964 1520/3173/964 1125/2801/950 +f 1523/2810/968 1155/2878/956 1124/2811/969 +f 1072/2756/944 1076/2758/948 1080/2820/948 +f 1526/2828/974 1169/2893/961 1127/2829/975 +f 1064/2773/946 1087/2775/954 1091/2838/954 +f 1485/2839/977 1481/3125/1105 1477/2840/978 +f 1072/2751/944 1067/2746/942 1069/2748/943 +f 1111/2818/971 1066/2813/967 1109/2815/970 +f 1524/2859/981 1124/2883/969 1164/2860/982 +f 1517/2866/980 1127/2842/975 1126/2847/952 +f 1065/2788/959 1089/2783/955 1093/2785/958 +f 1098/2795/962 1102/3168/962 1100/2798/963 +f 1104/2805/966 1107/3169/966 1066/2808/967 +f 1115/2823/972 1119/3170/972 1117/2826/973 +f 1121/2833/976 1123/3171/976 1067/2836/942 +f 1048/2898/838 1047/3175/838 1046/2899/875 +f 1258/1425/901 1256/2583/838 1253/2567/838 +f 1316/1505/983 1311/1523/983 1308/1495/984 +f 1217/1380/832 1187/1336/875 1188/1374/875 +f 1061/2735/829 1059/2734/829 1057/2901/852 +f 1037/2902/825 1036/2904/825 1033/2903/908 +f 1183/2559/826 1182/1412/826 1180/1311/843 +f 1196/2562/855 1195/1361/855 1193/1351/827 +f 1194/1325/827 1193/1351/827 1191/1350/901 +f 1204/1464/849 1203/1382/849 1201/1458/829 +f 1198/1359/833 1197/1367/833 1195/1361/855 +f 1177/1334/908 1175/1401/908 1176/2576/828 +f 1192/1339/901 1191/1350/901 1189/2585/838 +f 1335/1489/985 1323/1490/985 1324/1483/986 +f 1327/1503/829 1322/1472/829 1321/1471/986 +f 1331/1164/987 1329/1166/988 1326/1502/988 +f 1317/1508/989 1305/1534/990 1306/1500/990 +f 1310/1491/984 1308/1495/984 1313/2597/825 +f 1303/1504/989 1312/2596/825 1313/2597/825 +f 1268/1343/829 1266/2572/852 1263/1451/852 +f 1039/2741/843 1038/2740/843 1036/2904/825 +f 1343/1522/832 1338/1521/832 1337/1520/936 +f 1366/1527/930 1358/1486/930 1363/2593/827 +f 1060/2726/832 1045/2900/875 1046/2899/875 +f 1329/1166/988 1322/1472/829 1327/1503/829 +f 1345/1515/933 1338/1521/832 1343/1522/832 +f 1440/2906/991 1450/3078/1088 1444/2907/992 +f 1507/2909/994 1386/3162/1006 1370/2910/995 +f 1385/2912/997 1384/2973/1038 1377/2913/908 +f 1459/2918/1000 1469/2738/938 1464/2919/1001 +f 1403/2921/1003 1414/3098/1095 1416/2922/1004 +f 1416/2922/1004 1409/3132/1042 1407/2927/1008 +f 1510/2928/849 1515/3151/1112 1385/2912/997 +f 1500/2929/1009 1499/3155/1100 1507/2930/994 +f 1465/2932/1010 1468/3109/1102 1458/2933/1011 +f 1442/2935/875 1452/3176/838 1446/2936/1013 +f 1454/2934/1012 1453/2920/1002 1464/2919/1001 +f 1394/2941/1016 1403/2921/1003 1405/2942/1005 +f 1479/2944/1018 1472/2991/1046 1462/2945/1019 +f 1372/2950/1022 1391/3144/1111 1395/2951/1023 +f 1377/2913/908 1393/2963/825 1394/2941/1016 +f 1505/2954/1026 1498/3157/829 1496/2955/852 +f 1473/2957/1028 1476/2966/1034 1467/2958/1029 +f 1463/2960/1030 1467/3177/1029 1457/2961/1031 +f 1393/2963/825 1397/2972/1037 1399/2964/1033 +f 1476/2966/1034 1479/2944/1018 1470/2946/1020 +f 1469/2738/938 1478/2737/937 1471/2970/1036 +f 1379/2952/1024 1395/2951/1023 1397/2972/1037 +f 1464/2971/1001 1471/2970/1036 1474/2977/979 +f 1416/2982/1004 1417/3141/1081 1420/2983/1041 +f 1455/2985/901 1466/2736/827 1469/2738/938 +f 1473/2986/1028 1484/3129/1107 1487/2987/1043 +f 1409/2984/1042 1420/2983/1041 1423/2989/1044 +f 1472/2991/1046 1483/3160/1113 1486/2992/833 +f 1382/2994/1047 1383/3126/1103 1374/2995/1048 +f 1478/2737/937 1488/3012/1056 1482/3000/1050 +f 1480/3002/1051 1483/3160/1113 1472/2991/1046 +f 1446/3004/1013 1459/2918/1000 1453/3005/1002 +f 1428/3007/1053 1434/3117/1104 1435/2937/1014 +f 1474/2841/979 1471/3001/1036 1482/3000/1050 +f 1496/2955/852 1491/3091/1092 1488/3012/1056 +f 1406/2979/1039 1408/2981/1040 1412/3013/1057 +f 1451/3015/1059 1445/3073/1083 1437/3016/1060 +f 1410/3018/1062 1418/3081/1089 1421/3019/845 +f 1401/3014/1058 1412/3013/1057 1415/3021/1063 +f 1438/3008/1054 1441/3178/1061 1431/3024/1065 +f 1502/3028/1067 1513/3039/1076 1508/3029/1068 +f 1514/3031/1070 1515/3151/1112 1505/2954/1026 +f 1433/3036/1073 1426/3179/1110 1425/3037/1074 +f 1502/3028/1067 1498/3157/829 1510/2928/849 +f 1422/3038/1075 1419/3033/1055 1430/3035/1072 +f 1421/3019/845 1418/3081/1089 1429/3040/1077 +f 1432/3041/832 1429/3040/1077 1439/3042/1078 +f 1508/3043/1068 1382/3050/1047 1388/3044/1049 +f 1508/3043/1068 1513/3039/1076 1376/3049/1080 +f 1417/3051/1081 1428/3180/1053 1431/3052/1065 +f 1396/2943/1017 1405/2942/1005 1407/3057/1008 +f 1393/2963/825 1400/2965/843 1403/2921/1003 +f 1398/3059/1082 1392/2940/1015 1375/2939/999 +f 1433/3061/1073 1430/3054/1072 1440/3056/991 +f 1444/3063/992 1450/3089/1088 1456/3064/1032 +f 1451/3066/1059 1454/3079/1012 1458/3067/1011 +f 1449/3069/1084 1452/3176/838 1442/2935/875 +f 1447/3070/1085 1444/3063/992 1457/3065/1031 +f 1447/3070/1085 1460/3071/1086 1461/3074/1087 +f 1460/3076/1086 1470/3163/1020 1462/2945/1019 +f 1448/3006/1052 1453/3005/1002 1454/3079/1012 +f 1452/3080/838 1455/2985/901 1459/2918/1000 +f 1476/2988/1034 1487/2987/1043 1480/3002/1051 +f 1425/3037/1074 1426/3179/1110 1429/3040/1077 +f 1419/3011/1055 1422/3122/1075 1412/3082/1057 +f 1388/3044/1049 1373/3165/998 1512/3083/1090 +f 1475/2993/855 1486/2992/833 1488/3012/1056 +f 1503/3032/1071 1500/2929/1009 1511/2931/996 +f 1404/3085/1064 1399/2964/1033 1397/2972/1037 +f 1447/3087/1085 1449/3069/1084 1439/3042/1078 +f 1491/3091/1092 1502/3028/1067 1504/3092/1069 +f 1487/3095/1043 1497/3181/1099 1492/3096/1094 +f 1414/3098/1095 1411/3020/826 1421/3019/845 +f 1506/3100/1097 1509/3146/1079 1512/3101/1090 +f 1497/3103/1099 1495/3152/1108 1499/3104/1100 +f 1510/2928/849 1389/2914/828 1376/3049/1080 +f 1489/3106/1101 1493/3093/1093 1504/3092/1069 +f 1435/2937/1014 1446/2936/1013 1448/3110/1052 +f 1429/3040/1077 1426/3143/1110 1436/3112/1091 +f 1383/3113/1103 1378/2953/1025 1394/2941/1016 +f 1395/3086/1023 1391/3158/1111 1401/3116/1058 +f 1432/3041/832 1442/2935/875 1435/2937/1014 +f 1420/3053/1041 1431/3052/1065 1427/3027/1066 +f 1398/3058/1082 1407/3057/1008 1402/2969/1035 +f 1466/2736/827 1462/2945/1019 1472/2991/1046 +f 1396/3114/1017 1398/3059/1082 1374/3060/1048 +f 1415/3121/1063 1412/3082/1057 1422/3122/1075 +f 1382/2994/1047 1376/3049/1080 1378/2953/1025 +f 1380/3127/1106 1379/3182/1024 1384/2973/1038 +f 1372/3130/1022 1379/3182/1024 1380/3127/1106 +f 1399/2964/1033 1410/3018/1062 1411/3020/826 +f 1431/3024/1065 1441/3178/1061 1437/3048/1060 +f 1409/3132/1042 1413/2999/1045 1402/2998/1035 +f 1411/3020/826 1414/3098/1095 1403/2921/1003 +f 1495/3133/1108 1497/3181/1099 1487/3095/1043 +f 1397/2972/1037 1393/2963/825 1377/2913/908 +f 1485/3135/977 1482/3166/1050 1493/3136/1093 +f 1414/3098/1095 1424/3099/1096 1417/3141/1081 +f 1415/3021/1063 1410/3018/1062 1399/2964/1033 +f 1433/3061/1073 1443/3062/993 1436/3112/1091 +f 1461/3074/1087 1455/2985/901 1452/3080/838 +f 1371/2947/1007 1390/2949/1021 1391/3144/1111 +f 1462/2945/1019 1466/2736/827 1455/2985/901 +f 1506/3107/1097 1501/3148/1098 1490/3145/1109 +f 1485/3135/977 1489/3137/1101 1490/3140/1109 +f 1486/2992/833 1483/3160/1113 1494/2956/1027 +f 1504/3030/1069 1508/3029/1068 1509/3146/1079 +f 1492/3149/1094 1503/3154/1071 1505/2954/1026 +f 1514/3150/1070 1380/3183/1106 1385/2912/997 +f 1497/3103/1099 1500/3105/1009 1503/3154/1071 +f 1443/2908/993 1444/2907/992 1447/3087/1085 +f 1491/3091/1092 1496/2955/852 1498/3157/829 +f 1465/2978/1010 1474/2977/979 1477/3120/978 +f 1406/2976/1039 1401/3116/1058 1391/3158/1111 +f 1505/2954/1026 1515/3151/1112 1510/2928/849 +f 1441/3017/1061 1438/3111/1054 1448/3110/1052 +f 1480/3097/1051 1492/3096/1094 1494/2956/1027 +f 1434/3117/1104 1428/3180/1053 1417/3051/1081 +f 1425/3123/1074 1418/3081/1089 1410/3018/1062 +f 1370/2910/995 1380/3183/1106 1514/3150/1070 +f 1421/3019/845 1432/3041/832 1434/3117/1104 +f 1370/3131/995 1386/2924/1006 1371/2926/1007 +f 1388/2996/1049 1374/2995/1048 1375/2917/999 +f 1376/3049/1080 1389/2914/828 1377/2913/908 +f 1457/2961/1031 1467/3177/1029 1470/3163/1020 +f 1488/3012/1056 1491/3091/1092 1493/3136/1093 diff --git a/src/main/resources/assets/hbm/models/ivymike.obj b/src/main/resources/assets/hbm/models/bombs/ivymike.obj similarity index 100% rename from src/main/resources/assets/hbm/models/ivymike.obj rename to src/main/resources/assets/hbm/models/bombs/ivymike.obj diff --git a/src/main/resources/assets/hbm/models/lilboy1.obj b/src/main/resources/assets/hbm/models/bombs/lilboy.obj similarity index 100% rename from src/main/resources/assets/hbm/models/lilboy1.obj rename to src/main/resources/assets/hbm/models/bombs/lilboy.obj diff --git a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj b/src/main/resources/assets/hbm/models/bombs/n45_globe.obj deleted file mode 100644 index 1034f8a3e9..0000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj +++ /dev/null @@ -1,1766 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_globe.blend' -# www.blender.org -o Icosphere -v 0.000000 -0.500000 0.000000 -v 0.361804 -0.223610 0.262863 -v -0.138194 -0.223610 0.425325 -v -0.447213 -0.223608 0.000000 -v -0.138194 -0.223610 -0.425325 -v 0.361804 -0.223610 -0.262863 -v 0.138194 0.223610 0.425325 -v -0.361804 0.223610 0.262863 -v -0.361804 0.223610 -0.262863 -v 0.138194 0.223610 -0.425325 -v 0.447213 0.223608 0.000000 -v 0.000000 0.500000 0.000000 -v -0.116411 -0.328760 0.358282 -v -0.081228 -0.425327 0.249998 -v -0.038803 -0.483975 0.119426 -v 0.101590 -0.483975 0.073809 -v 0.212661 -0.425327 0.154506 -v 0.304773 -0.328759 0.221428 -v 0.265970 -0.251151 0.340856 -v 0.131434 -0.262869 0.404506 -v -0.014820 -0.251151 0.432092 -v 0.406365 -0.251150 -0.147619 -v 0.425324 -0.262868 0.000000 -v 0.406365 -0.251150 0.147619 -v 0.101590 -0.483975 -0.073809 -v 0.212661 -0.425327 -0.154506 -v 0.304773 -0.328759 -0.221428 -v -0.376721 -0.328757 0.000000 -v -0.262865 -0.425326 0.000000 -v -0.125573 -0.483974 0.000000 -v -0.241986 -0.251151 0.358282 -v -0.344095 -0.262868 0.249998 -v -0.415525 -0.251149 0.119427 -v -0.116411 -0.328760 -0.358282 -v -0.081228 -0.425327 -0.249998 -v -0.038803 -0.483975 -0.119426 -v -0.415525 -0.251149 -0.119427 -v -0.344095 -0.262868 -0.249998 -v -0.241986 -0.251151 -0.358282 -v -0.014820 -0.251151 -0.432092 -v 0.131434 -0.262869 -0.404506 -v 0.265970 -0.251151 -0.340856 -v 0.478313 0.125575 0.073809 -v 0.475529 -0.000000 0.154506 -v 0.430349 -0.125575 0.221429 -v 0.430349 -0.125575 -0.221429 -v 0.475529 0.000000 -0.154506 -v 0.478313 0.125575 -0.073809 -v 0.077608 0.125576 0.477711 -v 0.000000 -0.000000 0.500000 -v -0.077608 -0.125576 0.477711 -v 0.343579 -0.125576 0.340858 -v 0.293893 0.000000 0.404508 -v 0.218003 0.125576 0.432094 -v -0.430349 0.125575 0.221429 -v -0.475529 -0.000000 0.154506 -v -0.478313 -0.125575 0.073809 -v -0.218003 -0.125576 0.432094 -v -0.293893 0.000000 0.404508 -v -0.343579 0.125576 0.340858 -v -0.343579 0.125576 -0.340858 -v -0.293893 -0.000000 -0.404508 -v -0.218003 -0.125576 -0.432094 -v -0.478313 -0.125575 -0.073809 -v -0.475529 0.000000 -0.154506 -v -0.430349 0.125575 -0.221429 -v 0.218003 0.125576 -0.432094 -v 0.293893 -0.000000 -0.404508 -v 0.343579 -0.125576 -0.340858 -v -0.077608 -0.125576 -0.477711 -v 0.000000 0.000000 -0.500000 -v 0.077608 0.125576 -0.477711 -v 0.415525 0.251149 0.119427 -v 0.344095 0.262868 0.249998 -v 0.241986 0.251151 0.358282 -v 0.014820 0.251151 0.432092 -v -0.131434 0.262869 0.404506 -v -0.265970 0.251151 0.340856 -v -0.406365 0.251150 0.147619 -v -0.425324 0.262868 0.000000 -v -0.406365 0.251150 -0.147619 -v -0.265970 0.251151 -0.340856 -v -0.131434 0.262869 -0.404506 -v 0.014820 0.251151 -0.432092 -v 0.241986 0.251151 -0.358282 -v 0.344095 0.262868 -0.249998 -v 0.415525 0.251149 -0.119427 -v 0.038803 0.483975 0.119426 -v 0.081228 0.425327 0.249998 -v 0.116411 0.328760 0.358282 -v 0.376721 0.328757 0.000000 -v 0.262865 0.425326 0.000000 -v 0.125573 0.483974 0.000000 -v -0.101590 0.483975 0.073809 -v -0.212661 0.425327 0.154506 -v -0.304773 0.328759 0.221428 -v -0.101590 0.483975 -0.073809 -v -0.212661 0.425327 -0.154506 -v -0.304773 0.328759 -0.221428 -v 0.038803 0.483975 -0.119426 -v 0.081228 0.425327 -0.249998 -v 0.116411 0.328760 -0.358282 -v 0.180900 0.447215 -0.131431 -v 0.319097 0.361805 -0.131432 -v 0.223605 0.361806 -0.262864 -v -0.069099 0.447215 -0.212660 -v -0.026395 0.361806 -0.344092 -v -0.180902 0.361806 -0.293889 -v -0.223605 0.447215 0.000000 -v -0.335408 0.361805 -0.081229 -v -0.335408 0.361805 0.081229 -v -0.069099 0.447215 0.212660 -v -0.180902 0.361806 0.293889 -v -0.026395 0.361806 0.344092 -v 0.180900 0.447215 0.131431 -v 0.223605 0.361806 0.262864 -v 0.319097 0.361805 0.131432 -v 0.430902 0.138198 -0.212661 -v 0.404510 0.000000 -0.293891 -v 0.335410 0.138199 -0.344095 -v -0.069099 0.138199 -0.475528 -v -0.154508 -0.000000 -0.475528 -v -0.223608 0.138199 -0.425324 -v -0.473607 0.138198 -0.081229 -v -0.500000 0.000000 0.000000 -v -0.473606 0.138198 0.081229 -v -0.223608 0.138198 0.425324 -v -0.154509 -0.000000 0.475528 -v -0.069100 0.138198 0.475528 -v 0.335410 0.138198 0.344095 -v 0.404509 -0.000001 0.293891 -v 0.430902 0.138197 0.212662 -v 0.154509 -0.000000 -0.475528 -v 0.223608 -0.138199 -0.425324 -v 0.069100 -0.138199 -0.475527 -v -0.404509 -0.000000 -0.293892 -v -0.335409 -0.138199 -0.344095 -v -0.430902 -0.138198 -0.212662 -v -0.404509 0.000000 0.293892 -v -0.430902 -0.138198 0.212662 -v -0.335410 -0.138199 0.344095 -v 0.154509 0.000000 0.475528 -v 0.069100 -0.138199 0.475527 -v 0.223608 -0.138199 0.425324 -v 0.500000 0.000000 0.000000 -v 0.473607 -0.138198 0.081229 -v 0.473607 -0.138198 -0.081229 -v 0.180902 -0.361806 -0.293890 -v 0.069098 -0.447215 -0.212661 -v 0.026395 -0.361805 -0.344093 -v -0.223605 -0.361806 -0.262864 -v -0.180901 -0.447214 -0.131431 -v -0.319097 -0.361805 -0.131431 -v -0.319097 -0.361805 0.131432 -v -0.180901 -0.447214 0.131432 -v -0.223605 -0.361805 0.262864 -v 0.335409 -0.361805 -0.081228 -v 0.335409 -0.361805 0.081229 -v 0.223605 -0.447214 0.000000 -v 0.026395 -0.361806 0.344093 -v 0.069099 -0.447215 0.212660 -v 0.180902 -0.361805 0.293890 -vt 0.608486 0.627808 -vt 0.608486 0.706299 -vt 0.534124 0.652932 -vt 0.310435 0.483432 -vt 0.374204 0.437666 -vt 0.374204 0.529197 -vt 0.426628 0.841439 -vt 0.401505 0.915800 -vt 0.348137 0.841439 -vt 0.907272 0.920733 -vt 0.828780 0.920733 -vt 0.882148 0.846372 -vt 0.874545 0.689455 -vt 0.828780 0.625687 -vt 0.920309 0.625687 -vt 0.772490 0.167110 -vt 0.850981 0.167110 -vt 0.797614 0.241473 -vt 0.769801 0.100887 -vt 0.848293 0.100887 -vt 0.794924 0.175250 -vt 0.815700 0.692491 -vt 0.894191 0.692491 -vt 0.840822 0.766854 -vt 0.547368 0.720701 -vt 0.611139 0.674935 -vt 0.611139 0.766466 -vt 0.549115 0.146651 -vt 0.612885 0.100887 -vt 0.612885 0.192418 -vt 0.934454 0.634587 -vt 0.909328 0.708949 -vt 0.855961 0.634587 -vt 0.593092 0.350373 -vt 0.638857 0.414143 -vt 0.547326 0.414143 -vt 0.282846 0.730947 -vt 0.282846 0.652455 -vt 0.357208 0.705822 -vt 0.773203 0.897303 -vt 0.773203 0.818810 -vt 0.847565 0.872178 -vt 0.051567 0.652455 -vt 0.125930 0.677581 -vt 0.051567 0.730949 -vt 0.768055 0.674935 -vt 0.846548 0.674935 -vt 0.793180 0.749298 -vt 0.792634 0.664985 -vt 0.792633 0.586493 -vt 0.866996 0.639860 -vt 0.828382 0.409716 -vt 0.782618 0.345946 -vt 0.874148 0.345946 -vt 0.140480 0.720831 -vt 0.061988 0.720831 -vt 0.115355 0.646469 -vt 0.367596 0.606851 -vt 0.413361 0.670621 -vt 0.321831 0.670621 -vt 0.680539 0.833453 -vt 0.627171 0.907814 -vt 0.602047 0.833453 -vt 0.657253 0.837483 -vt 0.605186 0.919318 -vt 0.564685 0.837483 -vt 0.832307 0.649510 -vt 0.879612 0.727611 -vt 0.782618 0.727611 -vt 0.123857 0.412167 -vt 0.169290 0.491370 -vt 0.077980 0.491370 -vt 0.680124 0.827323 -vt 0.629873 0.910286 -vt 0.588814 0.827323 -vt 0.116896 0.195119 -vt 0.202982 0.239807 -vt 0.116896 0.292113 -vt 0.665837 0.587817 -vt 0.665837 0.688548 -vt 0.578601 0.638183 -vt 0.667838 0.846819 -vt 0.720143 0.932905 -vt 0.623148 0.932905 -vt 0.170616 0.336829 -vt 0.123311 0.414930 -vt 0.073621 0.336829 -vt 0.782618 0.189030 -vt 0.828493 0.109826 -vt 0.873928 0.189030 -vt 0.357473 0.335614 -vt 0.450041 0.335614 -vt 0.397975 0.417450 -vt 0.543461 0.901290 -vt 0.543461 0.804295 -vt 0.629548 0.848985 -vt 0.196306 0.133322 -vt 0.196306 0.225890 -vt 0.114469 0.185389 -vt 0.312994 0.100887 -vt 0.392198 0.146321 -vt 0.312994 0.192197 -vt 0.187189 0.438608 -vt 0.141423 0.502378 -vt 0.095658 0.438608 -vt 0.412255 0.647635 -vt 0.337894 0.594269 -vt 0.412255 0.569144 -vt 0.668119 0.461612 -vt 0.586284 0.409546 -vt 0.668119 0.369045 -vt 0.634770 0.671471 -vt 0.543461 0.671471 -vt 0.593711 0.588508 -vt 0.615574 0.212985 -vt 0.536371 0.258419 -vt 0.536371 0.167110 -vt 0.131228 0.258419 -vt 0.048265 0.208169 -vt 0.131228 0.167110 -vt 0.173654 0.619509 -vt 0.090761 0.669875 -vt 0.090761 0.569144 -vt 0.864399 0.771859 -vt 0.777164 0.721493 -vt 0.864399 0.671128 -vt 0.854488 0.697145 -vt 0.768402 0.749450 -vt 0.768402 0.652455 -vt 0.622805 0.671128 -vt 0.575500 0.749229 -vt 0.525810 0.671128 -vt 0.693357 0.376647 -vt 0.647481 0.455851 -vt 0.602047 0.376647 -vt 0.909465 0.418665 -vt 0.826501 0.377605 -vt 0.909465 0.327354 -vt 0.676350 0.363194 -vt 0.590264 0.407885 -vt 0.590264 0.310890 -vt 0.194997 0.799938 -vt 0.116896 0.750248 -vt 0.194997 0.702943 -vt 0.413141 0.449935 -vt 0.321831 0.449935 -vt 0.367707 0.370732 -vt 0.956812 0.067343 -vt 0.911047 0.131113 -vt 0.865282 0.067343 -vt 0.439665 0.684523 -vt 0.348137 0.684523 -vt 0.393901 0.620754 -vt 0.454467 0.178697 -vt 0.357473 0.178697 -vt 0.404777 0.100597 -vt 0.140652 0.143473 -vt 0.049344 0.143473 -vt 0.099593 0.060510 -vt 0.413360 0.134803 -vt 0.367595 0.213815 -vt 0.321831 0.134803 -vt 0.147373 0.910119 -vt 0.064411 0.859870 -vt 0.147373 0.818810 -vt 0.456893 0.427214 -vt 0.412204 0.513300 -vt 0.359899 0.427214 -vt 0.701307 0.452073 -vt 0.600577 0.452073 -vt 0.650943 0.364838 -vt 0.942479 0.133207 -vt 0.856394 0.185513 -vt 0.856394 0.088518 -vt 0.612225 0.757412 -vt 0.534124 0.710108 -vt 0.612225 0.660418 -vt 0.892722 0.310890 -vt 0.846847 0.390094 -vt 0.801413 0.310890 -vt 0.402596 0.660454 -vt 0.319633 0.619396 -vt 0.402596 0.569144 -vt 0.913570 0.621448 -vt 0.827484 0.666139 -vt 0.827484 0.569144 -vt 0.429367 0.450881 -vt 0.336800 0.450881 -vt 0.377301 0.369045 -vt 0.162855 0.892591 -vt 0.083842 0.938357 -vt 0.083842 0.846827 -vt 0.650181 0.746374 -vt 0.575820 0.771498 -vt 0.575820 0.693006 -vt 0.602047 0.612767 -vt 0.693577 0.612767 -vt 0.647812 0.676536 -vt 0.865297 0.114428 -vt 0.962291 0.114428 -vt 0.914987 0.192528 -vt 0.268715 0.743765 -vt 0.268715 0.652455 -vt 0.351678 0.702706 -vt 0.791954 0.858522 -vt 0.837719 0.779510 -vt 0.883484 0.858522 -vt 0.298093 0.079182 -vt 0.395087 0.079182 -vt 0.345397 0.157282 -vt 0.591241 0.526190 -vt 0.635930 0.440104 -vt 0.688236 0.526190 -vt 0.085282 0.337848 -vt 0.186012 0.337848 -vt 0.135647 0.425084 -vt 0.333594 0.501788 -vt 0.385899 0.415702 -vt 0.430588 0.501788 -vt 0.838116 0.819178 -vt 0.929425 0.819178 -vt 0.888366 0.902142 -vt 0.075276 0.441903 -vt 0.075276 0.350373 -vt 0.154289 0.396139 -vt 0.819907 0.587817 -vt 0.912475 0.587817 -vt 0.860409 0.669653 -vt 0.077266 0.150237 -vt 0.127631 0.067343 -vt 0.177997 0.150237 -vt 0.611383 0.327625 -vt 0.703951 0.327625 -vt 0.663449 0.409462 -vt 0.828780 0.468770 -vt 0.874214 0.389566 -vt 0.920089 0.468770 -vt 0.767242 0.189661 -vt 0.845733 0.189662 -vt 0.820608 0.264024 -vt 0.089306 0.824587 -vt 0.142674 0.898949 -vt 0.064182 0.898949 -vt 0.652442 0.806259 -vt 0.702693 0.889222 -vt 0.611383 0.889222 -vt 0.406831 0.086015 -vt 0.454137 0.164116 -vt 0.357142 0.164116 -vt 0.513533 0.421023 -vt 0.604843 0.421023 -vt 0.559409 0.500226 -vt 0.617518 0.336829 -vt 0.669585 0.418665 -vt 0.577018 0.418665 -vt 0.588825 0.067343 -vt 0.685820 0.067343 -vt 0.633515 0.153429 -vt 0.600578 0.107191 -vt 0.687814 0.157556 -vt 0.600577 0.207921 -vt 0.613812 0.236515 -vt 0.699899 0.184210 -vt 0.699899 0.281204 -vt 0.331167 0.148292 -vt 0.378472 0.070190 -vt 0.428161 0.148292 -vt 0.319771 0.892703 -vt 0.398975 0.846827 -vt 0.398975 0.938137 -vt 0.803261 0.583569 -vt 0.886226 0.624629 -vt 0.803261 0.674880 -vt 0.075945 0.159202 -vt 0.172941 0.159202 -vt 0.128252 0.245288 -vt 0.066422 0.439695 -vt 0.144524 0.489384 -vt 0.066422 0.536690 -vt 0.617055 0.067343 -vt 0.708365 0.067343 -vt 0.662490 0.146546 -vt 0.310435 0.686113 -vt 0.388927 0.686113 -vt 0.363801 0.760475 -vt 0.625047 0.658795 -vt 0.571679 0.733158 -vt 0.546556 0.658795 -vt 0.128375 0.593330 -vt 0.178627 0.676294 -vt 0.087317 0.676294 -vt 0.321587 0.671128 -vt 0.368894 0.749230 -vt 0.271898 0.749230 -vt 0.095658 0.202487 -vt 0.186968 0.202487 -vt 0.141534 0.281691 -vt 0.814170 0.837483 -vt 0.897133 0.887734 -vt 0.814170 0.928793 -vt 0.334913 0.067343 -vt 0.431908 0.067343 -vt 0.379603 0.153431 -vt 0.367199 0.682891 -vt 0.316833 0.770128 -vt 0.266468 0.682891 -vt 0.370387 0.140824 -vt 0.456474 0.088518 -vt 0.456474 0.185514 -vt 0.671778 0.579095 -vt 0.671778 0.670407 -vt 0.588814 0.629347 -vt 0.508595 0.698331 -vt 0.587799 0.652455 -vt 0.587799 0.743767 -vt 0.331167 0.543961 -vt 0.414132 0.585022 -vt 0.331167 0.635273 -vt 0.104257 0.355580 -vt 0.190345 0.310890 -vt 0.190345 0.407886 -vt 0.842205 0.299749 -vt 0.883265 0.382714 -vt 0.791954 0.382714 -vt 0.585156 0.866755 -vt 0.664360 0.912190 -vt 0.585156 0.958067 -vt 0.632846 0.645936 -vt 0.657971 0.720299 -vt 0.579478 0.720299 -vt 0.156472 0.648286 -vt 0.103103 0.722649 -vt 0.077980 0.648286 -vt 0.839929 0.268747 -vt 0.789677 0.185782 -vt 0.880988 0.185782 -vt 0.079753 0.660456 -vt 0.079753 0.569144 -vt 0.162717 0.619395 -vt 0.395600 0.898015 -vt 0.304290 0.898015 -vt 0.349723 0.818810 -vt 0.336762 0.426559 -vt 0.336762 0.329562 -vt 0.414862 0.379252 -vt 0.433348 0.407886 -vt 0.347261 0.363197 -vt 0.433348 0.310890 -vt 0.288858 0.771861 -vt 0.288858 0.671128 -vt 0.376094 0.721494 -vt 0.466231 0.689903 -vt 0.380144 0.637597 -vt 0.466231 0.592906 -vt 0.085535 0.402201 -vt 0.085534 0.310890 -vt 0.168498 0.351949 -vt 0.644497 0.402201 -vt 0.565293 0.356326 -vt 0.644497 0.310890 -vt 0.301440 0.532264 -vt 0.301440 0.439695 -vt 0.383276 0.491762 -vt 0.941118 0.465571 -vt 0.858224 0.415205 -vt 0.941118 0.364838 -vt 0.116896 0.449030 -vt 0.194998 0.498722 -vt 0.116896 0.546026 -vt 0.348137 0.227717 -vt 0.393572 0.148513 -vt 0.439448 0.227717 -vt 0.555892 0.846827 -vt 0.619662 0.892593 -vt 0.555892 0.938358 -vt 0.860078 0.308682 -vt 0.806709 0.383044 -vt 0.781585 0.308682 -vt 0.075759 0.934479 -vt 0.075759 0.837483 -vt 0.153859 0.884787 -vt 0.622028 0.532263 -vt 0.540192 0.491760 -vt 0.622028 0.439695 -vt 0.154332 0.766466 -vt 0.075319 0.720702 -vt 0.154332 0.674935 -vt 0.066423 0.282778 -vt 0.066423 0.185782 -vt 0.144523 0.235471 -vt 0.670568 0.666140 -vt 0.584482 0.621452 -vt 0.670568 0.569144 -vt 0.628967 0.430900 -vt 0.578601 0.343664 -vt 0.679331 0.343664 -vt 0.443660 0.678391 -vt 0.342930 0.678391 -vt 0.393295 0.595496 -vt 0.825036 0.708583 -vt 0.825036 0.617272 -vt 0.907999 0.658330 -vt 0.196523 0.951183 -vt 0.104994 0.951183 -vt 0.150759 0.872170 -vt 0.638504 0.172694 -vt 0.588814 0.094593 -vt 0.685808 0.094593 -vt 0.456893 0.270297 -vt 0.359899 0.270297 -vt 0.404589 0.184210 -vt 0.857791 0.776572 -vt 0.816732 0.693608 -vt 0.908041 0.693608 -vt 0.415032 0.678024 -vt 0.323723 0.678024 -vt 0.369598 0.598819 -vt 0.815700 0.444043 -vt 0.879468 0.489810 -vt 0.815700 0.535575 -vt 0.624669 0.308682 -vt 0.624669 0.400213 -vt 0.560899 0.354448 -vt 0.612226 0.406505 -vt 0.612226 0.503501 -vt 0.534124 0.456197 -vt 0.383285 0.658704 -vt 0.430589 0.736806 -vt 0.333594 0.736806 -vt 0.293382 0.564897 -vt 0.384692 0.564897 -vt 0.339257 0.644102 -vt 0.832456 0.060995 -vt 0.884522 0.142832 -vt 0.791954 0.142832 -vt 0.348205 0.346165 -vt 0.445200 0.346165 -vt 0.392893 0.432253 -vt 0.393297 0.107191 -vt 0.443661 0.194428 -vt 0.342930 0.194428 -vt 0.836248 0.343664 -vt 0.936979 0.343664 -vt 0.886613 0.426559 -vt 0.663120 0.086015 -vt 0.703621 0.167853 -vt 0.611053 0.167853 -vt 0.064547 0.100887 -vt 0.156078 0.100887 -vt 0.110312 0.179901 -vt 0.638547 0.683107 -vt 0.688237 0.761209 -vt 0.591241 0.761209 -vt 0.858224 0.862297 -vt 0.955219 0.862297 -vt 0.910528 0.948385 -vt 0.915549 0.588198 -vt 0.956607 0.671162 -vt 0.865297 0.671162 -vt 0.288144 0.167110 -vt 0.379455 0.167110 -vt 0.333578 0.246315 -vt 0.149027 0.659294 -vt 0.174150 0.733657 -vt 0.095658 0.733657 -vt 0.616286 0.818810 -vt 0.616286 0.910342 -vt 0.552516 0.864576 -vt 0.944253 0.592906 -vt 0.944253 0.689902 -vt 0.866150 0.642597 -vt 0.929425 0.570951 -vt 0.929425 0.662262 -vt 0.846461 0.612012 -vt 0.828780 0.153445 -vt 0.920091 0.153445 -vt 0.874656 0.232650 -vt 0.368035 0.336829 -vt 0.420101 0.418667 -vt 0.327533 0.418667 -vt 0.126232 0.603815 -vt 0.223228 0.603815 -vt 0.170922 0.689903 -vt 0.371319 0.574322 -vt 0.421684 0.661560 -vt 0.320953 0.661560 -vt 0.129972 0.821811 -vt 0.182278 0.907898 -vt 0.085282 0.907898 -vt 0.945884 0.685696 -vt 0.898577 0.763796 -vt 0.848888 0.685696 -vt 0.277412 0.421023 -vt 0.356616 0.466898 -vt 0.277412 0.512333 -vt 0.179884 0.105093 -vt 0.179884 0.197661 -vt 0.098047 0.145595 -vt 0.791954 0.292734 -vt 0.874849 0.343100 -vt 0.791954 0.393466 -vt 0.625297 0.090795 -vt 0.625297 0.183364 -vt 0.543461 0.142863 -vt 0.311248 0.674935 -vt 0.390452 0.720369 -vt 0.311248 0.766246 -vt 0.848371 0.427516 -vt 0.873494 0.501879 -vt 0.795002 0.501879 -vt 0.153518 0.489552 -vt 0.061988 0.489552 -vt 0.107753 0.425782 -vt 0.939732 0.145445 -vt 0.842736 0.145445 -vt 0.890041 0.067343 -vt 0.782618 0.442902 -vt 0.860720 0.395598 -vt 0.860720 0.492594 -vt 0.428110 0.847679 -vt 0.382345 0.926694 -vt 0.336579 0.847679 -vt 0.172941 0.723309 -vt 0.075945 0.723309 -vt 0.125634 0.645207 -vt 0.697573 0.848801 -vt 0.652884 0.934889 -vt 0.600577 0.848801 -vt 0.186013 0.180932 -vt 0.085282 0.180932 -vt 0.135646 0.093695 -vt 0.427565 0.569144 -vt 0.375261 0.655233 -vt 0.330570 0.569144 -vt 0.870255 0.522660 -vt 0.778945 0.522660 -vt 0.820003 0.439695 -vt 0.901838 0.241550 -vt 0.855961 0.162346 -vt 0.947272 0.162346 -vt 0.166086 0.392441 -vt 0.073519 0.392441 -vt 0.125584 0.310605 -vt 0.186013 0.582000 -vt 0.135648 0.664895 -vt 0.085282 0.582000 -vt 0.423735 0.387045 -vt 0.331167 0.387045 -vt 0.371668 0.305208 -vt 0.169290 0.176046 -vt 0.123857 0.255250 -vt 0.077980 0.176046 -vt 0.380612 0.650238 -vt 0.405735 0.724601 -vt 0.327243 0.724601 -vt 0.173738 0.385253 -vt 0.120370 0.310890 -vt 0.198863 0.310890 -vt 0.955162 0.846819 -vt 0.955162 0.943815 -vt 0.877060 0.896510 -vt 0.867724 0.242423 -vt 0.945825 0.195119 -vt 0.945825 0.292115 -vt 0.166331 0.924742 -vt 0.087317 0.878976 -vt 0.166331 0.833211 -vt 0.626425 0.431592 -vt 0.543461 0.381340 -vt 0.626425 0.340280 -vt 0.791954 0.550382 -vt 0.888951 0.550382 -vt 0.836643 0.636470 -vt 0.371320 0.086015 -vt 0.421685 0.173252 -vt 0.320953 0.173252 -vt 0.629548 0.595073 -vt 0.543461 0.647379 -vt 0.543461 0.550382 -vt 0.409081 0.684813 -vt 0.330979 0.637507 -vt 0.409081 0.587817 -vt 0.647923 0.219730 -vt 0.602047 0.140526 -vt 0.693358 0.140526 -vt 0.357473 0.657330 -vt 0.398533 0.574366 -vt 0.448784 0.657330 -vt 0.466232 0.932906 -vt 0.369236 0.932906 -vt 0.413926 0.846819 -vt 0.438000 0.767213 -vt 0.359899 0.717523 -vt 0.438000 0.670217 -vt 0.155756 0.354448 -vt 0.076743 0.400213 -vt 0.076743 0.308682 -vt 0.835332 0.658795 -vt 0.860455 0.733158 -vt 0.781963 0.733158 -vt 0.650183 0.482723 -vt 0.575820 0.536090 -vt 0.575820 0.457597 -vt 0.953025 0.424267 -vt 0.856029 0.424267 -vt 0.903335 0.346165 -vt 0.882066 0.162146 -vt 0.790756 0.162146 -vt 0.841007 0.079182 -vt 0.543461 0.873823 -vt 0.622665 0.828388 -vt 0.622665 0.919699 -vt 0.073519 0.549358 -vt 0.156483 0.599608 -vt 0.073519 0.640669 -vt 0.439926 0.835307 -vt 0.395235 0.921395 -vt 0.342930 0.835307 -vt 0.320953 0.330169 -vt 0.421685 0.330169 -vt 0.371318 0.417406 -vt 0.844730 0.107191 -vt 0.945463 0.107191 -vt 0.895096 0.190085 -vt 0.353507 0.185782 -vt 0.394009 0.267619 -vt 0.301440 0.267619 -vt 0.403983 0.308682 -vt 0.358107 0.387886 -vt 0.312672 0.308682 -vt 0.939029 0.414035 -vt 0.846461 0.414035 -vt 0.898528 0.332198 -vt 0.212319 0.846819 -vt 0.212319 0.943815 -vt 0.126232 0.899125 -vt 0.418637 0.119560 -vt 0.418637 0.212129 -vt 0.336800 0.171627 -vt 0.579478 0.161590 -vt 0.658683 0.207024 -vt 0.579478 0.252900 -vt 0.155852 0.569144 -vt 0.180977 0.643507 -vt 0.102484 0.643507 -vt 0.777728 0.564897 -vt 0.852091 0.618264 -vt 0.777728 0.643390 -vt 0.339227 0.693608 -vt 0.421064 0.745673 -vt 0.339227 0.786176 -vt 0.611383 0.566378 -vt 0.702693 0.566378 -vt 0.652442 0.649343 -vt 0.559512 0.614581 -vt 0.638717 0.569144 -vt 0.638717 0.660455 -vt 0.028834 0.652455 -vt 0.111799 0.702705 -vt 0.028834 0.743767 -vt 0.543461 0.343101 -vt 0.626356 0.292733 -vt 0.626356 0.393465 -vt 0.533011 0.671128 -vt 0.620247 0.721492 -vt 0.533011 0.771860 -vt 0.271486 0.704764 -vt 0.357573 0.652455 -vt 0.357574 0.749452 -vt 0.867724 0.449031 -vt 0.945825 0.496336 -vt 0.867724 0.546027 -vt 0.297568 0.139714 -vt 0.343445 0.060510 -vt 0.388879 0.139714 -vt 0.063075 0.128872 -vt 0.141176 0.079182 -vt 0.141176 0.176179 -vt 0.791954 0.838078 -vt 0.878041 0.793386 -vt 0.878041 0.890382 -vt 0.064849 0.583569 -vt 0.142950 0.633258 -vt 0.064849 0.680565 -vt 0.327243 0.257202 -vt 0.372678 0.177997 -vt 0.418553 0.257202 -vt 0.546556 0.189661 -vt 0.610325 0.235426 -vt 0.546556 0.281193 -vt 0.321831 0.827537 -vt 0.396192 0.880903 -vt 0.321831 0.906029 -vt 0.552003 0.079182 -vt 0.633839 0.131247 -vt 0.552003 0.171750 -vt 0.779721 0.671128 -vt 0.861557 0.711629 -vt 0.779721 0.763697 -vt 0.825036 0.944513 -vt 0.870800 0.865499 -vt 0.916564 0.944513 -vt 0.846461 0.097180 -vt 0.943455 0.097180 -vt 0.893765 0.175282 -vt 0.031677 0.702823 -vt 0.114570 0.652455 -vt 0.114570 0.753187 -vt 0.578601 0.086015 -vt 0.665836 0.136379 -vt 0.578601 0.186747 -vt 0.848888 0.285776 -vt 0.901192 0.199689 -vt 0.945881 0.285776 -vt 0.336800 0.607798 -vt 0.428110 0.607798 -vt 0.387051 0.690763 -vt 0.815700 0.241694 -vt 0.894903 0.195817 -vt 0.894903 0.287127 -vt 0.825036 0.369045 -vt 0.907999 0.410103 -vt 0.825036 0.460356 -vt 0.600577 0.691884 -vt 0.650943 0.608989 -vt 0.701308 0.691884 -vt 0.825689 0.329562 -vt 0.918256 0.329562 -vt 0.877756 0.411399 -vt 0.062209 0.268865 -vt 0.107643 0.189661 -vt 0.153518 0.268865 -vt 0.571948 0.586493 -vt 0.635717 0.632257 -vt 0.571948 0.678024 -vt 0.795773 0.350373 -vt 0.870135 0.403740 -vt 0.795773 0.428865 -vt 0.550926 0.185782 -vt 0.632761 0.237848 -vt 0.550926 0.278350 -vt 0.619085 0.407662 -vt 0.571779 0.329562 -vt 0.668773 0.329562 -vt 0.655024 0.255246 -vt 0.575820 0.300680 -vt 0.575820 0.209370 -vt 0.917363 0.431281 -vt 0.865297 0.349445 -vt 0.957865 0.349445 -vt 0.172940 0.488290 -vt 0.075945 0.488290 -vt 0.128250 0.402204 -vt 0.393295 0.438580 -vt 0.342930 0.351344 -vt 0.443660 0.351344 -vt 0.958954 0.705381 -vt 0.858224 0.705381 -vt 0.908589 0.622487 -vt 0.127818 0.436414 -vt 0.087317 0.354578 -vt 0.179884 0.354578 -vt 0.460138 0.146356 -vt 0.368609 0.146356 -vt 0.414373 0.067343 -vt 0.349556 0.661670 -vt 0.299867 0.583569 -vt 0.396861 0.583569 -vt 0.945881 0.528779 -vt 0.848888 0.528779 -vt 0.893577 0.442693 -vt 0.398532 0.897210 -vt 0.357473 0.814247 -vt 0.448782 0.814247 -vt 0.947270 0.477670 -vt 0.855961 0.477670 -vt 0.901836 0.398466 -vt 0.819368 0.134872 -vt 0.794243 0.060510 -vt 0.872735 0.060510 -vt 0.637326 0.124279 -vt 0.545795 0.124279 -vt 0.591561 0.060510 -vt 0.710808 0.759224 -vt 0.613812 0.759224 -vt 0.661118 0.681124 -vt 0.196305 0.715253 -vt 0.104994 0.715253 -vt 0.155246 0.632290 -vt 0.390409 0.350373 -vt 0.390410 0.441683 -vt 0.311206 0.396249 -vt 0.670651 0.370112 -vt 0.588814 0.422179 -vt 0.588814 0.329611 -vt 0.611486 0.652455 -vt 0.566795 0.738542 -vt 0.514490 0.652455 -vt 0.874849 0.085451 -vt 0.787613 0.135818 -vt 0.787613 0.035087 -vt 0.385899 0.258785 -vt 0.333594 0.172698 -vt 0.430588 0.172698 -vt 0.085316 0.771709 -vt 0.132621 0.693608 -vt 0.182311 0.771709 -vt 0.670788 0.409816 -vt 0.624912 0.489020 -vt 0.579478 0.409816 -vt 0.953105 0.167851 -vt 0.860537 0.167851 -vt 0.912604 0.086015 -vt 0.709234 0.592906 -vt 0.709233 0.689901 -vt 0.623147 0.645211 -vt 0.565997 0.665918 -vt 0.615687 0.587817 -vt 0.662991 0.665918 -vt 0.823919 0.743766 -vt 0.744716 0.698331 -vt 0.823919 0.652455 -vt 0.807743 0.640994 -vt 0.782618 0.566632 -vt 0.861110 0.566632 -vt 0.155712 0.667671 -vt 0.064182 0.667671 -vt 0.109947 0.603902 -vt 0.842204 0.622594 -vt 0.791954 0.539630 -vt 0.883264 0.539630 -vt 0.646345 0.583569 -vt 0.605844 0.665406 -vt 0.553777 0.583569 -vt 0.625434 0.250206 -vt 0.534124 0.250206 -vt 0.579559 0.171003 -vt 0.668119 0.709839 -vt 0.585156 0.659589 -vt 0.668119 0.618529 -vt 0.613391 0.088518 -vt 0.699477 0.133207 -vt 0.613391 0.185513 -vt 0.630697 0.035087 -vt 0.630697 0.135817 -vt 0.543461 0.085451 -vt 0.677327 0.230881 -vt 0.591241 0.283188 -vt 0.591241 0.186192 -vt 0.897270 0.119559 -vt 0.897270 0.210869 -vt 0.814305 0.169809 -vt 0.393571 0.384634 -vt 0.439447 0.463837 -vt 0.348137 0.463837 -vt 0.164829 0.797586 -vt 0.123770 0.880549 -vt 0.073519 0.797586 -vt 0.654422 0.346165 -vt 0.699112 0.432251 -vt 0.602117 0.432251 -vt 0.964719 0.702944 -vt 0.915030 0.781044 -vt 0.867724 0.702944 -vt 0.310435 0.189441 -vt 0.389639 0.234874 -vt 0.310435 0.280750 -vt 0.815127 0.421023 -vt 0.840252 0.495385 -vt 0.761759 0.495385 -vt 0.184460 0.141706 -vt 0.237826 0.067343 -vt 0.262951 0.141706 -vt 0.325414 0.361141 -vt 0.408377 0.310890 -vt 0.408377 0.402199 -vt 0.053503 0.656207 -vt 0.053503 0.564897 -vt 0.136466 0.615149 -vt 0.795633 0.660454 -vt 0.795633 0.569144 -vt 0.874836 0.614578 -vt 0.577981 0.745675 -vt 0.659816 0.693608 -vt 0.659816 0.786175 -vt 0.163106 0.171412 -vt 0.112741 0.088518 -vt 0.213470 0.088518 -vt 0.822753 0.675052 -vt 0.873118 0.587817 -vt 0.923483 0.675052 -vt 0.919352 0.407884 -vt 0.833267 0.355578 -vt 0.919352 0.310890 -vt 0.575554 0.160062 -vt 0.657390 0.119560 -vt 0.657390 0.212127 -vt 0.373118 0.493322 -vt 0.327243 0.414118 -vt 0.418552 0.414118 -vt 0.865297 0.911042 -vt 0.906356 0.828078 -vt 0.956606 0.911042 -vt 0.658501 0.524207 -vt 0.613812 0.438121 -vt 0.710805 0.438121 -vt 0.310776 0.915583 -vt 0.360465 0.837483 -vt 0.407769 0.915583 -vt 0.109946 0.210865 -vt 0.064182 0.131852 -vt 0.155711 0.131852 -vt 0.534124 0.470892 -vt 0.579889 0.407123 -vt 0.625653 0.470892 -vt 0.801703 0.846827 -vt 0.855070 0.921189 -vt 0.776578 0.921189 -vt 0.161442 0.067343 -vt 0.211693 0.150306 -vt 0.120383 0.150306 -vt 0.120495 0.421023 -vt 0.120495 0.512332 -vt 0.037533 0.462081 -vt 0.064182 0.367782 -vt 0.155492 0.367782 -vt 0.110058 0.446985 -vt 0.151619 0.056693 -vt 0.151619 0.153688 -vt 0.073519 0.103998 -vt 0.534124 0.152593 -vt 0.620211 0.197283 -vt 0.534124 0.249588 -vt 0.909988 0.086015 -vt 0.909988 0.186746 -vt 0.822753 0.136381 -vt 0.782618 0.141686 -vt 0.868704 0.193991 -vt 0.782618 0.238681 -vt 0.414130 0.792189 -vt 0.414130 0.883499 -vt 0.331167 0.842440 -vt 0.541608 0.564897 -vt 0.620811 0.610772 -vt 0.541609 0.656207 -vt 0.196305 0.382807 -vt 0.196305 0.475373 -vt 0.114469 0.423308 -vt 0.108395 0.346165 -vt 0.191288 0.396530 -vt 0.108395 0.446896 -vt 0.708378 0.092609 -vt 0.658688 0.170709 -vt 0.611383 0.092609 -vt 0.121042 0.598819 -vt 0.166806 0.677832 -vt 0.075276 0.677832 -vt 0.638086 0.438109 -vt 0.592320 0.501879 -vt 0.546556 0.438109 -vn 0.048200 -0.987800 0.148200 -vn 0.723000 -0.554500 0.412100 -vn -0.126100 -0.987800 0.091600 -vn -0.126100 -0.987800 -0.091600 -vn 0.048200 -0.987800 -0.148200 -vn 0.819300 -0.398700 0.412100 -vn -0.138700 -0.398700 0.906500 -vn -0.905000 -0.398700 0.148200 -vn -0.420600 -0.398700 -0.814900 -vn 0.645100 -0.398700 -0.651900 -vn 0.771100 -0.302400 0.560300 -vn -0.294500 -0.302400 0.906500 -vn -0.953200 -0.302400 0.000000 -vn -0.294500 -0.302400 -0.906500 -vn 0.771100 -0.302400 -0.560300 -vn 0.342700 0.554500 0.758300 -vn -0.615300 0.554500 0.560300 -vn -0.723000 0.554500 -0.412100 -vn 0.168500 0.554500 -0.814900 -vn 0.827100 0.554500 -0.091600 -vn 0.126100 0.987800 -0.091600 -vn 0.391200 0.915800 -0.091400 -vn 0.644100 0.759400 -0.091500 -vn 0.233400 0.957500 -0.169600 -vn 0.207900 0.915800 -0.343800 -vn 0.516800 0.836300 -0.183000 -vn 0.491100 0.794700 -0.356800 -vn 0.333800 0.836300 -0.435000 -vn 0.286000 0.759400 -0.584300 -vn 0.752000 0.636900 -0.169600 -vn 0.726100 0.595500 -0.343800 -vn 0.598700 0.672600 -0.435000 -vn 0.551300 0.595500 -0.584300 -vn 0.393600 0.636900 -0.662800 -vn 0.342700 0.554500 -0.758300 -vn -0.048200 0.987800 -0.148200 -vn 0.033900 0.915800 -0.400300 -vn 0.112100 0.759400 -0.640900 -vn -0.089100 0.957500 -0.274300 -vn -0.262700 0.915800 -0.303900 -vn -0.014400 0.836300 -0.548100 -vn -0.187600 0.794700 -0.577300 -vn -0.310500 0.836300 -0.451900 -vn -0.467400 0.759400 -0.452600 -vn 0.071100 0.636900 -0.767600 -vn -0.102600 0.595500 -0.796800 -vn -0.228700 0.672600 -0.703800 -vn -0.385400 0.595500 -0.704900 -vn -0.508700 0.636900 -0.579200 -vn -0.615300 0.554500 -0.560300 -vn -0.155800 0.987800 0.000000 -vn -0.370200 0.915800 -0.156000 -vn -0.574900 0.759400 -0.304600 -vn -0.288500 0.957500 0.000000 -vn -0.370200 0.915800 0.156000 -vn -0.525700 0.836300 -0.155700 -vn -0.607100 0.794700 0.000000 -vn -0.525700 0.836300 0.155700 -vn -0.574900 0.759400 0.304600 -vn -0.708100 0.636900 -0.304900 -vn -0.789500 0.595500 -0.148700 -vn -0.740000 0.672600 0.000000 -vn -0.789500 0.595500 0.148700 -vn -0.708100 0.636900 0.304900 -vn -0.723000 0.554500 0.412100 -vn -0.048200 0.987800 0.148200 -vn -0.262700 0.915800 0.303900 -vn -0.467400 0.759400 0.452600 -vn -0.089100 0.957500 0.274300 -vn 0.033900 0.915800 0.400300 -vn -0.310500 0.836300 0.451900 -vn -0.187600 0.794700 0.577300 -vn -0.014400 0.836300 0.548100 -vn 0.112100 0.759400 0.640900 -vn -0.508700 0.636900 0.579200 -vn -0.385400 0.595500 0.704900 -vn -0.228700 0.672600 0.703800 -vn -0.102600 0.595500 0.796800 -vn 0.071100 0.636900 0.767600 -vn 0.168500 0.554500 0.814900 -vn 0.126100 0.987800 0.091600 -vn 0.207900 0.915800 0.343800 -vn 0.286000 0.759400 0.584300 -vn 0.233400 0.957500 0.169600 -vn 0.391200 0.915800 0.091500 -vn 0.333800 0.836300 0.435000 -vn 0.491100 0.794700 0.356800 -vn 0.516800 0.836300 0.183000 -vn 0.644100 0.759400 0.091500 -vn 0.393600 0.636900 0.662800 -vn 0.551300 0.595500 0.584300 -vn 0.598700 0.672600 0.435000 -vn 0.726100 0.595500 0.343800 -vn 0.752000 0.636900 0.169600 -vn 0.827100 0.554500 0.091600 -vn 0.905000 0.398700 -0.148200 -vn 0.936600 0.174500 -0.303900 -vn 0.888300 -0.078400 -0.452600 -vn 0.896300 0.348500 -0.274300 -vn 0.803900 0.439900 -0.400300 -vn 0.886900 0.096200 -0.451900 -vn 0.794700 0.187600 -0.577300 -vn 0.754400 0.361100 -0.548100 -vn 0.629100 0.439900 -0.640900 -vn 0.797200 -0.170200 -0.579200 -vn 0.704900 -0.078400 -0.704900 -vn 0.703800 0.096200 -0.703800 -vn 0.578500 0.174500 -0.796800 -vn 0.537900 0.348500 -0.767600 -vn 0.420600 0.398700 -0.814900 -vn 0.138700 0.398700 -0.906500 -vn 0.000400 0.174500 -0.984600 -vn -0.156000 -0.078400 -0.984600 -vn 0.016000 0.348500 -0.937200 -vn -0.132300 0.439900 -0.888300 -vn -0.155700 0.096200 -0.983100 -vn -0.303500 0.187600 -0.934200 -vn -0.288200 0.361100 -0.886900 -vn -0.415100 0.439900 -0.796400 -vn -0.304500 -0.170200 -0.937200 -vn -0.452600 -0.078400 -0.888300 -vn -0.451900 0.096200 -0.886900 -vn -0.579100 0.174500 -0.796400 -vn -0.563800 0.348500 -0.748800 -vn -0.645100 0.398700 -0.651900 -vn -0.819300 0.398700 -0.412100 -vn -0.936300 0.174500 -0.304600 -vn -0.984600 -0.078400 -0.156000 -vn -0.886400 0.348500 -0.304900 -vn -0.885700 0.439900 -0.148700 -vn -0.983100 0.096200 -0.155700 -vn -0.982200 0.187600 0.000000 -vn -0.932500 0.361100 0.000000 -vn -0.885700 0.439900 0.148700 -vn -0.985400 -0.170200 0.000000 -vn -0.984600 -0.078400 0.156000 -vn -0.983100 0.096200 0.155700 -vn -0.936300 0.174500 0.304600 -vn -0.886400 0.348500 0.304900 -vn -0.819300 0.398700 0.412100 -vn -0.645100 0.398700 0.651900 -vn -0.579100 0.174500 0.796400 -vn -0.452600 -0.078400 0.888300 -vn -0.563800 0.348500 0.748800 -vn -0.415100 0.439900 0.796400 -vn -0.451900 0.096200 0.886900 -vn -0.303500 0.187600 0.934200 -vn -0.288200 0.361100 0.886900 -vn -0.132300 0.439900 0.888300 -vn -0.304500 -0.170200 0.937200 -vn -0.156000 -0.078400 0.984600 -vn -0.155700 0.096200 0.983100 -vn 0.000400 0.174500 0.984600 -vn 0.016000 0.348500 0.937200 -vn 0.138700 0.398700 0.906500 -vn 0.420600 0.398700 0.814900 -vn 0.578500 0.174500 0.796800 -vn 0.704900 -0.078400 0.704900 -vn 0.537900 0.348500 0.767600 -vn 0.629100 0.439900 0.640900 -vn 0.703800 0.096200 0.703800 -vn 0.794700 0.187600 0.577300 -vn 0.754400 0.361100 0.548100 -vn 0.803900 0.439900 0.400300 -vn 0.797200 -0.170200 0.579200 -vn 0.888300 -0.078400 0.452600 -vn 0.886900 0.096200 0.451900 -vn 0.936600 0.174500 0.303900 -vn 0.896300 0.348500 0.274400 -vn 0.905000 0.398700 0.148200 -vn 0.294500 0.302400 -0.906500 -vn 0.452600 0.078400 -0.888300 -vn 0.579100 -0.174500 -0.796400 -vn 0.304500 0.170200 -0.937200 -vn 0.156000 0.078400 -0.984600 -vn 0.451900 -0.096200 -0.886900 -vn 0.303500 -0.187600 -0.934200 -vn 0.155700 -0.096200 -0.983100 -vn -0.000400 -0.174500 -0.984600 -vn 0.563800 -0.348500 -0.748800 -vn 0.415100 -0.439900 -0.796400 -vn 0.288200 -0.361100 -0.886900 -vn 0.132300 -0.439900 -0.888300 -vn -0.016000 -0.348500 -0.937200 -vn -0.138700 -0.398700 -0.906500 -vn -0.771100 0.302400 -0.560300 -vn -0.704900 0.078400 -0.704900 -vn -0.578500 -0.174500 -0.796800 -vn -0.797200 0.170200 -0.579200 -vn -0.888300 0.078400 -0.452600 -vn -0.703800 -0.096200 -0.703800 -vn -0.794700 -0.187600 -0.577300 -vn -0.886900 -0.096200 -0.451900 -vn -0.936600 -0.174500 -0.303900 -vn -0.537900 -0.348500 -0.767600 -vn -0.629100 -0.439900 -0.640900 -vn -0.754400 -0.361100 -0.548100 -vn -0.803900 -0.439900 -0.400300 -vn -0.896300 -0.348500 -0.274400 -vn -0.905000 -0.398700 -0.148200 -vn -0.771100 0.302400 0.560300 -vn -0.888300 0.078400 0.452600 -vn -0.936600 -0.174500 0.303900 -vn -0.797200 0.170200 0.579200 -vn -0.704900 0.078400 0.704900 -vn -0.886900 -0.096200 0.451900 -vn -0.794700 -0.187600 0.577400 -vn -0.703800 -0.096200 0.703800 -vn -0.578500 -0.174500 0.796800 -vn -0.896300 -0.348500 0.274400 -vn -0.803900 -0.439900 0.400300 -vn -0.754400 -0.361100 0.548100 -vn -0.629100 -0.439900 0.640900 -vn -0.537900 -0.348500 0.767600 -vn -0.420600 -0.398700 0.814900 -vn 0.294500 0.302400 0.906500 -vn 0.156000 0.078400 0.984600 -vn -0.000400 -0.174500 0.984600 -vn 0.304500 0.170200 0.937200 -vn 0.452600 0.078400 0.888300 -vn 0.155700 -0.096200 0.983100 -vn 0.303500 -0.187600 0.934200 -vn 0.451900 -0.096200 0.886900 -vn 0.579100 -0.174500 0.796400 -vn -0.016000 -0.348500 0.937200 -vn 0.132300 -0.439900 0.888300 -vn 0.288200 -0.361100 0.886900 -vn 0.415100 -0.439900 0.796400 -vn 0.563800 -0.348500 0.748800 -vn 0.645100 -0.398700 0.651900 -vn 0.953200 0.302400 0.000000 -vn 0.984600 0.078400 0.156000 -vn 0.936300 -0.174500 0.304600 -vn 0.985400 0.170200 0.000000 -vn 0.984600 0.078400 -0.156000 -vn 0.983100 -0.096200 0.155700 -vn 0.982200 -0.187600 0.000000 -vn 0.983100 -0.096200 -0.155700 -vn 0.936300 -0.174500 -0.304600 -vn 0.886400 -0.348500 0.304900 -vn 0.885700 -0.439900 0.148700 -vn 0.932500 -0.361100 0.000000 -vn 0.885700 -0.439900 -0.148700 -vn 0.886400 -0.348500 -0.304900 -vn 0.819300 -0.398700 -0.412100 -vn 0.615300 -0.554500 -0.560300 -vn 0.467400 -0.759400 -0.452600 -vn 0.262700 -0.915800 -0.303900 -vn 0.508700 -0.636900 -0.579200 -vn 0.385400 -0.595500 -0.704900 -vn 0.310500 -0.836300 -0.451900 -vn 0.187600 -0.794700 -0.577300 -vn 0.228700 -0.672600 -0.703800 -vn 0.102600 -0.595500 -0.796800 -vn 0.089100 -0.957500 -0.274300 -vn -0.033900 -0.915800 -0.400300 -vn 0.014400 -0.836300 -0.548100 -vn -0.112100 -0.759400 -0.640900 -vn -0.071100 -0.636900 -0.767600 -vn -0.168500 -0.554500 -0.814900 -vn -0.342700 -0.554500 -0.758300 -vn -0.286000 -0.759400 -0.584300 -vn -0.207900 -0.915800 -0.343800 -vn -0.393600 -0.636900 -0.662800 -vn -0.551300 -0.595500 -0.584300 -vn -0.333800 -0.836300 -0.435000 -vn -0.491100 -0.794700 -0.356800 -vn -0.598700 -0.672600 -0.435000 -vn -0.726100 -0.595500 -0.343800 -vn -0.233400 -0.957500 -0.169600 -vn -0.391200 -0.915800 -0.091400 -vn -0.516800 -0.836300 -0.183000 -vn -0.644100 -0.759400 -0.091400 -vn -0.752000 -0.636900 -0.169600 -vn -0.827100 -0.554500 -0.091600 -vn -0.827100 -0.554500 0.091600 -vn -0.644100 -0.759400 0.091500 -vn -0.391200 -0.915800 0.091500 -vn -0.752000 -0.636900 0.169600 -vn -0.726100 -0.595500 0.343800 -vn -0.516800 -0.836300 0.183000 -vn -0.491100 -0.794700 0.356800 -vn -0.598700 -0.672600 0.435000 -vn -0.551300 -0.595500 0.584300 -vn -0.233400 -0.957500 0.169600 -vn -0.207900 -0.915800 0.343800 -vn -0.333800 -0.836300 0.435000 -vn -0.286000 -0.759400 0.584300 -vn -0.393600 -0.636900 0.662800 -vn -0.342700 -0.554500 0.758300 -vn 0.723000 -0.554500 -0.412100 -vn 0.789500 -0.595500 -0.148700 -vn 0.789500 -0.595500 0.148700 -vn 0.708100 -0.636900 -0.304900 -vn 0.574900 -0.759400 -0.304600 -vn 0.740000 -0.672600 -0.000000 -vn 0.607100 -0.794700 0.000000 -vn 0.525700 -0.836300 -0.155700 -vn 0.370200 -0.915800 -0.155900 -vn 0.708100 -0.636900 0.304900 -vn 0.574900 -0.759400 0.304600 -vn 0.525700 -0.836300 0.155700 -vn 0.370200 -0.915800 0.156000 -vn 0.288500 -0.957500 0.000000 -vn 0.155800 -0.987800 0.000000 -vn -0.168500 -0.554500 0.814900 -vn -0.112100 -0.759400 0.640900 -vn -0.033900 -0.915800 0.400300 -vn -0.071100 -0.636900 0.767600 -vn 0.102600 -0.595500 0.796800 -vn 0.014400 -0.836300 0.548100 -vn 0.187600 -0.794700 0.577300 -vn 0.228700 -0.672600 0.703800 -vn 0.385400 -0.595500 0.704900 -vn 0.089100 -0.957500 0.274400 -vn 0.262700 -0.915800 0.303900 -vn 0.310500 -0.836300 0.451900 -vn 0.467400 -0.759400 0.452600 -vn 0.508700 -0.636900 0.579200 -vn 0.615300 -0.554500 0.560300 -s off -f 1/1/1 16/2/1 15/3/1 -f 2/4/2 18/5/2 24/6/2 -f 1/7/3 15/8/3 30/9/3 -f 1/10/4 30/11/4 36/12/4 -f 1/13/5 36/14/5 25/15/5 -f 2/16/6 24/17/6 45/18/6 -f 3/19/7 21/20/7 51/21/7 -f 4/22/8 33/23/8 57/24/8 -f 5/25/9 39/26/9 63/27/9 -f 6/28/10 42/29/10 69/30/10 -f 2/31/11 45/32/11 52/33/11 -f 3/34/12 51/35/12 58/36/12 -f 4/37/13 57/38/13 64/39/13 -f 5/40/14 63/41/14 70/42/14 -f 6/43/15 69/44/15 46/45/15 -f 7/46/16 75/47/16 90/48/16 -f 8/49/17 78/50/17 96/51/17 -f 9/52/18 81/53/18 99/54/18 -f 10/55/19 84/56/19 102/57/19 -f 11/58/20 87/59/20 91/60/20 -f 93/61/21 100/62/21 12/63/21 -f 92/64/22 103/65/22 93/66/22 -f 91/67/23 104/68/23 92/69/23 -f 93/70/24 103/71/24 100/72/24 -f 103/73/25 101/74/25 100/75/25 -f 92/76/26 104/77/26 103/78/26 -f 104/79/27 105/80/27 103/81/27 -f 103/82/28 105/83/28 101/84/28 -f 105/85/29 102/86/29 101/87/29 -f 91/88/30 87/89/30 104/90/30 -f 87/91/31 86/92/31 104/93/31 -f 104/94/32 86/95/32 105/96/32 -f 86/97/33 85/98/33 105/99/33 -f 105/100/34 85/101/34 102/102/34 -f 85/103/35 10/104/35 102/105/35 -f 100/106/36 97/107/36 12/108/36 -f 101/109/37 106/110/37 100/111/37 -f 102/112/38 107/113/38 101/114/38 -f 100/115/39 106/116/39 97/117/39 -f 106/118/40 98/119/40 97/120/40 -f 101/121/41 107/122/41 106/123/41 -f 107/124/42 108/125/42 106/126/42 -f 106/127/43 108/128/43 98/129/43 -f 108/130/44 99/131/44 98/132/44 -f 102/133/45 84/134/45 107/135/45 -f 84/136/46 83/137/46 107/138/46 -f 107/139/47 83/140/47 108/141/47 -f 83/142/48 82/143/48 108/144/48 -f 108/145/49 82/146/49 99/147/49 -f 82/148/50 9/149/50 99/150/50 -f 97/151/51 94/152/51 12/153/51 -f 98/154/52 109/155/52 97/156/52 -f 99/157/53 110/158/53 98/159/53 -f 97/160/54 109/161/54 94/162/54 -f 109/163/55 95/164/55 94/165/55 -f 98/166/56 110/167/56 109/168/56 -f 110/169/57 111/170/57 109/171/57 -f 109/172/58 111/173/58 95/174/58 -f 111/175/59 96/176/59 95/177/59 -f 99/178/60 81/179/60 110/180/60 -f 81/181/61 80/182/61 110/183/61 -f 110/184/62 80/185/62 111/186/62 -f 80/187/63 79/188/63 111/189/63 -f 111/190/64 79/191/64 96/192/64 -f 79/193/65 8/194/65 96/195/65 -f 94/196/66 88/197/66 12/198/66 -f 95/199/67 112/200/67 94/201/67 -f 96/202/68 113/203/68 95/204/68 -f 94/205/69 112/206/69 88/207/69 -f 112/208/70 89/209/70 88/210/70 -f 95/211/71 113/212/71 112/213/71 -f 113/214/72 114/215/72 112/216/72 -f 112/217/73 114/218/73 89/219/73 -f 114/220/74 90/221/74 89/222/74 -f 96/223/75 78/224/75 113/225/75 -f 78/226/76 77/227/76 113/228/76 -f 113/229/77 77/230/77 114/231/77 -f 77/232/78 76/233/78 114/234/78 -f 114/235/79 76/236/79 90/237/79 -f 76/238/80 7/239/80 90/240/80 -f 88/241/81 93/242/81 12/243/81 -f 89/244/82 115/245/82 88/246/82 -f 90/247/83 116/248/83 89/249/83 -f 88/250/84 115/251/84 93/252/84 -f 115/253/85 92/254/85 93/255/85 -f 89/256/86 116/257/86 115/258/86 -f 116/259/87 117/260/87 115/261/87 -f 115/262/88 117/263/88 92/264/88 -f 117/265/89 91/266/89 92/267/89 -f 90/268/90 75/269/90 116/270/90 -f 75/271/91 74/272/91 116/273/91 -f 116/274/92 74/275/92 117/276/92 -f 74/277/93 73/278/93 117/279/93 -f 117/280/94 73/281/94 91/282/94 -f 73/283/95 11/284/95 91/285/95 -f 48/286/96 87/287/96 11/288/96 -f 47/289/97 118/290/97 48/291/97 -f 46/292/98 119/293/98 47/294/98 -f 48/295/99 118/296/99 87/297/99 -f 118/298/100 86/299/100 87/300/100 -f 47/301/101 119/302/101 118/303/101 -f 119/304/102 120/305/102 118/306/102 -f 118/307/103 120/308/103 86/309/103 -f 120/310/104 85/311/104 86/312/104 -f 46/313/105 69/314/105 119/315/105 -f 69/316/106 68/317/106 119/318/106 -f 119/319/107 68/320/107 120/321/107 -f 68/322/108 67/323/108 120/324/108 -f 120/325/109 67/326/109 85/327/109 -f 67/328/110 10/329/110 85/330/110 -f 72/331/111 84/332/111 10/333/111 -f 71/334/112 121/335/112 72/336/112 -f 70/337/113 122/338/113 71/339/113 -f 72/340/114 121/341/114 84/342/114 -f 121/343/115 83/344/115 84/345/115 -f 71/346/116 122/347/116 121/348/116 -f 122/349/117 123/350/117 121/351/117 -f 121/352/118 123/353/118 83/354/118 -f 123/355/119 82/356/119 83/357/119 -f 70/358/120 63/359/120 122/360/120 -f 63/361/121 62/362/121 122/363/121 -f 122/364/122 62/365/122 123/366/122 -f 62/367/123 61/368/123 123/369/123 -f 123/370/124 61/371/124 82/372/124 -f 61/373/125 9/374/125 82/375/125 -f 66/376/126 81/377/126 9/378/126 -f 65/379/127 124/380/127 66/381/127 -f 64/382/128 125/383/128 65/384/128 -f 66/385/129 124/386/129 81/387/129 -f 124/388/130 80/389/130 81/390/130 -f 65/391/131 125/392/131 124/393/131 -f 125/394/132 126/395/132 124/396/132 -f 124/397/133 126/398/133 80/399/133 -f 126/400/134 79/401/134 80/402/134 -f 64/403/135 57/404/135 125/405/135 -f 57/406/136 56/407/136 125/408/136 -f 125/409/137 56/410/137 126/411/137 -f 56/412/138 55/413/138 126/414/138 -f 126/415/139 55/416/139 79/417/139 -f 55/418/140 8/419/140 79/420/140 -f 60/421/141 78/422/141 8/423/141 -f 59/424/142 127/425/142 60/426/142 -f 58/427/143 128/428/143 59/429/143 -f 60/430/144 127/431/144 78/432/144 -f 127/433/145 77/434/145 78/435/145 -f 59/436/146 128/437/146 127/438/146 -f 128/439/147 129/440/147 127/441/147 -f 127/442/148 129/443/148 77/444/148 -f 129/445/149 76/446/149 77/447/149 -f 58/448/150 51/449/150 128/450/150 -f 51/451/151 50/452/151 128/453/151 -f 128/454/152 50/455/152 129/456/152 -f 50/457/153 49/458/153 129/459/153 -f 129/460/154 49/461/154 76/462/154 -f 49/463/155 7/464/155 76/465/155 -f 54/466/156 75/467/156 7/468/156 -f 53/469/157 130/470/157 54/471/157 -f 52/472/158 131/473/158 53/474/158 -f 54/475/159 130/476/159 75/477/159 -f 130/478/160 74/479/160 75/480/160 -f 53/481/161 131/482/161 130/483/161 -f 131/484/162 132/485/162 130/486/162 -f 130/487/163 132/488/163 74/489/163 -f 132/490/164 73/491/164 74/492/164 -f 52/493/165 45/494/165 131/495/165 -f 45/496/166 44/497/166 131/498/166 -f 131/499/167 44/500/167 132/501/167 -f 44/502/168 43/503/168 132/504/168 -f 132/505/169 43/506/169 73/507/169 -f 43/508/170 11/509/170 73/510/170 -f 67/511/171 72/512/171 10/513/171 -f 68/514/172 133/515/172 67/516/172 -f 69/517/173 134/518/173 68/519/173 -f 67/520/174 133/521/174 72/522/174 -f 133/523/175 71/524/175 72/525/175 -f 68/526/176 134/527/176 133/528/176 -f 134/529/177 135/530/177 133/531/177 -f 133/532/178 135/533/178 71/534/178 -f 135/535/179 70/536/179 71/537/179 -f 69/538/180 42/539/180 134/540/180 -f 42/541/181 41/542/181 134/543/181 -f 134/544/182 41/545/182 135/546/182 -f 41/547/183 40/548/183 135/549/183 -f 135/550/184 40/551/184 70/552/184 -f 40/553/185 5/554/185 70/555/185 -f 61/556/186 66/557/186 9/558/186 -f 62/559/187 136/560/187 61/561/187 -f 63/562/188 137/563/188 62/564/188 -f 61/565/189 136/566/189 66/567/189 -f 136/568/190 65/569/190 66/570/190 -f 62/571/191 137/572/191 136/573/191 -f 137/574/192 138/575/192 136/576/192 -f 136/577/193 138/578/193 65/579/193 -f 138/580/194 64/581/194 65/582/194 -f 63/583/195 39/584/195 137/585/195 -f 39/586/196 38/587/196 137/588/196 -f 137/589/197 38/590/197 138/591/197 -f 38/592/198 37/593/198 138/594/198 -f 138/595/199 37/596/199 64/597/199 -f 37/598/200 4/599/200 64/600/200 -f 55/601/201 60/602/201 8/603/201 -f 56/604/202 139/605/202 55/606/202 -f 57/607/203 140/608/203 56/609/203 -f 55/610/204 139/611/204 60/612/204 -f 139/613/205 59/614/205 60/615/205 -f 56/616/206 140/617/206 139/618/206 -f 140/619/207 141/620/207 139/621/207 -f 139/622/208 141/623/208 59/624/208 -f 141/625/209 58/626/209 59/627/209 -f 57/628/210 33/629/210 140/630/210 -f 33/631/211 32/632/211 140/633/211 -f 140/634/212 32/635/212 141/636/212 -f 32/637/213 31/638/213 141/639/213 -f 141/640/214 31/641/214 58/642/214 -f 31/643/215 3/644/215 58/645/215 -f 49/646/216 54/647/216 7/648/216 -f 50/649/217 142/650/217 49/651/217 -f 51/652/218 143/653/218 50/654/218 -f 49/655/219 142/656/219 54/657/219 -f 142/658/220 53/659/220 54/660/220 -f 50/661/221 143/662/221 142/663/221 -f 143/664/222 144/665/222 142/666/222 -f 142/667/223 144/668/223 53/669/223 -f 144/670/224 52/671/224 53/672/224 -f 51/673/225 21/674/225 143/675/225 -f 21/676/226 20/677/226 143/678/226 -f 143/679/227 20/680/227 144/681/227 -f 20/682/228 19/683/228 144/684/228 -f 144/685/229 19/686/229 52/687/229 -f 19/688/230 2/689/230 52/690/230 -f 43/691/231 48/692/231 11/693/231 -f 44/694/232 145/695/232 43/696/232 -f 45/697/233 146/698/233 44/699/233 -f 43/700/234 145/701/234 48/702/234 -f 145/703/235 47/704/235 48/705/235 -f 44/706/236 146/707/236 145/708/236 -f 146/709/237 147/710/237 145/711/237 -f 145/712/238 147/713/238 47/714/238 -f 147/715/239 46/716/239 47/717/239 -f 45/718/240 24/719/240 146/720/240 -f 24/721/241 23/722/241 146/723/241 -f 146/724/242 23/725/242 147/726/242 -f 23/727/243 22/728/243 147/729/243 -f 147/730/244 22/731/244 46/732/244 -f 22/733/245 6/734/245 46/735/245 -f 27/736/246 42/737/246 6/738/246 -f 26/739/247 148/740/247 27/741/247 -f 25/742/248 149/743/248 26/744/248 -f 27/745/249 148/746/249 42/747/249 -f 148/748/250 41/749/250 42/750/250 -f 26/751/251 149/752/251 148/753/251 -f 149/754/252 150/755/252 148/756/252 -f 148/757/253 150/758/253 41/759/253 -f 150/760/254 40/761/254 41/762/254 -f 25/763/255 36/764/255 149/765/255 -f 36/766/256 35/767/256 149/768/256 -f 149/769/257 35/770/257 150/771/257 -f 35/772/258 34/773/258 150/774/258 -f 150/775/259 34/776/259 40/777/259 -f 34/778/260 5/779/260 40/780/260 -f 34/781/261 39/782/261 5/783/261 -f 35/784/262 151/785/262 34/786/262 -f 36/787/263 152/788/263 35/789/263 -f 34/790/264 151/791/264 39/792/264 -f 151/793/265 38/794/265 39/795/265 -f 35/796/266 152/797/266 151/798/266 -f 152/799/267 153/800/267 151/801/267 -f 151/802/268 153/803/268 38/804/268 -f 153/805/269 37/806/269 38/807/269 -f 36/808/270 30/809/270 152/810/270 -f 30/811/271 29/812/271 152/813/271 -f 152/814/272 29/815/272 153/816/272 -f 29/817/273 28/818/273 153/819/273 -f 153/820/274 28/821/274 37/822/274 -f 28/823/275 4/824/275 37/825/275 -f 28/826/276 33/827/276 4/828/276 -f 29/829/277 154/830/277 28/831/277 -f 30/832/278 155/833/278 29/834/278 -f 28/835/279 154/836/279 33/837/279 -f 154/838/280 32/839/280 33/840/280 -f 29/841/281 155/842/281 154/843/281 -f 155/844/282 156/845/282 154/846/282 -f 154/847/283 156/848/283 32/849/283 -f 156/850/284 31/851/284 32/852/284 -f 30/853/285 15/854/285 155/855/285 -f 15/856/286 14/857/286 155/858/286 -f 155/859/287 14/860/287 156/861/287 -f 14/862/288 13/863/288 156/864/288 -f 156/865/289 13/866/289 31/867/289 -f 13/868/290 3/869/290 31/870/290 -f 22/871/291 27/872/291 6/873/291 -f 23/874/292 157/875/292 22/876/292 -f 24/877/293 158/878/293 23/879/293 -f 22/880/294 157/881/294 27/882/294 -f 157/883/295 26/884/295 27/885/295 -f 23/886/296 158/887/296 157/888/296 -f 158/889/297 159/890/297 157/891/297 -f 157/892/298 159/893/298 26/894/298 -f 159/895/299 25/896/299 26/897/299 -f 24/898/300 18/899/300 158/900/300 -f 18/901/301 17/902/301 158/903/301 -f 158/904/302 17/905/302 159/906/302 -f 17/907/303 16/908/303 159/909/303 -f 159/910/304 16/911/304 25/912/304 -f 16/913/305 1/914/305 25/915/305 -f 13/916/306 21/917/306 3/918/306 -f 14/919/307 160/920/307 13/921/307 -f 15/922/308 161/923/308 14/924/308 -f 13/925/309 160/926/309 21/927/309 -f 160/928/310 20/929/310 21/930/310 -f 14/931/311 161/932/311 160/933/311 -f 161/934/312 162/935/312 160/936/312 -f 160/937/313 162/938/313 20/939/313 -f 162/940/314 19/941/314 20/942/314 -f 15/943/315 16/944/315 161/945/315 -f 16/946/316 17/947/316 161/948/316 -f 161/949/317 17/950/317 162/951/317 -f 17/952/318 18/953/318 162/954/318 -f 162/955/319 18/956/319 19/957/319 -f 18/958/320 2/959/320 19/960/320 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj b/src/main/resources/assets/hbm/models/bombs/n45_knob.obj deleted file mode 100644 index 65db02879f..0000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_knob.blend' -# www.blender.org -o Cylinder -v 0.000000 0.475000 -0.062500 -v 0.000000 0.525000 -0.062500 -v 0.044194 0.475000 -0.044194 -v 0.044194 0.525000 -0.044194 -v 0.062500 0.475000 0.000000 -v 0.062500 0.525000 0.000000 -v 0.044194 0.475000 0.044194 -v 0.044194 0.525000 0.044194 -v -0.000000 0.475000 0.062500 -v -0.000000 0.525000 0.062500 -v -0.044194 0.475000 0.044194 -v -0.044194 0.525000 0.044194 -v -0.062500 0.475000 -0.000000 -v -0.062500 0.525000 -0.000000 -v -0.044194 0.475000 -0.044194 -v -0.044194 0.525000 -0.044194 -vt 0.610389 0.766502 -vt 0.766501 0.610389 -vt 0.929679 0.773566 -vt 0.766501 0.389611 -vt 0.997269 0.389611 -vt 0.610388 0.233498 -vt 0.773565 0.070321 -vt 0.389611 0.233499 -vt 0.389611 0.002731 -vt 0.233498 0.389612 -vt 0.070321 0.226435 -vt 0.233498 0.610389 -vt 0.002731 0.610389 -vt 0.389611 0.766502 -vt 0.610388 0.997269 -vt 0.226434 0.929679 -vt 0.773566 0.929679 -vt 0.997269 0.610388 -vt 0.929678 0.226434 -vt 0.610388 0.002731 -vt 0.226434 0.070322 -vt 0.002731 0.389612 -vt 0.389611 0.997269 -vt 0.070321 0.773566 -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 -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 10/8/7 2/1/7 -f 16/14/8 2/1/8 1/15/8 -f 14/12/9 16/14/9 15/16/9 -f 1/17/1 2/1/1 3/3/1 -f 3/18/2 4/2/2 5/5/2 -f 5/19/3 6/4/3 7/7/3 -f 7/20/4 8/6/4 9/9/4 -f 9/21/5 10/8/5 11/11/5 -f 11/22/6 12/10/6 13/13/6 -f 6/4/7 4/2/7 2/1/7 -f 2/1/7 16/14/7 14/12/7 -f 14/12/7 12/10/7 10/8/7 -f 10/8/7 8/6/7 6/4/7 -f 6/4/7 2/1/7 10/8/7 -f 15/23/8 16/14/8 1/15/8 -f 13/24/9 14/12/9 15/16/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj b/src/main/resources/assets/hbm/models/bombs/n45_rod.obj deleted file mode 100644 index a0a4e6beeb..0000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_rod.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.512500 -0.031000 -v 0.000000 0.887500 -0.031000 -v 0.021920 0.512500 -0.021920 -v 0.021920 0.887500 -0.021920 -v 0.031000 0.512500 0.000000 -v 0.031000 0.887500 0.000000 -v 0.021920 0.512500 0.021920 -v 0.021920 0.887500 0.021920 -v -0.000000 0.512500 0.031000 -v -0.000000 0.887500 0.031000 -v -0.021920 0.512500 0.021920 -v -0.021920 0.887500 0.021920 -v -0.031000 0.512500 0.000000 -v -0.031000 0.887500 0.000000 -v -0.021920 0.512500 -0.021920 -v -0.021920 0.887500 -0.021920 -vt 0.423308 0.866102 -vt 0.368629 0.866102 -vt 0.368629 0.001892 -vt 0.313950 0.866102 -vt 0.313950 0.001892 -vt 0.259271 0.866102 -vt 0.259272 0.001892 -vt 0.204592 0.866102 -vt 0.204593 0.001892 -vt 0.149913 0.866102 -vt 0.149914 0.001891 -vt 0.095234 0.866102 -vt 0.095236 0.001891 -vt 0.095234 0.998109 -vt 0.040555 0.998108 -vt 0.477987 0.866102 -vt 0.423308 0.001892 -vt 0.040555 0.866102 -vt 0.040557 0.001891 -vt 0.001891 0.959445 -vt 0.001891 0.904766 -vt 0.133898 0.904766 -vt 0.133898 0.959445 -vt 0.477986 0.001892 -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 -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 8/14/7 6/15/7 -f 16/16/8 2/1/8 1/17/8 -f 14/12/9 16/18/9 15/19/9 -f 1/17/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 6/15/7 4/20/7 14/12/7 -f 2/21/7 16/18/7 14/12/7 -f 14/12/7 12/22/7 10/23/7 -f 10/23/7 8/14/7 14/12/7 -f 4/20/7 2/21/7 14/12/7 -f 15/24/8 16/16/8 1/17/8 -f 13/13/9 14/12/9 15/19/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj b/src/main/resources/assets/hbm/models/bombs/n45_stand.obj deleted file mode 100644 index 1e99f7d20a..0000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj +++ /dev/null @@ -1,166 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_stand.blend' -# www.blender.org -o Icosphere.001 -v 0.000000 0.100000 -0.125000 -v 0.000000 0.525000 -0.125000 -v 0.088388 0.100000 -0.088388 -v 0.088388 0.525000 -0.088388 -v 0.125000 0.100000 0.000000 -v 0.125000 0.525000 0.000000 -v 0.088388 0.100000 0.088388 -v 0.088388 0.525000 0.088388 -v -0.000000 0.100000 0.125000 -v -0.000000 0.525000 0.125000 -v -0.088388 0.100000 0.088388 -v -0.088388 0.525000 0.088388 -v -0.125000 0.100000 -0.000000 -v -0.125000 0.525000 -0.000000 -v -0.088388 0.100000 -0.088388 -v -0.088388 0.525000 -0.088388 -v 0.000000 0.100000 -0.250000 -v 0.176777 0.100000 -0.176777 -v 0.250000 0.100000 0.000000 -v 0.176777 0.100000 0.176777 -v -0.000000 0.100000 0.250000 -v -0.176777 0.100000 0.176777 -v -0.250000 0.100000 -0.000000 -v -0.176777 0.100000 -0.176777 -v -0.000000 0.000000 -0.375000 -v 0.265165 0.000000 -0.265165 -v 0.375000 0.000000 0.000000 -v 0.265165 0.000000 0.265165 -v -0.000000 0.000000 0.375000 -v -0.265165 0.000000 0.265165 -v -0.375000 0.000000 -0.000000 -v -0.265165 0.000000 -0.265165 -vt 0.590034 0.983303 -vt 0.536822 0.983303 -vt 0.536822 0.746920 -vt 0.483611 0.983303 -vt 0.483611 0.746920 -vt 0.430399 0.983303 -vt 0.430399 0.746920 -vt 0.377187 0.983303 -vt 0.377187 0.746920 -vt 0.323976 0.983303 -vt 0.323976 0.746920 -vt 0.270764 0.983303 -vt 0.270764 0.746920 -vt 0.643246 0.983303 -vt 0.590034 0.746920 -vt 0.696457 0.983303 -vt 0.643246 0.746920 -vt 0.807223 0.505400 -vt 0.737698 0.505400 -vt 0.778425 0.407078 -vt 0.346117 0.113818 -vt 0.444439 0.073092 -vt 0.501535 0.141409 -vt 0.175484 0.456239 -vt 0.224645 0.407078 -vt 0.265371 0.505400 -vt 0.607792 0.676034 -vt 0.558631 0.626872 -vt 0.656953 0.586146 -vt 0.195847 0.194564 -vt 0.265371 0.194564 -vt 0.224645 0.292886 -vt 0.827586 0.243725 -vt 0.778425 0.292886 -vt 0.737698 0.194564 -vt 0.346117 0.655670 -vt 0.346117 0.586146 -vt 0.444439 0.626872 -vt 0.395278 0.023931 -vt 0.656953 0.044294 -vt 0.656953 0.113818 -vt 0.558631 0.073092 -vt 0.649018 0.497465 -vt 0.354051 0.497465 -vt 0.354052 0.202499 -vt 0.292962 0.349982 -vt 0.501535 0.558555 -vt 0.710108 0.349982 -vt 0.649018 0.202499 -vt 0.696457 0.746920 -vt 0.827586 0.456239 -vt 0.195847 0.505400 -vt 0.656953 0.655670 -vt 0.175484 0.243725 -vt 0.807223 0.194564 -vt 0.395278 0.676034 -vt 0.346117 0.044294 -vt 0.607792 0.023931 -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.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.000000 1.000000 -0.000000 -vn -0.250500 0.756000 -0.604800 -vn 0.000000 -1.000000 0.000000 -vn -0.604800 0.756000 0.250500 -vn 0.250500 0.756000 0.604800 -vn 0.604800 0.756000 -0.250500 -vn -0.604800 0.756000 -0.250500 -vn -0.250500 0.756000 0.604800 -vn 0.604800 0.756000 0.250500 -vn 0.250500 0.756000 -0.604800 -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 16/14/7 2/1/7 1/15/7 -f 14/16/8 16/14/8 15/17/8 -f 7/18/9 20/19/9 19/20/9 -f 24/21/10 17/22/10 25/23/10 -f 13/24/9 23/25/9 22/26/9 -f 9/27/9 21/28/9 20/29/9 -f 15/30/9 24/31/9 23/32/9 -f 5/33/9 19/34/9 18/35/9 -f 11/36/9 22/37/9 21/38/9 -f 1/39/9 17/22/9 24/21/9 -f 3/40/9 18/41/9 17/42/9 -f 28/43/11 30/44/11 32/45/11 -f 23/25/12 31/46/12 30/44/12 -f 21/28/13 29/47/13 28/43/13 -f 19/34/14 27/48/14 26/49/14 -f 24/31/15 32/45/15 31/46/15 -f 22/37/16 30/44/16 29/47/16 -f 19/20/17 20/19/17 28/43/17 -f 17/42/18 18/41/18 26/49/18 -f 1/15/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 15/17/7 16/14/7 1/15/7 -f 13/50/8 14/16/8 15/17/8 -f 5/51/9 7/18/9 19/20/9 -f 32/45/10 24/21/10 25/23/10 -f 11/52/9 13/24/9 22/26/9 -f 7/53/9 9/27/9 20/29/9 -f 13/54/9 15/30/9 23/32/9 -f 3/55/9 5/33/9 18/35/9 -f 9/56/9 11/36/9 21/38/9 -f 15/57/9 1/39/9 24/21/9 -f 1/58/9 3/40/9 17/42/9 -f 32/45/11 25/23/11 26/49/11 -f 26/49/11 27/48/11 28/43/11 -f 28/43/11 29/47/11 30/44/11 -f 30/44/11 31/46/11 32/45/11 -f 32/45/11 26/49/11 28/43/11 -f 22/26/12 23/25/12 30/44/12 -f 20/29/13 21/28/13 28/43/13 -f 18/35/14 19/34/14 26/49/14 -f 23/32/15 24/31/15 31/46/15 -f 21/38/16 22/37/16 29/47/16 -f 27/48/17 19/20/17 28/43/17 -f 25/23/18 17/42/18 26/49/18 diff --git a/src/main/resources/assets/hbm/models/prototype.obj b/src/main/resources/assets/hbm/models/bombs/prototype.obj similarity index 100% rename from src/main/resources/assets/hbm/models/prototype.obj rename to src/main/resources/assets/hbm/models/bombs/prototype.obj diff --git a/src/main/resources/assets/hbm/models/bombs/tsar.obj b/src/main/resources/assets/hbm/models/bombs/tsar.obj new file mode 100644 index 0000000000..b40b0a192f --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/tsar.obj @@ -0,0 +1,10781 @@ +# Blender v2.79 (sub 0) OBJ File: 'tsar.blend' +# www.blender.org +o Cylinder.004_Cylinder.007 +v -2.620922 1.635705 0.578094 +v -2.855725 1.642531 0.571237 +v -2.857056 1.618167 0.619268 +v -2.621934 1.617162 0.614649 +v -2.854581 1.570805 0.644821 +v -2.620051 1.581115 0.634097 +v -2.848963 1.513135 0.641050 +v -2.615775 1.537224 0.631227 +v -2.842643 1.466264 0.614492 +v -2.611261 1.503337 0.612760 +v -2.563446 1.585110 0.537187 +v -2.564632 1.589535 0.547590 +v -2.566141 1.591165 0.565786 +v -2.566561 1.583473 0.580950 +v -2.565780 1.568521 0.589017 +v -2.564006 1.550314 0.587826 +v -2.562723 1.539821 0.583649 +v -2.617283 1.631775 0.534227 +v -2.850945 1.637368 0.513600 +v -2.613003 1.612516 0.500754 +v -2.585983 1.617706 0.539960 +v -2.582817 1.603788 0.514795 +v -2.588855 1.620807 0.574583 +v -2.589654 1.606172 0.603435 +v -2.588167 1.577722 0.618784 +v -2.584792 1.543080 0.616519 +v -2.581442 1.517618 0.603197 +v -2.844932 1.609716 0.467325 +v -2.898388 1.597308 0.470969 +v -2.903679 1.621500 0.511863 +v -2.919393 1.564240 0.501247 +v -2.921673 1.574001 0.519696 +v -2.907963 1.626127 0.563514 +v -2.923886 1.576390 0.546373 +v -2.909156 1.604294 0.606555 +v -2.924502 1.565114 0.568603 +v -2.906938 1.561851 0.629454 +v -2.923356 1.543193 0.580430 +v -2.901903 1.510171 0.626075 +v -2.920756 1.516501 0.578685 +v -2.896337 1.468756 0.602850 +v -2.918334 1.497845 0.569361 +v 0.197844 1.759225 0.642473 +v 0.197845 1.827974 0.671655 +v 0.197844 1.912615 0.553176 +v 0.197844 2.031451 0.273215 +v 0.197844 2.057882 0.130027 +v 0.197844 1.989133 0.100845 +v 0.351714 2.057882 0.130027 +v 0.351714 1.989133 0.100845 +v 0.351714 2.031451 0.273215 +v 0.351714 1.912615 0.553176 +v 0.351714 1.827974 0.671655 +v 0.351714 1.759225 0.642473 +v 0.324833 2.031451 0.273215 +v 0.224726 2.031451 0.273215 +v 0.224726 2.090056 0.353570 +v 0.324833 2.090056 0.353570 +v 0.224726 2.082111 0.505154 +v 0.324832 2.082111 0.505154 +v 0.224726 1.912615 0.553176 +v 0.324832 1.912615 0.553176 +v 0.324833 2.071492 0.382580 +v 0.324833 2.008010 0.328440 +v 0.224726 2.071492 0.382581 +v 0.224726 2.008010 0.328439 +v 0.324833 2.066682 0.474362 +v 0.324833 1.936056 0.497951 +v 0.224726 1.936056 0.497951 +v 0.224726 2.066682 0.474362 +v -0.757311 1.000000 -1.032090 +v 1.306870 1.000000 -1.032090 +v 1.306870 0.681067 -0.981576 +v -0.757311 0.681066 -0.981576 +v 1.306869 0.393353 -0.834979 +v -0.757311 0.393352 -0.834979 +v 1.306870 0.165022 -0.606647 +v -0.757311 0.165021 -0.606647 +v 1.306870 0.018424 -0.318933 +v -0.757311 0.018424 -0.318933 +v 1.306870 -0.032090 -0.000000 +v -0.757311 -0.032090 -0.000000 +v 1.306870 0.018424 0.318934 +v -0.757311 0.018424 0.318933 +v 1.306870 0.165022 0.606647 +v -0.757311 0.165021 0.606647 +v 1.306870 0.393353 0.834979 +v -0.757311 0.393353 0.834979 +v 1.306870 0.681067 0.981576 +v -0.757311 0.681066 0.981576 +v 1.306870 1.000000 1.032090 +v -0.757311 1.000000 1.032090 +v 1.306870 1.318934 0.981576 +v -0.757311 1.318933 0.981576 +v -0.757311 1.606647 0.834979 +v 1.306870 1.606648 0.834979 +v 1.306869 1.834979 0.606647 +v -0.757311 1.834979 0.606647 +v 1.306869 1.981576 0.318934 +v -0.757311 1.981576 0.318934 +v 1.306869 2.032090 0.000000 +v -0.757311 2.032090 0.000000 +v 1.306870 1.981576 -0.318933 +v -0.757311 1.981576 -0.318933 +v 1.306870 1.834979 -0.606647 +v -0.757311 1.834978 -0.606647 +v 1.306870 1.606647 -0.834978 +v -0.757311 1.606647 -0.834978 +v 2.054217 0.490209 -0.701667 +v 2.054217 0.298333 -0.509791 +v -0.757311 1.318933 -0.981576 +v 1.306870 1.318933 -0.981576 +v -3.225221 0.299680 -0.227548 +v -3.225221 0.404272 -0.432822 +v 2.054217 0.490209 0.701667 +v 2.054217 0.298333 0.509791 +v 2.521168 0.480886 0.377158 +v 2.521168 0.622842 0.519114 +v 2.054217 1.000000 -0.867308 +v 2.054217 0.731987 -0.824859 +v 2.054217 1.509791 0.701667 +v 2.054217 1.701667 0.509791 +v 2.054217 1.701667 -0.509791 +v 2.054217 1.509791 -0.701667 +v 2.054217 0.132692 -0.000000 +v 2.054217 0.175141 0.268013 +v 2.054217 1.000000 0.867308 +v 2.054217 1.268013 0.824859 +v 2.054217 1.867308 0.000000 +v 2.054217 1.824859 -0.268013 +v 2.054217 0.175141 -0.268013 +v 2.054217 0.731987 0.824859 +v 2.054217 1.824859 0.268013 +v 2.054217 1.268013 -0.824859 +v 2.521168 0.358340 -0.000000 +v 2.521168 0.389745 -0.198284 +v 2.772793 0.679104 -0.104265 +v 2.772793 0.662590 -0.000000 +v 2.521168 1.000000 -0.641660 +v 2.521168 0.801716 -0.610255 +v 2.521168 1.641660 0.000000 +v 2.521168 1.610255 -0.198284 +v 2.521168 0.801716 0.610255 +v 2.521168 0.622842 -0.519114 +v 2.521168 1.519114 -0.377158 +v 2.521168 1.000000 0.641660 +v 2.521168 0.480886 -0.377158 +v 2.521168 1.377158 -0.519114 +v 2.521168 1.198284 0.610255 +v 2.521168 1.198284 -0.610255 +v 2.521168 1.377159 0.519114 +v 2.521168 1.519114 0.377158 +v 2.521168 0.389745 0.198284 +v 2.521168 1.610255 0.198284 +v 2.772792 1.337410 0.000000 +v 2.772792 1.320896 0.104265 +v 2.836521 1.161198 0.052376 +v 2.836520 1.169494 0.000000 +v 2.772792 1.104266 -0.320896 +v 2.772792 1.000000 -0.337410 +v 2.772793 1.198325 0.272970 +v 2.772793 1.272971 0.198325 +v 2.772792 0.679104 0.104265 +v 2.772793 0.727030 0.198325 +v 2.772793 0.801676 0.272971 +v 2.772793 0.895735 -0.320896 +v 2.772793 1.320896 -0.104266 +v 2.772793 0.895735 0.320896 +v 2.772793 0.801676 -0.272971 +v 2.772792 1.272971 -0.198325 +v 2.772792 1.000000 0.337410 +v 2.772792 0.727030 -0.198325 +v 2.772792 1.198325 -0.272970 +v 2.772792 1.104266 0.320896 +v 2.836521 0.947624 -0.161198 +v 2.836521 1.000000 -0.169493 +v 2.836520 1.052377 -0.161198 +v 2.836521 1.099626 -0.137123 +v 2.836521 1.137123 -0.099626 +v 2.836521 1.161198 -0.052376 +v 2.836521 1.137123 0.099626 +v 2.836521 1.099626 0.137123 +v 2.836521 1.052377 0.161198 +v 2.836521 1.000000 0.169493 +v 2.836521 0.947624 0.161198 +v 2.836520 0.900375 0.137123 +v 2.836521 0.862877 0.099626 +v 2.836521 0.838803 0.052376 +v 2.836521 0.830507 -0.000000 +v 2.836521 0.838803 -0.052376 +v 2.836521 0.862877 -0.099626 +v 2.836521 0.900375 -0.137123 +v -3.225221 1.700320 0.227548 +v -3.225221 1.736360 0.000000 +v -5.250397 1.736359 0.000000 +v -5.250397 1.700319 0.227548 +v -3.225221 0.772452 0.700320 +v -3.225221 0.567178 0.595728 +v -3.225221 1.595728 0.432822 +v -3.225221 1.227548 -0.700320 +v -3.225221 1.432822 -0.595728 +v -3.225221 0.567178 -0.595728 +v -3.225221 0.772452 -0.700320 +v -3.225221 0.404272 0.432822 +v -3.225221 0.299680 0.227548 +v -3.225221 1.432822 0.595728 +v -3.225221 1.227548 0.700320 +v -3.225221 1.595728 -0.432821 +v -3.225221 1.700320 -0.227548 +v -3.225221 0.263640 -0.000000 +v -3.225221 1.000000 0.736360 +v -3.225221 1.000000 -0.736360 +v -5.250397 1.700319 -0.227548 +v -5.250396 1.595727 -0.432821 +v -5.250396 1.534429 -0.388286 +v -5.250397 1.628259 -0.204134 +v -5.250397 0.567177 0.595728 +v -5.250396 0.404271 0.432822 +v -5.250397 0.772451 -0.700320 +v -5.250396 0.999999 -0.736360 +v -5.250397 0.772451 0.700320 +v -5.250397 0.567177 -0.595728 +v -5.250397 0.999999 0.736360 +v -5.250397 0.404271 -0.432822 +v -5.250397 1.432821 -0.595728 +v -5.250397 1.227547 0.700320 +v -5.250397 0.299679 -0.227548 +v -5.250397 1.227547 -0.700320 +v -5.250397 1.432821 0.595728 +v -5.250396 0.263639 -0.000000 +v -5.250397 1.595727 0.432822 +v -5.250396 0.299679 0.227548 +v -5.250397 1.388285 -0.534430 +v -5.250397 1.204133 -0.628260 +v -3.225221 1.204133 -0.628260 +v -3.225221 1.388285 -0.534430 +v -5.250397 0.999999 0.660592 +v -5.250397 0.795865 0.628260 +v -5.250397 0.465569 -0.388286 +v -5.250397 0.611713 -0.534430 +v -5.250397 1.204133 0.628260 +v -5.250396 0.371739 -0.204134 +v -5.250397 1.388285 0.534430 +v -5.250397 0.339407 -0.000000 +v -5.250397 0.999999 -0.660592 +v -5.250396 1.534429 0.388286 +v -5.250396 0.371739 0.204134 +v -5.250397 1.628259 0.204134 +v -5.250397 0.465569 0.388286 +v -5.250397 1.660591 0.000000 +v -5.250397 0.611713 0.534430 +v -5.250397 0.795865 -0.628260 +v -3.225221 0.999999 -0.660592 +v -3.225221 0.795865 -0.628260 +v -3.225221 0.611713 -0.534430 +v -3.225221 0.465569 -0.388286 +v -3.225221 0.371739 -0.204134 +v -3.225221 0.339407 -0.000000 +v -3.225221 0.371739 0.204134 +v -3.225221 0.465569 0.388286 +v -3.225221 0.611713 0.534430 +v -3.225221 0.795865 0.628260 +v -3.225221 0.999999 0.660592 +v -3.225221 1.204133 0.628260 +v -3.225221 1.388285 0.534430 +v -3.225221 1.534429 0.388286 +v -3.225221 1.628259 0.204134 +v -3.225221 1.660591 0.000000 +v -3.225221 1.628259 -0.204134 +v -3.225221 1.534429 -0.388286 +v 2.588751 1.000000 -0.551802 +v 2.764493 1.000000 -0.551802 +v 2.764494 0.935086 -0.524914 +v 2.588751 0.935086 -0.524914 +v 2.802250 1.000000 -0.533620 +v 2.816855 1.000000 -0.500856 +v 2.816855 0.971110 -0.488889 +v 2.802250 0.947943 -0.512057 +v 2.764493 0.908198 -0.460000 +v 2.588750 0.908198 -0.460000 +v 2.816855 0.959144 -0.460000 +v 2.802250 0.926380 -0.460000 +v 2.764493 0.935086 -0.395086 +v 2.588751 0.935086 -0.395086 +v 2.816855 0.971110 -0.431111 +v 2.802250 0.947943 -0.407943 +v 2.764493 1.000000 -0.368198 +v 2.588750 1.000000 -0.368198 +v 2.816855 1.000000 -0.419144 +v 2.802250 1.000000 -0.386380 +v 2.802250 1.052057 -0.407943 +v 2.764493 1.064914 -0.395086 +v 2.588750 1.064914 -0.395086 +v 2.816855 1.028889 -0.431110 +v 2.802250 1.073620 -0.460000 +v 2.764493 1.091802 -0.460000 +v 2.588751 1.091802 -0.460000 +v 2.816855 1.040856 -0.460000 +v 2.802250 1.052057 -0.512057 +v 2.764493 1.064914 -0.524914 +v 2.816855 1.028889 -0.488889 +v 2.588751 1.064914 -0.524914 +v 2.588751 1.000000 0.368198 +v 2.764493 1.000000 0.368198 +v 2.764493 0.935086 0.395086 +v 2.588751 0.935086 0.395086 +v 2.802250 1.000000 0.386380 +v 2.816855 1.000000 0.419144 +v 2.816855 0.971110 0.431111 +v 2.802250 0.947943 0.407943 +v 2.764493 0.908198 0.460000 +v 2.588751 0.908198 0.460000 +v 2.816855 0.959144 0.460000 +v 2.802250 0.926380 0.460000 +v 2.764494 0.935086 0.524914 +v 2.588751 0.935086 0.524914 +v 2.816855 0.971111 0.488889 +v 2.802250 0.947943 0.512057 +v 2.764493 1.000000 0.551802 +v 2.588751 1.000000 0.551802 +v 2.816854 1.000000 0.500856 +v 2.802250 1.000000 0.533620 +v 2.802250 1.052057 0.512057 +v 2.764493 1.064914 0.524914 +v 2.588750 1.064914 0.524914 +v 2.816855 1.028889 0.488889 +v 2.802250 1.073620 0.460000 +v 2.764494 1.091802 0.460000 +v 2.588751 1.091802 0.460000 +v 2.816855 1.040856 0.460000 +v 2.802250 1.052057 0.407943 +v 2.764494 1.064914 0.395086 +v 2.816855 1.028889 0.431111 +v 2.588751 1.064914 0.395086 +v 0.197845 1.759225 -0.642473 +v 0.197845 1.989133 -0.100845 +v 0.197844 2.057882 -0.130027 +v 0.197844 2.031451 -0.273215 +v 0.197845 1.912615 -0.553176 +v 0.197844 1.827974 -0.671655 +v 0.351714 1.989133 -0.100845 +v 0.351714 2.057882 -0.130027 +v 0.351714 1.759225 -0.642473 +v 0.351714 1.827974 -0.671655 +v 0.351714 1.912615 -0.553176 +v 0.351714 2.031451 -0.273215 +v 0.324833 2.031451 -0.273215 +v 0.324832 2.090055 -0.353570 +v 0.224726 2.090055 -0.353570 +v 0.224726 2.031451 -0.273215 +v 0.324833 2.082111 -0.505154 +v 0.224726 2.082111 -0.505154 +v 0.224726 1.912615 -0.553176 +v 0.324833 1.912615 -0.553176 +v 0.324833 2.008010 -0.328439 +v 0.324833 2.071492 -0.382581 +v 0.224726 2.008010 -0.328439 +v 0.224726 2.071492 -0.382580 +v 0.324833 2.066682 -0.474362 +v 0.324833 1.936056 -0.497951 +v 0.224726 2.066682 -0.474362 +v 0.224726 1.936056 -0.497951 +v 0.274779 1.028989 1.006440 +v 0.274779 0.957612 1.079144 +v 0.338506 0.940748 1.076465 +v 0.368048 1.004307 1.002519 +v 0.385156 0.894675 1.069146 +v 0.436326 0.936875 0.991806 +v 0.402232 0.831738 1.059147 +v 0.461318 0.844761 0.977173 +v 0.385156 0.768801 1.049149 +v 0.436327 0.752646 0.962539 +v 0.338506 0.722728 1.041829 +v 0.368049 0.685214 0.951826 +v 0.274779 0.705864 1.039150 +v 0.274779 0.660532 0.947905 +v 0.211053 0.722727 1.041829 +v 0.181510 0.685214 0.951826 +v 0.164402 0.768801 1.049149 +v 0.113232 0.752646 0.962539 +v 0.147327 0.831738 1.059147 +v 0.088241 0.844761 0.977173 +v 0.164402 0.894675 1.069146 +v 0.113232 0.936875 0.991806 +v 0.197515 0.787682 1.052148 +v 0.185562 0.831738 1.059147 +v 0.211053 0.940748 1.076465 +v 0.181510 1.004307 1.002519 +v 0.319388 0.908045 1.071270 +v 0.274779 0.919849 1.073145 +v 0.274779 0.925524 1.037426 +v 0.319387 0.913719 1.035550 +v 0.230171 0.755431 1.047024 +v 0.274779 0.743626 1.045149 +v 0.319388 0.755431 1.047024 +v 0.352043 0.787682 1.052148 +v 0.363996 0.831738 1.059147 +v 0.230171 0.908045 1.071270 +v 0.352043 0.875793 1.066146 +v 0.197515 0.875793 1.066146 +v 0.230171 0.913719 1.035550 +v 0.197515 0.881468 1.030426 +v 0.185562 0.837412 1.023427 +v 0.197515 0.793356 1.016428 +v 0.230171 0.761105 1.011305 +v 0.274779 0.749300 1.009429 +v 0.319388 0.761105 1.011305 +v 0.352043 0.793356 1.016428 +v 0.363996 0.837412 1.023427 +v 0.352043 0.881468 1.030427 +v 0.274779 1.028989 -1.006440 +v 0.368049 1.004307 -1.002519 +v 0.338505 0.940748 -1.076465 +v 0.274779 0.957612 -1.079144 +v 0.436327 0.936875 -0.991807 +v 0.385156 0.894675 -1.069146 +v 0.461318 0.844761 -0.977173 +v 0.402232 0.831738 -1.059147 +v 0.436327 0.752647 -0.962539 +v 0.385156 0.768801 -1.049149 +v 0.368049 0.685215 -0.951826 +v 0.338506 0.722728 -1.041829 +v 0.274779 0.660533 -0.947905 +v 0.274779 0.705864 -1.039150 +v 0.181510 0.685215 -0.951826 +v 0.211053 0.722728 -1.041829 +v 0.113232 0.752647 -0.962539 +v 0.164402 0.768801 -1.049149 +v 0.088241 0.844761 -0.977173 +v 0.147327 0.831738 -1.059147 +v 0.113232 0.936875 -0.991806 +v 0.164402 0.894675 -1.069146 +v 0.185563 0.831738 -1.059147 +v 0.197515 0.787682 -1.052148 +v 0.181510 1.004307 -1.002519 +v 0.211053 0.940748 -1.076465 +v 0.319388 0.908045 -1.071270 +v 0.319388 0.913720 -1.035550 +v 0.274779 0.925524 -1.037425 +v 0.274779 0.919850 -1.073145 +v 0.230171 0.755431 -1.047025 +v 0.274779 0.743626 -1.045149 +v 0.319388 0.755431 -1.047025 +v 0.352043 0.787682 -1.052148 +v 0.363996 0.831738 -1.059147 +v 0.230171 0.908045 -1.071270 +v 0.352043 0.875794 -1.066146 +v 0.197515 0.875794 -1.066146 +v 0.352043 0.881469 -1.030427 +v 0.363996 0.837413 -1.023427 +v 0.352043 0.793357 -1.016429 +v 0.319387 0.761106 -1.011305 +v 0.274779 0.749301 -1.009430 +v 0.230171 0.761106 -1.011305 +v 0.197515 0.793357 -1.016429 +v 0.185563 0.837413 -1.023427 +v 0.197515 0.881468 -1.030427 +v 0.230171 0.913720 -1.035550 +v -5.245664 1.724600 0.143804 +v -5.194486 1.806213 0.165672 +v -5.178945 1.806213 0.165672 +v -5.127767 1.724600 0.143804 +v -5.127767 1.699425 0.237762 +v -5.178945 1.781037 0.259629 +v -5.194487 1.781037 0.259629 +v -5.245664 1.699425 0.237762 +v -5.194486 1.789429 0.228310 +v -5.245664 1.707816 0.206443 +v -5.127767 1.707816 0.206443 +v -5.178945 1.789429 0.228310 +v -5.194486 1.780201 0.262749 +v -5.194487 1.657673 0.284806 +v -5.178945 1.657673 0.284806 +v -5.178945 1.780201 0.262749 +v -5.178945 1.807048 0.162553 +v -5.178945 1.711965 0.082187 +v -5.194486 1.711965 0.082187 +v -5.194486 1.807048 0.162553 +v -5.245664 1.716209 0.175123 +v -5.127767 1.716209 0.175123 +v -5.178945 1.797821 0.196991 +v -5.194486 1.797821 0.196991 +v -5.194487 1.680623 0.199156 +v -5.178945 1.680623 0.199156 +v -5.178945 1.689015 0.167837 +v -5.194487 1.689015 0.167837 +v -5.245664 1.676589 0.231643 +v -5.127767 1.676589 0.231643 +v -5.245664 1.693372 0.169004 +v -5.127767 1.693372 0.169004 +v -5.127767 1.684980 0.200324 +v -5.245664 1.684980 0.200324 +v -5.245664 1.701764 0.137685 +v -5.127767 1.701764 0.137685 +v -5.254691 1.721862 0.168034 +v -5.254690 1.709168 0.215409 +v -5.297078 1.734766 0.222269 +v -5.297078 1.747460 0.174893 +v -5.254690 1.809059 0.242176 +v -5.254690 1.821754 0.194800 +v -5.296170 1.782376 0.235026 +v -5.303239 1.758633 0.228664 +v -5.303239 1.771327 0.181288 +v -5.296170 1.795070 0.187649 +v -4.735427 1.756607 0.186990 +v -5.258313 1.800607 0.198463 +v -5.258313 1.792577 0.228430 +v -4.735427 1.748737 0.216365 +v -4.735427 1.714383 0.207160 +v -5.258312 1.727160 0.210900 +v -5.258312 1.735189 0.180934 +v -4.735427 1.722255 0.177786 +v -4.738048 1.775154 0.227643 +v -4.738048 1.685866 0.203718 +v -4.703030 1.716621 0.211958 +v -4.703030 1.747569 0.220251 +v -4.713286 1.767075 0.225477 +v -4.738048 1.695836 0.166508 +v -4.738048 1.785124 0.190433 +v -4.713286 1.777045 0.188268 +v -4.703029 1.757539 0.183041 +v -4.703030 1.726591 0.174749 +v -4.755419 1.709252 0.136762 +v -4.755419 1.754777 0.148961 +v -4.747920 1.774392 0.154217 +v -4.723568 1.784320 0.156877 +v -4.699216 1.774392 0.154217 +v -4.691718 1.754777 0.148961 +v -4.691718 1.709252 0.136762 +v -4.723568 1.766025 0.225158 +v -4.723568 1.757680 0.256300 +v -4.699217 1.747751 0.253640 +v -4.699216 1.756096 0.222498 +v -4.755419 1.700907 0.167905 +v -4.755419 1.746433 0.180104 +v -4.691718 1.690956 0.205043 +v -4.691718 1.736482 0.217242 +v -4.691718 1.728137 0.248385 +v -4.691718 1.682611 0.236187 +v -4.723568 1.775976 0.188019 +v -4.747920 1.766048 0.185359 +v -4.755419 1.736482 0.217242 +v -4.755419 1.728137 0.248385 +v -4.747920 1.747751 0.253640 +v -4.747920 1.756096 0.222498 +v -4.691718 1.746433 0.180104 +v -4.699217 1.766048 0.185359 +v -4.755419 1.682611 0.236187 +v -4.691718 1.700907 0.167905 +v -4.755418 1.690956 0.205043 +v -4.798187 1.751698 0.243955 +v -4.761486 1.751697 0.243955 +v -4.761486 1.751643 -0.243955 +v -4.798187 1.751643 -0.243955 +v -4.798187 1.569596 0.550618 +v -4.761486 1.569596 0.550619 +v -4.798186 1.248075 0.750550 +v -4.761485 1.248075 0.750550 +v -4.798187 0.878909 0.779609 +v -4.761485 0.878909 0.779609 +v -4.797982 0.536913 0.638658 +v -4.761280 0.536913 0.638658 +v -4.798189 0.295753 0.357419 +v -4.761487 0.295753 0.357419 +v -4.798187 0.210817 -0.000000 +v -4.761485 0.210817 -0.000000 +v -4.798189 0.295753 -0.355937 +v -4.761488 0.295753 -0.355937 +v -4.798189 0.537259 -0.641050 +v -4.761488 0.537259 -0.641050 +v -4.798187 0.878909 -0.780850 +v -4.761485 0.878909 -0.780850 +v -4.798187 1.248075 -0.750708 +v -4.761486 1.248075 -0.750708 +v -4.798186 1.557471 -0.558672 +v -4.761486 1.557471 -0.558672 +v -3.764244 1.624065 0.401704 +v -3.764243 1.604246 0.391606 +v -3.715309 1.604246 0.391606 +v -3.715310 1.624065 0.401704 +v -3.790732 1.674196 0.303318 +v -3.790732 1.654377 0.293219 +v -3.790732 1.621852 0.357052 +v -3.790732 1.641671 0.367150 +v -3.688820 1.654377 0.293219 +v -3.688820 1.674196 0.303318 +v -3.688820 1.641671 0.367150 +v -3.688820 1.621852 0.357052 +v -3.715309 1.691802 0.268764 +v -3.715309 1.671983 0.258666 +v -3.764243 1.671983 0.258666 +v -3.764243 1.691802 0.268764 +v -3.715309 2.365680 0.068327 +v -3.715309 2.365680 0.046084 +v -3.764244 2.365680 0.046084 +v -3.764243 2.365680 0.068327 +v -3.688820 2.255258 0.068327 +v -3.688820 2.255258 0.046084 +v -3.688820 2.326899 0.046084 +v -3.688820 2.326899 0.068327 +v -3.790732 2.255258 0.046083 +v -3.790732 2.255258 0.068327 +v -3.790732 2.326899 0.068327 +v -3.790732 2.326899 0.046084 +v -3.764243 2.216478 0.068327 +v -3.764244 2.216478 0.046084 +v -3.715309 2.216478 0.046084 +v -3.715309 2.216478 0.068327 +v -3.746801 2.291079 0.068327 +v -3.732751 2.291079 0.068327 +v -3.732750 1.657933 0.335234 +v -3.746801 1.657933 0.335234 +v -4.064243 1.624065 0.401704 +v -4.064243 1.604246 0.391606 +v -4.015309 1.604246 0.391606 +v -4.015309 1.624065 0.401704 +v -4.090732 1.674196 0.303318 +v -4.090733 1.654377 0.293219 +v -4.090732 1.621852 0.357052 +v -4.090732 1.641671 0.367150 +v -3.988820 1.654376 0.293219 +v -3.988820 1.674196 0.303318 +v -3.988820 1.641671 0.367150 +v -3.988820 1.621852 0.357052 +v -4.015309 1.691802 0.268764 +v -4.015309 1.671983 0.258666 +v -4.064243 1.671982 0.258666 +v -4.064243 1.691802 0.268764 +v -4.015309 2.365680 0.068327 +v -4.015309 2.365680 0.046083 +v -4.064244 2.365680 0.046084 +v -4.064244 2.365680 0.068327 +v -3.988821 2.255258 0.068327 +v -3.988821 2.255258 0.046084 +v -3.988821 2.326899 0.046084 +v -3.988820 2.326899 0.068327 +v -4.090732 2.255258 0.046084 +v -4.090732 2.255258 0.068327 +v -4.090732 2.326899 0.068327 +v -4.090732 2.326899 0.046084 +v -4.064244 2.216478 0.068327 +v -4.064244 2.216478 0.046084 +v -4.015309 2.216478 0.046084 +v -4.015309 2.216478 0.068327 +v -4.046802 2.291079 0.068327 +v -4.032752 2.291079 0.068327 +v -4.032751 1.657933 0.335234 +v -4.046801 1.657933 0.335234 +v -4.364244 1.624065 0.401704 +v -4.364244 1.604246 0.391606 +v -4.315310 1.604246 0.391606 +v -4.315310 1.624065 0.401704 +v -4.390733 1.674195 0.303318 +v -4.390733 1.654376 0.293219 +v -4.390733 1.621852 0.357052 +v -4.390733 1.641671 0.367150 +v -4.288821 1.654376 0.293219 +v -4.288821 1.674195 0.303318 +v -4.288821 1.641671 0.367150 +v -4.288821 1.621852 0.357052 +v -4.315310 1.691801 0.268764 +v -4.315310 1.671982 0.258666 +v -4.364244 1.671982 0.258666 +v -4.364243 1.691801 0.268764 +v -4.315309 2.365680 0.068327 +v -4.315310 2.365680 0.046084 +v -4.364244 2.365680 0.046084 +v -4.364244 2.365680 0.068327 +v -4.288821 2.255258 0.068327 +v -4.288821 2.255258 0.046084 +v -4.288821 2.326899 0.046084 +v -4.288821 2.326899 0.068327 +v -4.390733 2.255258 0.046083 +v -4.390733 2.255258 0.068327 +v -4.390733 2.326899 0.068327 +v -4.390733 2.326899 0.046084 +v -4.364244 2.216478 0.068327 +v -4.364244 2.216477 0.046084 +v -4.315310 2.216478 0.046083 +v -4.315309 2.216478 0.068327 +v -4.346802 2.291079 0.068327 +v -4.346802 1.657933 0.335234 +v -4.332751 1.657933 0.335234 +v -4.332752 2.291079 0.068327 +v -3.764244 1.624065 -0.401704 +v -3.715309 1.624065 -0.401704 +v -3.715309 1.604246 -0.391606 +v -3.764244 1.604246 -0.391606 +v -3.790732 1.674196 -0.303318 +v -3.790732 1.641671 -0.367150 +v -3.790732 1.621852 -0.357052 +v -3.790732 1.654377 -0.293219 +v -3.688820 1.654377 -0.293219 +v -3.688820 1.621852 -0.357052 +v -3.688821 1.641671 -0.367150 +v -3.688820 1.674196 -0.303318 +v -3.715309 1.691802 -0.268764 +v -3.715309 1.671982 -0.258666 +v -3.764244 1.671982 -0.258666 +v -3.764244 1.691801 -0.268764 +v -3.715310 2.365680 -0.068327 +v -3.764244 2.365680 -0.068327 +v -3.764244 2.365680 -0.046083 +v -3.715310 2.365680 -0.046083 +v -3.688821 2.255258 -0.068327 +v -3.688821 2.326899 -0.068327 +v -3.688821 2.326899 -0.046083 +v -3.688821 2.255258 -0.046084 +v -3.790733 2.255258 -0.046083 +v -3.790732 2.326899 -0.046083 +v -3.790733 2.326899 -0.068327 +v -3.790732 2.255258 -0.068327 +v -3.764244 2.216478 -0.068327 +v -3.764244 2.216478 -0.046083 +v -3.715310 2.216478 -0.046083 +v -3.715310 2.216478 -0.068327 +v -3.746802 2.291079 -0.068327 +v -3.732752 2.291079 -0.068327 +v -3.732751 1.657933 -0.335234 +v -3.746801 1.657933 -0.335234 +v -4.064244 1.624065 -0.401704 +v -4.015310 1.624065 -0.401704 +v -4.015310 1.604246 -0.391606 +v -4.064244 1.604246 -0.391606 +v -4.090733 1.674195 -0.303318 +v -4.090733 1.641671 -0.367150 +v -4.090733 1.621852 -0.357052 +v -4.090733 1.654376 -0.293219 +v -3.988821 1.654376 -0.293219 +v -3.988821 1.621852 -0.357052 +v -3.988820 1.641671 -0.367150 +v -3.988821 1.674195 -0.303318 +v -4.015309 1.691801 -0.268764 +v -4.015310 1.671982 -0.258666 +v -4.064243 1.671982 -0.258666 +v -4.064244 1.691801 -0.268764 +v -4.015310 2.365680 -0.068327 +v -4.064244 2.365680 -0.068327 +v -4.064244 2.365680 -0.046083 +v -4.015309 2.365680 -0.046084 +v -3.988821 2.255258 -0.068327 +v -3.988821 2.326899 -0.068327 +v -3.988821 2.326899 -0.046083 +v -3.988821 2.255258 -0.046084 +v -4.090733 2.255258 -0.046084 +v -4.090733 2.326899 -0.046083 +v -4.090733 2.326899 -0.068327 +v -4.090733 2.255258 -0.068327 +v -4.064244 2.216478 -0.068327 +v -4.064244 2.216478 -0.046083 +v -4.015309 2.216478 -0.046083 +v -4.015310 2.216478 -0.068327 +v -4.046802 2.291079 -0.068327 +v -4.046802 1.657933 -0.335234 +v -4.032751 1.657933 -0.335234 +v -4.032752 2.291079 -0.068327 +v -4.364244 1.624065 -0.401704 +v -4.315310 1.624065 -0.401704 +v -4.315310 1.604246 -0.391606 +v -4.364244 1.604246 -0.391606 +v -4.390733 1.674195 -0.303318 +v -4.390733 1.641671 -0.367150 +v -4.390733 1.621852 -0.357052 +v -4.390733 1.654376 -0.293219 +v -4.288821 1.654376 -0.293219 +v -4.288821 1.621852 -0.357052 +v -4.288821 1.641671 -0.367150 +v -4.288821 1.674195 -0.303318 +v -4.315310 1.691801 -0.268764 +v -4.315310 1.671982 -0.258666 +v -4.364244 1.671982 -0.258666 +v -4.364244 1.691801 -0.268764 +v -4.315310 2.365680 -0.068327 +v -4.364244 2.365680 -0.068327 +v -4.364244 2.365680 -0.046083 +v -4.315310 2.365680 -0.046084 +v -4.288821 2.255258 -0.068327 +v -4.288821 2.326899 -0.068327 +v -4.288821 2.326899 -0.046083 +v -4.288821 2.255258 -0.046083 +v -4.390733 2.255258 -0.046083 +v -4.390733 2.326899 -0.046083 +v -4.390733 2.326899 -0.068327 +v -4.390734 2.255258 -0.068327 +v -4.364244 2.216477 -0.068327 +v -4.364244 2.216478 -0.046083 +v -4.315310 2.216478 -0.046083 +v -4.315310 2.216477 -0.068327 +v -4.346802 2.291079 -0.068327 +v -4.332752 2.291079 -0.068327 +v -4.332752 1.657933 -0.335234 +v -4.346802 1.657933 -0.335234 +v -5.204793 2.553267 0.054916 +v -5.204793 1.948851 0.054916 +v -5.007714 1.696526 0.054916 +v -4.801618 1.696526 0.054916 +v -4.801618 1.993642 0.054916 +v -4.511972 1.993641 0.054916 +v -4.511972 1.696526 0.054916 +v -3.522396 1.696526 0.054916 +v -3.522397 2.356017 0.054916 +v -3.580169 2.495494 0.054916 +v -3.719646 2.553267 0.054916 +v -3.522396 1.696526 -0.054916 +v -3.522396 2.356017 -0.054916 +v -3.719646 2.553267 -0.054916 +v -3.580169 2.495494 -0.054916 +v -5.204792 2.553267 -0.054916 +v -5.204793 1.948851 -0.054916 +v -4.511971 1.696526 -0.054916 +v -4.511972 1.993642 -0.054916 +v -4.801618 1.993641 -0.054916 +v -5.007713 1.696526 -0.054916 +v -4.801618 1.696526 -0.054916 +v -2.620651 1.578781 -0.635644 +v -2.855374 1.570747 -0.643818 +v -2.857096 1.618464 -0.618870 +v -2.621962 1.615098 -0.616657 +v -2.855011 1.643442 -0.571184 +v -2.620375 1.634108 -0.580363 +v -2.849679 1.638988 -0.513535 +v -2.616317 1.630718 -0.536488 +v -2.843465 1.611886 -0.466963 +v -2.611883 1.611857 -0.502809 +v -2.563223 1.537561 -0.585249 +v -2.564442 1.548011 -0.589552 +v -2.566041 1.566218 -0.590966 +v -2.566585 1.581282 -0.583090 +v -2.565927 1.589168 -0.568035 +v -2.564244 1.587762 -0.549835 +v -2.562994 1.583461 -0.539387 +v -2.616795 1.534889 -0.632237 +v -2.850307 1.513076 -0.639342 +v -2.612434 1.501203 -0.613370 +v -2.585602 1.540616 -0.617930 +v -2.582372 1.515298 -0.604307 +v -2.588645 1.575259 -0.620619 +v -2.589679 1.603922 -0.605633 +v -2.588427 1.618926 -0.576988 +v -2.585224 1.616250 -0.542359 +v -2.581937 1.602633 -0.517045 +v -2.844189 1.466496 -0.612232 +v -2.897730 1.469698 -0.600068 +v -2.903115 1.510860 -0.623781 +v -2.919075 1.499452 -0.566742 +v -2.921404 1.518007 -0.576286 +v -2.907656 1.562540 -0.627793 +v -2.923749 1.544699 -0.578358 +v -2.909199 1.605301 -0.605436 +v -2.924546 1.566785 -0.566811 +v -2.907331 1.627685 -0.562703 +v -2.923581 1.578345 -0.544740 +v -2.902553 1.623693 -0.511042 +v -2.921113 1.576284 -0.518058 +v -2.897081 1.599987 -0.469888 +v -2.918740 1.566743 -0.499506 +v -2.620680 0.362780 -0.576979 +v -2.855411 0.354758 -0.569034 +v -2.857095 0.379520 -0.616850 +v -2.621962 0.381625 -0.613370 +v -2.854974 0.427107 -0.642012 +v -2.620347 0.417844 -0.632521 +v -2.849615 0.484770 -0.637781 +v -2.616268 0.461729 -0.629301 +v -2.843390 0.531445 -0.610858 +v -2.611826 0.495480 -0.610569 +v -2.563247 0.413306 -0.535926 +v -2.564463 0.408962 -0.546360 +v -2.566054 0.407479 -0.564562 +v -2.566586 0.415296 -0.579657 +v -2.565916 0.430320 -0.587602 +v -2.564224 0.448524 -0.586266 +v -2.562971 0.458988 -0.582005 +v -2.616845 0.366356 -0.533098 +v -2.850372 0.359457 -0.511379 +v -2.612492 0.385353 -0.499484 +v -2.585641 0.380625 -0.538865 +v -2.582418 0.394345 -0.513599 +v -2.588668 0.377802 -0.573498 +v -2.589680 0.392677 -0.602221 +v -2.588405 0.421262 -0.617336 +v -2.585186 0.455900 -0.614794 +v -2.581892 0.481265 -0.601274 +v -2.844264 0.386746 -0.464902 +v -2.897797 0.398925 -0.468179 +v -2.903173 0.375053 -0.509250 +v -2.919109 0.432145 -0.498074 +v -2.921433 0.422530 -0.516593 +v -2.907689 0.370842 -0.560917 +v -2.923766 0.420355 -0.543278 +v -2.909198 0.393032 -0.603766 +v -2.924546 0.431815 -0.565409 +v -2.907297 0.435677 -0.626315 +v -2.923563 0.453841 -0.577055 +v -2.902494 0.487350 -0.622523 +v -2.921083 0.480529 -0.575096 +v -2.897013 0.528594 -0.598975 +v -2.918705 0.499117 -0.565627 +v -2.620900 0.420081 0.634087 +v -2.855697 0.427027 0.641053 +v -2.857063 0.379093 0.616503 +v -2.621940 0.383600 0.615402 +v -2.854623 0.353723 0.569040 +v -2.620083 0.364291 0.579279 +v -2.849031 0.357716 0.511382 +v -2.615827 0.367330 0.535397 +v -2.842721 0.384454 0.464613 +v -2.611320 0.385928 0.501580 +v -2.563428 0.461157 0.583624 +v -2.564617 0.450738 0.588009 +v -2.566134 0.432536 0.589569 +v -2.566566 0.417403 0.581818 +v -2.565795 0.409394 0.566834 +v -2.564030 0.410654 0.548631 +v -2.562750 0.414872 0.538154 +v -2.617242 0.463962 0.630327 +v -2.850890 0.484682 0.636113 +v -2.612954 0.497508 0.611196 +v -2.585951 0.458268 0.616220 +v -2.582779 0.483486 0.602399 +v -2.588838 0.423635 0.619187 +v -2.589659 0.394841 0.604440 +v -2.588193 0.379602 0.575930 +v -2.584834 0.382001 0.541295 +v -2.581490 0.395420 0.515883 +v -2.844868 0.531061 0.608639 +v -2.898332 0.527492 0.596243 +v -2.903632 0.486507 0.620278 +v -2.919367 0.497353 0.563067 +v -2.921652 0.478868 0.572757 +v -2.907938 0.434840 0.624705 +v -2.923877 0.452183 0.575043 +v -2.909163 0.391885 0.602705 +v -2.924509 0.429997 0.563680 +v -2.906977 0.369150 0.560172 +v -2.923380 0.418255 0.541713 +v -2.901966 0.372729 0.508503 +v -2.920792 0.420104 0.515027 +v -2.896408 0.396113 0.467176 +v -2.918374 0.429498 0.496407 +v -0.694283 1.367351 -0.956906 +v -0.694283 1.558230 -0.859648 +v -0.643300 1.583064 -0.908389 +v -0.643300 1.392185 -1.005646 +v 1.243842 1.367351 0.956906 +v -0.694283 1.367351 0.956906 +v 1.243842 1.558230 0.859648 +v -0.694283 1.558230 0.859648 +v -0.643300 1.583064 0.908389 +v 1.192858 1.583065 0.908389 +v 1.243842 1.558230 -0.859648 +v 1.243842 1.367351 -0.956906 +v -0.643300 1.392185 1.005647 +v 1.192858 1.392185 1.005646 +v 1.192858 1.583065 -0.908389 +v 1.192858 1.392185 -1.005646 +v -3.764244 0.340080 0.339605 +v -3.764243 0.358734 0.327490 +v -3.715309 0.358734 0.327490 +v -3.715310 0.340080 0.339605 +v -3.790732 0.400219 0.432213 +v -3.790732 0.418874 0.420099 +v -3.790732 0.379856 0.360015 +v -3.790732 0.361201 0.372129 +v -3.688820 0.418874 0.420099 +v -3.688820 0.400219 0.432213 +v -3.688820 0.361201 0.372129 +v -3.688820 0.379856 0.360015 +v -3.715309 0.421341 0.464737 +v -3.715309 0.439995 0.452622 +v -3.764243 0.439995 0.452622 +v -3.764243 0.421341 0.464737 +v -3.715309 0.257985 1.148551 +v -3.715309 0.277248 1.159673 +v -3.764244 0.277248 1.159673 +v -3.764243 0.257985 1.148551 +v -3.688820 0.313196 1.052923 +v -3.688820 0.332459 1.064044 +v -3.688820 0.296639 1.126087 +v -3.688820 0.277376 1.114966 +v -3.790732 0.332460 1.064045 +v -3.790732 0.313196 1.052923 +v -3.790732 0.277376 1.114966 +v -3.790732 0.296639 1.126087 +v -3.764243 0.332586 1.019338 +v -3.764244 0.351849 1.030460 +v -3.715309 0.351849 1.030460 +v -3.715309 0.332586 1.019338 +v -3.746801 0.295286 1.083945 +v -3.732751 0.295286 1.083945 +v -3.732750 0.380710 0.402171 +v -3.746801 0.380710 0.402171 +v -4.064243 0.340080 0.339605 +v -4.064243 0.358734 0.327490 +v -4.015309 0.358734 0.327490 +v -4.015309 0.340080 0.339605 +v -4.090732 0.400219 0.432213 +v -4.090733 0.418874 0.420099 +v -4.090732 0.379856 0.360015 +v -4.090732 0.361201 0.372129 +v -3.988820 0.418875 0.420098 +v -3.988820 0.400219 0.432213 +v -3.988820 0.361201 0.372129 +v -3.988820 0.379856 0.360015 +v -4.015309 0.421341 0.464737 +v -4.015309 0.439995 0.452622 +v -4.064243 0.439996 0.452622 +v -4.064243 0.421341 0.464737 +v -4.015309 0.257985 1.148551 +v -4.015309 0.277249 1.159673 +v -4.064244 0.277248 1.159673 +v -4.064244 0.257985 1.148551 +v -3.988821 0.313196 1.052923 +v -3.988821 0.332459 1.064044 +v -3.988821 0.296639 1.126087 +v -3.988820 0.277376 1.114966 +v -4.090732 0.332459 1.064044 +v -4.090732 0.313196 1.052923 +v -4.090732 0.277376 1.114966 +v -4.090732 0.296639 1.126087 +v -4.064244 0.332586 1.019338 +v -4.064244 0.351849 1.030460 +v -4.015309 0.351849 1.030460 +v -4.015309 0.332586 1.019338 +v -4.046802 0.295286 1.083945 +v -4.032752 0.295286 1.083945 +v -4.032751 0.380710 0.402171 +v -4.046801 0.380710 0.402171 +v -4.364244 0.340080 0.339605 +v -4.364244 0.358734 0.327490 +v -4.315310 0.358734 0.327490 +v -4.315310 0.340080 0.339605 +v -4.390733 0.400219 0.432212 +v -4.390733 0.418875 0.420098 +v -4.390733 0.379856 0.360015 +v -4.390733 0.361201 0.372129 +v -4.288821 0.418875 0.420098 +v -4.288821 0.400219 0.432212 +v -4.288821 0.361201 0.372129 +v -4.288821 0.379856 0.360015 +v -4.315310 0.421341 0.464736 +v -4.315310 0.439996 0.452622 +v -4.364244 0.439996 0.452622 +v -4.364243 0.421341 0.464736 +v -4.315309 0.257985 1.148551 +v -4.315310 0.277248 1.159673 +v -4.364244 0.277248 1.159673 +v -4.364244 0.257985 1.148551 +v -4.288821 0.313196 1.052923 +v -4.288821 0.332459 1.064044 +v -4.288821 0.296639 1.126087 +v -4.288821 0.277376 1.114966 +v -4.390733 0.332460 1.064045 +v -4.390733 0.313196 1.052923 +v -4.390733 0.277376 1.114966 +v -4.390733 0.296639 1.126087 +v -4.364244 0.332586 1.019338 +v -4.364244 0.351850 1.030459 +v -4.315310 0.351850 1.030460 +v -4.315309 0.332586 1.019338 +v -4.346802 0.295286 1.083945 +v -4.346802 0.380710 0.402171 +v -4.332751 0.380710 0.402171 +v -4.332752 0.295286 1.083945 +v -3.764244 1.035851 0.741309 +v -3.715309 1.035851 0.741309 +v -3.715309 1.037016 0.719097 +v -3.764244 1.037016 0.719097 +v -3.790732 0.925581 0.735531 +v -3.790732 0.997124 0.739279 +v -3.790732 0.998288 0.717067 +v -3.790732 0.926745 0.713318 +v -3.688820 0.926745 0.713318 +v -3.688820 0.998288 0.717067 +v -3.688821 0.997124 0.739279 +v -3.688820 0.925581 0.735531 +v -3.715309 0.886853 0.733501 +v -3.715309 0.888018 0.711288 +v -3.764244 0.888018 0.711288 +v -3.764244 0.886854 0.733500 +v -3.715310 0.376331 1.216878 +v -3.764244 0.376331 1.216878 +v -3.764244 0.357067 1.205756 +v -3.715310 0.357067 1.205756 +v -3.688821 0.431542 1.121250 +v -3.688821 0.395721 1.183293 +v -3.688821 0.376458 1.172171 +v -3.688821 0.412279 1.110128 +v -3.790733 0.412278 1.110128 +v -3.790732 0.376458 1.172171 +v -3.790733 0.395721 1.183293 +v -3.790732 0.431542 1.121250 +v -3.764244 0.450932 1.087665 +v -3.764244 0.431668 1.076543 +v -3.715310 0.431668 1.076543 +v -3.715310 0.450932 1.087665 +v -3.746802 0.413631 1.152272 +v -3.732752 0.413631 1.152272 +v -3.732751 0.961353 0.737405 +v -3.746801 0.961353 0.737405 +v -4.064244 1.035851 0.741309 +v -4.015310 1.035851 0.741309 +v -4.015310 1.037016 0.719097 +v -4.064244 1.037016 0.719097 +v -4.090733 0.925582 0.735530 +v -4.090733 0.997124 0.739279 +v -4.090733 0.998288 0.717067 +v -4.090733 0.926745 0.713317 +v -3.988821 0.926745 0.713317 +v -3.988821 0.998288 0.717067 +v -3.988820 0.997124 0.739279 +v -3.988821 0.925582 0.735530 +v -4.015309 0.886854 0.733500 +v -4.015310 0.888018 0.711288 +v -4.064243 0.888018 0.711288 +v -4.064244 0.886854 0.733500 +v -4.015310 0.376331 1.216878 +v -4.064244 0.376331 1.216878 +v -4.064244 0.357067 1.205756 +v -4.015309 0.357068 1.205757 +v -3.988821 0.431542 1.121250 +v -3.988821 0.395721 1.183293 +v -3.988821 0.376458 1.172171 +v -3.988821 0.412279 1.110128 +v -4.090733 0.412279 1.110128 +v -4.090733 0.376458 1.172171 +v -4.090733 0.395721 1.183293 +v -4.090733 0.431542 1.121250 +v -4.064244 0.450932 1.087665 +v -4.064244 0.431668 1.076543 +v -4.015309 0.431668 1.076543 +v -4.015310 0.450932 1.087665 +v -4.046802 0.413631 1.152272 +v -4.046802 0.961353 0.737405 +v -4.032751 0.961353 0.737405 +v -4.032752 0.413631 1.152272 +v -4.364244 1.035851 0.741309 +v -4.315310 1.035851 0.741309 +v -4.315310 1.037016 0.719097 +v -4.364244 1.037016 0.719097 +v -4.390733 0.925582 0.735530 +v -4.390733 0.997124 0.739279 +v -4.390733 0.998288 0.717067 +v -4.390733 0.926745 0.713317 +v -4.288821 0.926745 0.713317 +v -4.288821 0.998288 0.717067 +v -4.288821 0.997124 0.739279 +v -4.288821 0.925582 0.735530 +v -4.315310 0.886854 0.733500 +v -4.315310 0.888018 0.711288 +v -4.364244 0.888018 0.711288 +v -4.364244 0.886854 0.733500 +v -4.315310 0.376331 1.216878 +v -4.364244 0.376331 1.216878 +v -4.364244 0.357067 1.205756 +v -4.315310 0.357068 1.205757 +v -4.288821 0.431542 1.121250 +v -4.288821 0.395721 1.183293 +v -4.288821 0.376458 1.172171 +v -4.288821 0.412278 1.110128 +v -4.390733 0.412278 1.110128 +v -4.390733 0.376458 1.172171 +v -4.390733 0.395721 1.183293 +v -4.390734 0.431542 1.121250 +v -4.364244 0.450932 1.087664 +v -4.364244 0.431668 1.076543 +v -4.315310 0.431668 1.076543 +v -4.315310 0.450932 1.087664 +v -4.346802 0.413631 1.152272 +v -4.332752 0.413631 1.152272 +v -4.332752 0.961353 0.737405 +v -4.346802 0.961353 0.737405 +v -5.204793 0.175806 1.317712 +v -5.204793 0.478014 0.794272 +v -5.007714 0.604176 0.575752 +v -4.801618 0.604176 0.575752 +v -4.801618 0.455618 0.833062 +v -4.511972 0.455619 0.833061 +v -4.511972 0.604176 0.575752 +v -3.522396 0.604176 0.575752 +v -3.522397 0.274431 1.146888 +v -3.580169 0.204692 1.267679 +v -3.719646 0.175806 1.317712 +v -3.522396 0.699294 0.630668 +v -3.522396 0.369548 1.201804 +v -3.719646 0.270923 1.372628 +v -3.580169 0.299810 1.322595 +v -5.204792 0.270923 1.372628 +v -5.204793 0.573131 0.849188 +v -4.511971 0.699294 0.630668 +v -4.511972 0.550736 0.887978 +v -4.801618 0.550736 0.887977 +v -5.007713 0.699294 0.630668 +v -4.801618 0.699294 0.630668 +v -3.764244 1.035852 -0.741309 +v -3.764243 1.037016 -0.719097 +v -3.715309 1.037016 -0.719097 +v -3.715310 1.035852 -0.741309 +v -3.790732 0.925581 -0.735531 +v -3.790732 0.926745 -0.713318 +v -3.790732 0.998288 -0.717067 +v -3.790732 0.997124 -0.739280 +v -3.688820 0.926745 -0.713318 +v -3.688820 0.925581 -0.735531 +v -3.688820 0.997124 -0.739280 +v -3.688820 0.998288 -0.717067 +v -3.715309 0.886854 -0.733501 +v -3.715309 0.888018 -0.711288 +v -3.764243 0.888018 -0.711288 +v -3.764243 0.886854 -0.733501 +v -3.715309 0.376331 -1.216878 +v -3.715309 0.357068 -1.205757 +v -3.764244 0.357068 -1.205757 +v -3.764243 0.376331 -1.216878 +v -3.688820 0.431542 -1.121250 +v -3.688820 0.412279 -1.110128 +v -3.688820 0.376459 -1.172171 +v -3.688820 0.395722 -1.183293 +v -3.790732 0.412278 -1.110128 +v -3.790732 0.431542 -1.121250 +v -3.790732 0.395722 -1.183293 +v -3.790732 0.376459 -1.172171 +v -3.764243 0.450932 -1.087665 +v -3.764244 0.431669 -1.076544 +v -3.715309 0.431669 -1.076544 +v -3.715309 0.450932 -1.087665 +v -3.746801 0.413632 -1.152272 +v -3.732751 0.413632 -1.152272 +v -3.732750 0.961353 -0.737405 +v -3.746801 0.961353 -0.737405 +v -4.064243 1.035852 -0.741309 +v -4.064243 1.037016 -0.719097 +v -4.015309 1.037016 -0.719097 +v -4.015309 1.035852 -0.741309 +v -4.090732 0.925581 -0.735531 +v -4.090733 0.926745 -0.713318 +v -4.090732 0.998288 -0.717067 +v -4.090732 0.997124 -0.739280 +v -3.988820 0.926745 -0.713317 +v -3.988820 0.925581 -0.735531 +v -3.988820 0.997124 -0.739280 +v -3.988820 0.998288 -0.717067 +v -4.015309 0.886854 -0.733501 +v -4.015309 0.888018 -0.711288 +v -4.064243 0.888019 -0.711288 +v -4.064243 0.886854 -0.733501 +v -4.015309 0.376331 -1.216878 +v -4.015309 0.357067 -1.205756 +v -4.064244 0.357068 -1.205757 +v -4.064244 0.376331 -1.216878 +v -3.988821 0.431542 -1.121250 +v -3.988821 0.412279 -1.110128 +v -3.988821 0.376459 -1.172171 +v -3.988820 0.395722 -1.183293 +v -4.090732 0.412279 -1.110128 +v -4.090732 0.431542 -1.121250 +v -4.090732 0.395722 -1.183293 +v -4.090732 0.376459 -1.172171 +v -4.064244 0.450932 -1.087665 +v -4.064244 0.431669 -1.076544 +v -4.015309 0.431669 -1.076544 +v -4.015309 0.450932 -1.087665 +v -4.046802 0.413632 -1.152272 +v -4.032752 0.413632 -1.152272 +v -4.032751 0.961353 -0.737405 +v -4.046801 0.961353 -0.737405 +v -4.364244 1.035852 -0.741309 +v -4.364244 1.037016 -0.719097 +v -4.315310 1.037016 -0.719097 +v -4.315310 1.035852 -0.741309 +v -4.390733 0.925582 -0.735530 +v -4.390733 0.926745 -0.713317 +v -4.390733 0.998288 -0.717067 +v -4.390733 0.997124 -0.739280 +v -4.288821 0.926745 -0.713317 +v -4.288821 0.925582 -0.735530 +v -4.288821 0.997124 -0.739280 +v -4.288821 0.998288 -0.717067 +v -4.315310 0.886854 -0.733500 +v -4.315310 0.888019 -0.711288 +v -4.364244 0.888019 -0.711288 +v -4.364243 0.886854 -0.733500 +v -4.315309 0.376331 -1.216878 +v -4.315310 0.357068 -1.205757 +v -4.364244 0.357068 -1.205757 +v -4.364244 0.376331 -1.216878 +v -4.288821 0.431542 -1.121250 +v -4.288821 0.412279 -1.110128 +v -4.288821 0.376459 -1.172171 +v -4.288821 0.395722 -1.183293 +v -4.390733 0.412278 -1.110128 +v -4.390733 0.431542 -1.121250 +v -4.390733 0.395722 -1.183293 +v -4.390733 0.376459 -1.172171 +v -4.364244 0.450932 -1.087665 +v -4.364244 0.431670 -1.076543 +v -4.315310 0.431668 -1.076543 +v -4.315309 0.450932 -1.087665 +v -4.346802 0.413632 -1.152272 +v -4.346802 0.961353 -0.737405 +v -4.332751 0.961353 -0.737405 +v -4.332752 0.413632 -1.152272 +v -3.764244 0.340080 -0.339605 +v -3.715309 0.340080 -0.339605 +v -3.715309 0.358734 -0.327491 +v -3.764244 0.358734 -0.327491 +v -3.790732 0.400219 -0.432213 +v -3.790732 0.361202 -0.372129 +v -3.790732 0.379856 -0.360015 +v -3.790732 0.418875 -0.420099 +v -3.688820 0.418875 -0.420099 +v -3.688820 0.379856 -0.360015 +v -3.688821 0.361202 -0.372129 +v -3.688820 0.400219 -0.432213 +v -3.715309 0.421341 -0.464737 +v -3.715309 0.439996 -0.452622 +v -3.764244 0.439996 -0.452622 +v -3.764244 0.421341 -0.464736 +v -3.715310 0.257985 -1.148551 +v -3.764244 0.257985 -1.148551 +v -3.764244 0.277249 -1.159673 +v -3.715310 0.277249 -1.159673 +v -3.688821 0.313196 -1.052923 +v -3.688821 0.277376 -1.114966 +v -3.688821 0.296640 -1.126088 +v -3.688821 0.332459 -1.064044 +v -3.790733 0.332460 -1.064045 +v -3.790732 0.296640 -1.126088 +v -3.790733 0.277376 -1.114966 +v -3.790732 0.313196 -1.052923 +v -3.764244 0.332586 -1.019338 +v -3.764244 0.351850 -1.030460 +v -3.715310 0.351850 -1.030460 +v -3.715310 0.332586 -1.019338 +v -3.746802 0.295286 -1.083945 +v -3.732752 0.295286 -1.083945 +v -3.732751 0.380711 -0.402171 +v -3.746801 0.380711 -0.402171 +v -4.064244 0.340080 -0.339605 +v -4.015310 0.340080 -0.339605 +v -4.015310 0.358734 -0.327491 +v -4.064244 0.358734 -0.327491 +v -4.090733 0.400220 -0.432212 +v -4.090733 0.361202 -0.372129 +v -4.090733 0.379856 -0.360015 +v -4.090733 0.418875 -0.420098 +v -3.988821 0.418875 -0.420098 +v -3.988821 0.379856 -0.360015 +v -3.988820 0.361202 -0.372129 +v -3.988821 0.400220 -0.432212 +v -4.015309 0.421341 -0.464736 +v -4.015310 0.439996 -0.452622 +v -4.064243 0.439996 -0.452622 +v -4.064244 0.421341 -0.464736 +v -4.015310 0.257985 -1.148551 +v -4.064244 0.257985 -1.148551 +v -4.064244 0.277249 -1.159673 +v -4.015309 0.277248 -1.159673 +v -3.988821 0.313196 -1.052923 +v -3.988821 0.277376 -1.114966 +v -3.988821 0.296640 -1.126088 +v -3.988821 0.332459 -1.064044 +v -4.090733 0.332459 -1.064044 +v -4.090733 0.296640 -1.126088 +v -4.090733 0.277376 -1.114966 +v -4.090733 0.313196 -1.052923 +v -4.064244 0.332586 -1.019338 +v -4.064244 0.351850 -1.030460 +v -4.015309 0.351850 -1.030460 +v -4.015310 0.332586 -1.019338 +v -4.046802 0.295286 -1.083945 +v -4.046802 0.380711 -0.402171 +v -4.032751 0.380711 -0.402171 +v -4.032752 0.295286 -1.083945 +v -4.364244 0.340080 -0.339605 +v -4.315310 0.340080 -0.339605 +v -4.315310 0.358734 -0.327491 +v -4.364244 0.358734 -0.327491 +v -4.390733 0.400220 -0.432212 +v -4.390733 0.361202 -0.372129 +v -4.390733 0.379856 -0.360015 +v -4.390733 0.418875 -0.420098 +v -4.288821 0.418875 -0.420098 +v -4.288821 0.379856 -0.360015 +v -4.288821 0.361202 -0.372129 +v -4.288821 0.400220 -0.432212 +v -4.315310 0.421341 -0.464736 +v -4.315310 0.439996 -0.452622 +v -4.364244 0.439996 -0.452622 +v -4.364244 0.421341 -0.464736 +v -4.315310 0.257985 -1.148551 +v -4.364244 0.257985 -1.148551 +v -4.364244 0.277249 -1.159673 +v -4.315310 0.277248 -1.159673 +v -4.288821 0.313196 -1.052923 +v -4.288821 0.277376 -1.114966 +v -4.288821 0.296640 -1.126088 +v -4.288821 0.332460 -1.064045 +v -4.390733 0.332460 -1.064045 +v -4.390733 0.296640 -1.126088 +v -4.390733 0.277376 -1.114966 +v -4.390734 0.313196 -1.052923 +v -4.364244 0.332587 -1.019337 +v -4.364244 0.351850 -1.030460 +v -4.315310 0.351850 -1.030460 +v -4.315310 0.332587 -1.019337 +v -4.346802 0.295286 -1.083945 +v -4.332752 0.295286 -1.083945 +v -4.332752 0.380711 -0.402171 +v -4.346802 0.380711 -0.402171 +v -5.204793 0.270923 -1.372628 +v -5.204793 0.573131 -0.849188 +v -5.007714 0.699294 -0.630668 +v -4.801618 0.699294 -0.630668 +v -4.801618 0.550736 -0.887978 +v -4.511972 0.550736 -0.887978 +v -4.511972 0.699294 -0.630668 +v -3.522396 0.699294 -0.630668 +v -3.522397 0.369548 -1.201805 +v -3.580169 0.299810 -1.322595 +v -3.719646 0.270923 -1.372628 +v -3.522396 0.604176 -0.575752 +v -3.522396 0.274431 -1.146888 +v -3.719646 0.175806 -1.317712 +v -3.580169 0.204693 -1.267679 +v -5.204792 0.175806 -1.317712 +v -5.204793 0.478014 -0.794273 +v -4.511971 0.604176 -0.575752 +v -4.511972 0.455619 -0.833062 +v -4.801618 0.455619 -0.833062 +v -5.007713 0.604176 -0.575752 +v -4.801618 0.604176 -0.575752 +v -5.245664 1.555620 0.486839 +v -5.194486 1.615364 0.546583 +v -5.178945 1.615364 0.546583 +v -5.127767 1.555620 0.486839 +v -5.127767 1.486839 0.555621 +v -5.178945 1.546583 0.615365 +v -5.194487 1.546583 0.615365 +v -5.245664 1.486839 0.555621 +v -5.194486 1.569510 0.592438 +v -5.245664 1.509765 0.532693 +v -5.127767 1.509765 0.532693 +v -5.178945 1.569510 0.592438 +v -5.194486 1.544299 0.617649 +v -5.194487 1.427158 0.575487 +v -5.178945 1.427158 0.575487 +v -5.178945 1.544299 0.617649 +v -5.178945 1.617648 0.544300 +v -5.178945 1.575486 0.427159 +v -5.194486 1.575486 0.427159 +v -5.194486 1.617648 0.544300 +v -5.245664 1.532693 0.509766 +v -5.127767 1.532693 0.509766 +v -5.178945 1.592438 0.569510 +v -5.194486 1.592438 0.569510 +v -5.194487 1.489858 0.512786 +v -5.178945 1.489858 0.512786 +v -5.178945 1.512786 0.489859 +v -5.194487 1.512786 0.489859 +v -5.245664 1.470121 0.538903 +v -5.127767 1.470121 0.538903 +v -5.245664 1.515976 0.493049 +v -5.127767 1.515976 0.493049 +v -5.127767 1.493048 0.515976 +v -5.245664 1.493048 0.515976 +v -5.245664 1.538902 0.470121 +v -5.127767 1.538902 0.470121 +v -5.254691 1.541133 0.506453 +v -5.254690 1.506452 0.541134 +v -5.297078 1.525191 0.559874 +v -5.297078 1.559873 0.525192 +v -5.254690 1.579578 0.614261 +v -5.254690 1.614260 0.579579 +v -5.296170 1.560045 0.594727 +v -5.303239 1.542663 0.577345 +v -5.303239 1.577344 0.542664 +v -5.296170 1.594726 0.560045 +v -4.735427 1.561746 0.540243 +v -5.258313 1.594114 0.572178 +v -5.258313 1.572177 0.594115 +v -4.735427 1.540243 0.561746 +v -4.735427 1.515094 0.536598 +v -5.258312 1.524289 0.546226 +v -5.258312 1.546225 0.524289 +v -4.735427 1.536598 0.515095 +v -4.738048 1.557482 0.584722 +v -4.738048 1.492118 0.519358 +v -4.703030 1.514633 0.541873 +v -4.703030 1.537288 0.564528 +v -4.713286 1.551567 0.578807 +v -4.738048 1.519357 0.492119 +v -4.738048 1.584721 0.557482 +v -4.713286 1.578807 0.551568 +v -4.703029 1.564527 0.537288 +v -4.703030 1.541872 0.514633 +v -4.755419 1.545849 0.473066 +v -4.755419 1.579176 0.506393 +v -4.747920 1.593535 0.520752 +v -4.723568 1.600803 0.528020 +v -4.699216 1.593535 0.520752 +v -4.691718 1.579176 0.506393 +v -4.691718 1.545849 0.473066 +v -4.723568 1.550818 0.578005 +v -4.723568 1.528020 0.600803 +v -4.699217 1.520751 0.593535 +v -4.699216 1.543549 0.570737 +v -4.755419 1.523051 0.495865 +v -4.755419 1.556378 0.529191 +v -4.691718 1.495864 0.523051 +v -4.691718 1.529191 0.556379 +v -4.691718 1.506393 0.579177 +v -4.691718 1.473065 0.545850 +v -4.723568 1.578005 0.550818 +v -4.747920 1.570737 0.543550 +v -4.755419 1.529191 0.556379 +v -4.755419 1.506393 0.579177 +v -4.747920 1.520751 0.593535 +v -4.747920 1.543549 0.570737 +v -4.691718 1.556378 0.529191 +v -4.699217 1.570737 0.543550 +v -4.755419 1.473065 0.545850 +v -4.691718 1.523051 0.495865 +v -4.755418 1.495864 0.523051 +v -5.245664 1.237761 0.699426 +v -5.194486 1.259629 0.781038 +v -5.178945 1.259629 0.781038 +v -5.127767 1.237761 0.699426 +v -5.127767 1.143804 0.724602 +v -5.178945 1.165672 0.806214 +v -5.194487 1.165672 0.806214 +v -5.245664 1.143804 0.724602 +v -5.194486 1.196991 0.797822 +v -5.245664 1.175123 0.716209 +v -5.127767 1.175123 0.716209 +v -5.178945 1.196991 0.797822 +v -5.194486 1.162552 0.807050 +v -5.194487 1.082186 0.711966 +v -5.178945 1.082186 0.711966 +v -5.178945 1.162552 0.807050 +v -5.178945 1.262748 0.780202 +v -5.178945 1.284806 0.657674 +v -5.194486 1.284806 0.657674 +v -5.194486 1.262748 0.780202 +v -5.245664 1.206442 0.707818 +v -5.127767 1.206442 0.707818 +v -5.178945 1.228311 0.789430 +v -5.194486 1.228311 0.789430 +v -5.194487 1.167837 0.689015 +v -5.178945 1.167837 0.689015 +v -5.178945 1.199156 0.680624 +v -5.194487 1.199156 0.680624 +v -5.245664 1.137685 0.701765 +v -5.127767 1.137685 0.701765 +v -5.245664 1.200324 0.684981 +v -5.127767 1.200324 0.684981 +v -5.127767 1.169004 0.693373 +v -5.245664 1.169004 0.693373 +v -5.245664 1.231642 0.676589 +v -5.127767 1.231642 0.676589 +v -5.254691 1.215409 0.709169 +v -5.254690 1.168033 0.721863 +v -5.297078 1.174892 0.747461 +v -5.297078 1.222268 0.734766 +v -5.254690 1.194798 0.821755 +v -5.254690 1.242175 0.809061 +v -5.296170 1.187649 0.795072 +v -5.303239 1.181287 0.771328 +v -5.303239 1.228663 0.758634 +v -5.296170 1.235025 0.782377 +v -4.735427 1.216364 0.748737 +v -5.258313 1.228428 0.792579 +v -5.258313 1.198462 0.800608 +v -4.735427 1.186990 0.756609 +v -4.735427 1.177785 0.722255 +v -5.258312 1.180934 0.735191 +v -5.258312 1.210900 0.727160 +v -4.735427 1.207160 0.714385 +v -4.738048 1.190432 0.785125 +v -4.738048 1.166507 0.695837 +v -4.703030 1.174749 0.726592 +v -4.703030 1.183041 0.757540 +v -4.713286 1.188267 0.777046 +v -4.738048 1.203717 0.685867 +v -4.738048 1.227642 0.775155 +v -4.713286 1.225477 0.767076 +v -4.703029 1.220250 0.747570 +v -4.703030 1.211958 0.716622 +v -4.755419 1.236186 0.682612 +v -4.755419 1.248384 0.728138 +v -4.747920 1.253640 0.747753 +v -4.723568 1.256300 0.757681 +v -4.699216 1.253640 0.747753 +v -4.691718 1.248384 0.728138 +v -4.691718 1.236186 0.682612 +v -4.723568 1.188019 0.775977 +v -4.723568 1.156877 0.784321 +v -4.699217 1.154216 0.774393 +v -4.699216 1.185358 0.766048 +v -4.755419 1.205043 0.690957 +v -4.755419 1.217242 0.736483 +v -4.691718 1.167905 0.700908 +v -4.691718 1.180103 0.746434 +v -4.691718 1.148961 0.754779 +v -4.691718 1.136761 0.709253 +v -4.723568 1.225158 0.766025 +v -4.747920 1.222498 0.756097 +v -4.755419 1.180103 0.746434 +v -4.755419 1.148961 0.754779 +v -4.747920 1.154216 0.774393 +v -4.747920 1.185358 0.766048 +v -4.691718 1.217242 0.736483 +v -4.699217 1.222498 0.756097 +v -4.755419 1.136761 0.709253 +v -4.691718 1.205043 0.690957 +v -4.755418 1.167905 0.700908 +v -5.245664 0.856194 0.724602 +v -5.194486 0.834327 0.806214 +v -5.178945 0.834327 0.806214 +v -5.127767 0.856194 0.724602 +v -5.127767 0.762237 0.699426 +v -5.178945 0.740369 0.781038 +v -5.194487 0.740369 0.781038 +v -5.245664 0.762237 0.699426 +v -5.194486 0.771688 0.789430 +v -5.245664 0.793556 0.707818 +v -5.127767 0.793556 0.707818 +v -5.178945 0.771688 0.789430 +v -5.194486 0.737249 0.780203 +v -5.194487 0.715192 0.657674 +v -5.178945 0.715192 0.657674 +v -5.178945 0.737249 0.780203 +v -5.178945 0.837446 0.807050 +v -5.178945 0.917811 0.711966 +v -5.194486 0.917811 0.711966 +v -5.194486 0.837446 0.807050 +v -5.245664 0.824875 0.716210 +v -5.127767 0.824875 0.716210 +v -5.178945 0.803008 0.797822 +v -5.194486 0.803008 0.797822 +v -5.194487 0.800843 0.680624 +v -5.178945 0.800843 0.680624 +v -5.178945 0.832162 0.689016 +v -5.194487 0.832162 0.689016 +v -5.245664 0.768356 0.676590 +v -5.127767 0.768356 0.676590 +v -5.245664 0.830994 0.693374 +v -5.127767 0.830994 0.693374 +v -5.127767 0.799675 0.684981 +v -5.245664 0.799675 0.684981 +v -5.245664 0.862314 0.701765 +v -5.127767 0.862314 0.701765 +v -5.254691 0.831965 0.721863 +v -5.254690 0.784589 0.709169 +v -5.297078 0.777730 0.734767 +v -5.297078 0.825106 0.747461 +v -5.254690 0.757823 0.809060 +v -5.254690 0.805199 0.821755 +v -5.296170 0.764973 0.782378 +v -5.303239 0.771335 0.758634 +v -5.303239 0.818710 0.771328 +v -5.296170 0.812349 0.795072 +v -4.735427 0.813008 0.756608 +v -5.258313 0.801535 0.800608 +v -5.258313 0.771569 0.792579 +v -4.735427 0.783634 0.748738 +v -4.735427 0.792839 0.714384 +v -5.258312 0.789098 0.727162 +v -5.258312 0.819065 0.735190 +v -4.735427 0.822213 0.722256 +v -4.738048 0.772356 0.775155 +v -4.738048 0.796281 0.685867 +v -4.703030 0.788040 0.716622 +v -4.703030 0.779748 0.747570 +v -4.713286 0.774521 0.767076 +v -4.738048 0.833491 0.695837 +v -4.738048 0.809566 0.785126 +v -4.713286 0.811731 0.777046 +v -4.703029 0.816957 0.757540 +v -4.703030 0.825250 0.726593 +v -4.755419 0.863237 0.709253 +v -4.755419 0.851038 0.754779 +v -4.747920 0.845782 0.774394 +v -4.723568 0.843122 0.784322 +v -4.699216 0.845782 0.774394 +v -4.691718 0.851038 0.754779 +v -4.691718 0.863237 0.709253 +v -4.723568 0.774841 0.766026 +v -4.723568 0.743698 0.757681 +v -4.699217 0.746358 0.747753 +v -4.699216 0.777501 0.756097 +v -4.755419 0.832093 0.700908 +v -4.755419 0.819895 0.746434 +v -4.691718 0.794956 0.690957 +v -4.691718 0.782757 0.736483 +v -4.691718 0.751614 0.728139 +v -4.691718 0.763812 0.682613 +v -4.723568 0.811980 0.775977 +v -4.747920 0.814640 0.766049 +v -4.755419 0.782757 0.736483 +v -4.755419 0.751614 0.728139 +v -4.747920 0.746358 0.747753 +v -4.747920 0.777501 0.756097 +v -4.691718 0.819895 0.746434 +v -4.699217 0.814640 0.766049 +v -4.755419 0.763812 0.682613 +v -4.691718 0.832093 0.700908 +v -4.755418 0.794956 0.690957 +v -5.245664 0.513160 0.555621 +v -5.194486 0.453416 0.615365 +v -5.178945 0.453416 0.615365 +v -5.127767 0.513160 0.555621 +v -5.127767 0.444378 0.486840 +v -5.178945 0.384634 0.546584 +v -5.194487 0.384634 0.546584 +v -5.245664 0.444378 0.486840 +v -5.194486 0.407561 0.569511 +v -5.245664 0.467305 0.509767 +v -5.127767 0.467305 0.509767 +v -5.178945 0.407561 0.569511 +v -5.194486 0.382350 0.544301 +v -5.194487 0.424512 0.427159 +v -5.178945 0.424512 0.427159 +v -5.178945 0.382350 0.544301 +v -5.178945 0.455699 0.617649 +v -5.178945 0.572839 0.575487 +v -5.194486 0.572839 0.575487 +v -5.194486 0.455699 0.617649 +v -5.245664 0.490232 0.532694 +v -5.127767 0.490232 0.532694 +v -5.178945 0.430488 0.592439 +v -5.194486 0.430488 0.592439 +v -5.194487 0.487213 0.489860 +v -5.178945 0.487213 0.489860 +v -5.178945 0.510140 0.512787 +v -5.194487 0.510140 0.512787 +v -5.245664 0.461096 0.470123 +v -5.127767 0.461096 0.470123 +v -5.245664 0.506950 0.515977 +v -5.127767 0.506950 0.515977 +v -5.127767 0.484023 0.493049 +v -5.245664 0.484023 0.493049 +v -5.245664 0.529878 0.538904 +v -5.127767 0.529878 0.538904 +v -5.254691 0.493546 0.541135 +v -5.254690 0.458864 0.506454 +v -5.297078 0.440125 0.525192 +v -5.297078 0.474807 0.559874 +v -5.254690 0.385738 0.579579 +v -5.254690 0.420420 0.614261 +v -5.296170 0.405272 0.560046 +v -5.303239 0.422653 0.542664 +v -5.303239 0.457334 0.577346 +v -5.296170 0.439954 0.594727 +v -4.735427 0.459756 0.561747 +v -5.258313 0.427820 0.594115 +v -5.258313 0.405884 0.572178 +v -4.735427 0.438252 0.540244 +v -4.735427 0.463401 0.515095 +v -5.258312 0.453773 0.524290 +v -5.258312 0.475710 0.546226 +v -4.735427 0.484904 0.536599 +v -4.738048 0.415277 0.557483 +v -4.738048 0.480641 0.492119 +v -4.703030 0.458126 0.514634 +v -4.703030 0.435471 0.537289 +v -4.713286 0.421191 0.551568 +v -4.738048 0.507880 0.519359 +v -4.738048 0.442516 0.584722 +v -4.713286 0.448431 0.578808 +v -4.703029 0.462710 0.564528 +v -4.703030 0.485366 0.541873 +v -4.755419 0.526933 0.545850 +v -4.755419 0.493605 0.579177 +v -4.747920 0.479246 0.593536 +v -4.723568 0.471979 0.600804 +v -4.699216 0.479246 0.593536 +v -4.691718 0.493605 0.579177 +v -4.691718 0.526933 0.545850 +v -4.723568 0.421993 0.550819 +v -4.723568 0.399196 0.528021 +v -4.699217 0.406463 0.520752 +v -4.699216 0.429261 0.543550 +v -4.755419 0.504134 0.523052 +v -4.755419 0.470807 0.556379 +v -4.691718 0.476948 0.495865 +v -4.691718 0.443620 0.529192 +v -4.691718 0.420822 0.506394 +v -4.691718 0.454149 0.473067 +v -4.723568 0.449181 0.578006 +v -4.747920 0.456449 0.570738 +v -4.755419 0.443620 0.529192 +v -4.755419 0.420822 0.506394 +v -4.747920 0.406463 0.520752 +v -4.747920 0.429261 0.543550 +v -4.691718 0.470807 0.556379 +v -4.699217 0.456449 0.570738 +v -4.755419 0.454149 0.473067 +v -4.691718 0.504134 0.523052 +v -4.755418 0.476948 0.495865 +v -5.245664 0.300573 0.237762 +v -5.194486 0.218961 0.259631 +v -5.178945 0.218961 0.259631 +v -5.127767 0.300573 0.237762 +v -5.127767 0.275397 0.143805 +v -5.178945 0.193785 0.165673 +v -5.194487 0.193785 0.165673 +v -5.245664 0.275397 0.143805 +v -5.194486 0.202177 0.196992 +v -5.245664 0.283789 0.175124 +v -5.127767 0.283789 0.175124 +v -5.178945 0.202177 0.196992 +v -5.194486 0.192949 0.162554 +v -5.194487 0.288033 0.082188 +v -5.178945 0.288033 0.082188 +v -5.178945 0.192949 0.162554 +v -5.178945 0.219797 0.262750 +v -5.178945 0.342324 0.284807 +v -5.194486 0.342324 0.284807 +v -5.194486 0.219797 0.262750 +v -5.245664 0.292181 0.206444 +v -5.127767 0.292181 0.206444 +v -5.178945 0.210569 0.228312 +v -5.194486 0.210569 0.228312 +v -5.194487 0.310983 0.167838 +v -5.178945 0.310983 0.167838 +v -5.178945 0.319375 0.199157 +v -5.194487 0.319375 0.199157 +v -5.245664 0.298234 0.137686 +v -5.127767 0.298234 0.137686 +v -5.245664 0.315018 0.200325 +v -5.127767 0.315018 0.200325 +v -5.127767 0.306626 0.169005 +v -5.245664 0.306626 0.169005 +v -5.245664 0.323410 0.231644 +v -5.127767 0.323410 0.231644 +v -5.254691 0.290830 0.215410 +v -5.254690 0.278136 0.168035 +v -5.297078 0.252538 0.174893 +v -5.297078 0.265232 0.222269 +v -5.254690 0.178244 0.194800 +v -5.254690 0.190938 0.242176 +v -5.296170 0.204927 0.187651 +v -5.303239 0.228671 0.181288 +v -5.303239 0.241365 0.228664 +v -5.296170 0.217622 0.235027 +v -4.735427 0.251261 0.216366 +v -5.258313 0.207420 0.228430 +v -5.258313 0.199391 0.198463 +v -4.735427 0.243390 0.186992 +v -4.735427 0.277744 0.177786 +v -5.258312 0.264808 0.180936 +v -5.258312 0.272838 0.210902 +v -4.735427 0.285614 0.207161 +v -4.738048 0.214873 0.190433 +v -4.738048 0.304162 0.166509 +v -4.703030 0.273406 0.174750 +v -4.703030 0.242459 0.183042 +v -4.713286 0.222953 0.188269 +v -4.738048 0.314132 0.203718 +v -4.738048 0.224844 0.227643 +v -4.713286 0.232923 0.225479 +v -4.703029 0.252429 0.220252 +v -4.703030 0.283377 0.211960 +v -4.755419 0.317387 0.236187 +v -4.755419 0.271861 0.248385 +v -4.747920 0.252246 0.253641 +v -4.723568 0.242318 0.256301 +v -4.699216 0.252246 0.253641 +v -4.691718 0.271861 0.248385 +v -4.691718 0.317387 0.236187 +v -4.723568 0.224022 0.188020 +v -4.723568 0.215677 0.156878 +v -4.699217 0.225606 0.154217 +v -4.699216 0.233951 0.185360 +v -4.755419 0.309042 0.205044 +v -4.755419 0.263516 0.217243 +v -4.691718 0.299091 0.167906 +v -4.691718 0.253565 0.180104 +v -4.691718 0.245220 0.148962 +v -4.691718 0.290746 0.136763 +v -4.723568 0.233974 0.225159 +v -4.747920 0.243901 0.222499 +v -4.755419 0.253565 0.180104 +v -4.755419 0.245220 0.148962 +v -4.747920 0.225606 0.154217 +v -4.747920 0.233951 0.185360 +v -4.691718 0.263516 0.217243 +v -4.699217 0.243901 0.222499 +v -4.755419 0.290746 0.136763 +v -4.691718 0.309042 0.205044 +v -4.755418 0.299091 0.167906 +v -5.245664 0.275397 -0.143804 +v -5.194486 0.193785 -0.165672 +v -5.178945 0.193785 -0.165672 +v -5.127767 0.275397 -0.143804 +v -5.127767 0.300573 -0.237762 +v -5.178945 0.218960 -0.259630 +v -5.194487 0.218960 -0.259630 +v -5.245664 0.300573 -0.237762 +v -5.194486 0.210569 -0.228310 +v -5.245664 0.292181 -0.206443 +v -5.127767 0.292181 -0.206443 +v -5.178945 0.210569 -0.228310 +v -5.194486 0.219796 -0.262750 +v -5.194487 0.342325 -0.284806 +v -5.178945 0.342325 -0.284806 +v -5.178945 0.219796 -0.262750 +v -5.178945 0.192949 -0.162553 +v -5.178945 0.288033 -0.082187 +v -5.194486 0.288033 -0.082187 +v -5.194486 0.192949 -0.162553 +v -5.245664 0.283789 -0.175124 +v -5.127767 0.283789 -0.175124 +v -5.178945 0.202177 -0.196991 +v -5.194486 0.202177 -0.196991 +v -5.194487 0.319375 -0.199156 +v -5.178945 0.319375 -0.199156 +v -5.178945 0.310982 -0.167837 +v -5.194487 0.310982 -0.167837 +v -5.245664 0.323409 -0.231643 +v -5.127767 0.323409 -0.231643 +v -5.245664 0.306625 -0.169004 +v -5.127767 0.306625 -0.169004 +v -5.127767 0.315018 -0.200323 +v -5.245664 0.315018 -0.200323 +v -5.245664 0.298234 -0.137685 +v -5.127767 0.298234 -0.137685 +v -5.254691 0.278136 -0.168034 +v -5.254690 0.290830 -0.215409 +v -5.297078 0.265232 -0.222269 +v -5.297078 0.252538 -0.174893 +v -5.254690 0.190938 -0.242176 +v -5.254690 0.178244 -0.194800 +v -5.296170 0.217621 -0.235026 +v -5.303239 0.241365 -0.228664 +v -5.303239 0.228671 -0.181288 +v -5.296170 0.204927 -0.187649 +v -4.735427 0.243390 -0.186991 +v -5.258313 0.199391 -0.198463 +v -5.258313 0.207420 -0.228430 +v -4.735427 0.251261 -0.216365 +v -4.735427 0.285615 -0.207160 +v -5.258312 0.272837 -0.210900 +v -5.258312 0.264809 -0.180934 +v -4.735427 0.277743 -0.177786 +v -4.738048 0.224844 -0.227643 +v -4.738048 0.314132 -0.203718 +v -4.703030 0.283376 -0.211958 +v -4.703030 0.252429 -0.220251 +v -4.713286 0.232923 -0.225478 +v -4.738048 0.304162 -0.166508 +v -4.738048 0.214873 -0.190433 +v -4.713286 0.222953 -0.188268 +v -4.703029 0.242459 -0.183041 +v -4.703030 0.273406 -0.174749 +v -4.755419 0.290746 -0.136762 +v -4.755419 0.245220 -0.148961 +v -4.747920 0.225605 -0.154217 +v -4.723568 0.215677 -0.156877 +v -4.699216 0.225605 -0.154217 +v -4.691718 0.245220 -0.148961 +v -4.691718 0.290746 -0.136762 +v -4.723568 0.233973 -0.225158 +v -4.723568 0.242318 -0.256300 +v -4.699217 0.252246 -0.253640 +v -4.699216 0.243902 -0.222498 +v -4.755419 0.299090 -0.167905 +v -4.755419 0.253565 -0.180103 +v -4.691718 0.309041 -0.205043 +v -4.691718 0.263516 -0.217242 +v -4.691718 0.271860 -0.248385 +v -4.691718 0.317386 -0.236187 +v -4.723568 0.224022 -0.188019 +v -4.747920 0.233950 -0.185359 +v -4.755419 0.263516 -0.217242 +v -4.755419 0.271860 -0.248385 +v -4.747920 0.252246 -0.253640 +v -4.747920 0.243902 -0.222498 +v -4.691718 0.253565 -0.180103 +v -4.699217 0.233950 -0.185359 +v -4.755419 0.317386 -0.236187 +v -4.691718 0.299090 -0.167905 +v -4.755418 0.309041 -0.205043 +v -5.245664 0.444378 -0.486839 +v -5.194486 0.384633 -0.546583 +v -5.178945 0.384633 -0.546583 +v -5.127767 0.444378 -0.486839 +v -5.127767 0.513159 -0.555621 +v -5.178945 0.453414 -0.615365 +v -5.194487 0.453414 -0.615365 +v -5.245664 0.513159 -0.555621 +v -5.194486 0.430488 -0.592437 +v -5.245664 0.490232 -0.532693 +v -5.127767 0.490232 -0.532693 +v -5.178945 0.430488 -0.592437 +v -5.194486 0.455698 -0.617649 +v -5.194487 0.572839 -0.575487 +v -5.178945 0.572839 -0.575487 +v -5.178945 0.455698 -0.617649 +v -5.178945 0.382350 -0.544300 +v -5.178945 0.424512 -0.427159 +v -5.194486 0.424512 -0.427159 +v -5.194486 0.382350 -0.544300 +v -5.245664 0.467304 -0.509767 +v -5.127767 0.467304 -0.509767 +v -5.178945 0.407560 -0.569510 +v -5.194486 0.407560 -0.569510 +v -5.194487 0.510139 -0.512786 +v -5.178945 0.510139 -0.512786 +v -5.178945 0.487211 -0.489859 +v -5.194487 0.487211 -0.489859 +v -5.245664 0.529876 -0.538903 +v -5.127767 0.529876 -0.538903 +v -5.245664 0.484022 -0.493049 +v -5.127767 0.484022 -0.493049 +v -5.127767 0.506949 -0.515976 +v -5.245664 0.506949 -0.515976 +v -5.245664 0.461095 -0.470121 +v -5.127767 0.461095 -0.470121 +v -5.254691 0.458864 -0.506453 +v -5.254690 0.493545 -0.541134 +v -5.297078 0.474807 -0.559874 +v -5.297078 0.440125 -0.525192 +v -5.254690 0.420420 -0.614261 +v -5.254690 0.385738 -0.579579 +v -5.296170 0.439953 -0.594727 +v -5.303239 0.457334 -0.577346 +v -5.303239 0.422653 -0.542664 +v -5.296170 0.405271 -0.560045 +v -4.735427 0.438252 -0.540243 +v -5.258313 0.405884 -0.572178 +v -5.258313 0.427820 -0.594115 +v -4.735427 0.459755 -0.561746 +v -4.735427 0.484904 -0.536598 +v -5.258312 0.475709 -0.546226 +v -5.258312 0.453773 -0.524289 +v -4.735427 0.463400 -0.515095 +v -4.738048 0.442516 -0.584722 +v -4.738048 0.507879 -0.519358 +v -4.703030 0.485365 -0.541873 +v -4.703030 0.462710 -0.564528 +v -4.713286 0.448430 -0.578807 +v -4.738048 0.480640 -0.492119 +v -4.738048 0.415276 -0.557482 +v -4.713286 0.421191 -0.551568 +v -4.703029 0.435470 -0.537288 +v -4.703030 0.458125 -0.514633 +v -4.755419 0.454149 -0.473066 +v -4.755419 0.420822 -0.506393 +v -4.747920 0.406463 -0.520753 +v -4.723568 0.399195 -0.528020 +v -4.699216 0.406463 -0.520753 +v -4.691718 0.420822 -0.506393 +v -4.691718 0.454149 -0.473066 +v -4.723568 0.449180 -0.578005 +v -4.723568 0.471978 -0.600803 +v -4.699217 0.479246 -0.593535 +v -4.699216 0.456449 -0.570737 +v -4.755419 0.476947 -0.495865 +v -4.755419 0.443620 -0.529191 +v -4.691718 0.504134 -0.523051 +v -4.691718 0.470807 -0.556379 +v -4.691718 0.493604 -0.579177 +v -4.691718 0.526932 -0.545850 +v -4.723568 0.421993 -0.550818 +v -4.747920 0.429260 -0.543550 +v -4.755419 0.470807 -0.556379 +v -4.755419 0.493604 -0.579177 +v -4.747920 0.479246 -0.593535 +v -4.747920 0.456449 -0.570737 +v -4.691718 0.443620 -0.529191 +v -4.699217 0.429260 -0.543550 +v -4.755419 0.526932 -0.545850 +v -4.691718 0.476947 -0.495865 +v -4.755418 0.504134 -0.523051 +v -5.245664 0.762236 -0.699426 +v -5.194486 0.740368 -0.781038 +v -5.178945 0.740368 -0.781038 +v -5.127767 0.762236 -0.699426 +v -5.127767 0.856193 -0.724602 +v -5.178945 0.834325 -0.806214 +v -5.194487 0.834325 -0.806214 +v -5.245664 0.856193 -0.724602 +v -5.194486 0.803006 -0.797821 +v -5.245664 0.824875 -0.716209 +v -5.127767 0.824875 -0.716209 +v -5.178945 0.803006 -0.797821 +v -5.194486 0.837445 -0.807050 +v -5.194487 0.917811 -0.711966 +v -5.178945 0.917811 -0.711966 +v -5.178945 0.837445 -0.807050 +v -5.178945 0.737249 -0.780202 +v -5.178945 0.715192 -0.657674 +v -5.194486 0.715192 -0.657674 +v -5.194486 0.737249 -0.780202 +v -5.245664 0.793555 -0.707818 +v -5.127767 0.793555 -0.707818 +v -5.178945 0.771687 -0.789430 +v -5.194486 0.771687 -0.789430 +v -5.194487 0.832161 -0.689015 +v -5.178945 0.832161 -0.689015 +v -5.178945 0.800841 -0.680624 +v -5.194487 0.800841 -0.680624 +v -5.245664 0.862312 -0.701765 +v -5.127767 0.862312 -0.701765 +v -5.245664 0.799674 -0.684981 +v -5.127767 0.799674 -0.684981 +v -5.127767 0.830993 -0.693373 +v -5.245664 0.830993 -0.693373 +v -5.245664 0.768355 -0.676589 +v -5.127767 0.768355 -0.676589 +v -5.254691 0.784589 -0.709169 +v -5.254690 0.831964 -0.721863 +v -5.297078 0.825106 -0.747461 +v -5.297078 0.777730 -0.734766 +v -5.254690 0.805199 -0.821755 +v -5.254690 0.757823 -0.809061 +v -5.296170 0.812348 -0.795072 +v -5.303239 0.818710 -0.771328 +v -5.303239 0.771335 -0.758634 +v -5.296170 0.764972 -0.782377 +v -4.735427 0.783633 -0.748737 +v -5.258313 0.771569 -0.792579 +v -5.258313 0.801535 -0.800608 +v -4.735427 0.813007 -0.756608 +v -4.735427 0.822213 -0.722255 +v -5.258312 0.819063 -0.735191 +v -5.258312 0.789097 -0.727160 +v -4.735427 0.792838 -0.714385 +v -4.738048 0.809565 -0.785125 +v -4.738048 0.833490 -0.695837 +v -4.703030 0.825249 -0.726592 +v -4.703030 0.816957 -0.757540 +v -4.713286 0.811730 -0.777046 +v -4.738048 0.796280 -0.685866 +v -4.738048 0.772356 -0.775155 +v -4.713286 0.774520 -0.767076 +v -4.703029 0.779747 -0.747570 +v -4.703030 0.788039 -0.716622 +v -4.755419 0.763812 -0.682612 +v -4.755419 0.751613 -0.728138 +v -4.747920 0.746358 -0.747753 +v -4.723568 0.743697 -0.757681 +v -4.699216 0.746358 -0.747753 +v -4.691718 0.751613 -0.728138 +v -4.691718 0.763812 -0.682612 +v -4.723568 0.811978 -0.775977 +v -4.723568 0.843121 -0.784321 +v -4.699217 0.845782 -0.774393 +v -4.699216 0.814639 -0.766048 +v -4.755419 0.794955 -0.690957 +v -4.755419 0.782756 -0.736483 +v -4.691718 0.832093 -0.700908 +v -4.691718 0.819895 -0.746434 +v -4.691718 0.851037 -0.754779 +v -4.691718 0.863236 -0.709253 +v -4.723568 0.774840 -0.766025 +v -4.747920 0.777500 -0.756097 +v -4.755419 0.819895 -0.746434 +v -4.755419 0.851037 -0.754779 +v -4.747920 0.845782 -0.774393 +v -4.747920 0.814639 -0.766048 +v -4.691718 0.782756 -0.736483 +v -4.699217 0.777500 -0.756097 +v -4.755419 0.863236 -0.709253 +v -4.691718 0.794955 -0.690957 +v -4.755418 0.832093 -0.700908 +v -5.245664 1.143803 -0.724602 +v -5.194486 1.165671 -0.806214 +v -5.178945 1.165671 -0.806214 +v -5.127767 1.143803 -0.724602 +v -5.127767 1.237760 -0.699426 +v -5.178945 1.259628 -0.781038 +v -5.194487 1.259628 -0.781038 +v -5.245664 1.237760 -0.699426 +v -5.194486 1.228309 -0.789430 +v -5.245664 1.206441 -0.707817 +v -5.127767 1.206441 -0.707817 +v -5.178945 1.228309 -0.789430 +v -5.194486 1.262748 -0.780203 +v -5.194487 1.284805 -0.657674 +v -5.178945 1.284805 -0.657674 +v -5.178945 1.262748 -0.780203 +v -5.178945 1.162552 -0.807049 +v -5.178945 1.082186 -0.711966 +v -5.194486 1.082186 -0.711966 +v -5.194486 1.162552 -0.807049 +v -5.245664 1.175122 -0.716210 +v -5.127767 1.175122 -0.716210 +v -5.178945 1.196990 -0.797822 +v -5.194486 1.196990 -0.797822 +v -5.194487 1.199155 -0.680624 +v -5.178945 1.199155 -0.680624 +v -5.178945 1.167835 -0.689016 +v -5.194487 1.167835 -0.689016 +v -5.245664 1.231641 -0.676590 +v -5.127767 1.231641 -0.676590 +v -5.245664 1.169003 -0.693373 +v -5.127767 1.169003 -0.693373 +v -5.127767 1.200322 -0.684981 +v -5.245664 1.200322 -0.684981 +v -5.245664 1.137684 -0.701765 +v -5.127767 1.137684 -0.701765 +v -5.254691 1.168033 -0.721863 +v -5.254690 1.215408 -0.709169 +v -5.297078 1.222268 -0.734767 +v -5.297078 1.174891 -0.747461 +v -5.254690 1.242175 -0.809060 +v -5.254690 1.194798 -0.821755 +v -5.296170 1.235024 -0.782378 +v -5.303239 1.228662 -0.758634 +v -5.303239 1.181287 -0.771328 +v -5.296170 1.187648 -0.795071 +v -4.735427 1.186989 -0.756608 +v -5.258313 1.198462 -0.800608 +v -5.258313 1.228428 -0.792578 +v -4.735427 1.216363 -0.748738 +v -4.735427 1.207159 -0.714384 +v -5.258312 1.210899 -0.727162 +v -5.258312 1.180933 -0.735190 +v -4.735427 1.177784 -0.722256 +v -4.738048 1.227641 -0.775155 +v -4.738048 1.203717 -0.685867 +v -4.703030 1.211957 -0.716622 +v -4.703030 1.220250 -0.747570 +v -4.713286 1.225476 -0.767076 +v -4.738048 1.166507 -0.695837 +v -4.738048 1.190431 -0.785126 +v -4.713286 1.188266 -0.777046 +v -4.703029 1.183040 -0.757540 +v -4.703030 1.174747 -0.726593 +v -4.755419 1.136761 -0.709253 +v -4.755419 1.148960 -0.754779 +v -4.747920 1.154216 -0.774394 +v -4.723568 1.156876 -0.784322 +v -4.699216 1.154216 -0.774394 +v -4.691718 1.148960 -0.754779 +v -4.691718 1.136761 -0.709253 +v -4.723568 1.225157 -0.766026 +v -4.723568 1.256299 -0.757681 +v -4.699217 1.253639 -0.747752 +v -4.699216 1.222497 -0.756097 +v -4.755419 1.167904 -0.700908 +v -4.755419 1.180102 -0.746434 +v -4.691718 1.205042 -0.690957 +v -4.691718 1.217241 -0.736483 +v -4.691718 1.248383 -0.728139 +v -4.691718 1.236185 -0.682613 +v -4.723568 1.188018 -0.775977 +v -4.747920 1.185358 -0.766049 +v -4.755419 1.217241 -0.736483 +v -4.755419 1.248383 -0.728139 +v -4.747920 1.253639 -0.747752 +v -4.747920 1.222497 -0.756097 +v -4.691718 1.180102 -0.746434 +v -4.699217 1.185358 -0.766049 +v -4.755419 1.236185 -0.682613 +v -4.691718 1.167904 -0.700908 +v -4.755418 1.205042 -0.690957 +v -5.245664 1.486838 -0.555621 +v -5.194486 1.546582 -0.615365 +v -5.178945 1.546582 -0.615365 +v -5.127767 1.486838 -0.555621 +v -5.127767 1.555619 -0.486840 +v -5.178945 1.615364 -0.546584 +v -5.194487 1.615364 -0.546584 +v -5.245664 1.555619 -0.486840 +v -5.194486 1.592436 -0.569511 +v -5.245664 1.532692 -0.509767 +v -5.127767 1.532692 -0.509767 +v -5.178945 1.592436 -0.569511 +v -5.194486 1.617648 -0.544301 +v -5.194487 1.575485 -0.427159 +v -5.178945 1.575485 -0.427159 +v -5.178945 1.617648 -0.544301 +v -5.178945 1.544298 -0.617649 +v -5.178945 1.427158 -0.575487 +v -5.194486 1.427158 -0.575487 +v -5.194486 1.544298 -0.617649 +v -5.245664 1.509765 -0.532694 +v -5.127767 1.509765 -0.532694 +v -5.178945 1.569509 -0.592439 +v -5.194486 1.569509 -0.592439 +v -5.194487 1.512785 -0.489860 +v -5.178945 1.512785 -0.489860 +v -5.178945 1.489858 -0.512787 +v -5.194487 1.489858 -0.512787 +v -5.245664 1.538902 -0.470122 +v -5.127767 1.538902 -0.470122 +v -5.245664 1.493047 -0.515977 +v -5.127767 1.493047 -0.515977 +v -5.127767 1.515975 -0.493049 +v -5.245664 1.515975 -0.493049 +v -5.245664 1.470120 -0.538903 +v -5.127767 1.470120 -0.538903 +v -5.254691 1.506452 -0.541135 +v -5.254690 1.541133 -0.506454 +v -5.297078 1.559873 -0.525192 +v -5.297078 1.525191 -0.559874 +v -5.254690 1.614259 -0.579579 +v -5.254690 1.579578 -0.614261 +v -5.296170 1.594726 -0.560046 +v -5.303239 1.577344 -0.542664 +v -5.303239 1.542663 -0.577345 +v -5.296170 1.560044 -0.594727 +v -4.735427 1.540241 -0.561747 +v -5.258313 1.572177 -0.594115 +v -5.258313 1.594114 -0.572178 +v -4.735427 1.561745 -0.540244 +v -4.735427 1.536597 -0.515095 +v -5.258312 1.546225 -0.524290 +v -5.258312 1.524287 -0.546226 +v -4.735427 1.515094 -0.536599 +v -4.738048 1.584721 -0.557483 +v -4.738048 1.519357 -0.492119 +v -4.703030 1.541871 -0.514634 +v -4.703030 1.564527 -0.537289 +v -4.713286 1.578806 -0.551568 +v -4.738048 1.492117 -0.519359 +v -4.738048 1.557481 -0.584722 +v -4.713286 1.551566 -0.578808 +v -4.703029 1.537287 -0.564528 +v -4.703030 1.514632 -0.541873 +v -4.755419 1.473064 -0.545850 +v -4.755419 1.506392 -0.579177 +v -4.747920 1.520751 -0.593536 +v -4.723568 1.528019 -0.600804 +v -4.699216 1.520751 -0.593536 +v -4.691718 1.506392 -0.579177 +v -4.691718 1.473064 -0.545850 +v -4.723568 1.578004 -0.550819 +v -4.723568 1.600802 -0.528021 +v -4.699217 1.593534 -0.520752 +v -4.699216 1.570736 -0.543550 +v -4.755419 1.495863 -0.523052 +v -4.755419 1.529190 -0.556379 +v -4.691718 1.523050 -0.495865 +v -4.691718 1.556377 -0.529192 +v -4.691718 1.579175 -0.506394 +v -4.691718 1.545849 -0.473066 +v -4.723568 1.550817 -0.578006 +v -4.747920 1.543549 -0.570738 +v -4.755419 1.556377 -0.529192 +v -4.755419 1.579175 -0.506394 +v -4.747920 1.593534 -0.520752 +v -4.747920 1.570736 -0.543550 +v -4.691718 1.529190 -0.556379 +v -4.699217 1.543549 -0.570738 +v -4.755419 1.545849 -0.473066 +v -4.691718 1.495863 -0.523052 +v -4.755418 1.523050 -0.495865 +v -5.245664 1.699424 -0.237762 +v -5.194486 1.781036 -0.259631 +v -5.178945 1.781036 -0.259631 +v -5.127767 1.699424 -0.237762 +v -5.127767 1.724600 -0.143805 +v -5.178945 1.806212 -0.165673 +v -5.194487 1.806212 -0.165673 +v -5.245664 1.724600 -0.143805 +v -5.194486 1.797820 -0.196992 +v -5.245664 1.716208 -0.175124 +v -5.127767 1.716208 -0.175124 +v -5.178945 1.797820 -0.196992 +v -5.194486 1.807049 -0.162554 +v -5.194487 1.711964 -0.082188 +v -5.178945 1.711964 -0.082188 +v -5.178945 1.807049 -0.162554 +v -5.178945 1.780200 -0.262750 +v -5.178945 1.657673 -0.284807 +v -5.194486 1.657673 -0.284807 +v -5.194486 1.780200 -0.262750 +v -5.245664 1.707817 -0.206443 +v -5.127767 1.707817 -0.206443 +v -5.178945 1.789428 -0.228312 +v -5.194486 1.789428 -0.228312 +v -5.194487 1.689014 -0.167838 +v -5.178945 1.689014 -0.167838 +v -5.178945 1.680623 -0.199157 +v -5.194487 1.680623 -0.199157 +v -5.245664 1.701764 -0.137686 +v -5.127767 1.701764 -0.137686 +v -5.245664 1.684980 -0.200325 +v -5.127767 1.684980 -0.200325 +v -5.127767 1.693372 -0.169005 +v -5.245664 1.693372 -0.169005 +v -5.245664 1.676587 -0.231643 +v -5.127767 1.676587 -0.231643 +v -5.254691 1.709167 -0.215410 +v -5.254690 1.721861 -0.168034 +v -5.297078 1.747460 -0.174893 +v -5.297078 1.734765 -0.222269 +v -5.254690 1.821754 -0.194800 +v -5.254690 1.809059 -0.242176 +v -5.296170 1.795070 -0.187650 +v -5.303239 1.771327 -0.181288 +v -5.303239 1.758633 -0.228664 +v -5.296170 1.782376 -0.235027 +v -4.735427 1.748736 -0.216365 +v -5.258313 1.792577 -0.228430 +v -5.258313 1.800607 -0.198463 +v -4.735427 1.756607 -0.186992 +v -4.735427 1.722253 -0.177786 +v -5.258312 1.735189 -0.180936 +v -5.258312 1.727159 -0.210902 +v -4.735427 1.714383 -0.207161 +v -4.738048 1.785124 -0.190433 +v -4.738048 1.695836 -0.166509 +v -4.703030 1.726591 -0.174750 +v -4.703030 1.757539 -0.183042 +v -4.713286 1.777045 -0.188269 +v -4.738048 1.685865 -0.203718 +v -4.738048 1.775154 -0.227643 +v -4.713286 1.767074 -0.225478 +v -4.703029 1.747568 -0.220252 +v -4.703030 1.716621 -0.211960 +v -4.755419 1.682611 -0.236187 +v -4.755419 1.728137 -0.248385 +v -4.747920 1.747752 -0.253641 +v -4.723568 1.757680 -0.256301 +v -4.699216 1.747752 -0.253641 +v -4.691718 1.728137 -0.248385 +v -4.691718 1.682611 -0.236187 +v -4.723568 1.775975 -0.188020 +v -4.723568 1.784320 -0.156878 +v -4.699217 1.774391 -0.154217 +v -4.699216 1.766047 -0.185359 +v -4.755419 1.690956 -0.205044 +v -4.755419 1.736481 -0.217243 +v -4.691718 1.700907 -0.167906 +v -4.691718 1.746433 -0.180104 +v -4.691718 1.754778 -0.148962 +v -4.691718 1.709252 -0.136763 +v -4.723568 1.766024 -0.225159 +v -4.747920 1.756096 -0.222499 +v -4.755419 1.746433 -0.180104 +v -4.755419 1.754778 -0.148962 +v -4.747920 1.774391 -0.154217 +v -4.747920 1.766047 -0.185359 +v -4.691718 1.736481 -0.217243 +v -4.699217 1.756096 -0.222499 +v -4.755419 1.709252 -0.136763 +v -4.691718 1.690956 -0.205044 +v -4.755418 1.700907 -0.167906 +vt 0.854271 0.490000 +vt 0.844221 0.480000 +vt 0.844221 0.470000 +vt 0.844221 0.490000 +vt 0.839196 0.510000 +vt 0.839196 0.490000 +vt 0.874372 0.510000 +vt 0.884422 0.520000 +vt 0.884422 0.530000 +vt 0.889447 0.510000 +vt 0.884422 0.490000 +vt 0.889447 0.490000 +vt 0.874372 0.490000 +vt 0.839196 0.460000 +vt 0.849246 0.440000 +vt 0.839196 0.440000 +vt 0.849246 0.460000 +vt 0.864322 0.440000 +vt 0.879397 0.440000 +vt 0.864322 0.460000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.839196 0.410000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.844221 0.510000 +vt 0.854271 0.510000 +vt 0.673367 0.410000 +vt 0.678392 0.450000 +vt 0.673367 0.450000 +vt 0.673367 0.750000 +vt 0.678392 0.790000 +vt 0.673367 0.790000 +vt 0.673367 0.110000 +vt 0.678392 0.150000 +vt 0.673367 0.150000 +vt 0.673367 0.350000 +vt 0.678392 0.390000 +vt 0.673367 0.390000 +vt 0.678392 0.710000 +vt 0.678392 0.750000 +vt 0.673367 0.050000 +vt 0.678392 0.090000 +vt 0.673367 0.090000 +vt 0.673367 0.310000 +vt 0.678392 0.350000 +vt 0.673367 0.690000 +vt 0.678392 0.650000 +vt 0.678392 0.690000 +vt 0.673367 0.010000 +vt 0.678392 0.050000 +vt 0.673367 0.250000 +vt 0.678392 0.290000 +vt 0.673367 0.290000 +vt 0.673367 0.610000 +vt 0.673367 0.650000 +vt 0.673367 0.990000 +vt 0.678392 0.950000 +vt 0.678392 0.990000 +vt 0.673367 0.550000 +vt 0.678392 0.590000 +vt 0.673367 0.590000 +vt 0.673367 0.950000 +vt 0.678392 0.910000 +vt 0.673367 0.510000 +vt 0.678392 0.550000 +vt 0.673367 0.850000 +vt 0.678392 0.890000 +vt 0.673367 0.890000 +vt 0.678392 0.210000 +vt 0.678392 0.250000 +vt 0.673367 0.490000 +vt 0.678392 0.490000 +vt 0.673367 0.810000 +vt 0.678392 0.850000 +vt 0.673367 0.190000 +vt 0.678392 0.190000 +vt 0.941328 0.806921 +vt 0.891960 0.878298 +vt 0.842592 0.806921 +vt 0.874372 0.490000 +vt 0.854271 0.490000 +vt 0.844221 0.470000 +vt 0.889447 0.490000 +vt 0.884422 0.510000 +vt 0.884422 0.490000 +vt 0.854271 0.510000 +vt 0.874372 0.510000 +vt 0.884422 0.530000 +vt 0.839196 0.490000 +vt 0.844221 0.510000 +vt 0.839196 0.510000 +vt 0.844221 0.490000 +vt 0.849246 0.440000 +vt 0.839196 0.460000 +vt 0.839196 0.440000 +vt 0.864322 0.460000 +vt 0.849246 0.460000 +vt 0.879397 0.440000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.440000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.889446 0.390000 +vt 0.884422 0.400000 +vt 0.884421 0.390000 +vt 0.894472 0.400000 +vt 0.889447 0.400000 +vt 0.894471 0.390000 +vt 0.899498 0.400000 +vt 0.839196 0.390000 +vt 0.844221 0.400000 +vt 0.839196 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.854271 0.400000 +vt 0.849246 0.400000 +vt 0.869346 0.390000 +vt 0.874372 0.400000 +vt 0.869347 0.400000 +vt 0.864322 0.400000 +vt 0.864321 0.390000 +vt 0.854271 0.390000 +vt 0.859297 0.400000 +vt 0.879396 0.390000 +vt 0.874371 0.390000 +vt 0.859296 0.390000 +vt 0.879397 0.400000 +vt 0.853224 0.347841 +vt 0.853094 0.362605 +vt 0.840244 0.362159 +vt 0.854271 0.390000 +vt 0.849246 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.839196 0.400000 +vt 0.839196 0.390000 +vt 0.899498 0.400000 +vt 0.894473 0.390000 +vt 0.899498 0.390000 +vt 0.894472 0.400000 +vt 0.889448 0.390000 +vt 0.884422 0.400000 +vt 0.884422 0.390000 +vt 0.869347 0.400000 +vt 0.864322 0.390000 +vt 0.869347 0.390000 +vt 0.874372 0.390000 +vt 0.879397 0.390000 +vt 0.859297 0.400000 +vt 0.859297 0.390000 +vt 0.874372 0.400000 +vt 0.840307 0.347617 +vt 0.853160 0.347617 +vt 0.846734 0.369767 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.160000 +vt 0.854271 0.140000 +vt 0.864322 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 1.000000 0.890000 +vt 0.994975 0.930000 +vt 0.994975 0.890000 +vt 0.839196 1.000000 +vt 0.994975 0.990000 +vt 1.000000 1.000000 +vt 0.994975 0.950000 +vt 0.844221 0.990000 +vt 0.844221 0.950000 +vt 0.844221 0.930000 +vt 0.839196 0.940000 +vt 0.839196 0.930000 +vt 0.844221 0.890000 +vt 0.839196 0.950000 +vt 0.839196 0.990000 +vt 1.000000 0.990000 +vt 1.000000 0.950000 +vt 1.000000 0.880000 +vt 0.839196 0.880000 +vt 1.000000 0.940000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.333333 +vt 0.500000 0.333333 +vt 0.500000 0.416667 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.040000 +vt 0.984925 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.183178 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.183178 +vt 0.882826 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.182496 +vt 0.888908 0.177504 +vt 0.890610 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.887001 0.175798 +vt 0.893434 0.180000 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.177504 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.884422 0.510000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.678392 0.410000 +vt 0.678392 0.110000 +vt 0.673367 0.710000 +vt 0.678392 0.310000 +vt 0.678392 0.010000 +vt 0.678392 0.610000 +vt 0.673367 0.910000 +vt 0.678392 0.510000 +vt 0.673367 0.210000 +vt 0.678392 0.810000 +vt 0.840052 0.775000 +vt 0.842592 0.743079 +vt 0.849965 0.714283 +vt 0.861449 0.691430 +vt 0.875920 0.676758 +vt 0.922471 0.691430 +vt 0.891960 0.671702 +vt 0.908001 0.676758 +vt 0.933955 0.714283 +vt 0.941328 0.743079 +vt 0.943869 0.775000 +vt 0.933955 0.835717 +vt 0.922471 0.858570 +vt 0.908001 0.873242 +vt 0.875920 0.873242 +vt 0.861449 0.858570 +vt 0.849965 0.835717 +vt 0.844221 0.480000 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.889447 0.510000 +vt 0.884422 0.520000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.839196 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.899496 0.390000 +vt 0.850331 0.367915 +vt 0.846604 0.369764 +vt 0.842912 0.367657 +vt 0.839314 0.354742 +vt 0.840373 0.347395 +vt 0.843136 0.342085 +vt 0.846863 0.340235 +vt 0.850556 0.342342 +vt 0.854153 0.355258 +vt 0.854271 0.400000 +vt 0.844221 0.400000 +vt 0.889447 0.400000 +vt 0.864322 0.400000 +vt 0.879397 0.400000 +vt 0.843023 0.367788 +vt 0.840307 0.362383 +vt 0.839313 0.355000 +vt 0.843024 0.342212 +vt 0.846734 0.340233 +vt 0.850444 0.342212 +vt 0.854154 0.355000 +vt 0.853160 0.362383 +vt 0.850444 0.367788 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.200000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.854271 0.160000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 1.000000 0.930000 +vt 1.000000 0.940000 +vt 0.839196 0.890000 +vt 0.839196 0.940000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.416667 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.994975 0.140000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.882265 0.177504 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.881167 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.888908 0.182496 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.175798 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.182496 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.145729 0.250000 +vt 0.311558 0.200000 +vt 0.311558 0.250000 +vt 0.145729 0.150000 +vt 0.311558 0.150000 +vt 0.311558 0.100000 +vt 0.145729 0.100000 +vt 0.311558 0.050000 +vt 0.145729 0.050000 +vt 0.311558 -0.000000 +vt 0.145729 1.000000 +vt 0.311558 0.950000 +vt 0.311558 1.000000 +vt 0.145729 0.950000 +vt 0.311558 0.900000 +vt 0.145729 0.900000 +vt 0.311558 0.850000 +vt 0.145729 0.800000 +vt 0.311558 0.800000 +vt 0.311558 0.750000 +vt 0.145729 0.700000 +vt 0.311558 0.700000 +vt 0.311558 0.650000 +vt 0.145729 0.600000 +vt 0.311558 0.600000 +vt 0.311558 0.550000 +vt 0.145729 0.550000 +vt 0.311558 0.500000 +vt 0.145729 0.500000 +vt 0.311558 0.450000 +vt 0.145729 0.400000 +vt 0.311558 0.400000 +vt 0.311558 0.350000 +vt 0.085427 0.150000 +vt 0.085427 0.110000 +vt 0.145729 0.300000 +vt 0.311558 0.300000 +vt 0.512563 0.050000 +vt 0.512563 0.090000 +vt 0.085427 0.890000 +vt 0.045226 0.850000 +vt 0.085427 0.850000 +vt 0.145729 0.850000 +vt 0.085427 0.210000 +vt 0.145729 0.200000 +vt 0.145729 0.650000 +vt 0.085427 0.610000 +vt 0.145729 0.350000 +vt 0.085427 0.390000 +vt 0.085427 0.350000 +vt 0.085427 0.950000 +vt 0.145729 0.750000 +vt 0.085427 0.710000 +vt 0.145729 0.450000 +vt 0.085427 0.490000 +vt 0.085427 0.450000 +vt 0.085427 0.050000 +vt 0.085427 0.810000 +vt 0.085427 0.550000 +vt 0.085427 0.310000 +vt 0.085427 0.910000 +vt 0.085427 0.650000 +vt 0.085427 0.410000 +vt 0.085427 0.010000 +vt 0.145729 -0.000000 +vt 0.085427 0.750000 +vt 0.085427 0.510000 +vt 0.085427 0.250000 +vt 0.045226 0.020000 +vt 0.015075 0.050000 +vt 0.015075 0.030000 +vt 0.045226 0.220000 +vt 0.045226 0.450000 +vt 0.045226 0.820000 +vt 0.085427 0.190000 +vt 0.045226 0.150000 +vt 0.045226 0.420000 +vt 0.085427 0.790000 +vt 0.045226 0.750000 +vt 0.045226 0.120000 +vt 0.045226 0.380000 +vt 0.045226 0.350000 +vt 0.045226 0.720000 +vt 0.045226 0.080000 +vt 0.045226 0.050000 +vt 0.045226 0.320000 +vt 0.085427 0.690000 +vt 0.045226 0.650000 +vt 0.085427 0.290000 +vt 0.045226 0.250000 +vt 0.045226 0.620000 +vt 0.085427 0.990000 +vt 0.045226 0.950000 +vt 0.085427 0.590000 +vt 0.045226 0.550000 +vt 0.045226 0.920000 +vt 0.045226 0.520000 +vt 0.015075 0.550000 +vt 0.000000 0.540000 +vt 0.015075 0.530000 +vt 0.045226 0.280000 +vt 0.015075 0.250000 +vt 0.015075 0.630000 +vt 0.045226 0.980000 +vt 0.015075 0.950000 +vt 0.015075 0.570000 +vt 0.015075 0.930000 +vt 0.015075 0.870000 +vt 0.015075 0.850000 +vt 0.015075 0.230000 +vt 0.015075 0.470000 +vt 0.015075 0.450000 +vt 0.015075 0.830000 +vt 0.045226 0.180000 +vt 0.015075 0.150000 +vt 0.015075 0.430000 +vt 0.045226 0.780000 +vt 0.015075 0.750000 +vt 0.015075 0.130000 +vt 0.015075 0.370000 +vt 0.015075 0.350000 +vt 0.015075 0.730000 +vt 0.015075 0.070000 +vt 0.015075 0.330000 +vt 0.015075 0.670000 +vt 0.015075 0.650000 +vt 0.953345 0.878086 +vt 0.945036 0.854673 +vt 0.953658 0.831713 +vt -0.000000 0.860000 +vt 0.000000 0.850000 +vt 0.000000 0.240000 +vt -0.000000 0.460000 +vt -0.000000 0.450000 +vt 0.000000 0.840000 +vt 0.000000 0.160000 +vt 0.000000 0.150000 +vt -0.000000 0.440000 +vt 0.000000 0.760000 +vt 0.000000 0.750000 +vt 0.000000 0.140000 +vt -0.000000 0.360000 +vt 0.000000 0.350000 +vt 0.000000 0.740000 +vt -0.000000 0.060000 +vt 0.000000 0.050000 +vt -0.000000 0.340000 +vt 0.000000 0.660000 +vt 0.000000 0.650000 +vt -0.000000 0.040000 +vt 0.000000 0.260000 +vt 0.000000 0.250000 +vt 0.000000 0.640000 +vt -0.000000 0.960000 +vt 0.000000 0.950000 +vt -0.000000 0.560000 +vt 0.000000 0.550000 +vt 0.000000 0.940000 +vt 0.512563 0.510000 +vt 0.512563 0.550000 +vt 0.512563 0.850000 +vt 0.512563 0.590000 +vt 0.512563 0.350000 +vt 0.512563 0.190000 +vt 0.512563 0.910000 +vt 0.512563 0.950000 +vt 0.512563 0.690000 +vt 0.512563 0.450000 +vt 0.512563 0.790000 +vt 0.512563 0.290000 +vt 0.512563 0.150000 +vt 0.512563 0.890000 +vt 0.512563 0.210000 +vt 0.512563 0.250000 +vt 0.512563 0.650000 +vt 0.512563 0.390000 +vt 0.512563 0.990000 +vt 0.512563 0.750000 +vt 0.512563 0.490000 +vt 0.512563 0.810000 +vt 0.512563 0.110000 +vt 0.512563 0.710000 +vt 0.512563 0.310000 +vt 0.839196 0.350000 +vt 0.839196 0.690000 +vt 0.839196 0.010000 +vt 0.839196 0.050000 +vt 0.839196 0.290000 +vt 0.839196 0.650000 +vt 0.839196 0.990000 +vt 0.839196 0.550000 +vt 0.839196 0.590000 +vt 0.839196 0.910000 +vt 0.839196 0.950000 +vt 0.839196 0.890000 +vt 0.839196 0.250000 +vt 0.839196 0.490000 +vt 0.839196 0.850000 +vt 0.839196 0.190000 +vt 0.839196 0.450000 +vt 0.839196 0.790000 +vt 0.839196 0.150000 +vt 0.839196 0.390000 +vt 0.839196 0.750000 +vt 0.839196 0.090000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.849246 0.530000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.844221 0.610000 +vt 0.839196 0.600000 +vt 0.844221 0.600000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.844221 0.580000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.839196 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.600000 +vt 0.844221 0.610000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.844221 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.864321 0.370000 +vt 0.869346 0.370000 +vt 0.859296 0.370000 +vt 0.854271 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.839196 0.370000 +vt 0.899496 0.370000 +vt 0.894471 0.370000 +vt 0.889446 0.370000 +vt 0.884421 0.370000 +vt 0.879396 0.370000 +vt 0.874371 0.370000 +vt 0.864322 0.410000 +vt 0.889447 0.410000 +vt 0.849246 0.410000 +vt 0.844221 0.410000 +vt 0.869347 0.410000 +vt 0.859297 0.410000 +vt 0.884422 0.410000 +vt 0.839196 0.410000 +vt 0.854271 0.410000 +vt 0.879397 0.410000 +vt 0.894472 0.410000 +vt 0.874372 0.410000 +vt 0.869347 0.370000 +vt 0.874372 0.370000 +vt 0.879397 0.370000 +vt 0.889448 0.370000 +vt 0.884422 0.370000 +vt 0.899498 0.370000 +vt 0.894473 0.370000 +vt 0.839196 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.854271 0.370000 +vt 0.864322 0.370000 +vt 0.859297 0.370000 +vt 0.874372 0.410000 +vt 0.844221 0.410000 +vt 0.889447 0.410000 +vt 0.864322 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.410000 +vt 0.894472 0.410000 +vt 0.884422 0.410000 +vt 0.859297 0.410000 +vt 0.839196 0.410000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.650000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643402 +vt 0.884422 0.644949 +vt 0.881957 0.643402 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.175822 +vt 0.890826 0.180000 +vt 0.890826 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658724 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.045226 0.880000 +vt 0.085427 0.090000 +vt 0.045226 0.480000 +vt 0.045226 0.680000 +vt 0.045226 0.580000 +vt 0.015075 0.270000 +vt 0.015075 0.970000 +vt 0.015075 0.170000 +vt 0.015075 0.770000 +vt 0.967295 0.840936 +vt 0.968989 0.847779 +vt 0.969538 0.855329 +vt 0.968887 0.862846 +vt 0.967101 0.869596 +vt 0.964355 0.874917 +vt 0.960916 0.878289 +vt 0.957122 0.879380 +vt 0.949953 0.874532 +vt 0.947279 0.869066 +vt 0.945585 0.862223 +vt 0.945687 0.847156 +vt 0.947473 0.840406 +vt 0.950219 0.835085 +vt 0.957452 0.830621 +vt 0.961229 0.831916 +vt 0.964621 0.835470 +vt 0.512563 0.410000 +vt 0.512563 0.010000 +vt 0.512563 0.610000 +vt 0.839196 0.310000 +vt 0.839196 0.610000 +vt 0.839196 0.510000 +vt 0.839196 0.210000 +vt 0.839196 0.810000 +vt 0.839196 0.410000 +vt 0.839196 0.110000 +vt 0.839196 0.710000 +vt 0.839196 0.530000 +vt 0.839196 0.610000 +vt 0.872867 0.592995 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.839196 0.530000 +vt 0.839196 0.600000 +vt 0.839196 0.580000 +vt 0.872867 0.592994 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.899498 0.410000 +vt 0.869347 0.410000 +vt 0.854271 0.410000 +vt 0.899498 0.410000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.650000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658725 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888692 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.892547 0.180000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.3907 -0.9205 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3907 0.9205 +vn 0.0000 0.8137 0.5813 +vn 0.0000 0.8079 -0.5893 +vn 0.0000 0.9986 0.0523 +vn 0.0000 0.2726 0.9621 +vn -0.0000 -0.6489 0.7609 +vn 0.0000 -0.1777 -0.9841 +vn -0.0000 -0.9986 -0.0523 +vn 0.0000 0.9834 0.1815 +vn 0.0000 0.9205 0.3907 +vn 0.0000 0.3907 0.9205 +vn 0.0000 -0.3907 -0.9205 +vn 0.0000 0.8137 -0.5813 +vn 0.0000 0.8080 0.5892 +vn 0.0000 0.9986 -0.0523 +vn 0.0000 0.2726 -0.9621 +vn -0.0000 -0.6489 -0.7609 +vn 0.0000 -0.1777 0.9841 +vn 0.0000 -0.9986 0.0523 +vn 0.0000 0.9834 -0.1815 +vn 0.0000 0.9205 -0.3907 +vn 0.0000 -0.1569 0.9876 +vn 0.0000 -0.1569 -0.9876 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 0.9659 +vn -0.8553 0.5004 0.1341 +vn 0.8553 0.5004 0.1341 +vn 0.0000 0.1772 0.9842 +vn 0.0000 0.6455 -0.7637 +vn 0.0000 0.9659 0.2588 +vn -0.5301 -0.8190 -0.2194 +vn -0.0001 0.2588 -0.9659 +vn 0.0866 0.9623 0.2578 +vn 0.0006 -0.2588 0.9659 +vn -0.0254 -0.9656 -0.2587 +vn 0.0006 0.2588 -0.9659 +vn -0.9611 0.2669 0.0715 +vn -0.9703 -0.2337 -0.0626 +vn -0.5543 0.8040 0.2154 +vn 0.3200 0.9151 0.2452 +vn 0.8916 0.4374 0.1172 +vn 0.6727 -0.7147 -0.1915 +vn 0.0000 1.0000 -0.0001 +vn -0.0000 0.8598 0.5106 +vn 0.0000 0.5281 0.8492 +vn 0.0000 0.0785 0.9969 +vn 0.0000 -0.3810 0.9246 +vn 0.0000 -0.7591 0.6510 +vn 0.0000 -0.9729 0.2312 +vn 0.0000 -0.9727 -0.2321 +vn 0.0000 -0.7630 -0.6463 +vn 0.0000 -0.3787 -0.9255 +vn 0.0000 0.0814 -0.9967 +vn 0.0000 0.5273 -0.8496 +vn 0.0000 0.8511 -0.5251 +vn 0.0000 0.8910 0.4540 +vn 0.0000 0.3885 0.9215 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8910 -0.4540 +vn 0.0000 0.3884 -0.9215 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3885 -0.9215 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7881 -0.6156 -0.0000 +vn -0.7315 0.3095 -0.6075 +vn 0.0000 0.4540 0.8910 +vn -0.0000 0.4540 -0.8910 +vn 0.0000 -0.8910 0.4540 +vn 0.7315 0.3095 -0.6075 +vn -0.7315 0.3095 0.6075 +vn 0.7315 0.3095 0.6075 +vn 0.0000 -0.8910 -0.4540 +vn 0.0000 -0.8387 0.5446 +vn 0.0000 -0.9922 -0.1243 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.0524 0.9986 +vn 0.0000 0.6038 0.7972 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.0523 0.9986 +vn 0.0000 0.6038 0.7971 +vn 0.3827 -0.4619 0.8001 +vn 0.9239 -0.1913 0.3314 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn -0.7881 0.3078 -0.5331 +vn 0.0000 -0.0523 -0.9986 +vn 0.0000 0.6038 -0.7971 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8387 -0.5447 +vn 0.0000 -0.9922 0.1243 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.8387 -0.5446 +vn 0.3827 -0.4619 -0.8001 +vn 0.9239 -0.1913 -0.3314 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn -0.7881 0.3078 0.5331 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.8553 0.3664 0.3663 +vn 0.8553 0.3664 0.3663 +vn 0.0000 -0.3387 0.9409 +vn 0.0000 0.9409 -0.3387 +vn 0.0000 0.7071 0.7071 +vn -0.8553 0.3663 0.3663 +vn -0.5301 -0.5996 -0.5996 +vn -0.0001 0.7071 -0.7071 +vn 0.0866 0.7045 0.7044 +vn 0.0006 -0.7071 0.7071 +vn -0.0254 -0.7069 -0.7069 +vn 0.0006 0.7071 -0.7071 +vn -0.9610 0.1954 0.1954 +vn -0.9703 -0.1711 -0.1711 +vn -0.5543 0.5885 0.5885 +vn 0.3200 0.6699 0.6699 +vn 0.8916 0.3202 0.3202 +vn 0.6727 -0.5232 -0.5232 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.9659 0.2588 +vn -0.8553 0.1341 0.5004 +vn 0.8553 0.1341 0.5004 +vn 0.0000 -0.7637 0.6455 +vn 0.0000 0.9842 0.1772 +vn 0.0000 0.2588 0.9659 +vn -0.5301 -0.2195 -0.8190 +vn -0.0001 0.9659 -0.2588 +vn 0.0866 0.2579 0.9623 +vn 0.0006 -0.9659 0.2588 +vn -0.0254 -0.2588 -0.9656 +vn 0.0006 0.9659 -0.2588 +vn -0.9611 0.0715 0.2669 +vn -0.9703 -0.0626 -0.2337 +vn -0.5543 0.2154 0.8040 +vn 0.3200 0.2452 0.9151 +vn 0.8916 0.1172 0.4374 +vn 0.6727 -0.1915 -0.7147 +vn 0.0000 -0.9659 -0.2588 +vn -0.8553 -0.1341 0.5004 +vn 0.8553 -0.1341 0.5004 +vn 0.0000 -0.9842 0.1772 +vn 0.0000 0.7637 0.6455 +vn -0.5301 0.2194 -0.8190 +vn -0.0001 0.9659 0.2588 +vn 0.0866 -0.2578 0.9623 +vn 0.0006 -0.9659 -0.2588 +vn -0.0254 0.2587 -0.9656 +vn 0.0006 0.9659 0.2588 +vn -0.9611 -0.0715 0.2669 +vn -0.9703 0.0626 -0.2337 +vn -0.5543 -0.2154 0.8040 +vn 0.3200 -0.2452 0.9151 +vn 0.8916 -0.1172 0.4374 +vn 0.6727 0.1915 -0.7147 +vn 0.0000 -0.7071 -0.7071 +vn -0.8553 -0.3663 0.3664 +vn 0.8553 -0.3663 0.3664 +vn 0.0000 -0.9409 -0.3386 +vn 0.0000 0.3387 0.9409 +vn -0.8553 -0.3663 0.3663 +vn -0.5301 0.5996 -0.5996 +vn -0.0001 0.7071 0.7071 +vn 0.0866 -0.7044 0.7045 +vn 0.0006 -0.7071 -0.7071 +vn -0.0254 0.7069 -0.7069 +vn 0.0006 0.7071 0.7071 +vn -0.9611 -0.1954 0.1954 +vn -0.9703 0.1711 -0.1711 +vn -0.5543 -0.5885 0.5885 +vn 0.3200 -0.6699 0.6699 +vn 0.8916 -0.3202 0.3202 +vn 0.6727 0.5232 -0.5232 +vn 0.0000 -0.2588 -0.9659 +vn -0.8553 -0.5004 0.1341 +vn 0.8553 -0.5004 0.1341 +vn 0.0000 -0.6455 -0.7637 +vn 0.0000 -0.1772 0.9842 +vn -0.5301 0.8190 -0.2195 +vn -0.0001 0.2588 0.9659 +vn 0.0866 -0.9623 0.2579 +vn 0.0006 -0.2588 -0.9659 +vn -0.0254 0.9656 -0.2588 +vn 0.0006 0.2588 0.9659 +vn -0.9610 -0.2670 0.0715 +vn -0.9703 0.2337 -0.0626 +vn -0.5543 -0.8040 0.2154 +vn 0.3200 -0.9151 0.2452 +vn 0.8916 -0.4374 0.1172 +vn 0.6727 0.7147 -0.1915 +vn -0.8553 -0.5004 -0.1341 +vn 0.8553 -0.5004 -0.1341 +vn 0.0000 -0.1772 -0.9842 +vn 0.0000 -0.6455 0.7637 +vn -0.5301 0.8190 0.2195 +vn -0.0001 -0.2588 0.9659 +vn 0.0866 -0.9623 -0.2578 +vn -0.0254 0.9656 0.2587 +vn -0.9611 -0.2669 -0.0715 +vn -0.9703 0.2337 0.0626 +vn -0.5543 -0.8040 -0.2154 +vn 0.3200 -0.9151 -0.2452 +vn 0.8916 -0.4374 -0.1172 +vn 0.6727 0.7147 0.1915 +vn -0.8553 -0.3664 -0.3663 +vn 0.8553 -0.3663 -0.3663 +vn 0.0000 0.3387 -0.9409 +vn 0.0000 -0.9409 0.3386 +vn -0.5301 0.5996 0.5996 +vn -0.0001 -0.7071 0.7071 +vn 0.0866 -0.7045 -0.7044 +vn -0.0254 0.7069 0.7069 +vn -0.9611 -0.1954 -0.1954 +vn -0.9703 0.1711 0.1711 +vn -0.5543 -0.5885 -0.5885 +vn 0.3200 -0.6699 -0.6699 +vn 0.8916 -0.3202 -0.3202 +vn 0.6727 0.5232 0.5232 +vn -0.8553 -0.1341 -0.5004 +vn 0.8553 -0.1341 -0.5004 +vn 0.0000 0.7637 -0.6455 +vn 0.0000 -0.9842 -0.1772 +vn -0.5301 0.2195 0.8190 +vn -0.0001 -0.9659 0.2588 +vn 0.0866 -0.2579 -0.9623 +vn -0.0254 0.2588 0.9656 +vn -0.9611 -0.0715 -0.2669 +vn -0.9703 0.0626 0.2337 +vn -0.5543 -0.2154 -0.8040 +vn 0.3200 -0.2452 -0.9151 +vn 0.8916 -0.1172 -0.4374 +vn 0.6727 0.1915 0.7147 +vn -0.8553 0.1340 -0.5004 +vn 0.8553 0.1341 -0.5004 +vn 0.0000 0.9842 -0.1772 +vn 0.0000 -0.7637 -0.6455 +vn -0.8553 0.1341 -0.5004 +vn -0.5301 -0.2195 0.8190 +vn -0.0001 -0.9659 -0.2588 +vn 0.0866 0.2578 -0.9623 +vn -0.0254 -0.2587 0.9656 +vn -0.9611 0.0715 -0.2669 +vn -0.9703 -0.0626 0.2337 +vn -0.5543 0.2154 -0.8040 +vn 0.3200 0.2452 -0.9151 +vn 0.8916 0.1172 -0.4374 +vn 0.6727 -0.1915 0.7147 +vn -0.8553 0.3663 -0.3664 +vn 0.8553 0.3663 -0.3663 +vn 0.0000 0.9409 0.3386 +vn 0.0000 -0.3387 -0.9409 +vn -0.5301 -0.5996 0.5996 +vn -0.0001 -0.7071 -0.7071 +vn 0.0866 0.7044 -0.7045 +vn -0.0254 -0.7069 0.7069 +vn -0.9610 0.1954 -0.1954 +vn -0.9703 -0.1711 0.1711 +vn -0.5543 0.5886 -0.5885 +vn 0.3200 0.6699 -0.6699 +vn 0.8916 0.3202 -0.3202 +vn 0.6727 -0.5232 0.5232 +vn -0.8553 0.5004 -0.1341 +vn 0.8553 0.5004 -0.1341 +vn 0.0000 0.6455 0.7637 +vn 0.0000 0.1772 -0.9842 +vn -0.5301 -0.8190 0.2195 +vn -0.0001 -0.2588 -0.9659 +vn 0.0866 0.9623 -0.2579 +vn -0.0254 -0.9656 0.2588 +vn -0.9610 0.2670 -0.0715 +vn -0.9703 -0.2337 0.0626 +vn -0.5543 0.8040 -0.2154 +vn 0.3200 0.9151 -0.2452 +vn 0.8916 0.4374 -0.1172 +vn 0.6727 -0.7147 0.1915 +vn 0.0000 0.8080 0.5893 +vn -0.0254 -0.9656 -0.2588 +vn -0.9610 0.2670 0.0715 +vn -0.5543 0.8039 0.2154 +vn 0.0000 -0.7591 0.6509 +vn 0.0000 0.5274 -0.8496 +vn 0.0000 0.3884 0.9215 +vn -0.7881 -0.6155 0.0000 +vn 0.0000 -0.8387 0.5447 +vn 0.0000 0.6038 -0.7972 +vn 0.8553 0.3663 0.3663 +vn 0.0000 0.9409 -0.3386 +vn 0.0866 0.7044 0.7045 +vn -0.9611 0.1954 0.1954 +vn -0.0000 -0.9659 0.2589 +vn 0.0866 0.2578 0.9623 +vn -0.0254 -0.2587 -0.9656 +vn -0.5301 0.2195 -0.8190 +vn 0.0866 -0.2579 0.9623 +vn -0.0254 0.2588 -0.9656 +vn -0.9611 -0.0715 0.2670 +vn 0.8553 -0.3663 0.3663 +vn 0.0000 -0.9409 -0.3387 +vn 0.0866 -0.7045 0.7044 +vn -0.9610 -0.1954 0.1954 +vn -0.9703 0.1710 -0.1711 +vn 0.0866 -0.9623 0.2578 +vn -0.0254 0.9656 -0.2587 +vn -0.9611 -0.2669 0.0715 +vn -0.5301 0.8190 0.2194 +vn -0.0254 0.9656 0.2588 +vn -0.0000 0.2589 -0.9659 +vn 0.0000 -0.9409 0.3387 +vn -0.8553 -0.3663 -0.3663 +vn 0.0866 -0.7044 -0.7045 +vn -0.9610 -0.1954 -0.1954 +vn -0.0000 0.9659 -0.2589 +vn 0.0866 -0.2578 -0.9623 +vn -0.0254 0.2587 0.9656 +vn -0.9611 -0.0715 -0.2670 +vn -0.5301 -0.2194 0.8190 +vn 0.0866 0.2579 -0.9623 +vn -0.0254 -0.2588 0.9656 +vn -0.9611 0.0715 -0.2670 +vn -0.8553 0.3663 -0.3663 +vn 0.8553 0.3663 -0.3664 +vn 0.0000 0.9409 0.3387 +vn 0.0866 0.7045 -0.7044 +vn -0.9611 0.1954 -0.1954 +vn -0.9703 -0.1710 0.1711 +vn -0.5543 0.5885 -0.5885 +vn 0.0866 0.9623 -0.2578 +vn -0.0254 -0.9656 0.2587 +vn -0.9611 0.2669 -0.0715 +vn -0.1484 0.9718 0.1832 +vn 0.2193 0.7003 0.6793 +vn 0.2207 0.9548 0.1989 +vn -0.1362 0.2058 0.9691 +vn 0.2323 0.2268 0.9458 +vn -0.0878 -0.2912 0.9526 +vn 0.2563 -0.2412 0.9360 +vn -0.0599 -0.4966 0.8659 +vn 0.2606 -0.4321 0.8634 +vn 0.9315 0.0185 0.3634 +vn 0.9150 0.3857 0.1185 +vn 0.9188 0.1426 0.3680 +vn -0.1074 0.9434 -0.3139 +vn 0.2376 0.9334 -0.2690 +vn 0.2401 0.8559 -0.4580 +vn 0.6185 0.7666 -0.1725 +vn 0.6022 0.7283 -0.3270 +vn 0.9115 0.4026 -0.0841 +vn 0.6147 0.7680 0.1798 +vn 0.9257 0.3782 -0.0057 +vn 0.6179 0.5678 0.5439 +vn 0.9138 0.2979 0.2761 +vn 0.6236 0.2090 0.7533 +vn 0.6330 -0.1431 0.7608 +vn 0.9189 -0.0596 0.3901 +vn -0.0814 0.8519 -0.5174 +vn -0.6382 0.7109 -0.2955 +vn -0.5963 0.6564 -0.4621 +vn -0.9783 0.1436 -0.1493 +vn -0.6797 0.7264 0.1017 +vn -0.9889 0.1441 -0.0351 +vn -0.6959 0.5088 0.5068 +vn -0.1625 0.7053 0.6900 +vn -0.9933 0.0744 0.0879 +vn -0.6698 0.1098 0.7344 +vn -0.9859 -0.0467 0.1607 +vn -0.6223 -0.2870 0.7283 +vn -0.9735 -0.1608 0.1629 +vn -0.5786 -0.4543 0.6774 +vn -0.9610 -0.2130 0.1765 +vn 0.1072 0.0000 -0.9942 +vn -0.0592 -0.3085 -0.9494 +vn -0.0592 0.0000 -0.9982 +vn 0.1072 -0.5844 -0.8044 +vn -0.0592 -0.5868 -0.8076 +vn -0.0592 -0.8076 -0.5868 +vn 0.1072 -0.8044 -0.5844 +vn -0.0592 -0.9494 -0.3085 +vn 0.1072 -0.9456 -0.3072 +vn -0.0592 -0.9982 -0.0000 +vn 0.1072 -0.9942 -0.0000 +vn -0.0592 -0.9494 0.3085 +vn 0.1072 -0.9456 0.3072 +vn -0.0592 -0.8076 0.5868 +vn 0.1072 -0.8044 0.5844 +vn -0.0592 -0.5868 0.8076 +vn 0.1072 -0.3072 0.9456 +vn -0.0592 -0.3085 0.9494 +vn -0.0592 0.0000 0.9982 +vn 0.1072 0.3072 0.9456 +vn -0.0592 0.3085 0.9494 +vn -0.0592 0.5868 0.8076 +vn 0.1072 0.8044 0.5844 +vn -0.0592 0.8076 0.5868 +vn -0.0592 0.9494 0.3085 +vn 0.1072 0.9456 0.3072 +vn -0.0592 0.9982 0.0000 +vn 0.1072 0.9942 -0.0000 +vn -0.0592 0.9494 -0.3085 +vn 0.1072 0.8044 -0.5844 +vn -0.0592 0.8076 -0.5868 +vn -0.0592 0.5868 -0.8076 +vn 0.3239 -0.5561 -0.7654 +vn 0.3239 -0.7654 -0.5561 +vn 0.1072 0.3072 -0.9456 +vn -0.0592 0.3085 -0.9494 +vn -0.0600 -0.9493 -0.3085 +vn -0.0600 -0.8076 -0.5867 +vn 0.3239 -0.7654 0.5561 +vn 0.6069 -0.4672 0.6430 +vn 0.3239 -0.5561 0.7654 +vn 0.1072 -0.5844 0.8044 +vn 0.3239 -0.2924 -0.8998 +vn 0.1072 -0.3072 -0.9456 +vn 0.1072 0.5844 0.8044 +vn 0.3239 0.7654 0.5561 +vn 0.1072 0.5844 -0.8044 +vn 0.3239 0.7654 -0.5561 +vn 0.3239 0.5561 -0.7654 +vn 0.3239 -0.8998 0.2924 +vn 0.1072 -0.0000 0.9942 +vn 0.3239 0.2924 0.8998 +vn 0.1072 0.9456 -0.3072 +vn 0.3239 0.9461 0.0000 +vn 0.3239 0.8998 -0.2924 +vn 0.3239 -0.8998 -0.2924 +vn 0.3239 -0.2924 0.8998 +vn 0.3239 0.8998 0.2924 +vn 0.3239 0.2924 -0.8998 +vn 0.3239 0.5561 0.7654 +vn 0.3239 -0.9461 -0.0000 +vn 0.3239 -0.0000 0.9461 +vn 0.3239 0.0000 -0.9461 +vn 0.6069 -0.7948 0.0000 +vn 0.8573 -0.4896 -0.1591 +vn 0.8573 -0.5148 0.0000 +vn 0.6069 -0.2456 -0.7559 +vn 0.6069 0.7559 -0.2456 +vn 0.6069 -0.2456 0.7559 +vn 0.6069 -0.4672 -0.6430 +vn 0.6069 0.6430 -0.4672 +vn 0.6069 -0.0000 0.7948 +vn 0.6069 -0.6430 -0.4672 +vn 0.6069 0.4672 -0.6430 +vn 0.6069 0.2456 0.7559 +vn 0.6069 -0.7559 -0.2456 +vn 0.6069 0.2456 -0.7559 +vn 0.6069 0.4672 0.6430 +vn 0.6069 0.0000 -0.7948 +vn 0.6069 0.6430 0.4672 +vn 0.6069 -0.7559 0.2456 +vn 0.6069 0.7559 0.2456 +vn 0.6069 -0.6430 0.4672 +vn 0.6069 0.7948 -0.0000 +vn 0.8573 0.4896 0.1591 +vn 0.9802 0.1978 0.0000 +vn 0.8573 0.5148 0.0000 +vn 0.8573 0.0000 -0.5148 +vn 0.8573 0.4165 0.3026 +vn 0.8573 -0.4896 0.1591 +vn 0.8573 -0.4165 0.3026 +vn 0.8573 -0.3026 0.4165 +vn 0.8573 -0.1591 -0.4896 +vn 0.8573 0.4896 -0.1591 +vn 0.8573 -0.1591 0.4896 +vn 0.8573 -0.3026 -0.4165 +vn 0.8573 0.4165 -0.3026 +vn 0.8573 0.0000 0.5148 +vn 0.8573 -0.4165 -0.3026 +vn 0.8573 0.3026 -0.4165 +vn 0.8573 0.1591 0.4896 +vn 0.8573 0.1591 -0.4896 +vn 0.8573 0.3026 0.4165 +vn 0.9803 0.1880 0.0611 +vn 0.9803 -0.0000 0.1977 +vn 0.9803 -0.1880 0.0611 +vn 0.9803 -0.1599 0.1162 +vn 0.9803 -0.1162 0.1600 +vn 0.9803 -0.0611 -0.1880 +vn 0.9803 0.1880 -0.0611 +vn 0.9803 -0.0611 0.1880 +vn 0.9803 -0.1162 -0.1599 +vn 0.9803 0.1600 -0.1162 +vn 0.9803 -0.1600 -0.1162 +vn 0.9803 0.1162 -0.1600 +vn 0.9803 0.0611 0.1880 +vn 0.9803 -0.1880 -0.0611 +vn 0.9803 0.0611 -0.1881 +vn 0.9803 0.1162 0.1599 +vn 0.9803 -0.1977 0.0000 +vn 0.9803 0.0000 -0.1977 +vn 0.9803 0.1599 0.1162 +vn -0.0600 0.9982 -0.0000 +vn -0.0000 0.9511 0.3090 +vn -0.0600 0.9493 0.3085 +vn -0.0600 -0.5867 0.8076 +vn -0.0600 0.8076 0.5867 +vn -0.0600 0.5867 -0.8076 +vn -0.0600 -0.3085 -0.9493 +vn -0.0600 -0.8076 0.5867 +vn -0.0600 -0.9493 0.3085 +vn -0.0600 0.3085 0.9493 +vn -0.0600 0.9493 -0.3085 +vn -0.0600 -0.3085 0.9493 +vn -0.0600 0.3085 -0.9493 +vn -0.0600 -0.5867 -0.8076 +vn -0.0600 -0.0000 -0.9982 +vn -0.0600 0.5867 0.8076 +vn -0.0600 0.8076 -0.5867 +vn -0.0600 -0.9982 0.0000 +vn -0.0600 -0.0000 0.9982 +vn 0.0000 -0.8090 0.5878 +vn -0.0000 0.9511 -0.3090 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3090 -0.9511 +vn -0.0000 0.8090 -0.5878 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn -0.0000 0.5878 -0.8090 +vn -0.0000 0.5878 0.8090 +vn -0.0000 0.3090 0.9511 +vn 0.0000 -0.9511 -0.3090 +vn -0.0000 0.3090 -0.9511 +vn -0.0000 0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.2116 0.0000 -0.9774 +vn 0.9665 0.0000 -0.2567 +vn 0.6774 -0.5201 -0.5201 +vn 0.6774 0.0000 -0.7356 +vn 0.2116 -0.6911 -0.6911 +vn 0.2116 -0.9774 0.0000 +vn 0.9665 -0.1815 -0.1815 +vn 0.6774 -0.7356 0.0000 +vn 0.9665 -0.1815 0.1815 +vn 0.6774 -0.5201 0.5201 +vn 0.2116 -0.6911 0.6911 +vn 0.2116 -0.0000 0.9774 +vn 0.9665 -0.0000 0.2567 +vn 0.6774 -0.0000 0.7356 +vn 0.6774 0.5201 0.5201 +vn 0.2116 0.6911 0.6911 +vn 0.9665 0.1815 0.1815 +vn 0.2116 0.9774 -0.0000 +vn 0.9665 0.2567 -0.0000 +vn 0.6774 0.7356 -0.0000 +vn 0.6774 0.5201 -0.5201 +vn 0.2116 0.6911 -0.6911 +vn 0.9665 -0.2567 0.0000 +vn -0.0000 0.7136 0.7006 +vn 0.4073 0.6058 0.6834 +vn 0.7055 0.3113 0.6367 +vn 0.8147 -0.0910 0.5727 +vn 0.7055 -0.4933 0.5088 +vn 0.4073 -0.7878 0.4621 +vn 0.0000 -0.8956 0.4449 +vn -0.4073 -0.7878 0.4621 +vn -0.4073 -0.7878 0.4620 +vn -0.7055 -0.4933 0.5088 +vn -0.8147 -0.0910 0.5727 +vn -0.7055 0.3113 0.6367 +vn -0.4073 0.6058 0.6834 +vn -0.0000 -0.9876 -0.1569 +vn -0.5000 -0.8553 -0.1359 +vn 0.5000 0.8553 0.1359 +vn 0.8660 0.4938 0.0784 +vn -0.5000 0.8553 0.1359 +vn -0.8660 0.4938 0.0784 +vn 0.5000 -0.8553 -0.1359 +vn -0.8660 -0.4938 -0.0784 +vn -0.8660 -0.4938 -0.0785 +vn 0.0000 0.9876 0.1569 +vn 0.8660 -0.4938 -0.0785 +vn -0.0000 0.7136 -0.7006 +vn 0.4073 0.6058 -0.6834 +vn 0.7055 0.3113 -0.6367 +vn 0.8147 -0.0910 -0.5727 +vn 0.7055 -0.4933 -0.5088 +vn 0.4073 -0.7878 -0.4620 +vn -0.0000 -0.8956 -0.4449 +vn -0.4073 -0.7878 -0.4620 +vn -0.7055 -0.4933 -0.5088 +vn -0.8147 -0.0910 -0.5727 +vn -0.7055 0.3113 -0.6367 +vn -0.4073 0.6058 -0.6834 +vn -0.5000 -0.8553 0.1359 +vn 0.0000 -0.9876 0.1569 +vn 0.8660 0.4938 -0.0785 +vn 0.5000 0.8553 -0.1359 +vn -0.5000 0.8553 -0.1359 +vn -0.8660 0.4938 -0.0785 +vn 0.5000 -0.8553 0.1359 +vn -0.8660 -0.4938 0.0785 +vn 0.0000 0.9876 -0.1569 +vn 0.8660 -0.4938 0.0784 +vn 0.7231 0.6672 0.1788 +vn -0.9844 0.1700 0.0455 +vn 0.9844 0.1699 0.0455 +vn -0.7230 0.6673 0.1788 +vn -0.7231 0.6673 0.1788 +vn -0.7231 0.6672 0.1788 +vn -0.9844 0.1699 0.0455 +vn 0.9844 0.1700 0.0455 +vn -0.4669 -0.4015 0.7879 +vn 0.4669 -0.4015 0.7880 +vn -0.9554 0.1340 -0.2630 +vn -0.9555 -0.1340 0.2630 +vn 0.9554 0.1340 -0.2630 +vn 0.9554 -0.1340 0.2630 +vn 0.4669 0.4015 -0.7879 +vn 0.4669 -0.4015 0.7879 +vn -0.4669 0.4015 -0.7879 +vn -0.9554 -0.1340 0.2630 +vn 0.4669 0.8843 -0.0000 +vn -0.4669 0.8843 0.0000 +vn 0.9554 -0.2952 0.0000 +vn 0.9554 0.2952 0.0000 +vn -0.9554 -0.2952 0.0000 +vn -0.9555 0.2952 0.0000 +vn -0.4669 -0.8843 0.0000 +vn -0.9554 0.2952 0.0000 +vn 0.4669 -0.8843 0.0000 +vn 0.9555 0.2951 0.0000 +vn 0.9555 -0.2952 0.0000 +vn 0.9555 0.2952 -0.0000 +vn 0.4669 -0.4015 -0.7879 +vn -0.4669 -0.4015 -0.7879 +vn -0.9555 -0.1340 -0.2630 +vn -0.9554 0.1340 0.2630 +vn -0.9555 0.1340 0.2630 +vn 0.9554 0.1340 0.2630 +vn 0.9554 -0.1340 -0.2630 +vn 0.9555 0.1340 0.2630 +vn 0.4669 0.4015 0.7879 +vn 0.9554 -0.1339 -0.2630 +vn -0.4669 0.4015 0.7879 +vn -0.4669 0.4014 0.7879 +vn -0.9554 -0.1340 -0.2630 +vn 0.4669 0.4014 0.7879 +vn -0.4669 0.4014 0.7880 +vn 0.4669 0.4014 0.7880 +vn -0.9554 -0.2952 0.0001 +vn -0.1442 0.1945 -0.9703 +vn 0.2193 0.6891 -0.6907 +vn 0.2247 0.2119 -0.9511 +vn -0.1404 0.9708 -0.1946 +vn 0.2284 0.9498 -0.2139 +vn -0.0945 0.9485 0.3025 +vn 0.2500 0.9343 0.2542 +vn -0.0672 0.8594 0.5069 +vn 0.2536 0.8593 0.4441 +vn 0.9295 0.3686 -0.0089 +vn 0.9164 0.3942 0.0693 +vn 0.9277 0.0040 -0.3732 +vn -0.1007 -0.3028 -0.9477 +vn 0.2441 -0.2561 -0.9353 +vn 0.2471 -0.4461 -0.8602 +vn 0.6235 -0.1596 -0.7654 +vn 0.6078 -0.3147 -0.7290 +vn 0.9141 -0.0743 -0.3987 +vn 0.6177 0.1926 -0.7624 +vn 0.9164 0.1282 -0.3793 +vn 0.6179 0.5542 -0.5577 +vn 0.9138 0.2847 -0.2895 +vn 0.6206 0.7592 -0.1964 +vn 0.6281 0.7624 0.1559 +vn 0.9176 0.3746 -0.1330 +vn -0.0740 -0.5073 -0.8586 +vn -0.6328 -0.2901 -0.7179 +vn -0.5903 -0.4572 -0.6653 +vn -0.9767 -0.1528 -0.1507 +vn -0.6763 0.1071 -0.7288 +vn -0.9880 -0.0386 -0.1498 +vn -0.6959 0.5093 -0.5063 +vn -0.1625 0.6978 -0.6976 +vn -0.9934 0.0835 -0.0786 +vn -0.6732 0.7321 -0.1043 +vn -0.9870 0.1548 0.0434 +vn -0.6278 0.7213 0.2926 +vn -0.9752 0.1557 0.1575 +vn -0.5846 0.6686 0.4596 +vn -0.9630 0.1687 0.2099 +vn -0.1446 -0.9709 -0.1907 +vn 0.2194 -0.6935 -0.6862 +vn 0.2243 -0.9520 -0.2081 +vn -0.1400 -0.1983 -0.9701 +vn 0.2287 -0.2177 -0.9488 +vn -0.0939 0.2988 -0.9497 +vn 0.2506 0.2504 -0.9352 +vn -0.0665 0.5036 -0.8614 +vn 0.2542 0.4406 -0.8609 +vn 0.9297 -0.0109 -0.3681 +vn 0.9162 -0.3803 -0.1262 +vn 0.9177 -0.1350 -0.3736 +vn -0.1013 -0.9465 0.3064 +vn 0.2434 -0.9344 0.2599 +vn 0.2464 -0.8586 0.4496 +vn 0.6230 -0.7650 0.1629 +vn 0.6073 -0.7281 0.3179 +vn 0.9138 -0.3989 0.0763 +vn 0.6175 -0.7635 -0.1893 +vn 0.9275 -0.3737 -0.0021 +vn 0.6179 -0.5602 -0.5517 +vn 0.9138 -0.2911 -0.2831 +vn 0.6209 -0.1996 -0.7581 +vn 0.6286 0.1526 -0.7626 +vn 0.9166 0.0673 -0.3940 +vn -0.0747 -0.8566 0.5106 +vn -0.6333 -0.7165 0.2926 +vn -0.5908 -0.6632 0.4595 +vn -0.9769 -0.1495 0.1529 +vn -0.6766 -0.7288 -0.1046 +vn -0.9881 -0.1492 0.0387 +vn -0.6959 -0.5079 -0.5077 +vn -0.1625 -0.7002 -0.6952 +vn -0.9934 -0.0784 -0.0837 +vn -0.6729 -0.1068 -0.7320 +vn -0.9869 0.0433 -0.1555 +vn -0.6272 0.2901 -0.7228 +vn -0.9750 0.1574 -0.1568 +vn -0.5841 0.4572 -0.6707 +vn -0.9628 0.2098 -0.1700 +vn -0.1480 -0.1870 0.9712 +vn 0.2193 -0.6821 0.6976 +vn 0.2211 -0.2028 0.9539 +vn -0.1366 -0.9698 0.2021 +vn 0.2320 -0.9468 0.2230 +vn -0.0884 -0.9514 -0.2949 +vn 0.2558 -0.9352 -0.2450 +vn -0.0606 -0.8639 -0.4999 +vn 0.2600 -0.8618 -0.4356 +vn 0.9313 -0.3639 0.0166 +vn 0.9186 -0.3903 -0.0616 +vn 0.9259 0.0037 0.3777 +vn -0.1068 0.3103 0.9446 +vn 0.2382 0.2653 0.9343 +vn 0.2407 0.4546 0.8576 +vn 0.6190 0.1692 0.7670 +vn 0.6027 0.3239 0.7293 +vn 0.9117 0.0821 0.4025 +vn 0.6150 -0.1831 0.7670 +vn 0.9151 -0.1204 0.3848 +vn 0.6179 -0.5464 0.5654 +vn 0.9138 -0.2778 0.2964 +vn 0.6233 -0.7544 0.2058 +vn 0.6326 -0.7605 -0.1463 +vn 0.9187 -0.3690 0.1407 +vn -0.0807 0.5141 0.8539 +vn -0.6377 0.2930 0.7124 +vn -0.5957 0.4599 0.6585 +vn -0.9782 0.1492 0.1446 +vn -0.6794 -0.1042 0.7264 +vn -0.9889 0.0350 0.1447 +vn -0.6959 -0.5084 0.5072 +vn -0.1625 -0.6927 0.7027 +vn -0.9934 -0.0877 0.0745 +vn -0.6701 -0.7345 0.1073 +vn -0.9860 -0.1600 -0.0469 +vn -0.6228 -0.7268 -0.2896 +vn -0.9736 -0.1618 -0.1609 +vn -0.5791 -0.6753 -0.4567 +vn -0.9612 -0.1752 -0.2132 +vn -0.4669 -0.4816 -0.7417 +vn 0.4669 -0.4817 -0.7416 +vn -0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2475 +vn -0.9554 -0.1608 -0.2475 +vn 0.9554 0.1607 0.2475 +vn 0.9554 -0.1608 -0.2475 +vn 0.9554 0.1608 0.2476 +vn 0.4669 0.4816 0.7416 +vn 0.4669 0.4817 0.7416 +vn 0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2476 +vn -0.4669 0.4816 0.7416 +vn 0.4669 -0.4422 0.7658 +vn -0.4669 -0.4422 0.7658 +vn 0.9554 0.1476 -0.2556 +vn 0.9554 -0.1476 0.2556 +vn -0.9554 0.1476 -0.2556 +vn -0.9555 -0.1476 0.2556 +vn -0.9555 0.1476 -0.2556 +vn -0.4669 0.4421 -0.7658 +vn -0.4669 0.4421 -0.7659 +vn -0.9554 -0.1476 0.2556 +vn 0.4669 0.4422 -0.7658 +vn -0.9554 0.1607 0.2476 +vn 0.9554 0.1608 0.2475 +vn -0.4669 0.4817 0.7416 +vn -0.4669 -0.4421 0.7658 +vn -0.4669 0.4422 -0.7658 +vn -0.4669 0.4816 0.7417 +vn 0.4669 -0.4421 0.7659 +vn 0.4669 -0.4421 0.7658 +vn 0.9555 0.1476 -0.2556 +vn 0.9555 -0.1476 0.2556 +vn 0.4669 0.8831 0.0463 +vn -0.4669 0.8831 0.0463 +vn -0.9555 0.2947 0.0155 +vn -0.9554 -0.2948 -0.0154 +vn -0.9554 -0.2947 -0.0154 +vn 0.9554 -0.2948 -0.0154 +vn 0.9554 0.2948 0.0155 +vn 0.4669 -0.8831 -0.0463 +vn -0.4669 -0.8831 -0.0463 +vn -0.9554 0.2948 0.0155 +vn 0.9554 0.2948 0.0154 +vn 0.9555 -0.2947 -0.0154 +vn -0.9554 0.1475 -0.2556 +vn -0.9554 0.1475 -0.2557 +vn 0.4669 0.4421 -0.7659 +vn -0.4669 0.8831 -0.0463 +vn 0.4669 0.8831 -0.0463 +vn -0.9554 -0.2948 0.0154 +vn -0.9554 0.2948 -0.0154 +vn -0.9555 0.2947 -0.0154 +vn 0.9554 -0.2948 0.0154 +vn 0.9554 0.2948 -0.0155 +vn 0.4669 -0.8831 0.0463 +vn -0.4669 -0.8831 0.0463 +vn 0.4669 -0.4422 -0.7658 +vn -0.4669 -0.4421 -0.7659 +vn 0.9554 0.1476 0.2556 +vn 0.9554 -0.1476 -0.2556 +vn -0.9554 0.1476 0.2556 +vn -0.9555 -0.1476 -0.2556 +vn -0.9555 0.1476 0.2556 +vn -0.4669 0.4422 0.7658 +vn -0.4669 -0.4421 -0.7658 +vn -0.9554 -0.1476 -0.2556 +vn 0.4669 0.4422 0.7658 +vn -0.9554 0.2948 -0.0155 +vn -0.4669 -0.4422 -0.7658 +vn 0.9555 -0.1476 -0.2556 +vn 0.4669 0.4421 0.7658 +vn 0.4669 0.4421 0.7659 +vn 0.4669 -0.4816 0.7416 +vn -0.4669 -0.4816 0.7416 +vn -0.9555 -0.1608 0.2475 +vn -0.9554 0.1608 -0.2475 +vn 0.9554 0.1607 -0.2476 +vn 0.9554 -0.1608 0.2475 +vn 0.9555 0.1607 -0.2475 +vn 0.4669 0.4817 -0.7416 +vn -0.4669 0.4816 -0.7416 +vn -0.9554 -0.1608 0.2475 +vn -0.9554 0.1475 0.2556 +vn -0.9554 -0.1475 -0.2556 +vn -0.9554 0.1475 0.2557 +vn -0.4669 0.4421 0.7658 +vn -0.9554 -0.1475 -0.2557 +vn -0.4669 -0.4817 0.7416 +vn -0.9554 0.1608 -0.2476 +vn 0.9554 -0.1607 0.2476 +vn 0.9554 0.1608 -0.2475 +vn -0.4669 0.4817 -0.7416 +vn 0.9554 0.1607 -0.2475 +vn 0.9554 0.1608 -0.2476 +vn 0.4669 0.4816 -0.7416 +vn 0.7231 0.4884 0.4884 +vn -0.9844 0.1244 0.1244 +vn 0.9844 0.1244 0.1244 +vn -0.7231 0.4885 0.4885 +vn 0.7231 0.4885 0.4885 +vn 0.7231 0.4884 0.4885 +vn 0.7231 0.1788 0.6672 +vn -0.9844 0.0455 0.1700 +vn 0.9844 0.0455 0.1700 +vn -0.7231 0.1788 0.6673 +vn -0.7231 0.1788 0.6672 +vn 0.9844 0.0455 0.1699 +vn 0.9844 0.0456 0.1700 +vn 0.7231 0.1787 0.6672 +vn 0.7231 -0.1788 0.6672 +vn -0.9844 -0.0455 0.1700 +vn 0.9844 -0.0455 0.1699 +vn -0.7231 -0.1788 0.6673 +vn -0.7231 -0.1788 0.6672 +vn 0.9844 -0.0455 0.1700 +vn 0.9844 -0.0456 0.1700 +vn 0.7231 -0.4885 0.4884 +vn -0.9844 -0.1244 0.1244 +vn 0.9844 -0.1244 0.1244 +vn -0.7231 -0.4885 0.4885 +vn 0.7231 -0.4885 0.4885 +vn 0.7231 -0.6672 0.1788 +vn -0.9844 -0.1700 0.0455 +vn 0.9844 -0.1700 0.0455 +vn -0.7231 -0.6673 0.1788 +vn -0.7231 -0.6672 0.1788 +vn -0.9844 -0.1699 0.0455 +vn 0.9844 -0.1699 0.0455 +vn 0.7231 -0.6672 -0.1788 +vn -0.9844 -0.1699 -0.0455 +vn 0.9844 -0.1699 -0.0455 +vn -0.7231 -0.6672 -0.1788 +vn -0.7231 -0.6673 -0.1788 +vn -0.9844 -0.1700 -0.0455 +vn 0.9844 -0.1700 -0.0455 +vn 0.7231 -0.4884 -0.4885 +vn -0.9844 -0.1244 -0.1244 +vn 0.9844 -0.1244 -0.1244 +vn -0.7231 -0.4885 -0.4885 +vn 0.7231 -0.4885 -0.4885 +vn 0.7231 -0.1788 -0.6672 +vn -0.9844 -0.0455 -0.1700 +vn 0.9844 -0.0455 -0.1699 +vn -0.7231 -0.1788 -0.6673 +vn -0.7231 -0.1788 -0.6672 +vn 0.9844 -0.0456 -0.1700 +vn 0.9844 -0.0455 -0.1700 +vn 0.7231 -0.1788 -0.6673 +vn 0.7231 -0.1787 -0.6672 +vn 0.7231 0.1788 -0.6672 +vn -0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1699 +vn -0.7231 0.1788 -0.6673 +vn -0.7231 0.1788 -0.6672 +vn 0.9844 0.0455 -0.1699 +vn 0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1700 +vn 0.7231 0.4885 -0.4884 +vn -0.9844 0.1244 -0.1244 +vn 0.9844 0.1244 -0.1244 +vn -0.7231 0.4885 -0.4885 +vn 0.7231 0.6672 -0.1788 +vn -0.9844 0.1700 -0.0455 +vn 0.9844 0.1699 -0.0455 +vn -0.7231 0.6673 -0.1788 +vn -0.7231 0.6672 -0.1788 +vn -0.9844 0.1699 -0.0455 +vn 0.9844 0.1700 -0.0455 +vn 0.6186 -0.2988 0.7267 +vn -0.9669 0.1561 -0.2020 +vn 0.9665 0.1815 -0.1815 +vn -0.9555 0.2952 0.0001 +vn 0.9554 -0.1341 -0.2630 +vn 0.6130 0.7263 0.3111 +vn -0.9649 -0.2053 -0.1637 +vn 0.6135 0.3079 -0.7272 +vn -0.9651 -0.1624 0.2054 +vn 0.6181 -0.7258 -0.3020 +vn -0.9667 0.2019 0.1573 +vn 0.9555 0.1476 0.2556 +vn 0.9554 -0.1607 0.2475 +s off +f 46/1/1 47/2/1 48/3/1 +f 47/4/2 50/5/2 48/6/2 +f 52/7/3 53/8/3 54/9/3 +f 54/10/4 44/11/4 43/12/4 +f 44/11/5 52/7/5 45/13/5 +f 56/14/6 58/15/6 55/16/6 +f 57/17/7 60/18/7 58/15/7 +f 62/19/8 59/20/8 61/21/8 +f 58/15/3 64/22/3 55/16/3 +f 64/22/9 65/23/9 66/24/9 +f 67/25/3 58/15/3 60/18/3 +f 60/18/3 68/26/3 67/25/3 +f 68/26/10 70/27/10 67/25/10 +f 67/25/11 65/23/11 63/28/11 +f 57/17/1 70/29/1 59/20/1 +f 59/20/1 69/30/1 61/21/1 +f 66/31/1 57/17/1 56/14/1 +f 46/1/12 49/32/12 47/4/12 +f 45/13/13 51/33/13 46/1/13 +f 214/34/1 216/35/1 213/36/1 +f 223/37/1 238/38/1 221/39/1 +f 224/40/1 240/41/1 222/42/1 +f 225/43/1 215/44/1 214/45/1 +f 223/37/1 241/46/1 237/47/1 +f 227/48/1 239/49/1 224/50/1 +f 228/51/1 233/52/1 225/43/1 +f 226/53/1 243/54/1 241/55/1 +f 230/56/1 242/57/1 227/48/1 +f 220/58/1 234/59/1 228/60/1 +f 231/61/1 243/54/1 229/62/1 +f 230/63/1 247/64/1 244/65/1 +f 196/66/1 246/67/1 231/68/1 +f 232/69/1 249/70/1 247/64/1 +f 195/71/1 248/72/1 196/66/1 +f 217/73/1 249/74/1 218/75/1 +f 220/58/1 252/76/1 245/77/1 +f 195/78/1 216/35/1 250/79/1 +f 221/80/1 251/81/1 217/73/1 +f 219/82/1 240/41/1 252/83/1 +f 264/84/1 268/85/1 235/86/1 +f 338/87/1 339/88/1 335/89/1 +f 336/90/14 342/91/14 337/92/14 +f 345/93/3 346/94/3 341/95/3 +f 335/96/15 344/97/15 343/98/15 +f 339/88/16 344/97/16 340/99/16 +f 348/100/17 350/101/17 347/102/17 +f 348/100/18 352/103/18 349/104/18 +f 352/103/19 354/105/19 353/106/19 +f 355/107/3 348/100/3 347/102/3 +f 355/107/20 358/108/20 356/109/20 +f 351/110/3 356/109/3 359/111/3 +f 351/110/3 360/112/3 354/105/3 +f 361/113/21 360/112/21 359/111/21 +f 356/109/22 361/113/22 359/111/22 +f 361/114/1 349/104/1 352/103/1 +f 352/103/1 362/115/1 361/114/1 +f 349/104/1 357/116/1 350/101/1 +f 342/91/23 338/87/23 337/92/23 +f 346/94/24 339/88/24 338/87/24 +f 379/117/25 386/118/25 381/119/25 +f 379/117/25 393/120/25 385/121/25 +f 377/122/25 394/123/25 393/120/25 +f 375/124/25 395/125/25 394/126/25 +f 371/127/25 395/125/25 373/128/25 +f 371/127/25 397/129/25 396/130/25 +f 364/131/25 398/132/25 390/133/25 +f 364/131/25 389/134/25 365/135/25 +f 369/136/25 399/137/25 397/129/25 +f 383/138/25 398/132/25 387/139/25 +f 367/140/25 389/134/25 399/137/25 +f 381/119/25 400/141/25 383/138/25 +f 408/142/25 410/143/25 402/144/25 +f 430/145/26 434/146/26 428/147/26 +f 434/146/26 426/148/26 428/147/26 +f 426/148/26 442/149/26 424/150/26 +f 442/151/26 422/152/26 424/153/26 +f 443/154/26 420/155/26 422/152/26 +f 420/155/26 445/156/26 418/157/26 +f 440/158/26 436/159/26 414/160/26 +f 413/161/26 440/158/26 414/160/26 +f 445/156/26 416/162/26 418/157/26 +f 436/159/26 448/163/26 432/164/26 +f 416/162/26 437/165/26 413/161/26 +f 448/163/26 430/145/26 432/164/26 +f 451/166/26 455/167/26 439/168/26 +f 460/169/27 462/170/27 459/171/27 +f 464/172/28 466/173/28 463/174/28 +f 467/175/29 466/173/29 465/176/29 +f 470/177/30 463/174/30 469/178/30 +f 469/178/27 467/179/27 470/180/27 +f 471/181/31 473/182/31 474/183/31 +f 476/184/32 478/185/32 475/186/32 +f 471/181/33 470/187/33 467/188/33 +f 480/189/28 482/190/28 479/191/28 +f 460/192/29 479/193/29 482/194/29 +f 482/195/33 475/186/33 478/185/33 +f 461/196/30 480/189/30 462/170/30 +f 483/197/1 471/181/1 467/198/1 +f 484/199/3 474/183/3 473/182/3 +f 485/200/3 475/186/3 481/201/3 +f 486/202/1 478/185/1 477/203/1 +f 466/173/28 488/204/28 463/174/28 +f 479/191/28 490/205/28 480/189/28 +f 469/178/27 492/206/27 468/207/27 +f 459/171/1 489/208/1 479/193/1 +f 469/178/3 488/204/3 491/209/3 +f 468/210/1 487/211/1 466/173/1 +f 462/170/27 493/212/27 459/171/27 +f 462/170/3 490/205/3 494/213/3 +f 496/214/34 498/215/34 495/216/34 +f 496/214/3 500/217/3 499/218/3 +f 501/219/28 497/220/28 496/214/28 +f 498/221/35 503/222/35 504/223/35 +f 505/224/36 507/225/36 508/226/36 +f 508/226/37 510/227/37 509/228/37 +f 512/229/38 510/227/38 511/230/38 +f 511/231/39 505/224/39 512/232/39 +f 501/233/40 503/234/40 502/235/40 +f 503/236/41 497/237/41 502/238/41 +f 500/217/42 501/233/42 499/218/42 +f 516/239/28 513/240/28 515/241/28 +f 519/242/27 521/243/27 522/244/27 +f 519/245/43 517/246/43 520/247/43 +f 517/246/44 521/243/44 520/247/44 +f 521/243/3 515/241/3 522/244/3 +f 518/248/45 515/241/45 514/249/45 +f 519/245/1 514/250/1 513/251/1 +f 524/252/27 526/253/27 528/254/27 +f 538/255/28 531/256/28 543/257/28 +f 546/258/28 540/259/28 535/260/28 +f 537/261/27 542/262/27 530/263/27 +f 552/264/46 554/265/46 551/266/46 +f 552/267/47 555/268/47 556/269/47 +f 556/270/48 557/271/48 558/272/48 +f 557/273/49 560/274/49 558/275/49 +f 560/276/50 561/277/50 562/278/50 +f 561/279/51 564/280/51 562/281/51 +f 564/282/52 565/283/52 566/284/52 +f 565/285/53 568/286/53 566/287/53 +f 567/288/54 570/289/54 568/290/54 +f 570/291/55 571/292/55 572/293/55 +f 571/294/56 574/295/56 572/296/56 +f 574/297/57 575/298/57 576/299/57 +f 553/300/58 575/301/58 554/302/58 +f 587/303/59 586/304/59 584/305/59 +f 612/306/60 610/307/60 609/308/60 +f 603/309/61 602/310/61 600/311/61 +f 623/312/59 622/313/59 620/314/59 +f 648/315/60 646/316/60 645/317/60 +f 639/318/61 638/319/61 636/320/61 +f 659/321/59 658/322/59 656/323/59 +f 682/324/60 684/325/60 681/326/60 +f 675/327/61 674/328/61 672/329/61 +f 689/330/62 700/331/62 696/332/62 +f 718/333/63 720/334/63 717/335/63 +f 705/336/64 716/337/64 712/338/64 +f 725/339/62 736/340/62 732/341/62 +f 756/342/65 754/343/65 753/344/65 +f 741/345/64 752/346/64 748/347/64 +f 761/348/62 772/349/62 768/350/62 +f 790/351/65 792/352/65 789/353/65 +f 777/354/64 788/355/64 784/356/64 +f 793/357/61 798/358/61 803/359/61 +f 805/360/3 800/361/3 804/362/3 +f 803/363/66 807/364/66 806/365/66 +f 807/366/67 801/367/67 805/360/67 +f 808/368/68 803/363/68 806/365/68 +f 793/369/1 809/370/1 794/371/1 +f 810/372/1 798/373/1 811/374/1 +f 811/374/69 797/375/69 812/376/69 +f 813/377/64 812/378/64 814/379/64 +f 796/380/3 812/376/3 797/381/3 +f 795/382/70 809/370/70 813/383/70 +f 941/384/71 943/385/71 944/386/71 +f 948/387/62 950/388/62 947/389/62 +f 954/390/72 949/391/72 953/392/72 +f 955/393/73 944/386/73 943/385/73 +f 946/394/74 954/390/74 953/392/74 +f 951/395/75 956/396/75 955/393/75 +f 946/397/76 949/391/76 948/398/76 +f 947/399/77 954/390/77 945/400/77 +f 941/401/78 956/396/78 952/402/78 +f 942/403/59 955/393/59 943/385/59 +f 811/404/64 804/362/64 810/372/64 +f 806/405/64 805/360/64 811/404/64 +f 808/368/64 811/404/64 812/378/64 +f 812/378/64 809/406/64 808/368/64 +f 797/407/61 795/408/61 796/409/61 +f 797/407/61 794/410/61 795/408/61 +f 803/359/61 801/411/61 802/412/61 +f 798/358/61 800/413/61 801/411/61 +f 967/414/79 966/415/79 964/416/79 +f 992/417/80 990/418/80 989/419/80 +f 983/420/81 982/421/81 980/422/81 +f 1003/423/79 1002/424/79 1000/425/79 +f 1028/426/80 1026/427/80 1025/428/80 +f 1019/429/81 1018/430/81 1016/431/81 +f 1039/432/79 1038/433/79 1036/434/79 +f 1062/435/80 1064/436/80 1061/437/80 +f 1055/438/81 1054/439/81 1052/440/81 +f 1069/441/82 1080/442/82 1076/443/82 +f 1097/444/83 1099/445/83 1100/446/83 +f 1085/447/84 1096/448/84 1092/449/84 +f 1105/450/85 1116/451/85 1112/452/85 +f 1136/453/86 1134/454/86 1133/455/86 +f 1121/456/84 1132/457/84 1128/458/84 +f 1141/459/85 1152/460/85 1148/461/85 +f 1170/462/86 1172/463/86 1169/464/86 +f 1157/465/84 1168/466/84 1164/467/84 +f 1173/468/81 1178/469/81 1183/470/81 +f 1185/471/3 1180/472/3 1184/473/3 +f 1186/474/87 1182/475/87 1187/476/87 +f 1187/477/88 1181/478/88 1185/471/88 +f 1188/479/89 1183/480/89 1186/474/89 +f 1174/481/1 1188/479/1 1189/482/1 +f 1190/483/1 1178/484/1 1191/485/1 +f 1191/485/90 1177/486/90 1192/487/90 +f 1193/488/84 1192/489/84 1194/490/84 +f 1176/491/3 1192/487/3 1177/492/3 +f 1175/493/91 1189/482/91 1193/494/91 +f 1191/495/84 1184/473/84 1190/483/84 +f 1186/496/84 1185/471/84 1191/495/84 +f 1188/479/84 1191/495/84 1192/489/84 +f 1192/489/84 1189/497/84 1188/479/84 +f 1177/498/81 1175/499/81 1176/500/81 +f 1177/498/81 1174/501/81 1175/499/81 +f 1183/470/81 1181/502/81 1182/503/81 +f 1178/469/81 1180/504/81 1181/502/81 +f 1205/505/92 1204/506/92 1202/507/92 +f 1230/508/93 1228/509/93 1227/510/93 +f 1221/511/94 1220/512/94 1218/513/94 +f 1241/514/92 1240/515/92 1238/516/92 +f 1266/517/93 1264/518/93 1263/519/93 +f 1257/520/94 1256/521/94 1254/522/94 +f 1277/523/92 1276/524/92 1274/525/92 +f 1300/526/93 1302/527/93 1299/528/93 +f 1293/529/94 1292/530/94 1290/531/94 +f 1307/532/95 1318/533/95 1314/534/95 +f 1336/535/96 1338/536/96 1335/537/96 +f 1323/538/97 1334/539/97 1330/540/97 +f 1343/541/98 1354/542/98 1350/543/98 +f 1374/544/96 1372/545/96 1371/546/96 +f 1359/547/97 1370/548/97 1366/549/97 +f 1379/550/98 1390/551/98 1386/552/98 +f 1408/553/96 1410/554/96 1407/555/96 +f 1395/556/97 1406/557/97 1402/558/97 +f 1411/559/94 1416/560/94 1421/561/94 +f 1423/562/3 1418/563/3 1422/564/3 +f 1424/565/99 1420/566/99 1425/567/99 +f 1425/568/100 1419/569/100 1423/562/100 +f 1426/570/101 1421/571/101 1424/565/101 +f 1411/572/1 1427/573/1 1412/574/1 +f 1428/575/1 1416/576/1 1429/577/1 +f 1429/577/102 1415/578/102 1430/579/102 +f 1431/580/97 1430/581/97 1432/582/97 +f 1414/583/3 1430/579/3 1415/584/3 +f 1413/585/103 1427/573/103 1431/586/103 +f 1429/587/97 1422/564/97 1428/575/97 +f 1424/588/97 1423/562/97 1429/587/97 +f 1426/570/97 1429/587/97 1430/581/97 +f 1430/581/97 1427/589/97 1426/570/97 +f 1415/590/94 1413/591/94 1414/592/94 +f 1415/590/94 1412/593/94 1413/591/94 +f 1421/561/94 1419/594/94 1420/595/94 +f 1416/560/94 1418/596/94 1419/594/94 +f 1434/597/104 1436/598/104 1433/599/104 +f 1438/600/105 1440/601/105 1437/602/105 +f 1441/603/106 1440/601/106 1439/604/106 +f 1444/605/107 1437/602/107 1443/606/107 +f 1443/606/104 1441/607/104 1444/608/104 +f 1445/609/108 1447/610/108 1448/611/108 +f 1450/612/109 1452/613/109 1449/614/109 +f 1445/609/110 1444/615/110 1441/616/110 +f 1454/617/105 1456/618/105 1453/619/105 +f 1434/620/111 1453/621/111 1456/622/111 +f 1456/623/110 1449/614/110 1452/613/110 +f 1435/624/107 1454/617/107 1436/598/107 +f 1457/625/1 1445/609/1 1441/626/1 +f 1458/627/3 1448/611/3 1447/610/3 +f 1459/628/3 1449/614/3 1455/629/3 +f 1460/630/1 1452/613/1 1451/631/1 +f 1440/601/105 1462/632/105 1437/602/105 +f 1453/619/105 1464/633/105 1454/617/105 +f 1443/606/104 1466/634/104 1442/635/104 +f 1433/599/1 1463/636/1 1453/621/1 +f 1443/606/3 1462/632/3 1465/637/3 +f 1442/638/1 1461/639/1 1440/601/1 +f 1436/598/104 1467/640/104 1433/599/104 +f 1436/598/3 1464/633/3 1468/641/3 +f 1469/642/112 1471/643/112 1472/644/112 +f 1470/645/3 1474/646/3 1473/647/3 +f 1475/648/105 1471/649/105 1470/645/105 +f 1472/650/113 1477/651/113 1478/652/113 +f 1479/653/114 1481/654/114 1482/655/114 +f 1482/655/115 1484/656/115 1483/657/115 +f 1485/658/116 1483/657/116 1484/656/116 +f 1485/659/117 1479/653/117 1486/660/117 +f 1475/661/118 1477/662/118 1476/663/118 +f 1477/664/119 1471/643/119 1476/665/119 +f 1474/646/120 1475/661/120 1473/647/120 +f 1490/666/105 1487/667/105 1489/668/105 +f 1493/669/104 1495/670/104 1496/671/104 +f 1493/672/121 1491/673/121 1494/674/121 +f 1494/674/122 1490/666/122 1495/670/122 +f 1495/670/3 1489/668/3 1496/671/3 +f 1488/675/123 1496/671/123 1489/668/123 +f 1493/672/1 1488/676/1 1487/677/1 +f 1498/678/104 1500/679/104 1502/680/104 +f 1512/681/105 1505/682/105 1517/683/105 +f 1520/684/105 1514/685/105 1509/686/105 +f 1511/687/104 1516/688/104 1504/689/104 +f 1526/690/124 1528/691/124 1525/692/124 +f 1530/693/125 1532/694/125 1529/695/125 +f 1533/696/126 1532/694/126 1531/697/126 +f 1536/698/127 1529/695/127 1535/699/127 +f 1535/699/124 1533/700/124 1536/701/124 +f 1537/702/128 1539/703/128 1540/704/128 +f 1542/705/129 1544/706/129 1541/707/129 +f 1537/702/130 1536/708/130 1533/709/130 +f 1546/710/125 1548/711/125 1545/712/125 +f 1526/713/126 1545/714/126 1548/715/126 +f 1548/716/130 1541/707/130 1544/706/130 +f 1527/717/127 1546/710/127 1528/691/127 +f 1549/718/1 1537/702/1 1533/719/1 +f 1550/720/3 1540/704/3 1539/703/3 +f 1551/721/3 1541/707/3 1547/722/3 +f 1552/723/1 1544/706/1 1543/724/1 +f 1532/694/125 1554/725/125 1529/695/125 +f 1545/712/125 1556/726/125 1546/710/125 +f 1535/699/124 1558/727/124 1534/728/124 +f 1525/692/1 1555/729/1 1545/714/1 +f 1535/699/3 1554/725/3 1557/730/3 +f 1534/731/1 1553/732/1 1532/694/1 +f 1528/691/124 1559/733/124 1525/692/124 +f 1528/691/3 1556/726/3 1560/734/3 +f 1561/735/131 1563/736/131 1564/737/131 +f 1565/738/3 1561/735/3 1566/739/3 +f 1567/740/125 1563/741/125 1562/742/125 +f 1564/743/132 1569/744/132 1570/745/132 +f 1572/746/133 1574/747/133 1571/748/133 +f 1574/747/134 1576/749/134 1575/750/134 +f 1578/751/135 1576/749/135 1577/752/135 +f 1577/753/136 1571/748/136 1578/754/136 +f 1567/755/137 1569/756/137 1568/757/137 +f 1569/758/138 1563/736/138 1568/759/138 +f 1566/739/139 1567/755/139 1565/738/139 +f 1582/760/125 1579/761/125 1581/762/125 +f 1585/763/124 1587/764/124 1588/765/124 +f 1585/766/140 1583/767/140 1586/768/140 +f 1583/767/141 1587/764/141 1586/768/141 +f 1587/764/3 1581/762/3 1588/765/3 +f 1584/769/142 1581/762/142 1580/770/142 +f 1585/766/1 1580/771/1 1579/772/1 +f 1590/773/124 1592/774/124 1594/775/124 +f 1604/776/125 1597/777/125 1609/778/125 +f 1612/779/125 1606/780/125 1601/781/125 +f 1603/782/124 1608/783/124 1596/784/124 +f 1618/785/33 1620/786/33 1617/787/33 +f 1622/788/143 1624/789/143 1621/790/143 +f 1625/791/144 1624/789/144 1623/792/144 +f 1628/793/145 1621/790/145 1627/794/145 +f 1627/794/33 1625/795/33 1628/796/33 +f 1629/797/146 1631/798/146 1632/799/146 +f 1634/800/147 1636/801/147 1633/802/147 +f 1629/797/28 1628/803/28 1625/804/28 +f 1638/805/143 1640/806/143 1637/807/143 +f 1618/808/144 1637/809/144 1640/810/144 +f 1640/811/28 1633/802/28 1636/801/28 +f 1619/812/145 1638/805/145 1620/786/145 +f 1641/813/1 1629/797/1 1625/814/1 +f 1642/815/3 1632/799/3 1631/798/3 +f 1643/816/3 1633/802/3 1639/817/3 +f 1644/818/1 1636/801/1 1635/819/1 +f 1624/789/143 1646/820/143 1621/790/143 +f 1637/807/143 1648/821/143 1638/805/143 +f 1627/794/33 1650/822/33 1626/823/33 +f 1617/787/1 1647/824/1 1637/809/1 +f 1627/794/3 1646/820/3 1649/825/3 +f 1626/826/1 1645/827/1 1624/789/1 +f 1620/786/33 1651/828/33 1617/787/33 +f 1620/786/3 1648/821/3 1652/829/3 +f 1654/830/148 1656/831/148 1653/832/148 +f 1657/833/3 1653/832/3 1658/834/3 +f 1659/835/143 1655/836/143 1654/830/143 +f 1656/837/149 1661/838/149 1662/839/149 +f 1663/840/150 1665/841/150 1666/842/150 +f 1666/842/151 1668/843/151 1667/844/151 +f 1670/845/152 1668/843/152 1669/846/152 +f 1669/847/153 1663/840/153 1670/848/153 +f 1659/849/154 1661/850/154 1660/851/154 +f 1660/852/155 1656/831/155 1655/853/155 +f 1658/834/156 1659/849/156 1657/833/156 +f 1674/854/143 1671/855/143 1673/856/143 +f 1677/857/33 1679/858/33 1680/859/33 +f 1677/860/157 1675/861/157 1678/862/157 +f 1675/861/158 1679/858/158 1678/862/158 +f 1679/858/3 1673/856/3 1680/859/3 +f 1676/863/159 1673/856/159 1672/864/159 +f 1677/860/1 1672/865/1 1671/866/1 +f 1682/867/33 1684/868/33 1686/869/33 +f 1696/870/143 1689/871/143 1701/872/143 +f 1704/873/143 1698/874/143 1693/875/143 +f 1695/876/33 1700/877/33 1688/878/33 +f 1710/879/110 1712/880/110 1709/881/110 +f 1714/882/160 1716/883/160 1713/884/160 +f 1717/885/161 1716/883/161 1715/886/161 +f 1720/887/162 1713/884/162 1719/888/162 +f 1719/888/110 1717/889/110 1720/890/110 +f 1721/891/163 1723/892/163 1724/893/163 +f 1726/894/164 1728/895/164 1725/896/164 +f 1721/891/105 1720/897/105 1717/898/105 +f 1730/899/160 1732/900/160 1729/901/160 +f 1710/902/165 1729/903/165 1732/904/165 +f 1732/905/105 1725/896/105 1728/895/105 +f 1711/906/162 1730/899/162 1712/880/162 +f 1733/907/1 1721/891/1 1717/908/1 +f 1734/909/3 1724/893/3 1723/892/3 +f 1735/910/3 1725/896/3 1731/911/3 +f 1736/912/1 1728/895/1 1727/913/1 +f 1716/883/160 1738/914/160 1713/884/160 +f 1729/901/160 1740/915/160 1730/899/160 +f 1719/888/110 1742/916/110 1718/917/110 +f 1709/881/1 1739/918/1 1729/903/1 +f 1719/888/3 1738/914/3 1741/919/3 +f 1718/920/1 1737/921/1 1716/883/1 +f 1712/880/110 1743/922/110 1709/881/110 +f 1712/880/3 1740/915/3 1744/923/3 +f 1745/924/166 1747/925/166 1748/926/166 +f 1749/927/3 1745/924/3 1750/928/3 +f 1751/929/160 1747/930/160 1746/931/160 +f 1748/932/167 1753/933/167 1754/934/167 +f 1755/935/168 1757/936/168 1758/937/168 +f 1758/937/169 1760/938/169 1759/939/169 +f 1762/940/170 1760/938/170 1761/941/170 +f 1761/942/171 1755/935/171 1762/943/171 +f 1751/944/172 1753/945/172 1752/946/172 +f 1753/947/173 1747/925/173 1752/948/173 +f 1750/928/174 1751/944/174 1749/927/174 +f 1766/949/160 1763/950/160 1765/951/160 +f 1769/952/110 1771/953/110 1772/954/110 +f 1769/955/175 1767/956/175 1770/957/175 +f 1770/957/176 1766/949/176 1771/953/176 +f 1771/953/3 1765/951/3 1772/954/3 +f 1768/958/177 1765/951/177 1764/959/177 +f 1769/955/1 1764/960/1 1763/961/1 +f 1774/962/110 1776/963/110 1778/964/110 +f 1788/965/160 1781/966/160 1793/967/160 +f 1796/968/160 1790/969/160 1785/970/160 +f 1787/971/110 1792/972/110 1780/973/110 +f 1802/974/130 1804/975/130 1801/976/130 +f 1806/977/178 1808/978/178 1805/979/178 +f 1809/980/179 1808/978/179 1807/981/179 +f 1812/982/180 1805/979/180 1811/983/180 +f 1811/983/130 1809/984/130 1812/985/130 +f 1813/986/181 1815/987/181 1816/988/181 +f 1818/989/182 1820/990/182 1817/991/182 +f 1813/986/125 1812/992/125 1809/993/125 +f 1822/994/178 1824/995/178 1821/996/178 +f 1802/997/179 1821/998/179 1824/999/179 +f 1824/1000/125 1817/991/125 1820/990/125 +f 1803/1001/180 1822/994/180 1804/975/180 +f 1825/1002/1 1813/986/1 1809/1003/1 +f 1826/1004/3 1816/988/3 1815/987/3 +f 1827/1005/3 1817/991/3 1823/1006/3 +f 1828/1007/1 1820/990/1 1819/1008/1 +f 1808/978/178 1830/1009/178 1805/979/178 +f 1821/996/178 1832/1010/178 1822/994/178 +f 1811/983/130 1834/1011/130 1810/1012/130 +f 1801/976/1 1831/1013/1 1821/998/1 +f 1811/983/3 1830/1009/3 1833/1014/3 +f 1810/1015/1 1829/1016/1 1808/978/1 +f 1804/975/130 1835/1017/130 1801/976/130 +f 1804/975/3 1832/1010/3 1836/1018/3 +f 1837/1019/183 1839/1020/183 1840/1021/183 +f 1841/1022/3 1837/1019/3 1842/1023/3 +f 1843/1024/178 1839/1025/178 1838/1026/178 +f 1840/1027/184 1845/1028/184 1846/1029/184 +f 1848/1030/185 1850/1031/185 1847/1032/185 +f 1850/1031/186 1852/1033/186 1851/1034/186 +f 1853/1035/187 1851/1034/187 1852/1033/187 +f 1853/1036/188 1847/1032/188 1854/1037/188 +f 1843/1038/189 1845/1039/189 1844/1040/189 +f 1845/1041/190 1839/1020/190 1844/1042/190 +f 1842/1023/191 1843/1038/191 1841/1022/191 +f 1858/1043/178 1855/1044/178 1857/1045/178 +f 1861/1046/130 1863/1047/130 1864/1048/130 +f 1861/1049/192 1859/1050/192 1862/1051/192 +f 1859/1050/193 1863/1047/193 1862/1051/193 +f 1863/1047/3 1857/1045/3 1864/1048/3 +f 1860/1052/194 1857/1045/194 1856/1053/194 +f 1861/1049/1 1856/1054/1 1855/1055/1 +f 1866/1056/130 1868/1057/130 1870/1058/130 +f 1880/1059/178 1873/1060/178 1885/1061/178 +f 1888/1062/178 1882/1063/178 1877/1064/178 +f 1879/1065/130 1884/1066/130 1872/1067/130 +f 1894/1068/28 1896/1069/28 1893/1070/28 +f 1898/1071/27 1900/1072/27 1897/1073/27 +f 1902/1074/195 1899/1075/195 1901/1076/195 +f 1904/1077/196 1897/1073/196 1903/1078/196 +f 1903/1078/28 1901/1079/28 1904/1080/28 +f 1905/1081/197 1907/1082/197 1908/1083/197 +f 1910/1084/198 1912/1085/198 1909/1086/198 +f 1905/1081/143 1904/1087/143 1901/1088/143 +f 1914/1089/27 1916/1090/27 1913/1091/27 +f 1894/1092/195 1913/1093/195 1916/1094/195 +f 1916/1095/143 1909/1086/143 1912/1085/143 +f 1895/1096/196 1914/1089/196 1896/1069/196 +f 1917/1097/1 1905/1081/1 1901/1098/1 +f 1918/1099/3 1908/1083/3 1907/1082/3 +f 1919/1100/3 1909/1086/3 1915/1101/3 +f 1920/1102/1 1912/1085/1 1911/1103/1 +f 1900/1072/27 1922/1104/27 1897/1073/27 +f 1913/1091/27 1924/1105/27 1914/1089/27 +f 1903/1078/28 1926/1106/28 1902/1107/28 +f 1893/1070/1 1923/1108/1 1913/1093/1 +f 1903/1078/3 1922/1104/3 1925/1109/3 +f 1902/1074/1 1921/1110/1 1900/1072/1 +f 1896/1069/28 1927/1111/28 1893/1070/28 +f 1896/1069/3 1924/1105/3 1928/1112/3 +f 1929/1113/199 1931/1114/199 1932/1115/199 +f 1933/1116/3 1929/1113/3 1934/1117/3 +f 1935/1118/27 1931/1119/27 1930/1120/27 +f 1932/1121/200 1937/1122/200 1938/1123/200 +f 1939/1124/201 1941/1125/201 1942/1126/201 +f 1942/1126/39 1944/1127/39 1943/1128/39 +f 1946/1129/202 1944/1127/202 1945/1130/202 +f 1945/1131/37 1939/1124/37 1946/1132/37 +f 1935/1133/203 1937/1134/203 1936/1135/203 +f 1937/1136/204 1931/1114/204 1936/1137/204 +f 1934/1117/205 1935/1133/205 1933/1116/205 +f 1950/1138/27 1947/1139/27 1949/1140/27 +f 1953/1141/28 1955/1142/28 1956/1143/28 +f 1953/1144/206 1951/1145/206 1954/1146/206 +f 1951/1145/207 1955/1142/207 1954/1146/207 +f 1955/1142/3 1949/1140/3 1956/1143/3 +f 1952/1147/208 1949/1140/208 1948/1148/208 +f 1953/1144/1 1948/1149/1 1947/1150/1 +f 1958/1151/28 1960/1152/28 1962/1153/28 +f 1972/1154/27 1965/1155/27 1977/1156/27 +f 1980/1157/27 1974/1158/27 1969/1159/27 +f 1971/1160/28 1976/1161/28 1964/1162/28 +f 1986/1163/105 1988/1164/105 1985/1165/105 +f 1990/1166/104 1992/1167/104 1989/1168/104 +f 1993/1169/209 1992/1167/209 1991/1170/209 +f 1996/1171/210 1989/1168/210 1995/1172/210 +f 1995/1172/105 1993/1173/105 1996/1174/105 +f 1997/1175/211 1999/1176/211 2000/1177/211 +f 2002/1178/212 2004/1179/212 2001/1180/212 +f 1997/1175/160 1996/1181/160 1993/1182/160 +f 2006/1183/104 2008/1184/104 2005/1185/104 +f 1986/1186/209 2005/1187/209 2008/1188/209 +f 2008/1189/160 2001/1180/160 2004/1179/160 +f 1987/1190/210 2006/1183/210 1988/1164/210 +f 2009/1191/1 1997/1175/1 1993/1192/1 +f 2010/1193/3 2000/1177/3 1999/1176/3 +f 2011/1194/3 2001/1180/3 2007/1195/3 +f 2012/1196/1 2004/1179/1 2003/1197/1 +f 1992/1167/104 2014/1198/104 1989/1168/104 +f 2005/1185/104 2016/1199/104 2006/1183/104 +f 1995/1172/105 2018/1200/105 1994/1201/105 +f 1985/1165/1 2015/1202/1 2005/1187/1 +f 1995/1172/3 2014/1198/3 2017/1203/3 +f 1994/1204/1 2013/1205/1 1992/1167/1 +f 1988/1164/105 2019/1206/105 1985/1165/105 +f 1988/1164/3 2016/1199/3 2020/1207/3 +f 2021/1208/213 2023/1209/213 2024/1210/213 +f 2025/1211/3 2021/1208/3 2026/1212/3 +f 2027/1213/104 2023/1214/104 2022/1215/104 +f 2024/1216/214 2029/1217/214 2030/1218/214 +f 2032/1219/215 2034/1220/215 2031/1221/215 +f 2034/1220/117 2036/1222/117 2035/1223/117 +f 2037/1224/216 2035/1223/216 2036/1222/216 +f 2037/1225/115 2031/1221/115 2038/1226/115 +f 2027/1227/217 2029/1228/217 2028/1229/217 +f 2029/1230/218 2023/1209/218 2028/1231/218 +f 2026/1212/219 2027/1227/219 2025/1211/219 +f 2042/1232/104 2039/1233/104 2041/1234/104 +f 2045/1235/105 2047/1236/105 2048/1237/105 +f 2045/1238/220 2043/1239/220 2046/1240/220 +f 2043/1239/221 2047/1236/221 2046/1240/221 +f 2047/1236/3 2041/1234/3 2048/1237/3 +f 2044/1241/222 2041/1234/222 2040/1242/222 +f 2045/1238/1 2040/1243/1 2039/1244/1 +f 2050/1245/105 2052/1246/105 2054/1247/105 +f 2064/1248/104 2057/1249/104 2069/1250/104 +f 2072/1251/104 2066/1252/104 2061/1253/104 +f 2063/1254/105 2068/1255/105 2056/1256/105 +f 2078/1257/125 2080/1258/125 2077/1259/125 +f 2082/1260/124 2084/1261/124 2081/1262/124 +f 2086/1263/223 2083/1264/223 2085/1265/223 +f 2088/1266/224 2081/1262/224 2087/1267/224 +f 2087/1267/125 2085/1268/125 2088/1269/125 +f 2089/1270/225 2091/1271/225 2092/1272/225 +f 2094/1273/226 2096/1274/226 2093/1275/226 +f 2089/1270/178 2088/1276/178 2085/1277/178 +f 2098/1278/124 2100/1279/124 2097/1280/124 +f 2078/1281/223 2097/1282/223 2100/1283/223 +f 2100/1284/178 2093/1275/178 2096/1274/178 +f 2079/1285/224 2098/1278/224 2080/1258/224 +f 2101/1286/1 2089/1270/1 2085/1287/1 +f 2102/1288/3 2092/1272/3 2091/1271/3 +f 2103/1289/3 2093/1275/3 2099/1290/3 +f 2104/1291/1 2096/1274/1 2095/1292/1 +f 2084/1261/124 2106/1293/124 2081/1262/124 +f 2097/1280/124 2108/1294/124 2098/1278/124 +f 2087/1267/125 2110/1295/125 2086/1296/125 +f 2077/1259/1 2107/1297/1 2097/1282/1 +f 2087/1267/3 2106/1293/3 2109/1298/3 +f 2086/1263/1 2105/1299/1 2084/1261/1 +f 2080/1258/125 2111/1300/125 2077/1259/125 +f 2080/1258/3 2108/1294/3 2112/1301/3 +f 2114/1302/227 2116/1303/227 2113/1304/227 +f 2117/1305/3 2113/1304/3 2118/1306/3 +f 2119/1307/124 2115/1308/124 2114/1302/124 +f 2116/1309/228 2121/1310/228 2122/1311/228 +f 2123/1312/229 2125/1313/229 2126/1314/229 +f 2126/1314/136 2128/1315/136 2127/1316/136 +f 2130/1317/230 2128/1315/230 2129/1318/230 +f 2129/1319/134 2123/1312/134 2130/1320/134 +f 2119/1321/231 2121/1322/231 2120/1323/231 +f 2121/1324/232 2115/1325/232 2120/1326/232 +f 2118/1306/233 2119/1321/233 2117/1305/233 +f 2134/1327/124 2131/1328/124 2133/1329/124 +f 2137/1330/125 2139/1331/125 2140/1332/125 +f 2131/1333/234 2138/1334/234 2137/1335/234 +f 2138/1334/235 2134/1327/235 2139/1331/235 +f 2139/1331/3 2133/1329/3 2140/1332/3 +f 2136/1336/236 2133/1329/236 2132/1337/236 +f 2137/1335/1 2132/1338/1 2131/1333/1 +f 2142/1339/125 2144/1340/125 2146/1341/125 +f 2156/1342/124 2149/1343/124 2161/1344/124 +f 2164/1345/124 2158/1346/124 2153/1347/124 +f 2155/1348/125 2160/1349/125 2148/1350/125 +f 2170/1351/143 2172/1352/143 2169/1353/143 +f 2174/1354/33 2176/1355/33 2173/1356/33 +f 2177/1357/237 2176/1355/237 2175/1358/237 +f 2180/1359/238 2173/1356/238 2179/1360/238 +f 2179/1360/143 2177/1361/143 2180/1362/143 +f 2181/1363/239 2183/1364/239 2184/1365/239 +f 2186/1366/240 2188/1367/240 2185/1368/240 +f 2181/1363/27 2180/1369/27 2177/1370/27 +f 2190/1371/33 2192/1372/33 2189/1373/33 +f 2170/1374/241 2189/1375/241 2192/1376/241 +f 2192/1377/27 2185/1368/27 2188/1367/27 +f 2171/1378/238 2190/1371/238 2172/1352/238 +f 2193/1379/1 2181/1363/1 2177/1380/1 +f 2194/1381/3 2184/1365/3 2183/1364/3 +f 2195/1382/3 2185/1368/3 2191/1383/3 +f 2196/1384/1 2188/1367/1 2187/1385/1 +f 2176/1355/33 2198/1386/33 2173/1356/33 +f 2189/1373/33 2200/1387/33 2190/1371/33 +f 2179/1360/143 2202/1388/143 2178/1389/143 +f 2169/1353/1 2199/1390/1 2189/1375/1 +f 2179/1360/3 2198/1386/3 2201/1391/3 +f 2178/1392/1 2197/1393/1 2176/1355/1 +f 2172/1352/143 2203/1394/143 2169/1353/143 +f 2172/1352/3 2200/1387/3 2204/1395/3 +f 2205/1396/242 2207/1397/242 2208/1398/242 +f 2209/1399/3 2205/1396/3 2210/1400/3 +f 2211/1401/33 2207/1402/33 2206/1403/33 +f 2208/1404/243 2213/1405/243 2214/1406/243 +f 2215/1407/244 2217/1408/244 2218/1409/244 +f 2218/1409/153 2220/1410/153 2219/1411/153 +f 2221/1412/245 2219/1411/245 2220/1410/245 +f 2221/1413/151 2215/1407/151 2222/1414/151 +f 2211/1415/246 2213/1416/246 2212/1417/246 +f 2213/1418/247 2207/1397/247 2212/1419/247 +f 2210/1400/248 2211/1415/248 2209/1399/248 +f 2226/1420/33 2223/1421/33 2225/1422/33 +f 2229/1423/143 2231/1424/143 2232/1425/143 +f 2229/1426/249 2227/1427/249 2230/1428/249 +f 2230/1428/250 2226/1420/250 2231/1424/250 +f 2231/1424/3 2225/1422/3 2232/1425/3 +f 2228/1429/251 2225/1422/251 2224/1430/251 +f 2229/1426/1 2224/1431/1 2223/1432/1 +f 2234/1433/143 2236/1434/143 2238/1435/143 +f 2248/1436/33 2241/1437/33 2253/1438/33 +f 2256/1439/33 2250/1440/33 2245/1441/33 +f 2247/1442/143 2252/1443/143 2240/1444/143 +f 2262/1445/160 2264/1446/160 2261/1447/160 +f 2266/1448/110 2268/1449/110 2265/1450/110 +f 2269/1451/252 2268/1449/252 2267/1452/252 +f 2272/1453/253 2265/1450/253 2271/1454/253 +f 2271/1454/160 2269/1455/160 2272/1456/160 +f 2273/1457/254 2275/1458/254 2276/1459/254 +f 2278/1460/255 2280/1461/255 2277/1462/255 +f 2273/1457/104 2272/1463/104 2269/1464/104 +f 2281/1465/110 2283/1466/110 2284/1467/110 +f 2262/1468/252 2281/1469/252 2284/1470/252 +f 2284/1471/104 2277/1462/104 2280/1461/104 +f 2263/1472/253 2282/1473/253 2264/1446/253 +f 2285/1474/1 2273/1457/1 2269/1475/1 +f 2286/1476/3 2276/1459/3 2275/1458/3 +f 2287/1477/3 2277/1462/3 2283/1478/3 +f 2288/1479/1 2280/1461/1 2279/1480/1 +f 2268/1449/110 2290/1481/110 2265/1450/110 +f 2281/1465/110 2292/1482/110 2282/1473/110 +f 2271/1454/160 2294/1483/160 2270/1484/160 +f 2261/1447/1 2291/1485/1 2281/1469/1 +f 2271/1454/3 2290/1481/3 2293/1486/3 +f 2270/1487/1 2289/1488/1 2268/1449/1 +f 2264/1446/160 2295/1489/160 2261/1447/160 +f 2264/1446/3 2292/1482/3 2296/1490/3 +f 2297/1491/256 2299/1492/256 2300/1493/256 +f 2301/1494/3 2297/1491/3 2302/1495/3 +f 2303/1496/110 2299/1497/110 2298/1498/110 +f 2300/1499/257 2305/1500/257 2306/1501/257 +f 2308/1502/258 2310/1503/258 2307/1504/258 +f 2310/1503/171 2312/1505/171 2311/1506/171 +f 2314/1507/259 2312/1505/259 2313/1508/259 +f 2313/1509/169 2307/1504/169 2314/1510/169 +f 2303/1511/260 2305/1512/260 2304/1513/260 +f 2305/1514/261 2299/1492/261 2304/1515/261 +f 2302/1495/262 2303/1511/262 2301/1494/262 +f 2318/1516/110 2315/1517/110 2317/1518/110 +f 2321/1519/160 2323/1520/160 2324/1521/160 +f 2321/1522/263 2319/1523/263 2322/1524/263 +f 2322/1524/264 2318/1516/264 2323/1520/264 +f 2323/1520/3 2317/1518/3 2324/1521/3 +f 2320/1525/265 2317/1518/265 2316/1526/265 +f 2321/1522/1 2316/1527/1 2315/1528/1 +f 2326/1529/160 2328/1530/160 2330/1531/160 +f 2340/1532/110 2333/1533/110 2345/1534/110 +f 2348/1535/110 2342/1536/110 2337/1537/110 +f 2339/1538/160 2344/1539/160 2332/1540/160 +f 2354/1541/178 2356/1542/178 2353/1543/178 +f 2358/1544/130 2360/1545/130 2357/1546/130 +f 2361/1547/266 2360/1545/266 2359/1548/266 +f 2363/1549/267 2358/1550/267 2357/1546/267 +f 2363/1549/178 2361/1551/178 2364/1552/178 +f 2365/1553/268 2367/1554/268 2368/1555/268 +f 2370/1556/269 2372/1557/269 2369/1558/269 +f 2365/1553/124 2364/1559/124 2361/1560/124 +f 2373/1561/130 2375/1562/130 2376/1563/130 +f 2354/1564/266 2373/1565/266 2376/1566/266 +f 2376/1567/124 2369/1558/124 2372/1557/124 +f 2355/1568/267 2374/1569/267 2356/1542/267 +f 2377/1570/1 2365/1553/1 2361/1571/1 +f 2378/1572/3 2368/1555/3 2367/1554/3 +f 2379/1573/3 2369/1558/3 2375/1574/3 +f 2380/1575/1 2372/1557/1 2371/1576/1 +f 2360/1545/130 2382/1577/130 2357/1546/130 +f 2373/1561/130 2384/1578/130 2374/1569/130 +f 2363/1549/178 2386/1579/178 2362/1580/178 +f 2353/1543/1 2383/1581/1 2373/1565/1 +f 2363/1549/3 2382/1577/3 2385/1582/3 +f 2362/1583/1 2381/1584/1 2360/1545/1 +f 2356/1542/178 2387/1585/178 2353/1543/178 +f 2356/1542/3 2384/1578/3 2388/1586/3 +f 2390/1587/270 2392/1588/270 2389/1589/270 +f 2393/1590/3 2389/1589/3 2394/1591/3 +f 2395/1592/130 2391/1593/130 2390/1587/130 +f 2392/1594/271 2397/1595/271 2398/1596/271 +f 2400/1597/272 2402/1598/272 2399/1599/272 +f 2402/1598/188 2404/1600/188 2403/1601/188 +f 2406/1602/273 2404/1600/273 2405/1603/273 +f 2405/1604/186 2399/1599/186 2406/1605/186 +f 2395/1606/274 2397/1607/274 2396/1608/274 +f 2397/1609/275 2391/1610/275 2396/1611/275 +f 2394/1591/276 2395/1606/276 2393/1590/276 +f 2410/1612/130 2407/1613/130 2409/1614/130 +f 2413/1615/178 2415/1616/178 2416/1617/178 +f 2413/1618/277 2411/1619/277 2414/1620/277 +f 2411/1619/278 2415/1616/278 2414/1620/278 +f 2415/1616/3 2409/1614/3 2416/1617/3 +f 2412/1621/279 2409/1614/279 2408/1622/279 +f 2412/1623/1 2407/1624/1 2413/1618/1 +f 2418/1625/178 2420/1626/178 2422/1627/178 +f 2432/1628/130 2425/1629/130 2437/1630/130 +f 2440/1631/130 2434/1632/130 2429/1633/130 +f 2431/1634/178 2436/1635/178 2424/1636/178 +f 48/3/1 43/1637/1 46/1/1 +f 43/1637/1 44/1638/1 45/13/1 +f 46/1/1 43/1637/1 45/13/1 +f 47/4/2 49/32/2 50/5/2 +f 54/9/3 50/1639/3 52/7/3 +f 50/1639/3 49/1640/3 51/33/3 +f 52/7/3 50/1639/3 51/33/3 +f 54/10/4 53/1641/4 44/11/4 +f 44/11/5 53/1641/5 52/7/5 +f 56/14/6 57/17/6 58/15/6 +f 57/17/7 59/20/7 60/18/7 +f 62/19/8 60/18/8 59/20/8 +f 58/15/3 63/28/3 64/22/3 +f 64/22/9 63/28/9 65/23/9 +f 67/25/3 63/28/3 58/15/3 +f 60/18/3 62/19/3 68/26/3 +f 68/26/10 69/1642/10 70/27/10 +f 67/25/11 70/27/11 65/23/11 +f 57/17/1 65/1643/1 70/29/1 +f 59/20/1 70/29/1 69/30/1 +f 66/31/1 65/1643/1 57/17/1 +f 46/1/12 51/33/12 49/32/12 +f 45/13/13 52/7/13 51/33/13 +f 214/34/1 215/1644/1 216/35/1 +f 223/37/1 237/47/1 238/38/1 +f 224/40/1 239/1645/1 240/41/1 +f 225/43/1 233/52/1 215/44/1 +f 223/37/1 226/1646/1 241/46/1 +f 227/48/1 242/57/1 239/49/1 +f 228/51/1 234/1647/1 233/52/1 +f 226/53/1 229/62/1 243/54/1 +f 230/56/1 244/1648/1 242/57/1 +f 220/58/1 245/77/1 234/59/1 +f 231/61/1 246/1649/1 243/54/1 +f 230/63/1 232/69/1 247/64/1 +f 196/66/1 248/72/1 246/67/1 +f 232/69/1 218/1650/1 249/70/1 +f 195/71/1 250/1651/1 248/72/1 +f 217/73/1 251/81/1 249/74/1 +f 220/58/1 219/1652/1 252/76/1 +f 195/78/1 213/36/1 216/35/1 +f 221/80/1 238/1653/1 251/81/1 +f 219/82/1 222/42/1 240/41/1 +f 235/86/1 253/1654/1 254/1655/1 +f 254/1655/1 255/1656/1 256/1657/1 +f 256/1657/1 257/1658/1 260/1659/1 +f 257/1658/1 258/1660/1 260/1659/1 +f 258/1660/1 259/1661/1 260/1659/1 +f 260/1659/1 261/1662/1 262/1663/1 +f 262/1663/1 263/1664/1 264/84/1 +f 264/84/1 265/1665/1 266/1666/1 +f 266/1666/1 267/1667/1 264/84/1 +f 267/1667/1 268/85/1 264/84/1 +f 268/85/1 269/1668/1 235/86/1 +f 269/1668/1 270/1669/1 235/86/1 +f 270/1669/1 236/1670/1 235/86/1 +f 235/86/1 254/1655/1 256/1657/1 +f 260/1659/1 262/1663/1 264/84/1 +f 235/86/1 256/1657/1 260/1659/1 +f 260/1659/1 264/84/1 235/86/1 +f 340/1671/1 335/89/1 339/88/1 +f 335/89/1 336/1672/1 338/87/1 +f 336/1672/1 337/1673/1 338/87/1 +f 336/90/14 341/1674/14 342/91/14 +f 342/1675/3 341/95/3 346/94/3 +f 341/95/3 343/1676/3 345/93/3 +f 343/1676/3 344/1677/3 345/93/3 +f 335/96/15 340/99/15 344/97/15 +f 339/88/16 345/93/16 344/97/16 +f 348/100/280 349/104/280 350/101/280 +f 348/100/18 351/110/18 352/103/18 +f 352/103/19 351/110/19 354/105/19 +f 355/107/3 356/109/3 348/100/3 +f 355/107/20 357/1678/20 358/108/20 +f 351/110/3 348/100/3 356/109/3 +f 351/110/3 359/111/3 360/112/3 +f 361/113/21 362/1679/21 360/112/21 +f 356/109/22 358/108/22 361/113/22 +f 361/114/1 358/1680/1 349/104/1 +f 352/103/1 353/106/1 362/115/1 +f 349/104/1 358/1680/1 357/116/1 +f 342/91/23 346/94/23 338/87/23 +f 346/94/24 345/93/24 339/88/24 +f 379/117/25 385/121/25 386/118/25 +f 379/117/25 377/122/25 393/120/25 +f 377/122/25 375/1681/25 394/123/25 +f 375/124/25 373/128/25 395/125/25 +f 371/127/25 396/130/25 395/125/25 +f 371/127/25 369/136/25 397/129/25 +f 364/131/25 387/139/25 398/132/25 +f 364/131/25 390/133/25 389/134/25 +f 369/136/25 367/140/25 399/137/25 +f 383/138/25 400/141/25 398/132/25 +f 367/140/25 365/135/25 389/134/25 +f 381/119/25 386/118/25 400/141/25 +f 410/143/25 392/1682/25 402/144/25 +f 392/1682/25 391/1683/25 402/144/25 +f 391/1683/25 401/1684/25 402/144/25 +f 402/144/25 403/1685/25 404/1686/25 +f 404/1686/25 405/1687/25 402/144/25 +f 405/1687/25 406/1688/25 402/144/25 +f 406/1688/25 407/1689/25 408/142/25 +f 408/142/25 409/1690/25 410/143/25 +f 406/1688/25 408/142/25 402/144/25 +f 430/145/26 433/1691/26 434/146/26 +f 434/146/26 441/1692/26 426/148/26 +f 426/148/26 441/1692/26 442/149/26 +f 442/151/26 443/154/26 422/152/26 +f 443/154/26 444/1693/26 420/155/26 +f 420/155/26 444/1693/26 445/156/26 +f 440/158/26 446/1694/26 436/159/26 +f 413/161/26 437/165/26 440/158/26 +f 445/156/26 447/1695/26 416/162/26 +f 436/159/26 446/1694/26 448/163/26 +f 416/162/26 447/1695/26 437/165/26 +f 448/163/26 433/1691/26 430/145/26 +f 439/168/26 438/1696/26 449/1697/26 +f 449/1697/26 450/1698/26 439/168/26 +f 450/1698/26 451/166/26 439/168/26 +f 451/166/26 452/1699/26 455/167/26 +f 452/1699/26 453/1700/26 455/167/26 +f 453/1700/26 454/1701/26 455/167/26 +f 455/167/26 456/1702/26 439/168/26 +f 456/1702/26 457/1703/26 439/168/26 +f 457/1703/26 458/1704/26 439/168/26 +f 460/169/27 461/1705/27 462/170/27 +f 464/172/28 465/1706/28 466/173/28 +f 467/175/29 468/210/29 466/173/29 +f 470/177/30 464/1707/30 463/174/30 +f 469/178/27 468/207/27 467/179/27 +f 471/181/31 472/1708/31 473/182/31 +f 476/184/32 477/203/32 478/185/32 +f 471/181/33 474/183/33 470/187/33 +f 480/189/28 481/1709/28 482/190/28 +f 460/192/29 459/171/29 479/193/29 +f 482/195/33 481/1710/33 475/186/33 +f 461/196/30 481/1711/30 480/189/30 +f 483/197/1 472/1708/1 471/181/1 +f 484/199/3 470/1712/3 474/183/3 +f 485/200/3 476/184/3 475/186/3 +f 486/202/1 482/1713/1 478/185/1 +f 466/173/28 487/211/28 488/204/28 +f 479/191/28 489/1714/28 490/205/28 +f 469/178/27 491/209/27 492/206/27 +f 459/171/1 493/212/1 489/208/1 +f 469/178/3 463/174/3 488/204/3 +f 468/210/1 492/1715/1 487/211/1 +f 462/170/27 494/213/27 493/212/27 +f 462/170/3 480/189/3 490/205/3 +f 496/214/34 497/237/34 498/215/34 +f 496/214/3 495/216/3 500/217/3 +f 496/214/28 499/218/28 501/219/28 +f 501/219/28 502/1716/28 497/220/28 +f 504/223/27 500/217/27 495/216/27 +f 495/216/27 498/221/27 504/223/27 +f 505/224/36 506/1717/36 507/225/36 +f 508/226/37 507/225/37 510/227/37 +f 512/229/281 509/228/281 510/227/281 +f 511/231/39 506/1717/39 505/224/39 +f 501/233/282 504/1718/282 503/234/282 +f 503/236/41 498/215/41 497/237/41 +f 500/217/283 504/1718/283 501/233/283 +f 517/1719/28 513/240/28 516/239/28 +f 513/240/28 514/1720/28 515/241/28 +f 522/244/27 518/1721/27 519/242/27 +f 519/242/27 520/1722/27 521/243/27 +f 519/245/43 513/251/43 517/246/43 +f 517/246/44 516/239/44 521/243/44 +f 521/243/3 516/239/3 515/241/3 +f 518/248/45 522/244/45 515/241/45 +f 519/245/1 518/1723/1 514/250/1 +f 529/1724/27 523/1725/27 524/252/27 +f 524/252/27 525/1726/27 526/253/27 +f 526/253/27 527/1727/27 528/254/27 +f 528/254/27 529/1724/27 524/252/27 +f 548/1728/28 539/1729/28 538/255/28 +f 538/255/28 532/1730/28 531/256/28 +f 531/256/28 544/1731/28 543/257/28 +f 543/257/28 548/1728/28 538/255/28 +f 546/258/28 547/1732/28 540/259/28 +f 540/259/28 541/1733/28 535/260/28 +f 535/260/28 534/1734/28 549/1735/28 +f 549/1735/28 546/258/28 535/260/28 +f 530/263/27 533/1736/27 537/261/27 +f 537/261/27 536/1737/27 550/1738/27 +f 550/1738/27 542/262/27 537/261/27 +f 542/262/27 545/1739/27 530/263/27 +f 552/264/46 553/1740/46 554/265/46 +f 552/267/47 551/1741/47 555/268/47 +f 556/270/48 555/1742/48 557/271/48 +f 557/273/49 559/1743/49 560/274/49 +f 560/276/50 559/1744/50 561/277/50 +f 561/279/284 563/1745/284 564/280/284 +f 564/282/52 563/1746/52 565/283/52 +f 565/285/53 567/1747/53 568/286/53 +f 567/288/54 569/1748/54 570/289/54 +f 570/291/55 569/1749/55 571/292/55 +f 571/294/56 573/1750/56 574/295/56 +f 574/297/285 573/1751/285 575/298/285 +f 553/300/58 576/1752/58 575/301/58 +f 586/304/59 589/1753/59 592/1754/59 +f 592/1754/59 581/1755/59 586/304/59 +f 581/1755/59 584/305/59 586/304/59 +f 584/305/59 577/1756/59 580/1757/59 +f 580/1757/59 587/303/59 584/305/59 +f 612/306/60 611/1758/60 610/307/60 +f 602/310/61 605/1759/61 608/1760/61 +f 608/1760/61 597/1761/61 602/310/61 +f 597/1761/61 600/311/61 602/310/61 +f 600/311/61 593/1762/61 596/1763/61 +f 596/1763/61 603/309/61 600/311/61 +f 622/313/59 625/1764/59 628/1765/59 +f 628/1765/59 617/1766/59 622/313/59 +f 617/1766/59 620/314/59 622/313/59 +f 620/314/59 613/1767/59 616/1768/59 +f 616/1768/59 623/312/59 620/314/59 +f 648/315/60 647/1769/60 646/316/60 +f 638/319/61 641/1770/61 644/1771/61 +f 644/1771/61 633/1772/61 638/319/61 +f 633/1772/61 636/320/61 638/319/61 +f 636/320/61 629/1773/61 632/1774/61 +f 632/1774/61 639/318/61 636/320/61 +f 658/322/59 661/1775/59 664/1776/59 +f 664/1776/59 653/1777/59 658/322/59 +f 653/1777/59 656/323/59 658/322/59 +f 656/323/59 649/1778/59 652/1779/59 +f 652/1779/59 659/321/59 656/323/59 +f 682/324/286 683/1780/286 684/325/286 +f 674/328/61 677/1781/61 680/1782/61 +f 680/1782/61 669/1783/61 674/328/61 +f 669/1783/61 672/329/61 674/328/61 +f 672/329/61 665/1784/61 668/1785/61 +f 668/1785/61 675/327/61 672/329/61 +f 700/331/62 697/1786/62 696/332/62 +f 696/332/62 695/1787/62 690/1788/62 +f 695/1787/62 686/1789/62 690/1788/62 +f 686/1789/62 685/1790/62 690/1788/62 +f 690/1788/62 689/330/62 696/332/62 +f 718/333/65 719/1791/65 720/334/65 +f 716/337/64 713/1792/64 712/338/64 +f 712/338/64 711/1793/64 706/1794/64 +f 711/1793/64 702/1795/64 706/1794/64 +f 702/1795/64 701/1796/64 706/1794/64 +f 706/1794/64 705/336/64 712/338/64 +f 736/340/62 733/1797/62 732/341/62 +f 732/341/62 731/1798/62 726/1799/62 +f 731/1798/62 722/1800/62 726/1799/62 +f 722/1800/62 721/1801/62 726/1799/62 +f 726/1799/62 725/339/62 732/341/62 +f 756/342/63 755/1802/63 754/343/63 +f 752/346/64 749/1803/64 748/347/64 +f 748/347/64 747/1804/64 742/1805/64 +f 747/1804/64 738/1806/64 742/1805/64 +f 738/1806/64 737/1807/64 742/1805/64 +f 742/1805/64 741/345/64 748/347/64 +f 772/349/62 769/1808/62 768/350/62 +f 768/350/62 767/1809/62 762/1810/62 +f 767/1809/62 758/1811/62 762/1810/62 +f 758/1811/62 757/1812/62 762/1810/62 +f 762/1810/62 761/348/62 768/350/62 +f 790/351/63 791/1813/63 792/352/63 +f 788/355/64 785/1814/64 784/356/64 +f 784/356/64 783/1815/64 778/1816/64 +f 783/1815/64 774/1817/64 778/1816/64 +f 774/1817/64 773/1818/64 778/1816/64 +f 778/1816/64 777/354/64 784/356/64 +f 793/357/61 797/407/61 798/358/61 +f 805/360/3 801/367/3 800/361/3 +f 803/363/66 802/1819/66 807/364/66 +f 807/366/67 802/1820/67 801/367/67 +f 808/368/68 793/1821/68 803/363/68 +f 793/369/1 808/368/1 809/370/1 +f 810/372/1 799/1822/1 798/373/1 +f 811/374/69 798/1823/69 797/375/69 +f 796/380/3 814/379/3 812/376/3 +f 795/382/287 794/371/287 809/370/287 +f 941/384/71 942/1824/71 943/385/71 +f 948/387/62 949/391/62 950/388/62 +f 954/390/72 950/388/72 949/391/72 +f 955/393/73 956/396/73 944/386/73 +f 946/394/74 945/1825/74 954/390/74 +f 951/395/75 952/1826/75 956/396/75 +f 946/397/76 953/392/76 949/391/76 +f 947/399/77 950/388/77 954/390/77 +f 941/401/78 944/386/78 956/396/78 +f 942/403/59 951/1827/59 955/393/59 +f 811/404/64 805/360/64 804/362/64 +f 806/405/64 807/1828/64 805/360/64 +f 808/368/64 806/405/64 811/404/64 +f 812/378/64 813/377/64 809/406/64 +f 797/407/61 793/357/61 794/410/61 +f 803/359/61 798/358/61 801/411/61 +f 798/358/61 799/1829/61 800/413/61 +f 966/415/79 969/1830/79 972/1831/79 +f 972/1831/79 961/1832/79 966/415/79 +f 961/1832/79 964/416/79 966/415/79 +f 964/416/79 957/1833/79 960/1834/79 +f 960/1834/79 967/414/79 964/416/79 +f 992/417/80 991/1835/80 990/418/80 +f 982/421/81 985/1836/81 988/1837/81 +f 988/1837/81 977/1838/81 982/421/81 +f 977/1838/81 980/422/81 982/421/81 +f 980/422/81 973/1839/81 976/1840/81 +f 976/1840/81 983/420/81 980/422/81 +f 1002/424/288 1005/1841/288 1008/1842/288 +f 1008/1842/79 997/1843/79 1002/424/79 +f 997/1843/79 1000/425/79 1002/424/79 +f 1000/425/79 993/1844/79 996/1845/79 +f 996/1845/79 1003/423/79 1000/425/79 +f 1028/426/80 1027/1846/80 1026/427/80 +f 1018/430/81 1021/1847/81 1024/1848/81 +f 1024/1848/81 1013/1849/81 1018/430/81 +f 1013/1849/81 1016/431/81 1018/430/81 +f 1016/431/81 1009/1850/81 1012/1851/81 +f 1012/1851/81 1019/429/81 1016/431/81 +f 1038/433/79 1041/1852/79 1044/1853/79 +f 1044/1853/79 1033/1854/79 1038/433/79 +f 1033/1854/79 1036/434/79 1038/433/79 +f 1036/434/79 1029/1855/79 1032/1856/79 +f 1032/1856/79 1039/432/79 1036/434/79 +f 1062/435/80 1063/1857/80 1064/436/80 +f 1054/439/81 1057/1858/81 1060/1859/81 +f 1060/1859/81 1049/1860/81 1054/439/81 +f 1049/1860/81 1052/440/81 1054/439/81 +f 1052/440/81 1045/1861/81 1048/1862/81 +f 1048/1862/81 1055/438/81 1052/440/81 +f 1080/442/85 1077/1863/85 1076/443/85 +f 1076/443/85 1075/1864/85 1070/1865/85 +f 1075/1864/85 1066/1866/85 1070/1865/85 +f 1066/1866/85 1065/1867/85 1070/1865/85 +f 1070/1865/85 1069/441/85 1076/443/85 +f 1097/444/86 1098/1868/86 1099/445/86 +f 1096/448/84 1093/1869/84 1092/449/84 +f 1092/449/84 1091/1870/84 1086/1871/84 +f 1091/1870/84 1082/1872/84 1086/1871/84 +f 1082/1872/84 1081/1873/84 1086/1871/84 +f 1086/1871/84 1085/447/84 1092/449/84 +f 1116/451/85 1113/1874/85 1112/452/85 +f 1112/452/85 1111/1875/85 1106/1876/85 +f 1111/1875/85 1102/1877/85 1106/1876/85 +f 1102/1877/85 1101/1878/85 1106/1876/85 +f 1106/1876/85 1105/450/85 1112/452/85 +f 1136/453/83 1135/1879/83 1134/454/83 +f 1132/457/84 1129/1880/84 1128/458/84 +f 1128/458/84 1127/1881/84 1122/1882/84 +f 1127/1881/84 1118/1883/84 1122/1882/84 +f 1118/1883/84 1117/1884/84 1122/1882/84 +f 1122/1882/84 1121/456/84 1128/458/84 +f 1152/460/85 1149/1885/85 1148/461/85 +f 1148/461/85 1147/1886/85 1142/1887/85 +f 1147/1886/85 1138/1888/85 1142/1887/85 +f 1138/1888/85 1137/1889/85 1142/1887/85 +f 1142/1887/85 1141/459/85 1148/461/85 +f 1170/462/83 1171/1890/83 1172/463/83 +f 1168/466/84 1165/1891/84 1164/467/84 +f 1164/467/84 1163/1892/84 1158/1893/84 +f 1163/1892/84 1154/1894/84 1158/1893/84 +f 1154/1894/84 1153/1895/84 1158/1893/84 +f 1158/1893/84 1157/465/84 1164/467/84 +f 1173/468/81 1177/498/81 1178/469/81 +f 1185/471/3 1181/478/3 1180/472/3 +f 1186/474/87 1183/480/87 1182/475/87 +f 1187/477/88 1182/1896/88 1181/478/88 +f 1188/479/89 1173/1897/89 1183/480/89 +f 1174/481/1 1173/1898/1 1188/479/1 +f 1190/483/1 1179/1899/1 1178/484/1 +f 1191/485/90 1178/1900/90 1177/486/90 +f 1176/491/3 1194/490/3 1192/487/3 +f 1175/493/91 1174/481/91 1189/482/91 +f 1191/495/84 1185/471/84 1184/473/84 +f 1186/496/84 1187/1901/84 1185/471/84 +f 1188/479/84 1186/496/84 1191/495/84 +f 1192/489/84 1193/488/84 1189/497/84 +f 1177/498/81 1173/468/81 1174/501/81 +f 1183/470/81 1178/469/81 1181/502/81 +f 1178/469/81 1179/1902/81 1180/504/81 +f 1204/506/92 1207/1903/92 1210/1904/92 +f 1210/1904/92 1199/1905/92 1204/506/92 +f 1199/1905/92 1202/507/92 1204/506/92 +f 1202/507/92 1195/1906/92 1198/1907/92 +f 1198/1907/92 1205/505/92 1202/507/92 +f 1230/508/289 1229/1908/289 1228/509/289 +f 1220/512/94 1223/1909/94 1226/1910/94 +f 1226/1910/94 1215/1911/94 1220/512/94 +f 1215/1911/94 1218/513/94 1220/512/94 +f 1218/513/94 1211/1912/94 1214/1913/94 +f 1214/1913/94 1221/511/94 1218/513/94 +f 1240/515/92 1243/1914/92 1246/1915/92 +f 1246/1915/92 1235/1916/92 1240/515/92 +f 1235/1916/92 1238/516/92 1240/515/92 +f 1238/516/92 1231/1917/92 1234/1918/92 +f 1234/1918/92 1241/514/92 1238/516/92 +f 1266/517/93 1265/1919/93 1264/518/93 +f 1256/521/94 1259/1920/94 1262/1921/94 +f 1262/1921/94 1251/1922/94 1256/521/94 +f 1251/1922/94 1254/522/94 1256/521/94 +f 1254/522/94 1247/1923/94 1250/1924/94 +f 1250/1924/94 1257/520/94 1254/522/94 +f 1276/524/92 1279/1925/92 1282/1926/92 +f 1282/1926/92 1271/1927/92 1276/524/92 +f 1271/1927/92 1274/525/92 1276/524/92 +f 1274/525/92 1267/1928/92 1270/1929/92 +f 1270/1929/92 1277/523/92 1274/525/92 +f 1300/526/289 1301/1930/289 1302/527/289 +f 1292/530/94 1295/1931/94 1298/1932/94 +f 1298/1932/94 1287/1933/94 1292/530/94 +f 1287/1933/94 1290/531/94 1292/530/94 +f 1290/531/94 1283/1934/94 1286/1935/94 +f 1286/1935/94 1293/529/94 1290/531/94 +f 1318/533/98 1315/1936/98 1314/534/98 +f 1314/534/98 1313/1937/98 1308/1938/98 +f 1313/1937/98 1304/1939/98 1308/1938/98 +f 1304/1939/98 1303/1940/98 1308/1938/98 +f 1308/1938/98 1307/532/98 1314/534/98 +f 1336/535/96 1337/1941/96 1338/536/96 +f 1334/539/97 1331/1942/97 1330/540/97 +f 1330/540/97 1329/1943/97 1324/1944/97 +f 1329/1943/97 1320/1945/97 1324/1944/97 +f 1320/1945/97 1319/1946/97 1324/1944/97 +f 1324/1944/97 1323/538/97 1330/540/97 +f 1354/542/98 1351/1947/98 1350/543/98 +f 1350/543/98 1349/1948/98 1344/1949/98 +f 1349/1948/98 1340/1950/98 1344/1949/98 +f 1340/1950/98 1339/1951/98 1344/1949/98 +f 1344/1949/98 1343/541/98 1350/543/98 +f 1374/544/96 1373/1952/96 1372/545/96 +f 1370/548/97 1367/1953/97 1366/549/97 +f 1366/549/97 1365/1954/97 1360/1955/97 +f 1365/1954/97 1356/1956/97 1360/1955/97 +f 1356/1956/97 1355/1957/97 1360/1955/97 +f 1360/1955/97 1359/547/97 1366/549/97 +f 1390/551/95 1387/1958/95 1386/552/95 +f 1386/552/98 1385/1959/98 1380/1960/98 +f 1385/1959/98 1376/1961/98 1380/1960/98 +f 1376/1961/95 1375/1962/95 1380/1960/95 +f 1380/1960/98 1379/550/98 1386/552/98 +f 1408/553/96 1409/1963/96 1410/554/96 +f 1406/557/97 1403/1964/97 1402/558/97 +f 1402/558/97 1401/1965/97 1396/1966/97 +f 1401/1965/97 1392/1967/97 1396/1966/97 +f 1392/1967/97 1391/1968/97 1396/1966/97 +f 1396/1966/97 1395/556/97 1402/558/97 +f 1411/559/94 1415/590/94 1416/560/94 +f 1423/562/3 1419/569/3 1418/563/3 +f 1424/565/99 1421/571/99 1420/566/99 +f 1425/568/100 1420/1969/100 1419/569/100 +f 1426/570/101 1411/1970/101 1421/571/101 +f 1411/572/1 1426/570/1 1427/573/1 +f 1428/575/1 1417/1971/1 1416/576/1 +f 1429/577/102 1416/1972/102 1415/578/102 +f 1414/583/3 1432/582/3 1430/579/3 +f 1413/585/103 1412/574/103 1427/573/103 +f 1429/587/97 1423/562/97 1422/564/97 +f 1424/588/97 1425/1973/97 1423/562/97 +f 1426/570/97 1424/588/97 1429/587/97 +f 1430/581/97 1431/580/97 1427/589/97 +f 1415/590/94 1411/559/94 1412/593/94 +f 1421/561/94 1416/560/94 1419/594/94 +f 1416/560/94 1417/1974/94 1418/596/94 +f 1434/597/104 1435/1975/104 1436/598/104 +f 1438/600/105 1439/1976/105 1440/601/105 +f 1441/603/106 1442/638/106 1440/601/106 +f 1444/605/290 1438/1977/290 1437/602/290 +f 1443/606/104 1442/635/104 1441/607/104 +f 1445/609/108 1446/1978/108 1447/610/108 +f 1450/612/291 1451/631/291 1452/613/291 +f 1445/609/110 1448/611/110 1444/615/110 +f 1454/617/105 1455/1979/105 1456/618/105 +f 1434/620/111 1433/599/111 1453/621/111 +f 1456/623/110 1455/1980/110 1449/614/110 +f 1435/624/107 1455/1981/107 1454/617/107 +f 1457/625/1 1446/1978/1 1445/609/1 +f 1458/627/3 1444/1982/3 1448/611/3 +f 1459/628/3 1450/612/3 1449/614/3 +f 1460/630/1 1456/1983/1 1452/613/1 +f 1440/601/105 1461/639/105 1462/632/105 +f 1453/619/105 1463/1984/105 1464/633/105 +f 1443/606/104 1465/637/104 1466/634/104 +f 1433/599/1 1467/640/1 1463/636/1 +f 1443/606/3 1437/602/3 1462/632/3 +f 1442/638/1 1466/1985/1 1461/639/1 +f 1436/598/104 1468/641/104 1467/640/104 +f 1436/598/3 1454/617/3 1464/633/3 +f 1469/642/112 1470/645/112 1471/643/112 +f 1470/645/3 1469/642/3 1474/646/3 +f 1470/645/105 1473/647/105 1475/648/105 +f 1475/648/214 1476/1986/214 1471/649/214 +f 1478/652/104 1474/646/104 1469/642/104 +f 1469/642/104 1472/650/104 1478/652/104 +f 1479/653/292 1480/1987/292 1481/654/292 +f 1482/655/115 1481/654/115 1484/656/115 +f 1485/658/116 1486/1988/116 1483/657/116 +f 1485/659/117 1480/1987/117 1479/653/117 +f 1475/661/293 1478/1989/293 1477/662/293 +f 1477/664/119 1472/644/119 1471/643/119 +f 1474/646/120 1478/1989/120 1475/661/120 +f 1491/1990/105 1487/667/105 1490/666/105 +f 1487/667/105 1488/1991/105 1489/668/105 +f 1496/671/104 1492/1992/104 1493/669/104 +f 1493/669/104 1494/1993/104 1495/670/104 +f 1493/672/121 1487/677/121 1491/673/121 +f 1494/674/122 1491/673/122 1490/666/122 +f 1495/670/3 1490/666/3 1489/668/3 +f 1488/675/123 1492/1994/123 1496/671/123 +f 1493/672/1 1492/1995/1 1488/676/1 +f 1503/1996/104 1497/1997/104 1498/678/104 +f 1498/678/104 1499/1998/104 1500/679/104 +f 1500/679/104 1501/1999/104 1502/680/104 +f 1502/680/104 1503/1996/104 1498/678/104 +f 1522/2000/105 1513/2001/105 1512/681/105 +f 1512/681/105 1506/2002/105 1505/682/105 +f 1505/682/105 1518/2003/105 1517/683/105 +f 1517/683/105 1522/2000/105 1512/681/105 +f 1520/684/105 1521/2004/105 1514/685/105 +f 1514/685/105 1515/2005/105 1509/686/105 +f 1509/686/105 1508/2006/105 1523/2007/105 +f 1523/2007/105 1520/684/105 1509/686/105 +f 1504/689/104 1507/2008/104 1511/687/104 +f 1511/687/104 1510/2009/104 1524/2010/104 +f 1524/2010/104 1516/688/104 1511/687/104 +f 1516/688/104 1519/2011/104 1504/689/104 +f 1526/690/124 1527/2012/124 1528/691/124 +f 1530/693/125 1531/2013/125 1532/694/125 +f 1533/696/126 1534/731/126 1532/694/126 +f 1536/698/127 1530/2014/127 1529/695/127 +f 1535/699/124 1534/728/124 1533/700/124 +f 1537/702/128 1538/2015/128 1539/703/128 +f 1542/705/129 1543/724/129 1544/706/129 +f 1537/702/130 1540/704/130 1536/708/130 +f 1546/710/125 1547/2016/125 1548/711/125 +f 1526/713/126 1525/692/126 1545/714/126 +f 1548/716/130 1547/2017/130 1541/707/130 +f 1527/717/127 1547/2018/127 1546/710/127 +f 1549/718/1 1538/2015/1 1537/702/1 +f 1550/720/3 1536/2019/3 1540/704/3 +f 1551/721/3 1542/705/3 1541/707/3 +f 1552/723/1 1548/2020/1 1544/706/1 +f 1532/694/125 1553/732/125 1554/725/125 +f 1545/712/125 1555/2021/125 1556/726/125 +f 1535/699/124 1557/730/124 1558/727/124 +f 1525/692/1 1559/733/1 1555/729/1 +f 1535/699/3 1529/695/3 1554/725/3 +f 1534/731/1 1558/2022/1 1553/732/1 +f 1528/691/124 1560/734/124 1559/733/124 +f 1528/691/3 1546/710/3 1556/726/3 +f 1561/735/131 1562/742/131 1563/736/131 +f 1565/738/3 1562/742/3 1561/735/3 +f 1562/742/125 1565/738/125 1567/740/125 +f 1567/740/294 1568/2023/294 1563/741/294 +f 1570/745/124 1566/739/124 1561/735/124 +f 1561/735/124 1564/743/124 1570/745/124 +f 1572/746/295 1573/2024/295 1574/747/295 +f 1574/747/134 1573/2024/134 1576/749/134 +f 1578/751/296 1575/750/296 1576/749/296 +f 1577/753/136 1572/746/136 1571/748/136 +f 1567/755/137 1570/2025/137 1569/756/137 +f 1569/758/138 1564/737/138 1563/736/138 +f 1566/739/139 1570/2025/139 1567/755/139 +f 1583/2026/125 1579/761/125 1582/760/125 +f 1579/761/125 1580/2027/125 1581/762/125 +f 1588/765/124 1584/2028/124 1585/763/124 +f 1585/763/124 1586/2029/124 1587/764/124 +f 1585/766/140 1579/772/140 1583/767/140 +f 1583/767/141 1582/760/141 1587/764/141 +f 1587/764/3 1582/760/3 1581/762/3 +f 1584/769/142 1588/765/142 1581/762/142 +f 1585/766/1 1584/2030/1 1580/771/1 +f 1595/2031/124 1589/2032/124 1590/773/124 +f 1590/773/124 1591/2033/124 1592/774/124 +f 1592/774/124 1593/2034/124 1594/775/124 +f 1594/775/124 1595/2031/124 1590/773/124 +f 1614/2035/125 1605/2036/125 1604/776/125 +f 1604/776/125 1598/2037/125 1597/777/125 +f 1597/777/125 1610/2038/125 1609/778/125 +f 1609/778/125 1614/2035/125 1604/776/125 +f 1612/779/125 1613/2039/125 1606/780/125 +f 1606/780/125 1607/2040/125 1601/781/125 +f 1601/781/125 1600/2041/125 1615/2042/125 +f 1615/2042/125 1612/779/125 1601/781/125 +f 1596/784/124 1599/2043/124 1603/782/124 +f 1603/782/124 1602/2044/124 1616/2045/124 +f 1616/2045/124 1608/783/124 1603/782/124 +f 1608/783/124 1611/2046/124 1596/784/124 +f 1618/785/33 1619/2047/33 1620/786/33 +f 1622/788/143 1623/2048/143 1624/789/143 +f 1625/791/144 1626/826/144 1624/789/144 +f 1628/793/145 1622/2049/145 1621/790/145 +f 1627/794/33 1626/823/33 1625/795/33 +f 1629/797/146 1630/2050/146 1631/798/146 +f 1634/800/147 1635/819/147 1636/801/147 +f 1629/797/28 1632/799/28 1628/803/28 +f 1638/805/143 1639/2051/143 1640/806/143 +f 1618/808/144 1617/787/144 1637/809/144 +f 1640/811/28 1639/2052/28 1633/802/28 +f 1619/812/145 1639/2053/145 1638/805/145 +f 1641/813/1 1630/2050/1 1629/797/1 +f 1642/815/3 1628/2054/3 1632/799/3 +f 1643/816/3 1634/800/3 1633/802/3 +f 1644/818/1 1640/2055/1 1636/801/1 +f 1624/789/143 1645/827/143 1646/820/143 +f 1637/807/143 1647/2056/143 1648/821/143 +f 1627/794/33 1649/825/33 1650/822/33 +f 1617/787/1 1651/828/1 1647/824/1 +f 1627/794/3 1621/790/3 1646/820/3 +f 1626/826/1 1650/2057/1 1645/827/1 +f 1620/786/33 1652/829/33 1651/828/33 +f 1620/786/3 1638/805/3 1648/821/3 +f 1654/830/297 1655/853/297 1656/831/297 +f 1657/833/3 1654/830/3 1653/832/3 +f 1654/830/143 1657/833/143 1659/835/143 +f 1659/835/143 1660/2058/143 1655/836/143 +f 1662/839/33 1658/834/33 1653/832/33 +f 1653/832/33 1656/837/33 1662/839/33 +f 1663/840/298 1664/2059/298 1665/841/298 +f 1666/842/151 1665/841/151 1668/843/151 +f 1670/845/299 1667/844/299 1668/843/299 +f 1669/847/153 1664/2059/153 1663/840/153 +f 1659/849/300 1662/2060/300 1661/850/300 +f 1660/852/155 1661/2061/155 1656/831/155 +f 1658/834/156 1662/2060/156 1659/849/156 +f 1675/2062/143 1671/855/143 1674/854/143 +f 1671/855/143 1672/2063/143 1673/856/143 +f 1680/859/33 1676/2064/33 1677/857/33 +f 1677/857/33 1678/2065/33 1679/858/33 +f 1677/860/157 1671/866/157 1675/861/157 +f 1675/861/158 1674/854/158 1679/858/158 +f 1679/858/3 1674/854/3 1673/856/3 +f 1676/863/159 1680/859/159 1673/856/159 +f 1677/860/1 1676/2066/1 1672/865/1 +f 1687/2067/33 1681/2068/33 1682/867/33 +f 1682/867/33 1683/2069/33 1684/868/33 +f 1684/868/33 1685/2070/33 1686/869/33 +f 1686/869/33 1687/2067/33 1682/867/33 +f 1706/2071/143 1697/2072/143 1696/870/143 +f 1696/870/143 1690/2073/143 1689/871/143 +f 1689/871/143 1702/2074/143 1701/872/143 +f 1701/872/143 1706/2071/143 1696/870/143 +f 1704/873/143 1705/2075/143 1698/874/143 +f 1698/874/143 1699/2076/143 1693/875/143 +f 1693/875/143 1692/2077/143 1707/2078/143 +f 1707/2078/143 1704/873/143 1693/875/143 +f 1688/878/33 1691/2079/33 1695/876/33 +f 1695/876/33 1694/2080/33 1708/2081/33 +f 1708/2081/33 1700/877/33 1695/876/33 +f 1700/877/33 1703/2082/33 1688/878/33 +f 1710/879/110 1711/2083/110 1712/880/110 +f 1714/882/160 1715/2084/160 1716/883/160 +f 1717/885/165 1718/920/165 1716/883/165 +f 1720/887/301 1714/2085/301 1713/884/301 +f 1719/888/110 1718/917/110 1717/889/110 +f 1721/891/302 1722/2086/302 1723/892/302 +f 1726/894/164 1727/913/164 1728/895/164 +f 1721/891/105 1724/893/105 1720/897/105 +f 1730/899/160 1731/2087/160 1732/900/160 +f 1710/902/161 1709/881/161 1729/903/161 +f 1732/905/105 1731/2088/105 1725/896/105 +f 1711/906/301 1731/2089/301 1730/899/301 +f 1733/907/1 1722/2086/1 1721/891/1 +f 1734/909/3 1720/2090/3 1724/893/3 +f 1735/910/3 1726/894/3 1725/896/3 +f 1736/912/1 1732/2091/1 1728/895/1 +f 1716/883/160 1737/921/160 1738/914/160 +f 1729/901/160 1739/2092/160 1740/915/160 +f 1719/888/110 1741/919/110 1742/916/110 +f 1709/881/1 1743/922/1 1739/918/1 +f 1719/888/3 1713/884/3 1738/914/3 +f 1718/920/1 1742/2093/1 1737/921/1 +f 1712/880/110 1744/923/110 1743/922/110 +f 1712/880/3 1730/899/3 1740/915/3 +f 1745/924/166 1746/931/166 1747/925/166 +f 1749/927/3 1746/931/3 1745/924/3 +f 1746/931/160 1749/927/160 1751/929/160 +f 1751/929/160 1752/2094/160 1747/930/160 +f 1754/934/110 1750/928/110 1745/924/110 +f 1745/924/110 1748/932/110 1754/934/110 +f 1755/935/303 1756/2095/303 1757/936/303 +f 1758/937/169 1757/936/169 1760/938/169 +f 1762/940/170 1759/939/170 1760/938/170 +f 1761/942/171 1756/2095/171 1755/935/171 +f 1751/944/304 1754/2096/304 1753/945/304 +f 1753/947/305 1748/926/305 1747/925/305 +f 1750/928/174 1754/2096/174 1751/944/174 +f 1767/2097/160 1763/950/160 1766/949/160 +f 1763/950/160 1764/2098/160 1765/951/160 +f 1772/954/110 1768/2099/110 1769/952/110 +f 1769/952/110 1770/2100/110 1771/953/110 +f 1769/955/175 1763/961/175 1767/956/175 +f 1770/957/176 1767/956/176 1766/949/176 +f 1771/953/3 1766/949/3 1765/951/3 +f 1768/958/177 1772/954/177 1765/951/177 +f 1769/955/1 1768/2101/1 1764/960/1 +f 1779/2102/110 1773/2103/110 1774/962/110 +f 1774/962/110 1775/2104/110 1776/963/110 +f 1776/963/110 1777/2105/110 1778/964/110 +f 1778/964/110 1779/2102/110 1774/962/110 +f 1798/2106/160 1789/2107/160 1788/965/160 +f 1788/965/160 1782/2108/160 1781/966/160 +f 1781/966/160 1794/2109/160 1793/967/160 +f 1793/967/160 1798/2106/160 1788/965/160 +f 1796/968/160 1797/2110/160 1790/969/160 +f 1790/969/160 1791/2111/160 1785/970/160 +f 1785/970/160 1784/2112/160 1799/2113/160 +f 1799/2113/160 1796/968/160 1785/970/160 +f 1780/973/110 1783/2114/110 1787/971/110 +f 1787/971/110 1786/2115/110 1800/2116/110 +f 1800/2116/110 1792/972/110 1787/971/110 +f 1792/972/110 1795/2117/110 1780/973/110 +f 1802/974/130 1803/2118/130 1804/975/130 +f 1806/977/178 1807/2119/178 1808/978/178 +f 1809/980/179 1810/1015/179 1808/978/179 +f 1812/982/180 1806/2120/180 1805/979/180 +f 1811/983/130 1810/1012/130 1809/984/130 +f 1813/986/181 1814/2121/181 1815/987/181 +f 1818/989/182 1819/1008/182 1820/990/182 +f 1813/986/294 1816/988/294 1812/992/294 +f 1822/994/178 1823/2122/178 1824/995/178 +f 1802/997/179 1801/976/179 1821/998/179 +f 1824/1000/125 1823/2123/125 1817/991/125 +f 1803/1001/180 1823/2124/180 1822/994/180 +f 1825/1002/1 1814/2121/1 1813/986/1 +f 1826/1004/3 1812/2125/3 1816/988/3 +f 1827/1005/3 1818/989/3 1817/991/3 +f 1828/1007/1 1824/2126/1 1820/990/1 +f 1808/978/178 1829/1016/178 1830/1009/178 +f 1821/996/178 1831/2127/178 1832/1010/178 +f 1811/983/130 1833/1014/130 1834/1011/130 +f 1801/976/1 1835/1017/1 1831/1013/1 +f 1811/983/3 1805/979/3 1830/1009/3 +f 1810/1015/1 1834/2128/1 1829/1016/1 +f 1804/975/130 1836/1018/130 1835/1017/130 +f 1804/975/3 1822/994/3 1832/1010/3 +f 1837/1019/183 1838/1026/183 1839/1020/183 +f 1841/1022/3 1838/1026/3 1837/1019/3 +f 1838/1026/178 1841/1022/178 1843/1024/178 +f 1843/1024/178 1844/2129/178 1839/1025/178 +f 1846/1029/130 1842/1023/130 1837/1019/130 +f 1837/1019/130 1840/1027/130 1846/1029/130 +f 1848/1030/306 1849/2130/306 1850/1031/306 +f 1850/1031/186 1849/2130/186 1852/1033/186 +f 1853/1035/307 1854/2131/307 1851/1034/307 +f 1853/1036/188 1848/1030/188 1847/1032/188 +f 1843/1038/308 1846/2132/308 1845/1039/308 +f 1845/1041/190 1840/1021/190 1839/1020/190 +f 1842/1023/191 1846/2132/191 1843/1038/191 +f 1859/2133/178 1855/1044/178 1858/1043/178 +f 1855/1044/178 1856/2134/178 1857/1045/178 +f 1864/1048/130 1860/2135/130 1861/1046/130 +f 1861/1046/130 1862/2136/130 1863/1047/130 +f 1861/1049/192 1855/1055/192 1859/1050/192 +f 1859/1050/193 1858/1043/193 1863/1047/193 +f 1863/1047/3 1858/1043/3 1857/1045/3 +f 1860/1052/194 1864/1048/194 1857/1045/194 +f 1861/1049/1 1860/2137/1 1856/1054/1 +f 1871/2138/130 1865/2139/130 1870/1058/130 +f 1865/2139/130 1866/1056/130 1870/1058/130 +f 1866/1056/130 1867/2140/130 1868/1057/130 +f 1868/1057/130 1869/2141/130 1870/1058/130 +f 1890/2142/178 1881/2143/178 1880/1059/178 +f 1880/1059/178 1874/2144/178 1873/1060/178 +f 1873/1060/178 1886/2145/178 1885/1061/178 +f 1885/1061/178 1890/2142/178 1880/1059/178 +f 1888/1062/178 1889/2146/178 1882/1063/178 +f 1882/1063/178 1883/2147/178 1877/1064/178 +f 1877/1064/178 1876/2148/178 1891/2149/178 +f 1891/2149/178 1888/1062/178 1877/1064/178 +f 1872/1067/130 1875/2150/130 1879/1065/130 +f 1879/1065/130 1878/2151/130 1892/2152/130 +f 1892/2152/130 1884/1066/130 1879/1065/130 +f 1884/1066/130 1887/2153/130 1872/1067/130 +f 1894/1068/28 1895/2154/28 1896/1069/28 +f 1898/1071/27 1899/2155/27 1900/1072/27 +f 1902/1074/195 1900/1072/195 1899/1075/195 +f 1904/1077/196 1898/2156/196 1897/1073/196 +f 1903/1078/28 1902/1107/28 1901/1079/28 +f 1905/1081/197 1906/2157/197 1907/1082/197 +f 1910/1084/198 1911/1103/198 1912/1085/198 +f 1905/1081/143 1908/1083/143 1904/1087/143 +f 1914/1089/27 1915/2158/27 1916/1090/27 +f 1894/1092/195 1893/1070/195 1913/1093/195 +f 1916/1095/143 1915/2159/143 1909/1086/143 +f 1895/1096/196 1915/2160/196 1914/1089/196 +f 1917/1097/1 1906/2157/1 1905/1081/1 +f 1918/1099/3 1904/2161/3 1908/1083/3 +f 1919/1100/3 1910/1084/3 1909/1086/3 +f 1920/1102/1 1916/2162/1 1912/1085/1 +f 1900/1072/27 1921/1110/27 1922/1104/27 +f 1913/1091/27 1923/2163/27 1924/1105/27 +f 1903/1078/28 1925/1109/28 1926/1106/28 +f 1893/1070/1 1927/1111/1 1923/1108/1 +f 1903/1078/3 1897/1073/3 1922/1104/3 +f 1902/1074/1 1926/2164/1 1921/1110/1 +f 1896/1069/28 1928/1112/28 1927/1111/28 +f 1896/1069/3 1914/1089/3 1924/1105/3 +f 1929/1113/309 1930/1120/309 1931/1114/309 +f 1933/1116/3 1930/1120/3 1929/1113/3 +f 1930/1120/27 1933/1116/27 1935/1118/27 +f 1935/1118/27 1936/2165/27 1931/1119/27 +f 1938/1123/28 1934/1117/28 1929/1113/28 +f 1929/1113/28 1932/1121/28 1938/1123/28 +f 1939/1124/201 1940/2166/201 1941/1125/201 +f 1942/1126/39 1941/1125/39 1944/1127/39 +f 1946/1129/310 1943/1128/310 1944/1127/310 +f 1945/1131/37 1940/2166/37 1939/1124/37 +f 1935/1133/203 1938/2167/203 1937/1134/203 +f 1937/1136/204 1932/1115/204 1931/1114/204 +f 1934/1117/205 1938/2167/205 1935/1133/205 +f 1951/2168/27 1947/1139/27 1950/1138/27 +f 1947/1139/27 1948/2169/27 1949/1140/27 +f 1956/1143/28 1952/2170/28 1953/1141/28 +f 1953/1141/28 1954/2171/28 1955/1142/28 +f 1953/1144/206 1947/1150/206 1951/1145/206 +f 1951/1145/207 1950/1138/207 1955/1142/207 +f 1955/1142/3 1950/1138/3 1949/1140/3 +f 1952/1147/208 1956/1143/208 1949/1140/208 +f 1953/1144/1 1952/2172/1 1948/1149/1 +f 1963/2173/28 1957/2174/28 1962/1153/28 +f 1957/2174/28 1958/1151/28 1962/1153/28 +f 1958/1151/28 1959/2175/28 1960/1152/28 +f 1960/1152/28 1961/2176/28 1962/1153/28 +f 1982/2177/27 1973/2178/27 1977/1156/27 +f 1973/2178/27 1972/1154/27 1977/1156/27 +f 1972/1154/311 1966/2179/311 1965/1155/311 +f 1965/1155/27 1978/2180/27 1977/1156/27 +f 1980/1157/27 1981/2181/27 1974/1158/27 +f 1974/1158/27 1975/2182/27 1969/1159/27 +f 1969/1159/27 1968/2183/27 1983/2184/27 +f 1983/2184/27 1980/1157/27 1969/1159/27 +f 1964/1162/28 1967/2185/28 1971/1160/28 +f 1971/1160/28 1970/2186/28 1984/2187/28 +f 1984/2187/28 1976/1161/28 1971/1160/28 +f 1976/1161/28 1979/2188/28 1964/1162/28 +f 1986/1163/105 1987/2189/105 1988/1164/105 +f 1990/1166/104 1991/2190/104 1992/1167/104 +f 1993/1169/209 1994/1204/209 1992/1167/209 +f 1996/1171/210 1990/2191/210 1989/1168/210 +f 1995/1172/105 1994/1201/105 1993/1173/105 +f 1997/1175/211 1998/2192/211 1999/1176/211 +f 2002/1178/312 2003/1197/312 2004/1179/312 +f 1997/1175/160 2000/1177/160 1996/1181/160 +f 2006/1183/104 2007/2193/104 2008/1184/104 +f 1986/1186/313 1985/1165/313 2005/1187/313 +f 2008/1189/160 2007/2194/160 2001/1180/160 +f 1987/1190/210 2007/2195/210 2006/1183/210 +f 2009/1191/1 1998/2192/1 1997/1175/1 +f 2010/1193/3 1996/2196/3 2000/1177/3 +f 2011/1194/3 2002/1178/3 2001/1180/3 +f 2012/1196/1 2008/2197/1 2004/1179/1 +f 1992/1167/104 2013/1205/104 2014/1198/104 +f 2005/1185/104 2015/2198/104 2016/1199/104 +f 1995/1172/105 2017/1203/105 2018/1200/105 +f 1985/1165/1 2019/1206/1 2015/1202/1 +f 1995/1172/3 1989/1168/3 2014/1198/3 +f 1994/1204/1 2018/2199/1 2013/1205/1 +f 1988/1164/105 2020/1207/105 2019/1206/105 +f 1988/1164/3 2006/1183/3 2016/1199/3 +f 2021/1208/213 2022/1215/213 2023/1209/213 +f 2025/1211/3 2022/1215/3 2021/1208/3 +f 2022/1215/104 2025/1211/104 2027/1213/104 +f 2027/1213/104 2028/2200/104 2023/1214/104 +f 2030/1218/105 2026/1212/105 2021/1208/105 +f 2021/1208/105 2024/1216/105 2030/1218/105 +f 2032/1219/314 2033/2201/314 2034/1220/314 +f 2034/1220/117 2033/2201/117 2036/1222/117 +f 2037/1224/216 2038/2202/216 2035/1223/216 +f 2037/1225/115 2032/1219/115 2031/1221/115 +f 2027/1227/315 2030/2203/315 2029/1228/315 +f 2029/1230/218 2024/1210/218 2023/1209/218 +f 2026/1212/219 2030/2203/219 2027/1227/219 +f 2043/2204/104 2039/1233/104 2042/1232/104 +f 2039/1233/104 2040/2205/104 2041/1234/104 +f 2048/1237/105 2044/2206/105 2045/1235/105 +f 2045/1235/105 2046/2207/105 2047/1236/105 +f 2045/1238/220 2039/1244/220 2043/1239/220 +f 2043/1239/221 2042/1232/221 2047/1236/221 +f 2047/1236/3 2042/1232/3 2041/1234/3 +f 2044/1241/222 2048/1237/222 2041/1234/222 +f 2045/1238/1 2044/2208/1 2040/1243/1 +f 2055/2209/105 2049/2210/105 2050/1245/105 +f 2050/1245/105 2051/2211/105 2052/1246/105 +f 2052/1246/105 2053/2212/105 2054/1247/105 +f 2054/1247/105 2055/2209/105 2050/1245/105 +f 2074/2213/104 2065/2214/104 2069/1250/104 +f 2065/2214/104 2064/1248/104 2069/1250/104 +f 2064/1248/104 2058/2215/104 2057/1249/104 +f 2057/1249/104 2070/2216/104 2069/1250/104 +f 2072/1251/104 2073/2217/104 2066/1252/104 +f 2066/1252/104 2067/2218/104 2061/1253/104 +f 2061/1253/104 2060/2219/104 2075/2220/104 +f 2075/2220/104 2072/1251/104 2061/1253/104 +f 2056/1256/105 2059/2221/105 2063/1254/105 +f 2063/1254/105 2062/2222/105 2076/2223/105 +f 2076/2223/105 2068/1255/105 2063/1254/105 +f 2068/1255/105 2071/2224/105 2056/1256/105 +f 2078/1257/125 2079/2225/125 2080/1258/125 +f 2082/1260/124 2083/2226/124 2084/1261/124 +f 2086/1263/223 2084/1261/223 2083/1264/223 +f 2088/1266/224 2082/2227/224 2081/1262/224 +f 2087/1267/125 2086/1296/125 2085/1268/125 +f 2089/1270/225 2090/2228/225 2091/1271/225 +f 2094/1273/226 2095/1292/226 2096/1274/226 +f 2089/1270/178 2092/1272/178 2088/1276/178 +f 2098/1278/124 2099/2229/124 2100/1279/124 +f 2078/1281/223 2077/1259/223 2097/1282/223 +f 2100/1284/178 2099/2230/178 2093/1275/178 +f 2079/1285/224 2099/2231/224 2098/1278/224 +f 2101/1286/1 2090/2228/1 2089/1270/1 +f 2102/1288/3 2088/2232/3 2092/1272/3 +f 2103/1289/3 2094/1273/3 2093/1275/3 +f 2104/1291/1 2100/2233/1 2096/1274/1 +f 2084/1261/124 2105/1299/124 2106/1293/124 +f 2097/1280/124 2107/2234/124 2108/1294/124 +f 2087/1267/125 2109/1298/125 2110/1295/125 +f 2077/1259/1 2111/1300/1 2107/1297/1 +f 2087/1267/3 2081/1262/3 2106/1293/3 +f 2086/1263/1 2110/2235/1 2105/1299/1 +f 2080/1258/125 2112/1301/125 2111/1300/125 +f 2080/1258/3 2098/1278/3 2108/1294/3 +f 2114/1302/227 2115/1325/227 2116/1303/227 +f 2117/1305/3 2114/1302/3 2113/1304/3 +f 2114/1302/124 2117/1305/124 2119/1307/124 +f 2119/1307/316 2120/2236/316 2115/1308/316 +f 2122/1311/125 2118/1306/125 2113/1304/125 +f 2113/1304/125 2116/1309/125 2122/1311/125 +f 2123/1312/317 2124/2237/317 2125/1313/317 +f 2126/1314/136 2125/1313/136 2128/1315/136 +f 2130/1317/318 2127/1316/318 2128/1315/318 +f 2129/1319/134 2124/2237/134 2123/1312/134 +f 2119/1321/319 2122/2238/319 2121/1322/319 +f 2121/1324/232 2116/1303/232 2115/1325/232 +f 2118/1306/233 2122/2238/233 2119/1321/233 +f 2135/2239/124 2131/1328/124 2134/1327/124 +f 2131/1328/124 2132/2240/124 2133/1329/124 +f 2140/1332/125 2136/2241/125 2137/1330/125 +f 2137/1330/125 2138/2242/125 2139/1331/125 +f 2131/1333/234 2135/2243/234 2138/1334/234 +f 2138/1334/235 2135/2243/235 2134/1327/235 +f 2139/1331/3 2134/1327/3 2133/1329/3 +f 2136/1336/236 2140/1332/236 2133/1329/236 +f 2137/1335/1 2136/2244/1 2132/1338/1 +f 2147/2245/125 2141/2246/125 2142/1339/125 +f 2142/1339/125 2143/2247/125 2144/1340/125 +f 2144/1340/125 2145/2248/125 2146/1341/125 +f 2146/1341/125 2147/2245/125 2142/1339/125 +f 2166/2249/124 2157/2250/124 2156/1342/124 +f 2156/1342/124 2150/2251/124 2149/1343/124 +f 2149/1343/124 2162/2252/124 2161/1344/124 +f 2161/1344/124 2166/2249/124 2156/1342/124 +f 2164/1345/124 2165/2253/124 2158/1346/124 +f 2158/1346/124 2159/2254/124 2153/1347/124 +f 2153/1347/124 2152/2255/124 2167/2256/124 +f 2167/2256/124 2164/1345/124 2153/1347/124 +f 2148/1350/125 2151/2257/125 2155/1348/125 +f 2155/1348/125 2154/2258/125 2168/2259/125 +f 2168/2259/125 2160/1349/125 2155/1348/125 +f 2160/1349/125 2163/2260/125 2148/1350/125 +f 2170/1351/143 2171/2261/143 2172/1352/143 +f 2174/1354/33 2175/2262/33 2176/1355/33 +f 2177/1357/241 2178/1392/241 2176/1355/241 +f 2180/1359/238 2174/2263/238 2173/1356/238 +f 2179/1360/143 2178/1389/143 2177/1361/143 +f 2181/1363/239 2182/2264/239 2183/1364/239 +f 2186/1366/240 2187/1385/240 2188/1367/240 +f 2181/1363/27 2184/1365/27 2180/1369/27 +f 2190/1371/33 2191/2265/33 2192/1372/33 +f 2170/1374/241 2169/1353/241 2189/1375/241 +f 2192/1377/27 2191/2266/27 2185/1368/27 +f 2171/1378/238 2191/2267/238 2190/1371/238 +f 2193/1379/1 2182/2264/1 2181/1363/1 +f 2194/1381/3 2180/2268/3 2184/1365/3 +f 2195/1382/3 2186/1366/3 2185/1368/3 +f 2196/1384/1 2192/2269/1 2188/1367/1 +f 2176/1355/33 2197/1393/33 2198/1386/33 +f 2189/1373/33 2199/2270/33 2200/1387/33 +f 2179/1360/143 2201/1391/143 2202/1388/143 +f 2169/1353/1 2203/1394/1 2199/1390/1 +f 2179/1360/3 2173/1356/3 2198/1386/3 +f 2178/1392/1 2202/2271/1 2197/1393/1 +f 2172/1352/143 2204/1395/143 2203/1394/143 +f 2172/1352/3 2190/1371/3 2200/1387/3 +f 2205/1396/320 2206/1403/320 2207/1397/320 +f 2209/1399/3 2206/1403/3 2205/1396/3 +f 2206/1403/33 2209/1399/33 2211/1401/33 +f 2211/1401/33 2212/2272/33 2207/1402/33 +f 2214/1406/143 2210/1400/143 2205/1396/143 +f 2205/1396/143 2208/1404/143 2214/1406/143 +f 2215/1407/321 2216/2273/321 2217/1408/321 +f 2218/1409/153 2217/1408/153 2220/1410/153 +f 2221/1412/322 2222/2274/322 2219/1411/322 +f 2221/1413/151 2216/2273/151 2215/1407/151 +f 2211/1415/323 2214/2275/323 2213/1416/323 +f 2213/1418/247 2208/1398/247 2207/1397/247 +f 2210/1400/248 2214/2275/248 2211/1415/248 +f 2227/2276/33 2223/1421/33 2226/1420/33 +f 2223/1421/33 2224/2277/33 2225/1422/33 +f 2232/1425/143 2228/2278/143 2229/1423/143 +f 2229/1423/143 2230/2279/143 2231/1424/143 +f 2229/1426/249 2223/1432/249 2227/1427/249 +f 2230/1428/250 2227/1427/250 2226/1420/250 +f 2231/1424/3 2226/1420/3 2225/1422/3 +f 2228/1429/251 2232/1425/251 2225/1422/251 +f 2229/1426/1 2228/2280/1 2224/1431/1 +f 2239/2281/143 2233/2282/143 2234/1433/143 +f 2234/1433/143 2235/2283/143 2236/1434/143 +f 2236/1434/143 2237/2284/143 2238/1435/143 +f 2238/1435/143 2239/2281/143 2234/1433/143 +f 2258/2285/33 2249/2286/33 2248/1436/33 +f 2248/1436/33 2242/2287/33 2241/1437/33 +f 2241/1437/33 2254/2288/33 2253/1438/33 +f 2253/1438/33 2258/2285/33 2248/1436/33 +f 2256/1439/33 2257/2289/33 2250/1440/33 +f 2250/1440/33 2251/2290/33 2245/1441/33 +f 2245/1441/33 2244/2291/33 2259/2292/33 +f 2259/2292/33 2256/1439/33 2245/1441/33 +f 2240/1444/143 2243/2293/143 2247/1442/143 +f 2247/1442/143 2246/2294/143 2260/2295/143 +f 2260/2295/143 2252/1443/143 2247/1442/143 +f 2252/1443/143 2255/2296/143 2240/1444/143 +f 2262/1445/160 2263/2297/160 2264/1446/160 +f 2266/1448/110 2267/2298/110 2268/1449/110 +f 2269/1451/324 2270/1487/324 2268/1449/324 +f 2272/1453/325 2266/2299/325 2265/1450/325 +f 2271/1454/160 2270/1484/160 2269/1455/160 +f 2273/1457/326 2274/2300/326 2275/1458/326 +f 2278/1460/255 2279/1480/255 2280/1461/255 +f 2273/1457/104 2276/1459/104 2272/1463/104 +f 2281/1465/110 2282/1473/110 2283/1466/110 +f 2262/1468/324 2261/1447/324 2281/1469/324 +f 2284/1471/104 2283/2301/104 2277/1462/104 +f 2263/1472/325 2283/2302/325 2282/1473/325 +f 2285/1474/1 2274/2300/1 2273/1457/1 +f 2286/1476/3 2272/2303/3 2276/1459/3 +f 2287/1477/3 2278/1460/3 2277/1462/3 +f 2288/1479/1 2284/2304/1 2280/1461/1 +f 2268/1449/110 2289/1488/110 2290/1481/110 +f 2281/1465/110 2291/2305/110 2292/1482/110 +f 2271/1454/160 2293/1486/160 2294/1483/160 +f 2261/1447/1 2295/1489/1 2291/1485/1 +f 2271/1454/3 2265/1450/3 2290/1481/3 +f 2270/1487/1 2294/2306/1 2289/1488/1 +f 2264/1446/160 2296/1490/160 2295/1489/160 +f 2264/1446/3 2282/1473/3 2292/1482/3 +f 2297/1491/256 2298/1498/256 2299/1492/256 +f 2301/1494/3 2298/1498/3 2297/1491/3 +f 2298/1498/110 2301/1494/110 2303/1496/110 +f 2303/1496/110 2304/2307/110 2299/1497/110 +f 2306/1501/160 2302/1495/160 2297/1491/160 +f 2297/1491/160 2300/1499/160 2306/1501/160 +f 2308/1502/327 2309/2308/327 2310/1503/327 +f 2310/1503/171 2309/2308/171 2312/1505/171 +f 2314/1507/259 2311/1506/259 2312/1505/259 +f 2313/1509/169 2308/1502/169 2307/1504/169 +f 2303/1511/328 2306/2309/328 2305/1512/328 +f 2305/1514/329 2300/1493/329 2299/1492/329 +f 2302/1495/330 2306/2309/330 2303/1511/330 +f 2319/2310/110 2315/1517/110 2318/1516/110 +f 2315/1517/110 2316/2311/110 2317/1518/110 +f 2324/1521/160 2320/2312/160 2321/1519/160 +f 2321/1519/160 2322/2313/160 2323/1520/160 +f 2321/1522/263 2315/1528/263 2319/1523/263 +f 2322/1524/264 2319/1523/264 2318/1516/264 +f 2323/1520/3 2318/1516/3 2317/1518/3 +f 2320/1525/265 2324/1521/265 2317/1518/265 +f 2321/1522/1 2320/2314/1 2316/1527/1 +f 2331/2315/160 2325/2316/160 2326/1529/160 +f 2326/1529/160 2327/2317/160 2328/1530/160 +f 2328/1530/160 2329/2318/160 2330/1531/160 +f 2330/1531/160 2331/2315/160 2326/1529/160 +f 2350/2319/110 2341/2320/110 2340/1532/110 +f 2340/1532/110 2334/2321/110 2333/1533/110 +f 2333/1533/110 2346/2322/110 2345/1534/110 +f 2345/1534/110 2350/2319/110 2340/1532/110 +f 2348/1535/110 2349/2323/110 2342/1536/110 +f 2342/1536/110 2343/2324/110 2337/1537/110 +f 2337/1537/110 2336/2325/110 2351/2326/110 +f 2351/2326/110 2348/1535/110 2337/1537/110 +f 2332/1540/160 2335/2327/160 2339/1538/160 +f 2339/1538/160 2338/2328/160 2352/2329/160 +f 2352/2329/160 2344/1539/160 2339/1538/160 +f 2344/1539/160 2347/2330/160 2332/1540/160 +f 2354/1541/178 2355/2331/178 2356/1542/178 +f 2358/1544/130 2359/2332/130 2360/1545/130 +f 2361/1547/266 2362/1583/266 2360/1545/266 +f 2363/1549/267 2364/2333/267 2358/1550/267 +f 2363/1549/178 2362/1580/178 2361/1551/178 +f 2365/1553/268 2366/2334/268 2367/1554/268 +f 2370/1556/269 2371/1576/269 2372/1557/269 +f 2365/1553/124 2368/1555/124 2364/1559/124 +f 2373/1561/130 2374/1569/130 2375/1562/130 +f 2354/1564/266 2353/1543/266 2373/1565/266 +f 2376/1567/124 2375/2335/124 2369/1558/124 +f 2355/1568/267 2375/2336/267 2374/1569/267 +f 2377/1570/1 2366/2334/1 2365/1553/1 +f 2378/1572/3 2364/2337/3 2368/1555/3 +f 2379/1573/3 2370/1556/3 2369/1558/3 +f 2380/1575/1 2376/2338/1 2372/1557/1 +f 2360/1545/130 2381/1584/130 2382/1577/130 +f 2373/1561/130 2383/2339/130 2384/1578/130 +f 2363/1549/178 2385/1582/178 2386/1579/178 +f 2353/1543/1 2387/1585/1 2383/1581/1 +f 2363/1549/3 2357/1546/3 2382/1577/3 +f 2362/1583/1 2386/2340/1 2381/1584/1 +f 2356/1542/178 2388/1586/178 2387/1585/178 +f 2356/1542/3 2374/1569/3 2384/1578/3 +f 2390/1587/270 2391/1610/270 2392/1588/270 +f 2393/1590/3 2390/1587/3 2389/1589/3 +f 2390/1587/130 2393/1590/130 2395/1592/130 +f 2395/1592/130 2396/2341/130 2391/1593/130 +f 2398/1596/178 2394/1591/178 2389/1589/178 +f 2389/1589/178 2392/1594/178 2398/1596/178 +f 2400/1597/331 2401/2342/331 2402/1598/331 +f 2402/1598/188 2401/2342/188 2404/1600/188 +f 2406/1602/332 2403/1601/332 2404/1600/332 +f 2405/1604/186 2400/1597/186 2399/1599/186 +f 2395/1606/333 2398/2343/333 2397/1607/333 +f 2397/1609/275 2392/1588/275 2391/1610/275 +f 2394/1591/276 2398/2343/276 2395/1606/276 +f 2411/2344/130 2407/1613/130 2410/1612/130 +f 2407/1613/130 2408/2345/130 2409/1614/130 +f 2416/1617/178 2412/2346/178 2413/1615/178 +f 2413/1615/178 2414/2347/178 2415/1616/178 +f 2413/1618/277 2407/1624/277 2411/1619/277 +f 2411/1619/278 2410/1612/278 2415/1616/278 +f 2415/1616/3 2410/1612/3 2409/1614/3 +f 2412/1621/279 2416/1617/279 2409/1614/279 +f 2412/1623/1 2408/2348/1 2407/1624/1 +f 2423/2349/178 2417/2350/178 2418/1625/178 +f 2418/1625/178 2419/2351/178 2420/1626/178 +f 2420/1626/178 2421/2352/178 2422/1627/178 +f 2422/1627/178 2423/2349/178 2418/1625/178 +f 2442/2353/130 2433/2354/130 2432/1628/130 +f 2432/1628/130 2426/2355/130 2425/1629/130 +f 2425/1629/130 2438/2356/130 2437/1630/130 +f 2437/1630/130 2442/2353/130 2432/1628/130 +f 2440/1631/130 2441/2357/130 2434/1632/130 +f 2434/1632/130 2435/2358/130 2429/1633/130 +f 2429/1633/130 2428/2359/130 2443/2360/130 +f 2443/2360/130 2440/1631/130 2429/1633/130 +f 2424/1636/178 2427/2361/178 2431/1634/178 +f 2431/1634/178 2430/2362/178 2444/2363/178 +f 2444/2363/178 2436/1635/178 2431/1634/178 +f 2436/1635/178 2439/2364/178 2424/1636/178 +s 1 +f 2/2365/334 4/2366/335 1/2367/336 +f 4/2366/335 5/2368/337 6/2369/338 +f 6/2369/338 7/2370/339 8/2371/340 +f 8/2371/340 9/2372/341 10/2373/342 +f 16/2374/343 13/2375/344 15/2376/345 +f 19/2377/346 1/2367/336 18/2378/347 +f 20/2379/348 21/2380/349 22/2381/350 +f 21/2380/349 11/2382/351 22/2381/350 +f 18/2378/347 23/2383/352 21/2380/349 +f 21/2380/349 13/2384/344 12/2385/353 +f 1/2367/336 24/2386/354 23/2383/352 +f 23/2383/352 14/2387/355 13/2384/344 +f 6/2369/338 24/2386/354 4/2366/335 +f 25/2388/356 14/2387/355 24/2386/354 +f 8/2371/340 25/2388/356 6/2369/338 +f 26/2389/357 15/2390/345 25/2388/356 +f 10/2373/342 26/2389/357 8/2371/340 +f 26/2389/357 17/2391/358 16/2392/343 +f 28/2393/359 18/2378/347 20/2379/348 +f 28/2393/359 30/2394/360 19/2377/346 +f 29/2395/361 32/2396/362 30/2394/360 +f 19/2377/346 33/2397/363 2/2365/334 +f 30/2394/360 34/2398/364 33/2397/363 +f 2/2365/334 35/2399/365 3/2400/366 +f 33/2397/363 36/2401/367 35/2399/365 +f 5/2368/337 35/2399/365 37/2402/368 +f 37/2402/368 36/2401/367 38/2403/369 +f 7/2370/339 37/2402/368 39/2404/370 +f 39/2404/370 38/2403/369 40/2405/371 +f 9/2372/341 39/2404/370 41/2406/372 +f 41/2406/372 40/2405/371 42/2407/373 +f 38/2408/369 36/2409/367 34/2410/364 +f 72/2411/374 74/2412/375 71/2413/376 +f 74/2412/375 75/2414/377 76/2415/378 +f 75/2414/377 78/2416/379 76/2415/378 +f 77/2417/380 80/2418/381 78/2416/379 +f 79/2419/382 82/2420/383 80/2418/381 +f 81/2421/384 84/2422/385 82/2423/383 +f 83/2424/386 86/2425/387 84/2422/385 +f 85/2426/388 88/2427/389 86/2425/387 +f 88/2427/389 89/2428/390 90/2429/391 +f 89/2428/390 92/2430/392 90/2429/391 +f 92/2430/392 93/2431/393 94/2432/394 +f 95/2433/395 97/2434/396 98/2435/397 +f 97/2434/396 100/2436/398 98/2435/397 +f 99/2437/399 102/2438/400 100/2436/398 +f 101/2439/401 104/2440/402 102/2438/400 +f 104/2440/402 105/2441/403 106/2442/404 +f 105/2441/403 108/2443/405 106/2442/404 +f 77/2417/380 109/2444/406 110/2445/407 +f 112/2446/408 71/2413/376 111/2447/409 +f 78/2416/379 113/2448/410 114/2449/411 +f 116/2450/412 118/2451/413 115/2452/414 +f 85/2426/388 115/2452/414 87/2453/415 +f 72/2411/374 120/2454/416 73/2455/417 +f 96/2456/418 122/2457/419 97/2434/396 +f 107/2458/420 123/2459/421 124/2460/422 +f 81/2421/384 126/2461/423 83/2424/386 +f 91/2462/424 128/2463/425 93/2431/393 +f 103/2464/426 129/2465/427 130/2466/428 +f 77/2417/380 131/2467/429 79/2419/382 +f 87/2453/415 132/2468/430 89/2428/390 +f 97/2434/396 133/2469/431 99/2437/399 +f 107/2458/420 134/2470/432 112/2446/408 +f 73/2455/417 109/2444/406 75/2414/377 +f 85/2426/388 126/2461/423 116/2471/412 +f 93/2431/393 121/2472/433 96/2456/418 +f 105/2441/403 130/2466/428 123/2473/421 +f 79/2419/382 125/2474/434 81/2475/384 +f 89/2428/390 127/2476/435 91/2462/424 +f 101/2439/401 133/2469/431 129/2477/427 +f 112/2446/408 119/2478/436 72/2411/374 +f 135/2479/437 137/2480/438 138/2481/439 +f 119/2478/436 140/2482/440 120/2454/416 +f 129/2465/427 142/2483/441 130/2466/428 +f 115/2452/414 143/2484/442 132/2468/430 +f 120/2485/416 144/2486/443 109/2444/406 +f 130/2466/428 145/2487/444 123/2473/421 +f 132/2488/430 146/2489/445 127/2476/435 +f 109/2444/406 147/2490/446 110/2445/407 +f 124/2460/422 145/2491/444 148/2492/447 +f 127/2476/435 149/2493/448 128/2463/425 +f 131/2467/429 147/2494/446 136/2495/449 +f 124/2460/422 150/2496/450 134/2470/432 +f 128/2497/425 151/2498/451 121/2472/433 +f 125/2474/434 136/2495/449 135/2479/437 +f 134/2499/432 139/2500/452 119/2478/436 +f 122/2457/419 151/2498/451 152/2501/453 +f 125/2502/434 153/2503/454 126/2461/423 +f 122/2504/419 154/2505/455 133/2469/431 +f 116/2471/412 153/2503/454 117/2506/456 +f 133/2469/431 141/2507/457 129/2477/427 +f 156/2508/458 158/2509/459 155/2510/460 +f 150/2511/450 160/2512/461 139/2500/452 +f 151/2498/451 162/2513/462 152/2501/453 +f 135/2514/437 163/2515/463 153/2503/454 +f 154/2505/455 162/2516/462 156/2508/458 +f 117/2506/456 163/2515/463 164/2517/464 +f 141/2507/457 156/2508/458 155/2510/460 +f 118/2451/413 164/2518/464 165/2519/465 +f 140/2482/440 160/2512/461 166/2520/466 +f 142/2483/441 155/2521/460 167/2522/467 +f 143/2484/442 165/2519/465 168/2523/468 +f 140/2524/440 169/2525/469 144/2486/443 +f 142/2483/441 170/2526/470 145/2487/444 +f 143/2527/442 171/2528/471 146/2489/445 +f 144/2486/443 172/2529/472 147/2490/446 +f 148/2492/447 170/2530/470 173/2531/473 +f 146/2489/445 174/2532/474 149/2493/448 +f 136/2495/449 172/2533/472 137/2480/438 +f 148/2492/447 159/2534/475 150/2496/450 +f 151/2498/451 174/2535/474 161/2536/476 +f 157/2537/477 184/2538/478 188/2539/479 +f 165/2519/465 187/2540/480 186/2541/481 +f 160/2512/461 175/2542/482 166/2520/466 +f 167/2522/467 158/2543/459 180/2544/483 +f 168/2523/468 186/2541/481 185/2545/484 +f 169/2525/469 175/2546/482 192/2547/485 +f 167/2522/467 179/2548/486 170/2526/470 +f 171/2528/471 185/2549/484 184/2550/478 +f 169/2525/469 191/2551/487 172/2529/472 +f 173/2531/473 179/2552/486 178/2553/488 +f 171/2528/471 183/2554/489 174/2532/474 +f 137/2480/438 191/2555/487 190/2556/490 +f 173/2531/473 177/2557/491 159/2534/475 +f 161/2536/476 183/2558/489 182/2559/492 +f 137/2480/438 189/2560/493 138/2481/439 +f 160/2512/461 177/2561/491 176/2562/494 +f 161/2536/476 181/2563/495 162/2513/462 +f 163/2515/463 189/2564/493 188/2565/479 +f 156/2508/458 181/2566/495 157/2567/477 +f 163/2515/463 187/2568/480 164/2517/464 +f 194/2569/496 196/66/497 193/2570/498 +f 90/2429/391 198/2571/499 88/2427/389 +f 100/2436/398 199/2572/500 98/2435/397 +f 111/2447/409 201/2573/501 108/2443/405 +f 76/2415/378 203/2574/502 74/2412/375 +f 84/2422/385 204/2575/503 205/2576/504 +f 95/2433/395 207/2577/505 94/2432/394 +f 106/2442/404 209/2578/506 104/2440/402 +f 82/2420/383 113/2448/410 80/2418/381 +f 92/2430/392 197/2579/507 90/2429/391 +f 102/2438/400 193/2570/498 100/2436/398 +f 71/2413/376 200/2580/508 111/2447/409 +f 78/2416/379 202/2581/509 76/2415/378 +f 88/2427/389 204/2582/503 86/2425/387 +f 71/2413/376 203/2583/502 212/2584/510 +f 98/2435/397 206/2585/511 95/2433/395 +f 108/2443/405 208/2586/512 106/2442/404 +f 84/2422/385 210/2587/513 82/2423/383 +f 94/2432/394 211/2588/514 92/2430/392 +f 104/2440/402 194/2589/496 102/2438/400 +f 198/2571/499 218/75/515 204/2582/503 +f 203/2583/502 220/58/64 212/2584/510 +f 194/2589/496 213/36/516 195/78/68 +f 197/2590/507 217/73/517 198/2571/499 +f 202/2581/509 219/82/518 203/2574/502 +f 209/2578/506 214/34/519 213/36/516 +f 197/2579/507 223/37/61 221/39/520 +f 114/2591/411 222/42/521 202/2581/509 +f 201/2573/501 214/45/519 208/2586/512 +f 207/2592/505 223/37/61 211/2588/514 +f 113/2448/410 224/50/522 114/2449/411 +f 200/2593/508 225/43/523 201/2573/501 +f 207/2577/505 229/62/524 226/53/525 +f 113/2448/410 230/56/69 227/48/526 +f 200/2580/508 220/58/64 228/60/527 +f 206/2585/511 231/61/528 229/62/524 +f 205/2576/504 230/63/69 210/2587/513 +f 193/2570/498 231/68/528 199/2572/500 +f 204/2575/503 232/69/529 205/2576/504 +f 112/2446/408 108/2443/405 107/2458/420 +f 96/2456/418 94/2432/394 93/2431/393 +f 234/1647/520 236/2594/517 233/52/517 +f 243/54/521 264/2595/518 241/55/518 +f 242/57/497 258/2596/68 257/2597/497 +f 245/77/61 235/2598/520 234/59/520 +f 246/1649/522 265/2599/521 243/54/521 +f 247/64/516 258/2600/68 244/65/68 +f 246/67/522 267/2601/526 266/2602/522 +f 247/64/516 260/2603/519 259/2604/516 +f 250/1651/69 267/2601/526 248/72/526 +f 251/81/523 260/2605/519 249/74/519 +f 252/76/525 253/2606/61 245/77/61 +f 216/35/529 268/2607/69 250/79/69 +f 238/1653/527 261/2608/523 251/81/523 +f 240/41/524 254/2609/525 252/83/525 +f 215/1644/515 269/2610/529 216/35/529 +f 237/47/64 262/2611/527 238/38/527 +f 239/1645/528 255/2612/524 240/41/524 +f 215/44/515 236/2594/517 270/2613/515 +f 241/46/518 263/2614/64 237/47/64 +f 242/57/497 256/2615/528 239/49/528 +f 272/2616/530 274/2617/160 271/2618/64 +f 276/2619/531 278/2620/532 275/2621/533 +f 272/2616/530 278/2620/532 273/2622/534 +f 274/2617/160 279/2623/535 280/2624/69 +f 277/2625/536 282/2626/537 278/2620/532 +f 273/2622/534 282/2626/537 279/2623/535 +f 279/2627/535 284/2628/105 280/2629/69 +f 282/2630/537 285/2631/538 286/2632/539 +f 279/2627/535 286/2632/539 283/2633/540 +f 284/2628/105 287/2634/541 288/2635/61 +f 286/2632/539 289/2636/542 290/2637/543 +f 286/2632/539 287/2634/541 283/2633/540 +f 287/2634/541 291/2638/544 292/2639/545 +f 287/2634/541 293/2640/110 288/2635/61 +f 290/2637/543 294/2641/546 291/2638/544 +f 291/2638/544 296/2642/547 292/2639/545 +f 292/2639/545 297/2643/68 293/2640/110 +f 291/2638/544 298/2644/548 295/2645/549 +f 296/2642/547 299/2646/550 300/2647/551 +f 289/2648/542 285/2649/538 281/2650/552 +f 296/2642/547 302/2651/104 297/2643/68 +f 298/2644/548 299/2646/550 295/2645/549 +f 300/2647/551 271/2618/64 302/2651/104 +f 299/2646/550 276/2619/531 275/2621/533 +f 299/2646/550 272/2616/530 300/2647/551 +f 304/2652/530 306/2653/160 303/2654/64 +f 308/2655/531 310/2656/532 307/2657/533 +f 304/2652/530 310/2656/532 305/2658/534 +f 305/2658/534 312/2659/69 306/2653/160 +f 309/2660/536 314/2661/537 310/2656/532 +f 310/2656/532 311/2662/535 305/2658/534 +f 311/2663/535 316/2664/105 312/2665/69 +f 313/2666/552 318/2667/539 314/2668/537 +f 314/2668/537 315/2669/540 311/2663/535 +f 316/2664/105 319/2670/541 320/2671/61 +f 318/2667/539 321/2672/542 322/2673/543 +f 315/2669/540 322/2673/543 319/2670/541 +f 322/2673/543 324/2674/545 319/2670/541 +f 320/2671/61 324/2674/545 325/2675/110 +f 321/2672/542 323/2676/544 322/2673/543 +f 323/2676/544 328/2677/547 324/2674/545 +f 324/2674/545 329/2678/68 325/2675/110 +f 323/2676/544 330/2679/548 327/2680/549 +f 328/2677/547 331/2681/550 332/2682/551 +f 321/2683/542 317/2684/538 313/2685/552 +f 328/2677/547 334/2686/104 329/2678/68 +f 330/2679/548 331/2681/550 327/2680/549 +f 334/2686/104 304/2652/530 303/2654/64 +f 331/2681/550 308/2655/531 307/2657/533 +f 332/2682/551 307/2657/533 304/2652/530 +f 364/131/553 366/2687/554 363/2688/553 +f 365/135/554 368/2689/555 366/2687/554 +f 368/2689/555 369/136/556 370/2690/556 +f 369/136/556 372/2691/557 370/2690/556 +f 372/2691/557 373/128/558 374/2692/558 +f 373/128/558 376/2693/559 374/2692/558 +f 376/2694/559 377/122/560 378/2695/561 +f 377/122/560 380/2696/562 378/2695/561 +f 379/117/562 382/2697/563 380/2696/562 +f 382/2697/563 383/138/564 384/2698/564 +f 383/138/564 388/2699/565 384/2698/564 +f 388/2699/565 364/131/553 363/2688/553 +f 390/133/566 392/2700/567 389/134/567 +f 393/120/568 404/2701/569 385/121/569 +f 395/125/570 408/2702/571 407/2703/570 +f 398/132/572 391/2704/566 390/133/566 +f 389/134/567 410/2705/573 399/137/574 +f 385/121/569 403/2706/3 386/118/3 +f 394/126/575 407/2703/570 406/2707/575 +f 397/129/1 410/2705/573 409/2708/1 +f 386/118/3 402/2709/576 400/141/576 +f 394/123/575 405/2710/568 393/120/568 +f 396/130/571 409/2708/1 408/2702/571 +f 400/141/576 401/2711/572 398/132/572 +f 411/2712/577 413/161/578 414/160/577 +f 412/2713/578 416/162/579 413/161/578 +f 415/2714/579 418/157/580 416/162/579 +f 419/2715/581 418/157/580 417/2716/580 +f 419/2715/581 422/152/582 420/155/581 +f 423/2717/583 422/152/582 421/2718/582 +f 423/2719/583 426/148/584 424/150/583 +f 427/2720/585 426/148/584 425/2721/584 +f 427/2720/585 430/145/586 428/147/585 +f 429/2722/586 432/164/587 430/145/586 +f 435/2723/588 432/164/587 431/2724/587 +f 435/2723/588 414/160/577 436/159/588 +f 438/2725/589 440/158/590 437/165/589 +f 434/146/591 454/2726/592 441/1692/592 +f 443/154/593 451/2727/594 444/1693/594 +f 440/158/590 458/2728/595 446/1694/595 +f 449/2729/596 437/165/589 447/1695/596 +f 433/1691/3 455/2730/591 434/146/591 +f 442/151/597 452/2731/593 443/154/593 +f 450/2732/1 447/1695/596 445/156/1 +f 457/2733/598 433/1691/3 448/163/598 +f 441/1692/592 453/2734/597 442/149/597 +f 451/2727/594 445/156/1 444/1693/594 +f 446/1694/595 457/2733/598 448/163/598 +f 531/2735/33 533/2736/599 530/2737/33 +f 534/2738/1 524/252/600 523/1725/1 +f 537/261/601 539/1729/3 536/1737/3 +f 540/2739/33 525/2740/602 541/2741/603 +f 543/257/600 545/2742/604 542/2743/605 +f 528/254/601 547/2744/599 546/258/606 +f 538/255/606 533/2736/599 532/2745/599 +f 524/252/600 541/2741/603 525/2740/602 +f 531/2746/33 545/2742/604 544/2747/604 +f 528/254/601 549/1735/3 529/1724/3 +f 548/1728/1 542/2743/605 550/2748/1 +f 526/2749/33 547/2744/599 527/2750/599 +f 578/2751/607 580/1757/608 577/1756/607 +f 582/2752/609 584/305/610 581/1755/609 +f 585/2753/611 587/303/612 588/2754/612 +f 589/2755/613 585/2753/611 590/2756/613 +f 579/2757/614 587/303/612 580/2758/608 +f 582/2752/609 592/2759/615 591/2760/615 +f 577/2761/607 583/2762/616 578/2763/607 +f 590/2764/613 592/1754/615 589/1753/613 +f 594/2765/617 596/1763/618 593/1762/617 +f 598/2766/619 600/311/620 597/1761/619 +f 602/310/621 604/2767/622 601/2768/621 +f 602/310/621 606/2769/623 605/2770/623 +f 595/2771/618 603/309/624 596/2772/618 +f 598/2766/619 608/2773/625 607/2774/625 +f 600/311/620 594/2775/617 593/2776/617 +f 605/1759/623 607/2777/625 608/1760/625 +f 614/2778/607 616/1768/614 613/1767/607 +f 618/2779/609 620/314/616 617/1766/609 +f 621/2780/611 623/312/612 624/2781/612 +f 622/313/611 626/2782/613 625/2783/613 +f 624/2781/612 616/2784/614 615/2785/614 +f 627/2786/615 617/1766/609 628/2787/615 +f 613/2788/607 619/2789/616 614/2790/607 +f 626/2791/613 628/1765/615 625/1764/613 +f 629/1773/617 631/2792/618 632/1774/618 +f 634/2793/619 636/320/620 633/1772/619 +f 638/319/621 640/2794/624 637/2795/621 +f 638/319/621 642/2796/623 641/2797/623 +f 640/2794/624 632/2798/618 631/2799/618 +f 634/2793/619 644/2800/625 643/2801/625 +f 629/2802/617 635/2803/620 630/2804/617 +f 642/2805/623 644/1771/625 641/1770/623 +f 650/2806/607 652/1779/614 649/1778/607 +f 653/1777/609 655/2807/616 656/323/616 +f 658/322/611 660/2808/612 657/2809/611 +f 661/2810/613 657/2809/611 662/2811/613 +f 660/2808/612 652/2812/614 651/2813/614 +f 663/2814/615 653/1777/609 664/2815/615 +f 649/2816/607 655/2807/616 650/2817/607 +f 662/2818/613 664/1776/615 661/1775/613 +f 666/2819/617 668/1785/618 665/1784/617 +f 670/2820/619 672/329/626 669/1783/627 +f 674/328/621 676/2821/624 673/2822/621 +f 677/2823/623 673/2822/621 678/2824/623 +f 676/2821/624 668/2825/618 667/2826/618 +f 670/2820/619 680/2827/625 679/2828/625 +f 665/2829/617 671/2830/628 666/2831/617 +f 677/1781/623 679/2832/625 680/1782/625 +f 686/1789/629 688/2833/630 685/1790/630 +f 690/1788/631 692/2834/632 689/330/633 +f 693/2835/634 695/1787/635 696/332/636 +f 697/2836/637 693/2835/634 696/332/636 +f 687/2837/629 695/1787/635 694/2838/638 +f 700/2839/639 692/2834/632 699/2840/640 +f 685/2841/630 691/2842/641 690/1788/631 +f 700/331/639 698/2843/642 697/1786/637 +f 702/1795/618 704/2844/617 701/1796/617 +f 706/1794/620 708/2845/619 705/336/619 +f 710/2846/624 712/338/621 709/2847/621 +f 714/2848/623 712/338/621 713/2849/623 +f 702/2850/618 710/2846/624 703/2851/618 +f 716/2852/625 708/2845/619 715/2853/625 +f 704/2854/617 706/1794/620 701/2855/617 +f 716/337/625 714/2856/623 713/1792/623 +f 722/1800/629 724/2857/630 721/1801/630 +f 725/339/632 727/2858/641 728/2859/632 +f 730/2860/635 732/341/636 729/2861/634 +f 733/2862/642 729/2861/634 732/341/636 +f 722/2863/629 730/2860/635 723/2864/629 +f 736/2865/640 728/2859/632 735/2866/643 +f 721/2867/630 727/2858/641 726/1799/641 +f 736/340/640 734/2868/644 733/1797/642 +f 737/1807/617 739/2869/618 740/2870/617 +f 742/1805/620 744/2871/619 741/345/619 +f 745/2872/621 747/1804/624 748/347/621 +f 749/2873/623 745/2872/621 748/347/621 +f 738/2874/618 746/2875/624 739/2876/618 +f 751/2877/625 741/345/619 744/2871/619 +f 740/2878/617 742/1805/620 737/2879/617 +f 752/346/625 750/2880/623 749/1803/623 +f 758/1811/629 760/2881/630 757/1812/630 +f 761/348/632 763/2882/641 764/2883/632 +f 766/2884/635 768/350/634 765/2885/634 +f 769/2886/637 765/2885/634 768/350/634 +f 758/2887/629 766/2884/635 759/2888/629 +f 772/2889/639 764/2883/632 771/2890/639 +f 757/2891/630 763/2882/641 762/1810/641 +f 772/349/639 770/2892/637 769/1808/637 +f 774/1817/618 776/2893/617 773/1818/617 +f 778/1816/620 780/2894/619 777/354/619 +f 782/2895/624 784/356/645 781/2896/645 +f 786/2897/623 784/356/645 785/2898/623 +f 774/2899/618 782/2895/624 775/2900/618 +f 787/2901/625 777/354/619 780/2894/619 +f 776/2902/617 778/1816/620 773/2903/617 +f 788/355/625 786/2904/623 785/1814/623 +f 816/2905/646 818/2906/647 815/2907/648 +f 818/2906/647 819/2908/649 820/2909/650 +f 820/2909/650 821/2910/651 822/2911/652 +f 822/2911/652 823/2912/653 824/2913/654 +f 830/2914/655 831/2915/656 826/2916/657 +f 833/2917/658 815/2907/648 832/2918/659 +f 834/2919/660 835/2920/661 836/2921/662 +f 835/2920/661 825/2922/663 836/2921/662 +f 832/2918/659 837/2923/664 835/2920/661 +f 835/2920/661 827/2924/665 826/2925/657 +f 815/2907/648 838/2926/666 837/2923/664 +f 837/2923/664 828/2927/667 827/2924/665 +f 820/2909/650 838/2926/666 818/2906/647 +f 839/2928/668 828/2927/667 838/2926/666 +f 822/2911/652 839/2928/668 820/2909/650 +f 840/2929/669 829/2930/670 839/2928/668 +f 824/2913/654 840/2929/669 822/2911/652 +f 840/2929/669 831/2931/656 830/2932/655 +f 842/2933/671 832/2918/659 834/2919/660 +f 842/2933/671 844/2934/672 833/2917/658 +f 843/2935/673 846/2936/674 844/2934/672 +f 833/2917/658 847/2937/675 816/2905/646 +f 844/2934/672 848/2938/676 847/2937/675 +f 816/2905/646 849/2939/677 817/2940/678 +f 847/2937/675 850/2941/679 849/2939/677 +f 819/2908/649 849/2939/677 851/2942/680 +f 851/2942/680 850/2941/679 852/2943/681 +f 821/2910/651 851/2942/680 853/2944/682 +f 853/2944/682 852/2943/681 854/2945/683 +f 823/2912/653 853/2944/682 855/2946/684 +f 855/2946/684 854/2945/683 856/2947/685 +f 852/2948/681 850/2949/679 848/2950/676 +f 858/2951/686 860/2952/687 857/2953/688 +f 860/2952/687 861/2954/689 862/2955/690 +f 862/2955/690 863/2956/691 864/2957/692 +f 864/2957/692 865/2958/693 866/2959/694 +f 872/2960/695 869/2961/696 871/2962/697 +f 875/2963/698 857/2953/688 874/2964/699 +f 876/2965/700 877/2966/701 878/2967/702 +f 877/2966/701 867/2968/703 878/2967/702 +f 874/2964/699 879/2969/704 877/2966/701 +f 877/2966/701 869/2970/696 868/2971/705 +f 857/2953/688 880/2972/706 879/2969/704 +f 879/2969/704 870/2973/707 869/2970/696 +f 862/2955/690 880/2972/706 860/2952/687 +f 881/2974/708 870/2973/707 880/2972/706 +f 864/2957/692 881/2974/708 862/2955/690 +f 882/2975/709 871/2976/697 881/2974/708 +f 866/2959/694 882/2975/709 864/2957/692 +f 882/2975/709 873/2977/710 872/2978/695 +f 884/2979/711 874/2964/699 876/2965/700 +f 884/2979/711 886/2980/712 875/2963/698 +f 885/2981/713 888/2982/714 886/2980/712 +f 875/2963/698 889/2983/715 858/2951/686 +f 886/2980/712 890/2984/716 889/2983/715 +f 858/2951/686 891/2985/717 859/2986/718 +f 889/2983/715 892/2987/719 891/2985/717 +f 861/2954/689 891/2985/717 893/2988/720 +f 893/2988/720 892/2987/719 894/2989/721 +f 863/2956/691 893/2988/720 895/2990/722 +f 895/2990/722 894/2989/721 896/2991/723 +f 865/2958/693 895/2990/722 897/2992/724 +f 897/2992/724 896/2991/723 898/2993/725 +f 894/2994/721 892/2995/719 890/2996/716 +f 900/2997/726 902/2998/727 899/2999/728 +f 902/2998/727 903/3000/729 904/3001/730 +f 904/3001/730 905/3002/731 906/3003/732 +f 906/3003/732 907/3004/733 908/3005/734 +f 914/3006/735 915/3007/736 910/3008/737 +f 917/3009/738 899/2999/728 916/3010/739 +f 918/3011/740 919/3012/741 920/3013/742 +f 919/3012/741 909/3014/743 920/3013/742 +f 916/3010/739 921/3015/744 919/3012/741 +f 919/3012/741 911/3016/745 910/3017/737 +f 899/2999/728 922/3018/746 921/3015/744 +f 921/3015/744 912/3019/747 911/3016/745 +f 904/3001/730 922/3018/746 902/2998/727 +f 923/3020/748 912/3019/747 922/3018/746 +f 906/3003/732 923/3020/748 904/3001/730 +f 924/3021/749 913/3022/750 923/3020/748 +f 908/3005/734 924/3021/749 906/3003/732 +f 924/3021/749 915/3023/736 914/3024/735 +f 926/3025/751 916/3010/739 918/3011/740 +f 926/3025/751 928/3026/752 917/3009/738 +f 927/3027/753 930/3028/754 928/3026/752 +f 917/3009/738 931/3029/755 900/2997/726 +f 928/3026/752 932/3030/756 931/3029/755 +f 900/2997/726 933/3031/757 901/3032/758 +f 931/3029/755 934/3033/759 933/3031/757 +f 903/3000/729 933/3031/757 935/3034/760 +f 935/3034/760 934/3033/759 936/3035/761 +f 905/3002/731 935/3034/760 937/3036/762 +f 937/3036/762 936/3035/761 938/3037/763 +f 907/3004/733 937/3036/762 939/3038/764 +f 939/3038/764 938/3037/763 940/3039/765 +f 936/3040/761 934/3041/759 932/3042/756 +f 958/3043/766 960/1834/767 957/1833/768 +f 961/1832/769 963/3044/770 964/416/770 +f 966/415/771 968/3045/772 965/3046/773 +f 969/3047/774 965/3046/773 970/3048/775 +f 959/3049/776 967/414/772 960/3050/767 +f 962/3051/777 972/3052/778 971/3053/778 +f 957/3054/768 963/3044/770 958/3055/766 +f 970/3056/775 972/1831/778 969/1830/774 +f 974/3057/779 976/1840/780 973/1839/779 +f 977/1838/781 979/3058/782 980/422/782 +f 982/421/783 984/3059/784 981/3060/785 +f 982/421/783 986/3061/786 985/3062/787 +f 975/3063/780 983/420/788 976/3064/780 +f 987/3065/789 977/1838/781 988/3066/789 +f 973/3067/779 979/3058/782 974/3068/779 +f 985/1836/787 987/3069/789 988/1837/789 +f 994/3070/768 996/1845/776 993/1844/768 +f 997/1843/790 999/3071/770 1000/425/770 +f 1001/3072/791 1003/423/772 1004/3073/772 +f 1002/424/791 1006/3074/774 1005/3075/774 +f 1004/3073/772 996/3076/776 995/3077/776 +f 1007/3078/778 997/1843/790 1008/3079/792 +f 1000/425/770 994/3080/768 993/3081/768 +f 1005/1841/774 1007/3082/778 1008/1842/792 +f 1009/1850/779 1011/3083/793 1012/1851/793 +f 1013/1849/781 1015/3084/782 1016/431/782 +f 1018/430/783 1020/3085/788 1017/3086/783 +f 1021/3087/794 1017/3086/783 1022/3088/794 +f 1011/3089/793 1019/429/788 1012/3090/793 +f 1023/3091/789 1013/1849/781 1024/3092/789 +f 1009/3093/779 1015/3084/782 1010/3094/779 +f 1022/3095/794 1024/1848/789 1021/1847/794 +f 1030/3096/768 1032/1856/776 1029/1855/768 +f 1033/1854/769 1035/3097/770 1036/434/770 +f 1038/433/791 1040/3098/772 1037/3099/773 +f 1041/3100/774 1037/3099/773 1042/3101/774 +f 1040/3098/772 1032/3102/776 1031/3103/776 +f 1043/3104/778 1033/1854/769 1044/3105/795 +f 1036/434/770 1030/3106/768 1029/3107/768 +f 1042/3108/774 1044/1853/795 1041/1852/774 +f 1046/3109/796 1048/1862/780 1045/1861/797 +f 1049/1860/798 1051/3110/799 1052/440/799 +f 1054/439/783 1056/3111/788 1053/3112/783 +f 1057/3113/787 1053/3112/783 1058/3114/787 +f 1047/3115/780 1055/438/788 1048/3116/780 +f 1050/3117/798 1060/3118/789 1059/3119/789 +f 1045/3120/797 1051/3110/799 1046/3121/796 +f 1057/1858/787 1059/3122/789 1060/1859/789 +f 1066/1866/800 1068/3123/801 1065/1867/801 +f 1070/1865/802 1072/3124/803 1069/441/804 +f 1073/3125/805 1075/1864/806 1076/443/805 +f 1077/3126/807 1073/3125/805 1076/443/805 +f 1067/3127/800 1075/1864/806 1074/3128/806 +f 1080/3129/808 1072/3124/803 1079/3130/808 +f 1065/3131/801 1071/3132/809 1070/1865/802 +f 1080/442/808 1078/3133/807 1077/1863/807 +f 1082/1872/780 1084/3134/779 1081/1873/779 +f 1086/1871/782 1088/3135/781 1085/447/781 +f 1090/3136/788 1092/449/783 1089/3137/783 +f 1094/3138/794 1092/449/783 1093/3139/794 +f 1082/3140/780 1090/3136/788 1083/3141/780 +f 1096/3142/789 1088/3135/781 1095/3143/789 +f 1081/3144/779 1087/3145/782 1086/1871/782 +f 1096/448/789 1094/3146/794 1093/1869/794 +f 1102/1877/800 1104/3147/801 1101/1878/801 +f 1105/450/803 1107/3148/809 1108/3149/803 +f 1110/3150/810 1112/452/811 1109/3151/805 +f 1113/3152/807 1109/3151/805 1112/452/811 +f 1102/3153/800 1110/3150/810 1103/3154/800 +f 1116/3155/808 1108/3149/803 1115/3156/808 +f 1101/3157/801 1107/3148/809 1106/1876/809 +f 1116/451/808 1114/3158/807 1113/1874/807 +f 1117/1884/796 1119/3159/793 1120/3160/797 +f 1122/1882/799 1124/3161/781 1121/456/781 +f 1125/3162/783 1127/1881/788 1128/458/783 +f 1129/3163/794 1125/3162/783 1128/458/783 +f 1118/3164/780 1126/3165/788 1119/3166/793 +f 1131/3167/789 1121/456/781 1124/3161/781 +f 1120/3168/797 1122/1882/799 1117/3169/796 +f 1132/457/789 1130/3170/794 1129/1880/794 +f 1138/1888/800 1140/3171/801 1137/1889/801 +f 1141/459/803 1143/3172/809 1144/3173/803 +f 1146/3174/806 1148/461/805 1145/3175/805 +f 1149/3176/807 1145/3175/805 1148/461/805 +f 1138/3177/800 1146/3174/806 1139/3178/800 +f 1152/3179/808 1144/3173/803 1151/3180/808 +f 1137/3181/801 1143/3172/809 1142/1887/809 +f 1152/460/808 1150/3182/807 1149/1885/807 +f 1154/1894/780 1156/3183/779 1153/1895/779 +f 1157/465/781 1159/3184/782 1160/3185/781 +f 1162/3186/788 1164/467/812 1161/3187/813 +f 1166/3188/787 1164/467/812 1165/3189/787 +f 1154/3190/780 1162/3186/788 1155/3191/780 +f 1167/3192/814 1157/465/781 1160/3185/781 +f 1156/3193/779 1158/1893/782 1153/3194/779 +f 1168/466/814 1166/3195/787 1165/1891/787 +f 1196/3196/815 1198/1907/816 1195/1906/815 +f 1199/1905/817 1201/3197/818 1202/507/819 +f 1204/506/820 1206/3198/821 1203/3199/820 +f 1207/3200/822 1203/3199/820 1208/3201/822 +f 1197/3202/816 1205/505/821 1198/3203/816 +f 1200/3204/817 1210/3205/823 1209/3206/823 +f 1195/3207/815 1201/3197/818 1196/3208/815 +f 1208/3209/822 1210/1904/823 1207/1903/822 +f 1212/3210/824 1214/1913/825 1211/1912/824 +f 1215/1911/826 1217/3211/827 1218/513/827 +f 1220/512/828 1222/3212/829 1219/3213/830 +f 1220/512/828 1224/3214/831 1223/3215/831 +f 1213/3216/832 1221/511/833 1214/3217/825 +f 1216/3218/826 1226/3219/834 1225/3220/834 +f 1218/513/827 1212/3221/824 1211/3222/824 +f 1223/1909/831 1225/3223/834 1226/1910/834 +f 1232/3224/815 1234/1918/816 1231/1917/815 +f 1235/1916/817 1237/3225/835 1238/516/818 +f 1239/3226/820 1241/514/821 1242/3227/821 +f 1240/515/820 1244/3228/822 1243/3229/822 +f 1242/3227/821 1234/3230/816 1233/3231/816 +f 1245/3232/823 1235/1916/817 1246/3233/823 +f 1231/3234/815 1237/3225/835 1232/3235/815 +f 1244/3236/822 1246/1915/823 1243/1914/822 +f 1247/1923/824 1249/3237/836 1250/1924/836 +f 1251/1922/826 1253/3238/837 1254/522/837 +f 1256/521/828 1258/3239/833 1255/3240/828 +f 1256/521/828 1260/3241/831 1259/3242/831 +f 1258/3239/833 1250/3243/836 1249/3244/836 +f 1261/3245/834 1251/1922/826 1262/3246/834 +f 1247/3247/824 1253/3238/837 1248/3248/824 +f 1260/3249/831 1262/1921/834 1259/1920/831 +f 1268/3250/815 1270/1929/816 1267/1928/815 +f 1271/1927/817 1273/3251/835 1274/525/835 +f 1276/524/820 1278/3252/821 1275/3253/820 +f 1279/3254/822 1275/3253/820 1280/3255/822 +f 1278/3252/821 1270/3256/816 1269/3257/816 +f 1281/3258/823 1271/1927/817 1282/3259/823 +f 1267/3260/815 1273/3251/835 1268/3261/815 +f 1280/3262/822 1282/1926/823 1279/1925/822 +f 1284/3263/824 1286/1935/836 1283/1934/824 +f 1287/1933/826 1289/3264/837 1290/531/837 +f 1292/530/828 1294/3265/833 1291/3266/828 +f 1295/3267/831 1291/3266/828 1296/3268/831 +f 1285/3269/836 1293/529/833 1286/3270/836 +f 1288/3271/826 1298/3272/838 1297/3273/839 +f 1283/3274/824 1289/3264/837 1284/3275/824 +f 1295/1931/831 1297/3276/839 1298/1932/838 +f 1304/1939/840 1306/3277/841 1303/1940/841 +f 1308/1938/842 1310/3278/843 1307/532/843 +f 1311/3279/844 1313/1937/845 1314/534/846 +f 1315/3280/847 1311/3279/844 1314/534/846 +f 1305/3281/840 1313/1937/845 1312/3282/845 +f 1318/3283/848 1310/3278/843 1317/3284/848 +f 1303/3285/841 1309/3286/849 1308/1938/842 +f 1318/533/848 1316/3287/847 1315/1936/847 +f 1320/1945/832 1322/3288/824 1319/1946/824 +f 1324/1944/827 1326/3289/826 1323/538/826 +f 1327/3290/850 1329/1943/851 1330/540/852 +f 1332/3291/853 1330/540/852 1331/3292/831 +f 1320/3293/832 1328/3294/854 1321/3295/836 +f 1334/3296/834 1326/3289/826 1333/3297/834 +f 1319/3298/824 1325/3299/827 1324/1944/827 +f 1334/539/834 1332/3300/853 1331/1942/831 +f 1340/1950/840 1342/3301/855 1339/1951/841 +f 1343/541/843 1345/3302/849 1346/3303/856 +f 1348/3304/857 1350/543/846 1347/3305/858 +f 1351/3306/847 1347/3305/858 1350/543/846 +f 1340/3307/840 1348/3304/857 1341/3308/840 +f 1354/3309/848 1346/3303/856 1353/3310/859 +f 1339/3311/841 1345/3302/849 1344/1949/849 +f 1354/542/848 1352/3312/847 1351/1947/847 +f 1355/1957/824 1357/3313/836 1358/3314/824 +f 1360/1955/827 1362/3315/826 1359/547/826 +f 1363/3316/828 1365/1954/833 1366/549/828 +f 1367/3317/853 1363/3316/828 1366/549/828 +f 1356/3318/836 1364/3319/833 1357/3320/836 +f 1370/3321/839 1362/3315/826 1369/3322/839 +f 1358/3323/824 1360/1955/827 1355/3324/824 +f 1370/548/839 1368/3325/853 1367/1953/853 +f 1376/1961/840 1378/3326/841 1375/1962/841 +f 1379/550/843 1381/3327/849 1382/3328/856 +f 1384/3329/845 1386/552/860 1383/3330/861 +f 1387/3331/862 1383/3330/861 1386/552/860 +f 1376/3332/840 1384/3329/845 1377/3333/840 +f 1390/3334/848 1382/3328/856 1389/3335/848 +f 1378/3336/841 1380/1960/849 1375/3337/841 +f 1390/551/848 1388/3338/862 1387/1958/862 +f 1392/1967/836 1394/3339/824 1391/1968/824 +f 1396/1966/827 1398/3340/826 1395/556/826 +f 1399/3341/828 1401/1965/833 1402/558/828 +f 1403/3342/831 1399/3341/828 1402/558/828 +f 1393/3343/836 1401/1965/833 1400/3344/833 +f 1405/3345/834 1395/556/826 1398/3340/826 +f 1394/3346/824 1396/1966/827 1391/3347/824 +f 1406/557/834 1404/3348/831 1403/1964/831 +f 1505/3349/110 1507/3350/863 1504/3351/110 +f 1508/3352/1 1498/678/864 1497/1997/1 +f 1511/687/865 1513/2001/3 1510/2009/3 +f 1514/3353/110 1499/3354/866 1515/3355/866 +f 1517/683/864 1519/3356/866 1516/3357/864 +f 1502/680/865 1521/3358/867 1520/684/865 +f 1512/681/865 1507/3350/863 1506/3359/868 +f 1498/678/864 1515/3355/866 1499/3354/866 +f 1505/3360/110 1519/3356/866 1518/3361/866 +f 1502/680/865 1523/2007/3 1503/1996/3 +f 1522/2000/1 1516/3357/864 1524/3362/1 +f 1500/3363/110 1521/3358/867 1501/3364/868 +f 1597/3365/130 1599/3366/869 1596/3367/130 +f 1600/3368/1 1590/773/870 1589/2032/1 +f 1602/2044/3 1604/776/871 1605/2036/3 +f 1606/3369/130 1591/3370/872 1607/3371/873 +f 1609/778/870 1611/3372/873 1608/3373/870 +f 1594/775/874 1613/3374/869 1612/779/875 +f 1604/776/871 1599/3366/869 1598/3375/869 +f 1590/773/870 1607/3371/873 1591/3370/872 +f 1597/3376/130 1611/3372/873 1610/3377/873 +f 1594/775/874 1615/2042/3 1595/2031/3 +f 1609/778/870 1616/3378/1 1614/2035/1 +f 1592/3379/130 1613/3374/869 1593/3380/876 +f 1689/3381/28 1691/3382/877 1688/3383/28 +f 1692/3384/1 1682/867/878 1681/2068/1 +f 1695/876/879 1697/2072/3 1694/2080/3 +f 1698/3385/28 1683/3386/880 1699/3387/880 +f 1701/872/878 1703/3388/881 1700/3389/878 +f 1686/869/879 1705/3390/877 1704/873/882 +f 1696/870/883 1691/3382/877 1690/3391/877 +f 1682/867/878 1699/3387/880 1683/3386/880 +f 1689/3392/28 1703/3388/881 1702/3393/881 +f 1686/869/879 1707/2078/3 1687/2067/3 +f 1706/2071/1 1700/3389/878 1708/3394/1 +f 1684/3395/28 1705/3390/877 1685/3396/877 +f 1780/3397/105 1782/3398/884 1783/3399/884 +f 1784/3400/1 1774/962/885 1773/2103/1 +f 1787/971/886 1789/2107/3 1786/2115/3 +f 1790/3401/105 1775/3402/887 1791/3403/887 +f 1793/967/885 1795/3404/887 1792/3405/885 +f 1778/964/886 1797/3406/888 1796/968/886 +f 1788/965/886 1783/3399/884 1782/3398/884 +f 1774/962/885 1791/3403/887 1775/3402/887 +f 1781/3407/105 1795/3404/887 1794/3408/887 +f 1778/964/886 1799/2113/3 1779/2102/3 +f 1798/2106/1 1792/3405/885 1800/3409/1 +f 1776/3410/105 1797/3406/888 1777/3411/884 +f 1873/3412/125 1875/3413/889 1872/3414/125 +f 1876/3415/1 1866/1056/890 1865/2139/1 +f 1879/1065/891 1881/2143/3 1878/2151/3 +f 1882/3416/125 1867/3417/892 1883/3418/892 +f 1885/1061/890 1887/3419/893 1884/3420/894 +f 1870/1058/895 1889/3421/889 1888/1062/891 +f 1880/1059/891 1875/3413/889 1874/3422/889 +f 1866/1056/890 1883/3418/892 1867/3417/892 +f 1873/3423/125 1887/3419/893 1886/3424/893 +f 1870/1058/895 1891/2149/3 1871/2138/3 +f 1890/2142/1 1884/3420/894 1892/3425/1 +f 1868/3426/125 1889/3421/889 1869/3427/889 +f 1965/3428/143 1967/3429/896 1964/3430/143 +f 1968/3431/1 1958/1151/897 1957/2174/1 +f 1971/1160/898 1973/2178/3 1970/2186/3 +f 1974/3432/143 1959/3433/899 1975/3434/900 +f 1977/1156/901 1979/3435/899 1976/3436/901 +f 1962/1153/898 1981/3437/896 1980/1157/902 +f 1972/1154/898 1967/3429/896 1966/3438/896 +f 1958/1151/897 1975/3434/900 1959/3433/899 +f 1965/3439/143 1979/3435/899 1978/3440/899 +f 1962/1153/898 1983/2184/3 1963/2173/3 +f 1982/2177/1 1976/3436/901 1984/3441/1 +f 1960/3442/143 1981/3437/896 1961/3443/896 +f 2057/3444/160 2059/3445/903 2056/3446/160 +f 2060/3447/1 2050/1245/904 2049/2210/1 +f 2063/1254/905 2065/2214/3 2062/2222/3 +f 2066/3448/160 2051/3449/906 2067/3450/906 +f 2069/1250/904 2071/3451/906 2068/3452/904 +f 2054/1247/905 2073/3453/907 2072/1251/905 +f 2064/1248/905 2059/3445/903 2058/3454/903 +f 2050/1245/904 2067/3450/906 2051/3449/906 +f 2057/3455/160 2071/3451/906 2070/3456/906 +f 2054/1247/905 2075/2220/3 2055/2209/3 +f 2074/2213/1 2068/3452/904 2076/3457/1 +f 2052/3458/160 2073/3453/907 2053/3459/903 +f 2149/3460/178 2151/3461/908 2148/3462/178 +f 2152/3463/1 2142/1339/909 2141/2246/1 +f 2155/1348/910 2157/2250/3 2154/2258/3 +f 2158/3464/178 2143/3465/911 2159/3466/911 +f 2161/1344/909 2163/3467/912 2160/3468/909 +f 2146/1341/910 2165/3469/908 2164/1345/913 +f 2156/1342/914 2151/3461/908 2150/3470/915 +f 2142/1339/909 2159/3466/911 2143/3465/911 +f 2149/3471/178 2163/3467/912 2162/3472/912 +f 2146/1341/910 2167/2256/3 2147/2245/3 +f 2166/2249/1 2160/3468/909 2168/3473/1 +f 2144/3474/178 2165/3469/908 2145/3475/916 +f 2241/3476/27 2243/3477/917 2240/3478/27 +f 2244/3479/1 2234/1433/918 2233/2282/1 +f 2247/1442/919 2249/2286/3 2246/2294/3 +f 2250/3480/27 2235/3481/920 2251/3482/920 +f 2253/1438/918 2255/3483/921 2252/3484/918 +f 2238/1435/922 2257/3485/917 2256/1439/923 +f 2248/1436/924 2243/3477/917 2242/3486/917 +f 2234/1433/918 2251/3482/920 2235/3481/920 +f 2241/3487/27 2255/3483/921 2254/3488/921 +f 2238/1435/922 2259/2292/3 2239/2281/3 +f 2258/2285/1 2252/3484/918 2260/3489/1 +f 2236/3490/27 2257/3485/917 2237/3491/917 +f 2333/3492/104 2335/3493/925 2332/3494/104 +f 2336/3495/1 2326/1529/926 2325/2316/1 +f 2339/1538/927 2341/2320/3 2338/2328/3 +f 2342/3496/104 2327/3497/928 2343/3498/928 +f 2345/1534/926 2347/3499/928 2344/3500/926 +f 2330/1531/927 2349/3501/925 2348/1535/927 +f 2340/1532/927 2335/3493/925 2334/3502/925 +f 2326/1529/926 2343/3498/928 2327/3497/928 +f 2333/3503/104 2347/3499/928 2346/3504/928 +f 2330/1531/927 2351/2326/3 2331/2315/3 +f 2350/2319/1 2344/3500/926 2352/3505/1 +f 2328/3506/104 2349/3501/925 2329/3507/925 +f 2425/3508/124 2427/3509/929 2424/3510/124 +f 2428/3511/1 2418/1625/930 2417/2350/1 +f 2431/1634/931 2433/2354/3 2430/2362/3 +f 2434/3512/124 2419/3513/932 2435/3514/932 +f 2437/1630/930 2439/3515/933 2436/3516/934 +f 2422/1627/931 2441/3517/929 2440/1631/935 +f 2432/1628/935 2427/3509/929 2426/3518/929 +f 2418/1625/930 2435/3514/932 2419/3513/932 +f 2425/3519/124 2439/3515/933 2438/3520/933 +f 2422/1627/931 2443/2360/3 2423/2349/3 +f 2442/2353/1 2436/3516/934 2444/3521/1 +f 2420/3522/124 2441/3517/929 2421/3523/929 +f 2/2365/334 3/2400/366 4/2366/335 +f 4/2366/335 3/2400/366 5/2368/337 +f 6/2369/338 5/2368/337 7/2370/339 +f 8/2371/340 7/2370/339 9/2372/341 +f 17/3524/358 11/3525/351 16/2374/343 +f 11/3525/351 12/3526/353 16/2374/343 +f 12/3526/353 13/2375/344 16/2374/343 +f 13/2375/344 14/3527/355 15/2376/345 +f 19/2377/346 2/2365/334 1/2367/336 +f 20/2379/348 18/2378/347 21/2380/349 +f 21/2380/349 12/2385/353 11/2382/351 +f 18/2378/347 1/2367/336 23/2383/352 +f 21/2380/349 23/2383/352 13/2384/344 +f 1/2367/336 4/2366/335 24/2386/354 +f 23/2383/352 24/2386/354 14/2387/355 +f 6/2369/338 25/2388/356 24/2386/354 +f 25/2388/356 15/2390/345 14/2387/355 +f 8/2371/340 26/2389/357 25/2388/356 +f 26/2389/357 16/2392/343 15/2390/345 +f 10/2373/342 27/3528/936 26/2389/357 +f 26/2389/357 27/3528/936 17/2391/358 +f 28/2393/359 19/2377/346 18/2378/347 +f 28/2393/359 29/2395/361 30/2394/360 +f 29/2395/361 31/3529/937 32/2396/362 +f 19/2377/346 30/2394/360 33/2397/363 +f 30/2394/360 32/2396/362 34/2398/364 +f 2/2365/334 33/2397/363 35/2399/365 +f 33/2397/363 34/2398/364 36/2401/367 +f 5/2368/337 3/2400/366 35/2399/365 +f 37/2402/368 35/2399/365 36/2401/367 +f 7/2370/339 5/2368/337 37/2402/368 +f 39/2404/370 37/2402/368 38/2403/369 +f 9/2372/341 7/2370/339 39/2404/370 +f 41/2406/372 39/2404/370 40/2405/371 +f 34/2410/364 32/3530/362 40/3531/371 +f 32/3530/362 31/3532/937 40/3531/371 +f 31/3532/937 42/3533/373 40/3531/371 +f 40/3531/371 38/2408/369 34/2410/364 +f 72/2411/374 73/2455/417 74/2412/375 +f 74/2412/375 73/2455/417 75/2414/377 +f 75/2414/377 77/2417/380 78/2416/379 +f 77/2417/380 79/2419/382 80/2418/381 +f 79/2419/382 81/2475/384 82/2420/383 +f 81/2421/384 83/2424/386 84/2422/385 +f 83/2424/386 85/2426/388 86/2425/387 +f 85/2426/388 87/2453/415 88/2427/389 +f 88/2427/389 87/2453/415 89/2428/390 +f 89/2428/390 91/2462/424 92/2430/392 +f 92/2430/392 91/2462/424 93/2431/393 +f 95/2433/395 96/2456/418 97/2434/396 +f 97/2434/396 99/2437/399 100/2436/398 +f 99/2437/399 101/2439/401 102/2438/400 +f 101/2439/401 103/2464/426 104/2440/402 +f 104/2440/402 103/2464/426 105/2441/403 +f 105/2441/403 107/2458/420 108/2443/405 +f 77/2417/380 75/2414/377 109/2444/406 +f 112/2446/408 72/2411/374 71/2413/376 +f 78/2416/379 80/2418/381 113/2448/410 +f 116/2450/412 117/3534/456 118/2451/413 +f 85/2426/388 116/2450/412 115/2452/414 +f 72/2411/374 119/2478/436 120/2454/416 +f 96/2456/418 121/2472/433 122/2457/419 +f 107/2458/420 105/2441/403 123/2459/421 +f 81/2421/384 125/2502/434 126/2461/423 +f 91/2462/424 127/2476/435 128/2463/425 +f 103/2464/426 101/2439/401 129/2465/427 +f 77/2417/380 110/3535/407 131/2467/429 +f 87/2453/415 115/2452/414 132/2468/430 +f 97/2434/396 122/2504/419 133/2469/431 +f 107/2458/420 124/2460/422 134/2470/432 +f 73/2455/417 120/2485/416 109/2444/406 +f 85/2426/388 83/2424/386 126/2461/423 +f 93/2431/393 128/2497/425 121/2472/433 +f 105/2441/403 103/2464/426 130/2466/428 +f 79/2419/382 131/2467/429 125/2474/434 +f 89/2428/390 132/2488/430 127/2476/435 +f 101/2439/401 99/2437/399 133/2469/431 +f 112/2446/408 134/2499/432 119/2478/436 +f 135/2479/437 136/2495/449 137/2480/438 +f 119/2478/436 139/2500/452 140/2482/440 +f 129/2465/427 141/3536/457 142/2483/441 +f 115/2452/414 118/2451/413 143/2484/442 +f 120/2485/416 140/2524/440 144/2486/443 +f 130/2466/428 142/2483/441 145/2487/444 +f 132/2488/430 143/2527/442 146/2489/445 +f 109/2444/406 144/2486/443 147/2490/446 +f 124/2460/422 123/2459/421 145/2491/444 +f 127/2476/435 146/2489/445 149/2493/448 +f 131/2467/429 110/3535/407 147/2494/446 +f 124/2460/422 148/2492/447 150/2496/450 +f 128/2497/425 149/3537/448 151/2498/451 +f 125/2474/434 131/2467/429 136/2495/449 +f 134/2499/432 150/2511/450 139/2500/452 +f 122/2457/419 121/2472/433 151/2498/451 +f 125/2502/434 135/2514/437 153/2503/454 +f 122/2504/419 152/3538/453 154/2505/455 +f 116/2471/412 126/2461/423 153/2503/454 +f 133/2469/431 154/2505/455 141/2507/457 +f 156/2508/458 157/2567/477 158/2509/459 +f 150/2511/450 159/3539/475 160/2512/461 +f 151/2498/451 161/2536/476 162/2513/462 +f 135/2514/437 138/3540/439 163/2515/463 +f 154/2505/455 152/3538/453 162/2516/462 +f 117/2506/456 153/2503/454 163/2515/463 +f 141/2507/457 154/2505/455 156/2508/458 +f 118/2451/413 117/3534/456 164/2518/464 +f 140/2482/440 139/2500/452 160/2512/461 +f 142/2483/441 141/3536/457 155/2521/460 +f 143/2484/442 118/2451/413 165/2519/465 +f 140/2524/440 166/3541/466 169/2525/469 +f 142/2483/441 167/2522/467 170/2526/470 +f 143/2527/442 168/3542/468 171/2528/471 +f 144/2486/443 169/2525/469 172/2529/472 +f 148/2492/447 145/2491/444 170/2530/470 +f 146/2489/445 171/2528/471 174/2532/474 +f 136/2495/449 147/2494/446 172/2533/472 +f 148/2492/447 173/2531/473 159/2534/475 +f 151/2498/451 149/3537/448 174/2535/474 +f 192/3543/485 175/3544/482 176/3545/494 +f 176/3545/494 177/3546/491 178/3547/488 +f 178/3547/488 179/3548/486 180/3549/483 +f 180/3549/483 158/3550/459 157/2537/477 +f 157/2537/477 181/3551/495 184/2538/478 +f 181/3551/495 182/3552/492 184/2538/478 +f 182/3552/492 183/3553/489 184/2538/478 +f 184/2538/478 185/3554/484 186/3555/481 +f 186/3555/481 187/3556/480 188/2539/479 +f 188/2539/479 189/3557/493 190/3558/490 +f 190/3558/490 191/3559/487 192/3543/485 +f 192/3543/485 176/3545/494 157/2537/477 +f 176/3545/494 178/3547/488 157/2537/477 +f 178/3547/488 180/3549/483 157/2537/477 +f 184/2538/478 186/3555/481 188/2539/479 +f 188/2539/479 190/3558/490 157/2537/477 +f 190/3558/490 192/3543/485 157/2537/477 +f 165/2519/465 164/2518/464 187/2540/480 +f 160/2512/461 176/2562/494 175/2542/482 +f 167/2522/467 155/2521/460 158/2543/459 +f 168/2523/468 165/2519/465 186/2541/481 +f 169/2525/469 166/3541/466 175/2546/482 +f 167/2522/467 180/2544/483 179/2548/486 +f 171/2528/471 168/3542/468 185/2549/484 +f 169/2525/469 192/2547/485 191/2551/487 +f 173/2531/473 170/2530/470 179/2552/486 +f 171/2528/471 184/2550/478 183/2554/489 +f 137/2480/438 172/2533/472 191/2555/487 +f 173/2531/473 178/2553/488 177/2557/491 +f 161/2536/476 174/2535/474 183/2558/489 +f 137/2480/438 190/2556/490 189/2560/493 +f 160/2512/461 159/3539/475 177/2561/491 +f 161/2536/476 182/2559/492 181/2563/495 +f 163/2515/463 138/3540/439 189/2564/493 +f 156/2508/458 162/2516/462 181/2566/495 +f 163/2515/463 188/2565/479 187/2568/480 +f 194/2569/496 195/71/68 196/66/497 +f 90/2429/391 197/2590/507 198/2571/499 +f 100/2436/398 193/2570/498 199/2572/500 +f 111/2447/409 200/2593/508 201/2573/501 +f 76/2415/378 202/2581/509 203/2574/502 +f 84/2422/385 86/2425/387 204/2575/503 +f 95/2433/395 206/2585/511 207/2577/505 +f 106/2442/404 208/3560/512 209/2578/506 +f 82/2420/383 210/3561/513 113/2448/410 +f 92/2430/392 211/2588/514 197/2579/507 +f 102/2438/400 194/2569/496 193/2570/498 +f 71/2413/376 212/2584/510 200/2580/508 +f 78/2416/379 114/2591/411 202/2581/509 +f 88/2427/389 198/2571/499 204/2582/503 +f 71/2413/376 74/2412/375 203/2583/502 +f 98/2435/397 199/3562/500 206/2585/511 +f 108/2443/405 201/2573/501 208/2586/512 +f 84/2422/385 205/2576/504 210/2587/513 +f 94/2432/394 207/2592/505 211/2588/514 +f 104/2440/402 209/2578/506 194/2589/496 +f 198/2571/499 217/73/517 218/75/515 +f 203/2583/502 219/1652/518 220/58/64 +f 194/2589/496 209/2578/506 213/36/516 +f 197/2590/507 221/80/520 217/73/517 +f 202/2581/509 222/42/521 219/82/518 +f 209/2578/506 208/3560/512 214/34/519 +f 197/2579/507 211/2588/514 223/37/61 +f 114/2591/411 224/40/522 222/42/521 +f 201/2573/501 225/43/523 214/45/519 +f 207/2592/505 226/1646/525 223/37/61 +f 113/2448/410 227/48/526 224/50/522 +f 200/2593/508 228/51/527 225/43/523 +f 207/2577/505 206/2585/511 229/62/524 +f 113/2448/410 210/3561/513 230/56/69 +f 200/2580/508 212/2584/510 220/58/64 +f 206/2585/511 199/3562/500 231/61/528 +f 205/2576/504 232/69/529 230/63/69 +f 193/2570/498 196/66/497 231/68/528 +f 204/2575/503 218/1650/515 232/69/529 +f 112/2446/408 111/2447/409 108/2443/405 +f 96/2456/418 95/2433/395 94/2432/394 +f 234/1647/520 235/3563/520 236/2594/517 +f 243/54/521 265/2599/521 264/2595/518 +f 242/57/497 244/1648/68 258/2596/68 +f 245/77/61 253/2606/61 235/2598/520 +f 246/1649/522 266/3564/522 265/2599/521 +f 247/64/516 259/2604/516 258/2600/68 +f 246/67/522 248/72/526 267/2601/526 +f 247/64/516 249/70/519 260/2603/519 +f 250/1651/69 268/3565/69 267/2601/526 +f 251/81/523 261/2608/523 260/2605/519 +f 252/76/525 254/3566/525 253/2606/61 +f 216/35/529 269/2610/529 268/2607/69 +f 238/1653/527 262/3567/527 261/2608/523 +f 240/41/524 255/2612/524 254/2609/525 +f 215/1644/515 270/3568/515 269/2610/529 +f 237/47/64 263/2614/64 262/2611/527 +f 239/1645/528 256/3569/528 255/2612/524 +f 215/44/515 233/52/517 236/2594/517 +f 241/46/518 264/3570/518 263/2614/64 +f 242/57/497 257/2597/497 256/2615/528 +f 272/2616/530 273/2622/534 274/2617/160 +f 276/2619/531 277/2625/536 278/2620/532 +f 272/2616/530 275/2621/533 278/2620/532 +f 274/2617/160 273/2622/534 279/2623/535 +f 277/2625/536 281/3571/552 282/2626/537 +f 273/2622/534 278/2620/532 282/2626/537 +f 279/2627/535 283/2633/540 284/2628/105 +f 282/2630/537 281/3572/552 285/2631/538 +f 279/2627/535 282/2630/537 286/2632/539 +f 284/2628/105 283/2633/540 287/2634/541 +f 286/2632/539 285/2631/538 289/2636/542 +f 286/2632/539 290/2637/543 287/2634/541 +f 287/2634/541 290/2637/543 291/2638/544 +f 287/2634/541 292/2639/545 293/2640/110 +f 290/2637/543 289/2636/542 294/2641/546 +f 291/2638/544 295/2645/549 296/2642/547 +f 292/2639/545 296/2642/547 297/2643/68 +f 291/2638/544 294/2641/546 298/2644/548 +f 296/2642/547 295/2645/549 299/2646/550 +f 281/2650/552 277/3573/536 276/3574/531 +f 276/3574/531 301/3575/938 281/2650/552 +f 301/3575/938 298/3576/548 281/2650/552 +f 298/3576/548 294/3577/546 281/2650/552 +f 294/3577/546 289/2648/542 281/2650/552 +f 296/2642/547 300/2647/551 302/2651/104 +f 298/2644/548 301/3578/938 299/2646/550 +f 300/2647/551 272/2616/530 271/2618/64 +f 299/2646/550 301/3578/938 276/2619/531 +f 299/2646/550 275/2621/533 272/2616/530 +f 304/2652/530 305/2658/534 306/2653/160 +f 308/2655/531 309/2660/536 310/2656/532 +f 304/2652/530 307/2657/533 310/2656/532 +f 305/2658/534 311/2662/535 312/2659/69 +f 309/2660/536 313/3579/552 314/2661/537 +f 310/2656/532 314/2661/537 311/2662/535 +f 311/2663/535 315/2669/540 316/2664/105 +f 313/2666/552 317/3580/538 318/2667/539 +f 314/2668/537 318/2667/539 315/2669/540 +f 316/2664/105 315/2669/540 319/2670/541 +f 318/2667/539 317/3580/538 321/2672/542 +f 315/2669/540 318/2667/539 322/2673/543 +f 322/2673/543 323/2676/544 324/2674/545 +f 320/2671/61 319/2670/541 324/2674/545 +f 321/2672/542 326/3581/546 323/2676/544 +f 323/2676/544 327/2680/549 328/2677/547 +f 324/2674/545 328/2677/547 329/2678/68 +f 323/2676/544 326/3581/546 330/2679/548 +f 328/2677/547 327/2680/549 331/2681/550 +f 313/2685/552 309/3582/536 308/3583/531 +f 308/3583/531 333/3584/938 313/2685/552 +f 333/3584/938 330/3585/548 313/2685/552 +f 330/3585/548 326/3586/546 313/2685/552 +f 326/3586/546 321/2683/542 313/2685/552 +f 328/2677/547 332/2682/551 334/2686/104 +f 330/2679/548 333/3587/938 331/2681/550 +f 334/2686/104 332/2682/551 304/2652/530 +f 331/2681/550 333/3587/938 308/2655/531 +f 332/2682/551 331/2681/550 307/2657/533 +f 364/131/553 365/135/554 366/2687/554 +f 365/135/554 367/140/555 368/2689/555 +f 368/2689/555 367/140/555 369/136/556 +f 369/136/556 371/127/557 372/2691/557 +f 372/2691/557 371/127/557 373/128/558 +f 373/128/558 375/124/559 376/2693/559 +f 376/2694/559 375/1681/559 377/122/560 +f 377/122/560 379/117/562 380/2696/562 +f 379/117/562 381/119/563 382/2697/563 +f 382/2697/563 381/119/563 383/138/564 +f 383/138/564 387/139/565 388/2699/565 +f 388/2699/565 387/139/565 364/131/553 +f 390/133/566 391/2704/566 392/2700/567 +f 393/120/568 405/2710/568 404/2701/569 +f 395/125/570 396/130/571 408/2702/571 +f 398/132/572 401/2711/572 391/2704/566 +f 389/134/567 392/2700/567 410/2705/573 +f 385/121/569 404/2701/569 403/2706/3 +f 394/126/575 395/125/570 407/2703/570 +f 397/129/1 399/137/574 410/2705/573 +f 386/118/3 403/2706/3 402/2709/576 +f 394/123/575 406/3588/575 405/2710/568 +f 396/130/571 397/129/1 409/2708/1 +f 400/141/576 402/2709/576 401/2711/572 +f 411/2712/577 412/2713/578 413/161/578 +f 412/2713/578 415/2714/579 416/162/579 +f 415/2714/579 417/2716/580 418/157/580 +f 419/2715/581 420/155/581 418/157/580 +f 419/2715/581 421/2718/582 422/152/582 +f 423/2717/583 424/153/583 422/152/582 +f 423/2719/583 425/2721/584 426/148/584 +f 427/2720/585 428/147/585 426/148/584 +f 427/2720/585 429/2722/586 430/145/586 +f 429/2722/586 431/2724/587 432/164/587 +f 435/2723/588 436/159/588 432/164/587 +f 435/2723/588 411/2712/577 414/160/577 +f 438/2725/589 439/3589/590 440/158/590 +f 434/146/591 455/2730/591 454/2726/592 +f 443/154/593 452/2731/593 451/2727/594 +f 440/158/590 439/3589/590 458/2728/595 +f 449/2729/596 438/2725/589 437/165/589 +f 433/1691/3 456/3590/3 455/2730/591 +f 442/151/597 453/3591/597 452/2731/593 +f 450/2732/1 449/2729/596 447/1695/596 +f 457/2733/598 456/3590/3 433/1691/3 +f 441/1692/592 454/2726/592 453/2734/597 +f 451/2727/594 450/2732/1 445/156/1 +f 446/1694/595 458/2728/595 457/2733/598 +f 531/2735/33 532/2745/599 533/2736/599 +f 534/2738/1 535/3592/600 524/252/600 +f 537/261/601 538/255/606 539/1729/3 +f 540/2739/33 526/3593/33 525/2740/602 +f 543/257/600 544/2747/604 545/2742/604 +f 528/254/601 527/2750/599 547/2744/599 +f 538/255/606 537/261/601 533/2736/599 +f 524/252/600 535/3592/600 541/2741/603 +f 531/2746/33 530/3594/33 545/2742/604 +f 528/254/601 546/258/606 549/1735/3 +f 548/1728/1 543/257/600 542/2743/605 +f 526/2749/33 540/3595/33 547/2744/599 +f 578/2751/607 579/3596/614 580/1757/608 +f 582/2752/609 583/2762/616 584/305/610 +f 585/2753/611 586/304/611 587/303/612 +f 589/2755/613 586/304/611 585/2753/611 +f 579/2757/614 588/2754/612 587/303/612 +f 582/2752/609 581/1755/609 592/2759/615 +f 577/2761/607 584/305/610 583/2762/616 +f 590/2764/613 591/3597/615 592/1754/615 +f 594/2765/617 595/3598/618 596/1763/618 +f 598/2766/619 599/3599/620 600/311/620 +f 602/310/621 603/309/624 604/2767/622 +f 602/310/621 601/2768/621 606/2769/623 +f 595/2771/618 604/2767/622 603/309/624 +f 598/2766/619 597/1761/619 608/2773/625 +f 600/311/620 599/3599/620 594/2775/617 +f 605/1759/623 606/3600/623 607/2777/625 +f 614/2778/607 615/3601/614 616/1768/614 +f 618/2779/609 619/2789/616 620/314/616 +f 621/2780/611 622/313/611 623/312/612 +f 622/313/611 621/2780/611 626/2782/613 +f 624/2781/612 623/312/612 616/2784/614 +f 627/2786/615 618/2779/609 617/1766/609 +f 613/2788/607 620/314/616 619/2789/616 +f 626/2791/613 627/3602/615 628/1765/615 +f 629/1773/617 630/3603/617 631/2792/618 +f 634/2793/619 635/2803/620 636/320/620 +f 638/319/621 639/318/624 640/2794/624 +f 638/319/621 637/2795/621 642/2796/623 +f 640/2794/624 639/318/624 632/2798/618 +f 634/2793/619 633/1772/619 644/2800/625 +f 629/2802/617 636/320/620 635/2803/620 +f 642/2805/623 643/3604/625 644/1771/625 +f 650/2806/607 651/3605/614 652/1779/614 +f 653/1777/609 654/3606/609 655/2807/616 +f 658/322/611 659/321/612 660/2808/612 +f 661/2810/613 658/322/611 657/2809/611 +f 660/2808/612 659/321/612 652/2812/614 +f 663/2814/615 654/3606/609 653/1777/609 +f 649/2816/607 656/323/616 655/2807/616 +f 662/2818/613 663/3607/615 664/1776/615 +f 666/2819/617 667/3608/618 668/1785/618 +f 670/2820/619 671/2830/628 672/329/626 +f 674/328/621 675/327/624 676/2821/624 +f 677/2823/623 674/328/621 673/2822/621 +f 676/2821/624 675/327/624 668/2825/618 +f 670/2820/619 669/1783/627 680/2827/625 +f 665/2829/617 672/329/626 671/2830/628 +f 677/1781/623 678/3609/623 679/2832/625 +f 686/1789/629 687/3610/629 688/2833/630 +f 690/1788/631 691/2842/641 692/2834/632 +f 693/2835/634 694/2838/638 695/1787/635 +f 697/2836/637 698/3611/642 693/2835/634 +f 687/2837/629 686/3612/629 695/1787/635 +f 700/2839/639 689/330/633 692/2834/632 +f 685/2841/630 688/3613/630 691/2842/641 +f 700/331/639 699/3614/640 698/2843/642 +f 702/1795/618 703/3615/618 704/2844/617 +f 706/1794/620 707/3616/620 708/2845/619 +f 710/2846/624 711/1793/939 712/338/621 +f 714/2848/623 709/2847/621 712/338/621 +f 702/2850/618 711/1793/939 710/2846/624 +f 716/2852/625 705/336/619 708/2845/619 +f 704/2854/617 707/3616/620 706/1794/620 +f 716/337/625 715/3617/625 714/2856/623 +f 722/1800/629 723/3618/629 724/2857/630 +f 725/339/632 726/1799/641 727/2858/641 +f 730/2860/635 731/1798/940 732/341/636 +f 733/2862/642 734/3619/644 729/2861/634 +f 722/2863/629 731/1798/940 730/2860/635 +f 736/2865/640 725/339/632 728/2859/632 +f 721/2867/630 724/3620/630 727/2858/641 +f 736/340/640 735/3621/643 734/2868/644 +f 737/1807/617 738/1806/618 739/2869/618 +f 742/1805/620 743/3622/626 744/2871/619 +f 745/2872/621 746/2875/624 747/1804/624 +f 749/2873/623 750/3623/623 745/2872/621 +f 738/2874/618 747/1804/624 746/2875/624 +f 751/2877/625 752/3624/625 741/345/619 +f 740/2878/617 743/3622/626 742/1805/620 +f 752/346/625 751/3625/625 750/2880/623 +f 758/1811/629 759/3626/629 760/2881/630 +f 761/348/632 762/1810/641 763/2882/641 +f 766/2884/635 767/1809/635 768/350/634 +f 769/2886/637 770/3627/637 765/2885/634 +f 758/2887/629 767/1809/635 766/2884/635 +f 772/2889/639 761/348/632 764/2883/632 +f 757/2891/630 760/3628/630 763/2882/641 +f 772/349/639 771/3629/639 770/2892/637 +f 774/1817/618 775/3630/618 776/2893/617 +f 778/1816/620 779/3631/620 780/2894/619 +f 782/2895/624 783/1815/624 784/356/645 +f 786/2897/623 781/2896/645 784/356/645 +f 774/2899/618 783/1815/624 782/2895/624 +f 787/2901/625 788/3632/625 777/354/619 +f 776/2902/617 779/3631/620 778/1816/620 +f 788/355/625 787/3633/625 786/2904/623 +f 816/2905/646 817/2940/678 818/2906/647 +f 818/2906/647 817/2940/678 819/2908/649 +f 820/2909/650 819/2908/649 821/2910/651 +f 822/2911/652 821/2910/651 823/2912/653 +f 831/2915/656 825/3634/663 826/2916/657 +f 826/2916/657 827/3635/665 829/3636/670 +f 827/3635/665 828/3637/667 829/3636/670 +f 829/3636/670 830/2914/655 826/2916/657 +f 833/2917/658 816/2905/646 815/2907/648 +f 834/2919/660 832/2918/659 835/2920/661 +f 835/2920/661 826/2925/657 825/2922/663 +f 832/2918/659 815/2907/648 837/2923/664 +f 835/2920/661 837/2923/664 827/2924/665 +f 815/2907/648 818/2906/647 838/2926/666 +f 837/2923/664 838/2926/666 828/2927/667 +f 820/2909/650 839/2928/668 838/2926/666 +f 839/2928/668 829/2930/670 828/2927/667 +f 822/2911/652 840/2929/669 839/2928/668 +f 840/2929/669 830/2932/655 829/2930/670 +f 824/2913/654 841/3638/941 840/2929/669 +f 840/2929/669 841/3638/941 831/2931/656 +f 842/2933/671 833/2917/658 832/2918/659 +f 842/2933/671 843/2935/673 844/2934/672 +f 843/2935/673 845/3639/942 846/2936/674 +f 833/2917/658 844/2934/672 847/2937/675 +f 844/2934/672 846/2936/674 848/2938/676 +f 816/2905/646 847/2937/675 849/2939/677 +f 847/2937/675 848/2938/676 850/2941/679 +f 819/2908/649 817/2940/678 849/2939/677 +f 851/2942/680 849/2939/677 850/2941/679 +f 821/2910/651 819/2908/649 851/2942/680 +f 853/2944/682 851/2942/680 852/2943/681 +f 823/2912/653 821/2910/651 853/2944/682 +f 855/2946/684 853/2944/682 854/2945/683 +f 848/2950/676 846/3640/674 854/3641/683 +f 846/3640/674 845/3642/942 854/3641/683 +f 845/3642/942 856/3643/685 854/3641/683 +f 854/3641/683 852/2948/681 848/2950/676 +f 858/2951/686 859/2986/718 860/2952/687 +f 860/2952/687 859/2986/718 861/2954/689 +f 862/2955/690 861/2954/689 863/2956/691 +f 864/2957/692 863/2956/691 865/2958/693 +f 873/3644/710 867/3645/703 872/2960/695 +f 867/3645/703 868/3646/705 872/2960/695 +f 868/3646/705 869/2961/696 872/2960/695 +f 869/2961/696 870/3647/707 871/2962/697 +f 875/2963/698 858/2951/686 857/2953/688 +f 876/2965/700 874/2964/699 877/2966/701 +f 877/2966/701 868/2971/705 867/2968/703 +f 874/2964/699 857/2953/688 879/2969/704 +f 877/2966/701 879/2969/704 869/2970/696 +f 857/2953/688 860/2952/687 880/2972/706 +f 879/2969/704 880/2972/706 870/2973/707 +f 862/2955/690 881/2974/708 880/2972/706 +f 881/2974/708 871/2976/697 870/2973/707 +f 864/2957/692 882/2975/709 881/2974/708 +f 882/2975/709 872/2978/695 871/2976/697 +f 866/2959/694 883/3648/943 882/2975/709 +f 882/2975/709 883/3648/943 873/2977/710 +f 884/2979/711 875/2963/698 874/2964/699 +f 884/2979/711 885/2981/713 886/2980/712 +f 885/2981/713 887/3649/944 888/2982/714 +f 875/2963/698 886/2980/712 889/2983/715 +f 886/2980/712 888/2982/714 890/2984/716 +f 858/2951/686 889/2983/715 891/2985/717 +f 889/2983/715 890/2984/716 892/2987/719 +f 861/2954/689 859/2986/718 891/2985/717 +f 893/2988/720 891/2985/717 892/2987/719 +f 863/2956/691 861/2954/689 893/2988/720 +f 895/2990/722 893/2988/720 894/2989/721 +f 865/2958/693 863/2956/691 895/2990/722 +f 897/2992/724 895/2990/722 896/2991/723 +f 890/2996/716 888/3650/714 896/3651/723 +f 888/3650/714 887/3652/944 896/3651/723 +f 887/3652/944 898/3653/725 896/3651/723 +f 896/3651/723 894/2994/721 890/2996/716 +f 900/2997/726 901/3032/758 902/2998/727 +f 902/2998/727 901/3032/758 903/3000/729 +f 904/3001/730 903/3000/729 905/3002/731 +f 906/3003/732 905/3002/731 907/3004/733 +f 915/3007/736 909/3654/743 910/3008/737 +f 910/3008/737 911/3655/745 913/3656/750 +f 911/3655/745 912/3657/747 913/3656/750 +f 913/3656/750 914/3006/735 910/3008/737 +f 917/3009/738 900/2997/726 899/2999/728 +f 918/3011/740 916/3010/739 919/3012/741 +f 919/3012/741 910/3017/737 909/3014/743 +f 916/3010/739 899/2999/728 921/3015/744 +f 919/3012/741 921/3015/744 911/3016/745 +f 899/2999/728 902/2998/727 922/3018/746 +f 921/3015/744 922/3018/746 912/3019/747 +f 904/3001/730 923/3020/748 922/3018/746 +f 923/3020/748 913/3022/750 912/3019/747 +f 906/3003/732 924/3021/749 923/3020/748 +f 924/3021/749 914/3024/735 913/3022/750 +f 908/3005/734 925/3658/945 924/3021/749 +f 924/3021/749 925/3658/945 915/3023/736 +f 926/3025/751 917/3009/738 916/3010/739 +f 926/3025/751 927/3027/753 928/3026/752 +f 927/3027/753 929/3659/946 930/3028/754 +f 917/3009/738 928/3026/752 931/3029/755 +f 928/3026/752 930/3028/754 932/3030/756 +f 900/2997/726 931/3029/755 933/3031/757 +f 931/3029/755 932/3030/756 934/3033/759 +f 903/3000/729 901/3032/758 933/3031/757 +f 935/3034/760 933/3031/757 934/3033/759 +f 905/3002/731 903/3000/729 935/3034/760 +f 937/3036/762 935/3034/760 936/3035/761 +f 907/3004/733 905/3002/731 937/3036/762 +f 939/3038/764 937/3036/762 938/3037/763 +f 932/3042/756 930/3660/754 938/3661/763 +f 930/3660/754 929/3662/946 938/3661/763 +f 929/3662/946 940/3663/765 938/3661/763 +f 938/3661/763 936/3040/761 932/3042/756 +f 958/3043/766 959/3664/776 960/1834/767 +f 961/1832/769 962/3051/777 963/3044/770 +f 966/415/771 967/414/772 968/3045/772 +f 969/3047/774 966/415/771 965/3046/773 +f 959/3049/776 968/3045/772 967/414/772 +f 962/3051/777 961/1832/769 972/3052/778 +f 957/3054/768 964/416/770 963/3044/770 +f 970/3056/775 971/3665/778 972/1831/778 +f 974/3057/779 975/3666/780 976/1840/780 +f 977/1838/781 978/3667/781 979/3058/782 +f 982/421/783 983/420/788 984/3059/784 +f 982/421/783 981/3060/785 986/3061/786 +f 975/3063/780 984/3059/784 983/420/788 +f 987/3065/789 978/3667/781 977/1838/781 +f 973/3067/779 980/422/782 979/3058/782 +f 985/1836/787 986/3668/786 987/3069/789 +f 994/3070/768 995/3669/776 996/1845/776 +f 997/1843/790 998/3670/790 999/3071/770 +f 1001/3072/791 1002/424/791 1003/423/772 +f 1002/424/791 1001/3072/791 1006/3074/774 +f 1004/3073/772 1003/423/772 996/3076/776 +f 1007/3078/778 998/3670/790 997/1843/790 +f 1000/425/770 999/3071/770 994/3080/768 +f 1005/1841/774 1006/3671/774 1007/3082/778 +f 1009/1850/779 1010/3672/779 1011/3083/793 +f 1013/1849/781 1014/3673/798 1015/3084/782 +f 1018/430/783 1019/429/788 1020/3085/788 +f 1021/3087/794 1018/430/783 1017/3086/783 +f 1011/3089/793 1020/3085/788 1019/429/788 +f 1023/3091/789 1014/3673/798 1013/1849/781 +f 1009/3093/779 1016/431/782 1015/3084/782 +f 1022/3095/794 1023/3674/789 1024/1848/789 +f 1030/3096/768 1031/3675/776 1032/1856/776 +f 1033/1854/769 1034/3676/777 1035/3097/770 +f 1038/433/791 1039/432/772 1040/3098/772 +f 1041/3100/774 1038/433/791 1037/3099/773 +f 1040/3098/772 1039/432/772 1032/3102/776 +f 1043/3104/778 1034/3676/777 1033/1854/769 +f 1036/434/770 1035/3097/770 1030/3106/768 +f 1042/3108/774 1043/3677/778 1044/1853/795 +f 1046/3109/796 1047/3678/780 1048/1862/780 +f 1049/1860/798 1050/3117/798 1051/3110/799 +f 1054/439/783 1055/438/788 1056/3111/788 +f 1057/3113/787 1054/439/783 1053/3112/783 +f 1047/3115/780 1056/3111/788 1055/438/788 +f 1050/3117/798 1049/1860/798 1060/3118/789 +f 1045/3120/797 1052/440/799 1051/3110/799 +f 1057/1858/787 1058/3679/787 1059/3122/789 +f 1066/1866/800 1067/3680/800 1068/3123/801 +f 1070/1865/802 1071/3132/809 1072/3124/803 +f 1073/3125/805 1074/3128/806 1075/1864/806 +f 1077/3126/807 1078/3681/807 1073/3125/805 +f 1067/3127/800 1066/3682/800 1075/1864/806 +f 1080/3129/808 1069/441/804 1072/3124/803 +f 1065/3131/801 1068/3683/801 1071/3132/809 +f 1080/442/808 1079/3684/808 1078/3133/807 +f 1082/1872/780 1083/3685/780 1084/3134/779 +f 1086/1871/782 1087/3145/782 1088/3135/781 +f 1090/3136/788 1091/1870/784 1092/449/783 +f 1094/3138/794 1089/3137/783 1092/449/783 +f 1082/3140/780 1091/1870/784 1090/3136/788 +f 1096/3142/789 1085/447/781 1088/3135/781 +f 1081/3144/779 1084/3686/779 1087/3145/782 +f 1096/448/789 1095/3687/789 1094/3146/794 +f 1102/1877/800 1103/3688/800 1104/3147/801 +f 1105/450/803 1106/1876/809 1107/3148/809 +f 1110/3150/810 1111/1875/810 1112/452/811 +f 1113/3152/807 1114/3689/807 1109/3151/805 +f 1102/3153/800 1111/1875/810 1110/3150/810 +f 1116/3155/808 1105/450/803 1108/3149/803 +f 1101/3157/801 1104/3690/801 1107/3148/809 +f 1116/451/808 1115/3691/808 1114/3158/807 +f 1117/1884/796 1118/1883/780 1119/3159/793 +f 1122/1882/799 1123/3692/799 1124/3161/781 +f 1125/3162/783 1126/3165/788 1127/1881/788 +f 1129/3163/794 1130/3693/794 1125/3162/783 +f 1118/3164/780 1127/1881/788 1126/3165/788 +f 1131/3167/789 1132/3694/789 1121/456/781 +f 1120/3168/797 1123/3692/799 1122/1882/799 +f 1132/457/789 1131/3695/789 1130/3170/794 +f 1138/1888/800 1139/3696/800 1140/3171/801 +f 1141/459/803 1142/1887/809 1143/3172/809 +f 1146/3174/806 1147/1886/806 1148/461/805 +f 1149/3176/807 1150/3697/807 1145/3175/805 +f 1138/3177/800 1147/1886/806 1146/3174/806 +f 1152/3179/808 1141/459/803 1144/3173/803 +f 1137/3181/801 1140/3698/801 1143/3172/809 +f 1152/460/808 1151/3699/808 1150/3182/807 +f 1154/1894/780 1155/3700/780 1156/3183/779 +f 1157/465/781 1158/1893/782 1159/3184/782 +f 1162/3186/788 1163/1892/788 1164/467/812 +f 1166/3188/787 1161/3187/813 1164/467/812 +f 1154/3190/780 1163/1892/788 1162/3186/788 +f 1167/3192/814 1168/3701/814 1157/465/781 +f 1156/3193/779 1159/3184/782 1158/1893/782 +f 1168/466/814 1167/3702/814 1166/3195/787 +f 1196/3196/815 1197/3703/816 1198/1907/816 +f 1199/1905/817 1200/3204/817 1201/3197/818 +f 1204/506/820 1205/505/821 1206/3198/821 +f 1207/3200/822 1204/506/820 1203/3199/820 +f 1197/3202/816 1206/3198/821 1205/505/821 +f 1200/3204/817 1199/1905/817 1210/3205/823 +f 1195/3207/815 1202/507/819 1201/3197/818 +f 1208/3209/822 1209/3704/823 1210/1904/823 +f 1212/3210/824 1213/3705/832 1214/1913/825 +f 1215/1911/826 1216/3218/826 1217/3211/827 +f 1220/512/828 1221/511/833 1222/3212/829 +f 1220/512/828 1219/3213/830 1224/3214/831 +f 1213/3216/832 1222/3212/829 1221/511/833 +f 1216/3218/826 1215/1911/826 1226/3219/834 +f 1218/513/827 1217/3211/827 1212/3221/824 +f 1223/1909/831 1224/3706/831 1225/3223/834 +f 1232/3224/815 1233/3707/816 1234/1918/816 +f 1235/1916/817 1236/3708/817 1237/3225/835 +f 1239/3226/820 1240/515/820 1241/514/821 +f 1240/515/820 1239/3226/820 1244/3228/822 +f 1242/3227/821 1241/514/821 1234/3230/816 +f 1245/3232/823 1236/3708/817 1235/1916/817 +f 1231/3234/815 1238/516/818 1237/3225/835 +f 1244/3236/822 1245/3709/823 1246/1915/823 +f 1247/1923/824 1248/3710/824 1249/3237/836 +f 1251/1922/826 1252/3711/947 1253/3238/837 +f 1256/521/828 1257/520/833 1258/3239/833 +f 1256/521/828 1255/3240/828 1260/3241/831 +f 1258/3239/833 1257/520/833 1250/3243/836 +f 1261/3245/834 1252/3711/947 1251/1922/826 +f 1247/3247/824 1254/522/837 1253/3238/837 +f 1260/3249/831 1261/3712/834 1262/1921/834 +f 1268/3250/815 1269/3713/816 1270/1929/816 +f 1271/1927/817 1272/3714/817 1273/3251/835 +f 1276/524/820 1277/523/821 1278/3252/821 +f 1279/3254/822 1276/524/820 1275/3253/820 +f 1278/3252/821 1277/523/821 1270/3256/816 +f 1281/3258/823 1272/3714/817 1271/1927/817 +f 1267/3260/815 1274/525/835 1273/3251/835 +f 1280/3262/822 1281/3715/823 1282/1926/823 +f 1284/3263/824 1285/3716/836 1286/1935/836 +f 1287/1933/826 1288/3271/826 1289/3264/837 +f 1292/530/828 1293/529/833 1294/3265/833 +f 1295/3267/831 1292/530/828 1291/3266/828 +f 1285/3269/836 1294/3265/833 1293/529/833 +f 1288/3271/826 1287/1933/826 1298/3272/838 +f 1283/3274/824 1290/531/837 1289/3264/837 +f 1295/1931/831 1296/3717/831 1297/3276/839 +f 1304/1939/840 1305/3718/840 1306/3277/841 +f 1308/1938/842 1309/3286/849 1310/3278/843 +f 1311/3279/844 1312/3282/845 1313/1937/845 +f 1315/3280/847 1316/3719/847 1311/3279/844 +f 1305/3281/840 1304/3720/840 1313/1937/845 +f 1318/3283/848 1307/532/843 1310/3278/843 +f 1303/3285/841 1306/3721/841 1309/3286/849 +f 1318/533/848 1317/3722/848 1316/3287/847 +f 1320/1945/832 1321/3723/836 1322/3288/824 +f 1324/1944/827 1325/3299/827 1326/3289/826 +f 1327/3290/850 1328/3294/854 1329/1943/851 +f 1332/3291/853 1327/3290/850 1330/540/852 +f 1320/3293/832 1329/1943/851 1328/3294/854 +f 1334/3296/834 1323/538/826 1326/3289/826 +f 1319/3298/824 1322/3724/824 1325/3299/827 +f 1334/539/834 1333/3725/834 1332/3300/853 +f 1340/1950/840 1341/3726/840 1342/3301/855 +f 1343/541/843 1344/1949/849 1345/3302/849 +f 1348/3304/857 1349/1948/857 1350/543/846 +f 1351/3306/847 1352/3727/847 1347/3305/858 +f 1340/3307/840 1349/1948/857 1348/3304/857 +f 1354/3309/848 1343/541/843 1346/3303/856 +f 1339/3311/841 1342/3728/855 1345/3302/849 +f 1354/542/848 1353/3729/859 1352/3312/847 +f 1355/1957/824 1356/1956/836 1357/3313/836 +f 1360/1955/827 1361/3730/827 1362/3315/826 +f 1363/3316/828 1364/3319/833 1365/1954/833 +f 1367/3317/853 1368/3731/853 1363/3316/828 +f 1356/3318/836 1365/1954/833 1364/3319/833 +f 1370/3321/839 1359/547/826 1362/3315/826 +f 1358/3323/824 1361/3730/827 1360/1955/827 +f 1370/548/839 1369/3732/839 1368/3325/853 +f 1376/1961/840 1377/3733/840 1378/3326/841 +f 1379/550/843 1380/1960/849 1381/3327/849 +f 1384/3329/845 1385/1959/948 1386/552/860 +f 1387/3331/862 1388/3734/862 1383/3330/861 +f 1376/3332/840 1385/1959/948 1384/3329/845 +f 1390/3334/848 1379/550/843 1382/3328/856 +f 1378/3336/841 1381/3327/849 1380/1960/849 +f 1390/551/848 1389/3735/848 1388/3338/862 +f 1392/1967/836 1393/3736/836 1394/3339/824 +f 1396/1966/827 1397/3737/827 1398/3340/826 +f 1399/3341/828 1400/3344/833 1401/1965/833 +f 1403/3342/831 1404/3738/831 1399/3341/828 +f 1393/3343/836 1392/3739/836 1401/1965/833 +f 1405/3345/834 1406/3740/834 1395/556/826 +f 1394/3346/824 1397/3737/827 1396/1966/827 +f 1406/557/834 1405/3741/834 1404/3348/831 +f 1505/3349/110 1506/3359/868 1507/3350/863 +f 1508/3352/1 1509/3742/864 1498/678/864 +f 1511/687/865 1512/681/865 1513/2001/3 +f 1514/3353/110 1500/3743/110 1499/3354/866 +f 1517/683/864 1518/3361/866 1519/3356/866 +f 1502/680/865 1501/3364/868 1521/3358/867 +f 1512/681/865 1511/687/865 1507/3350/863 +f 1498/678/864 1509/3742/864 1515/3355/866 +f 1505/3360/110 1504/3744/110 1519/3356/866 +f 1502/680/865 1520/684/865 1523/2007/3 +f 1522/2000/1 1517/683/864 1516/3357/864 +f 1500/3363/110 1514/3745/110 1521/3358/867 +f 1597/3365/130 1598/3375/869 1599/3366/869 +f 1600/3368/1 1601/3746/870 1590/773/870 +f 1602/2044/3 1603/782/874 1604/776/871 +f 1606/3369/130 1592/3747/130 1591/3370/872 +f 1609/778/870 1610/3377/873 1611/3372/873 +f 1594/775/874 1593/3380/876 1613/3374/869 +f 1604/776/871 1603/782/874 1599/3366/869 +f 1590/773/870 1601/3746/870 1607/3371/873 +f 1597/3376/130 1596/3748/130 1611/3372/873 +f 1594/775/874 1612/779/875 1615/2042/3 +f 1609/778/870 1608/3373/870 1616/3378/1 +f 1592/3379/130 1606/3749/130 1613/3374/869 +f 1689/3381/28 1690/3391/877 1691/3382/877 +f 1692/3384/1 1693/3750/878 1682/867/878 +f 1695/876/879 1696/870/883 1697/2072/3 +f 1698/3385/28 1684/3751/28 1683/3386/880 +f 1701/872/878 1702/3393/881 1703/3388/881 +f 1686/869/879 1685/3396/877 1705/3390/877 +f 1696/870/883 1695/876/879 1691/3382/877 +f 1682/867/878 1693/3750/878 1699/3387/880 +f 1689/3392/28 1688/3752/28 1703/3388/881 +f 1686/869/879 1704/873/882 1707/2078/3 +f 1706/2071/1 1701/872/878 1700/3389/878 +f 1684/3395/28 1698/3753/28 1705/3390/877 +f 1780/3397/105 1781/3754/105 1782/3398/884 +f 1784/3400/1 1785/3755/885 1774/962/885 +f 1787/971/886 1788/965/886 1789/2107/3 +f 1790/3401/105 1776/3756/105 1775/3402/887 +f 1793/967/885 1794/3408/887 1795/3404/887 +f 1778/964/886 1777/3411/884 1797/3406/888 +f 1788/965/886 1787/971/886 1783/3399/884 +f 1774/962/885 1785/3755/885 1791/3403/887 +f 1781/3407/105 1780/3757/105 1795/3404/887 +f 1778/964/886 1796/968/886 1799/2113/3 +f 1798/2106/1 1793/967/885 1792/3405/885 +f 1776/3410/105 1790/3758/105 1797/3406/888 +f 1873/3412/125 1874/3422/889 1875/3413/889 +f 1876/3415/1 1877/3759/890 1866/1056/890 +f 1879/1065/891 1880/1059/891 1881/2143/3 +f 1882/3416/125 1868/3760/125 1867/3417/892 +f 1885/1061/890 1886/3424/893 1887/3419/893 +f 1870/1058/895 1869/3427/889 1889/3421/889 +f 1880/1059/891 1879/1065/891 1875/3413/889 +f 1866/1056/890 1877/3759/890 1883/3418/892 +f 1873/3423/125 1872/3761/125 1887/3419/893 +f 1870/1058/895 1888/1062/891 1891/2149/3 +f 1890/2142/1 1885/1061/890 1884/3420/894 +f 1868/3426/125 1882/3762/125 1889/3421/889 +f 1965/3428/143 1966/3438/896 1967/3429/896 +f 1968/3431/1 1969/3763/897 1958/1151/897 +f 1971/1160/898 1972/1154/898 1973/2178/3 +f 1974/3432/143 1960/3764/143 1959/3433/899 +f 1977/1156/901 1978/3440/899 1979/3435/899 +f 1962/1153/898 1961/3443/896 1981/3437/896 +f 1972/1154/898 1971/1160/898 1967/3429/896 +f 1958/1151/897 1969/3763/897 1975/3434/900 +f 1965/3439/143 1964/3765/143 1979/3435/899 +f 1962/1153/898 1980/1157/902 1983/2184/3 +f 1982/2177/1 1977/1156/901 1976/3436/901 +f 1960/3442/143 1974/3766/143 1981/3437/896 +f 2057/3444/160 2058/3454/903 2059/3445/903 +f 2060/3447/1 2061/3767/904 2050/1245/904 +f 2063/1254/905 2064/1248/905 2065/2214/3 +f 2066/3448/160 2052/3768/160 2051/3449/906 +f 2069/1250/904 2070/3456/906 2071/3451/906 +f 2054/1247/905 2053/3459/903 2073/3453/907 +f 2064/1248/905 2063/1254/905 2059/3445/903 +f 2050/1245/904 2061/3767/904 2067/3450/906 +f 2057/3455/160 2056/3769/160 2071/3451/906 +f 2054/1247/905 2072/1251/905 2075/2220/3 +f 2074/2213/1 2069/1250/904 2068/3452/904 +f 2052/3458/160 2066/3770/160 2073/3453/907 +f 2149/3460/178 2150/3470/915 2151/3461/908 +f 2152/3463/1 2153/3771/909 2142/1339/909 +f 2155/1348/910 2156/1342/914 2157/2250/3 +f 2158/3464/178 2144/3772/178 2143/3465/911 +f 2161/1344/909 2162/3472/912 2163/3467/912 +f 2146/1341/910 2145/3475/916 2165/3469/908 +f 2156/1342/914 2155/1348/910 2151/3461/908 +f 2142/1339/909 2153/3771/909 2159/3466/911 +f 2149/3471/178 2148/3773/178 2163/3467/912 +f 2146/1341/910 2164/1345/913 2167/2256/3 +f 2166/2249/1 2161/1344/909 2160/3468/909 +f 2144/3474/178 2158/3774/178 2165/3469/908 +f 2241/3476/27 2242/3486/917 2243/3477/917 +f 2244/3479/1 2245/3775/918 2234/1433/918 +f 2247/1442/919 2248/1436/924 2249/2286/3 +f 2250/3480/27 2236/3776/27 2235/3481/920 +f 2253/1438/918 2254/3488/921 2255/3483/921 +f 2238/1435/922 2237/3491/917 2257/3485/917 +f 2248/1436/924 2247/1442/919 2243/3477/917 +f 2234/1433/918 2245/3775/918 2251/3482/920 +f 2241/3487/27 2240/3777/27 2255/3483/921 +f 2238/1435/922 2256/1439/923 2259/2292/3 +f 2258/2285/1 2253/1438/918 2252/3484/918 +f 2236/3490/27 2250/3778/27 2257/3485/917 +f 2333/3492/104 2334/3502/925 2335/3493/925 +f 2336/3495/1 2337/3779/926 2326/1529/926 +f 2339/1538/927 2340/1532/927 2341/2320/3 +f 2342/3496/104 2328/3780/104 2327/3497/928 +f 2345/1534/926 2346/3504/928 2347/3499/928 +f 2330/1531/927 2329/3507/925 2349/3501/925 +f 2340/1532/927 2339/1538/927 2335/3493/925 +f 2326/1529/926 2337/3779/926 2343/3498/928 +f 2333/3503/104 2332/3781/104 2347/3499/928 +f 2330/1531/927 2348/1535/927 2351/2326/3 +f 2350/2319/1 2345/1534/926 2344/3500/926 +f 2328/3506/104 2342/3782/104 2349/3501/925 +f 2425/3508/124 2426/3518/929 2427/3509/929 +f 2428/3511/1 2429/3783/930 2418/1625/930 +f 2431/1634/931 2432/1628/935 2433/2354/3 +f 2434/3512/124 2420/3784/124 2419/3513/932 +f 2437/1630/930 2438/3520/933 2439/3515/933 +f 2422/1627/931 2421/3523/929 2441/3517/929 +f 2432/1628/935 2431/1634/931 2427/3509/929 +f 2418/1625/930 2429/3783/930 2435/3514/932 +f 2425/3519/124 2424/3785/124 2439/3515/933 +f 2422/1627/931 2440/1631/935 2443/2360/3 +f 2442/2353/1 2437/1630/930 2436/3516/934 +f 2420/3522/124 2434/3786/124 2441/3517/929 diff --git a/src/main/resources/assets/hbm/models/control_panel/control0.obj b/src/main/resources/assets/hbm/models/control_panel/control0.obj new file mode 100644 index 0000000000..b6514b6c06 --- /dev/null +++ b/src/main/resources/assets/hbm/models/control_panel/control0.obj @@ -0,0 +1,55 @@ +# Blender v2.92.0 OBJ File: 'control0.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 0.300000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.300000 -0.500000 +v 0.000000 0.000000 0.500000 +v 0.000000 0.000000 -0.500000 +v 0.000000 0.062174 0.500000 +v -0.407648 0.300000 0.500000 +v -0.407648 0.300000 -0.500000 +v 0.000000 0.062174 -0.500000 +vt 0.187559 0.187559 +vt 0.000095 0.812442 +vt 0.000094 0.187560 +vt 0.833766 0.000094 +vt 0.891475 0.000094 +vt 0.891475 0.187559 +vt 0.579034 0.851292 +vt 0.891475 0.812441 +vt 0.833766 0.999906 +vt 0.579034 0.812441 +vt 0.540183 0.812441 +vt 0.579034 0.187559 +vt 0.245268 0.187559 +vt 0.245269 0.812441 +vt 0.187560 0.812441 +vt 0.579034 0.148708 +vt 0.891475 0.999906 +vt 0.540182 0.187559 +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 1.0000 0.0000 0.0000 +vn 0.5039 0.8637 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 8/4/2 2/5/2 1/6/2 +f 10/7/3 3/8/3 9/9/3 +f 6/10/4 1/6/4 3/8/4 +f 10/11/5 5/12/5 6/10/5 +f 8/13/6 10/11/6 9/14/6 +f 4/15/7 8/13/7 9/14/7 +f 2/1/1 4/15/1 3/2/1 +f 1/6/2 5/12/2 7/16/2 +f 7/16/2 8/4/2 1/6/2 +f 6/10/3 3/8/3 10/7/3 +f 3/8/3 4/17/3 9/9/3 +f 6/10/4 5/12/4 1/6/4 +f 10/11/5 7/18/5 5/12/5 +f 8/13/6 7/18/6 10/11/6 +f 4/15/7 2/1/7 8/13/7 diff --git a/src/main/resources/assets/hbm/models/item/gas_duct.json b/src/main/resources/assets/hbm/models/item/ball_resin.json similarity index 56% rename from src/main/resources/assets/hbm/models/item/gas_duct.json rename to src/main/resources/assets/hbm/models/item/ball_resin.json index c30d22901d..3d25c81959 100644 --- a/src/main/resources/assets/hbm/models/item/gas_duct.json +++ b/src/main/resources/assets/hbm/models/item/ball_resin.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:blocks/gas_duct_icon" + "layer0": "hbm:items/ball_resin" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/battery_sc_electronium.json b/src/main/resources/assets/hbm/models/item/battery_sc_electronium.json new file mode 100644 index 0000000000..1c6563505b --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/battery_sc_electronium.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/battery_sc_electronium" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/battery_schrabidium.json b/src/main/resources/assets/hbm/models/item/battery_schrabidium.json index 6d81783188..f63be5907c 100644 --- a/src/main/resources/assets/hbm/models/item/battery_schrabidium.json +++ b/src/main/resources/assets/hbm/models/item/battery_schrabidium.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:items/battery_schrabidium_new" + "layer0": "hbm:items/battery_schrabidium" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/concrete_hazard.json b/src/main/resources/assets/hbm/models/item/concrete_hazard.json new file mode 100644 index 0000000000..4b2f7f8eaa --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/concrete_hazard.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/concrete_hazard" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/control_panel0.json b/src/main/resources/assets/hbm/models/item/control_panel0.json deleted file mode 100644 index 63a06d6d4c..0000000000 --- a/src/main/resources/assets/hbm/models/item/control_panel0.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hbm:block/control_panel0" -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/det_bale.json b/src/main/resources/assets/hbm/models/item/det_bale.json new file mode 100644 index 0000000000..b121ef5b09 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/det_bale.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/det_bale" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/det_n2.json b/src/main/resources/assets/hbm/models/item/det_n2.json new file mode 100644 index 0000000000..8d87946e18 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/det_n2.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/det_n2" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/dummy_block_drill.json b/src/main/resources/assets/hbm/models/item/dummy_block_drill.json deleted file mode 100644 index 7861414e0b..0000000000 --- a/src/main/resources/assets/hbm/models/item/dummy_block_drill.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hbm:block/dummy_block_drill" -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/dummy_port_drill.json b/src/main/resources/assets/hbm/models/item/dummy_port_drill.json deleted file mode 100644 index 234f1d45f9..0000000000 --- a/src/main/resources/assets/hbm/models/item/dummy_port_drill.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hbm:block/dummy_port_drill" -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/gas_duct_solid.json b/src/main/resources/assets/hbm/models/item/gas_duct_solid.json deleted file mode 100644 index d85e7569ff..0000000000 --- a/src/main/resources/assets/hbm/models/item/gas_duct_solid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hbm:block/gas_duct_solid" -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/fluid_duct.json b/src/main/resources/assets/hbm/models/item/ingot_biorubber.json similarity index 54% rename from src/main/resources/assets/hbm/models/item/fluid_duct.json rename to src/main/resources/assets/hbm/models/item/ingot_biorubber.json index 6cc5808a9b..9e2661c08f 100644 --- a/src/main/resources/assets/hbm/models/item/fluid_duct.json +++ b/src/main/resources/assets/hbm/models/item/ingot_biorubber.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:blocks/fluid_duct_icon" + "layer0": "hbm:items/ingot_biorubber" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/med_schizophrenia.json b/src/main/resources/assets/hbm/models/item/med_schizophrenia.json index a91bab6343..942350972d 100644 --- a/src/main/resources/assets/hbm/models/item/med_schizophrenia.json +++ b/src/main/resources/assets/hbm/models/item/med_schizophrenia.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:items/med_schizophrenia_new" + "layer0": "hbm:items/med_schizophrenia" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/machine_drill.json b/src/main/resources/assets/hbm/models/item/missile_n2.json similarity index 56% rename from src/main/resources/assets/hbm/models/item/machine_drill.json rename to src/main/resources/assets/hbm/models/item/missile_n2.json index fb47d587d3..f19cf33d56 100644 --- a/src/main/resources/assets/hbm/models/item/machine_drill.json +++ b/src/main/resources/assets/hbm/models/item/missile_n2.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:blocks/machine_drill" + "layer0": "hbm:items/missile_n2" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/oil_duct_solid.json b/src/main/resources/assets/hbm/models/item/oil_duct_solid.json deleted file mode 100644 index 497686eea1..0000000000 --- a/src/main/resources/assets/hbm/models/item/oil_duct_solid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hbm:block/oil_duct_solid" -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/oil_duct.json b/src/main/resources/assets/hbm/models/item/pocket_ptsd.json similarity index 53% rename from src/main/resources/assets/hbm/models/item/oil_duct.json rename to src/main/resources/assets/hbm/models/item/pocket_ptsd.json index 878d233734..671065c788 100644 --- a/src/main/resources/assets/hbm/models/item/oil_duct.json +++ b/src/main/resources/assets/hbm/models/item/pocket_ptsd.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:blocks/oil_duct_icon_alt" + "layer0": "hbm:items/pocket_ptsd" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/powder_ac227_tiny.json b/src/main/resources/assets/hbm/models/item/powder_ac227_tiny.json new file mode 100644 index 0000000000..0a354d7c90 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/powder_ac227_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/powder_ac227_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/powder_at209_tiny.json b/src/main/resources/assets/hbm/models/item/powder_at209_tiny.json new file mode 100644 index 0000000000..bf5aa4f090 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/powder_at209_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/powder_at209_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/powder_au198_tiny.json b/src/main/resources/assets/hbm/models/item/powder_au198_tiny.json new file mode 100644 index 0000000000..2a95ec17dd --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/powder_au198_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/powder_au198_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/powder_pb209_tiny.json b/src/main/resources/assets/hbm/models/item/powder_pb209_tiny.json new file mode 100644 index 0000000000..61ce5c063f --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/powder_pb209_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/powder_pb209_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/powder_radspice_tiny.json b/src/main/resources/assets/hbm/models/item/powder_radspice_tiny.json new file mode 100644 index 0000000000..e979c7ca9b --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/powder_radspice_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/powder_radspice_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/red_cable_gauge.json b/src/main/resources/assets/hbm/models/item/red_cable_gauge.json new file mode 100644 index 0000000000..d1bcc5a41a --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/red_cable_gauge.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/red_cable_gauge" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_0.json b/src/main/resources/assets/hbm/models/item/sellafield_0.json index cf5de36573..7d99c144d8 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_0.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_0.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_0" + "parent": "hbm:block/sellafield_1_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_1.json b/src/main/resources/assets/hbm/models/item/sellafield_1.json index 73e544dd03..2f4a083f9a 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_1.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_1.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_1" + "parent": "hbm:block/sellafield_2_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_2.json b/src/main/resources/assets/hbm/models/item/sellafield_2.json index 4d2c9030dc..6da244dc9d 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_2.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_2.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_2" + "parent": "hbm:block/sellafield_3_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_3.json b/src/main/resources/assets/hbm/models/item/sellafield_3.json index 992456d6b0..b64d1ba97b 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_3.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_3.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_3" + "parent": "hbm:block/sellafield_4_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_4.json b/src/main/resources/assets/hbm/models/item/sellafield_4.json index dff6a338c5..39a1863e5d 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_4.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_4.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_4" + "parent": "hbm:block/sellafield_5_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_core.json b/src/main/resources/assets/hbm/models/item/sellafield_core.json index e01cb40660..9eb58083d4 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_core.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_core.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_core" + "parent": "hbm:block/sellafield_6_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sellafield_slaked.json b/src/main/resources/assets/hbm/models/item/sellafield_slaked.json index d036734b1d..6f7a77c4e6 100644 --- a/src/main/resources/assets/hbm/models/item/sellafield_slaked.json +++ b/src/main/resources/assets/hbm/models/item/sellafield_slaked.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/sellafield_slaked" + "parent": "hbm:block/sellafield_0_1" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin0.json b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin0.json index 22997ca317..0d2a86d9b3 100644 --- a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin0.json +++ b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin0.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:items/sliding_blast_door_window" + "layer0": "hbm:items/sliding_blast_door_window_skin0" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin1.json b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin1.json index 22997ca317..393bb30cca 100644 --- a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin1.json +++ b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin1.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:items/sliding_blast_door_window" + "layer0": "hbm:items/sliding_blast_door_window_skin1" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin2.json b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin2.json index 22997ca317..743432ff97 100644 --- a/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin2.json +++ b/src/main/resources/assets/hbm/models/item/sliding_blast_door_skin2.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:items/sliding_blast_door_window" + "layer0": "hbm:items/sliding_blast_door_window_skin2" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/warhead_n2.json b/src/main/resources/assets/hbm/models/item/warhead_n2.json new file mode 100644 index 0000000000..73d8a70649 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/warhead_n2.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/warhead_n2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_dirt.json b/src/main/resources/assets/hbm/models/item/waste_dirt.json index fd078c53dd..c86edaa9b2 100644 --- a/src/main/resources/assets/hbm/models/item/waste_dirt.json +++ b/src/main/resources/assets/hbm/models/item/waste_dirt.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_dirt" + "parent": "hbm:block/waste_dirt_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_earth.json b/src/main/resources/assets/hbm/models/item/waste_earth.json index 2ab5f962d3..94778fb8d3 100644 --- a/src/main/resources/assets/hbm/models/item/waste_earth.json +++ b/src/main/resources/assets/hbm/models/item/waste_earth.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_earth" + "parent": "hbm:block/waste_earth_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_grass_tall.json b/src/main/resources/assets/hbm/models/item/waste_grass_tall.json index acae95f55a..9f2306932d 100644 --- a/src/main/resources/assets/hbm/models/item/waste_grass_tall.json +++ b/src/main/resources/assets/hbm/models/item/waste_grass_tall.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "hbm:blocks/waste_grass_tall" + "layer0": "hbm:blocks/contamination/grass_tall/waste_grass_tall_0" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_gravel.json b/src/main/resources/assets/hbm/models/item/waste_gravel.json index b737a7f3c5..7fddb0b3e1 100644 --- a/src/main/resources/assets/hbm/models/item/waste_gravel.json +++ b/src/main/resources/assets/hbm/models/item/waste_gravel.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_gravel" + "parent": "hbm:block/waste_gravel_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_mycelium.json b/src/main/resources/assets/hbm/models/item/waste_mycelium.json index 7053a569d8..bca9557f85 100644 --- a/src/main/resources/assets/hbm/models/item/waste_mycelium.json +++ b/src/main/resources/assets/hbm/models/item/waste_mycelium.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_mycelium" + "parent": "hbm:block/waste_mycelium_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_sand.json b/src/main/resources/assets/hbm/models/item/waste_sand.json index d3d7c213cf..27f007337c 100644 --- a/src/main/resources/assets/hbm/models/item/waste_sand.json +++ b/src/main/resources/assets/hbm/models/item/waste_sand.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_sand" + "parent": "hbm:block/waste_sand_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_sand_red.json b/src/main/resources/assets/hbm/models/item/waste_sand_red.json index 2f7c7c1bee..9e67d5f41d 100644 --- a/src/main/resources/assets/hbm/models/item/waste_sand_red.json +++ b/src/main/resources/assets/hbm/models/item/waste_sand_red.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_sand_red" + "parent": "hbm:block/waste_sand_red_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_sandstone.json b/src/main/resources/assets/hbm/models/item/waste_sandstone.json new file mode 100644 index 0000000000..f12c34fe8c --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/waste_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/waste_sandstone_0" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_sandstone_red.json b/src/main/resources/assets/hbm/models/item/waste_sandstone_red.json new file mode 100644 index 0000000000..839b1d4950 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/waste_sandstone_red.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/waste_red_sandstone_0" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_terracotta.json b/src/main/resources/assets/hbm/models/item/waste_terracotta.json new file mode 100644 index 0000000000..a60246e0d8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/waste_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/waste_terracotta_0" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_trinitite.json b/src/main/resources/assets/hbm/models/item/waste_trinitite.json index fed7b22c97..883a3ae111 100644 --- a/src/main/resources/assets/hbm/models/item/waste_trinitite.json +++ b/src/main/resources/assets/hbm/models/item/waste_trinitite.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_trinitite" + "parent": "hbm:block/waste_trinitite_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/waste_trinitite_red.json b/src/main/resources/assets/hbm/models/item/waste_trinitite_red.json index 5a8ac52654..d527d83a54 100644 --- a/src/main/resources/assets/hbm/models/item/waste_trinitite_red.json +++ b/src/main/resources/assets/hbm/models/item/waste_trinitite_red.json @@ -1,3 +1,3 @@ { - "parent": "hbm:block/waste_trinitite_red" + "parent": "hbm:block/waste_trinitite_red_0" } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/missile_abm.obj b/src/main/resources/assets/hbm/models/missile_abm.obj new file mode 100644 index 0000000000..1cc213ebae --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_abm.obj @@ -0,0 +1,2124 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_abm.blend' +# www.blender.org +o Circle +v -0.000000 7.000000 -0.375000 +v -0.143506 7.000000 -0.346455 +v -0.265165 7.000000 -0.265165 +v -0.346455 7.000000 -0.143506 +v -0.375000 7.000000 0.000000 +v -0.346455 7.000000 0.143506 +v -0.265165 7.000000 0.265165 +v -0.143506 7.000000 0.346455 +v -0.000000 7.000000 0.375000 +v 0.143506 7.000000 0.346455 +v 0.265165 7.000000 0.265165 +v 0.346455 7.000000 0.143506 +v 0.375000 7.000000 -0.000000 +v 0.346455 7.000000 -0.143506 +v 0.265165 7.000000 -0.265165 +v 0.143506 7.000000 -0.346455 +v -0.000000 8.500000 0.000000 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 4.500000 -0.250000 +v -0.095671 4.500000 -0.230970 +v -0.176777 4.500000 -0.176777 +v -0.230970 4.500000 -0.095671 +v -0.250000 4.500000 0.000000 +v -0.230970 4.500000 0.095671 +v -0.176777 4.500000 0.176777 +v -0.095671 4.500000 0.230970 +v -0.000000 4.500000 0.250000 +v 0.095671 4.500000 0.230970 +v 0.176777 4.500000 0.176777 +v 0.230970 4.500000 0.095671 +v 0.250000 4.500000 -0.000000 +v 0.230970 4.500000 -0.095671 +v 0.176777 4.500000 -0.176777 +v 0.095671 4.500000 -0.230970 +v -0.000000 1.500000 -0.250000 +v -0.095671 1.500000 -0.230970 +v -0.176777 1.500000 -0.176777 +v -0.230970 1.500000 -0.095671 +v -0.250000 1.500000 0.000000 +v -0.230970 1.500000 0.095671 +v -0.176777 1.500000 0.176777 +v -0.095671 1.500000 0.230970 +v -0.000000 1.500000 0.250000 +v 0.095671 1.500000 0.230970 +v 0.176777 1.500000 0.176777 +v 0.230970 1.500000 0.095671 +v 0.250000 1.500000 -0.000000 +v 0.230970 1.500000 -0.095671 +v 0.176777 1.500000 -0.176777 +v 0.095671 1.500000 -0.230970 +v -0.000000 0.250000 -0.250000 +v 0.019030 0.250000 -0.154329 +v 0.073223 0.250000 -0.073223 +v 0.154329 0.250000 -0.019030 +v 0.250000 0.250000 0.000000 +v 0.345671 0.250000 -0.019030 +v 0.426777 0.250000 -0.073223 +v 0.480970 0.250000 -0.154329 +v 0.500000 0.250000 -0.250000 +v 0.480970 0.250000 -0.345671 +v 0.426777 0.250000 -0.426777 +v 0.345671 0.250000 -0.480970 +v 0.250000 0.250000 -0.500000 +v 0.154329 0.250000 -0.480970 +v 0.073223 0.250000 -0.426777 +v 0.019030 0.250000 -0.345671 +v -0.000000 1.500000 -0.250000 +v 0.019030 1.500000 -0.154329 +v 0.073223 1.500000 -0.073223 +v 0.154329 1.500000 -0.019030 +v 0.250000 1.500000 0.000000 +v 0.345671 1.500000 -0.019030 +v 0.426777 1.500000 -0.073223 +v 0.480970 1.500000 -0.154329 +v 0.500000 1.500000 -0.250000 +v 0.480970 1.500000 -0.345671 +v 0.426777 1.500000 -0.426777 +v 0.345671 1.500000 -0.480970 +v 0.250000 1.500000 -0.500000 +v 0.154329 1.500000 -0.480970 +v 0.073223 1.500000 -0.426777 +v 0.019030 1.500000 -0.345671 +v 0.125000 2.500000 -0.125000 +v 0.125000 0.250000 -0.250000 +v 0.134515 0.250000 -0.202165 +v 0.161612 0.250000 -0.161612 +v 0.202165 0.250000 -0.134515 +v 0.250000 0.250000 -0.125000 +v 0.297835 0.250000 -0.134515 +v 0.338388 0.250000 -0.161612 +v 0.365485 0.250000 -0.202165 +v 0.375000 0.250000 -0.250000 +v 0.365485 0.250000 -0.297835 +v 0.338388 0.250000 -0.338388 +v 0.297835 0.250000 -0.365485 +v 0.250000 0.250000 -0.375000 +v 0.202165 0.250000 -0.365485 +v 0.161612 0.250000 -0.338388 +v 0.134515 0.250000 -0.297835 +v -0.000000 0.000000 -0.250000 +v 0.019030 0.000000 -0.154329 +v 0.073223 0.000000 -0.073223 +v 0.154329 0.000000 -0.019030 +v 0.250000 0.000000 0.000000 +v 0.345671 0.000000 -0.019030 +v 0.426777 0.000000 -0.073223 +v 0.480970 0.000000 -0.154329 +v 0.500000 0.000000 -0.250000 +v 0.480970 0.000000 -0.345671 +v 0.426777 0.000000 -0.426777 +v 0.345671 0.000000 -0.480970 +v 0.250000 0.000000 -0.500000 +v 0.154329 0.000000 -0.480970 +v 0.073223 0.000000 -0.426777 +v 0.019030 0.000000 -0.345671 +v 0.000000 5.500000 -0.875000 +v 0.000000 4.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v -0.031250 4.000000 -0.125000 +v 0.031250 6.000000 -0.125000 +v 0.031250 4.000000 -0.125000 +v 0.031250 0.500000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 0.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 0.500000 -1.125000 +v 0.000000 2.000000 -1.125000 +v -0.062500 4.250000 -0.875000 +v -0.062500 5.750000 -0.875000 +v -0.031250 4.250000 -0.929127 +v -0.031250 5.750000 -0.929127 +v 0.031250 4.250000 -0.929127 +v 0.031250 5.750000 -0.929127 +v 0.062500 4.250000 -0.875000 +v 0.062500 5.750000 -0.875000 +v 0.031250 4.250000 -0.820873 +v 0.031250 5.750000 -0.820873 +v -0.031250 4.250000 -0.820873 +v -0.031250 5.750000 -0.820873 +v 0.000000 0.250000 0.250000 +v -0.019030 0.250000 0.154329 +v -0.073223 0.250000 0.073223 +v -0.154329 0.250000 0.019030 +v -0.250000 0.250000 0.000000 +v -0.345671 0.250000 0.019030 +v -0.426777 0.250000 0.073223 +v -0.480970 0.250000 0.154329 +v -0.500000 0.250000 0.250000 +v -0.480970 0.250000 0.345671 +v -0.426777 0.250000 0.426777 +v -0.345671 0.250000 0.480970 +v -0.250000 0.250000 0.500000 +v -0.154329 0.250000 0.480970 +v -0.073223 0.250000 0.426777 +v -0.019030 0.250000 0.345671 +v 0.000000 1.500000 0.250000 +v -0.019030 1.500000 0.154329 +v -0.073223 1.500000 0.073223 +v -0.154329 1.500000 0.019030 +v -0.250000 1.500000 0.000000 +v -0.345671 1.500000 0.019030 +v -0.426777 1.500000 0.073223 +v -0.480970 1.500000 0.154329 +v -0.500000 1.500000 0.250000 +v -0.480970 1.500000 0.345671 +v -0.426777 1.500000 0.426777 +v -0.345671 1.500000 0.480970 +v -0.250000 1.500000 0.500000 +v -0.154329 1.500000 0.480970 +v -0.073223 1.500000 0.426777 +v -0.019030 1.500000 0.345671 +v -0.125000 2.500000 0.125000 +v -0.125000 0.250000 0.250000 +v -0.134515 0.250000 0.202165 +v -0.161612 0.250000 0.161612 +v -0.202165 0.250000 0.134515 +v -0.250000 0.250000 0.125000 +v -0.297835 0.250000 0.134515 +v -0.338388 0.250000 0.161612 +v -0.365485 0.250000 0.202165 +v -0.375000 0.250000 0.250000 +v -0.365485 0.250000 0.297835 +v -0.338388 0.250000 0.338388 +v -0.297835 0.250000 0.365485 +v -0.250000 0.250000 0.375000 +v -0.202164 0.250000 0.365485 +v -0.161612 0.250000 0.338388 +v -0.134515 0.250000 0.297835 +v 0.000000 0.000000 0.250000 +v -0.019030 0.000000 0.154329 +v -0.073223 0.000000 0.073223 +v -0.154329 0.000000 0.019030 +v -0.250000 0.000000 0.000000 +v -0.345671 0.000000 0.019030 +v -0.426777 0.000000 0.073223 +v -0.480970 0.000000 0.154329 +v -0.500000 0.000000 0.250000 +v -0.480970 0.000000 0.345671 +v -0.426777 0.000000 0.426777 +v -0.345671 0.000000 0.480970 +v -0.250000 0.000000 0.500000 +v -0.154329 0.000000 0.480970 +v -0.073223 0.000000 0.426777 +v -0.019030 0.000000 0.345671 +v -0.031250 0.500000 0.125000 +v -0.031250 2.500000 0.125000 +v 0.031250 0.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 0.500000 1.125000 +v 0.000000 2.000000 1.125000 +v -0.250000 0.250000 0.000000 +v -0.154329 0.250000 -0.019030 +v -0.073223 0.250000 -0.073223 +v -0.019030 0.250000 -0.154329 +v -0.000000 0.250000 -0.250000 +v -0.019030 0.250000 -0.345671 +v -0.073223 0.250000 -0.426777 +v -0.154329 0.250000 -0.480970 +v -0.250000 0.250000 -0.500000 +v -0.345671 0.250000 -0.480970 +v -0.426777 0.250000 -0.426777 +v -0.480970 0.250000 -0.345671 +v -0.500000 0.250000 -0.250000 +v -0.480970 0.250000 -0.154329 +v -0.426777 0.250000 -0.073223 +v -0.345671 0.250000 -0.019030 +v -0.250000 1.500000 0.000000 +v -0.154329 1.500000 -0.019030 +v -0.073223 1.500000 -0.073223 +v -0.019030 1.500000 -0.154329 +v -0.000000 1.500000 -0.250000 +v -0.019030 1.500000 -0.345671 +v -0.073223 1.500000 -0.426777 +v -0.154329 1.500000 -0.480970 +v -0.250000 1.500000 -0.500000 +v -0.345671 1.500000 -0.480970 +v -0.426777 1.500000 -0.426777 +v -0.480970 1.500000 -0.345671 +v -0.500000 1.500000 -0.250000 +v -0.480970 1.500000 -0.154329 +v -0.426777 1.500000 -0.073223 +v -0.345671 1.500000 -0.019030 +v -0.125000 2.500000 -0.125000 +v -0.250000 0.250000 -0.125000 +v -0.202165 0.250000 -0.134515 +v -0.161612 0.250000 -0.161612 +v -0.134515 0.250000 -0.202165 +v -0.125000 0.250000 -0.250000 +v -0.134515 0.250000 -0.297835 +v -0.161612 0.250000 -0.338388 +v -0.202165 0.250000 -0.365485 +v -0.250000 0.250000 -0.375000 +v -0.297835 0.250000 -0.365485 +v -0.338388 0.250000 -0.338388 +v -0.365485 0.250000 -0.297835 +v -0.375000 0.250000 -0.250000 +v -0.365485 0.250000 -0.202164 +v -0.338388 0.250000 -0.161612 +v -0.297835 0.250000 -0.134515 +v -0.250000 0.000000 0.000000 +v -0.154329 0.000000 -0.019030 +v -0.073223 0.000000 -0.073223 +v -0.019030 0.000000 -0.154329 +v -0.000000 0.000000 -0.250000 +v -0.019030 0.000000 -0.345671 +v -0.073223 0.000000 -0.426777 +v -0.154329 0.000000 -0.480970 +v -0.250000 0.000000 -0.500000 +v -0.345671 0.000000 -0.480970 +v -0.426777 0.000000 -0.426777 +v -0.480970 0.000000 -0.345671 +v -0.500000 0.000000 -0.250000 +v -0.480970 0.000000 -0.154329 +v -0.426777 0.000000 -0.073223 +v -0.345671 0.000000 -0.019030 +v -0.125000 0.500000 -0.031250 +v -0.125000 2.500000 -0.031250 +v -0.125000 0.500000 0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 0.500000 0.000000 +v -1.125000 2.000000 0.000000 +v 0.250000 0.250000 -0.000000 +v 0.154329 0.250000 0.019030 +v 0.073223 0.250000 0.073223 +v 0.019030 0.250000 0.154329 +v 0.000000 0.250000 0.250000 +v 0.019030 0.250000 0.345671 +v 0.073223 0.250000 0.426777 +v 0.154329 0.250000 0.480970 +v 0.250000 0.250000 0.500000 +v 0.345671 0.250000 0.480970 +v 0.426777 0.250000 0.426777 +v 0.480970 0.250000 0.345671 +v 0.500000 0.250000 0.250000 +v 0.480970 0.250000 0.154329 +v 0.426777 0.250000 0.073223 +v 0.345671 0.250000 0.019030 +v 0.250000 1.500000 -0.000000 +v 0.154329 1.500000 0.019030 +v 0.073223 1.500000 0.073223 +v 0.019030 1.500000 0.154329 +v 0.000000 1.500000 0.250000 +v 0.019030 1.500000 0.345671 +v 0.073223 1.500000 0.426777 +v 0.154329 1.500000 0.480970 +v 0.250000 1.500000 0.500000 +v 0.345671 1.500000 0.480970 +v 0.426777 1.500000 0.426777 +v 0.480970 1.500000 0.345671 +v 0.500000 1.500000 0.250000 +v 0.480970 1.500000 0.154329 +v 0.426777 1.500000 0.073223 +v 0.345671 1.500000 0.019030 +v 0.125000 2.500000 0.125000 +v 0.250000 0.250000 0.125000 +v 0.202165 0.250000 0.134515 +v 0.161612 0.250000 0.161612 +v 0.134515 0.250000 0.202165 +v 0.125000 0.250000 0.250000 +v 0.134515 0.250000 0.297835 +v 0.161612 0.250000 0.338388 +v 0.202165 0.250000 0.365485 +v 0.250000 0.250000 0.375000 +v 0.297835 0.250000 0.365485 +v 0.338388 0.250000 0.338388 +v 0.365485 0.250000 0.297835 +v 0.375000 0.250000 0.250000 +v 0.365485 0.250000 0.202164 +v 0.338388 0.250000 0.161612 +v 0.297835 0.250000 0.134515 +v 0.250000 0.000000 -0.000000 +v 0.154329 0.000000 0.019030 +v 0.073223 0.000000 0.073223 +v 0.019030 0.000000 0.154329 +v 0.000000 0.000000 0.250000 +v 0.019030 0.000000 0.345671 +v 0.073223 0.000000 0.426777 +v 0.154329 0.000000 0.480970 +v 0.250000 0.000000 0.500000 +v 0.345671 0.000000 0.480970 +v 0.426777 0.000000 0.426777 +v 0.480970 0.000000 0.345671 +v 0.500000 0.000000 0.250000 +v 0.480970 0.000000 0.154329 +v 0.426777 0.000000 0.073223 +v 0.345671 0.000000 0.019030 +v 0.125000 0.500000 0.031250 +v 0.125000 2.500000 0.031250 +v 0.125000 0.500000 -0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 0.500000 -0.000000 +v 1.125000 2.000000 -0.000000 +v 0.000000 5.500000 0.875000 +v 0.000000 4.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.031250 4.000000 0.125000 +v -0.031250 6.000000 0.125000 +v -0.031250 4.000000 0.125000 +v 0.062500 4.250000 0.875000 +v 0.062500 5.750000 0.875000 +v 0.031250 4.250000 0.929127 +v 0.031250 5.750000 0.929127 +v -0.031250 4.250000 0.929127 +v -0.031250 5.750000 0.929127 +v -0.062500 4.250000 0.875000 +v -0.062500 5.750000 0.875000 +v -0.031250 4.250000 0.820873 +v -0.031250 5.750000 0.820873 +v 0.031250 4.250000 0.820873 +v 0.031250 5.750000 0.820873 +v -0.875000 5.500000 0.000000 +v -0.875000 4.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.125000 4.000000 0.031250 +v -0.125000 6.000000 -0.031250 +v -0.125000 4.000000 -0.031250 +v -0.875000 4.250000 0.062500 +v -0.875000 5.750000 0.062500 +v -0.929127 4.250000 0.031250 +v -0.929127 5.750000 0.031250 +v -0.929127 4.250000 -0.031250 +v -0.929127 5.750000 -0.031250 +v -0.875000 4.250000 -0.062500 +v -0.875000 5.750000 -0.062500 +v -0.820873 4.250000 -0.031250 +v -0.820873 5.750000 -0.031250 +v -0.820873 4.250000 0.031250 +v -0.820873 5.750000 0.031250 +v 0.875000 5.500000 -0.000000 +v 0.875000 4.500000 -0.000000 +v 0.125000 6.000000 -0.031250 +v 0.125000 4.000000 -0.031250 +v 0.125000 6.000000 0.031250 +v 0.125000 4.000000 0.031250 +v 0.875000 4.250000 -0.062500 +v 0.875000 5.750000 -0.062500 +v 0.929127 4.250000 -0.031250 +v 0.929127 5.750000 -0.031250 +v 0.929127 4.250000 0.031250 +v 0.929127 5.750000 0.031250 +v 0.875000 4.250000 0.062500 +v 0.875000 5.750000 0.062500 +v 0.820873 4.250000 0.031250 +v 0.820873 5.750000 0.031250 +v 0.820873 4.250000 -0.031250 +v 0.820873 5.750000 -0.031250 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.394737 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 0.0000 0.0312 +vn 0.9995 0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 0.0000 0.0416 +vn -0.9991 0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +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.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3737 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3737 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +s off +f 52/1/1 64/2/1 60/3/1 +f 69/4/1 101/5/1 102/6/1 +f 70/7/1 102/8/1 103/9/1 +f 70/7/1 104/10/1 71/11/1 +f 71/11/1 105/12/1 72/13/1 +f 73/14/1 105/15/1 106/16/1 +f 74/17/1 106/18/1 107/19/1 +f 75/20/1 107/21/1 108/22/1 +f 75/20/1 109/23/1 76/24/1 +f 77/25/1 109/26/1 110/27/1 +f 78/28/1 110/29/1 111/30/1 +f 78/28/1 112/31/1 79/32/1 +f 79/32/1 113/33/1 80/34/1 +f 66/35/1 100/36/1 67/37/1 +f 81/38/1 113/39/1 114/40/1 +f 67/37/1 101/41/1 68/42/1 +f 81/38/1 99/43/1 66/35/1 +f 125/44/1 121/45/1 117/46/1 +f 133/47/2 132/48/2 134/49/2 +f 131/50/3 136/51/3 132/48/3 +f 135/52/4 131/53/4 133/54/4 +f 136/51/5 134/55/5 132/56/5 +f 137/57/1 139/58/1 141/59/1 +f 138/60/6 142/61/6 140/62/6 +f 142/63/7 137/57/7 141/59/7 +f 139/64/8 142/63/8 141/59/8 +f 144/65/9 152/66/9 148/67/9 +f 149/68/1 151/69/1 153/70/1 +f 158/71/1 190/72/1 191/73/1 +f 159/74/1 191/75/1 192/76/1 +f 159/74/1 193/77/1 160/78/1 +f 160/78/1 194/79/1 161/80/1 +f 162/81/1 194/82/1 195/83/1 +f 163/84/1 195/85/1 196/86/1 +f 164/87/1 196/88/1 197/89/1 +f 164/87/1 198/90/1 165/91/1 +f 166/92/1 198/93/1 199/94/1 +f 167/95/1 199/96/1 200/97/1 +f 167/95/1 201/98/1 168/99/1 +f 168/99/1 202/100/1 169/101/1 +f 155/102/1 189/103/1 156/104/1 +f 170/105/1 202/106/1 203/107/1 +f 156/104/1 190/108/1 157/109/1 +f 170/105/1 188/110/1 155/102/1 +f 210/111/1 208/112/1 206/113/1 +f 220/114/1 222/115/1 224/116/1 +f 221/117/10 225/118/10 223/119/10 +f 225/120/11 220/114/11 224/116/11 +f 222/121/12 225/120/12 224/116/12 +f 229/122/1 261/123/1 262/124/1 +f 230/125/1 262/126/1 263/127/1 +f 230/125/1 264/128/1 231/129/1 +f 231/129/1 265/130/1 232/131/1 +f 233/132/1 265/133/1 266/134/1 +f 234/135/1 266/136/1 267/137/1 +f 235/138/1 267/139/1 268/140/1 +f 235/138/1 269/141/1 236/142/1 +f 237/143/1 269/144/1 270/145/1 +f 237/143/1 271/146/1 238/147/1 +f 238/147/1 272/148/1 239/149/1 +f 239/149/1 273/150/1 240/151/1 +f 226/152/1 260/153/1 227/154/1 +f 241/155/1 273/156/1 274/157/1 +f 227/154/1 261/158/1 228/159/1 +f 241/155/1 259/160/1 226/152/1 +f 285/161/1 281/162/1 277/163/1 +f 291/164/1 293/165/1 295/166/1 +f 292/167/13 296/168/13 294/169/13 +f 296/170/14 291/164/14 295/166/14 +f 293/171/15 296/170/15 295/166/15 +f 300/172/1 332/173/1 333/174/1 +f 301/175/1 333/176/1 334/177/1 +f 301/175/1 335/178/1 302/179/1 +f 302/179/1 336/180/1 303/181/1 +f 304/182/1 336/183/1 337/184/1 +f 305/185/1 337/186/1 338/187/1 +f 306/188/1 338/189/1 339/190/1 +f 306/188/1 340/191/1 307/192/1 +f 308/193/1 340/194/1 341/195/1 +f 309/196/1 341/197/1 342/198/1 +f 309/196/1 343/199/1 310/200/1 +f 310/200/1 344/201/1 311/202/1 +f 297/203/1 331/204/1 298/205/1 +f 312/206/1 344/207/1 345/208/1 +f 298/205/1 332/209/1 299/210/1 +f 297/203/1 345/211/1 330/212/1 +f 356/213/1 352/214/1 348/215/1 +f 362/216/1 364/217/1 366/218/1 +f 363/219/16 367/220/16 365/221/16 +f 367/222/17 362/216/17 366/218/17 +f 364/223/18 367/222/18 366/218/18 +f 370/224/19 369/225/19 371/226/19 +f 368/227/20 373/228/20 369/225/20 +f 372/229/21 368/230/21 370/231/21 +f 373/228/22 371/232/22 369/233/22 +f 381/234/9 379/235/9 375/236/9 +f 380/237/1 382/238/1 384/239/1 +f 388/240/23 387/241/23 389/242/23 +f 386/243/24 391/244/24 387/241/24 +f 390/245/25 386/246/25 388/247/25 +f 391/244/26 389/248/26 387/249/26 +f 393/250/9 401/251/9 397/252/9 +f 398/253/1 400/254/1 402/255/1 +f 407/256/27 404/257/27 405/258/27 +f 404/257/28 409/259/28 405/258/28 +f 408/260/29 404/261/29 406/262/29 +f 409/259/30 407/263/30 405/264/30 +f 411/265/9 419/266/9 415/267/9 +f 416/268/1 418/269/1 420/270/1 +f 52/1/1 51/271/1 50/272/1 +f 50/272/1 65/273/1 52/1/1 +f 65/273/1 64/2/1 52/1/1 +f 64/2/1 63/274/1 62/275/1 +f 62/275/1 61/276/1 60/3/1 +f 60/3/1 59/277/1 58/278/1 +f 58/278/1 57/279/1 56/280/1 +f 56/280/1 55/281/1 52/1/1 +f 55/281/1 54/282/1 52/1/1 +f 54/282/1 53/283/1 52/1/1 +f 64/2/1 62/275/1 60/3/1 +f 60/3/1 58/278/1 52/1/1 +f 58/278/1 56/280/1 52/1/1 +f 69/4/1 68/284/1 101/5/1 +f 70/7/1 69/4/1 102/8/1 +f 70/7/1 103/285/1 104/10/1 +f 71/11/1 104/286/1 105/12/1 +f 73/14/1 72/13/1 105/15/1 +f 74/17/1 73/14/1 106/18/1 +f 75/20/1 74/17/1 107/21/1 +f 75/20/1 108/287/1 109/23/1 +f 77/25/1 76/24/1 109/26/1 +f 78/28/1 77/25/1 110/29/1 +f 78/28/1 111/288/1 112/31/1 +f 79/32/1 112/289/1 113/33/1 +f 66/35/1 99/290/1 100/36/1 +f 81/38/1 80/34/1 113/39/1 +f 67/37/1 100/291/1 101/41/1 +f 81/38/1 114/292/1 99/43/1 +f 117/46/1 116/293/1 115/294/1 +f 115/294/1 130/295/1 117/46/1 +f 130/295/1 129/296/1 117/46/1 +f 129/296/1 128/297/1 127/298/1 +f 127/298/1 126/299/1 125/44/1 +f 125/44/1 124/300/1 121/45/1 +f 124/300/1 123/301/1 121/45/1 +f 123/301/1 122/302/1 121/45/1 +f 121/45/1 120/303/1 119/304/1 +f 119/304/1 118/305/1 117/46/1 +f 129/296/1 127/298/1 117/46/1 +f 127/298/1 125/44/1 117/46/1 +f 121/45/1 119/304/1 117/46/1 +f 133/47/2 131/50/2 132/48/2 +f 131/50/3 135/52/3 136/51/3 +f 142/63/7 138/60/7 137/57/7 +f 139/64/8 140/306/8 142/63/8 +f 148/67/9 146/307/9 144/65/9 +f 144/65/9 154/308/9 152/66/9 +f 152/66/9 150/309/9 148/67/9 +f 153/70/1 143/310/1 145/311/1 +f 145/311/1 147/312/1 153/70/1 +f 147/312/1 149/68/1 153/70/1 +f 158/71/1 157/313/1 190/72/1 +f 159/74/1 158/71/1 191/75/1 +f 159/74/1 192/314/1 193/77/1 +f 160/78/1 193/315/1 194/79/1 +f 162/81/1 161/80/1 194/82/1 +f 163/84/1 162/81/1 195/85/1 +f 164/87/1 163/84/1 196/88/1 +f 164/87/1 197/316/1 198/90/1 +f 166/92/1 165/91/1 198/93/1 +f 167/95/1 166/92/1 199/96/1 +f 167/95/1 200/317/1 201/98/1 +f 168/99/1 201/318/1 202/100/1 +f 155/102/1 188/319/1 189/103/1 +f 170/105/1 169/101/1 202/106/1 +f 156/104/1 189/320/1 190/108/1 +f 170/105/1 203/321/1 188/110/1 +f 206/113/1 205/322/1 204/323/1 +f 204/323/1 219/324/1 218/325/1 +f 218/325/1 217/326/1 216/327/1 +f 216/327/1 215/328/1 214/329/1 +f 214/329/1 213/330/1 212/331/1 +f 212/331/1 211/332/1 210/111/1 +f 210/111/1 209/333/1 208/112/1 +f 208/112/1 207/334/1 206/113/1 +f 206/113/1 204/323/1 214/329/1 +f 204/323/1 218/325/1 214/329/1 +f 218/325/1 216/327/1 214/329/1 +f 214/329/1 212/331/1 206/113/1 +f 212/331/1 210/111/1 206/113/1 +f 225/120/11 221/117/11 220/114/11 +f 222/121/12 223/335/12 225/120/12 +f 229/122/1 228/336/1 261/123/1 +f 230/125/1 229/122/1 262/126/1 +f 230/125/1 263/337/1 264/128/1 +f 231/129/1 264/338/1 265/130/1 +f 233/132/1 232/131/1 265/133/1 +f 234/135/1 233/132/1 266/136/1 +f 235/138/1 234/135/1 267/139/1 +f 235/138/1 268/339/1 269/141/1 +f 237/143/1 236/142/1 269/144/1 +f 237/143/1 270/340/1 271/146/1 +f 238/147/1 271/341/1 272/148/1 +f 239/149/1 272/342/1 273/150/1 +f 226/152/1 259/343/1 260/153/1 +f 241/155/1 240/151/1 273/156/1 +f 227/154/1 260/344/1 261/158/1 +f 241/155/1 274/345/1 259/160/1 +f 277/163/1 276/346/1 275/347/1 +f 275/347/1 290/348/1 289/349/1 +f 289/349/1 288/350/1 287/351/1 +f 287/351/1 286/352/1 285/161/1 +f 285/161/1 284/353/1 281/162/1 +f 284/353/1 283/354/1 281/162/1 +f 283/354/1 282/355/1 281/162/1 +f 281/162/1 280/356/1 279/357/1 +f 279/357/1 278/358/1 277/163/1 +f 277/163/1 275/347/1 289/349/1 +f 289/349/1 287/351/1 277/163/1 +f 287/351/1 285/161/1 277/163/1 +f 281/162/1 279/357/1 277/163/1 +f 296/170/14 292/167/14 291/164/14 +f 293/171/15 294/359/15 296/170/15 +f 300/172/1 299/360/1 332/173/1 +f 301/175/1 300/172/1 333/176/1 +f 301/175/1 334/361/1 335/178/1 +f 302/179/1 335/362/1 336/180/1 +f 304/182/1 303/181/1 336/183/1 +f 305/185/1 304/182/1 337/186/1 +f 306/188/1 305/185/1 338/189/1 +f 306/188/1 339/363/1 340/191/1 +f 308/193/1 307/192/1 340/194/1 +f 309/196/1 308/193/1 341/197/1 +f 309/196/1 342/364/1 343/199/1 +f 310/200/1 343/365/1 344/201/1 +f 297/203/1 330/366/1 331/204/1 +f 312/206/1 311/202/1 344/207/1 +f 298/205/1 331/367/1 332/209/1 +f 297/203/1 312/206/1 345/211/1 +f 348/215/1 347/368/1 346/369/1 +f 346/369/1 361/370/1 348/215/1 +f 361/370/1 360/371/1 348/215/1 +f 360/371/1 359/372/1 358/373/1 +f 358/373/1 357/374/1 356/213/1 +f 356/213/1 355/375/1 352/214/1 +f 355/375/1 354/376/1 352/214/1 +f 354/376/1 353/377/1 352/214/1 +f 352/214/1 351/378/1 350/379/1 +f 350/379/1 349/380/1 348/215/1 +f 360/371/1 358/373/1 348/215/1 +f 358/373/1 356/213/1 348/215/1 +f 352/214/1 350/379/1 348/215/1 +f 367/222/17 363/219/17 362/216/17 +f 364/223/18 365/381/18 367/222/18 +f 370/224/19 368/227/19 369/225/19 +f 368/227/20 372/229/20 373/228/20 +f 379/235/9 377/382/9 375/236/9 +f 375/236/9 385/383/9 383/384/9 +f 383/384/9 381/234/9 375/236/9 +f 384/239/1 374/385/1 376/386/1 +f 376/386/1 378/387/1 384/239/1 +f 378/387/1 380/237/1 384/239/1 +f 388/240/23 386/243/23 387/241/23 +f 386/243/24 390/245/24 391/244/24 +f 397/252/9 395/388/9 393/250/9 +f 393/250/9 403/389/9 401/251/9 +f 401/251/9 399/390/9 397/252/9 +f 402/255/1 392/391/1 394/392/1 +f 394/392/1 396/393/1 402/255/1 +f 396/393/1 398/253/1 402/255/1 +f 407/256/27 406/394/27 404/257/27 +f 404/257/28 408/260/28 409/259/28 +f 415/267/9 413/395/9 411/265/9 +f 411/265/9 421/396/9 419/266/9 +f 419/266/9 417/397/9 415/267/9 +f 420/270/1 410/398/1 412/399/1 +f 412/399/1 414/400/1 420/270/1 +f 414/400/1 416/268/1 420/270/1 +s 1 +f 16/401/31 1/402/32 17/403/9 +f 15/404/33 16/401/31 17/405/9 +f 14/406/34 15/404/33 17/407/9 +f 13/408/35 14/406/34 17/409/9 +f 12/410/36 13/408/35 17/411/9 +f 11/412/37 12/410/36 17/413/9 +f 10/414/38 11/412/37 17/415/9 +f 9/416/39 10/414/38 17/417/9 +f 9/416/39 17/418/9 8/419/40 +f 7/420/41 8/419/40 17/421/9 +f 6/422/42 7/420/41 17/423/9 +f 5/424/43 6/422/42 17/425/9 +f 4/426/44 5/427/43 17/428/9 +f 3/429/45 4/426/44 17/430/9 +f 2/431/46 3/429/45 17/432/9 +f 1/402/32 2/431/46 17/433/9 +f 4/426/47 22/434/48 5/427/48 +f 12/410/49 30/435/50 13/408/50 +f 5/424/48 23/436/51 6/422/51 +f 13/408/50 31/437/52 14/406/52 +f 6/422/51 24/438/53 7/420/53 +f 14/406/52 32/439/54 15/404/54 +f 7/420/53 25/440/55 8/419/55 +f 15/404/54 33/441/56 16/401/56 +f 8/419/55 26/442/57 9/416/57 +f 1/402/58 19/443/59 2/431/59 +f 16/401/56 18/444/58 1/402/58 +f 9/416/57 27/445/60 10/414/60 +f 2/431/59 20/446/61 3/429/61 +f 10/414/60 28/447/62 11/412/62 +f 3/429/61 21/448/47 4/426/47 +f 11/412/62 29/449/49 12/410/49 +f 26/442/63 43/450/64 27/445/64 +f 19/443/65 36/451/66 20/446/66 +f 27/445/64 44/452/67 28/447/67 +f 20/446/66 37/453/68 21/448/68 +f 28/447/67 45/454/69 29/449/69 +f 21/448/68 38/455/70 22/434/70 +f 29/449/69 46/456/71 30/435/71 +f 22/457/70 39/458/72 23/436/72 +f 30/435/71 47/459/73 31/437/73 +f 23/436/72 40/460/74 24/438/74 +f 31/437/73 48/461/75 32/439/75 +f 24/438/74 41/462/76 25/440/76 +f 32/439/75 49/463/77 33/441/77 +f 25/440/76 42/464/63 26/442/63 +f 18/444/78 35/465/65 19/443/65 +f 33/441/77 34/466/78 18/444/78 +f 47/467/52 64/468/54 48/469/54 +f 40/470/53 57/471/55 41/472/55 +f 48/469/54 65/473/56 49/474/56 +f 41/472/55 58/475/57 42/476/57 +f 34/477/58 51/478/59 35/479/59 +f 49/474/56 50/480/58 34/477/58 +f 42/476/57 59/481/60 43/482/60 +f 35/479/59 52/483/61 36/484/61 +f 43/482/60 60/485/62 44/486/62 +f 36/484/61 53/487/47 37/488/47 +f 44/486/62 61/489/49 45/490/49 +f 37/488/47 54/491/48 38/492/48 +f 45/490/49 62/493/50 46/494/50 +f 38/495/48 55/496/51 39/458/51 +f 46/494/50 63/497/52 47/467/52 +f 39/458/51 56/498/53 40/470/53 +f 68/42/53 83/499/51 67/37/51 +f 76/24/54 91/500/52 75/20/52 +f 69/4/55 84/501/53 68/284/53 +f 77/25/56 92/502/54 76/24/54 +f 70/7/57 85/503/55 69/4/55 +f 78/28/58 93/504/56 77/25/56 +f 71/11/60 86/505/57 70/7/57 +f 79/32/59 94/506/58 78/28/58 +f 72/13/62 87/507/60 71/11/60 +f 80/34/61 95/508/59 79/32/59 +f 73/14/49 88/509/62 72/13/62 +f 81/38/47 96/510/61 80/34/61 +f 74/17/50 89/511/49 73/14/49 +f 67/37/51 82/512/48 66/35/48 +f 66/35/48 97/513/47 81/38/47 +f 75/20/52 90/514/50 74/17/50 +f 94/506/79 98/515/80 93/504/81 +f 92/502/82 93/504/81 98/516/80 +f 91/500/83 92/502/82 98/517/80 +f 90/514/84 91/500/83 98/518/80 +f 89/511/85 90/514/84 98/519/80 +f 88/509/86 89/511/85 98/520/80 +f 87/507/87 88/509/86 98/521/80 +f 86/505/88 87/507/87 98/522/80 +f 85/503/89 86/505/88 98/523/80 +f 84/501/90 85/503/89 98/524/80 +f 83/499/91 84/525/90 98/526/80 +f 82/512/92 83/499/91 98/527/80 +f 97/513/93 82/512/92 98/528/80 +f 96/510/94 97/513/93 98/529/80 +f 95/508/95 96/510/94 98/530/80 +f 94/506/79 95/508/95 98/531/80 +f 109/23/96 124/532/97 125/533/96 +f 109/26/96 126/534/98 110/27/98 +f 110/29/98 127/535/99 111/30/99 +f 111/288/99 128/536/100 112/31/100 +f 113/33/101 128/536/100 129/537/101 +f 100/36/102 115/538/103 116/539/102 +f 113/39/101 130/540/104 114/40/104 +f 100/291/102 117/541/105 101/41/105 +f 114/292/104 115/538/103 99/43/103 +f 102/6/106 117/542/105 118/543/106 +f 102/8/106 119/544/107 103/9/107 +f 103/285/107 120/545/108 104/10/108 +f 104/286/108 121/546/109 105/12/109 +f 105/15/109 122/547/110 106/16/110 +f 106/18/110 123/548/111 107/19/111 +f 107/21/111 124/532/97 108/22/97 +f 144/549/48 145/550/112 143/551/48 +f 146/552/112 147/553/113 145/550/112 +f 148/554/113 149/555/50 147/553/113 +f 150/556/50 151/557/114 149/555/50 +f 152/558/114 153/559/115 151/557/114 +f 154/560/115 143/551/48 153/561/115 +f 157/109/54 172/562/52 156/104/52 +f 165/91/53 180/563/51 164/87/51 +f 158/71/56 173/564/54 157/313/54 +f 166/92/55 181/565/53 165/91/53 +f 159/74/58 174/566/56 158/71/56 +f 167/95/57 182/567/55 166/92/55 +f 160/78/59 175/568/58 159/74/58 +f 168/99/60 183/569/57 167/95/57 +f 161/80/61 176/570/59 160/78/59 +f 169/101/62 184/571/60 168/99/60 +f 162/81/47 177/572/61 161/80/61 +f 170/105/49 185/573/62 169/101/62 +f 163/84/48 178/574/47 162/81/47 +f 156/104/52 171/575/50 155/102/50 +f 155/102/50 186/576/49 170/105/49 +f 164/87/51 179/577/48 163/84/48 +f 183/569/116 187/578/117 182/567/118 +f 181/565/119 182/567/118 187/579/117 +f 180/563/120 181/565/119 187/580/117 +f 179/577/121 180/563/120 187/581/117 +f 178/574/122 179/577/121 187/582/117 +f 177/572/123 178/574/122 187/583/117 +f 176/570/124 177/572/123 187/584/117 +f 175/568/125 176/570/124 187/585/117 +f 174/566/126 175/568/125 187/586/117 +f 173/564/127 174/566/126 187/587/117 +f 172/562/128 173/588/127 187/589/117 +f 171/575/129 172/562/128 187/590/117 +f 186/576/130 171/575/129 187/591/117 +f 185/573/131 186/576/130 187/592/117 +f 184/571/132 185/573/131 187/593/117 +f 183/569/116 184/571/132 187/594/117 +f 198/90/105 213/595/102 214/596/105 +f 198/93/105 215/597/106 199/94/106 +f 199/96/106 216/598/107 200/97/107 +f 201/98/108 216/598/107 217/599/108 +f 202/100/109 217/599/108 218/600/109 +f 188/319/111 205/601/97 189/103/97 +f 202/106/109 219/602/110 203/107/110 +f 190/108/96 205/601/97 206/603/96 +f 203/321/110 204/604/111 188/110/111 +f 190/72/96 207/605/98 191/73/98 +f 191/75/98 208/606/99 192/76/99 +f 192/314/99 209/607/100 193/77/100 +f 193/315/100 210/608/101 194/79/101 +f 194/82/101 211/609/104 195/83/104 +f 195/85/104 212/610/103 196/86/103 +f 196/88/103 213/595/102 197/89/102 +f 228/159/62 243/611/60 227/154/60 +f 236/142/61 251/612/59 235/138/59 +f 229/122/49 244/613/62 228/336/62 +f 237/143/47 252/614/61 236/142/61 +f 230/125/50 245/615/49 229/122/49 +f 238/147/48 253/616/47 237/143/47 +f 231/129/52 246/617/50 230/125/50 +f 239/149/51 254/618/48 238/147/48 +f 232/131/54 247/619/52 231/129/52 +f 240/151/53 255/620/51 239/149/51 +f 233/132/56 248/621/54 232/131/54 +f 241/155/55 256/622/53 240/151/53 +f 234/135/58 249/623/56 233/132/56 +f 227/154/60 242/624/57 226/152/57 +f 226/152/57 257/625/55 241/155/55 +f 235/138/59 250/626/58 234/135/58 +f 254/618/133 258/627/134 253/616/135 +f 252/614/136 253/616/135 258/628/134 +f 251/612/137 252/614/136 258/629/134 +f 250/626/138 251/612/137 258/630/134 +f 249/623/139 250/626/138 258/631/134 +f 248/621/140 249/623/139 258/632/134 +f 247/619/141 248/621/140 258/633/134 +f 246/617/142 247/619/141 258/634/134 +f 245/615/143 246/617/142 258/635/134 +f 244/613/144 245/615/143 258/636/134 +f 243/611/145 244/637/144 258/638/134 +f 242/624/146 243/611/145 258/639/134 +f 257/625/147 242/624/146 258/640/134 +f 256/622/148 257/625/147 258/641/134 +f 255/620/149 256/622/148 258/642/134 +f 254/618/133 255/620/149 258/643/134 +f 268/339/100 285/644/101 269/141/101 +f 269/144/101 286/645/104 270/145/104 +f 270/340/104 287/646/103 271/146/103 +f 271/341/103 288/647/102 272/148/102 +f 273/150/105 288/647/102 289/648/105 +f 259/343/107 276/649/108 260/153/108 +f 273/156/105 290/650/106 274/157/106 +f 260/344/108 277/651/109 261/158/109 +f 274/345/106 275/652/107 259/160/107 +f 262/124/110 277/653/109 278/654/110 +f 262/126/110 279/655/111 263/127/111 +f 263/337/111 280/656/97 264/128/97 +f 264/338/97 281/657/96 265/130/96 +f 265/133/96 282/658/98 266/134/98 +f 266/136/98 283/659/99 267/137/99 +f 267/139/99 284/660/100 268/140/100 +f 299/210/61 314/661/59 298/205/59 +f 307/192/62 322/662/60 306/188/60 +f 300/172/47 315/663/61 299/360/61 +f 308/193/49 323/664/62 307/192/62 +f 301/175/48 316/665/47 300/172/47 +f 309/196/50 324/666/49 308/193/49 +f 302/179/51 317/667/48 301/175/48 +f 310/200/52 325/668/50 309/196/50 +f 303/181/53 318/669/51 302/179/51 +f 311/202/54 326/670/52 310/200/52 +f 304/182/55 319/671/53 303/181/53 +f 312/206/56 327/672/54 311/202/54 +f 305/185/57 320/673/55 304/182/55 +f 298/205/59 313/674/58 297/203/58 +f 297/203/58 328/675/56 312/206/56 +f 306/188/60 321/676/57 305/185/57 +f 325/668/150 329/677/151 324/666/152 +f 323/664/153 324/666/152 329/678/151 +f 322/662/154 323/664/153 329/679/151 +f 321/676/155 322/662/154 329/680/151 +f 320/673/156 321/676/155 329/681/151 +f 319/671/157 320/673/156 329/682/151 +f 318/669/158 319/671/157 329/683/151 +f 317/667/159 318/669/158 329/684/151 +f 316/665/160 317/667/159 329/685/151 +f 315/663/161 316/665/160 329/686/151 +f 314/661/162 315/687/161 329/688/151 +f 313/674/163 314/661/162 329/689/151 +f 328/675/164 313/674/163 329/690/151 +f 327/672/165 328/675/164 329/691/151 +f 326/670/166 327/672/165 329/692/151 +f 325/668/150 326/670/166 329/693/151 +f 340/191/109 355/694/108 356/695/109 +f 340/194/109 357/696/110 341/195/110 +f 341/197/110 358/697/111 342/198/111 +f 343/199/97 358/697/111 359/698/97 +f 343/365/97 360/699/96 344/201/96 +f 330/366/99 347/700/100 331/204/100 +f 345/208/98 360/699/96 361/701/98 +f 332/209/101 347/700/100 348/702/101 +f 345/211/98 346/703/99 330/212/99 +f 333/174/104 348/704/101 349/705/104 +f 333/176/104 350/706/103 334/177/103 +f 335/178/102 350/706/103 351/707/102 +f 335/362/102 352/708/105 336/180/105 +f 336/183/105 353/709/106 337/184/106 +f 337/186/106 354/710/107 338/187/107 +f 338/189/107 355/694/108 339/190/108 +f 375/711/50 376/712/114 374/713/50 +f 377/714/114 378/715/115 376/712/114 +f 379/716/115 380/717/48 378/715/115 +f 381/718/48 382/719/112 380/717/48 +f 383/720/112 384/721/113 382/719/112 +f 385/722/113 374/713/50 384/723/113 +f 393/724/57 394/725/167 392/726/57 +f 395/727/167 396/728/168 394/725/167 +f 397/729/168 398/730/58 396/728/168 +f 399/731/58 400/732/169 398/730/58 +f 401/733/169 402/734/170 400/732/169 +f 403/735/170 392/726/57 402/736/170 +f 411/737/58 412/738/169 410/739/58 +f 413/740/169 414/741/170 412/738/169 +f 415/742/170 416/743/57 414/741/170 +f 417/744/57 418/745/167 416/743/57 +f 419/746/167 420/747/168 418/745/167 +f 421/748/168 410/739/58 420/749/168 +f 4/426/47 21/448/47 22/434/48 +f 12/410/49 29/449/49 30/435/50 +f 5/424/48 22/457/48 23/436/51 +f 13/408/50 30/435/50 31/437/52 +f 6/422/51 23/436/51 24/438/53 +f 14/406/52 31/437/52 32/439/54 +f 7/420/53 24/438/53 25/440/55 +f 15/404/54 32/439/54 33/441/56 +f 8/419/55 25/440/55 26/442/57 +f 1/402/58 18/444/58 19/443/59 +f 16/401/56 33/441/56 18/444/58 +f 9/416/57 26/442/57 27/445/60 +f 2/431/59 19/443/59 20/446/61 +f 10/414/60 27/445/60 28/447/62 +f 3/429/61 20/446/61 21/448/47 +f 11/412/62 28/447/62 29/449/49 +f 26/442/63 42/750/63 43/450/64 +f 19/443/65 35/751/65 36/451/66 +f 27/445/64 43/752/64 44/452/67 +f 20/446/66 36/753/66 37/453/68 +f 28/447/67 44/754/67 45/454/69 +f 21/448/68 37/755/68 38/455/70 +f 29/449/69 45/756/69 46/456/71 +f 22/457/70 38/495/70 39/458/72 +f 30/435/71 46/757/71 47/459/73 +f 23/436/72 39/758/72 40/460/74 +f 31/437/73 47/759/73 48/461/75 +f 24/438/74 40/760/74 41/462/76 +f 32/439/75 48/761/75 49/463/77 +f 25/440/76 41/762/76 42/464/63 +f 18/444/78 34/763/78 35/465/65 +f 33/441/77 49/764/77 34/466/78 +f 47/467/52 63/497/52 64/468/54 +f 40/470/53 56/498/53 57/471/55 +f 48/469/54 64/468/54 65/473/56 +f 41/472/55 57/471/55 58/475/57 +f 34/477/58 50/480/58 51/478/59 +f 49/474/56 65/473/56 50/480/58 +f 42/476/57 58/475/57 59/481/60 +f 35/479/59 51/478/59 52/483/61 +f 43/482/60 59/481/60 60/485/62 +f 36/484/61 52/483/61 53/487/47 +f 44/486/62 60/485/62 61/489/49 +f 37/488/47 53/487/47 54/491/48 +f 45/490/49 61/489/49 62/493/50 +f 38/495/48 54/765/48 55/496/51 +f 46/494/50 62/493/50 63/497/52 +f 39/458/51 55/496/51 56/498/53 +f 68/42/53 84/525/53 83/499/51 +f 76/24/54 92/502/54 91/500/52 +f 69/4/55 85/503/55 84/501/53 +f 77/25/56 93/504/56 92/502/54 +f 70/7/57 86/505/57 85/503/55 +f 78/28/58 94/506/58 93/504/56 +f 71/11/60 87/507/60 86/505/57 +f 79/32/59 95/508/59 94/506/58 +f 72/13/62 88/509/62 87/507/60 +f 80/34/61 96/510/61 95/508/59 +f 73/14/49 89/511/49 88/509/62 +f 81/38/47 97/513/47 96/510/61 +f 74/17/50 90/514/50 89/511/49 +f 67/37/51 83/499/51 82/512/48 +f 66/35/48 82/512/48 97/513/47 +f 75/20/52 91/500/52 90/514/50 +f 109/23/96 108/287/97 124/532/97 +f 109/26/96 125/533/96 126/534/98 +f 110/29/98 126/534/98 127/535/99 +f 111/288/99 127/535/99 128/536/100 +f 113/33/101 112/289/100 128/536/100 +f 100/36/102 99/290/103 115/538/103 +f 113/39/101 129/537/101 130/540/104 +f 100/291/102 116/539/102 117/541/105 +f 114/292/104 130/540/104 115/538/103 +f 102/6/106 101/5/105 117/542/105 +f 102/8/106 118/543/106 119/544/107 +f 103/285/107 119/544/107 120/545/108 +f 104/286/108 120/545/108 121/546/109 +f 105/15/109 121/546/109 122/547/110 +f 106/18/110 122/547/110 123/548/111 +f 107/21/111 123/548/111 124/532/97 +f 144/549/48 146/552/112 145/550/112 +f 146/552/112 148/554/113 147/553/113 +f 148/554/113 150/556/50 149/555/50 +f 150/556/50 152/558/114 151/557/114 +f 152/558/114 154/766/115 153/559/115 +f 154/560/115 144/549/48 143/551/48 +f 157/109/54 173/588/54 172/562/52 +f 165/91/53 181/565/53 180/563/51 +f 158/71/56 174/566/56 173/564/54 +f 166/92/55 182/567/55 181/565/53 +f 159/74/58 175/568/58 174/566/56 +f 167/95/57 183/569/57 182/567/55 +f 160/78/59 176/570/59 175/568/58 +f 168/99/60 184/571/60 183/569/57 +f 161/80/61 177/572/61 176/570/59 +f 169/101/62 185/573/62 184/571/60 +f 162/81/47 178/574/47 177/572/61 +f 170/105/49 186/576/49 185/573/62 +f 163/84/48 179/577/48 178/574/47 +f 156/104/52 172/562/52 171/575/50 +f 155/102/50 171/575/50 186/576/49 +f 164/87/51 180/563/51 179/577/48 +f 198/90/105 197/316/102 213/595/102 +f 198/93/105 214/596/105 215/597/106 +f 199/96/106 215/597/106 216/598/107 +f 201/98/108 200/317/107 216/598/107 +f 202/100/109 201/318/108 217/599/108 +f 188/319/111 204/604/111 205/601/97 +f 202/106/109 218/600/109 219/602/110 +f 190/108/96 189/320/97 205/601/97 +f 203/321/110 219/602/110 204/604/111 +f 190/72/96 206/767/96 207/605/98 +f 191/75/98 207/605/98 208/606/99 +f 192/314/99 208/606/99 209/607/100 +f 193/315/100 209/607/100 210/608/101 +f 194/82/101 210/608/101 211/609/104 +f 195/85/104 211/609/104 212/610/103 +f 196/88/103 212/610/103 213/595/102 +f 228/159/62 244/637/62 243/611/60 +f 236/142/61 252/614/61 251/612/59 +f 229/122/49 245/615/49 244/613/62 +f 237/143/47 253/616/47 252/614/61 +f 230/125/50 246/617/50 245/615/49 +f 238/147/48 254/618/48 253/616/47 +f 231/129/52 247/619/52 246/617/50 +f 239/149/51 255/620/51 254/618/48 +f 232/131/54 248/621/54 247/619/52 +f 240/151/53 256/622/53 255/620/51 +f 233/132/56 249/623/56 248/621/54 +f 241/155/55 257/625/55 256/622/53 +f 234/135/58 250/626/58 249/623/56 +f 227/154/60 243/611/60 242/624/57 +f 226/152/57 242/624/57 257/625/55 +f 235/138/59 251/612/59 250/626/58 +f 268/339/100 284/660/100 285/644/101 +f 269/144/101 285/644/101 286/645/104 +f 270/340/104 286/645/104 287/646/103 +f 271/341/103 287/646/103 288/647/102 +f 273/150/105 272/342/102 288/647/102 +f 259/343/107 275/652/107 276/649/108 +f 273/156/105 289/648/105 290/650/106 +f 260/344/108 276/649/108 277/651/109 +f 274/345/106 290/650/106 275/652/107 +f 262/124/110 261/123/109 277/653/109 +f 262/126/110 278/654/110 279/655/111 +f 263/337/111 279/655/111 280/656/97 +f 264/338/97 280/656/97 281/657/96 +f 265/133/96 281/657/96 282/658/98 +f 266/136/98 282/658/98 283/659/99 +f 267/139/99 283/659/99 284/660/100 +f 299/210/61 315/687/61 314/661/59 +f 307/192/62 323/664/62 322/662/60 +f 300/172/47 316/665/47 315/663/61 +f 308/193/49 324/666/49 323/664/62 +f 301/175/48 317/667/48 316/665/47 +f 309/196/50 325/668/50 324/666/49 +f 302/179/51 318/669/51 317/667/48 +f 310/200/52 326/670/52 325/668/50 +f 303/181/53 319/671/53 318/669/51 +f 311/202/54 327/672/54 326/670/52 +f 304/182/55 320/673/55 319/671/53 +f 312/206/56 328/675/56 327/672/54 +f 305/185/57 321/676/57 320/673/55 +f 298/205/59 314/661/59 313/674/58 +f 297/203/58 313/674/58 328/675/56 +f 306/188/60 322/662/60 321/676/57 +f 340/191/109 339/363/108 355/694/108 +f 340/194/109 356/695/109 357/696/110 +f 341/197/110 357/696/110 358/697/111 +f 343/199/97 342/364/111 358/697/111 +f 343/365/97 359/698/97 360/699/96 +f 330/366/99 346/703/99 347/700/100 +f 345/208/98 344/207/96 360/699/96 +f 332/209/101 331/367/100 347/700/100 +f 345/211/98 361/701/98 346/703/99 +f 333/174/104 332/173/101 348/704/101 +f 333/176/104 349/705/104 350/706/103 +f 335/178/102 334/361/103 350/706/103 +f 335/362/102 351/707/102 352/708/105 +f 336/183/105 352/708/105 353/709/106 +f 337/186/106 353/709/106 354/710/107 +f 338/189/107 354/710/107 355/694/108 +f 375/711/50 377/714/114 376/712/114 +f 377/714/114 379/716/115 378/715/115 +f 379/716/115 381/718/48 380/717/48 +f 381/718/48 383/720/112 382/719/112 +f 383/720/112 385/768/113 384/721/113 +f 385/722/113 375/711/50 374/713/50 +f 393/724/57 395/727/167 394/725/167 +f 395/727/167 397/729/168 396/728/168 +f 397/729/168 399/731/58 398/730/58 +f 399/731/58 401/733/169 400/732/169 +f 401/733/169 403/769/170 402/734/170 +f 403/735/170 393/724/57 392/726/57 +f 411/737/58 413/740/169 412/738/169 +f 413/740/169 415/742/170 414/741/170 +f 415/742/170 417/744/57 416/743/57 +f 417/744/57 419/746/167 418/745/167 +f 419/746/167 421/770/168 420/747/168 +f 421/748/168 411/737/58 410/739/58 diff --git a/src/main/resources/assets/hbm/models/missile_huge.obj b/src/main/resources/assets/hbm/models/missile_huge.obj new file mode 100644 index 0000000000..9ded91fc78 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_huge.obj @@ -0,0 +1,1583 @@ +# Blender v2.93.4 OBJ File: '' +# www.blender.org +mtllib untitled.mtl +o Circle +v 0.923880 9.750000 0.382686 +v 0.618718 9.750000 0.618721 +v 0.808395 9.750000 0.334850 +v -0.707107 9.750000 -0.707105 +v -0.808395 9.750000 -0.334846 +v -0.923880 9.750000 -0.382681 +v 0.382683 9.750000 0.923882 +v 0.707107 9.750000 0.707109 +v -0.382683 9.750000 -0.923878 +v -0.618718 9.750000 -0.618717 +v 0.000000 9.750000 0.875002 +v 0.334848 9.750000 0.808396 +v 0.000000 9.750000 -0.999998 +v 0.334848 9.750000 -0.808393 +v 0.000000 9.750000 -0.874998 +v -0.334848 9.750000 -0.808392 +v -0.382683 9.750000 0.923882 +v 0.000000 9.750000 1.000002 +v 0.707107 9.750000 -0.707105 +v 0.382683 9.750000 -0.923878 +v -0.707107 9.750000 0.707109 +v -0.334848 9.750000 0.808396 +v 0.808394 9.750000 -0.334846 +v 0.618718 9.750000 -0.618717 +v -0.923880 9.750000 0.382686 +v -0.618718 9.750000 0.618721 +v 0.923879 9.750000 -0.382682 +v 0.875000 9.750000 0.000002 +v -1.000000 9.750000 0.000002 +v -0.808395 9.750000 0.334850 +v 1.000000 9.750000 0.000002 +v 0.265165 0.000000 -0.359835 +v -0.265165 0.000000 -0.359835 +v -0.265165 0.000000 -0.890165 +v -0.875000 9.750000 0.000002 +v 1.000000 9.375000 0.000002 +v 0.808395 9.375000 0.334850 +v 0.923880 9.375000 0.382686 +v 0.923879 9.375000 -0.382682 +v 0.875000 9.375000 0.000002 +v 0.707107 9.375000 -0.707105 +v 0.808394 9.375000 -0.334846 +v 0.382683 9.375000 -0.923878 +v 0.618718 9.375000 -0.618717 +v 0.000000 9.375000 -0.999998 +v 0.334848 9.375000 -0.808393 +v -0.382683 9.375000 -0.923878 +v 0.000000 9.375000 -0.874998 +v -0.618718 9.375000 -0.618717 +v -0.334848 9.375000 -0.808392 +v -0.707107 9.375000 -0.707105 +v -0.808395 9.375000 -0.334846 +v -0.923880 9.375000 -0.382681 +v -0.875000 9.375000 0.000002 +v -1.000000 9.375000 0.000002 +v -0.808395 9.375000 0.334850 +v -0.923880 9.375000 0.382686 +v -0.618718 9.375000 0.618721 +v -0.382683 9.375000 0.923882 +v -0.707107 9.375000 0.707109 +v 0.000000 9.375000 0.875002 +v -0.334848 9.375000 0.808396 +v 0.382683 9.375000 0.923882 +v 0.000000 9.375000 1.000002 +v 0.707107 9.375000 0.707109 +v 0.334848 9.375000 0.808396 +v 0.618718 9.375000 0.618721 +v -0.883883 0.750000 -0.883883 +v 0.883883 0.750000 -0.883884 +v 0.883883 0.750000 0.883884 +v 1.502602 0.562500 -1.502602 +v 0.839689 0.562500 -0.751301 +v 0.751301 0.562500 -0.839689 +v 0.839689 5.062500 -0.751300 +v 1.502602 2.062500 -1.502602 +v 0.751301 5.062500 -0.839688 +v 0.265165 -0.000000 0.890165 +v -0.265165 -0.000000 0.890165 +v -0.265165 -0.000000 0.359835 +v 0.890165 -0.000000 0.265165 +v 0.359835 -0.000000 0.265165 +v 0.359835 0.000000 -0.265165 +v -0.359835 -0.000000 0.265165 +v -0.890165 -0.000000 0.265165 +v -0.890165 0.000000 -0.265165 +v -1.502602 0.562500 1.502602 +v -0.839689 0.562500 0.751301 +v -0.751301 0.562500 0.839689 +v -0.839689 5.062500 0.751302 +v -1.502602 2.062500 1.502602 +v -0.751301 5.062500 0.839690 +v -1.502602 0.562500 -1.502602 +v -0.751301 0.562500 -0.839689 +v -0.839689 0.562500 -0.751301 +v -0.751301 5.062500 -0.839688 +v -1.502602 2.062500 -1.502602 +v -0.839689 5.062500 -0.751300 +v 1.502602 0.562500 1.502601 +v 0.751301 0.562500 0.839689 +v 0.839689 0.562500 0.751301 +v 0.751301 5.062500 0.839690 +v 1.502602 2.062500 1.502601 +v 0.839689 5.062500 0.751302 +v -0.143506 0.000000 -0.971455 +v 0.265165 0.000000 -0.890165 +v 0.000000 0.000000 -1.000000 +v 0.143506 0.000000 -0.971455 +v 0.346455 0.000000 -0.768507 +v 0.375000 0.000000 -0.625000 +v 0.346455 0.000000 -0.481493 +v 0.143506 0.000000 -0.278545 +v 0.000000 0.000000 -0.250000 +v -0.143506 0.000000 -0.278545 +v -0.346455 0.000000 -0.481494 +v -0.375000 0.000000 -0.625000 +v -0.346455 0.000000 -0.768506 +v -0.478354 0.750000 -1.154850 +v 0.000000 0.750000 -1.250000 +v 0.478354 0.750000 -1.154850 +v 1.154849 0.750000 -0.478354 +v 1.250000 0.750000 0.000000 +v 1.154849 0.750000 0.478354 +v 0.478354 0.750000 1.154850 +v 0.000000 0.750000 1.250000 +v -0.478354 0.750000 1.154850 +v -0.883883 0.750000 0.883883 +v -1.154849 0.750000 0.478354 +v -1.250000 0.750000 0.000000 +v -1.154849 0.750000 -0.478354 +v -0.143506 -0.000000 0.278545 +v 0.265165 -0.000000 0.359835 +v 0.000000 -0.000000 0.250000 +v 0.143506 -0.000000 0.278545 +v 0.346455 -0.000000 0.481493 +v 0.375000 -0.000000 0.625000 +v 0.346455 -0.000000 0.768507 +v 0.143506 -0.000000 0.971455 +v 0.000000 -0.000000 1.000000 +v -0.143506 -0.000000 0.971455 +v -0.346455 -0.000000 0.768506 +v -0.375000 -0.000000 0.625000 +v -0.346455 -0.000000 0.481494 +v 0.481494 0.000000 -0.346455 +v 0.890165 0.000000 -0.265165 +v 0.625000 0.000000 -0.375000 +v 0.768506 0.000000 -0.346455 +v 0.971455 0.000000 -0.143507 +v 1.000000 0.000000 0.000000 +v 0.971455 -0.000000 0.143507 +v 0.768506 -0.000000 0.346455 +v 0.625000 -0.000000 0.375000 +v 0.481494 -0.000000 0.346455 +v 0.278545 -0.000000 0.143506 +v 0.250000 0.000000 0.000000 +v 0.278545 0.000000 -0.143506 +v -0.768506 0.000000 -0.346455 +v -0.359835 0.000000 -0.265165 +v -0.625000 0.000000 -0.375000 +v -0.481494 0.000000 -0.346455 +v -0.278545 0.000000 -0.143507 +v -0.250000 0.000000 0.000000 +v -0.278545 -0.000000 0.143507 +v -0.481494 -0.000000 0.346455 +v -0.625000 -0.000000 0.375000 +v -0.768506 -0.000000 0.346455 +v -0.971455 -0.000000 0.143506 +v -1.000000 0.000000 0.000000 +v -0.971455 0.000000 -0.143506 +v -1.250000 7.875000 0.000001 +v -1.154849 7.875000 0.478355 +v -0.707107 14.250000 -0.707105 +v -0.334848 16.500000 -0.808391 +v -0.382683 14.250000 -0.923878 +v 0.707107 14.250000 0.707109 +v 0.334848 16.500000 0.808397 +v 0.382683 14.250000 0.923882 +v -0.923880 14.250000 -0.382681 +v -0.618718 16.500000 -0.618716 +v 0.923880 14.250000 0.382686 +v 0.618718 16.500000 0.618722 +v -1.000000 14.250000 0.000002 +v -0.808395 16.500000 -0.334845 +v 0.875000 16.500000 0.000003 +v 0.808395 16.500000 0.334851 +v -0.923880 14.250000 0.382686 +v -0.875000 16.500000 0.000003 +v 0.923879 14.250000 -0.382682 +v 1.000000 14.250000 0.000002 +v -0.707107 14.250000 0.707109 +v -0.808395 16.500000 0.334851 +v 0.707107 14.250000 -0.707105 +v 0.808394 16.500000 -0.334845 +v -0.382683 14.250000 0.923882 +v -0.618718 16.500000 0.618722 +v 0.382683 14.250000 -0.923878 +v 0.618718 16.500000 -0.618716 +v 0.000000 14.250000 1.000002 +v -0.334848 16.500000 0.808397 +v 0.000000 16.500000 -0.874997 +v 0.000000 14.250000 -0.999998 +v 0.334848 16.500000 -0.808392 +v 0.000000 16.500000 0.875003 +v 1.154849 7.875000 0.478355 +v 1.250000 7.875000 0.000001 +v 0.000000 20.249998 0.000003 +v -1.154849 7.875000 -0.478353 +v 0.883883 7.875000 0.883885 +v -0.883883 7.875000 -0.883882 +v 0.478354 7.875000 1.154851 +v -0.478354 7.875000 -1.154849 +v 0.000000 7.875000 1.250001 +v 0.478354 7.875000 -1.154849 +v 0.000000 7.875000 -1.249999 +v -0.478354 7.875000 1.154851 +v 0.883883 7.875000 -0.883883 +v 0.346455 0.375000 -0.481493 +v 0.176777 0.750000 -0.448223 +v 0.265165 0.375000 -0.359835 +v 0.143506 0.375000 -0.278545 +v 0.095671 0.750000 -0.394030 +v 0.000000 0.750000 -0.375000 +v 0.000000 0.375000 -0.250000 +v -0.143506 0.375000 -0.278545 +v -0.095671 0.750000 -0.394030 +v -0.176777 0.750000 -0.448223 +v -0.265165 0.375000 -0.359835 +v -0.230970 0.750000 -0.529329 +v -0.346455 0.375000 -0.481494 +v -0.250000 0.750000 -0.625000 +v -0.375000 0.375000 -0.625000 +v -0.230970 0.750000 -0.720671 +v -0.346455 0.375000 -0.768506 +v -0.176777 0.750000 -0.801777 +v -0.265165 0.375000 -0.890165 +v -0.143506 0.375000 -0.971455 +v -0.095671 0.750000 -0.855970 +v 0.000000 0.750000 -0.875000 +v 0.000000 0.375000 -1.000000 +v 0.095671 0.750000 -0.855970 +v 0.143506 0.375000 -0.971455 +v 0.176777 0.750000 -0.801777 +v 0.265165 0.375000 -0.890165 +v 0.346455 0.375000 -0.768507 +v 0.230970 0.750000 -0.720671 +v 0.375000 0.375000 -0.625000 +v 0.250000 0.750000 -0.625000 +v 0.230970 0.750000 -0.529329 +v 1.154849 7.875000 -0.478353 +v -0.883883 7.875000 0.883884 +v 0.717107 10.969501 -0.717105 +v 0.392683 12.750000 -0.933878 +v 0.717107 12.750000 -0.717105 +v 0.933879 10.969501 -0.392682 +v 0.933879 12.750000 -0.392682 +v 1.010000 10.969501 -0.009998 +v 1.010000 12.750000 -0.009998 +v 0.346455 0.375000 0.768507 +v 0.176777 0.750000 0.801777 +v 0.265165 0.375000 0.890165 +v 0.143506 0.375000 0.971455 +v 0.095671 0.750000 0.855970 +v 0.000000 0.750000 0.875000 +v 0.000000 0.375000 1.000000 +v -0.143506 0.375000 0.971455 +v -0.095671 0.750000 0.855970 +v -0.176777 0.750000 0.801777 +v -0.265165 0.375000 0.890165 +v -0.230970 0.750000 0.720671 +v -0.346455 0.375000 0.768506 +v -0.250000 0.750000 0.625000 +v -0.375000 0.375000 0.625000 +v -0.346455 0.375000 0.481494 +v -0.230970 0.750000 0.529329 +v -0.176777 0.750000 0.448223 +v -0.265165 0.375000 0.359835 +v -0.143506 0.375000 0.278545 +v -0.095671 0.750000 0.394030 +v 0.000000 0.375000 0.250000 +v 0.000000 0.750000 0.375000 +v 0.095671 0.750000 0.394030 +v 0.143506 0.375000 0.278545 +v 0.265165 0.375000 0.359835 +v 0.176777 0.750000 0.448223 +v 0.346455 0.375000 0.481493 +v 0.230970 0.750000 0.529329 +v 0.375000 0.375000 0.625000 +v 0.250000 0.750000 0.625000 +v 0.230970 0.750000 0.720671 +v 0.971455 0.375000 0.143507 +v 0.801777 0.750000 0.176777 +v 0.890165 0.375000 0.265165 +v 0.768506 0.375000 0.346455 +v 0.720671 0.750000 0.230970 +v 0.625000 0.750000 0.250000 +v 0.625000 0.375000 0.375000 +v 0.481494 0.375000 0.346455 +v 0.529329 0.750000 0.230970 +v 0.448223 0.750000 0.176777 +v 0.359835 0.375000 0.265165 +v 0.394030 0.750000 0.095671 +v 0.278545 0.375000 0.143506 +v 0.375000 0.750000 0.000000 +v 0.250000 0.375000 0.000000 +v 0.278545 0.375000 -0.143506 +v 0.394030 0.750000 -0.095671 +v 0.448223 0.750000 -0.176777 +v 0.359835 0.375000 -0.265165 +v 0.481494 0.375000 -0.346455 +v 0.529329 0.750000 -0.230970 +v 0.625000 0.750000 -0.250000 +v 0.625000 0.375000 -0.375000 +v 0.720671 0.750000 -0.230970 +v 0.768506 0.375000 -0.346455 +v 0.801777 0.750000 -0.176777 +v 0.890165 0.375000 -0.265165 +v 0.971455 0.375000 -0.143507 +v 0.855970 0.750000 -0.095671 +v 1.000000 0.375000 0.000000 +v 0.875000 0.750000 0.000000 +v 0.855970 0.750000 0.095671 +v -0.278545 0.375000 0.143507 +v -0.448223 0.750000 0.176777 +v -0.359835 0.375000 0.265165 +v -0.481494 0.375000 0.346455 +v -0.529329 0.750000 0.230970 +v -0.625000 0.750000 0.250000 +v -0.625000 0.375000 0.375000 +v -0.768506 0.375000 0.346455 +v -0.720671 0.750000 0.230970 +v -0.801777 0.750000 0.176777 +v -0.890165 0.375000 0.265165 +v -0.855970 0.750000 0.095671 +v -0.971455 0.375000 0.143506 +v -0.875000 0.750000 0.000000 +v -1.000000 0.375000 0.000000 +v -0.971455 0.375000 -0.143506 +v -0.855970 0.750000 -0.095671 +v -0.801777 0.750000 -0.176777 +v -0.890165 0.375000 -0.265165 +v -0.768506 0.375000 -0.346455 +v -0.720671 0.750000 -0.230970 +v -0.625000 0.750000 -0.250000 +v -0.625000 0.375000 -0.375000 +v -0.529329 0.750000 -0.230970 +v -0.481494 0.375000 -0.346455 +v -0.448223 0.750000 -0.176777 +v -0.359835 0.375000 -0.265165 +v -0.278545 0.375000 -0.143507 +v -0.394030 0.750000 -0.095671 +v -0.250000 0.375000 0.000000 +v -0.375000 0.750000 0.000000 +v -0.394030 0.750000 0.095671 +v -0.717106 10.969501 0.717109 +v -0.392683 12.750000 0.933882 +v -0.717106 12.750000 0.717109 +v -0.933879 10.969501 0.392686 +v -0.933879 12.750000 0.392686 +v -1.010000 10.969501 0.010002 +v -1.010000 12.750000 0.010002 +v 0.392683 10.969501 -0.933878 +v -0.392683 10.969501 0.933882 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6708 0.3162 -0.6708 +vn 0.7498 -0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6708 0.3162 0.6708 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 -0.0000 0.7498 +vn -0.6708 0.3162 -0.6708 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 -0.0000 0.6616 +vn 0.6708 0.3162 0.6708 +vn -0.6616 -0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 0.0000 +vn -0.9239 -0.0000 0.3827 +vn -0.7060 0.0555 -0.7060 +vn -0.3821 0.0555 -0.9225 +vn 0.7060 0.0555 0.7060 +vn 0.3821 0.0555 0.9225 +vn -0.9225 0.0555 -0.3821 +vn 0.9225 0.0555 0.3821 +vn -0.9985 0.0555 -0.0000 +vn 0.9985 0.0555 -0.0000 +vn -0.9225 0.0555 0.3821 +vn 0.9225 0.0555 -0.3821 +vn -0.7060 0.0555 0.7060 +vn 0.7060 0.0555 -0.7060 +vn -0.3821 0.0555 0.9225 +vn 0.3821 0.0555 -0.9225 +vn 0.0000 0.0555 0.9985 +vn -0.0000 0.0555 -0.9985 +vn 0.9239 -0.0000 0.3827 +vn 1.0000 -0.0000 0.0000 +vn -0.3727 0.2272 -0.8997 +vn -0.6886 0.2272 -0.6886 +vn -0.8997 0.2272 -0.3727 +vn -0.9738 0.2272 -0.0000 +vn -0.8997 0.2272 0.3727 +vn -0.6886 0.2272 0.6886 +vn -0.3727 0.2272 0.8997 +vn 0.0000 0.2272 0.9738 +vn 0.3727 0.2272 0.8997 +vn 0.6886 0.2272 0.6886 +vn 0.8997 0.2272 0.3727 +vn 0.9738 0.2272 -0.0000 +vn 0.8997 0.2272 -0.3727 +vn 0.6886 0.2272 -0.6886 +vn 0.3727 0.2272 -0.8997 +vn -0.0000 0.2272 -0.9738 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 -0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 -0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 -0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8765 0.3162 0.3630 +vn 0.3630 0.3162 0.8765 +vn 0.0000 0.3162 0.9487 +vn -0.3630 0.3162 0.8765 +vn -0.8765 0.3162 0.3630 +vn -0.9487 0.3162 0.0000 +vn -0.8765 0.3162 -0.3630 +vn -0.3630 0.3162 -0.8765 +vn -0.0000 0.3162 -0.9487 +vn 0.3630 0.3162 -0.8765 +vn 0.8765 0.3162 -0.3630 +vn 0.9487 0.3162 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6975 0.1644 -0.6975 +vn 0.3775 0.1644 -0.9113 +vn -0.3775 0.1644 0.9113 +vn -0.6975 0.1644 0.6975 +vn 0.9113 0.1644 -0.3775 +vn -0.9113 0.1644 0.3775 +vn 0.9864 0.1644 -0.0000 +vn -0.9864 0.1644 -0.0000 +vn 0.9113 0.1644 0.3775 +vn -0.9113 0.1644 -0.3775 +vn 0.6975 0.1644 0.6975 +vn -0.6975 0.1644 -0.6975 +vn 0.3775 0.1644 0.9113 +vn -0.3775 0.1644 -0.9113 +vn 0.0000 0.1644 0.9864 +vn 0.0000 0.1644 -0.9864 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 -0.0000 -0.1951 +vn -0.5556 -0.0000 0.8315 +vn -0.9808 -0.0000 0.1951 +usemtl Default_OBJ +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 2/2/1 8/8/1 +f 9/9/1 10/10/1 4/4/1 +f 7/7/1 11/11/1 12/12/1 +f 13/13/1 14/14/1 15/15/1 +f 9/9/1 15/15/1 16/16/1 +f 17/17/1 11/11/1 18/18/1 +f 19/19/1 14/14/1 20/20/1 +f 21/21/1 22/22/1 17/17/1 +f 19/19/1 23/23/1 24/24/1 +f 25/25/1 26/26/1 21/21/1 +f 27/27/1 28/28/1 23/23/1 +f 29/29/1 30/30/1 25/25/1 +f 31/31/1 3/3/1 28/28/1 +f 32/32/1 33/33/1 34/34/1 +f 6/6/1 35/35/1 29/36/1 +f 36/37/2 37/38/2 38/39/2 +f 39/40/2 40/41/2 36/37/2 +f 41/42/2 42/43/2 39/40/2 +f 43/44/2 44/45/2 41/42/2 +f 45/46/2 46/47/2 43/44/2 +f 47/48/2 48/49/2 45/46/2 +f 47/48/2 49/50/2 50/51/2 +f 51/52/2 52/53/2 49/50/2 +f 53/54/2 54/55/2 52/53/2 +f 55/56/2 56/57/2 54/58/2 +f 57/59/2 58/60/2 56/57/2 +f 59/61/2 58/60/2 60/62/2 +f 59/61/2 61/63/2 62/64/2 +f 63/65/2 61/63/2 64/66/2 +f 65/67/2 66/68/2 63/65/2 +f 38/39/2 67/69/2 65/67/2 +f 68/70/1 69/71/1 70/72/1 +f 71/73/1 72/74/1 73/75/1 +f 74/76/3 75/77/3 76/78/3 +f 72/74/4 75/79/4 74/76/4 +f 73/80/5 75/79/5 71/73/5 +f 77/81/1 78/82/1 79/83/1 +f 80/84/1 81/85/1 82/86/1 +f 83/87/1 84/88/1 85/89/1 +f 86/90/1 87/91/1 88/92/1 +f 89/93/6 90/94/6 91/95/6 +f 87/91/7 90/96/7 89/93/7 +f 88/97/8 90/96/8 86/90/8 +f 92/98/1 93/99/1 94/100/1 +f 95/101/9 96/102/9 97/103/9 +f 93/99/10 96/104/10 95/101/10 +f 94/105/11 96/104/11 92/98/11 +f 98/106/1 99/107/1 100/108/1 +f 101/109/12 102/110/12 103/111/12 +f 99/107/13 102/112/13 101/109/13 +f 100/113/14 102/112/14 98/106/14 +f 1/1/1 8/8/1 2/2/1 +f 4/4/1 10/10/1 5/5/1 +f 7/7/1 12/12/1 2/2/1 +f 9/9/1 16/16/1 10/10/1 +f 7/7/1 18/18/1 11/11/1 +f 13/13/1 20/20/1 14/14/1 +f 9/9/1 13/13/1 15/15/1 +f 17/17/1 22/22/1 11/11/1 +f 19/19/1 24/24/1 14/14/1 +f 21/21/1 26/26/1 22/22/1 +f 19/19/1 27/27/1 23/23/1 +f 25/25/1 30/30/1 26/26/1 +f 27/27/1 31/31/1 28/28/1 +f 29/29/1 35/114/1 30/30/1 +f 31/31/1 1/1/1 3/3/1 +f 34/34/1 104/115/1 105/116/1 +f 104/115/1 106/117/1 105/116/1 +f 106/117/1 107/118/1 105/116/1 +f 105/116/1 108/119/1 109/120/1 +f 109/120/1 110/121/1 32/32/1 +f 32/32/1 111/122/1 33/33/1 +f 111/122/1 112/123/1 33/33/1 +f 112/123/1 113/124/1 33/33/1 +f 33/33/1 114/125/1 115/126/1 +f 115/126/1 116/127/1 33/33/1 +f 116/127/1 34/34/1 33/33/1 +f 105/116/1 109/120/1 34/34/1 +f 109/120/1 32/32/1 34/34/1 +f 6/6/1 5/5/1 35/35/1 +f 36/37/2 40/41/2 37/38/2 +f 39/40/2 42/43/2 40/41/2 +f 41/42/2 44/45/2 42/43/2 +f 43/44/2 46/47/2 44/45/2 +f 45/46/2 48/49/2 46/47/2 +f 47/48/2 50/51/2 48/49/2 +f 47/48/2 51/52/2 49/50/2 +f 51/52/2 53/54/2 52/53/2 +f 53/54/2 55/128/2 54/55/2 +f 55/56/2 57/59/2 56/57/2 +f 57/59/2 60/62/2 58/60/2 +f 59/61/2 62/64/2 58/60/2 +f 59/61/2 64/66/2 61/63/2 +f 63/65/2 66/68/2 61/63/2 +f 65/67/2 67/69/2 66/68/2 +f 38/39/2 37/38/2 67/69/2 +f 68/70/1 117/129/1 118/130/1 +f 118/130/1 119/131/1 68/70/1 +f 119/131/1 69/71/1 68/70/1 +f 69/71/1 120/132/1 121/133/1 +f 121/133/1 122/134/1 70/72/1 +f 70/72/1 123/135/1 124/136/1 +f 124/136/1 125/137/1 126/138/1 +f 126/138/1 127/139/1 128/140/1 +f 128/140/1 129/141/1 68/70/1 +f 69/71/1 121/133/1 70/72/1 +f 70/72/1 124/136/1 68/70/1 +f 124/136/1 126/138/1 68/70/1 +f 126/138/1 128/140/1 68/70/1 +f 72/74/4 71/73/4 75/79/4 +f 73/80/5 76/142/5 75/79/5 +f 79/83/1 130/143/1 131/144/1 +f 130/143/1 132/145/1 131/144/1 +f 132/145/1 133/146/1 131/144/1 +f 131/144/1 134/147/1 135/148/1 +f 135/148/1 136/149/1 77/81/1 +f 77/81/1 137/150/1 78/82/1 +f 137/150/1 138/151/1 78/82/1 +f 138/151/1 139/152/1 78/82/1 +f 78/82/1 140/153/1 141/154/1 +f 141/154/1 142/155/1 78/82/1 +f 142/155/1 79/83/1 78/82/1 +f 131/144/1 135/148/1 79/83/1 +f 135/148/1 77/81/1 79/83/1 +f 82/86/1 143/156/1 144/157/1 +f 143/156/1 145/158/1 144/157/1 +f 145/158/1 146/159/1 144/157/1 +f 144/157/1 147/160/1 148/161/1 +f 148/161/1 149/162/1 80/84/1 +f 80/84/1 150/163/1 81/85/1 +f 150/163/1 151/164/1 81/85/1 +f 151/164/1 152/165/1 81/85/1 +f 81/85/1 153/166/1 154/167/1 +f 154/167/1 155/168/1 81/85/1 +f 155/168/1 82/86/1 81/85/1 +f 144/157/1 148/161/1 82/86/1 +f 148/161/1 80/84/1 82/86/1 +f 85/89/1 156/169/1 157/170/1 +f 156/169/1 158/171/1 157/170/1 +f 158/171/1 159/172/1 157/170/1 +f 157/170/1 160/173/1 161/174/1 +f 161/174/1 162/175/1 83/87/1 +f 83/87/1 163/176/1 84/88/1 +f 163/176/1 164/177/1 84/88/1 +f 164/177/1 165/178/1 84/88/1 +f 84/88/1 166/179/1 167/180/1 +f 167/180/1 168/181/1 84/88/1 +f 168/181/1 85/89/1 84/88/1 +f 157/170/1 161/174/1 85/89/1 +f 161/174/1 83/87/1 85/89/1 +f 87/91/7 86/90/7 90/96/7 +f 88/97/8 91/182/8 90/96/8 +f 93/99/10 92/98/10 96/104/10 +f 94/105/11 97/183/11 96/104/11 +f 99/107/13 98/106/13 102/112/13 +f 100/113/14 103/184/14 102/112/14 +s 1 +f 169/185/15 127/186/16 170/187/16 +f 171/188/17 172/189/18 173/190/18 +f 174/191/19 175/192/20 176/193/20 +f 177/194/21 178/195/17 171/188/17 +f 179/196/22 180/197/19 174/191/19 +f 181/198/23 182/199/21 177/194/21 +f 179/196/22 183/200/24 184/201/22 +f 185/202/25 186/203/23 181/204/23 +f 187/205/26 183/206/24 188/207/24 +f 189/208/27 190/209/25 185/202/25 +f 191/210/28 192/211/26 187/205/26 +f 193/212/29 194/213/27 189/208/27 +f 195/214/30 196/215/28 191/210/28 +f 197/216/31 198/217/29 193/212/29 +f 173/190/18 199/218/32 200/219/32 +f 200/219/32 201/220/30 195/214/30 +f 176/193/20 202/221/31 197/216/31 +f 203/222/33 121/223/34 204/224/34 +f 172/189/35 178/225/36 205/226/2 +f 178/195/36 182/227/37 205/228/2 +f 182/199/37 186/229/38 205/230/2 +f 186/203/38 190/231/39 205/232/2 +f 190/209/39 194/233/40 205/234/2 +f 194/213/40 198/235/41 205/236/2 +f 198/217/41 202/237/42 205/238/2 +f 202/221/42 175/239/43 205/240/2 +f 175/192/43 180/241/44 205/242/2 +f 180/197/44 184/243/45 205/244/2 +f 184/201/45 183/200/46 205/245/2 +f 183/206/46 192/246/47 205/247/2 +f 192/211/47 196/248/48 205/249/2 +f 196/215/48 201/250/49 205/251/2 +f 201/220/49 199/252/50 205/253/2 +f 199/218/50 172/254/35 205/255/2 +f 206/256/51 128/257/15 169/258/15 +f 207/259/52 122/260/33 203/222/33 +f 208/261/53 129/262/51 206/256/51 +f 209/263/54 70/264/52 207/259/52 +f 210/265/55 68/266/53 208/261/53 +f 211/267/56 123/268/54 209/263/54 +f 212/269/57 118/270/58 213/271/58 +f 213/271/58 117/272/55 210/265/55 +f 214/273/59 124/274/56 211/267/56 +f 215/275/60 119/276/57 212/269/57 +f 216/277/61 217/278/12 218/279/12 +f 219/280/62 217/278/12 220/281/62 +f 219/280/62 221/282/63 222/283/63 +f 223/284/64 221/285/63 224/286/64 +f 223/284/64 225/287/6 226/288/6 +f 226/288/6 227/289/65 228/290/65 +f 228/290/65 229/291/66 230/292/66 +f 230/292/66 231/293/67 232/294/67 +f 232/294/67 233/295/9 234/296/9 +f 235/297/68 233/295/9 236/298/68 +f 235/297/68 237/299/69 238/300/69 +f 238/300/69 239/301/70 240/302/70 +f 240/302/70 241/303/3 242/304/3 +f 243/305/71 241/303/3 244/306/71 +f 245/307/72 244/306/71 246/308/72 +f 116/309/51 234/296/53 34/310/53 +f 32/311/52 219/280/54 111/312/54 +f 34/310/53 235/297/55 104/313/55 +f 111/312/54 222/283/56 112/314/56 +f 106/315/58 240/302/57 107/316/57 +f 104/313/55 238/300/58 106/315/58 +f 112/317/56 223/284/59 113/318/59 +f 107/316/57 242/304/60 105/319/60 +f 113/318/59 226/288/73 33/320/73 +f 105/319/60 243/305/74 108/321/74 +f 33/320/73 228/290/16 114/322/16 +f 108/321/74 245/307/34 109/323/34 +f 114/322/16 230/292/15 115/324/15 +f 109/323/34 216/277/33 110/325/33 +f 115/324/15 232/294/51 116/309/51 +f 110/325/33 218/279/52 32/311/52 +f 245/307/72 247/326/61 216/277/61 +f 41/327/75 212/269/76 43/328/76 +f 204/224/34 120/329/74 248/330/74 +f 16/16/55 49/50/53 10/10/53 +f 12/12/54 67/69/52 2/2/52 +f 10/10/53 52/53/51 5/5/51 +f 2/2/52 37/38/33 3/3/33 +f 5/5/51 54/55/15 35/35/15 +f 3/3/33 40/41/34 28/28/34 +f 35/114/15 56/57/16 30/30/16 +f 28/28/34 42/43/74 23/23/74 +f 30/30/16 58/60/73 26/26/73 +f 23/23/74 44/45/60 24/24/60 +f 26/26/73 62/64/59 22/22/59 +f 24/24/60 46/47/57 14/14/57 +f 22/22/59 61/63/56 11/11/56 +f 15/15/58 50/51/55 16/16/55 +f 14/14/57 48/49/58 15/15/58 +f 11/11/56 66/68/54 12/12/54 +f 59/331/77 249/332/78 214/273/77 +f 39/333/79 215/275/75 41/327/75 +f 57/334/80 249/332/78 60/335/78 +f 36/336/81 248/330/79 39/333/79 +f 57/334/80 169/185/82 170/187/80 +f 36/336/81 203/222/83 204/224/81 +f 53/337/84 169/258/82 55/338/82 +f 65/339/85 203/222/83 38/340/83 +f 51/341/86 206/256/84 53/337/84 +f 65/339/85 209/263/87 207/259/85 +f 47/342/88 208/261/86 51/341/86 +f 64/343/89 209/263/87 63/344/87 +f 45/345/90 212/269/76 213/271/90 +f 45/345/90 210/265/88 47/342/88 +f 59/331/77 211/267/89 64/343/89 +f 249/332/73 125/346/59 214/273/59 +f 248/330/74 69/347/60 215/275/60 +f 170/187/16 126/348/73 249/332/73 +f 1/1/33 188/207/34 179/196/33 +f 31/31/34 187/205/74 188/207/34 +f 27/27/74 191/210/60 187/205/74 +f 19/19/60 195/214/57 191/210/60 +f 20/20/57 200/219/58 195/214/57 +f 13/13/58 173/190/55 200/219/58 +f 9/9/55 171/188/53 173/190/55 +f 4/4/53 177/194/51 171/188/53 +f 6/6/51 181/198/15 177/194/51 +f 29/29/15 185/202/16 181/204/15 +f 25/25/16 189/208/73 185/202/16 +f 21/21/73 193/212/59 189/208/73 +f 17/17/59 197/216/56 193/212/59 +f 18/18/56 176/193/54 197/216/56 +f 7/7/54 174/191/52 176/193/54 +f 8/8/52 179/196/33 174/191/52 +f 250/349/60 251/350/91 252/351/60 +f 253/352/74 252/351/60 254/353/74 +f 255/354/92 254/353/74 256/355/92 +f 257/356/61 258/357/12 259/358/12 +f 260/359/62 258/357/12 261/360/62 +f 260/359/62 262/361/63 263/362/63 +f 264/363/64 262/364/63 265/365/64 +f 264/363/64 266/366/6 267/367/6 +f 267/367/6 268/368/65 269/369/65 +f 269/369/65 270/370/66 271/371/66 +f 272/372/67 270/370/66 273/373/67 +f 272/372/67 274/374/9 275/375/9 +f 276/376/68 274/374/9 277/377/68 +f 278/378/69 277/377/68 279/379/69 +f 278/378/69 280/380/70 281/381/70 +f 282/382/3 280/380/70 283/383/3 +f 284/384/71 283/383/3 285/385/71 +f 286/386/72 285/385/71 287/387/72 +f 142/388/51 275/375/53 79/389/53 +f 77/390/52 260/359/54 137/391/54 +f 79/389/53 276/376/55 130/392/55 +f 137/391/54 263/362/56 138/393/56 +f 132/394/58 281/381/57 133/395/57 +f 130/392/55 278/378/58 132/394/58 +f 138/396/56 264/363/59 139/397/59 +f 133/395/57 282/382/60 131/398/60 +f 139/397/59 267/367/73 78/399/73 +f 131/398/60 284/384/74 134/400/74 +f 78/399/73 269/369/16 140/401/16 +f 134/400/74 286/386/34 135/402/34 +f 140/401/16 271/371/15 141/403/15 +f 135/402/34 257/356/33 136/404/33 +f 141/403/15 272/372/51 142/388/51 +f 136/404/33 259/358/52 77/390/52 +f 286/386/72 288/405/61 257/356/61 +f 289/406/61 290/407/12 291/408/12 +f 292/409/62 290/407/12 293/410/62 +f 292/409/62 294/411/63 295/412/63 +f 296/413/64 294/414/63 297/415/64 +f 296/413/64 298/416/6 299/417/6 +f 299/417/6 300/418/65 301/419/65 +f 301/419/65 302/420/66 303/421/66 +f 304/422/67 302/420/66 305/423/67 +f 304/422/67 306/424/9 307/425/9 +f 308/426/68 306/424/9 309/427/68 +f 308/426/68 310/428/69 311/429/69 +f 311/429/69 312/430/70 313/431/70 +f 313/431/70 314/432/3 315/433/3 +f 316/434/71 314/432/3 317/435/71 +f 318/436/72 317/435/71 319/437/72 +f 155/438/51 307/425/53 82/439/53 +f 80/440/52 292/409/54 150/441/54 +f 82/439/53 308/426/55 143/442/55 +f 150/441/54 295/412/56 151/443/56 +f 145/444/58 313/431/57 146/445/57 +f 143/442/55 311/429/58 145/444/58 +f 151/446/56 296/413/59 152/447/59 +f 146/445/57 315/433/60 144/448/60 +f 152/447/59 299/417/73 81/449/73 +f 144/448/60 316/434/74 147/450/74 +f 81/449/73 301/419/16 153/451/16 +f 147/450/74 318/436/34 148/452/34 +f 153/451/16 303/421/15 154/453/15 +f 148/452/34 289/406/33 149/454/33 +f 154/453/15 304/422/51 155/438/51 +f 149/454/33 291/408/52 80/440/52 +f 318/436/72 320/455/61 289/406/61 +f 321/456/61 322/457/12 323/458/12 +f 324/459/62 322/457/12 325/460/62 +f 324/459/62 326/461/63 327/462/63 +f 328/463/64 326/464/63 329/465/64 +f 328/463/64 330/466/6 331/467/6 +f 331/467/6 332/468/65 333/469/65 +f 333/469/65 334/470/66 335/471/66 +f 336/472/67 334/470/66 337/473/67 +f 336/472/67 338/474/9 339/475/9 +f 340/476/68 338/474/9 341/477/68 +f 340/476/68 342/478/69 343/479/69 +f 343/479/69 344/480/70 345/481/70 +f 345/481/70 346/482/3 347/483/3 +f 348/484/71 346/482/3 349/485/71 +f 350/486/72 349/485/71 351/487/72 +f 168/488/51 339/475/53 85/489/53 +f 83/490/52 324/459/54 163/491/54 +f 85/489/53 340/476/55 156/492/55 +f 163/491/54 327/462/56 164/493/56 +f 158/494/58 345/481/57 159/495/57 +f 156/492/55 343/479/58 158/494/58 +f 164/496/56 328/463/59 165/497/59 +f 159/495/57 347/483/60 157/498/60 +f 165/497/59 331/467/73 84/499/73 +f 157/498/60 348/484/74 160/500/74 +f 84/499/73 333/469/16 166/501/16 +f 160/500/74 350/486/34 161/502/34 +f 166/501/16 335/471/15 167/503/15 +f 161/502/34 321/456/33 162/504/33 +f 167/503/15 336/472/51 168/488/51 +f 162/504/33 323/458/52 83/490/52 +f 350/486/72 352/505/61 321/456/61 +f 353/506/73 354/507/93 355/508/73 +f 356/509/16 355/508/73 357/510/16 +f 358/511/94 357/510/16 359/512/94 +f 169/185/15 128/513/15 127/186/16 +f 171/188/17 178/225/17 172/189/18 +f 174/191/19 180/241/19 175/192/20 +f 177/194/21 182/227/21 178/195/17 +f 179/196/22 184/243/22 180/197/19 +f 181/198/23 186/229/23 182/199/21 +f 179/196/22 188/207/24 183/200/24 +f 185/202/25 190/231/25 186/203/23 +f 187/205/26 192/246/26 183/206/24 +f 189/208/27 194/233/27 190/209/25 +f 191/210/28 196/248/28 192/211/26 +f 193/212/29 198/235/29 194/213/27 +f 195/214/30 201/250/30 196/215/28 +f 197/216/31 202/237/31 198/217/29 +f 173/190/18 172/254/18 199/218/32 +f 200/219/32 199/252/32 201/220/30 +f 176/193/20 175/239/20 202/221/31 +f 203/222/33 122/260/33 121/223/34 +f 206/256/51 129/262/51 128/257/15 +f 207/259/52 70/264/52 122/260/33 +f 208/261/53 68/266/53 129/262/51 +f 209/263/54 123/268/54 70/264/52 +f 210/265/55 117/272/55 68/266/53 +f 211/267/56 124/274/56 123/268/54 +f 212/269/57 119/276/57 118/270/58 +f 213/271/58 118/270/58 117/272/55 +f 214/273/59 125/346/59 124/274/56 +f 215/275/60 69/347/60 119/276/57 +f 216/277/61 247/326/61 217/278/12 +f 219/280/62 218/279/12 217/278/12 +f 219/280/62 220/281/62 221/282/63 +f 223/284/64 222/514/63 221/285/63 +f 223/284/64 224/286/64 225/287/6 +f 226/288/6 225/287/6 227/289/65 +f 228/290/65 227/289/65 229/291/66 +f 230/292/66 229/291/66 231/293/67 +f 232/294/67 231/293/67 233/295/9 +f 235/297/68 234/296/9 233/295/9 +f 235/297/68 236/298/68 237/299/69 +f 238/300/69 237/299/69 239/301/70 +f 240/302/70 239/301/70 241/303/3 +f 243/305/71 242/304/3 241/303/3 +f 245/307/72 243/305/71 244/306/71 +f 116/309/51 232/294/51 234/296/53 +f 32/311/52 218/279/52 219/280/54 +f 34/310/53 234/296/53 235/297/55 +f 111/312/54 219/280/54 222/283/56 +f 106/315/58 238/300/58 240/302/57 +f 104/313/55 235/297/55 238/300/58 +f 112/317/56 222/514/56 223/284/59 +f 107/316/57 240/302/57 242/304/60 +f 113/318/59 223/284/59 226/288/73 +f 105/319/60 242/304/60 243/305/74 +f 33/320/73 226/288/73 228/290/16 +f 108/321/74 243/305/74 245/307/34 +f 114/322/16 228/290/16 230/292/15 +f 109/323/34 245/307/34 216/277/33 +f 115/324/15 230/292/15 232/294/51 +f 110/325/33 216/277/33 218/279/52 +f 245/307/72 246/308/72 247/326/61 +f 41/327/75 215/275/75 212/269/76 +f 204/224/34 121/223/34 120/329/74 +f 16/16/55 50/51/55 49/50/53 +f 12/12/54 66/68/54 67/69/52 +f 10/10/53 49/50/53 52/53/51 +f 2/2/52 67/69/52 37/38/33 +f 5/5/51 52/53/51 54/55/15 +f 3/3/33 37/38/33 40/41/34 +f 35/114/15 54/58/15 56/57/16 +f 28/28/34 40/41/34 42/43/74 +f 30/30/16 56/57/16 58/60/73 +f 23/23/74 42/43/74 44/45/60 +f 26/26/73 58/60/73 62/64/59 +f 24/24/60 44/45/60 46/47/57 +f 22/22/59 62/64/59 61/63/56 +f 15/15/58 48/49/58 50/51/55 +f 14/14/57 46/47/57 48/49/58 +f 11/11/56 61/63/56 66/68/54 +f 59/331/77 60/335/78 249/332/78 +f 39/333/79 248/330/79 215/275/75 +f 57/334/80 170/187/80 249/332/78 +f 36/336/81 204/224/81 248/330/79 +f 57/334/80 55/56/82 169/185/82 +f 36/336/81 38/340/83 203/222/83 +f 53/337/84 206/256/84 169/258/82 +f 65/339/85 207/259/85 203/222/83 +f 51/341/86 208/261/86 206/256/84 +f 65/339/85 63/344/87 209/263/87 +f 47/342/88 210/265/88 208/261/86 +f 64/343/89 211/267/89 209/263/87 +f 45/345/90 43/328/76 212/269/76 +f 45/345/90 213/271/90 210/265/88 +f 59/331/77 214/273/77 211/267/89 +f 249/332/73 126/348/73 125/346/59 +f 248/330/74 120/329/74 69/347/60 +f 170/187/16 127/186/16 126/348/73 +f 1/1/33 31/31/34 188/207/34 +f 31/31/34 27/27/74 187/205/74 +f 27/27/74 19/19/60 191/210/60 +f 19/19/60 20/20/57 195/214/57 +f 20/20/57 13/13/58 200/219/58 +f 13/13/58 9/9/55 173/190/55 +f 9/9/55 4/4/53 171/188/53 +f 4/4/53 6/6/51 177/194/51 +f 6/6/51 29/36/15 181/198/15 +f 29/29/15 25/25/16 185/202/16 +f 25/25/16 21/21/73 189/208/73 +f 21/21/73 17/17/59 193/212/59 +f 17/17/59 18/18/56 197/216/56 +f 18/18/56 7/7/54 176/193/54 +f 7/7/54 8/8/52 174/191/52 +f 8/8/52 1/1/33 179/196/33 +f 250/349/60 360/515/91 251/350/91 +f 253/352/74 250/349/60 252/351/60 +f 255/354/92 253/352/74 254/353/74 +f 257/356/61 288/405/61 258/357/12 +f 260/359/62 259/358/12 258/357/12 +f 260/359/62 261/360/62 262/361/63 +f 264/363/64 263/516/63 262/364/63 +f 264/363/64 265/365/64 266/366/6 +f 267/367/6 266/366/6 268/368/65 +f 269/369/65 268/368/65 270/370/66 +f 272/372/67 271/371/66 270/370/66 +f 272/372/67 273/373/67 274/374/9 +f 276/376/68 275/375/9 274/374/9 +f 278/378/69 276/376/68 277/377/68 +f 278/378/69 279/379/69 280/380/70 +f 282/382/3 281/381/70 280/380/70 +f 284/384/71 282/382/3 283/383/3 +f 286/386/72 284/384/71 285/385/71 +f 142/388/51 272/372/51 275/375/53 +f 77/390/52 259/358/52 260/359/54 +f 79/389/53 275/375/53 276/376/55 +f 137/391/54 260/359/54 263/362/56 +f 132/394/58 278/378/58 281/381/57 +f 130/392/55 276/376/55 278/378/58 +f 138/396/56 263/516/56 264/363/59 +f 133/395/57 281/381/57 282/382/60 +f 139/397/59 264/363/59 267/367/73 +f 131/398/60 282/382/60 284/384/74 +f 78/399/73 267/367/73 269/369/16 +f 134/400/74 284/384/74 286/386/34 +f 140/401/16 269/369/16 271/371/15 +f 135/402/34 286/386/34 257/356/33 +f 141/403/15 271/371/15 272/372/51 +f 136/404/33 257/356/33 259/358/52 +f 286/386/72 287/387/72 288/405/61 +f 289/406/61 320/455/61 290/407/12 +f 292/409/62 291/408/12 290/407/12 +f 292/409/62 293/410/62 294/411/63 +f 296/413/64 295/517/63 294/414/63 +f 296/413/64 297/415/64 298/416/6 +f 299/417/6 298/416/6 300/418/65 +f 301/419/65 300/418/65 302/420/66 +f 304/422/67 303/421/66 302/420/66 +f 304/422/67 305/423/67 306/424/9 +f 308/426/68 307/425/9 306/424/9 +f 308/426/68 309/427/68 310/428/69 +f 311/429/69 310/428/69 312/430/70 +f 313/431/70 312/430/70 314/432/3 +f 316/434/71 315/433/3 314/432/3 +f 318/436/72 316/434/71 317/435/71 +f 155/438/51 304/422/51 307/425/53 +f 80/440/52 291/408/52 292/409/54 +f 82/439/53 307/425/53 308/426/55 +f 150/441/54 292/409/54 295/412/56 +f 145/444/58 311/429/58 313/431/57 +f 143/442/55 308/426/55 311/429/58 +f 151/446/56 295/517/56 296/413/59 +f 146/445/57 313/431/57 315/433/60 +f 152/447/59 296/413/59 299/417/73 +f 144/448/60 315/433/60 316/434/74 +f 81/449/73 299/417/73 301/419/16 +f 147/450/74 316/434/74 318/436/34 +f 153/451/16 301/419/16 303/421/15 +f 148/452/34 318/436/34 289/406/33 +f 154/453/15 303/421/15 304/422/51 +f 149/454/33 289/406/33 291/408/52 +f 318/436/72 319/437/72 320/455/61 +f 321/456/61 352/505/61 322/457/12 +f 324/459/62 323/458/12 322/457/12 +f 324/459/62 325/460/62 326/461/63 +f 328/463/64 327/518/63 326/464/63 +f 328/463/64 329/465/64 330/466/6 +f 331/467/6 330/466/6 332/468/65 +f 333/469/65 332/468/65 334/470/66 +f 336/472/67 335/471/66 334/470/66 +f 336/472/67 337/473/67 338/474/9 +f 340/476/68 339/475/9 338/474/9 +f 340/476/68 341/477/68 342/478/69 +f 343/479/69 342/478/69 344/480/70 +f 345/481/70 344/480/70 346/482/3 +f 348/484/71 347/483/3 346/482/3 +f 350/486/72 348/484/71 349/485/71 +f 168/488/51 336/472/51 339/475/53 +f 83/490/52 323/458/52 324/459/54 +f 85/489/53 339/475/53 340/476/55 +f 163/491/54 324/459/54 327/462/56 +f 158/494/58 343/479/58 345/481/57 +f 156/492/55 340/476/55 343/479/58 +f 164/496/56 327/518/56 328/463/59 +f 159/495/57 345/481/57 347/483/60 +f 165/497/59 328/463/59 331/467/73 +f 157/498/60 347/483/60 348/484/74 +f 84/499/73 331/467/73 333/469/16 +f 160/500/74 348/484/74 350/486/34 +f 166/501/16 333/469/16 335/471/15 +f 161/502/34 350/486/34 321/456/33 +f 167/503/15 335/471/15 336/472/51 +f 162/504/33 321/456/33 323/458/52 +f 350/486/72 351/487/72 352/505/61 +f 353/506/73 361/519/93 354/507/93 +f 356/509/16 353/506/73 355/508/73 +f 358/511/94 356/509/16 357/510/16 diff --git a/src/main/resources/assets/hbm/models/missile_strong.obj b/src/main/resources/assets/hbm/models/missile_strong.obj new file mode 100644 index 0000000000..b6df75fa10 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_strong.obj @@ -0,0 +1,980 @@ +# Blender v2.93.4 OBJ File: '' +# www.blender.org +mtllib untitled1.mtl +o Circle +v 0.721781 1.000000 0.298971 +v 0.625000 1.000000 0.000000 +v 0.781250 1.000000 0.000000 +v 0.577425 1.000000 -0.239177 +v 0.721781 1.000000 -0.298971 +v 0.552428 1.000000 -0.552427 +v 0.441941 1.000000 -0.441942 +v 0.298971 1.000000 -0.721781 +v 0.239176 1.000000 -0.577425 +v 0.000000 1.000000 -0.781250 +v 0.000000 1.000000 -0.625000 +v -0.298971 1.000000 -0.721781 +v -0.239177 1.000000 -0.577425 +v -0.552428 1.000000 -0.552427 +v -0.577425 1.000000 -0.239177 +v -0.721781 1.000000 -0.298971 +v -0.781250 1.000000 0.000000 +v -0.577425 1.000000 0.239178 +v -0.721781 1.000000 0.298971 +v -0.441941 1.000000 0.441941 +v -0.552428 1.000000 0.552428 +v -0.298971 1.000000 0.721781 +v -0.239177 1.000000 0.577425 +v 0.000000 1.000000 0.781250 +v 0.239177 1.000000 0.577425 +v 0.298971 1.000000 0.721781 +v 0.552428 1.000000 0.552428 +v 0.441941 1.000000 0.441943 +v -0.441941 0.000000 -0.441941 +v 0.441941 0.000000 -0.441943 +v 0.441941 -0.000000 0.441943 +v 1.107064 9.000000 -1.107062 +v 0.416530 8.500000 -0.471771 +v 0.416530 9.500000 -0.471771 +v 0.471773 8.500000 -0.416529 +v 0.471773 9.500000 -0.416528 +v 1.107064 8.500000 -1.107062 +v 1.107065 9.000000 1.107065 +v 0.471773 8.500000 0.416531 +v 0.471773 9.500000 0.416532 +v 0.416530 8.500000 0.471774 +v 0.416530 9.500000 0.471774 +v 1.107065 8.500000 1.107065 +v 1.104855 3.000000 1.104854 +v 0.469564 0.500000 0.414320 +v 0.469564 4.500000 0.414321 +v 0.414320 0.500000 0.469563 +v 0.414320 4.500000 0.469563 +v 1.104855 0.500000 1.104854 +v -0.469564 0.500000 -0.414320 +v -1.104855 0.500000 -1.104854 +v -0.414320 0.500000 -0.469562 +v -1.104855 3.000000 -1.104853 +v -0.469564 4.500000 -0.414319 +v -0.414320 4.500000 -0.469562 +v 1.104854 3.000000 -1.104853 +v 0.414320 0.500000 -0.469562 +v 0.414320 4.500000 -0.469562 +v 0.469562 0.500000 -0.414320 +v 0.469562 4.500000 -0.414319 +v 1.104854 0.500000 -1.104854 +v -0.471773 8.500000 -0.416529 +v -1.107064 8.500000 -1.107062 +v -0.416530 8.500000 -0.471771 +v -1.107064 9.000000 -1.107062 +v -0.471773 9.500000 -0.416528 +v -0.416530 9.500000 -0.471771 +v -0.414320 0.500000 0.469564 +v -1.104854 0.500000 1.104854 +v -0.469562 0.500000 0.414320 +v -1.104854 3.000000 1.104854 +v -0.414320 4.500000 0.469564 +v -0.469562 4.500000 0.414321 +v -0.416530 8.500000 0.471774 +v -1.107064 8.500000 1.107065 +v -0.471773 8.500000 0.416531 +v -1.107064 9.000000 1.107065 +v -0.416530 9.500000 0.471774 +v -0.471773 9.500000 0.416532 +v 0.577425 1.000000 0.239178 +v -0.441941 1.000000 -0.441941 +v -0.625000 1.000000 0.000000 +v 0.000000 1.000000 0.625000 +v -0.239177 0.000000 -0.577425 +v 0.000000 0.000000 -0.625000 +v 0.239176 0.000000 -0.577425 +v 0.577425 0.000000 -0.239177 +v 0.625000 0.000000 0.000000 +v 0.577425 -0.000000 0.239177 +v 0.239177 -0.000000 0.577425 +v 0.000000 -0.000000 0.625000 +v -0.239177 -0.000000 0.577425 +v -0.441941 -0.000000 0.441941 +v -0.577425 -0.000000 0.239177 +v -0.625000 0.000000 0.000000 +v -0.577425 0.000000 -0.239177 +v -0.552428 8.250000 -0.552426 +v -0.301364 9.750000 -0.727553 +v -0.298971 8.250000 -0.721780 +v 0.552428 8.250000 0.552429 +v 0.301363 9.750000 0.727557 +v 0.298971 8.250000 0.721783 +v -0.721781 8.250000 -0.298970 +v -0.556846 9.750000 -0.556845 +v 0.721781 8.250000 0.298973 +v 0.556846 9.750000 0.556848 +v -0.781250 8.250000 0.000001 +v -0.727555 9.750000 -0.301362 +v 0.781250 8.250000 0.000001 +v 0.727555 9.750000 0.301365 +v -0.721781 8.250000 0.298973 +v -0.787500 9.750000 0.000002 +v 0.721781 8.250000 -0.298970 +v 0.787500 9.750000 0.000002 +v -0.552428 8.250000 0.552429 +v -0.727555 9.750000 0.301365 +v 0.552428 8.250000 -0.552426 +v 0.727555 9.750000 -0.301362 +v -0.298971 8.250000 0.721783 +v -0.556846 9.750000 0.556848 +v 0.298971 8.250000 -0.721780 +v 0.556846 9.750000 -0.556845 +v 0.000000 8.250000 0.781251 +v -0.301364 9.750000 0.727557 +v 0.000000 9.750000 -0.787498 +v 0.000000 8.250000 -0.781249 +v 0.301363 9.750000 -0.727553 +v 0.000000 9.750000 0.787502 +v -0.239177 10.000000 0.577427 +v 0.000000 10.000000 -0.624998 +v 0.239176 10.000000 -0.577423 +v 0.000000 10.000000 0.625002 +v -0.239177 10.000000 -0.577423 +v 0.239177 10.000000 0.577427 +v -0.441941 10.000000 -0.441940 +v 0.577425 10.000000 0.239179 +v 0.441941 10.000000 0.441944 +v -0.577425 10.000000 -0.239176 +v -0.625000 10.000000 0.000002 +v 0.577425 10.000000 -0.239176 +v 0.625000 10.000000 0.000002 +v -0.577425 10.000000 0.239179 +v -0.441941 10.000000 0.441943 +v 0.441941 10.000000 -0.441941 +v 0.441941 8.000000 0.441944 +v 0.000000 12.000000 0.000002 +v 0.577425 8.000000 0.239179 +v 0.625000 8.000000 0.000001 +v 0.577425 8.000000 -0.239176 +v 0.441941 8.000000 -0.441941 +v 0.000000 8.000000 -0.624999 +v -0.239177 8.000000 -0.577424 +v -0.441941 8.000000 -0.441940 +v -0.577425 8.000000 -0.239176 +v -0.625000 8.000000 0.000001 +v -0.577425 8.000000 0.239179 +v -0.441941 8.000000 0.441943 +v -0.239177 8.000000 0.577426 +v 0.000000 8.000000 0.625001 +v 0.239177 8.000000 0.577426 +v -0.441941 7.000000 -0.441940 +v 0.441941 7.000000 0.441944 +v -0.577425 7.000000 -0.239176 +v 0.577425 7.000000 0.239179 +v -0.625000 7.000000 0.000001 +v 0.625000 7.000000 0.000001 +v -0.577425 7.000000 0.239179 +v 0.577425 7.000000 -0.239176 +v -0.441941 7.000000 0.441942 +v 0.441941 7.000000 -0.441941 +v -0.239177 7.000000 0.577426 +v 0.239176 7.000000 -0.577424 +v 0.239176 8.000000 -0.577424 +v 0.000000 7.000000 0.625001 +v -0.239177 7.000000 -0.577424 +v 0.000000 7.000000 -0.624999 +v 0.239177 7.000000 0.577426 +v -0.298971 5.000000 0.721782 +v 0.298971 5.000000 -0.721780 +v 0.000000 5.000000 0.781251 +v -0.298971 5.000000 -0.721780 +v 0.000000 5.000000 -0.781249 +v 0.298971 5.000000 0.721782 +v -0.552428 5.000000 -0.552427 +v 0.552428 5.000000 0.552428 +v -0.721781 5.000000 -0.298970 +v 0.721781 5.000000 0.298972 +v -0.781250 5.000000 0.000001 +v 0.781250 5.000000 0.000001 +v -0.721781 5.000000 0.298972 +v 0.721781 5.000000 -0.298970 +v -0.552428 5.000000 0.552428 +v 0.552428 5.000000 -0.552427 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 -0.0000 0.6771 +vn 0.3328 0.8824 -0.3327 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 -0.0000 0.7359 +vn 0.3328 0.8824 0.3327 +vn 0.5996 0.5300 0.5996 +vn -0.5996 0.5300 -0.5996 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 -0.0000 0.6771 +vn 0.5996 0.5300 -0.5996 +vn -0.3328 0.8824 -0.3327 +vn -0.5996 0.5300 0.5996 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 -0.0000 0.7359 +vn -0.3328 0.8824 0.3327 +vn -0.7071 -0.0042 -0.7071 +vn -0.3827 -0.0042 -0.9239 +vn 0.7071 -0.0042 0.7071 +vn 0.3827 -0.0042 0.9239 +vn -0.9239 -0.0042 -0.3827 +vn 0.9239 -0.0042 0.3827 +vn -1.0000 -0.0042 -0.0000 +vn 1.0000 -0.0042 0.0000 +vn -0.9239 -0.0042 0.3827 +vn 0.9239 -0.0042 -0.3827 +vn -0.7071 -0.0042 0.7071 +vn 0.7071 -0.0042 -0.7071 +vn -0.3827 -0.0042 0.9239 +vn 0.3827 -0.0042 -0.9239 +vn -0.0000 -0.0042 1.0000 +vn 0.0000 -0.0042 -1.0000 +vn 0.0000 0.5450 0.8384 +vn -0.3209 0.5450 0.7746 +vn -0.3209 0.5450 -0.7746 +vn 0.0000 0.5450 -0.8384 +vn 0.3209 0.5450 -0.7746 +vn 0.3209 0.5450 0.7746 +vn -0.5929 0.5450 -0.5929 +vn 0.5929 0.5450 0.5929 +vn -0.7746 0.5450 -0.3209 +vn 0.7746 0.5450 0.3209 +vn -0.8384 0.5450 0.0000 +vn 0.8384 0.5450 -0.0000 +vn -0.7746 0.5450 0.3209 +vn 0.7746 0.5450 -0.3209 +vn -0.5929 0.5450 0.5929 +vn 0.5929 0.5450 -0.5929 +vn 0.5996 -0.5300 0.5996 +vn 0.7834 -0.5300 0.3245 +vn -0.3653 0.2983 -0.8818 +vn -0.6749 0.2983 -0.6749 +vn -0.0000 1.0000 0.0000 +vn -0.8818 0.2983 -0.3653 +vn -0.9545 0.2983 -0.0000 +vn -0.8818 0.2983 0.3653 +vn -0.6749 0.2983 0.6749 +vn -0.3653 0.2983 0.8818 +vn 0.0000 0.2983 0.9545 +vn 0.3653 0.2983 0.8818 +vn 0.6749 0.2983 0.6749 +vn 0.8818 0.2983 0.3653 +vn 0.9545 0.2983 -0.0000 +vn 0.8818 0.2983 -0.3653 +vn 0.6749 0.2983 -0.6749 +vn 0.3653 0.2983 -0.8818 +vn 0.0000 0.2983 -0.9545 +vn 0.8480 -0.5300 -0.0000 +vn 0.7834 -0.5300 -0.3245 +vn 0.5996 -0.5300 -0.5996 +vn 0.3245 -0.5300 -0.7834 +vn 0.0000 -0.5300 -0.8480 +vn -0.3245 -0.5300 -0.7834 +vn -0.5996 -0.5300 -0.5996 +vn -0.7834 -0.5300 -0.3245 +vn -0.8480 -0.5300 0.0000 +vn -0.7834 -0.5300 0.3245 +vn -0.5996 -0.5300 0.5996 +vn -0.3245 -0.5300 0.7834 +vn 0.0000 -0.5300 0.8480 +vn 0.3245 -0.5300 0.7834 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 -0.0000 0.9239 +vn 0.7071 -0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 -0.0000 0.3827 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 -0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7050 0.0779 0.7050 +vn -0.3815 0.0779 0.9211 +vn 0.7050 0.0779 -0.7050 +vn 0.3815 0.0779 -0.9211 +vn 0.0000 0.0779 0.9970 +vn 0.0000 0.0779 -0.9970 +vn -0.3815 0.0779 -0.9211 +vn 0.3815 0.0779 0.9211 +vn -0.7050 0.0779 -0.7050 +vn 0.7050 0.0779 0.7050 +vn -0.9211 0.0779 -0.3815 +vn 0.9211 0.0779 0.3815 +vn -0.9970 0.0779 0.0000 +vn 0.9970 0.0779 -0.0000 +vn -0.9211 0.0779 0.3815 +vn 0.9211 0.0779 -0.3815 +usemtl Default_OBJ +s off +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 4/4/1 5/5/1 +f 4/6/1 6/7/1 5/5/1 +f 7/8/1 8/9/1 6/7/1 +f 9/10/1 10/11/1 8/9/1 +f 11/12/1 12/13/1 10/11/1 +f 13/14/1 14/15/1 12/13/1 +f 14/15/1 15/16/1 16/17/1 +f 15/18/1 17/19/1 16/17/1 +f 17/20/1 18/21/1 19/22/1 +f 19/22/1 20/23/1 21/24/1 +f 20/25/1 22/26/1 21/24/1 +f 23/27/1 24/28/1 22/26/1 +f 24/28/1 25/29/1 26/30/1 +f 25/31/1 27/32/1 26/30/1 +f 28/33/1 1/1/1 27/32/1 +f 29/34/1 30/35/1 31/36/1 +f 32/37/2 33/38/2 34/39/2 +f 35/40/3 32/37/3 36/41/3 +f 32/42/4 34/43/4 36/41/4 +f 33/44/1 37/45/1 35/40/1 +f 38/46/5 39/47/5 40/48/5 +f 41/49/6 38/46/6 42/50/6 +f 38/51/7 40/52/7 42/50/7 +f 39/53/1 43/54/1 41/49/1 +f 44/55/5 45/56/5 46/57/5 +f 47/58/6 44/55/6 48/59/6 +f 44/60/8 46/61/8 48/59/8 +f 45/62/1 49/63/1 47/58/1 +f 50/64/1 51/65/1 52/66/1 +f 53/67/9 54/68/9 55/69/9 +f 52/66/10 53/70/10 55/69/10 +f 53/70/11 50/71/11 54/72/11 +f 56/73/2 57/74/2 58/75/2 +f 59/76/3 56/73/3 60/77/3 +f 56/78/12 58/79/12 60/77/12 +f 57/80/1 61/81/1 59/76/1 +f 62/82/1 63/83/1 64/84/1 +f 65/85/13 66/86/13 67/87/13 +f 64/84/10 65/88/10 67/87/10 +f 65/88/11 62/89/11 66/90/11 +f 68/91/1 69/92/1 70/93/1 +f 71/94/14 72/95/14 73/96/14 +f 70/93/15 71/97/15 73/96/15 +f 71/97/16 68/98/16 72/99/16 +f 74/100/1 75/101/1 76/102/1 +f 77/103/17 78/104/17 79/105/17 +f 76/102/15 77/106/15 79/105/15 +f 77/106/16 74/107/16 78/108/16 +f 1/1/1 80/109/1 2/2/1 +f 3/3/1 2/110/1 4/4/1 +f 4/6/1 7/111/1 6/7/1 +f 7/8/1 9/112/1 8/9/1 +f 9/10/1 11/113/1 10/11/1 +f 11/12/1 13/114/1 12/13/1 +f 13/14/1 81/115/1 14/15/1 +f 14/15/1 81/116/1 15/16/1 +f 15/18/1 82/117/1 17/19/1 +f 17/20/1 82/118/1 18/21/1 +f 19/22/1 18/119/1 20/23/1 +f 20/25/1 23/120/1 22/26/1 +f 23/27/1 83/121/1 24/28/1 +f 24/28/1 83/122/1 25/29/1 +f 25/31/1 28/123/1 27/32/1 +f 28/33/1 80/124/1 1/1/1 +f 29/34/1 84/125/1 85/126/1 +f 85/126/1 86/127/1 30/35/1 +f 30/35/1 87/128/1 88/129/1 +f 88/129/1 89/130/1 31/36/1 +f 31/36/1 90/131/1 91/132/1 +f 91/132/1 92/133/1 93/134/1 +f 93/134/1 94/135/1 95/136/1 +f 95/136/1 96/137/1 93/134/1 +f 96/137/1 29/34/1 93/134/1 +f 29/34/1 85/126/1 30/35/1 +f 30/35/1 88/129/1 31/36/1 +f 31/36/1 91/132/1 29/34/1 +f 91/132/1 93/134/1 29/34/1 +f 32/37/2 37/45/2 33/38/2 +f 35/40/3 37/45/3 32/37/3 +f 38/46/5 43/54/5 39/47/5 +f 41/49/6 43/54/6 38/46/6 +f 44/55/5 49/63/5 45/56/5 +f 47/58/6 49/63/6 44/55/6 +f 52/66/10 51/65/10 53/70/10 +f 53/70/11 51/65/11 50/71/11 +f 56/73/2 61/81/2 57/74/2 +f 59/76/3 61/81/3 56/73/3 +f 64/84/10 63/83/10 65/88/10 +f 65/88/11 63/83/11 62/89/11 +f 70/93/15 69/92/15 71/97/15 +f 71/97/16 69/92/16 68/98/16 +f 76/102/15 75/101/15 77/106/15 +f 77/106/16 75/101/16 74/107/16 +s 1 +f 97/138/18 98/139/19 99/140/19 +f 100/141/20 101/142/21 102/143/21 +f 103/144/22 104/145/18 97/138/18 +f 105/146/23 106/147/20 100/141/20 +f 107/148/24 108/149/22 103/144/22 +f 109/150/25 110/151/23 105/146/23 +f 111/152/26 112/153/24 107/154/24 +f 113/155/27 114/156/25 109/150/25 +f 115/157/28 116/158/26 111/152/26 +f 117/159/29 118/160/27 113/155/27 +f 119/161/30 120/162/28 115/157/28 +f 121/163/31 122/164/29 117/159/29 +f 123/165/32 124/166/30 119/161/30 +f 99/140/19 125/167/33 126/168/33 +f 126/168/33 127/169/31 121/163/31 +f 102/143/21 128/170/32 123/165/32 +f 128/170/34 129/171/35 124/166/35 +f 98/139/36 130/172/37 125/167/37 +f 125/167/37 131/173/38 127/169/38 +f 101/142/39 132/174/34 128/170/34 +f 104/145/40 133/175/36 98/139/36 +f 106/147/41 134/176/39 101/142/39 +f 108/149/42 135/177/40 104/145/40 +f 106/147/41 136/178/43 137/179/41 +f 112/180/44 138/181/42 108/149/42 +f 114/156/45 136/182/43 110/151/43 +f 116/158/46 139/183/44 112/153/44 +f 114/156/45 140/184/47 141/185/45 +f 120/162/48 142/186/46 116/158/46 +f 122/164/49 140/187/47 118/160/47 +f 124/166/35 143/188/48 120/162/48 +f 127/169/38 144/189/49 122/164/49 +f 145/190/50 105/146/51 100/141/50 +f 133/175/52 135/191/53 146/192/54 +f 135/177/53 138/193/55 146/194/54 +f 138/181/55 139/195/56 146/196/54 +f 139/183/56 142/197/57 146/198/54 +f 142/186/57 143/199/58 146/200/54 +f 143/188/58 129/201/59 146/202/54 +f 129/171/59 132/203/60 146/204/54 +f 132/174/60 134/205/61 146/206/54 +f 134/176/61 137/207/62 146/208/54 +f 137/179/62 136/178/63 146/209/54 +f 136/182/63 141/210/64 146/211/54 +f 141/185/64 140/184/65 146/212/54 +f 140/187/65 144/213/66 146/214/54 +f 144/189/66 131/215/67 146/216/54 +f 131/173/67 130/217/68 146/218/54 +f 130/172/68 133/219/52 146/220/54 +f 147/221/51 109/150/69 105/146/51 +f 148/222/69 113/155/70 109/150/69 +f 149/223/70 117/159/71 113/155/70 +f 150/224/71 121/163/72 117/159/71 +f 121/163/72 151/225/73 126/168/73 +f 151/226/73 99/140/74 126/168/73 +f 152/227/74 97/138/75 99/140/74 +f 153/228/75 103/144/76 97/138/75 +f 154/229/76 107/148/77 103/144/76 +f 155/230/77 111/152/78 107/154/77 +f 156/231/78 115/157/79 111/152/78 +f 157/232/79 119/161/80 115/157/79 +f 158/233/80 123/165/81 119/161/80 +f 159/234/81 102/143/82 123/165/81 +f 160/235/82 100/141/50 102/143/82 +f 152/227/83 161/236/84 153/237/84 +f 160/235/85 162/238/86 145/239/86 +f 153/228/84 163/240/87 154/241/87 +f 145/190/86 164/242/88 147/243/88 +f 154/229/87 165/244/89 155/245/89 +f 147/221/88 166/246/90 148/247/90 +f 155/230/89 167/248/91 156/249/91 +f 148/222/90 168/250/92 149/251/92 +f 156/231/91 169/252/93 157/253/93 +f 149/223/92 170/254/94 150/255/94 +f 157/232/93 171/256/95 158/257/95 +f 150/224/94 172/258/96 173/259/96 +f 158/233/95 174/260/97 159/261/97 +f 151/226/98 175/262/83 152/263/83 +f 173/264/96 176/265/98 151/225/98 +f 159/234/97 177/266/85 160/267/85 +f 169/268/99 178/269/100 171/256/100 +f 170/270/101 179/271/102 172/258/102 +f 171/272/100 180/273/103 174/260/103 +f 176/274/104 181/275/105 175/262/105 +f 172/276/102 182/277/104 176/265/104 +f 177/266/106 180/273/103 183/278/106 +f 175/279/105 184/280/107 161/236/107 +f 177/281/106 185/282/108 162/238/108 +f 161/283/107 186/284/109 163/240/109 +f 162/285/108 187/286/110 164/242/110 +f 163/287/109 188/288/111 165/244/111 +f 164/289/110 189/290/112 166/246/112 +f 165/291/111 190/292/113 167/248/113 +f 166/293/112 191/294/114 168/250/114 +f 167/295/113 192/296/99 169/252/99 +f 168/297/114 193/298/101 170/254/101 +f 187/286/88 3/3/90 189/290/90 +f 188/299/89 19/22/91 190/292/91 +f 189/290/90 5/5/92 191/294/92 +f 190/292/91 21/24/93 192/296/93 +f 191/294/92 6/7/94 193/298/94 +f 192/296/93 22/26/95 178/269/95 +f 193/298/94 8/9/96 179/271/96 +f 178/269/95 24/28/97 180/273/97 +f 182/277/98 12/13/83 181/275/83 +f 179/271/96 10/11/98 182/277/98 +f 180/273/97 26/30/85 183/278/85 +f 181/275/83 14/15/84 184/280/84 +f 183/278/85 27/32/86 185/282/86 +f 184/280/84 16/17/87 186/284/87 +f 185/282/86 1/1/88 187/286/88 +f 186/284/87 17/19/89 188/288/89 +f 7/8/94 86/300/96 9/112/96 +f 23/27/95 91/301/97 83/121/97 +f 11/12/98 84/302/83 13/114/83 +f 9/10/96 85/303/98 11/113/98 +f 83/122/97 90/304/85 25/29/85 +f 13/14/83 29/305/84 81/115/84 +f 25/31/85 31/306/86 28/123/86 +f 81/116/84 96/307/87 15/16/87 +f 28/33/86 89/308/88 80/124/88 +f 15/18/87 95/309/89 82/117/89 +f 80/109/88 88/310/90 2/2/90 +f 82/118/89 94/311/91 18/21/91 +f 2/110/90 87/312/92 4/4/92 +f 18/119/91 93/313/93 20/23/93 +f 4/6/92 30/314/94 7/111/94 +f 20/25/93 92/315/95 23/120/95 +f 97/138/18 104/145/18 98/139/19 +f 100/141/20 106/147/20 101/142/21 +f 103/144/22 108/149/22 104/145/18 +f 105/146/23 110/151/23 106/147/20 +f 107/148/24 112/180/24 108/149/22 +f 109/150/25 114/156/25 110/151/23 +f 111/152/26 116/158/26 112/153/24 +f 113/155/27 118/160/27 114/156/25 +f 115/157/28 120/162/28 116/158/26 +f 117/159/29 122/164/29 118/160/27 +f 119/161/30 124/166/30 120/162/28 +f 121/163/31 127/169/31 122/164/29 +f 123/165/32 128/170/32 124/166/30 +f 99/140/19 98/139/19 125/167/33 +f 126/168/33 125/167/33 127/169/31 +f 102/143/21 101/142/21 128/170/32 +f 128/170/34 132/203/34 129/171/35 +f 98/139/36 133/219/36 130/172/37 +f 125/167/37 130/217/37 131/173/38 +f 101/142/39 134/205/39 132/174/34 +f 104/145/40 135/191/40 133/175/36 +f 106/147/41 137/207/41 134/176/39 +f 108/149/42 138/193/42 135/177/40 +f 106/147/41 110/151/43 136/178/43 +f 112/180/44 139/195/44 138/181/42 +f 114/156/45 141/210/45 136/182/43 +f 116/158/46 142/197/46 139/183/44 +f 114/156/45 118/160/47 140/184/47 +f 120/162/48 143/199/48 142/186/46 +f 122/164/49 144/213/49 140/187/47 +f 124/166/35 129/201/35 143/188/48 +f 127/169/38 131/215/38 144/189/49 +f 145/190/50 147/243/51 105/146/51 +f 147/221/51 148/247/69 109/150/69 +f 148/222/69 149/251/70 113/155/70 +f 149/223/70 150/255/71 117/159/71 +f 150/224/71 173/259/72 121/163/72 +f 121/163/72 173/264/72 151/225/73 +f 151/226/73 152/263/74 99/140/74 +f 152/227/74 153/237/75 97/138/75 +f 153/228/75 154/241/76 103/144/76 +f 154/229/76 155/245/77 107/148/77 +f 155/230/77 156/249/78 111/152/78 +f 156/231/78 157/253/79 115/157/79 +f 157/232/79 158/257/80 119/161/80 +f 158/233/80 159/261/81 123/165/81 +f 159/234/81 160/267/82 102/143/82 +f 160/235/82 145/239/50 100/141/50 +f 152/227/83 175/279/83 161/236/84 +f 160/235/85 177/281/85 162/238/86 +f 153/228/84 161/283/84 163/240/87 +f 145/190/86 162/285/86 164/242/88 +f 154/229/87 163/287/87 165/244/89 +f 147/221/88 164/289/88 166/246/90 +f 155/230/89 165/291/89 167/248/91 +f 148/222/90 166/293/90 168/250/92 +f 156/231/91 167/295/91 169/252/93 +f 149/223/92 168/297/92 170/254/94 +f 157/232/93 169/268/93 171/256/95 +f 150/224/94 170/270/94 172/258/96 +f 158/233/95 171/272/95 174/260/97 +f 151/226/98 176/274/98 175/262/83 +f 173/264/96 172/276/96 176/265/98 +f 159/234/97 174/316/97 177/266/85 +f 169/268/99 192/296/99 178/269/100 +f 170/270/101 193/298/101 179/271/102 +f 171/272/100 178/269/100 180/273/103 +f 176/274/104 182/277/104 181/275/105 +f 172/276/102 179/271/102 182/277/104 +f 177/266/106 174/316/103 180/273/103 +f 175/279/105 181/275/105 184/280/107 +f 177/281/106 183/278/106 185/282/108 +f 161/283/107 184/280/107 186/284/109 +f 162/285/108 185/282/108 187/286/110 +f 163/287/109 186/284/109 188/288/111 +f 164/289/110 187/286/110 189/290/112 +f 165/291/111 188/299/111 190/292/113 +f 166/293/112 189/290/112 191/294/114 +f 167/295/113 190/292/113 192/296/99 +f 168/297/114 191/294/114 193/298/101 +f 187/286/88 1/1/88 3/3/90 +f 188/299/89 17/20/89 19/22/91 +f 189/290/90 3/3/90 5/5/92 +f 190/292/91 19/22/91 21/24/93 +f 191/294/92 5/5/92 6/7/94 +f 192/296/93 21/24/93 22/26/95 +f 193/298/94 6/7/94 8/9/96 +f 178/269/95 22/26/95 24/28/97 +f 182/277/98 10/11/98 12/13/83 +f 179/271/96 8/9/96 10/11/98 +f 180/273/97 24/28/97 26/30/85 +f 181/275/83 12/13/83 14/15/84 +f 183/278/85 26/30/85 27/32/86 +f 184/280/84 14/15/84 16/17/87 +f 185/282/86 27/32/86 1/1/88 +f 186/284/87 16/17/87 17/19/89 +f 7/8/94 30/317/94 86/300/96 +f 23/27/95 92/318/95 91/301/97 +f 11/12/98 85/319/98 84/302/83 +f 9/10/96 86/320/96 85/303/98 +f 83/122/97 91/321/97 90/304/85 +f 13/14/83 84/322/83 29/305/84 +f 25/31/85 90/323/85 31/306/86 +f 81/116/84 29/324/84 96/307/87 +f 28/33/86 31/325/86 89/308/88 +f 15/18/87 96/326/87 95/309/89 +f 80/109/88 89/327/88 88/310/90 +f 82/118/89 95/328/89 94/311/91 +f 2/110/90 88/329/90 87/312/92 +f 18/119/91 94/330/91 93/313/93 +f 4/6/92 87/331/92 30/314/94 +f 20/25/93 93/332/93 92/315/95 diff --git a/src/main/resources/assets/hbm/models/missile_v2.obj b/src/main/resources/assets/hbm/models/missile_v2.obj new file mode 100644 index 0000000000..16b7be9185 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_v2.obj @@ -0,0 +1,572 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_v2.blend' +# www.blender.org +o Cylinder +v 0.000000 1.500000 -0.500000 +v -0.191342 1.500000 -0.461940 +v -0.353553 1.500000 -0.353553 +v -0.461940 1.500000 -0.191342 +v -0.500000 1.500000 0.000000 +v -0.461940 1.500000 0.191342 +v -0.353553 1.500000 0.353553 +v -0.191342 1.500000 0.461940 +v -0.000000 1.500000 0.500000 +v 0.191342 1.500000 0.461940 +v 0.353553 1.500000 0.353553 +v 0.461940 1.500000 0.191342 +v 0.500000 1.500000 -0.000000 +v 0.461940 1.500000 -0.191342 +v 0.353553 1.500000 -0.353554 +v 0.191341 1.500000 -0.461940 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 7.000000 0.000000 +v -0.000000 0.500000 -0.375000 +v -0.143506 0.500000 -0.346455 +v -0.265165 0.500000 -0.265165 +v -0.346455 0.500000 -0.143506 +v -0.375000 0.500000 0.000000 +v -0.346455 0.500000 0.143506 +v -0.265165 0.500000 0.265165 +v -0.143506 0.500000 0.346455 +v -0.000000 0.500000 0.375000 +v 0.143506 0.500000 0.346455 +v 0.265165 0.500000 0.265165 +v 0.346455 0.500000 0.143506 +v 0.375000 0.500000 -0.000000 +v 0.346455 0.500000 -0.143506 +v 0.265165 0.500000 -0.265165 +v 0.143506 0.500000 -0.346455 +v -0.198874 0.500000 -0.243068 +v 0.243068 0.500000 -0.198874 +v -0.552427 -0.000000 -0.596621 +v -0.198874 2.500000 -0.243068 +v -0.596621 -0.000000 -0.552427 +v 0.596621 -0.000000 -0.552427 +v -0.243068 0.500000 -0.198874 +v -0.243068 2.500000 -0.198874 +v -0.729204 -0.000000 -0.773398 +v -0.729204 1.500000 -0.773398 +v -0.773398 1.500000 -0.729204 +v -0.773398 -0.000000 -0.729204 +v 0.243068 2.500000 -0.198874 +v 0.552427 -0.000000 -0.596621 +v 0.198874 0.500000 -0.243068 +v 0.198874 2.500000 -0.243068 +v 0.773398 -0.000000 -0.729204 +v 0.773398 1.500000 -0.729204 +v 0.729204 1.500000 -0.773398 +v 0.729204 -0.000000 -0.773398 +v -0.729204 -0.000000 0.773398 +v -0.729204 1.500000 0.773398 +v -0.773398 1.500000 0.729204 +v -0.773398 -0.000000 0.729204 +v -0.198874 2.500000 0.243068 +v -0.198874 0.500000 0.243068 +v -0.552427 -0.000000 0.596621 +v -0.243068 2.500000 0.198874 +v -0.596621 -0.000000 0.552427 +v -0.243068 0.500000 0.198874 +v 0.773398 -0.000000 0.729204 +v 0.773398 1.500000 0.729204 +v 0.729204 1.500000 0.773398 +v 0.729204 -0.000000 0.773398 +v 0.243068 2.500000 0.198874 +v 0.243068 0.500000 0.198874 +v 0.596621 -0.000000 0.552427 +v 0.198874 2.500000 0.243068 +v 0.552427 -0.000000 0.596621 +v 0.198874 0.500000 0.243068 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 -0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn 0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn -0.0000 0.0413 -0.9991 +vn -0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn -0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn -0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn -0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 64/1/1 60/2/1 56/3/1 +f 84/4/2 82/5/2 85/6/2 +f 76/7/3 74/8/3 77/9/3 +f 66/10/4 70/11/4 68/12/4 +f 67/13/5 79/14/5 71/15/5 +f 75/16/2 66/17/2 74/18/2 +f 83/19/6 67/20/6 82/21/6 +f 76/7/7 77/9/7 72/22/7 +f 84/4/3 85/6/3 80/23/3 +f 70/11/1 74/24/1 68/12/1 +f 75/25/8 73/26/8 69/27/8 +f 71/15/1 85/6/1 82/28/1 +f 83/29/9 81/30/9 78/31/9 +f 93/32/10 87/33/10 90/34/10 +f 92/35/1 89/36/1 94/37/1 +f 87/33/6 86/38/6 91/39/6 +f 88/40/3 95/41/3 89/42/3 +f 95/43/11 92/35/11 94/37/11 +f 87/33/7 89/44/7 86/38/7 +f 98/45/12 100/46/12 103/47/12 +f 104/48/1 96/49/1 99/50/1 +f 97/51/2 96/49/2 101/52/2 +f 98/53/7 105/54/7 99/55/7 +f 101/56/13 104/48/13 105/57/13 +f 97/51/6 99/58/6 96/49/6 +f 52/59/1 51/60/1 50/61/1 +f 50/61/1 65/62/1 64/1/1 +f 64/1/1 63/63/1 60/2/1 +f 63/63/1 62/64/1 60/2/1 +f 62/64/1 61/65/1 60/2/1 +f 60/2/1 59/66/1 56/3/1 +f 59/66/1 58/67/1 56/3/1 +f 58/67/1 57/68/1 56/3/1 +f 56/3/1 55/69/1 54/70/1 +f 54/70/1 53/71/1 52/59/1 +f 52/59/1 50/61/1 64/1/1 +f 56/3/1 54/70/1 52/59/1 +f 52/59/1 64/1/1 56/3/1 +f 84/4/2 83/29/2 82/5/2 +f 76/7/3 75/25/3 74/8/3 +f 66/10/4 72/72/4 70/11/4 +f 67/13/5 80/73/5 79/14/5 +f 69/74/2 66/17/2 75/16/2 +f 66/17/2 68/75/2 74/18/2 +f 78/76/6 67/20/6 83/19/6 +f 67/20/6 71/77/6 82/21/6 +f 70/11/7 72/22/7 77/9/7 +f 72/22/7 73/78/7 76/7/7 +f 79/14/3 80/23/3 85/6/3 +f 80/23/3 81/79/3 84/4/3 +f 70/11/1 77/9/1 74/24/1 +f 75/25/8 76/7/8 73/26/8 +f 71/15/1 79/14/1 85/6/1 +f 83/29/9 84/4/9 81/30/9 +f 93/32/10 88/80/10 87/33/10 +f 92/35/1 86/38/1 89/36/1 +f 92/35/6 91/39/6 86/38/6 +f 91/39/6 90/81/6 87/33/6 +f 93/82/3 95/41/3 88/40/3 +f 95/41/3 94/83/3 89/42/3 +f 95/43/11 91/84/11 92/35/11 +f 87/33/7 88/80/7 89/44/7 +f 98/45/12 97/51/12 100/46/12 +f 104/48/1 102/85/1 96/49/1 +f 102/85/2 101/52/2 96/49/2 +f 101/52/2 100/86/2 97/51/2 +f 103/87/7 105/54/7 98/53/7 +f 105/54/7 104/88/7 99/55/7 +f 101/56/13 102/85/13 104/48/13 +f 97/51/6 98/45/6 99/58/6 +s 1 +f 11/89/14 26/90/15 10/91/16 +f 4/92/17 19/93/18 3/94/19 +f 12/95/20 27/96/21 11/89/14 +f 5/97/22 20/98/23 4/92/17 +f 13/99/24 28/100/25 12/95/20 +f 6/101/26 21/102/27 5/103/22 +f 14/104/28 29/105/29 13/99/24 +f 7/106/30 22/107/31 6/101/26 +f 15/108/32 30/109/33 14/104/28 +f 8/110/34 23/111/35 7/106/30 +f 16/112/36 31/113/37 15/108/32 +f 8/110/34 25/114/38 24/115/39 +f 2/116/40 17/117/41 1/118/42 +f 1/118/42 32/119/43 16/112/36 +f 10/91/16 25/114/38 9/120/44 +f 3/94/19 18/121/45 2/116/40 +f 32/119/43 33/122/46 48/123/47 +f 26/90/15 41/124/48 25/114/38 +f 18/121/45 35/125/49 34/126/50 +f 26/90/15 43/127/51 42/128/52 +f 20/98/23 35/129/49 19/93/18 +f 28/100/25 43/130/51 27/96/21 +f 20/98/23 37/131/53 36/132/54 +f 28/100/25 45/133/55 44/134/56 +f 22/107/31 37/135/53 21/102/27 +f 30/109/33 45/136/55 29/105/29 +f 22/107/31 39/137/57 38/138/58 +f 31/113/37 46/139/59 30/109/33 +f 24/115/39 39/140/57 23/111/35 +f 32/119/43 47/141/60 31/113/37 +f 25/114/38 40/142/61 24/115/39 +f 18/121/45 33/143/46 17/117/41 +f 34/126/50 35/125/49 49/144/62 +f 35/129/49 36/145/54 49/146/62 +f 36/132/54 37/131/53 49/147/62 +f 37/135/53 38/148/58 49/149/62 +f 38/138/58 39/137/57 49/150/62 +f 39/140/57 40/151/61 49/152/62 +f 40/142/61 41/153/48 49/154/62 +f 41/124/48 42/155/52 49/156/62 +f 42/128/52 43/127/51 49/157/62 +f 43/130/51 44/158/56 49/159/62 +f 44/134/56 45/133/55 49/160/62 +f 45/136/55 46/161/59 49/162/62 +f 46/139/59 47/163/60 49/164/62 +f 47/141/60 48/165/47 49/166/62 +f 48/123/47 33/122/46 49/167/62 +f 33/143/46 34/168/50 49/169/62 +f 10/91/16 60/170/63 11/89/14 +f 4/92/17 52/171/64 53/172/65 +f 12/95/20 60/173/63 61/174/66 +f 5/97/22 53/175/65 54/176/67 +f 13/99/24 61/177/66 62/178/68 +f 6/101/26 54/179/67 55/180/69 +f 13/99/24 63/181/70 14/104/28 +f 6/101/26 56/182/71 7/106/30 +f 14/104/28 64/183/72 15/108/32 +f 7/106/30 57/184/73 8/110/34 +f 16/112/36 64/185/72 65/186/74 +f 8/110/34 58/187/75 9/120/44 +f 1/118/42 51/188/76 2/116/40 +f 16/112/36 50/189/77 1/118/42 +f 10/91/16 58/190/75 59/191/78 +f 3/94/19 51/192/76 52/193/64 +f 11/89/14 27/96/21 26/90/15 +f 4/92/17 20/98/23 19/93/18 +f 12/95/20 28/100/25 27/96/21 +f 5/97/22 21/194/27 20/98/23 +f 13/99/24 29/105/29 28/100/25 +f 6/101/26 22/107/31 21/102/27 +f 14/104/28 30/109/33 29/105/29 +f 7/106/30 23/111/35 22/107/31 +f 15/108/32 31/113/37 30/109/33 +f 8/110/34 24/115/39 23/111/35 +f 16/112/36 32/119/43 31/113/37 +f 8/110/34 9/120/44 25/114/38 +f 2/116/40 18/121/45 17/117/41 +f 1/118/42 17/117/41 32/119/43 +f 10/91/16 26/90/15 25/114/38 +f 3/94/19 19/93/18 18/121/45 +f 32/119/43 17/117/41 33/122/46 +f 26/90/15 42/155/52 41/124/48 +f 18/121/45 19/93/18 35/125/49 +f 26/90/15 27/96/21 43/127/51 +f 20/98/23 36/145/54 35/129/49 +f 28/100/25 44/158/56 43/130/51 +f 20/98/23 21/194/27 37/131/53 +f 28/100/25 29/105/29 45/133/55 +f 22/107/31 38/148/58 37/135/53 +f 30/109/33 46/161/59 45/136/55 +f 22/107/31 23/111/35 39/137/57 +f 31/113/37 47/163/60 46/139/59 +f 24/115/39 40/151/61 39/140/57 +f 32/119/43 48/165/47 47/141/60 +f 25/114/38 41/153/48 40/142/61 +f 18/121/45 34/168/50 33/143/46 +f 10/91/16 59/195/78 60/170/63 +f 4/92/17 3/94/19 52/171/64 +f 12/95/20 11/89/14 60/173/63 +f 5/97/22 4/92/17 53/175/65 +f 13/99/24 12/95/20 61/177/66 +f 6/101/26 5/103/22 54/179/67 +f 13/99/24 62/196/68 63/181/70 +f 6/101/26 55/197/69 56/182/71 +f 14/104/28 63/198/70 64/183/72 +f 7/106/30 56/199/71 57/184/73 +f 16/112/36 15/108/32 64/185/72 +f 8/110/34 57/200/73 58/187/75 +f 1/118/42 50/201/77 51/188/76 +f 16/112/36 65/202/74 50/189/77 +f 10/91/16 9/120/44 58/190/75 +f 3/94/19 2/116/40 51/192/76 diff --git a/src/main/resources/assets/hbm/models/missilegeneric.obj b/src/main/resources/assets/hbm/models/missilegeneric.obj deleted file mode 100644 index 82b20117ec..0000000000 --- a/src/main/resources/assets/hbm/models/missilegeneric.obj +++ /dev/null @@ -1,689 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileGeneric.blend' -# www.blender.org -o Cylinder -v 0.097545 2.500000 -0.490393 -v 0.277785 2.500000 -0.415735 -v 0.277785 0.500000 -0.415735 -v 0.415735 2.500000 -0.277785 -v 0.415735 0.500000 -0.277785 -v 0.490393 2.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 2.500000 0.097545 -v 0.415735 2.500000 0.277785 -v 0.415735 0.500000 0.277785 -v 0.277785 2.500000 0.415735 -v 0.277785 0.500000 0.415735 -v 0.097545 2.500000 0.490393 -v 0.097545 0.500000 0.490393 -v -0.097545 2.500000 0.490393 -v -0.277785 2.500000 0.415735 -v -0.277785 0.500000 0.415735 -v -0.415735 2.500000 0.277785 -v -0.415735 0.500000 0.277785 -v -0.490393 2.500000 0.097545 -v -0.490393 0.500000 0.097545 -v -0.490393 2.500000 -0.097545 -v -0.415735 2.500000 -0.277785 -v -0.415735 0.500000 -0.277785 -v 0.367794 3.500000 -0.073159 -v 0.367794 3.500000 0.073159 -v -0.277785 0.500000 -0.415735 -v -0.277785 2.500000 -0.415735 -v -0.097545 2.500000 -0.490393 -v -0.097545 0.500000 0.490393 -v -0.082913 -0.000000 0.416834 -v 0.082913 -0.000000 0.416834 -v -0.236117 0.000000 -0.353375 -v -0.082913 0.000000 -0.416834 -v -0.353375 0.000000 -0.236117 -v -0.416834 -0.000000 0.082913 -v -0.353375 -0.000000 0.236117 -v 0.416834 0.000000 -0.082913 -v 0.353375 0.000000 -0.236117 -v 0.236117 -0.000000 0.353375 -v 0.353375 -0.000000 0.236117 -v -0.236117 -0.000000 0.353375 -v 0.236117 0.000000 -0.353375 -v 0.082913 0.000000 -0.416834 -v -0.490393 0.500000 -0.097545 -v -0.416834 0.000000 -0.082913 -v 0.490393 0.500000 0.097545 -v 0.416834 -0.000000 0.082913 -v -0.097545 0.500000 -0.490393 -v 0.097545 0.500000 -0.490393 -v 0.036579 3.750000 -0.717794 -v -0.073159 4.500000 -0.367794 -v 0.073159 4.500000 -0.367794 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 0.311801 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v 0.208339 3.500000 -0.311801 -v 0.311801 3.500000 -0.208339 -v -0.367795 3.500000 -0.073159 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.073159 3.500000 0.367795 -v 0.311801 3.500000 0.208339 -v -0.367795 3.500000 0.073159 -v -0.208339 4.500000 0.311801 -v -0.073159 4.500000 0.367795 -v 0.000000 5.500000 0.000000 -v -0.367795 4.500000 0.073159 -v -0.367795 4.500000 -0.073159 -v -0.036580 3.750000 -0.717794 -v 0.073159 4.500000 0.367794 -v -0.367795 3.750000 -0.036579 -v 0.367794 4.500000 -0.073159 -v 0.367794 4.500000 0.073159 -v -0.311801 4.500000 0.208339 -v -0.311801 4.500000 -0.208339 -v -0.208339 4.500000 -0.311801 -v 0.208338 4.500000 -0.311801 -v 0.311801 4.500000 -0.208339 -v 0.311801 4.500000 0.208339 -v 0.208339 4.500000 0.311801 -v 0.490393 0.500000 -0.048772 -v 0.490393 2.500000 -0.048772 -v -0.490393 2.500000 0.048773 -v 0.490393 2.500000 0.048773 -v -0.367795 4.250000 -0.036579 -v -0.036580 4.000000 -0.717794 -v 0.036579 4.000000 -0.717794 -v 0.036579 3.750000 -0.367794 -v -0.036580 3.750000 -0.367794 -v 0.036579 4.250000 -0.367794 -v -0.367795 3.750000 0.036580 -v -0.367795 4.250000 0.036580 -v -0.036580 4.250000 -0.367794 -v -0.036580 4.000000 0.717795 -v 0.036579 4.000000 0.717795 -v 0.036579 3.750000 0.717795 -v -0.036580 3.750000 0.717795 -v 0.036579 4.250000 0.367795 -v 0.036579 3.750000 0.367795 -v -0.036580 4.250000 0.367795 -v -0.036580 3.750000 0.367795 -v -0.717795 3.750000 -0.036579 -v -0.717795 3.750000 0.036580 -v -0.717795 4.000000 0.036580 -v -0.717795 4.000000 -0.036579 -v 0.367794 4.250000 -0.036579 -v 0.367794 4.250000 0.036580 -v 0.367794 3.750000 -0.036579 -v 0.367794 3.750000 0.036580 -v 0.717794 4.000000 0.036580 -v 0.717794 4.000000 -0.036579 -v 0.717794 3.750000 -0.036579 -v 0.717794 3.750000 0.036580 -v -0.490393 0.500000 0.048773 -v -0.490393 2.500000 -0.048772 -v -0.490393 0.500000 -0.048772 -v 0.490393 0.500000 0.048773 -v 0.990393 0.500000 -0.048772 -v 0.990393 0.500000 0.048773 -v -0.990393 0.500000 0.048773 -v -0.990393 0.500000 -0.048772 -v -0.048772 0.500000 -0.490393 -v -0.048772 2.500000 -0.490393 -v 0.048772 2.500000 0.490393 -v 0.048773 2.500000 -0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 2.500000 0.490393 -v -0.048773 0.500000 0.490393 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.990393 -v 0.048773 0.500000 -0.990393 -v 0.048772 0.500000 0.990393 -v -0.048773 0.500000 0.990393 -vt 0.675359 0.367717 -vt 0.649979 0.367716 -vt 0.649980 0.107528 -vt 0.624599 0.367716 -vt 0.624599 0.107528 -vt 0.599219 0.367716 -vt 0.599219 0.107528 -vt 0.979922 0.367717 -vt 0.954542 0.367717 -vt 0.954542 0.107528 -vt 0.929161 0.367717 -vt 0.929162 0.107528 -vt 0.903781 0.367717 -vt 0.903782 0.107528 -vt 0.878401 0.367717 -vt 0.853021 0.367717 -vt 0.853021 0.107528 -vt 0.827641 0.367717 -vt 0.827641 0.107528 -vt 0.802261 0.367717 -vt 0.802261 0.107528 -vt 0.776880 0.367717 -vt 0.751500 0.367717 -vt 0.751500 0.107528 -vt 0.596047 0.498786 -vt 0.577011 0.498786 -vt 0.726120 0.107528 -vt 0.726120 0.367717 -vt 0.700740 0.367717 -vt 0.878401 0.107528 -vt 0.880305 0.041781 -vt 0.901878 0.041781 -vt 0.157460 0.217655 -vt 0.165715 0.237586 -vt 0.142205 0.202401 -vt 0.804164 0.041781 -vt 0.825737 0.041781 -vt 0.601122 0.041780 -vt 0.622696 0.041780 -vt 0.728024 0.041781 -vt 0.931065 0.041781 -vt 0.952639 0.041781 -vt 0.854925 0.041781 -vt 0.876498 0.041781 -vt 0.651883 0.041780 -vt 0.673456 0.041780 -vt 0.776881 0.107528 -vt 0.778784 0.041781 -vt 0.800357 0.041781 -vt 0.573839 0.107528 -vt 0.575742 0.041781 -vt 0.597315 0.041781 -vt 0.700740 0.107528 -vt 0.702643 0.041781 -vt 0.724217 0.041781 -vt 0.675360 0.107528 -vt 0.677263 0.041781 -vt 0.698836 0.041781 -vt 0.905685 0.041781 -vt 0.927258 0.041781 -vt 0.829544 0.041781 -vt 0.851118 0.041781 -vt 0.626503 0.041780 -vt 0.648076 0.041781 -vt 0.753404 0.041781 -vt 0.956446 0.041781 -vt 0.978019 0.041781 -vt 0.722948 0.498786 -vt 0.703912 0.498786 -vt 0.697567 0.498786 -vt 0.678532 0.498786 -vt 0.925989 0.498785 -vt 0.849848 0.498785 -vt 0.830813 0.498785 -vt 0.646807 0.498785 -vt 0.627772 0.498785 -vt 0.773708 0.498785 -vt 0.754673 0.498785 -vt 0.976749 0.498785 -vt 0.900609 0.498786 -vt 0.881573 0.498786 -vt 0.824468 0.498785 -vt 0.621427 0.498785 -vt 0.748328 0.498785 -vt 0.729293 0.498785 -vt 0.951369 0.498785 -vt 0.932334 0.498785 -vt 0.875228 0.498785 -vt 0.856193 0.498785 -vt 0.672187 0.498785 -vt 0.799088 0.498786 -vt 0.426882 0.171875 -vt 0.445917 0.171875 -vt 0.436400 0.310489 -vt 0.417365 0.310489 -vt 0.407847 0.171875 -vt 0.398330 0.310490 -vt 0.388812 0.171875 -vt 0.379295 0.310489 -vt 0.369777 0.171875 -vt 0.360259 0.310490 -vt 0.350742 0.171875 -vt 0.341224 0.310490 -vt 0.331707 0.171875 -vt 0.322189 0.310489 -vt 0.312672 0.171875 -vt 0.464953 0.171875 -vt 0.455436 0.310489 -vt 0.303154 0.310490 -vt 0.293637 0.171875 -vt 0.284119 0.310490 -vt 0.274602 0.171875 -vt 0.265085 0.310490 -vt 0.255566 0.171875 -vt 0.246049 0.310490 -vt 0.236531 0.171875 -vt 0.227014 0.310489 -vt 0.217496 0.171875 -vt 0.522058 0.171875 -vt 0.512541 0.310489 -vt 0.503023 0.171875 -vt 0.493505 0.310489 -vt 0.483988 0.171875 -vt 0.474470 0.310490 -vt 0.192477 0.443094 -vt 0.255582 0.427318 -vt 0.255582 0.695515 -vt 0.916817 0.883810 -vt 0.904127 0.883810 -vt 0.916817 0.615614 -vt 0.979922 0.631390 -vt 0.841022 0.631390 -vt 0.904127 0.615614 -vt 0.916817 0.550567 -vt 0.904127 0.550567 -vt 0.268272 0.362271 -vt 0.268272 0.427318 -vt 0.255582 0.362271 -vt 0.426882 0.041780 -vt 0.331707 0.041780 -vt 0.274601 0.041781 -vt 0.464953 0.041780 -vt 0.522058 0.792829 -vt 0.522058 0.857876 -vt 0.476525 0.792829 -vt 0.503023 0.041780 -vt 0.106568 0.658093 -vt 0.106568 0.625569 -vt 0.152101 0.690617 -vt 0.097051 0.658093 -vt 0.051518 0.690617 -vt 0.097051 0.625569 -vt 0.106568 0.580036 -vt 0.097051 0.580036 -vt 0.445918 0.041780 -vt 0.217496 0.041781 -vt 0.236531 0.041781 -vt 0.522058 0.041780 -vt 0.097051 0.714049 -vt 0.106568 0.714049 -vt 0.312672 0.041780 -vt 0.152101 0.625569 -vt 0.051518 0.625569 -vt 0.979922 0.107529 -vt 0.573839 0.367716 -vt 0.142205 0.294345 -vt 0.122274 0.302600 -vt 0.157460 0.279090 -vt 0.165715 0.259159 -vt 0.065515 0.279090 -vt 0.080770 0.294345 -vt 0.057260 0.259159 -vt 0.057260 0.237586 -vt 0.065515 0.217655 -vt 0.080770 0.202400 -vt 0.100701 0.194145 -vt 0.122274 0.194145 -vt 0.100701 0.302600 -vt 0.749597 0.041781 -vt 0.774977 0.041781 -vt 0.467007 0.825352 -vt 0.421474 0.857876 -vt 0.467007 0.792829 -vt 0.906954 0.498785 -vt 0.957714 0.498785 -vt 0.805433 0.498785 -vt 0.602391 0.498785 -vt 0.653152 0.498785 -vt 0.780053 0.498786 -vt 0.331377 0.443094 -vt 0.268272 0.695515 -vt 0.407847 0.041780 -vt 0.467007 0.881308 -vt 0.476525 0.825352 -vt 0.350742 0.041780 -vt 0.476525 0.747295 -vt 0.467007 0.747295 -vt 0.255566 0.041781 -vt 0.476525 0.881308 -vt 0.421474 0.792829 -vt 0.483988 0.041780 -vt 0.324160 0.792829 -vt 0.324160 0.825352 -vt 0.314643 0.825352 -vt 0.314643 0.792829 -vt 0.314643 0.747295 -vt 0.269110 0.857876 -vt 0.269110 0.792829 -vt 0.293636 0.041781 -vt 0.369693 0.857876 -vt 0.388812 0.041780 -vt 0.369777 0.041780 -vt 0.324160 0.881308 -vt 0.314643 0.881308 -vt 0.324160 0.747295 -vt 0.369693 0.792829 -vt 0.162278 0.825352 -vt 0.171796 0.825352 -vt 0.171796 0.881308 -vt 0.171796 0.792829 -vt 0.162278 0.792829 -vt 0.162278 0.747295 -vt 0.116745 0.857876 -vt 0.116745 0.792829 -vt 0.217329 0.792829 -vt 0.217329 0.857876 -vt 0.162278 0.881308 -vt 0.171796 0.747295 -vt 0.383158 0.443094 -vt 0.446263 0.427318 -vt 0.446263 0.695515 -vt 0.726137 0.883810 -vt 0.713447 0.883810 -vt 0.726136 0.615614 -vt 0.789241 0.631390 -vt 0.458953 0.695515 -vt 0.650341 0.631390 -vt 0.713446 0.615614 -vt 0.726136 0.550567 -vt 0.713446 0.550567 -vt 0.458953 0.362271 -vt 0.458953 0.427318 -vt 0.446263 0.362271 -vt 0.522058 0.443094 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.992600 0.121700 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -0.145600 0.989400 -vn -0.000000 -1.000000 -0.000000 -vn -0.914000 -0.145600 0.378600 -vn 0.914000 -0.145600 -0.378600 -vn -0.699600 -0.145600 -0.699600 -vn 0.699600 -0.145600 0.699600 -vn -0.378600 -0.145600 0.914000 -vn 0.378600 -0.145600 -0.914000 -vn -0.989400 -0.145600 0.000000 -vn 0.997400 -0.072300 0.000000 -vn 0.989400 -0.145600 0.000000 -vn -0.378600 -0.145600 -0.914000 -vn 0.000000 -0.145600 -0.989400 -vn 0.378600 -0.145600 0.914000 -vn -0.699600 -0.145600 0.699600 -vn 0.699600 -0.145600 -0.699600 -vn -0.914000 -0.145600 -0.378600 -vn 0.914000 -0.145600 0.378600 -vn -0.379800 0.121700 -0.917000 -vn 0.000000 0.121700 -0.992600 -vn 0.379800 0.121700 0.917000 -vn -0.701900 0.121700 0.701900 -vn 0.701900 0.121700 -0.701900 -vn -0.917000 0.121700 -0.379800 -vn 0.917000 0.121700 0.379800 -vn 0.000000 0.121700 0.992600 -vn -0.917000 0.121700 0.379800 -vn 0.917000 0.121700 -0.379800 -vn -0.701900 0.121700 -0.701900 -vn 0.701900 0.121700 0.701900 -vn -0.379800 0.121700 0.917000 -vn 0.379800 0.121700 -0.917000 -vn -0.992600 0.121700 0.000000 -vn -0.359200 0.345200 0.867100 -vn -0.663600 0.345200 0.663600 -vn -0.867100 0.345200 0.359200 -vn -0.938500 0.345200 0.000000 -vn -0.867100 0.345200 -0.359200 -vn -0.663600 0.345200 -0.663600 -vn -0.359200 0.345200 -0.867100 -vn 0.000000 0.345200 0.938500 -vn 0.000000 0.345200 -0.938500 -vn 0.359200 0.345200 -0.867100 -vn 0.663600 0.345200 -0.663600 -vn 0.867100 0.345200 -0.359200 -vn 0.938500 0.345200 0.000000 -vn 0.867100 0.345200 0.359200 -vn 0.663600 0.345200 0.663600 -vn 0.359200 0.345200 0.867100 -vn 0.000000 -0.000000 1.000000 -vn -0.970100 0.242500 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.195100 -0.000000 0.980800 -vn 1.000000 0.000000 0.000000 -vn -0.195100 -0.000000 0.980800 -vn 0.980800 -0.000000 0.195100 -vn 0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 -0.581200 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.970100 0.242500 0.000000 -vn -0.581200 0.813700 0.000000 -vn -0.980800 0.000000 0.195100 -vn -0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 0.581200 -vn 0.581200 0.813700 0.000000 -vn 0.000000 0.242500 0.970100 -vn -0.000000 0.242500 -0.970100 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 8/8/4 9/9/4 10/10/4 -f 9/9/5 11/11/5 12/12/5 -f 11/11/6 13/13/6 14/14/6 -f 15/15/7 16/16/7 17/17/7 -f 16/16/8 18/18/8 19/19/8 -f 18/18/9 20/20/9 21/21/9 -f 22/22/10 23/23/10 24/24/10 -f 6/6/11 25/25/11 26/26/11 -f 27/27/12 28/28/12 29/29/12 -f 23/23/13 28/28/13 27/27/13 -f 30/30/14 31/31/14 32/32/14 -f 33/33/15 34/34/15 35/35/15 -f 21/21/16 36/36/16 37/37/16 -f 7/7/17 38/38/17 39/39/17 -f 24/24/18 27/27/18 33/40/18 -f 12/12/19 40/41/19 41/42/19 -f 17/17/20 42/43/20 31/44/20 -f 3/3/21 43/45/21 44/46/21 -f 45/47/22 46/48/22 36/49/22 -f 47/50/23 48/51/24 38/52/24 -f 49/53/25 34/54/25 33/55/25 -f 50/56/26 44/57/26 34/58/26 -f 14/14/27 32/59/27 40/60/27 -f 19/19/28 37/61/28 42/62/28 -f 5/5/29 39/63/29 43/64/29 -f 45/47/30 24/24/30 35/65/30 -f 10/10/31 41/66/31 48/67/31 -f 28/28/32 54/68/32 55/69/32 -f 29/29/33 55/70/33 56/71/33 -f 13/13/34 11/11/34 57/72/34 -f 16/16/35 58/73/35 59/74/35 -f 2/2/36 60/75/36 61/76/36 -f 22/22/37 62/77/37 63/78/37 -f 9/9/38 8/8/38 26/79/38 -f 13/13/39 64/80/39 65/81/39 -f 20/20/40 18/18/40 59/82/40 -f 6/6/41 4/4/41 61/83/41 -f 23/23/42 63/84/42 54/85/42 -f 9/9/43 66/86/43 57/87/43 -f 15/15/44 65/88/44 58/89/44 -f 2/2/45 1/1/45 56/90/45 -f 22/22/46 20/20/46 67/91/46 -f 68/92/47 69/93/47 70/94/47 -f 68/92/48 70/95/48 78/96/48 -f 78/96/49 70/97/49 71/98/49 -f 71/98/50 70/99/50 72/100/50 -f 72/100/51 70/101/51 79/102/51 -f 79/102/52 70/103/52 80/104/52 -f 80/104/53 70/105/53 52/106/53 -f 74/107/54 70/108/54 69/93/54 -f 52/106/55 70/109/55 53/110/55 -f 53/110/56 70/111/56 81/112/56 -f 81/112/57 70/113/57 82/114/57 -f 82/114/58 70/115/58 76/116/58 -f 76/116/59 70/117/59 77/118/59 -f 77/119/60 70/120/60 83/121/60 -f 83/121/61 70/122/61 84/123/61 -f 84/123/62 70/124/62 74/107/62 -f 121/125/63 123/126/63 88/127/63 -f 87/128/64 119/129/64 124/130/64 -f 118/131/63 87/128/63 124/130/63 -f 120/132/65 125/133/65 119/129/65 -f 118/134/15 124/130/15 120/135/15 -f 85/136/15 122/137/15 121/138/15 -f 21/21/66 20/20/66 22/22/66 -f 50/56/65 49/53/65 29/29/65 -f 124/130/15 125/133/15 120/135/15 -f 58/139/8 68/92/8 78/96/8 -f 79/102/13 80/104/13 54/140/13 -f 60/141/2 81/112/2 82/114/2 -f 84/123/6 74/107/67 64/142/67 -f 95/143/63 96/144/63 107/145/63 -f 66/146/5 83/121/5 84/123/5 -f 90/147/66 73/148/66 97/149/66 -f 91/150/68 94/151/68 51/152/68 -f 93/153/15 73/148/15 92/154/15 -f 68/92/7 58/139/7 65/155/69 -f 51/152/65 73/148/65 91/150/65 -f 26/156/70 25/157/71 76/116/71 -f 66/146/4 26/158/70 77/119/70 -f 82/114/3 76/116/71 25/157/71 -f 94/159/72 91/150/72 97/160/72 -f 55/161/73 52/106/73 53/110/74 -f 73/148/66 93/162/66 97/149/66 -f 94/151/68 92/163/68 51/152/68 -f 73/148/15 51/152/15 92/154/15 -f 73/148/65 90/147/65 91/150/65 -f 91/150/72 90/147/72 97/160/72 -f 50/56/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 47/164/4 8/8/4 10/10/4 -f 10/10/5 9/9/5 12/12/5 -f 12/12/6 11/11/6 14/14/6 -f 30/30/7 15/15/7 17/17/7 -f 17/17/8 16/16/8 19/19/8 -f 19/19/9 18/18/9 21/21/9 -f 45/47/10 22/22/10 24/24/10 -f 8/165/11 6/6/11 26/26/11 -f 49/53/12 27/27/12 29/29/12 -f 24/24/13 23/23/13 27/27/13 -f 14/14/14 30/30/14 32/32/14 -f 5/5/17 7/7/17 39/39/17 -f 39/166/15 38/167/15 43/168/15 -f 38/167/15 35/35/15 44/169/15 -f 40/170/15 38/167/15 41/171/15 -f 40/170/15 32/172/15 31/173/15 -f 31/173/15 42/174/15 37/175/15 -f 37/175/15 36/176/15 46/177/15 -f 19/19/16 21/21/16 37/37/16 -f 38/167/15 44/169/15 43/168/15 -f 38/167/15 37/175/15 46/177/15 -f 40/170/15 31/173/15 37/175/15 -f 38/167/15 40/170/15 37/175/15 -f 35/35/15 34/34/15 44/169/15 -f 38/167/15 48/178/15 41/171/15 -f 35/35/15 38/167/15 46/177/15 -f 35/179/18 24/24/18 33/40/18 -f 10/10/19 12/12/19 41/42/19 -f 30/30/20 17/17/20 31/44/20 -f 50/56/21 3/3/21 44/46/21 -f 21/21/22 45/47/22 36/49/22 -f 47/50/23 38/52/24 7/7/23 -f 27/27/25 49/53/25 33/55/25 -f 49/53/26 50/56/26 34/58/26 -f 12/12/27 14/14/27 40/60/27 -f 17/17/28 19/19/28 42/62/28 -f 3/3/29 5/5/29 43/64/29 -f 46/180/30 45/47/30 35/65/30 -f 47/164/31 10/10/31 48/67/31 -f 109/181/65 89/182/65 106/183/65 -f 29/29/32 28/28/32 55/69/32 -f 1/1/33 29/29/33 56/71/33 -f 64/184/34 13/13/34 57/72/34 -f 18/18/35 16/16/35 59/74/35 -f 4/4/36 2/2/36 61/76/36 -f 23/23/37 22/22/37 63/78/37 -f 66/185/38 9/9/38 26/79/38 -f 15/15/39 13/13/39 65/81/39 -f 67/186/40 20/20/40 59/82/40 -f 25/187/41 6/6/41 61/83/41 -f 28/28/42 23/23/42 54/85/42 -f 11/11/43 9/9/43 57/87/43 -f 16/16/44 15/15/44 58/89/44 -f 60/188/45 2/2/45 56/90/45 -f 62/189/46 22/22/46 67/91/46 -f 85/190/65 86/191/65 122/137/65 -f 7/7/23 6/6/68 8/165/68 -f 119/129/64 125/133/64 124/130/64 -f 123/126/75 122/137/75 86/191/75 -f 14/14/63 13/13/63 15/15/63 -f 122/137/15 123/126/15 121/138/15 -f 59/192/8 58/139/8 78/96/8 -f 89/193/76 109/181/76 108/194/76 -f 63/195/13 79/102/13 54/140/13 -f 95/196/15 107/145/15 75/197/15 -f 61/198/2 60/141/2 82/114/2 -f 106/183/66 107/145/66 109/181/66 -f 96/199/76 89/193/76 108/194/76 -f 96/144/63 108/194/63 107/145/63 -f 89/182/65 75/200/65 106/183/65 -f 107/145/15 106/183/15 75/197/15 -f 107/145/66 108/194/66 109/181/66 -f 57/201/5 66/146/5 84/123/5 -f 100/202/63 99/203/63 98/204/63 -f 100/202/15 101/205/15 105/206/15 -f 104/207/66 105/208/66 101/205/66 -f 81/112/1 60/141/1 56/209/74 -f 102/210/68 99/203/68 100/202/68 -f 55/161/73 54/140/12 80/104/12 -f 67/211/77 71/98/77 72/100/78 -f 62/212/78 72/100/78 79/102/10 -f 102/213/79 104/214/79 99/203/79 -f 78/96/9 71/98/77 67/211/77 -f 101/205/63 100/202/63 98/204/63 -f 103/215/15 100/202/15 105/206/15 -f 104/214/79 98/204/79 99/203/79 -f 98/204/66 104/207/66 101/205/66 -f 103/216/68 102/210/68 100/202/68 -f 114/217/80 115/218/80 110/219/80 -f 116/220/68 115/218/68 114/217/68 -f 116/220/15 117/221/15 113/222/15 -f 111/223/63 113/224/63 117/221/63 -f 116/220/65 112/225/65 110/226/65 -f 111/227/80 114/217/80 110/219/80 -f 117/221/68 116/220/68 114/217/68 -f 112/228/15 116/220/15 113/222/15 -f 114/217/63 111/223/63 117/221/63 -f 115/218/65 116/220/65 110/226/65 -f 74/107/67 69/93/69 65/155/69 -f 133/229/68 135/230/68 129/231/68 -f 128/232/81 131/233/81 136/234/81 -f 130/235/68 128/232/68 136/234/68 -f 129/231/82 135/230/82 127/236/82 -f 132/237/66 137/238/66 131/233/66 -f 130/239/15 136/234/15 132/240/15 -f 126/241/15 134/242/15 133/243/15 -f 136/234/15 137/238/15 132/240/15 -f 126/244/66 127/236/66 134/242/66 -f 131/233/81 137/238/81 136/234/81 -f 135/230/82 134/242/82 127/236/82 -f 134/242/15 135/230/15 133/243/15 -f 86/191/75 88/127/75 123/126/75 -f 45/47/66 21/21/66 22/22/66 -f 1/1/65 50/56/65 29/29/65 -f 57/201/6 84/123/6 64/142/67 -f 69/93/69 68/92/7 65/155/69 -f 77/118/70 26/156/70 76/116/71 -f 83/121/4 66/146/4 77/119/70 -f 61/198/3 82/114/3 25/157/71 -f 56/209/74 55/161/73 53/110/74 -f 47/50/23 7/7/23 8/165/68 -f 30/30/63 14/14/63 15/15/63 -f 53/110/74 81/112/1 56/209/74 -f 52/106/73 55/161/73 80/104/12 -f 62/212/78 67/211/77 72/100/78 -f 63/195/10 62/212/78 79/102/10 -f 59/192/9 78/96/9 67/211/77 -f 64/142/67 74/107/67 65/155/69 diff --git a/src/main/resources/assets/hbm/models/missilehuge.obj b/src/main/resources/assets/hbm/models/missilehuge.obj deleted file mode 100644 index 0835cc5e00..0000000000 --- a/src/main/resources/assets/hbm/models/missilehuge.obj +++ /dev/null @@ -1,657 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileHuge.blend' -# www.blender.org -o Cylinder -v 0.264256 0.500000 -0.178243 -v 0.352341 0.000000 -0.237657 -v 0.234573 0.000000 -0.354401 -v -0.264256 0.500000 0.178243 -v -0.352341 -0.000000 0.237657 -v -0.234573 -0.000000 0.354402 -v 0.312351 0.500000 -0.063548 -v 0.416468 0.000000 -0.084731 -v -0.312351 0.500000 0.063548 -v -0.416468 -0.000000 0.084731 -v 0.312894 0.500000 0.060821 -v 0.417192 -0.000000 0.081094 -v -0.312894 0.500000 -0.060820 -v -0.417192 0.000000 -0.081094 -v 0.265801 0.500000 0.175930 -v 0.354401 -0.000000 0.234573 -v -0.265801 0.500000 -0.175930 -v -0.354401 0.000000 -0.234573 -v 0.178243 0.500000 0.264256 -v 0.237657 -0.000000 0.352341 -v -0.178243 0.500000 -0.264256 -v -0.237657 0.000000 -0.352341 -v 0.063548 0.500000 0.312351 -v 0.084731 -0.000000 0.416468 -v 0.060820 0.500000 -0.312894 -v 0.081094 0.000000 -0.417192 -v -0.084731 0.000000 -0.416468 -v -0.063548 0.500000 -0.312351 -v -0.060820 0.500000 0.312894 -v -0.081094 -0.000000 0.417192 -v 0.279597 0.500000 0.414519 -v 0.099684 0.500000 0.489962 -v 0.095404 0.500000 -0.490814 -v -0.175930 0.500000 0.265802 -v -0.490814 0.500000 -0.095405 -v -0.490814 2.500000 -0.095405 -v -0.416943 2.500000 -0.275969 -v -0.279596 0.500000 -0.414519 -v -0.416943 0.500000 -0.275969 -v 0.416943 0.500000 0.275968 -v -0.489962 0.500000 0.099684 -v 0.490814 0.500000 0.095405 -v 0.414519 0.500000 -0.279596 -v 0.489962 0.500000 -0.099684 -v -0.414519 0.500000 0.279597 -v 0.275968 0.500000 -0.416943 -v -0.095404 0.500000 0.490814 -v -0.275968 0.500000 0.416943 -v 0.175930 0.500000 -0.265801 -v -0.099684 0.500000 -0.489962 -v 0.414519 2.500000 -0.279596 -v 0.310889 4.000000 -0.209697 -v 0.367472 4.000000 -0.074763 -v 0.416943 2.500000 0.275968 -v 0.279596 2.500000 0.414519 -v -0.279596 2.500000 -0.414519 -v 0.099684 2.500000 0.489962 -v -0.099684 2.500000 -0.489962 -v 0.095404 2.500000 -0.490814 -v -0.095404 2.500000 0.490814 -v 0.275968 2.500000 -0.416943 -v -0.275968 2.500000 0.416943 -v -0.414519 2.500000 0.279597 -v 0.489962 2.500000 -0.099684 -v -0.489962 2.500000 0.099684 -v 0.490814 2.500000 0.095405 -v 0.074763 5.500000 0.367472 -v 0.056072 6.000000 0.275604 -v -0.053665 6.000000 0.276083 -v -0.310889 4.000000 0.209697 -v 0.368110 4.000000 0.071553 -v -0.367472 4.000000 0.074763 -v -0.368110 4.000000 -0.071553 -v 0.312707 4.000000 0.206976 -v 0.209697 4.000000 0.310889 -v -0.312707 4.000000 -0.206976 -v -0.209697 4.000000 -0.310889 -v 0.074763 4.000000 0.367472 -v -0.074763 4.000000 -0.367472 -v -0.071553 4.000000 0.368110 -v 0.071553 4.000000 -0.368110 -v -0.206976 4.000000 0.312707 -v 0.206976 4.000000 -0.312707 -v 0.233166 6.000000 -0.157273 -v 0.155232 6.000000 -0.234530 -v 0.000000 6.500000 0.000000 -v 0.206976 5.500000 -0.312707 -v 0.071553 5.500000 -0.368110 -v 0.053665 6.000000 -0.276083 -v -0.206977 5.500000 0.312707 -v -0.071554 5.500000 0.368110 -v -0.155233 6.000000 0.234530 -v -0.233167 6.000000 0.157273 -v 0.310889 5.500000 -0.209697 -v 0.275603 6.000000 -0.056072 -v -0.367472 5.500000 0.074763 -v -0.310889 5.500000 0.209697 -v 0.367471 5.500000 -0.074763 -v 0.276082 6.000000 0.053665 -v -0.368110 5.500000 -0.071553 -v -0.275604 6.000000 0.056072 -v 0.368110 5.500000 0.071553 -v 0.234530 6.000000 0.155232 -v -0.276083 6.000000 -0.053665 -v -0.234531 6.000000 -0.155232 -v 0.312707 5.500000 0.206976 -v 0.157273 6.000000 0.233167 -v -0.312707 5.500000 -0.206976 -v -0.157273 6.000000 -0.233167 -v 0.209697 5.500000 0.310889 -v -0.074763 5.500000 -0.367472 -v -0.056073 6.000000 -0.275604 -v -0.209697 5.500000 -0.310889 -vt 0.149260 0.839187 -vt 0.109237 0.763560 -vt 0.134278 0.751582 -vt 0.310796 0.812746 -vt 0.324618 0.728305 -vt 0.351807 0.733896 -vt 0.131270 0.849663 -vt 0.085250 0.777529 -vt 0.290131 0.810219 -vt 0.297065 0.724936 -vt 0.114187 0.861563 -vt 0.062473 0.793394 -vt 0.269330 0.809375 -vt 0.269330 0.723810 -vt 0.407390 0.849663 -vt 0.453410 0.777529 -vt 0.476186 0.793394 -vt 0.248528 0.810219 -vt 0.241595 0.724936 -vt 0.389399 0.839187 -vt 0.429422 0.763560 -vt 0.227864 0.812746 -vt 0.214042 0.728305 -vt 0.370619 0.830203 -vt 0.404382 0.751582 -vt 0.187487 0.822771 -vt 0.160206 0.741672 -vt 0.186853 0.733896 -vt 0.207472 0.816939 -vt 0.351172 0.822771 -vt 0.378453 0.741672 -vt 0.914489 0.049954 -vt 0.881833 0.049954 -vt 0.887752 0.020197 -vt 0.840254 0.735366 -vt 0.923908 0.679471 -vt 0.979803 0.763125 -vt 0.587926 0.049954 -vt 0.593845 0.020198 -vt 0.614663 0.020198 -vt 0.331187 0.816939 -vt 0.718551 0.049954 -vt 0.718551 0.384736 -vt 0.685895 0.384736 -vt 0.653238 0.049954 -vt 0.659157 0.020198 -vt 0.679976 0.020197 -vt 0.920408 0.020197 -vt 0.941227 0.020197 -vt 0.685895 0.049954 -vt 0.691814 0.020197 -vt 0.712632 0.020198 -vt 0.947146 0.049954 -vt 0.953064 0.020197 -vt 0.973883 0.020197 -vt 0.751207 0.049954 -vt 0.724470 0.020198 -vt 0.457300 0.049954 -vt 0.463219 0.020197 -vt 0.484038 0.020197 -vt 0.757126 0.020198 -vt 0.777945 0.020197 -vt 0.522613 0.049954 -vt 0.489957 0.049954 -vt 0.495875 0.020197 -vt 0.783864 0.049954 -vt 0.789783 0.020197 -vt 0.810601 0.020198 -vt 0.555269 0.049954 -vt 0.528532 0.020197 -vt 0.849177 0.049954 -vt 0.816520 0.049954 -vt 0.822439 0.020198 -vt 0.561188 0.020197 -vt 0.582007 0.020198 -vt 0.855095 0.020197 -vt 0.875914 0.020197 -vt 0.168041 0.830203 -vt 0.620582 0.049954 -vt 0.626501 0.020198 -vt 0.647319 0.020198 -vt 0.522612 0.384736 -vt 0.518530 0.636659 -vt 0.494038 0.636659 -vt 0.947147 0.384735 -vt 0.914490 0.384735 -vt 0.653238 0.384736 -vt 0.881834 0.384736 -vt 0.620582 0.384736 -vt 0.587925 0.384736 -vt 0.849177 0.384736 -vt 0.555269 0.384736 -vt 0.816521 0.384736 -vt 0.783864 0.384736 -vt 0.489956 0.384736 -vt 0.751208 0.384736 -vt 0.457300 0.384736 -vt 0.979802 0.049954 -vt 0.979803 0.384735 -vt 0.341013 0.271283 -vt 0.337952 0.356383 -vt 0.319582 0.356383 -vt 0.779783 0.636660 -vt 0.485874 0.636661 -vt 0.461382 0.636661 -vt 0.747126 0.636660 -vt 0.722634 0.636660 -vt 0.975722 0.636658 -vt 0.714469 0.636661 -vt 0.943066 0.636659 -vt 0.918573 0.636659 -vt 0.681813 0.636661 -vt 0.657320 0.636661 -vt 0.910409 0.636660 -vt 0.885917 0.636660 -vt 0.616500 0.636662 -vt 0.649156 0.636659 -vt 0.877753 0.636661 -vt 0.853261 0.636661 -vt 0.583843 0.636661 -vt 0.845096 0.636661 -vt 0.820604 0.636661 -vt 0.551187 0.636660 -vt 0.526694 0.636660 -vt 0.812439 0.636661 -vt 0.074658 0.356383 -vt 0.093028 0.356383 -vt 0.083843 0.451970 -vt 0.096089 0.271283 -vt 0.120582 0.271283 -vt 0.117520 0.356383 -vt 0.292028 0.271283 -vt 0.316521 0.271283 -vt 0.313459 0.356382 -vt 0.288967 0.356382 -vt 0.270598 0.356382 -vt 0.071597 0.271283 -vt 0.068535 0.356382 -vt 0.050166 0.356382 -vt 0.243044 0.271283 -vt 0.267536 0.271283 -vt 0.264475 0.356383 -vt 0.047105 0.271283 -vt 0.044043 0.356383 -vt 0.025674 0.356383 -vt 0.218551 0.271283 -vt 0.239982 0.356383 -vt 0.414490 0.271283 -vt 0.411429 0.356382 -vt 0.393060 0.356382 -vt 0.215490 0.356383 -vt 0.197121 0.356383 -vt 0.389998 0.271283 -vt 0.386937 0.356382 -vt 0.368567 0.356382 -vt 0.194059 0.271283 -vt 0.190997 0.356383 -vt 0.172628 0.356383 -vt 0.365505 0.271283 -vt 0.362444 0.356383 -vt 0.344075 0.356383 -vt 0.145074 0.271283 -vt 0.142013 0.356383 -vt 0.123643 0.356383 -vt 0.169567 0.271283 -vt 0.166505 0.356383 -vt 0.059350 0.451969 -vt 0.034858 0.451971 -vt 0.402245 0.451970 -vt 0.377753 0.451970 -vt 0.099151 0.356383 -vt 0.108335 0.451971 -vt 0.353260 0.451971 -vt 0.328767 0.451971 -vt 0.304275 0.451969 -vt 0.295090 0.356382 -vt 0.279783 0.451970 -vt 0.255291 0.451971 -vt 0.246106 0.356383 -vt 0.230798 0.451971 -vt 0.221613 0.356383 -vt 0.206306 0.451971 -vt 0.181813 0.451970 -vt 0.157321 0.451971 -vt 0.148136 0.356383 -vt 0.132828 0.451972 -vt 0.169567 0.020197 -vt 0.145075 0.020197 -vt 0.365505 0.020197 -vt 0.194059 0.020197 -vt 0.389997 0.020197 -vt 0.218551 0.020197 -vt 0.414489 0.020197 -vt 0.243043 0.020197 -vt 0.047106 0.020197 -vt 0.022612 0.271283 -vt 0.267536 0.020197 -vt 0.071598 0.020197 -vt 0.292028 0.020197 -vt 0.096090 0.020197 -vt 0.316520 0.020197 -vt 0.120582 0.020197 -vt 0.341012 0.020197 -vt 0.424472 0.861563 -vt 0.908570 0.020197 -vt 0.969181 0.788769 -vt 0.949553 0.808397 -vt 0.923908 0.819020 -vt 0.896150 0.819020 -vt 0.870505 0.808397 -vt 0.850877 0.788769 -vt 0.840254 0.763124 -vt 0.850877 0.709721 -vt 0.870505 0.690094 -vt 0.896150 0.679471 -vt 0.949553 0.690094 -vt 0.969180 0.709722 -vt 0.979803 0.735366 -vt 0.745288 0.020198 -vt 0.516694 0.020197 -vt 0.549350 0.020197 -vt 0.843257 0.020197 -vt 0.755291 0.636661 -vt 0.951230 0.636658 -vt 0.689977 0.636661 -vt 0.592008 0.636662 -vt 0.624664 0.636659 -vt 0.559351 0.636661 -vt 0.787947 0.636661 -vt 0.022613 0.020197 -vn 0.689200 0.204000 -0.695200 -vn -0.689200 0.204000 0.695200 -vn 0.902800 0.204000 -0.378600 -vn -0.902800 0.204000 0.378600 -vn 0.979000 0.204000 -0.004300 -vn -0.979000 0.204000 0.004300 -vn 0.906100 0.204000 0.370700 -vn -0.906100 0.204000 -0.370700 -vn 0.695200 0.204000 0.689200 -vn -0.695200 0.204000 -0.689200 -vn 0.378600 0.204000 0.902800 -vn -0.004300 0.204000 -0.979000 -vn -0.378600 0.204000 -0.902800 -vn 0.004300 0.204000 0.979000 -vn -0.000000 -1.000000 -0.000000 -vn -0.370700 0.204000 0.906100 -vn -0.925500 0.000000 -0.378700 -vn -0.925500 0.000000 -0.378600 -vn 0.370700 0.204000 -0.906100 -vn 0.919100 0.081500 -0.385400 -vn 0.710200 0.000000 0.704000 -vn -0.710200 0.000000 -0.704000 -vn 0.386700 -0.000000 0.922200 -vn -0.004400 0.000000 -1.000000 -vn -0.386700 0.000000 -0.922200 -vn 0.004400 -0.000000 1.000000 -vn 0.378600 0.000000 -0.925500 -vn -0.378700 -0.000000 0.925500 -vn 0.704000 0.000000 -0.710200 -vn -0.704000 -0.000000 0.710200 -vn 0.922200 0.000000 -0.386700 -vn -0.922200 -0.000000 0.386700 -vn 1.000000 0.000000 -0.004400 -vn -1.000000 0.000000 0.004400 -vn 0.925500 -0.000000 0.378700 -vn 0.004300 0.180900 0.983500 -vn -0.919100 0.081500 0.385400 -vn 0.996700 0.081500 -0.004400 -vn 0.996700 0.081500 -0.004300 -vn -0.996700 0.081500 0.004400 -vn -0.996700 0.081500 0.004300 -vn 0.922500 0.081500 0.377400 -vn -0.922500 0.081500 -0.377400 -vn 0.707800 0.081500 0.701700 -vn -0.707800 0.081500 -0.701700 -vn 0.385400 0.081500 0.919100 -vn -0.004400 0.081500 -0.996700 -vn -0.004300 0.081500 -0.996700 -vn -0.385400 0.081500 -0.919100 -vn 0.004400 0.081500 0.996700 -vn 0.004300 0.081500 0.996700 -vn 0.377400 0.081500 -0.922500 -vn -0.377400 0.081500 0.922500 -vn 0.701700 0.081500 -0.707800 -vn -0.701700 0.081500 0.707800 -vn 0.616400 0.483100 -0.621800 -vn 0.372400 0.180900 -0.910300 -vn -0.372400 0.180900 0.910300 -vn 0.692400 0.180900 -0.698500 -vn -0.692400 0.180900 0.698500 -vn 0.907000 0.180900 -0.380300 -vn -0.907000 0.180900 0.380300 -vn 0.983500 0.180900 -0.004300 -vn -0.983500 0.180900 0.004300 -vn 0.910300 0.180900 0.372400 -vn -0.910300 0.180900 -0.372400 -vn 0.698500 0.180900 0.692400 -vn -0.698500 0.180900 -0.692400 -vn 0.380300 0.180900 0.907000 -vn -0.004300 0.180900 -0.983500 -vn -0.380300 0.180900 -0.907000 -vn 0.807500 0.483100 -0.338600 -vn 0.875600 0.483100 -0.003800 -vn 0.810400 0.483100 0.331500 -vn 0.621800 0.483100 0.616400 -vn 0.331500 0.483100 -0.810400 -vn 0.338600 0.483100 0.807500 -vn 0.003800 0.483100 0.875600 -vn -0.331500 0.483100 0.810400 -vn -0.616400 0.483100 0.621800 -vn -0.807500 0.483100 0.338600 -vn -0.875600 0.483100 0.003800 -vn -0.810400 0.483100 -0.331500 -vn -0.621800 0.483100 -0.616400 -vn -0.338600 0.483100 -0.807500 -vn -0.003800 0.483100 -0.875600 -vn 0.925500 -0.000000 0.378600 -vn -0.378600 -0.000000 0.925500 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 2/2/3 -f 9/9/4 10/10/4 5/5/4 -f 11/11/5 12/12/5 8/8/5 -f 13/13/6 14/14/6 10/10/6 -f 15/15/7 16/16/7 12/17/7 -f 17/18/8 18/19/8 14/14/8 -f 19/20/9 20/21/9 16/16/9 -f 21/22/10 22/23/10 18/19/10 -f 23/24/11 24/25/11 20/21/11 -f 25/26/12 26/27/12 27/28/12 -f 28/29/13 27/28/13 22/23/13 -f 29/30/14 30/31/14 24/25/14 -f 31/32/15 32/33/15 23/34/15 -f 24/35/15 10/36/15 27/37/15 -f 33/38/15 25/39/15 28/40/15 -f 34/41/16 6/6/16 30/31/16 -f 35/42/17 36/43/18 37/44/18 -f 38/45/15 21/46/15 17/47/15 -f 31/32/15 19/48/15 15/49/15 -f 39/50/15 17/51/15 13/52/15 -f 40/53/15 15/54/15 11/55/15 -f 41/56/15 35/42/15 13/57/15 -f 42/58/15 11/59/15 7/60/15 -f 41/56/15 9/61/15 4/62/15 -f 43/63/15 44/64/15 7/65/15 -f 45/66/15 4/67/15 34/68/15 -f 46/69/15 43/63/15 1/70/15 -f 47/71/15 48/72/15 34/73/15 -f 46/69/15 49/74/15 25/75/15 -f 47/71/15 29/76/15 23/77/15 -f 49/78/19 3/3/19 26/27/19 -f 50/79/15 28/80/15 21/81/15 -f 51/82/20 52/83/20 53/84/20 -f 40/53/21 54/85/21 55/86/21 -f 39/50/22 37/44/22 56/87/22 -f 31/32/23 55/86/23 57/88/23 -f 50/79/24 58/89/24 59/90/24 -f 50/79/25 38/45/25 56/87/25 -f 32/33/26 57/88/26 60/91/26 -f 33/38/27 59/90/27 61/92/27 -f 47/71/28 60/91/28 62/93/28 -f 46/69/29 61/92/29 51/82/29 -f 48/72/30 62/93/30 63/94/30 -f 43/63/31 51/82/31 64/95/31 -f 45/66/32 63/94/32 65/96/32 -f 44/64/33 64/95/33 66/97/33 -f 41/56/34 65/96/34 36/43/34 -f 42/98/35 66/99/35 54/85/35 -f 67/100/36 68/101/36 69/102/36 -f 65/96/37 63/94/37 70/103/37 -f 64/95/38 53/104/39 71/105/39 -f 65/96/40 72/106/41 73/107/41 -f 54/85/42 66/99/42 71/108/42 -f 37/44/43 36/43/43 73/109/43 -f 54/85/44 74/110/44 75/111/44 -f 37/44/45 76/112/45 77/113/45 -f 55/86/46 75/114/46 78/115/46 -f 59/90/47 58/89/47 79/116/48 -f 58/89/49 56/87/49 77/117/49 -f 57/88/50 78/118/51 80/119/51 -f 61/92/52 59/90/52 81/120/52 -f 60/91/53 80/121/53 82/122/53 -f 61/92/54 83/123/54 52/124/54 -f 63/94/55 62/93/55 82/125/55 -f 84/126/56 85/127/56 86/128/56 -f 87/129/57 88/130/57 89/131/57 -f 90/132/58 91/133/58 69/134/58 -f 87/129/59 85/127/59 84/126/59 -f 90/132/60 92/135/60 93/136/60 -f 94/137/61 84/138/61 95/139/61 -f 96/140/62 97/141/62 93/142/62 -f 98/143/63 95/144/63 99/145/63 -f 100/146/64 96/140/64 101/147/64 -f 102/148/65 99/149/65 103/150/65 -f 100/146/66 104/151/66 105/152/66 -f 106/153/67 103/154/67 107/155/67 -f 108/156/68 105/157/68 109/158/68 -f 110/159/69 107/160/69 68/161/69 -f 111/162/70 112/163/70 89/164/70 -f 111/162/71 113/165/71 109/166/71 -f 84/138/72 86/167/72 95/139/72 -f 95/144/73 86/168/73 99/145/73 -f 99/149/74 86/169/74 103/150/74 -f 103/154/75 86/170/75 107/155/75 -f 85/171/76 89/131/76 86/172/76 -f 107/160/77 86/173/77 68/161/77 -f 68/101/78 86/174/78 69/102/78 -f 69/134/79 86/175/79 92/176/79 -f 92/135/80 86/177/80 93/136/80 -f 93/142/81 86/178/81 101/179/81 -f 101/147/82 86/180/82 104/181/82 -f 104/151/83 86/182/83 105/152/83 -f 105/157/84 86/183/84 109/158/84 -f 109/166/85 86/184/85 112/185/85 -f 112/163/86 86/186/86 89/164/86 -f 77/187/25 113/165/25 111/162/25 -f 79/188/24 111/162/24 88/130/24 -f 75/189/23 110/159/23 67/100/23 -f 76/190/22 108/156/22 113/165/22 -f 74/191/21 106/153/21 110/159/21 -f 73/192/18 100/146/18 108/156/18 -f 71/193/87 102/148/87 106/153/87 -f 72/194/34 96/140/34 100/146/34 -f 53/195/33 98/143/33 102/196/33 -f 70/197/32 97/141/32 96/140/32 -f 52/198/31 94/137/31 98/143/31 -f 82/199/30 90/132/30 97/141/30 -f 83/200/29 87/129/29 94/137/29 -f 80/201/88 91/133/88 90/132/88 -f 81/202/27 88/130/27 87/129/27 -f 80/201/26 78/203/26 67/100/26 -f 49/78/1 1/1/1 3/3/1 -f 34/41/2 4/4/2 6/6/2 -f 1/1/3 7/7/3 2/2/3 -f 4/4/4 9/9/4 5/5/4 -f 7/7/5 11/11/5 8/8/5 -f 9/9/6 13/13/6 10/10/6 -f 11/204/7 15/15/7 12/17/7 -f 13/13/8 17/18/8 14/14/8 -f 15/15/9 19/20/9 16/16/9 -f 17/18/10 21/22/10 18/19/10 -f 19/20/11 23/24/11 20/21/11 -f 28/29/12 25/26/12 27/28/12 -f 21/22/13 28/29/13 22/23/13 -f 23/24/14 29/30/14 24/25/14 -f 19/205/15 31/32/15 23/34/15 -f 27/37/15 26/206/15 3/207/15 -f 3/207/15 2/208/15 8/209/15 -f 8/209/15 12/210/15 16/211/15 -f 16/211/15 20/212/15 24/35/15 -f 24/35/15 30/213/15 10/36/15 -f 6/214/15 5/215/15 10/36/15 -f 10/36/15 14/216/15 18/217/15 -f 18/217/15 22/218/15 10/36/15 -f 27/37/15 3/207/15 8/209/15 -f 8/209/15 16/211/15 24/35/15 -f 30/213/15 6/214/15 10/36/15 -f 10/36/15 22/218/15 27/37/15 -f 27/37/15 8/209/15 24/35/15 -f 50/79/15 33/38/15 28/40/15 -f 29/30/16 34/41/16 30/31/16 -f 39/50/17 35/42/17 37/44/18 -f 39/50/15 38/45/15 17/47/15 -f 40/53/15 31/32/15 15/49/15 -f 35/42/15 39/50/15 13/52/15 -f 42/98/15 40/53/15 11/55/15 -f 9/219/15 41/56/15 13/57/15 -f 44/64/15 42/58/15 7/60/15 -f 45/66/15 41/56/15 4/62/15 -f 1/220/15 43/63/15 7/65/15 -f 48/72/15 45/66/15 34/68/15 -f 49/221/15 46/69/15 1/70/15 -f 29/222/15 47/71/15 34/73/15 -f 33/38/15 46/69/15 25/75/15 -f 32/33/15 47/71/15 23/77/15 -f 25/26/19 49/78/19 26/27/19 -f 38/45/15 50/79/15 21/81/15 -f 64/95/20 51/82/20 53/84/20 -f 31/32/21 40/53/21 55/86/21 -f 38/45/22 39/50/22 56/87/22 -f 32/33/23 31/32/23 57/88/23 -f 33/38/24 50/79/24 59/90/24 -f 58/89/25 50/79/25 56/87/25 -f 47/71/26 32/33/26 60/91/26 -f 46/69/27 33/38/27 61/92/27 -f 48/72/28 47/71/28 62/93/28 -f 43/63/29 46/69/29 51/82/29 -f 45/66/30 48/72/30 63/94/30 -f 44/64/31 43/63/31 64/95/31 -f 41/56/32 45/66/32 65/96/32 -f 42/58/33 44/64/33 66/97/33 -f 35/42/34 41/56/34 36/43/34 -f 40/53/35 42/98/35 54/85/35 -f 91/133/36 67/100/36 69/102/36 -f 72/223/37 65/96/37 70/103/37 -f 66/97/38 64/95/38 71/105/39 -f 36/43/40 65/96/40 73/107/41 -f 74/224/42 54/85/42 71/108/42 -f 76/225/43 37/44/43 73/109/43 -f 55/86/44 54/85/44 75/111/44 -f 56/87/45 37/44/45 77/113/45 -f 57/88/46 55/86/46 78/115/46 -f 81/226/48 59/90/47 79/116/48 -f 79/227/49 58/89/49 77/117/49 -f 60/91/50 57/88/50 80/119/51 -f 83/228/52 61/92/52 81/120/52 -f 62/93/53 60/91/53 82/122/53 -f 51/82/54 61/92/54 52/124/54 -f 70/229/55 63/94/55 82/125/55 -f 85/171/57 87/129/57 89/131/57 -f 92/176/58 90/132/58 69/134/58 -f 94/137/59 87/129/59 84/126/59 -f 97/141/60 90/132/60 93/136/60 -f 98/143/61 94/137/61 95/139/61 -f 101/179/62 96/140/62 93/142/62 -f 102/196/63 98/143/63 99/145/63 -f 104/181/64 100/146/64 101/147/64 -f 106/153/65 102/148/65 103/150/65 -f 108/156/66 100/146/66 105/152/66 -f 110/159/67 106/153/67 107/155/67 -f 113/165/68 108/156/68 109/158/68 -f 67/100/69 110/159/69 68/161/69 -f 88/130/70 111/162/70 89/164/70 -f 112/185/71 111/162/71 109/166/71 -f 79/188/25 77/187/25 111/162/25 -f 81/202/24 79/188/24 88/130/24 -f 78/203/23 75/189/23 67/100/23 -f 77/187/22 76/190/22 113/165/22 -f 75/189/21 74/191/21 110/159/21 -f 76/190/18 73/192/18 108/156/18 -f 74/191/87 71/193/87 106/153/87 -f 73/192/34 72/194/34 100/146/34 -f 71/230/33 53/195/33 102/196/33 -f 72/194/32 70/197/32 96/140/32 -f 53/195/31 52/198/31 98/143/31 -f 70/197/30 82/199/30 97/141/30 -f 52/198/29 83/200/29 94/137/29 -f 82/199/88 80/201/88 90/132/88 -f 83/200/27 81/202/27 87/129/27 -f 91/133/26 80/201/26 67/100/26 diff --git a/src/main/resources/assets/hbm/models/missilemirv.obj b/src/main/resources/assets/hbm/models/missilemirv.obj deleted file mode 100644 index f28ac0a446..0000000000 --- a/src/main/resources/assets/hbm/models/missilemirv.obj +++ /dev/null @@ -1,472 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileMIRV.blend' -# www.blender.org -o Cylinder -v -0.097545 2.000000 -0.490393 -v 0.097545 2.000000 -0.490393 -v 0.097545 0.000000 -0.490393 -v 0.277785 2.000000 -0.415735 -v 0.277785 0.000000 -0.415735 -v 0.415735 2.000000 -0.277785 -v 0.415735 0.000000 -0.277785 -v 0.490393 2.000000 -0.097545 -v 0.490393 0.000000 -0.097545 -v 0.490393 2.000000 0.097545 -v 0.490393 -0.000000 0.097545 -v 0.415735 2.000000 0.277785 -v 0.415735 -0.000000 0.277785 -v 0.277785 2.000000 0.415735 -v 0.277785 -0.000000 0.415735 -v 0.097545 2.000000 0.490393 -v 0.097545 -0.000000 0.490393 -v -0.097545 2.000000 0.490393 -v -0.097545 -0.000000 0.490393 -v -0.277785 2.000000 0.415735 -v -0.277785 -0.000000 0.415735 -v -0.415735 2.000000 0.277785 -v -0.415735 -0.000000 0.277785 -v -0.490393 2.000000 0.097545 -v -0.490393 -0.000000 0.097545 -v -0.490393 2.000000 -0.097545 -v -0.490393 0.000000 -0.097545 -v -0.415735 2.000000 -0.277785 -v -0.415735 0.000000 -0.277785 -v 0.367795 3.500000 0.073159 -v 0.311801 3.500000 0.208339 -v -0.277785 2.000000 -0.415735 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.367794 3.500000 -0.073159 -v -0.367795 5.000000 -0.073159 -v -0.311801 5.000000 -0.208339 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 -0.311801 -v 0.208339 3.500000 0.311801 -v -0.367794 3.500000 0.073159 -v 0.367795 3.500000 -0.073159 -v -0.073159 3.500000 0.367795 -v -0.311801 5.000000 0.208339 -v -0.228654 6.000000 0.152782 -v -0.269716 6.000000 0.053650 -v 0.311801 5.000000 0.208339 -v 0.208339 5.000000 0.311801 -v -0.208339 5.000000 -0.311801 -v 0.073159 5.000000 0.367794 -v -0.073159 5.000000 -0.367794 -v 0.073159 5.000000 -0.367794 -v -0.073159 5.000000 0.367795 -v 0.208339 5.000000 -0.311801 -v -0.208339 5.000000 0.311801 -v 0.311801 5.000000 -0.208339 -v 0.367794 5.000000 -0.073159 -v -0.367795 5.000000 0.073159 -v 0.367794 5.000000 0.073159 -v 0.228654 6.000000 -0.152782 -v 0.152782 6.000000 -0.228654 -v 0.000000 7.000000 0.000000 -v 0.269716 6.000000 -0.053650 -v -0.269716 6.000000 -0.053650 -v 0.269716 6.000000 0.053650 -v 0.228654 6.000000 0.152782 -v -0.228654 6.000000 -0.152782 -v 0.152782 6.000000 0.228654 -v -0.053650 6.000000 -0.269716 -v 0.053650 6.000000 -0.269716 -v -0.152782 6.000000 -0.228654 -v 0.053650 6.000000 0.269716 -v -0.053650 6.000000 0.269716 -v -0.152782 6.000000 0.228654 -vt 0.614465 0.355173 -vt 0.582182 0.355174 -vt 0.582181 0.024218 -vt 0.549899 0.355174 -vt 0.549898 0.024218 -vt 0.517616 0.355174 -vt 0.517615 0.024218 -vt 0.485333 0.355174 -vt 0.485331 0.024218 -vt 0.453049 0.355174 -vt 0.453048 0.024218 -vt 0.969580 0.355174 -vt 0.937297 0.355174 -vt 0.937298 0.024218 -vt 0.905014 0.355174 -vt 0.905015 0.024218 -vt 0.872730 0.355174 -vt 0.872732 0.024218 -vt 0.840447 0.355174 -vt 0.840448 0.024218 -vt 0.808164 0.355173 -vt 0.808165 0.024218 -vt 0.775881 0.355173 -vt 0.775881 0.024218 -vt 0.743598 0.355173 -vt 0.743598 0.024218 -vt 0.711315 0.355173 -vt 0.711315 0.024218 -vt 0.679032 0.355173 -vt 0.679031 0.024218 -vt 0.965543 0.604218 -vt 0.941331 0.604218 -vt 0.646748 0.355173 -vt 0.614465 0.024218 -vt 0.646748 0.024218 -vt 0.872257 0.814551 -vt 0.807283 0.717237 -vt 0.904596 0.652263 -vt 0.211315 0.024218 -vt 0.211315 0.272435 -vt 0.187102 0.272435 -vt 0.804128 0.604218 -vt 0.779916 0.604218 -vt 0.642713 0.604218 -vt 0.618501 0.604218 -vt 0.513581 0.604218 -vt 0.868694 0.604218 -vt 0.707279 0.604218 -vt 0.683067 0.604218 -vt 0.578147 0.604218 -vt 0.553935 0.604218 -vt 0.933260 0.604218 -vt 0.909048 0.604218 -vt 0.771845 0.604218 -vt 0.747633 0.604218 -vt 0.481298 0.604218 -vt 0.457086 0.604218 -vt 0.836411 0.604218 -vt 0.812199 0.604218 -vt 0.674996 0.604218 -vt 0.650784 0.604218 -vt 0.545864 0.604218 -vt 0.900977 0.604218 -vt 0.876765 0.604218 -vt 0.610430 0.604218 -vt 0.586218 0.604218 -vt 0.739562 0.604218 -vt 0.715350 0.604218 -vt 0.259740 0.272435 -vt 0.256511 0.438707 -vt 0.238756 0.438707 -vt 0.380801 0.024219 -vt 0.380801 0.272435 -vt 0.356589 0.272435 -vt 0.187103 0.024218 -vt 0.162890 0.272435 -vt 0.356589 0.024219 -vt 0.332377 0.272435 -vt 0.138679 0.024218 -vt 0.138678 0.272435 -vt 0.114465 0.272435 -vt 0.162891 0.024218 -vt 0.332377 0.024219 -vt 0.308164 0.272435 -vt 0.114466 0.024218 -vt 0.090253 0.272434 -vt 0.308165 0.024219 -vt 0.283952 0.272435 -vt 0.090254 0.024218 -vt 0.066041 0.272434 -vt 0.283952 0.024219 -vt 0.066042 0.024218 -vt 0.041828 0.272434 -vt 0.259740 0.024219 -vt 0.235527 0.272435 -vt 0.041829 0.024218 -vt 0.017616 0.272434 -vt 0.235528 0.024219 -vt 0.405014 0.024219 -vt 0.405014 0.272435 -vt 0.069268 0.438705 -vt 0.087024 0.438705 -vt 0.078146 0.610096 -vt 0.038599 0.438707 -vt 0.232299 0.438707 -vt 0.214543 0.438707 -vt 0.401786 0.438707 -vt 0.384030 0.438707 -vt 0.208086 0.438707 -vt 0.190330 0.438707 -vt 0.377573 0.438706 -vt 0.183874 0.438706 -vt 0.353361 0.438707 -vt 0.135449 0.438707 -vt 0.117693 0.438707 -vt 0.159662 0.438707 -vt 0.329149 0.438707 -vt 0.311393 0.438707 -vt 0.111237 0.438707 -vt 0.093481 0.438707 -vt 0.304936 0.438707 -vt 0.287180 0.438707 -vt 0.280723 0.438706 -vt 0.262968 0.438706 -vt 0.062812 0.438707 -vt 0.045056 0.438707 -vt 0.296057 0.610098 -vt 0.320271 0.610099 -vt 0.344483 0.610101 -vt 0.335605 0.438707 -vt 0.368695 0.610095 -vt 0.359817 0.438706 -vt 0.392908 0.610101 -vt 0.102358 0.610101 -vt 0.029721 0.610100 -vt 0.020843 0.438707 -vt 0.053934 0.610099 -vt 0.271846 0.610095 -vt 0.247634 0.610098 -vt 0.223421 0.610099 -vt 0.199207 0.610098 -vt 0.174995 0.610095 -vt 0.166118 0.438706 -vt 0.150783 0.610101 -vt 0.141906 0.438707 -vt 0.126570 0.610099 -vt 0.969581 0.024218 -vt 0.934418 0.664628 -vt 0.957238 0.687463 -vt 0.969581 0.717294 -vt 0.969570 0.749577 -vt 0.957206 0.779398 -vt 0.934370 0.802218 -vt 0.904540 0.814562 -vt 0.842436 0.802186 -vt 0.819616 0.779351 -vt 0.807272 0.749521 -vt 0.819648 0.687416 -vt 0.842483 0.664596 -vt 0.872313 0.652252 -vt 0.489369 0.604218 -vt 0.844482 0.604218 -vt 0.521652 0.604218 -vt 0.017617 0.024218 -vn 0.000000 0.000000 -1.000000 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 1.000000 0.000000 0.000000 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.000000 -0.000000 1.000000 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -1.000000 0.000000 0.000000 -vn -0.923900 0.000000 -0.382700 -vn 0.920800 0.081500 0.381400 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn -0.000000 -1.000000 -0.000000 -vn -0.704800 0.081500 0.704800 -vn -0.381400 0.081500 -0.920800 -vn 0.920800 0.081500 -0.381400 -vn 0.000000 0.081500 0.996700 -vn -0.920800 0.081500 -0.381400 -vn 0.381400 0.081500 -0.920800 -vn 0.704800 0.081500 0.704800 -vn -0.920800 0.081500 0.381400 -vn 0.996700 0.081500 0.000000 -vn -0.381400 0.081500 0.920800 -vn -0.704800 0.081500 -0.704800 -vn 0.704800 0.081500 -0.704800 -vn 0.381400 0.081500 0.920800 -vn 0.000000 0.081500 -0.996700 -vn -0.996700 0.081500 0.000000 -vn -0.919500 0.097600 0.380900 -vn 0.682700 0.260400 -0.682700 -vn 0.995200 0.097600 0.000000 -vn -0.995200 0.097600 0.000000 -vn 0.919500 0.097600 0.380900 -vn -0.919500 0.097600 -0.380900 -vn 0.703700 0.097600 0.703700 -vn -0.703700 0.097600 -0.703700 -vn 0.380900 0.097600 0.919500 -vn 0.000000 0.097600 -0.995200 -vn -0.380900 0.097600 -0.919500 -vn 0.000000 0.097600 0.995200 -vn 0.380900 0.097600 -0.919500 -vn -0.380900 0.097600 0.919500 -vn 0.703700 0.097600 -0.703700 -vn -0.703700 0.097600 0.703700 -vn 0.919500 0.097600 -0.380900 -vn -0.369500 0.260400 0.892000 -vn 0.000000 0.260400 0.965500 -vn 0.369500 0.260400 0.892000 -vn 0.682700 0.260400 0.682700 -vn 0.892000 0.260400 0.369500 -vn 0.369500 0.260400 -0.892000 -vn 0.965500 0.260400 0.000000 -vn 0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 0.682700 -vn -0.892000 0.260400 0.369500 -vn -0.965500 0.260400 0.000000 -vn -0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 -0.682700 -vn -0.369500 0.260400 -0.892000 -vn 0.000000 0.260400 -0.965500 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 22/23/12 24/25/12 25/26/12 -f 24/25/13 26/27/13 27/28/13 -f 26/27/14 28/29/14 29/30/14 -f 10/12/15 30/31/15 31/32/15 -f 32/33/16 1/1/16 33/34/16 -f 28/29/17 32/33/17 34/35/17 -f 15/36/18 23/37/18 34/38/18 -f 35/39/14 36/40/14 37/41/14 -f 20/21/19 38/42/19 39/43/19 -f 32/33/20 40/44/20 41/45/20 -f 8/8/21 6/6/21 42/46/21 -f 18/19/22 16/17/22 43/47/22 -f 26/27/23 35/48/23 44/49/23 -f 2/2/24 45/50/24 46/51/24 -f 12/13/25 31/52/25 47/53/25 -f 22/23/26 39/54/26 48/55/26 -f 8/8/27 49/56/27 30/57/27 -f 18/19/28 50/58/28 38/59/28 -f 28/29/29 44/60/29 40/61/29 -f 6/6/30 4/4/30 46/62/30 -f 14/15/31 47/63/31 43/64/31 -f 1/1/32 41/65/32 45/66/32 -f 24/25/33 48/67/33 35/68/33 -f 51/69/34 52/70/34 53/71/34 -f 31/72/7 54/73/7 55/74/7 -f 44/75/17 37/41/17 56/76/17 -f 47/77/8 55/74/8 57/78/8 -f 41/79/1 58/80/1 59/81/1 -f 40/82/16 56/76/16 58/80/16 -f 43/83/9 57/78/9 60/84/9 -f 45/85/2 59/81/2 61/86/2 -f 50/87/10 60/84/10 62/88/10 -f 46/89/3 61/86/3 63/90/3 -f 38/91/11 62/88/11 51/69/11 -f 42/92/4 63/90/4 64/93/4 -f 39/94/12 51/69/12 65/95/12 -f 49/96/5 64/93/5 66/97/5 -f 48/98/13 65/95/13 36/40/13 -f 30/99/6 66/100/6 54/73/6 -f 67/101/35 68/102/35 69/103/35 -f 66/97/36 64/93/36 70/104/36 -f 65/95/37 53/105/37 71/106/37 -f 66/100/38 72/107/38 73/108/38 -f 36/40/39 71/109/39 74/110/39 -f 55/74/40 54/73/40 73/111/40 -f 56/76/41 37/41/41 74/112/41 -f 57/78/42 55/74/42 75/113/42 -f 58/80/43 76/114/43 77/115/43 -f 58/80/44 56/76/44 78/116/44 -f 57/78/45 79/117/45 80/118/45 -f 59/81/46 77/119/46 68/120/46 -f 60/84/47 80/121/47 81/122/47 -f 61/86/48 68/102/48 67/101/48 -f 62/88/49 81/123/49 52/124/49 -f 63/90/50 67/125/50 70/126/50 -f 80/121/51 69/127/51 81/122/51 -f 79/117/52 69/128/52 80/118/52 -f 75/113/53 69/129/53 79/130/53 -f 73/111/54 69/131/54 75/132/54 -f 72/107/55 69/133/55 73/108/55 -f 77/119/56 69/134/56 68/120/56 -f 70/104/57 69/135/57 72/136/57 -f 67/125/58 69/137/58 70/126/58 -f 81/123/59 69/138/59 52/124/59 -f 52/70/60 69/139/60 53/71/60 -f 53/105/61 69/140/61 71/106/61 -f 71/109/62 69/141/62 74/110/62 -f 74/112/63 69/142/63 78/143/63 -f 78/116/64 69/144/64 76/145/64 -f 76/114/65 69/146/65 77/115/65 -f 33/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/147/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 23/24/12 22/23/12 25/26/12 -f 25/26/13 24/25/13 27/28/13 -f 27/28/14 26/27/14 29/30/14 -f 12/13/15 10/12/15 31/32/15 -f 34/35/16 32/33/16 33/34/16 -f 29/30/17 28/29/17 34/35/17 -f 34/38/18 33/148/18 3/149/18 -f 3/149/18 5/150/18 34/38/18 -f 7/151/18 9/152/18 15/36/18 -f 11/153/18 13/154/18 15/36/18 -f 15/36/18 17/155/18 23/37/18 -f 19/156/18 21/157/18 23/37/18 -f 23/37/18 25/158/18 27/159/18 -f 27/159/18 29/160/18 23/37/18 -f 34/38/18 5/150/18 7/151/18 -f 9/152/18 11/153/18 15/36/18 -f 17/155/18 19/156/18 23/37/18 -f 23/37/18 29/160/18 34/38/18 -f 34/38/18 7/151/18 15/36/18 -f 44/75/14 35/39/14 37/41/14 -f 22/23/19 20/21/19 39/43/19 -f 1/1/20 32/33/20 41/45/20 -f 49/161/21 8/8/21 42/46/21 -f 50/162/22 18/19/22 43/47/22 -f 28/29/23 26/27/23 44/49/23 -f 4/4/24 2/2/24 46/51/24 -f 14/15/25 12/13/25 47/53/25 -f 24/25/26 22/23/26 48/55/26 -f 10/10/27 8/8/27 30/57/27 -f 20/21/28 18/19/28 38/59/28 -f 32/33/29 28/29/29 40/61/29 -f 42/163/30 6/6/30 46/62/30 -f 16/17/31 14/15/31 43/64/31 -f 2/2/32 1/1/32 45/66/32 -f 26/27/33 24/25/33 35/68/33 -f 65/95/34 51/69/34 53/71/34 -f 47/77/7 31/72/7 55/74/7 -f 40/82/17 44/75/17 56/76/17 -f 43/83/8 47/77/8 57/78/8 -f 45/85/1 41/79/1 59/81/1 -f 41/79/16 40/82/16 58/80/16 -f 50/87/9 43/83/9 60/84/9 -f 46/89/2 45/85/2 61/86/2 -f 38/91/10 50/87/10 62/88/10 -f 42/92/3 46/89/3 63/90/3 -f 39/94/11 38/91/11 51/69/11 -f 49/96/4 42/92/4 64/93/4 -f 48/98/12 39/94/12 65/95/12 -f 30/164/5 49/96/5 66/97/5 -f 35/39/13 48/98/13 36/40/13 -f 31/72/6 30/99/6 54/73/6 -f 72/136/36 66/97/36 70/104/36 -f 36/40/37 65/95/37 71/106/37 -f 54/73/38 66/100/38 73/108/38 -f 37/41/39 36/40/39 74/110/39 -f 75/132/40 55/74/40 73/111/40 -f 78/143/41 56/76/41 74/112/41 -f 79/130/42 57/78/42 75/113/42 -f 59/81/43 58/80/43 77/115/43 -f 76/145/44 58/80/44 78/116/44 -f 60/84/45 57/78/45 80/118/45 -f 61/86/46 59/81/46 68/120/46 -f 62/88/47 60/84/47 81/122/47 -f 63/90/48 61/86/48 67/101/48 -f 51/69/49 62/88/49 52/124/49 -f 64/93/50 63/90/50 70/126/50 diff --git a/src/main/resources/assets/hbm/models/missilenuclear.obj b/src/main/resources/assets/hbm/models/missilenuclear.obj deleted file mode 100644 index 29f98141cd..0000000000 --- a/src/main/resources/assets/hbm/models/missilenuclear.obj +++ /dev/null @@ -1,794 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileNuclear.blend' -# www.blender.org -o Cylinder -v -0.073159 0.500000 -0.367794 -v 0.073159 0.500000 -0.367794 -v 0.097545 0.000000 -0.490393 -v 0.208339 0.500000 -0.311801 -v 0.277785 0.000000 -0.415735 -v 0.311801 0.500000 -0.208339 -v 0.415735 0.000000 -0.277785 -v 0.367794 0.500000 -0.073159 -v 0.490393 0.000000 -0.097545 -v 0.367794 0.500000 0.073159 -v 0.490393 -0.000000 0.097545 -v 0.311801 0.500000 0.208339 -v 0.415735 -0.000000 0.277785 -v 0.208339 0.500000 0.311801 -v 0.277785 -0.000000 0.415735 -v 0.073159 0.500000 0.367794 -v 0.097545 -0.000000 0.490393 -v -0.073159 0.500000 0.367794 -v -0.097545 -0.000000 0.490393 -v -0.208339 0.500000 0.311801 -v -0.277785 -0.000000 0.415735 -v -0.311801 0.500000 0.208339 -v -0.415735 -0.000000 0.277785 -v -0.367794 0.500000 0.073159 -v -0.490393 -0.000000 0.097545 -v -0.367794 0.500000 -0.073159 -v -0.311801 0.500000 -0.208339 -v -0.415735 0.000000 -0.277785 -v 0.097545 0.500000 -0.490393 -v -0.208339 0.500000 -0.311801 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.490393 0.500000 0.097545 -v -0.490393 0.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 0.500000 0.097545 -v -0.277785 0.500000 -0.415735 -v -0.097545 0.500000 -0.490393 -v 0.277785 0.500000 0.415735 -v 0.097545 0.500000 0.490393 -v -0.277785 0.500000 0.415735 -v 0.277785 0.500000 -0.415735 -v -0.415735 0.500000 -0.277785 -v 0.415735 0.500000 0.277785 -v -0.097545 0.500000 0.490393 -v -0.415735 0.500000 0.277785 -v 0.415735 0.500000 -0.277785 -v 0.277785 3.500000 -0.415735 -v 0.260424 4.500000 -0.389751 -v 0.389751 4.500000 -0.260424 -v 0.459743 4.500000 -0.091449 -v 0.353374 5.000000 -0.236117 -v -0.490393 3.500000 -0.097545 -v -0.459744 4.500000 -0.091449 -v -0.389751 4.500000 -0.260424 -v -0.097545 3.500000 -0.490393 -v -0.091449 4.500000 -0.459742 -v 0.091449 4.500000 -0.459742 -v -0.490393 3.500000 0.097545 -v -0.415735 3.500000 0.277785 -v -0.389751 4.500000 0.260424 -v -0.097545 3.500000 0.490393 -v -0.091449 4.500000 0.459744 -v -0.260424 4.500000 0.389751 -v 0.277785 3.500000 0.415735 -v 0.260424 4.500000 0.389751 -v 0.091449 4.500000 0.459743 -v 0.490393 3.500000 0.097545 -v 0.459743 4.500000 0.091449 -v 0.389751 4.500000 0.260424 -v 0.490393 3.500000 -0.097545 -v 0.415735 3.500000 -0.277785 -v -0.277785 3.500000 -0.415735 -v -0.415735 3.500000 -0.277785 -v 0.097545 3.500000 -0.490393 -v -0.459744 4.500000 0.091449 -v -0.277785 3.500000 0.415735 -v 0.097545 3.500000 0.490393 -v 0.415735 3.500000 0.277785 -v -0.260424 4.500000 -0.389751 -v 0.416833 5.000000 -0.082913 -v 0.245196 5.500000 -0.048772 -v 0.245196 5.500000 0.048773 -v -0.353375 5.000000 -0.236117 -v 0.082913 5.000000 -0.416834 -v -0.416834 5.000000 0.082913 -v -0.236117 5.000000 0.353375 -v -0.353375 5.000000 0.236117 -v 0.082913 5.000000 0.416834 -v -0.082913 5.000000 0.416834 -v 0.353374 5.000000 0.236117 -v 0.236117 5.000000 0.353375 -v 0.416833 5.000000 0.082913 -v -0.236117 5.000000 -0.353375 -v 0.236117 5.000000 -0.353375 -v -0.416834 5.000000 -0.082913 -v -0.082914 5.000000 -0.416834 -v -0.138893 5.500000 -0.207867 -v -0.048773 5.500000 -0.245196 -v 0.138892 5.500000 -0.207867 -v 0.207867 5.500000 -0.138892 -v -0.245197 5.500000 -0.048772 -v -0.207868 5.500000 -0.138892 -v 0.048772 5.500000 -0.245196 -v -0.207868 5.500000 0.138893 -v -0.245197 5.500000 0.048773 -v -0.048773 5.500000 0.245197 -v -0.138893 5.500000 0.207868 -v 0.138892 5.500000 0.207868 -v 0.048772 5.500000 0.245197 -v 0.207867 5.500000 0.138893 -v 0.000000 5.750000 0.000000 -v 0.048772 1.500000 1.240393 -v 0.048772 0.500000 1.240393 -v 0.048773 3.500000 0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 0.500000 0.490393 -v -0.048773 0.500000 1.240393 -v -0.048772 3.500000 0.490393 -v 1.240393 0.500000 -0.048772 -v 1.240393 0.500000 0.048773 -v 0.490393 0.500000 0.048773 -v 0.490393 0.500000 -0.048772 -v -0.048772 3.500000 -0.490393 -v 0.048773 3.500000 -0.490393 -v -0.048772 1.500000 -1.240393 -v -0.490393 0.500000 -0.048772 -v -0.490393 0.500000 0.048772 -v -1.240393 0.500000 -0.048773 -v -1.240393 0.500000 0.048772 -v -0.490393 3.500000 0.048772 -v -0.048773 1.500000 1.240393 -v 0.048773 1.500000 -1.240393 -v -0.048772 0.500000 -1.240393 -v -1.240393 1.500000 -0.048773 -v -0.490393 3.500000 -0.048773 -v -1.240393 1.500000 0.048772 -v 0.048773 0.500000 -1.240393 -v 0.490393 3.500000 0.048773 -v 1.240393 1.500000 0.048773 -v 1.240393 1.500000 -0.048772 -v -0.490393 0.000000 -0.097545 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.490393 -v 0.490393 3.500000 -0.048772 -vt 0.053190 0.141950 -vt 0.047633 0.125797 -vt 0.103538 0.103554 -vt 0.040574 0.110242 -vt 0.094127 0.082814 -vt 0.032077 0.095424 -vt 0.082797 0.063057 -vt 0.022216 0.081476 -vt 0.069650 0.044459 -vt 0.011082 0.068522 -vt 0.054804 0.027187 -vt 0.011082 0.316533 -vt 0.022216 0.303579 -vt 0.069650 0.340596 -vt 0.032077 0.289631 -vt 0.082797 0.321998 -vt 0.040574 0.274813 -vt 0.094127 0.302241 -vt 0.047633 0.259258 -vt 0.103538 0.281501 -vt 0.053190 0.243105 -vt 0.110948 0.259964 -vt 0.057195 0.226500 -vt 0.116288 0.237824 -vt 0.059612 0.209590 -vt 0.119511 0.215277 -vt 0.060420 0.192527 -vt 0.059612 0.175465 -vt 0.119511 0.169778 -vt 0.679575 0.027188 -vt 0.696657 0.027188 -vt 0.699504 0.041501 -vt 0.057195 0.158555 -vt 0.110948 0.125091 -vt 0.116288 0.147231 -vt 0.867028 0.797659 -vt 0.883133 0.716696 -vt 0.947992 0.813764 -vt 0.810535 0.027188 -vt 0.813382 0.041500 -vt 0.790607 0.041500 -vt 0.628329 0.027189 -vt 0.631176 0.041502 -vt 0.608401 0.041502 -vt 0.742208 0.027188 -vt 0.745055 0.041501 -vt 0.722279 0.041501 -vt 0.702351 0.027188 -vt 0.719432 0.027188 -vt 0.924414 0.027187 -vt 0.927261 0.041500 -vt 0.904485 0.041500 -vt 0.839005 0.027187 -vt 0.856087 0.027187 -vt 0.858934 0.041500 -vt 0.656799 0.027189 -vt 0.673881 0.027189 -vt 0.676728 0.041501 -vt 0.787760 0.027188 -vt 0.767831 0.041501 -vt 0.969966 0.027187 -vt 0.972813 0.041500 -vt 0.950037 0.041500 -vt 0.901638 0.027187 -vt 0.881710 0.041500 -vt 0.833311 0.027187 -vt 0.836158 0.041500 -vt 0.634023 0.027189 -vt 0.651105 0.027189 -vt 0.653952 0.041501 -vt 0.764984 0.027188 -vt 0.947190 0.027187 -vt 0.861781 0.027187 -vt 0.878863 0.027187 -vt 0.676732 0.391730 -vt 0.676021 0.508528 -vt 0.654669 0.508529 -vt 0.631894 0.508529 -vt 0.653246 0.508529 -vt 0.652250 0.567115 -vt 0.790609 0.391729 -vt 0.789898 0.508527 -vt 0.768546 0.508528 -vt 0.722282 0.391730 -vt 0.721572 0.508527 -vt 0.700220 0.508527 -vt 0.813384 0.391729 -vt 0.836160 0.391729 -vt 0.835449 0.508527 -vt 0.881711 0.391729 -vt 0.880999 0.508527 -vt 0.859647 0.508527 -vt 0.927261 0.391729 -vt 0.926550 0.508527 -vt 0.905198 0.508527 -vt 0.972812 0.391729 -vt 0.972100 0.508527 -vt 0.950749 0.508527 -vt 0.631181 0.391731 -vt 0.653956 0.391731 -vt 0.745058 0.391730 -vt 0.767833 0.391730 -vt 0.767122 0.508528 -vt 0.699507 0.391730 -vt 0.698796 0.508528 -vt 0.812673 0.508527 -vt 0.791321 0.508527 -vt 0.858935 0.391729 -vt 0.858224 0.508527 -vt 0.904486 0.391729 -vt 0.903775 0.508526 -vt 0.882423 0.508526 -vt 0.950037 0.391729 -vt 0.949325 0.508527 -vt 0.630471 0.508528 -vt 0.609119 0.508528 -vt 0.744347 0.508528 -vt 0.722995 0.508528 -vt 0.629475 0.567114 -vt 0.625490 0.628829 -vt 0.614102 0.628829 -vt 0.745770 0.508528 -vt 0.766126 0.567114 -vt 0.677444 0.508528 -vt 0.697801 0.567114 -vt 0.811677 0.567113 -vt 0.857228 0.567113 -vt 0.837869 0.567113 -vt 0.902778 0.567112 -vt 0.883419 0.567112 -vt 0.948329 0.567113 -vt 0.928970 0.567113 -vt 0.610116 0.567114 -vt 0.743351 0.567114 -vt 0.675025 0.567114 -vt 0.788902 0.567114 -vt 0.720576 0.567113 -vt 0.834453 0.567113 -vt 0.815093 0.567114 -vt 0.880003 0.567113 -vt 0.860644 0.567113 -vt 0.925553 0.567113 -vt 0.906194 0.567113 -vt 0.971104 0.567113 -vt 0.951745 0.567113 -vt 0.739366 0.628829 -vt 0.727978 0.628829 -vt 0.671040 0.628829 -vt 0.659653 0.628829 -vt 0.784916 0.628829 -vt 0.773529 0.628829 -vt 0.716591 0.628828 -vt 0.705203 0.628828 -vt 0.830467 0.628828 -vt 0.819080 0.628828 -vt 0.876018 0.628828 -vt 0.864630 0.628828 -vt 0.921568 0.628828 -vt 0.910180 0.628828 -vt 0.967119 0.628828 -vt 0.955731 0.628828 -vt 0.632891 0.567115 -vt 0.648265 0.628830 -vt 0.762141 0.628829 -vt 0.750753 0.628829 -vt 0.693816 0.628829 -vt 0.682428 0.628829 -vt 0.807692 0.628828 -vt 0.796304 0.628828 -vt 0.853242 0.628828 -vt 0.841855 0.628828 -vt 0.898793 0.628826 -vt 0.887405 0.628826 -vt 0.944343 0.628828 -vt 0.932955 0.628828 -vt 0.779223 0.669709 -vt 0.756447 0.669709 -vt 0.733672 0.669709 -vt 0.824774 0.669709 -vt 0.710897 0.669708 -vt 0.688122 0.669709 -vt 0.665347 0.669710 -vt 0.642572 0.669711 -vt 0.636877 0.628830 -vt 0.619797 0.669709 -vt 0.961425 0.669709 -vt 0.938649 0.669708 -vt 0.915874 0.669708 -vt 0.893099 0.669707 -vt 0.870324 0.669709 -vt 0.847549 0.669708 -vt 0.801998 0.669709 -vt 0.257803 0.231487 -vt 0.257803 0.114744 -vt 0.345360 0.464974 -vt 0.345360 0.114744 -vt 0.158858 0.114744 -vt 0.246415 0.114744 -vt 0.158858 0.464974 -vt 0.482575 0.114744 -vt 0.471187 0.114744 -vt 0.471187 0.027187 -vt 0.482575 0.027187 -vt 0.257803 0.972808 -vt 0.246415 0.972808 -vt 0.257803 0.723435 -vt 0.471187 0.519135 -vt 0.482575 0.519136 -vt 0.471187 0.606692 -vt 0.482575 0.606692 -vt 0.570132 0.606692 -vt 0.570132 0.956921 -vt 0.246415 0.231487 -vt 0.246415 0.723435 -vt 0.257802 0.606692 -vt 0.471187 0.723435 -vt 0.383629 0.956921 -vt 0.482575 0.723435 -vt 0.246415 0.606692 -vt 0.383630 0.606692 -vt 0.471187 0.480867 -vt 0.471187 0.231487 -vt 0.482575 0.231487 -vt 0.054804 0.357868 -vt 0.120589 0.192527 -vt 0.964097 0.732800 -vt 0.972813 0.753842 -vt 0.972813 0.776617 -vt 0.964097 0.797659 -vt 0.904175 0.822480 -vt 0.926950 0.822480 -vt 0.883133 0.813764 -vt 0.611247 0.027189 -vt 0.858313 0.776618 -vt 0.867028 0.732800 -vt 0.904175 0.707980 -vt 0.926951 0.707980 -vt 0.947992 0.716696 -vt 0.858313 0.753842 -vt 0.793454 0.027188 -vt 0.725126 0.027188 -vt 0.907332 0.027187 -vt 0.770678 0.027188 -vt 0.952884 0.027187 -vt 0.884557 0.027187 -vt 0.816229 0.027187 -vt 0.747902 0.027188 -vt 0.930108 0.027187 -vt 0.814097 0.508527 -vt 0.836872 0.508527 -vt 0.927973 0.508527 -vt 0.608405 0.391731 -vt 0.746767 0.567114 -vt 0.678442 0.567114 -vt 0.792318 0.567113 -vt 0.723992 0.567114 -vt 0.655666 0.567115 -vt 0.769543 0.567114 -vt 0.701217 0.567113 -vt 0.334698 0.468972 -vt 0.246415 0.480866 -vt 0.158857 0.606693 -vt 0.158858 0.956922 -vt 0.345360 0.956921 -vt 0.471187 0.972813 -vt 0.383629 0.464973 -vt 0.345360 0.606692 -vt 0.257802 0.519135 -vt 0.482575 0.972813 -vt 0.383630 0.114744 -vt 0.246415 0.519135 -vt 0.257803 0.027187 -vt 0.246415 0.027187 -vt 0.570132 0.114744 -vt 0.570132 0.464973 -vt 0.482575 0.480867 -vn 0.000000 0.238100 -0.971200 -vn 0.371700 0.238100 -0.897300 -vn 0.686800 0.238100 -0.686800 -vn 0.897300 0.238100 -0.371700 -vn 0.971200 0.238100 0.000000 -vn 0.897300 0.238100 0.371700 -vn 0.686800 0.238100 0.686800 -vn 0.371700 0.238100 0.897300 -vn 0.000000 0.238100 0.971200 -vn -0.371700 0.238100 0.897300 -vn -0.686800 0.238100 0.686800 -vn -0.897300 0.238100 0.371700 -vn -0.971200 0.238100 0.000000 -vn -0.897300 0.238100 -0.371700 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.868200 -0.496100 -vn -0.371700 0.238100 -0.897300 -vn -0.686800 0.238100 -0.686800 -vn -0.496100 -0.868200 0.000000 -vn 0.496100 -0.868200 0.000000 -vn 0.000000 -0.868200 0.496100 -vn 0.706800 0.030600 -0.706800 -vn 0.920500 0.085500 -0.381300 -vn -0.923400 0.030600 -0.382500 -vn 0.000000 0.030600 -0.999500 -vn -0.923400 0.030600 0.382500 -vn -0.382500 0.030600 0.923400 -vn 0.382500 0.030600 0.923400 -vn 0.923400 0.030600 0.382500 -vn 0.923400 0.030600 -0.382500 -vn -0.706800 0.030600 -0.706800 -vn 0.382500 0.030600 -0.923400 -vn -0.999500 0.030600 0.000000 -vn -0.706800 0.030600 0.706800 -vn 0.000000 0.030600 0.999500 -vn 0.706800 0.030600 0.706800 -vn 0.999500 0.030600 0.000000 -vn -0.382500 0.030600 -0.923400 -vn 0.945800 0.324700 0.000000 -vn -0.704500 0.085500 -0.704500 -vn 0.381300 0.085500 -0.920500 -vn -0.996300 0.085500 0.000000 -vn -0.704500 0.085500 0.704500 -vn 0.000000 0.085500 0.996300 -vn 0.704500 0.085500 0.704500 -vn 0.996300 0.085500 0.000000 -vn -0.381300 0.085500 -0.920500 -vn 0.704500 0.085500 -0.704500 -vn -0.920500 0.085500 -0.381300 -vn 0.000000 0.085500 -0.996300 -vn -0.920500 0.085500 0.381300 -vn -0.381300 0.085500 0.920500 -vn 0.381300 0.085500 0.920500 -vn 0.920500 0.085500 0.381300 -vn -0.362000 0.324700 -0.873800 -vn 0.668800 0.324700 -0.668800 -vn -0.873800 0.324700 -0.362000 -vn 0.000000 0.324700 -0.945800 -vn -0.873800 0.324700 0.362000 -vn -0.362000 0.324700 0.873800 -vn 0.362000 0.324700 0.873800 -vn 0.873800 0.324700 0.362000 -vn 0.873800 0.324700 0.361900 -vn 0.873800 0.324700 -0.362000 -vn -0.668800 0.324700 -0.668800 -vn 0.362000 0.324700 -0.873800 -vn -0.945800 0.324700 0.000000 -vn -0.668800 0.324700 0.668800 -vn 0.000000 0.324700 0.945800 -vn 0.668800 0.324700 0.668800 -vn -0.659600 0.700200 -0.273200 -vn -0.504800 0.700200 -0.504800 -vn -0.273200 0.700200 -0.659600 -vn -0.659600 0.700200 0.273200 -vn 0.000000 0.700200 -0.713900 -vn 0.273200 0.700200 -0.659600 -vn 0.504800 0.700200 -0.504800 -vn 0.659600 0.700200 -0.273200 -vn 0.713900 0.700200 0.000000 -vn 0.659600 0.700200 0.273200 -vn 0.504800 0.700200 0.504800 -vn 0.273200 0.700200 0.659600 -vn 0.000000 0.700200 0.713900 -vn -0.273200 0.700200 0.659600 -vn -0.504800 0.700200 0.504800 -vn -0.713900 0.700200 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 0.351100 -0.936300 -vn 0.000000 0.000000 -1.000000 -vn 0.936300 0.351100 0.000000 -vn 0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.707100 0.000000 -0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.873800 0.324700 -0.361900 -vn 0.000000 0.351100 0.936300 -vn -0.936300 0.351100 0.000000 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 23/24/12 22/23/12 24/25/12 -f 25/26/13 24/25/13 26/27/13 -f 26/27/14 27/28/14 28/29/14 -f 4/30/15 2/31/15 29/32/16 -f 30/33/17 1/1/17 31/34/17 -f 27/28/18 30/33/18 32/35/18 -f 15/36/15 23/37/15 7/38/15 -f 24/39/15 33/40/19 34/41/19 -f 8/42/15 35/43/20 36/44/20 -f 30/45/15 37/46/15 38/47/16 -f 2/48/15 1/49/15 38/47/16 -f 14/50/15 39/51/15 40/52/21 -f 22/53/15 20/54/15 41/55/15 -f 6/56/15 4/57/15 42/58/15 -f 26/59/15 34/41/19 43/60/15 -f 10/61/15 36/62/20 44/63/15 -f 16/64/15 40/52/21 45/65/21 -f 22/66/15 46/67/15 33/40/19 -f 8/68/15 6/69/15 47/70/15 -f 27/71/15 43/60/15 37/46/15 -f 12/72/15 44/63/15 39/51/15 -f 20/73/15 18/74/15 45/65/21 -f 48/75/22 49/76/22 50/77/22 -f 51/78/23 50/79/23 52/80/23 -f 53/81/24 54/82/24 55/83/24 -f 56/84/25 57/85/25 58/86/25 -f 59/87/26 60/88/26 61/89/26 -f 62/90/27 63/91/27 64/92/27 -f 65/93/28 66/94/28 67/95/28 -f 68/96/29 69/97/29 70/98/29 -f 71/99/30 72/100/30 50/79/30 -f 73/101/31 74/102/31 55/103/31 -f 48/75/32 75/104/32 58/105/32 -f 59/87/33 76/106/33 54/107/33 -f 60/88/34 77/108/34 64/109/34 -f 78/110/35 67/111/35 63/112/35 -f 65/93/36 79/113/36 70/114/36 -f 71/99/37 51/115/37 69/116/37 -f 73/101/38 80/117/38 57/118/38 -f 81/119/39 82/120/39 83/121/39 -f 80/122/40 55/103/40 84/123/40 -f 49/124/41 58/105/41 85/125/41 -f 54/107/42 76/106/42 86/126/42 -f 64/109/43 87/127/43 88/128/43 -f 67/111/44 89/129/44 90/130/44 -f 70/114/45 91/131/45 92/132/45 -f 51/115/46 81/119/46 93/133/46 -f 57/118/47 80/117/47 94/134/47 -f 50/77/48 49/76/48 95/135/48 -f 55/83/49 54/82/49 96/136/49 -f 58/86/50 57/85/50 97/137/50 -f 61/89/51 88/138/51 86/139/51 -f 63/91/52 90/140/52 87/141/52 -f 66/94/53 92/142/53 89/143/53 -f 69/97/54 93/144/54 91/145/54 -f 94/134/55 98/146/55 99/147/55 -f 95/135/56 100/148/56 101/149/56 -f 96/136/57 102/150/57 103/151/57 -f 97/137/58 99/152/58 104/153/58 -f 88/138/59 105/154/59 106/155/59 -f 90/140/60 107/156/60 108/157/60 -f 92/142/61 109/158/61 110/159/61 -f 93/144/62 83/160/63 111/161/62 -f 81/162/64 52/80/64 101/163/64 -f 84/123/65 103/164/65 98/165/65 -f 85/125/66 104/166/66 100/167/66 -f 86/126/67 106/168/67 102/169/67 -f 87/127/68 108/170/68 105/171/68 -f 89/129/69 110/172/69 107/173/69 -f 91/131/70 111/174/70 109/175/70 -f 102/150/71 112/176/71 103/151/71 -f 103/164/72 112/177/72 98/165/72 -f 98/146/73 112/178/73 99/147/73 -f 105/154/74 112/179/74 106/155/74 -f 99/152/75 112/180/75 104/153/75 -f 104/166/76 112/181/76 100/167/76 -f 100/148/77 112/182/77 101/149/77 -f 101/163/78 112/183/78 82/184/78 -f 82/120/79 112/185/79 83/121/79 -f 83/160/80 112/186/80 111/161/80 -f 111/174/81 112/187/81 109/175/81 -f 109/158/82 112/188/82 110/159/82 -f 110/172/83 112/189/83 107/173/83 -f 107/156/84 112/190/84 108/157/84 -f 108/170/85 112/191/85 105/171/85 -f 102/169/86 106/168/86 112/192/86 -f 45/65/21 40/52/21 78/110/87 -f 113/193/88 114/194/88 115/195/88 -f 114/194/88 116/196/88 115/195/88 -f 117/197/89 118/198/89 119/199/89 -f 120/200/15 121/201/15 122/202/15 -f 123/203/15 120/200/15 122/202/15 -f 124/204/90 125/205/90 126/206/90 -f 127/207/15 128/208/15 129/209/15 -f 128/208/15 130/210/15 129/209/15 -f 130/210/87 128/211/87 131/212/87 -f 118/198/89 132/213/89 119/199/89 -f 125/205/90 133/214/90 126/206/90 -f 134/215/91 126/206/91 133/214/91 -f 129/209/91 135/216/91 136/217/91 -f 137/218/87 130/210/87 131/212/87 -f 138/219/91 134/215/91 133/214/91 -f 118/198/87 114/194/87 132/213/87 -f 127/220/91 129/209/91 136/217/91 -f 114/194/87 113/193/87 132/213/87 -f 139/221/92 140/222/92 141/223/92 -f 72/100/93 71/99/93 35/43/93 -f 75/104/94 48/75/94 42/58/94 -f 48/75/95 72/100/95 47/70/95 -f 73/101/96 56/84/96 38/47/96 -f 53/81/97 74/102/97 43/60/97 -f 74/102/98 73/101/98 37/46/98 -f 60/88/99 59/87/99 33/40/99 -f 62/90/100 77/108/100 41/55/100 -f 77/108/101 60/88/101 46/67/101 -f 65/93/102 78/110/102 40/52/102 -f 68/96/103 79/113/103 44/63/103 -f 79/113/104 65/93/104 39/51/104 -f 31/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/224/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 25/26/12 23/24/12 24/25/12 -f 142/225/13 25/26/13 26/27/13 -f 142/225/14 26/27/14 28/29/14 -f 42/58/15 4/30/15 29/32/16 -f 32/35/17 30/33/17 31/34/17 -f 28/29/18 27/28/18 32/35/18 -f 32/226/15 31/227/15 3/228/15 -f 3/228/15 5/229/15 7/38/15 -f 11/230/15 15/36/15 9/231/15 -f 11/230/15 13/232/15 15/36/15 -f 10/233/15 8/42/15 36/44/20 -f 23/37/15 17/234/15 21/235/15 -f 23/37/15 25/236/15 142/237/15 -f 142/237/15 28/238/15 32/226/15 -f 23/37/15 142/237/15 7/38/15 -f 23/37/15 15/36/15 17/234/15 -f 17/234/15 19/239/15 21/235/15 -f 32/226/15 3/228/15 142/237/15 -f 26/240/15 24/39/15 34/41/19 -f 142/237/15 3/228/15 7/38/15 -f 15/36/15 7/38/15 9/231/15 -f 1/241/15 30/45/15 38/47/16 -f 29/32/16 2/48/15 38/47/16 -f 16/242/15 14/50/15 40/52/21 -f 46/67/15 22/53/15 41/55/15 -f 47/70/15 6/56/15 42/58/15 -f 27/243/15 26/59/15 43/60/15 -f 12/244/15 10/61/15 44/63/15 -f 18/245/15 16/64/15 45/65/21 -f 24/246/15 22/66/15 33/40/19 -f 35/43/20 8/68/15 47/70/15 -f 30/247/15 27/71/15 37/46/15 -f 14/248/15 12/72/15 39/51/15 -f 41/55/15 20/73/15 45/65/21 -f 72/100/22 48/75/22 50/77/22 -f 81/162/23 51/78/23 52/80/23 -f 74/102/24 53/81/24 55/83/24 -f 75/104/25 56/84/25 58/86/25 -f 76/249/26 59/87/26 61/89/26 -f 77/108/27 62/90/27 64/92/27 -f 78/110/28 65/93/28 67/95/28 -f 79/113/29 68/96/29 70/98/29 -f 51/78/30 71/99/30 50/79/30 -f 80/122/31 73/101/31 55/103/31 -f 49/124/32 48/75/32 58/105/32 -f 53/81/33 59/87/33 54/107/33 -f 61/250/34 60/88/34 64/109/34 -f 62/90/35 78/110/35 63/112/35 -f 66/251/36 65/93/36 70/114/36 -f 68/252/37 71/99/37 69/116/37 -f 56/84/38 73/101/38 57/118/38 -f 93/133/39 81/119/39 83/121/39 -f 94/253/40 80/122/40 84/123/40 -f 95/254/41 49/124/41 85/125/41 -f 96/255/42 54/107/42 86/126/42 -f 61/250/43 64/109/43 88/128/43 -f 63/112/44 67/111/44 90/130/44 -f 66/251/45 70/114/45 92/132/45 -f 69/116/46 51/115/46 93/133/46 -f 97/256/47 57/118/47 94/134/47 -f 52/257/48 50/77/48 95/135/48 -f 84/258/49 55/83/49 96/136/49 -f 85/259/50 58/86/50 97/137/50 -f 76/249/51 61/89/51 86/139/51 -f 64/92/52 63/91/52 87/141/52 -f 67/95/53 66/94/53 89/143/53 -f 70/98/54 69/97/54 91/145/54 -f 97/256/55 94/134/55 99/147/55 -f 52/257/56 95/135/56 101/149/56 -f 84/258/57 96/136/57 103/151/57 -f 85/259/58 97/137/58 104/153/58 -f 86/139/59 88/138/59 106/155/59 -f 87/141/60 90/140/60 108/157/60 -f 89/143/61 92/142/61 110/159/61 -f 91/145/62 93/144/62 111/161/62 -f 82/184/105 81/162/64 101/163/64 -f 94/253/65 84/123/65 98/165/65 -f 95/254/66 85/125/66 100/167/66 -f 96/255/67 86/126/67 102/169/67 -f 88/128/68 87/127/68 105/171/68 -f 90/130/69 89/129/69 107/173/69 -f 92/132/70 91/131/70 109/175/70 -f 120/200/88 141/223/88 140/222/88 -f 115/195/106 119/260/106 113/193/106 -f 119/261/106 132/213/106 113/193/106 -f 143/262/88 138/219/88 125/263/88 -f 121/201/88 120/200/88 140/222/88 -f 129/209/89 130/210/89 135/216/89 -f 126/206/89 134/215/89 124/264/89 -f 130/210/89 137/218/89 135/216/89 -f 136/265/107 135/216/107 137/218/107 -f 121/201/87 140/222/87 139/266/87 -f 138/219/88 133/214/88 125/263/88 -f 134/215/89 144/267/89 124/264/89 -f 144/268/15 134/215/15 138/219/15 -f 131/269/107 136/265/107 137/218/107 -f 122/270/87 121/201/87 139/266/87 -f 143/271/15 144/268/15 138/219/15 -f 116/272/15 114/194/15 117/273/15 -f 120/200/91 123/274/91 145/275/91 -f 114/194/15 118/198/15 117/273/15 -f 141/223/91 120/200/91 145/275/91 -f 47/70/93 72/100/93 35/43/93 -f 29/32/94 75/104/94 42/58/94 -f 42/58/95 48/75/95 47/70/95 -f 37/46/96 73/101/96 38/47/96 -f 34/41/97 53/81/97 43/60/97 -f 43/60/98 74/102/98 37/46/98 -f 46/67/99 60/88/99 33/40/99 -f 45/65/100 62/90/100 41/55/100 -f 41/55/101 77/108/101 46/67/101 -f 39/51/102 65/93/102 40/52/102 -f 36/62/103 68/96/103 44/63/103 -f 44/63/104 79/113/104 39/51/104 -f 36/44/20 35/43/20 71/99/88 -f 141/223/92 145/276/92 139/221/92 -f 38/47/16 56/84/91 75/104/91 -f 53/81/89 34/41/19 33/40/19 -f 62/90/87 45/65/21 78/110/87 -f 68/252/88 36/44/20 71/99/88 -f 29/32/16 38/47/16 75/104/91 -f 59/87/89 53/81/89 33/40/19 diff --git a/src/main/resources/assets/hbm/models/missilev2.obj b/src/main/resources/assets/hbm/models/missilev2.obj deleted file mode 100644 index a4c0171f01..0000000000 --- a/src/main/resources/assets/hbm/models/missilev2.obj +++ /dev/null @@ -1,599 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileV2.blend' -# www.blender.org -o Cylinder -v -0.416943 1.750000 -0.275969 -v -0.312707 0.250000 -0.206976 -v -0.368110 0.250000 -0.071553 -v 0.414519 1.750000 -0.279596 -v 0.310889 0.250000 -0.209697 -v 0.206976 0.250000 -0.312707 -v -0.275968 1.750000 0.416943 -v -0.414519 1.750000 0.279597 -v -0.310889 0.250000 0.209697 -v 0.099684 1.750000 0.489962 -v 0.074763 0.250000 0.367472 -v 0.209697 0.250000 0.310889 -v -0.279596 1.750000 -0.414519 -v -0.099684 1.750000 -0.489962 -v -0.074763 0.250000 -0.367472 -v 0.095404 1.750000 -0.490814 -v 0.275968 1.750000 -0.416943 -v -0.095404 1.750000 0.490814 -v -0.206976 0.250000 0.312707 -v 0.279597 1.750000 0.414519 -v 0.312707 0.250000 0.206976 -v -0.209697 0.250000 -0.310889 -v 0.489962 1.750000 -0.099684 -v 0.367472 0.250000 -0.074763 -v -0.489962 1.750000 0.099684 -v -0.367472 0.250000 0.074763 -v 0.489962 3.250000 -0.099684 -v 0.490814 3.250000 0.095405 -v 0.157273 -0.000000 0.233167 -v 0.490814 1.750000 0.095405 -v 0.416943 1.750000 0.275968 -v -0.275968 3.250000 0.416943 -v -0.206976 4.250000 0.312707 -v -0.310889 4.250000 0.209697 -v -0.279596 3.250000 -0.414519 -v -0.099684 3.250000 -0.489962 -v 0.095405 3.250000 -0.490814 -v 0.279597 3.250000 0.414519 -v 0.099684 3.250000 0.489962 -v -0.414519 3.250000 0.279597 -v 0.275968 3.250000 -0.416943 -v 0.414519 3.250000 -0.279596 -v -0.490814 1.750000 -0.095405 -v -0.490814 3.250000 -0.095405 -v -0.416943 3.250000 -0.275969 -v 0.416943 3.250000 0.275968 -v -0.489962 3.250000 0.099684 -v -0.095404 3.250000 0.490814 -v 0.074763 4.250000 0.367472 -v -0.071553 4.250000 0.368110 -v 0.312707 4.250000 0.206976 -v 0.209697 4.250000 0.310889 -v 0.367472 4.250000 -0.074763 -v 0.368110 4.250000 0.071553 -v -0.209697 4.250000 -0.310889 -v -0.074763 4.250000 -0.367472 -v 0.206976 4.250000 -0.312707 -v 0.310889 4.250000 -0.209697 -v -0.368110 4.250000 -0.071553 -v -0.312707 4.250000 -0.206976 -v 0.071553 4.250000 -0.368110 -v -0.367472 4.250000 0.074763 -v 0.000000 5.250000 0.000000 -v -0.489962 1.750000 0.051186 -v -0.368110 0.250000 -0.034432 -v 0.071553 0.250000 -0.368110 -v 0.367472 0.250000 -0.038726 -v 0.489962 1.750000 -0.051186 -v 0.038726 0.250000 0.367472 -v 0.051186 1.750000 0.489962 -v 0.368110 0.250000 0.071553 -v -0.071553 0.250000 0.368110 -v 0.056072 -0.000000 0.275604 -v -0.053665 -0.000000 0.276083 -v -0.276083 0.000000 -0.053665 -v -0.056072 0.000000 -0.275604 -v -0.157273 0.000000 -0.233167 -v 0.053665 0.000000 -0.276083 -v -0.155232 -0.000000 0.234530 -v -0.233167 -0.000000 0.157273 -v 0.275604 0.000000 -0.056072 -v 0.233167 0.000000 -0.157273 -v 0.276083 -0.000000 0.053665 -v -0.234530 0.000000 -0.155232 -v 0.155232 0.000000 -0.234530 -v -0.275604 -0.000000 0.056072 -v 0.234530 -0.000000 0.155232 -v -0.051186 1.750000 -0.489962 -v -0.038726 0.250000 -0.367472 -v 0.046358 1.750000 -0.490814 -v -0.040084 0.000000 -0.990064 -v 0.033074 0.000000 -0.990702 -v 0.034432 0.250000 -0.368110 -v -0.367472 0.250000 0.038726 -v -0.490814 1.750000 -0.046358 -v -0.990702 0.000000 -0.033074 -v -0.990064 -0.000000 0.040084 -v -0.046358 1.750000 0.490814 -v -0.033074 -0.000000 0.990703 -v 0.040084 -0.000000 0.990064 -v -0.034432 0.250000 0.368110 -v 0.490814 1.750000 0.046358 -v 0.990064 0.000000 -0.040084 -v 0.990702 -0.000000 0.033074 -v 0.368110 0.250000 0.034432 -vt 0.601459 0.261980 -vt 0.604770 0.057671 -vt 0.624633 0.057671 -vt 0.696990 0.261981 -vt 0.700300 0.057672 -vt 0.720163 0.057672 -vt 0.967508 0.261981 -vt 0.941023 0.261981 -vt 0.944335 0.057671 -vt 0.792523 0.261982 -vt 0.795834 0.057673 -vt 0.815697 0.057673 -vt 0.574975 0.261980 -vt 0.548491 0.261980 -vt 0.551801 0.057671 -vt 0.749959 0.261981 -vt 0.723475 0.261981 -vt 0.726785 0.057672 -vt 0.993992 0.261981 -vt 0.970819 0.057671 -vt 0.819007 0.261982 -vt 0.822318 0.057673 -vt 0.842181 0.057673 -vt 0.578285 0.057671 -vt 0.670506 0.261981 -vt 0.673816 0.057672 -vt 0.914539 0.261980 -vt 0.917851 0.057671 -vt 0.670507 0.465612 -vt 0.644022 0.465612 -vt 0.824801 0.021512 -vt 0.871975 0.261982 -vt 0.845491 0.261982 -vt 0.848802 0.057673 -vt 0.967507 0.465611 -vt 0.964196 0.602381 -vt 0.944333 0.602381 -vt 0.574974 0.465611 -vt 0.548490 0.465611 -vt 0.522006 0.465611 -vt 0.819006 0.465613 -vt 0.792522 0.465613 -vt 0.941023 0.465611 -vt 0.723475 0.465612 -vt 0.696991 0.465612 -vt 0.627943 0.261980 -vt 0.627943 0.465611 -vt 0.601459 0.465611 -vt 0.871975 0.465613 -vt 0.845491 0.465613 -vt 0.766038 0.261982 -vt 0.914538 0.465611 -vt 0.993991 0.465611 -vt 0.749959 0.465612 -vt 0.888054 0.465611 -vt 0.789211 0.602382 -vt 0.769348 0.602382 -vt 0.842180 0.602383 -vt 0.822316 0.602383 -vt 0.667197 0.602382 -vt 0.647334 0.602382 -vt 0.571664 0.602380 -vt 0.551801 0.602380 -vt 0.720165 0.602381 -vt 0.700302 0.602381 -vt 0.624632 0.602381 -vt 0.604769 0.602381 -vt 0.545180 0.602380 -vt 0.525317 0.602381 -vt 0.937711 0.602381 -vt 0.990680 0.602381 -vt 0.970817 0.602381 -vt 0.815695 0.602383 -vt 0.795832 0.602383 -vt 0.868664 0.602383 -vt 0.693681 0.602381 -vt 0.598148 0.602381 -vt 0.746649 0.602382 -vt 0.911227 0.602381 -vt 0.891364 0.602381 -vt 0.858732 0.747027 -vt 0.848801 0.602382 -vt 0.683750 0.747025 -vt 0.673818 0.602381 -vt 0.657266 0.747026 -vt 0.832248 0.747027 -vt 0.710234 0.747024 -vt 0.736718 0.747027 -vt 0.726786 0.602382 -vt 0.535248 0.747025 -vt 0.561732 0.747025 -vt 0.805763 0.747028 -vt 0.779279 0.747026 -vt 0.980747 0.747026 -vt 0.954264 0.747024 -vt 0.927779 0.747025 -vt 0.917848 0.602381 -vt 0.588216 0.747025 -vt 0.578285 0.602381 -vt 0.614700 0.747025 -vt 0.901295 0.747025 -vt 0.422370 0.713895 -vt 0.423581 0.466820 -vt 0.435612 0.713895 -vt 0.251725 0.359662 -vt 0.252936 0.112587 -vt 0.264967 0.359662 -vt 0.424134 0.021510 -vt 0.434067 0.021510 -vt 0.423581 0.112591 -vt 0.505927 0.522061 -vt 0.433513 0.466820 -vt 0.351361 0.522314 -vt 0.424134 0.375743 -vt 0.435613 0.359665 -vt 0.422370 0.359665 -vt 0.433513 0.112591 -vt 0.505927 0.167831 -vt 0.263420 0.021510 -vt 0.262868 0.112587 -vt 0.253488 0.021510 -vt 0.888055 0.261980 -vt 0.891366 0.057671 -vt 0.911230 0.057671 -vt 0.180716 0.168081 -vt 0.335282 0.167827 -vt 0.431033 0.759972 -vt 0.436734 0.746209 -vt 0.489692 0.735675 -vt 0.554284 0.021510 -vt 0.569181 0.021510 -vt 0.525317 0.057671 -vt 0.527800 0.021510 -vt 0.542697 0.021510 -vt 0.990682 0.057672 -vt 0.973302 0.021510 -vt 0.946818 0.021510 -vt 0.961715 0.021510 -vt 0.676299 0.021511 -vt 0.691196 0.021511 -vt 0.647332 0.057671 -vt 0.649814 0.021510 -vt 0.664712 0.021510 -vt 0.607252 0.021510 -vt 0.622150 0.021510 -vt 0.580768 0.021510 -vt 0.595666 0.021510 -vt 0.798317 0.021512 -vt 0.813214 0.021512 -vt 0.769350 0.057671 -vt 0.771832 0.021510 -vt 0.786730 0.021510 -vt 0.729267 0.021511 -vt 0.744165 0.021511 -vt 0.702783 0.021511 -vt 0.717680 0.021511 -vt 0.920334 0.021510 -vt 0.935231 0.021510 -vt 0.893849 0.021510 -vt 0.908747 0.021510 -vt 0.851285 0.021512 -vt 0.866183 0.021512 -vt 0.964198 0.057671 -vt 0.571664 0.057671 -vt 0.746648 0.057672 -vt 0.598149 0.057671 -vt 0.693679 0.057672 -vt 0.937714 0.057671 -vt 0.644022 0.261981 -vt 0.839699 0.021512 -vt 0.868665 0.057673 -vt 0.522006 0.261980 -vt 0.766038 0.465612 -vt 0.351361 0.168085 -vt 0.545180 0.057671 -vt 0.667195 0.057671 -vt 0.789213 0.057671 -vt 0.489692 0.799167 -vt 0.475929 0.804868 -vt 0.500226 0.788633 -vt 0.431033 0.774870 -vt 0.461031 0.804868 -vt 0.447268 0.799167 -vt 0.436734 0.788633 -vt 0.447268 0.735675 -vt 0.475929 0.729974 -vt 0.461032 0.729974 -vt 0.505927 0.774870 -vt 0.505927 0.759972 -vt 0.500226 0.746209 -vt 0.988200 0.021510 -vt 0.262744 0.466032 -vt 0.252812 0.466032 -vt 0.253365 0.374955 -vt 0.264843 0.713106 -vt 0.251601 0.713106 -vt 0.180592 0.521526 -vt 0.335159 0.521272 -vt 0.263297 0.374955 -vt 0.434066 0.375743 -vn -0.922500 -0.081500 -0.377400 -vn 0.701700 -0.081500 -0.707800 -vn -0.701700 -0.081500 0.707800 -vn 0.385400 -0.081500 0.919100 -vn -0.385400 -0.081500 -0.919100 -vn 0.377400 -0.081500 -0.922500 -vn -0.377400 -0.081500 0.922500 -vn 0.707800 -0.081500 0.701700 -vn -0.707800 -0.081500 -0.701700 -vn 0.919100 -0.081500 -0.385400 -vn -0.919100 -0.081500 0.385400 -vn 1.000000 -0.000000 -0.004400 -vn 0.666500 -0.345200 0.660700 -vn 0.922500 -0.081500 0.377400 -vn -0.698800 0.121700 0.704900 -vn -0.386700 0.000000 -0.922200 -vn -0.004400 0.000000 -1.000000 -vn 0.386700 -0.000000 0.922200 -vn -0.704000 -0.000000 0.710200 -vn 0.704000 0.000000 -0.710200 -vn -0.925500 0.000000 -0.378700 -vn 0.925500 -0.000000 0.378700 -vn 0.004400 -0.000000 1.000000 -vn -0.922200 0.000000 0.386700 -vn 0.922200 0.000000 -0.386700 -vn -0.710200 0.000000 -0.704000 -vn 0.710200 -0.000000 0.704000 -vn -0.378700 -0.000000 0.925500 -vn -0.378600 -0.000000 0.925500 -vn 0.378700 0.000000 -0.925500 -vn -1.000000 0.000000 0.004400 -vn 0.004300 0.121700 0.992600 -vn 0.704900 0.121700 0.698800 -vn 0.992600 0.121700 -0.004300 -vn -0.383800 0.121700 -0.915300 -vn 0.698800 0.121700 -0.704900 -vn -0.918700 0.121700 -0.375800 -vn -0.004300 0.121700 -0.992600 -vn -0.915300 0.121700 0.383800 -vn -0.375800 0.121700 0.918700 -vn 0.383800 0.121700 0.915300 -vn 0.918700 0.121700 0.375800 -vn 0.915300 0.121700 -0.383800 -vn -0.704900 0.121700 -0.698800 -vn 0.375800 0.121700 -0.918700 -vn -0.992600 0.121700 0.004300 -vn 0.868700 0.345200 0.355400 -vn 0.865500 0.345200 -0.362900 -vn 0.938500 0.345200 -0.004100 -vn 0.666500 0.345200 0.660700 -vn 0.660700 0.345200 -0.666500 -vn 0.355400 0.345200 -0.868700 -vn -0.004100 0.345200 -0.938500 -vn -0.362900 0.345200 -0.865500 -vn 0.362900 0.345200 0.865500 -vn 0.004100 0.345200 0.938500 -vn -0.355400 0.345200 0.868700 -vn -0.660700 0.345200 0.666500 -vn -0.865500 0.345200 0.362900 -vn -0.666500 0.345200 -0.660700 -vn -0.868700 0.345200 -0.355400 -vn -0.938500 0.345200 0.004100 -vn -0.961500 0.274700 0.008400 -vn 0.961500 0.274700 -0.008400 -vn -0.003200 -0.928000 -0.372600 -vn -0.003300 -0.928000 -0.372600 -vn 0.005300 -0.007900 1.000000 -vn 0.001000 -0.007900 -1.000000 -vn 0.372600 -0.928000 -0.003200 -vn 0.008400 0.274700 0.961500 -vn 1.000000 -0.007900 -0.005300 -vn -0.372600 -0.928000 0.003200 -vn -0.996700 -0.081500 0.004400 -vn -0.996700 -0.081500 0.004300 -vn -0.001000 -0.007900 1.000000 -vn -0.005300 -0.007900 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn -0.362900 -0.345200 -0.865500 -vn -0.004100 -0.345200 -0.938500 -vn -0.355400 -0.345200 0.868700 -vn -0.355400 -0.345200 0.868600 -vn -0.660700 -0.345200 0.666500 -vn 0.865500 -0.345200 -0.362900 -vn 0.938500 -0.345200 -0.004100 -vn -0.868700 -0.345200 -0.355400 -vn -0.868600 -0.345200 -0.355400 -vn -0.666500 -0.345200 -0.660700 -vn 0.362900 -0.345200 0.865500 -vn 0.004100 -0.345200 0.938500 -vn 0.355400 -0.345200 -0.868700 -vn 0.355400 -0.345200 -0.868600 -vn 0.660700 -0.345200 -0.666500 -vn -0.865500 -0.345200 0.362900 -vn -0.938500 -0.345200 0.004100 -vn 0.868700 -0.345200 0.355400 -vn 0.868600 -0.345200 0.355400 -vn 0.378600 0.000000 -0.925500 -vn -1.000000 -0.007900 -0.001000 -vn -0.004300 -0.081500 -0.996700 -vn -0.004400 -0.081500 -0.996700 -vn 0.996700 -0.081500 -0.004300 -vn 0.996700 -0.081500 -0.004400 -vn 0.004300 -0.081500 0.996700 -vn 0.004400 -0.081500 0.996700 -vn 0.003200 -0.928000 0.372600 -vn -0.008400 0.274700 -0.961500 -vn 1.000000 -0.007900 0.001000 -vn -1.000000 -0.007900 0.005300 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 10/10/4 11/11/4 12/12/4 -f 13/13/5 14/14/5 15/15/5 -f 16/16/6 17/17/6 6/18/6 -f 18/19/7 7/7/7 19/20/7 -f 20/21/8 12/22/8 21/23/8 -f 1/1/9 13/13/9 22/24/9 -f 4/4/10 23/25/10 24/26/10 -f 8/8/11 25/27/11 26/28/11 -f 23/25/12 27/29/12 28/30/12 -f 21/23/13 12/22/13 29/31/13 -f 30/32/14 31/33/14 21/34/14 -f 32/35/15 33/36/15 34/37/15 -f 13/13/16 35/38/16 36/39/16 -f 14/14/17 36/39/17 37/40/17 -f 20/21/18 38/41/18 39/42/18 -f 7/7/19 32/35/19 40/43/19 -f 17/17/20 41/44/20 42/45/20 -f 43/46/21 44/47/21 45/48/21 -f 30/32/22 28/49/22 46/50/22 -f 18/51/23 10/10/23 39/42/23 -f 8/8/24 40/43/24 47/52/24 -f 4/4/25 42/45/25 27/29/25 -f 1/1/26 45/48/26 35/38/26 -f 20/21/27 31/33/27 46/50/27 -f 18/19/28 48/53/29 32/35/28 -f 16/16/30 37/54/30 41/44/30 -f 25/27/31 47/52/31 44/55/31 -f 39/42/32 49/56/32 50/57/32 -f 46/50/33 51/58/33 52/59/33 -f 27/29/34 53/60/34 54/61/34 -f 35/38/35 55/62/35 56/63/35 -f 41/44/36 57/64/36 58/65/36 -f 44/47/37 59/66/37 60/67/37 -f 36/39/38 56/68/38 61/69/38 -f 47/52/39 40/43/39 34/70/39 -f 48/53/40 50/71/40 33/72/40 -f 38/41/41 52/73/41 49/74/41 -f 46/50/42 28/49/42 54/75/42 -f 27/29/43 42/45/43 58/76/43 -f 35/38/44 45/48/44 60/77/44 -f 41/44/45 37/54/45 61/78/45 -f 47/52/46 62/79/46 59/80/46 -f 54/75/47 63/81/47 51/82/47 -f 58/76/48 63/83/48 53/84/48 -f 53/60/49 63/85/49 54/61/49 -f 52/59/50 51/58/50 63/86/50 -f 57/64/51 63/87/51 58/65/51 -f 61/78/52 63/88/52 57/89/52 -f 56/68/53 63/90/53 61/69/53 -f 55/62/54 63/91/54 56/63/54 -f 52/73/55 63/92/55 49/74/55 -f 49/56/56 63/93/56 50/57/56 -f 50/71/57 63/94/57 33/72/57 -f 33/36/58 63/95/58 34/37/58 -f 34/70/59 63/96/59 62/97/59 -f 60/77/60 63/98/60 55/99/60 -f 59/66/61 63/100/61 60/67/61 -f 62/79/62 63/101/62 59/80/62 -f 95/102/63 96/103/63 64/104/63 -f 102/105/64 104/106/64 68/107/64 -f 101/108/65 69/109/65 99/110/66 -f 94/111/67 64/104/67 97/112/67 -f 65/113/68 96/103/68 95/102/68 -f 97/112/69 96/103/69 65/114/69 -f 70/115/70 98/116/70 100/117/70 -f 70/115/71 100/117/71 69/118/71 -f 69/109/65 100/117/66 99/110/66 -f 67/119/72 103/120/72 105/121/72 -f 43/122/73 3/123/74 26/124/74 -f 105/125/75 104/106/75 102/105/75 -f 67/126/76 68/107/76 103/120/76 -f 73/127/77 74/128/77 75/129/77 -f 15/15/78 76/130/78 77/131/78 -f 66/132/79 78/133/79 76/134/79 -f 72/135/80 19/20/80 79/136/81 -f 9/9/82 80/137/82 79/138/82 -f 24/26/83 81/139/83 82/140/83 -f 71/141/84 83/142/84 81/143/84 -f 2/2/85 84/144/86 75/145/86 -f 22/24/87 77/146/87 84/147/87 -f 11/11/88 73/148/88 29/149/88 -f 72/150/89 74/151/89 73/152/89 -f 6/18/90 85/153/91 78/154/91 -f 5/5/92 82/155/92 85/156/92 -f 26/28/93 86/157/93 80/158/93 -f 3/123/94 75/159/94 86/160/94 -f 21/34/95 87/161/96 83/162/96 -f 43/46/1 1/1/1 3/3/1 -f 17/17/2 4/4/2 6/6/2 -f 19/163/3 7/7/3 9/9/3 -f 20/21/4 10/10/4 12/12/4 -f 22/164/5 13/13/5 15/15/5 -f 66/165/6 16/16/6 6/18/6 -f 72/135/7 18/19/7 19/20/7 -f 31/33/8 20/21/8 21/23/8 -f 2/166/9 1/1/9 22/24/9 -f 5/167/10 4/4/10 24/26/10 -f 9/168/11 8/8/11 26/28/11 -f 30/169/12 23/25/12 28/30/12 -f 87/170/13 21/23/13 29/31/13 -f 71/171/14 30/32/14 21/34/14 -f 40/43/15 32/35/15 34/37/15 -f 14/14/16 13/13/16 36/39/16 -f 16/172/17 14/14/17 37/40/17 -f 10/10/18 20/21/18 39/42/18 -f 8/8/19 7/7/19 40/43/19 -f 4/4/20 17/17/20 42/45/20 -f 1/1/21 43/46/21 45/48/21 -f 31/33/22 30/32/22 46/50/22 -f 48/173/23 18/51/23 39/42/23 -f 25/27/24 8/8/24 47/52/24 -f 23/25/25 4/4/25 27/29/25 -f 13/13/26 1/1/26 35/38/26 -f 38/41/27 20/21/27 46/50/27 -f 7/7/29 18/19/28 32/35/28 -f 17/17/97 16/16/30 41/44/30 -f 43/122/31 25/27/31 44/55/31 -f 48/173/32 39/42/32 50/57/32 -f 38/41/33 46/50/33 52/59/33 -f 28/30/34 27/29/34 54/61/34 -f 36/39/35 35/38/35 56/63/35 -f 42/45/36 41/44/36 58/65/36 -f 45/48/37 44/47/37 60/67/37 -f 37/40/38 36/39/38 61/69/38 -f 62/97/39 47/52/39 34/70/39 -f 32/35/40 48/53/40 33/72/40 -f 39/42/41 38/41/41 49/74/41 -f 51/82/42 46/50/42 54/75/42 -f 53/84/43 27/29/43 58/76/43 -f 55/99/44 35/38/44 60/77/44 -f 57/89/45 41/44/45 61/78/45 -f 44/55/46 47/52/46 59/80/46 -f 96/103/63 97/112/63 64/104/63 -f 104/106/64 103/120/64 68/107/64 -f 101/174/98 99/110/98 98/116/98 -f 66/132/99 15/175/99 14/14/100 -f 24/176/101 23/25/102 30/169/102 -f 11/177/103 10/10/104 18/51/104 -f 98/116/70 99/110/70 100/117/70 -f 103/120/72 104/106/72 105/121/72 -f 85/178/77 82/179/77 78/180/77 -f 29/181/77 81/182/77 83/183/77 -f 87/184/77 29/181/77 83/183/77 -f 73/127/77 81/182/77 29/181/77 -f 79/185/77 86/186/77 74/128/77 -f 79/185/77 80/187/77 86/186/77 -f 15/175/79 66/132/79 76/134/79 -f 76/188/77 75/129/77 77/189/77 -f 78/180/77 81/182/77 73/127/77 -f 78/180/77 82/179/77 81/182/77 -f 74/128/77 86/186/77 75/129/77 -f 75/129/77 76/188/77 73/127/77 -f 76/188/77 78/180/77 73/127/77 -f 22/164/78 15/15/78 77/131/78 -f 75/129/77 84/190/77 77/189/77 -f 74/191/81 72/135/80 79/136/81 -f 19/163/82 9/9/82 79/138/82 -f 5/167/83 24/26/83 82/140/83 -f 24/176/84 71/141/84 81/143/84 -f 3/3/85 2/2/85 75/145/86 -f 2/166/87 22/24/87 84/147/87 -f 12/12/88 11/11/88 29/149/88 -f 11/177/89 72/150/89 73/152/89 -f 66/165/90 6/18/90 78/154/91 -f 6/6/92 5/5/92 85/156/92 -f 9/168/93 26/28/93 80/158/93 -f 26/124/94 3/123/94 86/160/94 -f 71/171/95 21/34/95 83/162/96 -f 91/192/105 92/193/105 93/194/105 -f 92/193/106 91/192/106 88/195/106 -f 90/196/107 93/197/107 92/193/107 -f 89/198/108 88/195/108 91/192/108 -f 89/199/105 91/192/105 93/194/105 -f 90/196/106 92/193/106 88/195/106 -f 94/200/69 97/112/69 65/114/69 -f 25/27/73 43/122/73 26/124/74 -f 16/172/100 66/132/99 14/14/100 -f 71/141/101 24/176/101 30/169/102 -f 72/150/103 11/177/103 18/51/104 diff --git a/src/main/resources/assets/hbm/models/radar.obj b/src/main/resources/assets/hbm/models/radar.obj new file mode 100644 index 0000000000..5fadc51ae0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/radar.obj @@ -0,0 +1,769 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar.blend' +# www.blender.org +o Dish +v -0.500000 1.250000 0.500000 +v -0.500000 2.250000 0.500000 +v -0.500000 1.250000 -0.500000 +v -0.500000 2.250000 -0.500000 +v -0.250000 1.500000 -1.500000 +v -0.250000 2.000000 -1.500000 +v -0.250000 1.500000 1.500000 +v -0.250000 2.000000 1.500000 +v -0.500000 1.750000 0.250000 +v -0.500000 1.750000 -0.250000 +v -0.500000 1.750000 -0.125000 +v -0.500000 1.750000 0.125000 +v -0.625000 1.625000 0.250000 +v -0.625000 1.625000 -0.250000 +v -0.625000 1.625000 -0.125000 +v -0.625000 1.625000 0.125000 +v -0.625000 1.250000 0.250000 +v -0.625000 1.250000 -0.250000 +v -0.625000 1.250000 -0.125000 +v -0.625000 1.250000 0.125000 +v -0.500000 1.125000 0.250000 +v -0.500000 1.125000 -0.250000 +v -0.500000 1.125000 -0.125000 +v -0.500000 1.125000 0.125000 +v -0.500000 1.251000 0.250000 +v -0.500000 1.251000 -0.250000 +v -0.500000 1.251000 -0.125000 +v -0.500000 1.251000 0.125000 +v -0.250000 1.251000 0.250000 +v -0.250000 1.251000 -0.250000 +v -0.250000 1.251000 -0.125000 +v -0.250000 1.251000 0.125000 +v 0.250000 1.251000 0.250000 +v -0.125000 1.251000 0.000000 +v 0.250000 1.251000 -0.250000 +v 0.500000 1.251000 0.062500 +v 0.500000 1.251000 -0.062500 +v -0.250000 1.126000 0.250000 +v -0.250000 1.126000 -0.250000 +v 0.250000 1.126000 0.250000 +v 0.250000 1.126000 -0.250000 +v -0.250000 1.126000 -0.125000 +v -0.250000 1.126000 0.125000 +v -0.125000 1.126000 0.000000 +v 0.500000 1.126000 0.062500 +v 0.500000 1.126000 -0.062500 +v 0.562500 1.251000 0.062500 +v 0.562500 1.626000 0.062500 +v 0.562500 1.251000 -0.062500 +v 0.562500 1.626000 -0.062500 +v 0.687500 1.251000 0.062500 +v 0.687500 1.626000 0.062500 +v 0.687500 1.626000 -0.062500 +v 0.500000 1.251000 0.000000 +v 0.500000 1.626000 0.000000 +v 0.750000 1.251000 0.000000 +v 0.750000 1.626000 0.000000 +v 0.687500 1.251000 -0.062500 +v 0.687500 1.219750 0.062500 +v 0.687500 1.219750 -0.062500 +vt 0.666667 0.333333 +vt 0.333333 0.000000 +vt 0.666667 0.000000 +vt 1.000000 0.250000 +vt 0.333333 0.333333 +vt 0.000000 0.083333 +vt 0.166667 0.916667 +vt 0.208333 0.979167 +vt 0.166667 0.979167 +vt 0.041667 0.979167 +vt 0.083333 0.916667 +vt 0.083333 0.979167 +vt 0.166667 0.812500 +vt 0.208333 0.916667 +vt 0.041667 0.916667 +vt 0.083333 0.812500 +vt 0.166667 0.750000 +vt 0.208333 0.812500 +vt 0.041667 0.812500 +vt 0.083333 0.750000 +vt 0.250000 0.666667 +vt 0.291667 0.750000 +vt 0.250000 0.750000 +vt 0.375000 0.750000 +vt 0.416667 0.666667 +vt 0.416667 0.750000 +vt 0.333333 0.625000 +vt 0.291667 0.666667 +vt 0.416667 0.500000 +vt 0.333333 0.416667 +vt 0.250000 0.500000 +vt 0.458333 0.666667 +vt 0.208333 0.500000 +vt 0.333333 0.708333 +vt 0.375000 0.666667 +vt 0.375000 0.708333 +vt 0.291667 0.708333 +vt 0.333333 0.666667 +vt 0.250000 0.770833 +vt 0.250000 0.812500 +vt 0.125000 0.770833 +vt 0.125000 0.812500 +vt 0.125000 0.812500 +vt 0.000000 0.812500 +vt 0.125000 0.750000 +vt 0.083333 0.666667 +vt 0.125000 0.666667 +vt 0.166667 0.666667 +vt 0.125000 0.750000 +vt 0.125000 0.666667 +vt 0.208333 0.666667 +vt 0.041667 0.750000 +vt 0.208333 0.750000 +vt 0.125000 0.625000 +vt 0.041667 0.666667 +vt 0.041667 0.500000 +vt 0.104167 0.416667 +vt 0.208333 0.416667 +vt 0.250000 0.416667 +vt 0.458333 0.416667 +vt 0.416667 0.416667 +vt 0.416667 0.354167 +vt 0.416667 0.333333 +vt 0.437500 0.354167 +vt 0.479167 0.437500 +vt 0.520833 0.437500 +vt 0.520833 0.479167 +vt 0.416667 0.395833 +vt 0.104167 0.354167 +vt 0.125000 0.333333 +vt 0.145833 0.354167 +vt 0.145833 0.416667 +vt 0.354167 0.416667 +vt 0.354167 0.395833 +vt 0.312500 0.416667 +vt 0.312500 0.395833 +vt 0.250000 0.333333 +vt 0.250000 0.354167 +vt 0.229167 0.354167 +vt 0.250000 0.395833 +vt 0.604167 0.333333 +vt 0.625000 0.437500 +vt 0.604167 0.437500 +vt 0.458333 0.437500 +vt 0.479167 0.333333 +vt 0.520833 0.333333 +vt 0.541667 0.333333 +vt 0.562500 0.437500 +vt 0.541667 0.437500 +vt 0.562500 0.333333 +vt 1.000000 0.083333 +vt 0.000000 0.250000 +vt 0.375000 0.666667 +vt 0.458333 0.500000 +vt 0.291667 0.666667 +vt 0.250000 0.958333 +vt 0.125000 0.958333 +vt 0.125000 0.958333 +vt 0.125000 0.770833 +vt 0.000000 0.958333 +vt 0.000000 0.770833 +vt 0.458333 0.750000 +vt 0.541667 0.458333 +vt 0.479167 0.479167 +vt 0.458333 0.458333 +vt 0.625000 0.333333 +vt 0.458333 0.333333 +vn 1.0000 0.0000 0.0000 +vn 0.9701 0.0000 0.2425 +vn 0.9701 0.0000 -0.2425 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0040 -1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.6000 0.0000 0.8000 +vn 0.6000 0.0000 -0.8000 +vn 0.7071 0.0000 -0.7071 +vn 0.4472 -0.8944 0.0000 +vn 0.7071 0.0000 0.7071 +s off +f 4/1/1 1/2/1 3/3/1 +f 3/3/2 6/4/2 4/1/2 +f 2/5/3 7/6/3 1/2/3 +f 16/7/4 9/8/4 12/9/4 +f 10/10/4 15/11/4 11/12/4 +f 20/13/5 13/14/5 16/7/5 +f 14/15/5 19/16/5 15/11/5 +f 24/17/6 17/18/6 20/13/6 +f 18/19/6 23/20/6 19/16/6 +f 29/21/7 28/22/7 25/23/7 +f 27/24/7 30/25/7 26/26/7 +f 29/21/7 34/27/7 32/28/7 +f 30/25/7 34/27/7 35/29/7 +f 54/30/7 35/29/7 33/31/7 +f 35/29/8 39/32/8 30/25/8 +f 29/21/9 40/33/9 33/31/9 +f 34/34/10 43/35/10 32/36/10 +f 31/37/11 44/38/11 34/34/11 +f 17/18/9 21/39/9 25/40/9 +f 19/16/9 23/41/9 27/42/9 +f 28/43/8 20/13/8 16/7/8 +f 26/44/8 18/19/8 14/15/8 +f 27/45/9 42/46/9 31/47/9 +f 39/32/8 26/26/8 30/25/8 +f 43/48/8 28/49/8 32/50/8 +f 25/23/9 38/51/9 29/21/9 +f 22/52/12 42/46/12 23/20/12 +f 24/17/12 38/51/12 21/53/12 +f 38/51/13 44/54/13 40/33/13 +f 44/54/13 39/55/13 41/56/13 +f 40/33/13 41/56/13 46/57/13 +f 33/31/14 45/58/14 36/59/14 +f 46/60/15 35/29/15 37/61/15 +f 58/62/16 56/63/16 60/64/16 +f 48/65/7 52/66/7 53/67/7 +f 49/68/8 60/64/8 46/60/8 +f 60/69/17 56/70/17 59/71/17 +f 46/57/17 59/71/17 45/72/17 +f 37/73/7 54/30/7 49/74/7 +f 54/30/7 36/75/7 47/76/7 +f 56/77/18 51/78/18 59/79/18 +f 59/79/9 51/78/9 47/80/9 +f 49/81/10 55/82/10 50/83/10 +f 55/84/11 47/85/11 48/65/11 +f 48/65/9 51/86/9 52/66/9 +f 56/87/18 52/66/18 51/86/18 +f 56/87/16 53/88/16 57/89/16 +f 50/83/8 58/90/8 49/81/8 +f 4/1/1 2/5/1 1/2/1 +f 3/3/2 5/91/2 6/4/2 +f 2/5/3 8/92/3 7/6/3 +f 16/7/4 13/14/4 9/8/4 +f 10/10/4 14/15/4 15/11/4 +f 20/13/5 17/18/5 13/14/5 +f 14/15/5 18/19/5 19/16/5 +f 24/17/6 21/53/6 17/18/6 +f 18/19/6 22/52/6 23/20/6 +f 29/21/7 32/28/7 28/22/7 +f 27/24/7 31/93/7 30/25/7 +f 29/21/7 33/31/7 34/27/7 +f 30/25/7 31/93/7 34/27/7 +f 33/31/7 36/75/7 54/30/7 +f 54/30/7 37/73/7 35/29/7 +f 35/29/7 34/27/7 33/31/7 +f 35/29/8 41/94/8 39/32/8 +f 29/21/9 38/51/9 40/33/9 +f 34/34/10 44/38/10 43/35/10 +f 31/37/11 42/95/11 44/38/11 +f 25/40/9 9/96/9 13/14/9 +f 13/14/9 17/18/9 25/40/9 +f 27/42/9 11/97/9 15/11/9 +f 15/11/9 19/16/9 27/42/9 +f 16/7/8 12/98/8 28/43/8 +f 28/43/8 24/99/8 20/13/8 +f 14/15/8 10/100/8 26/44/8 +f 26/44/8 22/101/8 18/19/8 +f 27/45/9 23/20/9 42/46/9 +f 39/32/8 22/102/8 26/26/8 +f 43/48/8 24/17/8 28/49/8 +f 25/23/9 21/53/9 38/51/9 +f 22/52/12 39/55/12 42/46/12 +f 24/17/12 43/48/12 38/51/12 +f 38/51/13 43/48/13 44/54/13 +f 44/54/13 42/46/13 39/55/13 +f 46/57/13 45/72/13 40/33/13 +f 40/33/13 44/54/13 41/56/13 +f 33/31/14 40/33/14 45/58/14 +f 46/60/15 41/94/15 35/29/15 +f 57/103/7 53/67/7 52/66/7 +f 53/67/7 50/104/7 48/65/7 +f 50/104/7 55/105/7 48/65/7 +f 46/60/8 37/61/8 49/68/8 +f 49/68/8 58/62/8 60/64/8 +f 46/57/17 60/69/17 59/71/17 +f 36/59/9 45/58/9 47/80/9 +f 45/58/9 59/79/9 47/80/9 +f 49/81/10 54/106/10 55/82/10 +f 55/84/11 54/107/11 47/85/11 +f 48/65/9 47/85/9 51/86/9 +f 56/87/18 57/89/18 52/66/18 +f 56/87/16 58/90/16 53/88/16 +f 50/83/8 53/88/8 58/90/8 +o Base +v -0.500000 0.000000 0.500000 +v -0.500000 0.125000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.125000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.125000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.125000 -0.500000 +v -0.500000 0.312500 0.187500 +v -0.500000 0.687500 0.187500 +v -0.500000 0.312500 -0.187500 +v -0.500000 0.687500 -0.187500 +v 0.500000 0.312500 0.187500 +v 0.500000 0.687500 0.187500 +v 0.500000 0.312500 -0.187500 +v 0.500000 0.687500 -0.187500 +v 0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.500000 +v -0.187500 0.312500 0.500000 +v -0.187500 0.687500 0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.500000 +v -0.375000 0.312500 0.187500 +v -0.375000 0.312500 -0.187500 +v -0.375000 0.687500 -0.187500 +v -0.375000 0.687500 0.187500 +v 0.375000 0.312500 -0.187500 +v 0.375000 0.312500 0.187500 +v 0.375000 0.687500 0.187500 +v 0.375000 0.687500 -0.187500 +v 0.187500 0.312500 0.375000 +v -0.187500 0.312500 0.375000 +v -0.187500 0.687500 0.375000 +v 0.187500 0.687500 0.375000 +v -0.187500 0.312500 -0.375000 +v 0.187500 0.312500 -0.375000 +v 0.187500 0.687500 -0.375000 +v -0.187500 0.687500 -0.375000 +v -0.312500 1.000000 0.312500 +v -0.312500 1.000000 -0.312500 +v 0.312500 1.000000 0.312500 +v 0.312500 1.000000 -0.312500 +v 0.437500 1.000000 -0.437500 +v 0.437500 1.000000 0.437500 +v -0.437500 1.000000 -0.437500 +v -0.437500 1.000000 0.437500 +v 0.437500 0.125000 0.437500 +v 0.437500 0.125000 0.312500 +v 0.312500 0.125000 0.437500 +v 0.437500 0.875000 0.437500 +v 0.437500 0.875000 0.312500 +v 0.312500 0.875000 0.437500 +v 0.437500 0.125000 -0.312500 +v 0.437500 0.125000 -0.437500 +v 0.312500 0.125000 -0.437500 +v 0.437500 0.875000 -0.312500 +v 0.437500 0.875000 -0.437500 +v 0.312500 0.875000 -0.437500 +v -0.312500 0.125000 0.437500 +v -0.437500 0.125000 0.437500 +v -0.437500 0.125000 0.312500 +v -0.312500 0.875000 0.437500 +v -0.437500 0.875000 0.437500 +v -0.437500 0.875000 0.312500 +v -0.312500 0.125000 -0.437500 +v -0.437500 0.125000 -0.312500 +v -0.437500 0.125000 -0.437500 +v -0.312500 0.875000 -0.437500 +v -0.437500 0.875000 -0.312500 +v -0.437500 0.875000 -0.437500 +v 0.312500 0.125000 0.375000 +v -0.312500 0.125000 0.375000 +v 0.312500 0.875000 0.375000 +v -0.312500 0.875000 0.375000 +v 0.312500 0.125000 -0.375000 +v 0.312500 0.875000 -0.375000 +v -0.312500 0.125000 -0.375000 +v -0.312500 0.875000 -0.375000 +v 0.375000 0.125000 0.312500 +v 0.375000 0.875000 0.312500 +v 0.375000 0.125000 -0.312500 +v 0.375000 0.875000 -0.312500 +v -0.375000 0.125000 0.312500 +v -0.375000 0.875000 0.312500 +v -0.375000 0.125000 -0.312500 +v -0.375000 0.875000 -0.312500 +v 0.312500 1.062500 0.312500 +v -0.312500 1.062500 0.312500 +v 0.312500 1.062500 -0.312500 +v -0.312500 1.062500 -0.312500 +v -0.156250 1.062500 0.156250 +v -0.156250 1.062500 -0.156250 +v 0.156250 1.062500 0.156250 +v 0.156250 1.062500 -0.156250 +v -0.156250 1.125000 0.156250 +v -0.156250 1.125000 -0.156250 +v 0.156250 1.125000 -0.156250 +v 0.156250 1.125000 0.156250 +vt -0.000000 0.380952 +vt 0.400000 0.428571 +vt -0.000000 0.428571 +vt -0.000000 0.380952 +vt 0.400000 0.428571 +vt -0.000000 0.428571 +vt 0.400000 0.428571 +vt -0.000000 0.380952 +vt 0.400000 0.380952 +vt 0.400000 0.428571 +vt -0.000000 0.380952 +vt 0.400000 0.380952 +vt 0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.700000 0.047619 +vt 0.450000 0.023810 +vt 0.700000 0.023810 +vt 0.275000 0.690476 +vt 0.125000 0.547619 +vt 0.275000 0.547619 +vt 0.275000 0.547619 +vt 0.125000 0.690476 +vt 0.125000 0.547619 +vt 0.275000 0.547619 +vt 0.125000 0.690476 +vt 0.125000 0.547619 +vt 0.275000 0.690476 +vt 0.125000 0.547619 +vt 0.275000 0.547619 +vt 0.125000 0.500000 +vt 0.075000 0.690476 +vt 0.275000 0.738095 +vt 0.275000 0.690476 +vt 0.325000 0.547619 +vt 0.125000 0.500000 +vt 0.075000 0.690476 +vt 0.125000 0.690476 +vt 0.275000 0.738095 +vt 0.325000 0.547619 +vt 0.125000 0.500000 +vt 0.075000 0.690476 +vt 0.275000 0.738095 +vt 0.275000 0.690476 +vt 0.325000 0.547619 +vt 0.125000 0.500000 +vt 0.075000 0.690476 +vt 0.125000 0.690476 +vt 0.275000 0.738095 +vt 0.325000 0.547619 +vt 0.425000 0.690476 +vt 0.400000 0.976190 +vt 0.400000 0.690476 +vt 0.425000 0.690476 +vt 0.400000 0.976190 +vt 0.400000 0.690476 +vt 0.525000 0.976190 +vt 0.550000 0.690476 +vt 0.550000 0.976190 +vt 0.550000 0.976190 +vt 0.525000 0.690476 +vt 0.550000 0.690476 +vt 0.400000 0.690476 +vt 0.425000 0.976190 +vt 0.400000 0.976190 +vt 0.750000 0.428571 +vt 0.400000 0.095238 +vt 0.750000 0.095238 +vt 0.525000 0.976190 +vt 0.550000 0.690476 +vt 0.550000 0.976190 +vt 0.475000 0.690476 +vt 0.425000 0.690476 +vt 0.375000 0.738095 +vt 0.375000 0.500000 +vt 0.425000 0.690476 +vt 0.400000 0.976190 +vt 0.400000 0.690476 +vt 0.475000 0.976190 +vt 0.700000 0.023810 +vt 0.450000 0.047619 +vt 0.450000 0.023810 +vt 0.525000 0.690476 +vt 0.475000 0.976190 +vt 0.475000 0.690476 +vt 0.425000 0.976190 +vt 0.000000 0.809524 +vt 0.075000 0.785714 +vt 0.325000 0.785714 +vt 0.525000 0.690476 +vt 0.475000 0.976190 +vt 0.475000 0.690476 +vt 0.425000 0.976190 +vt -0.000000 0.428571 +vt 0.025000 0.500000 +vt 0.025000 0.738095 +vt 0.550000 0.976190 +vt 0.525000 0.690476 +vt 0.550000 0.690476 +vt 0.475000 0.976190 +vt 0.475000 0.690476 +vt 0.425000 0.976190 +vt 0.325000 0.452381 +vt 0.075000 0.452381 +vt 1.000000 0.285714 +vt 0.750000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 0.750000 0.285714 +vt 0.750000 0.000000 +vt 1.000000 0.000000 +vt 0.750000 0.285714 +vt 0.750000 0.000000 +vt 1.000000 0.285714 +vt 0.750000 0.000000 +vt 1.000000 0.000000 +vt 0.700000 0.047619 +vt 0.450000 0.023810 +vt 0.700000 0.023810 +vt 0.700000 0.023810 +vt 0.450000 0.047619 +vt 0.450000 0.023810 +vt 0.700000 0.047619 +vt 0.400000 0.095238 +vt 0.700000 0.047619 +vt 0.750000 0.047619 +vt 0.750000 0.095238 +vt 0.750000 0.047619 +vt 0.750000 0.095238 +vt 0.400000 0.452381 +vt 0.650000 0.690476 +vt 0.400000 0.690476 +vt 0.400000 0.428571 +vt 0.650000 0.452381 +vt 0.400000 0.452381 +vt 0.400000 0.428571 +vt 0.650000 0.452381 +vt 0.400000 0.452381 +vt 0.650000 0.452381 +vt 0.400000 0.428571 +vt 0.650000 0.428571 +vt 0.650000 0.452381 +vt 0.400000 0.428571 +vt 0.650000 0.428571 +vt 0.875000 0.285714 +vt 0.750000 0.309524 +vt 0.750000 0.285714 +vt 0.750000 0.309524 +vt 0.875000 0.285714 +vt 0.875000 0.309524 +vt 0.875000 0.285714 +vt 0.750000 0.309524 +vt 0.750000 0.285714 +vt 0.750000 0.309524 +vt 0.875000 0.285714 +vt 0.875000 0.309524 +vt 0.400000 0.380952 +vt 0.400000 0.380952 +vt -0.000000 0.428571 +vt 0.450000 0.047619 +vt 0.275000 0.500000 +vt 0.075000 0.547619 +vt 0.125000 0.738095 +vt 0.325000 0.690476 +vt 0.275000 0.500000 +vt 0.075000 0.547619 +vt 0.125000 0.738095 +vt 0.325000 0.690476 +vt 0.275000 0.500000 +vt 0.075000 0.547619 +vt 0.125000 0.738095 +vt 0.325000 0.690476 +vt 0.275000 0.500000 +vt 0.075000 0.547619 +vt 0.125000 0.738095 +vt 0.325000 0.690476 +vt 0.525000 0.976190 +vt 0.400000 0.428571 +vt 0.400000 0.809524 +vt 0.375000 0.785714 +vt 0.350000 0.738095 +vt 0.350000 0.500000 +vt 0.375000 0.452381 +vt 0.025000 0.785714 +vt 0.075000 0.761905 +vt 0.325000 0.761905 +vt 0.025000 0.452381 +vt 0.050000 0.500000 +vt 0.050000 0.738095 +vt 0.525000 0.976190 +vt 0.325000 0.476190 +vt 0.075000 0.476190 +vt 0.750000 0.285714 +vt 1.000000 0.285714 +vt 1.000000 0.285714 +vt 0.750000 0.285714 +vt 0.450000 0.047619 +vt 0.750000 0.047619 +vt 0.400000 0.047619 +vt 0.750000 0.047619 +vt 0.750000 0.095238 +vt 0.400000 0.047619 +vt 0.400000 0.095238 +vt 0.400000 0.047619 +vt 0.400000 0.095238 +vt 0.400000 0.047619 +vt 0.650000 0.428571 +vt 0.650000 0.428571 +vt 0.400000 0.452381 +vt 0.875000 0.309524 +vt 0.750000 0.285714 +vt 0.875000 0.309524 +vt 0.750000 0.285714 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 62/108/19 63/109/19 61/110/19 +f 64/111/20 67/112/20 63/113/20 +f 68/114/21 65/115/21 67/116/21 +f 66/117/22 61/118/22 65/119/22 +f 67/116/23 61/120/23 63/121/23 +f 114/122/23 136/123/23 135/124/23 +f 84/125/20 81/126/20 83/127/20 +f 69/128/19 72/129/19 71/130/19 +f 77/131/22 80/132/22 79/133/22 +f 76/134/21 73/135/21 75/136/21 +f 86/137/23 69/128/23 71/130/23 +f 87/138/20 71/130/20 72/129/20 +f 88/139/24 72/129/24 70/140/24 +f 85/141/22 70/140/22 69/128/22 +f 90/142/23 75/136/23 73/135/23 +f 91/143/22 73/135/22 74/144/22 +f 92/145/24 74/144/24 76/134/24 +f 89/146/20 76/134/20 75/136/20 +f 94/147/23 77/131/23 79/133/23 +f 95/148/19 79/133/19 80/132/19 +f 96/149/24 80/132/24 78/150/24 +f 93/151/21 78/150/21 77/131/21 +f 98/152/23 83/127/23 81/126/23 +f 99/153/21 81/126/21 82/154/21 +f 100/155/24 82/154/24 84/125/24 +f 97/156/19 84/125/19 83/127/19 +f 115/157/22 144/158/22 143/159/22 +f 123/160/20 146/161/20 145/162/20 +f 120/163/19 137/164/19 138/165/19 +f 142/166/20 110/167/20 141/168/20 +f 133/169/19 114/170/19 135/171/19 +f 107/172/24 106/173/24 105/174/24 +f 124/175/21 134/176/21 136/177/21 +f 109/178/22 114/170/22 111/179/22 +f 127/180/24 117/181/24 68/114/24 +f 127/182/21 140/183/21 139/184/21 +f 110/167/21 112/185/21 109/178/21 +f 144/186/23 113/187/23 142/188/23 +f 117/189/20 119/190/20 116/191/20 +f 116/191/21 118/192/21 115/157/21 +f 62/193/24 123/194/24 128/195/24 +f 121/196/22 125/197/22 122/198/22 +f 122/198/19 126/199/19 123/160/19 +f 66/200/24 111/201/24 121/202/24 +f 148/203/22 128/204/22 147/205/22 +f 128/204/19 132/206/19 129/207/19 +f 129/207/20 130/208/20 127/182/20 +f 115/209/24 110/210/24 66/200/24 +f 135/211/22 134/212/22 133/213/22 +f 139/214/20 138/215/20 137/216/20 +f 143/217/21 142/218/21 141/219/21 +f 146/220/19 147/221/19 145/222/19 +f 126/223/23 148/224/23 146/225/23 +f 140/226/23 120/227/23 138/228/23 +f 106/173/21 113/187/21 118/229/21 +f 105/230/20 120/227/20 130/231/20 +f 126/223/19 125/232/19 108/233/19 +f 114/122/22 112/234/22 106/235/22 +f 149/236/24 152/237/24 150/238/24 +f 150/239/19 102/240/19 101/241/19 +f 152/242/20 104/243/20 102/244/20 +f 151/245/21 103/246/21 104/247/21 +f 149/248/22 101/249/22 103/250/22 +f 156/251/21 160/252/21 155/253/21 +f 153/254/19 158/255/19 154/256/19 +f 155/257/22 157/258/22 153/259/22 +f 154/260/20 159/261/20 156/262/20 +f 62/108/19 64/263/19 63/109/19 +f 64/111/20 68/264/20 67/112/20 +f 68/114/21 66/200/21 65/115/21 +f 66/117/22 62/265/22 61/118/22 +f 67/116/23 65/115/23 61/120/23 +f 114/122/23 124/266/23 136/123/23 +f 84/125/20 82/154/20 81/126/20 +f 69/128/19 70/140/19 72/129/19 +f 77/131/22 78/150/22 80/132/22 +f 76/134/21 74/144/21 73/135/21 +f 86/137/23 85/267/23 69/128/23 +f 87/138/20 86/268/20 71/130/20 +f 88/139/24 87/269/24 72/129/24 +f 85/141/22 88/270/22 70/140/22 +f 90/142/23 89/271/23 75/136/23 +f 91/143/22 90/272/22 73/135/22 +f 92/145/24 91/273/24 74/144/24 +f 89/146/20 92/274/20 76/134/20 +f 94/147/23 93/275/23 77/131/23 +f 95/148/19 94/276/19 79/133/19 +f 96/149/24 95/277/24 80/132/24 +f 93/151/21 96/278/21 78/150/21 +f 98/152/23 97/279/23 83/127/23 +f 99/153/21 98/280/21 81/126/21 +f 100/155/24 99/281/24 82/154/24 +f 97/156/19 100/282/19 84/125/19 +f 115/157/22 118/192/22 144/158/22 +f 123/160/20 126/199/20 146/161/20 +f 120/163/19 117/189/19 137/164/19 +f 142/166/20 113/283/20 110/167/20 +f 133/169/19 111/179/19 114/170/19 +f 107/172/24 108/284/24 106/173/24 +f 124/175/21 121/196/21 134/176/21 +f 109/178/22 112/185/22 114/170/22 +f 68/114/24 64/285/24 127/180/24 +f 64/285/24 129/286/24 127/180/24 +f 127/180/24 139/287/24 137/288/24 +f 117/181/24 116/289/24 68/114/24 +f 127/180/24 137/288/24 117/181/24 +f 127/182/21 130/208/21 140/183/21 +f 110/167/21 113/283/21 112/185/21 +f 144/186/23 118/229/23 113/187/23 +f 117/189/20 120/163/20 119/190/20 +f 116/191/21 119/190/21 118/192/21 +f 129/286/24 64/285/24 128/195/24 +f 64/285/24 62/193/24 128/195/24 +f 62/193/24 122/290/24 123/194/24 +f 123/194/24 145/291/24 147/292/24 +f 123/194/24 147/292/24 128/195/24 +f 121/196/22 124/175/22 125/197/22 +f 122/198/19 125/197/19 126/199/19 +f 122/290/24 62/193/24 121/202/24 +f 62/193/24 66/200/24 121/202/24 +f 66/200/24 109/293/24 111/201/24 +f 111/201/24 133/294/24 134/295/24 +f 111/201/24 134/295/24 121/202/24 +f 148/203/22 131/296/22 128/204/22 +f 128/204/19 131/296/19 132/206/19 +f 129/207/20 132/206/20 130/208/20 +f 66/200/24 68/114/24 115/209/24 +f 68/114/24 116/289/24 115/209/24 +f 115/209/24 143/297/24 141/298/24 +f 110/210/24 109/293/24 66/200/24 +f 115/209/24 141/298/24 110/210/24 +f 135/211/22 136/299/22 134/212/22 +f 139/214/20 140/300/20 138/215/20 +f 143/217/21 144/301/21 142/218/21 +f 146/220/19 148/302/19 147/221/19 +f 126/223/23 131/303/23 148/224/23 +f 140/226/23 130/231/23 120/227/23 +f 119/304/21 105/174/21 118/229/21 +f 105/174/21 106/173/21 118/229/21 +f 106/173/21 112/305/21 113/187/21 +f 132/306/20 107/307/20 130/231/20 +f 107/307/20 105/230/20 130/231/20 +f 105/230/20 119/308/20 120/227/20 +f 108/233/19 107/309/19 131/303/19 +f 107/309/19 132/310/19 131/303/19 +f 131/303/19 126/223/19 108/233/19 +f 106/235/22 108/311/22 124/266/22 +f 108/311/22 125/312/22 124/266/22 +f 124/266/22 114/122/22 106/235/22 +f 149/236/24 151/245/24 152/237/24 +f 150/239/19 152/313/19 102/240/19 +f 152/242/20 151/314/20 104/243/20 +f 151/245/21 149/236/21 103/246/21 +f 149/248/22 150/315/22 101/249/22 +f 156/251/21 159/316/21 160/252/21 +f 153/254/19 157/317/19 158/255/19 +f 155/257/22 160/318/22 157/258/22 +f 154/260/20 158/319/20 159/261/20 diff --git a/src/main/resources/assets/hbm/models/radar_base.obj b/src/main/resources/assets/hbm/models/radar_base.obj deleted file mode 100644 index 90a521fbcc..0000000000 --- a/src/main/resources/assets/hbm/models/radar_base.obj +++ /dev/null @@ -1,276 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'radar_base.blend' -# www.blender.org -o Cube_Cube.001 -v -0.500000 0.000000 0.500000 -v -0.500000 0.250000 0.500000 -v -0.500000 0.000000 -0.500000 -v -0.500000 0.250000 -0.500000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.250000 0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.250000 -0.500000 -v -0.500000 0.656250 0.156250 -v -0.500000 0.343750 0.156250 -v 0.000000 0.250000 -0.485000 -v 0.000000 0.850000 -0.485000 -v 0.353553 0.250000 -0.353553 -v 0.353553 0.850000 -0.353553 -v 0.485000 0.250000 0.000000 -v 0.485000 0.850000 0.000000 -v 0.353553 0.250000 0.353553 -v 0.353553 0.850000 0.353553 -v -0.000000 0.250000 0.485000 -v -0.000000 0.850000 0.485000 -v -0.353553 0.250000 0.353553 -v -0.353553 0.850000 0.353553 -v -0.485000 0.250000 -0.000000 -v -0.485000 0.850000 -0.000000 -v -0.353553 0.250000 -0.353553 -v -0.353553 0.850000 -0.353553 -v -0.500000 0.343750 -0.156250 -v -0.500000 0.656250 -0.156250 -v 0.500000 0.343750 0.156250 -v 0.500000 0.656250 0.156250 -v 0.500000 0.343750 -0.156250 -v 0.500000 0.656250 -0.156250 -v 0.156250 0.656250 0.500000 -v 0.156250 0.343750 0.500000 -v -0.156250 0.343750 0.500000 -v -0.156250 0.656250 0.500000 -v 0.156250 0.343750 -0.500000 -v 0.156250 0.656250 -0.500000 -v -0.156250 0.343750 -0.500000 -v -0.156250 0.656250 -0.500000 -v 0.176777 0.912500 -0.176777 -v -0.000000 0.912500 -0.242500 -v 0.242500 0.912500 0.000000 -v 0.176777 0.912500 0.176777 -v -0.000000 0.912500 0.242500 -v -0.176777 0.912500 0.176777 -v -0.242500 0.912500 -0.000000 -v -0.176777 0.912500 -0.176777 -v 0.176777 1.000000 -0.176777 -v -0.000000 1.000000 -0.242500 -v 0.242500 1.000000 0.000000 -v 0.176777 1.000000 0.176777 -v -0.000000 1.000000 0.242500 -v -0.176777 1.000000 0.176777 -v -0.242500 1.000000 -0.000000 -v -0.176777 1.000000 -0.176777 -vt 0.500000 0.677049 -vt 0.500000 0.616899 -vt 0.740598 0.616899 -vt 0.259403 0.677049 -vt 0.259403 0.616899 -vt 0.018805 0.677049 -vt 0.018805 0.616899 -vt 0.740598 0.677049 -vt 0.981195 0.616899 -vt 0.297012 0.714658 -vt 0.537610 0.714658 -vt 0.537610 0.955256 -vt 0.259402 0.955256 -vt 0.018805 0.955256 -vt 0.018805 0.714658 -vt 0.109558 0.163163 -vt 0.089226 0.219881 -vt 0.043849 0.219881 -vt 0.763170 0.428916 -vt 0.522572 0.428916 -vt 0.522572 0.353729 -vt 0.291063 0.163163 -vt 0.200310 0.163163 -vt 0.200311 0.018805 -vt 0.472569 0.163163 -vt 0.452237 0.219881 -vt 0.406861 0.219881 -vt 0.334589 0.504103 -vt 0.093992 0.504103 -vt 0.093992 0.428916 -vt 0.109558 0.018805 -vt 0.447385 0.504103 -vt 0.522572 0.504103 -vt 0.522572 0.579290 -vt 0.093992 0.278543 -vt 0.334589 0.278543 -vt 0.334589 0.353729 -vt 0.018805 0.163163 -vt 0.018805 0.018805 -vt 0.763170 0.504103 -vt 0.093992 0.353729 -vt 0.744828 0.163163 -vt 0.654075 0.163163 -vt 0.654075 0.018805 -vt 0.838357 0.579290 -vt 0.763170 0.579290 -vt 0.409776 0.353729 -vt 0.563322 0.163163 -vt 0.563322 0.018805 -vt 0.522572 0.278543 -vt 0.763170 0.278543 -vt 0.334589 0.579290 -vt 0.093992 0.579290 -vt 0.472569 0.018805 -vt 0.270731 0.219881 -vt 0.225355 0.219881 -vt 0.381816 0.163163 -vt 0.291063 0.018805 -vt 0.381816 0.018805 -vt 0.175266 0.219881 -vt 0.175266 0.240933 -vt 0.129890 0.240933 -vt 0.018805 0.278543 -vt 0.719784 0.219881 -vt 0.356772 0.219881 -vt 0.633743 0.219881 -vt 0.588366 0.219881 -vt 0.538278 0.219881 -vt 0.575219 0.789678 -vt 0.609574 0.714658 -vt 0.684594 0.749014 -vt 0.452237 0.240933 -vt 0.406861 0.240933 -vt 0.633743 0.240933 -vt 0.588366 0.240933 -vt 0.089226 0.240933 -vt 0.043849 0.240933 -vt 0.270731 0.240933 -vt 0.225355 0.240933 -vt 0.356772 0.240933 -vt 0.311395 0.240933 -vt 0.538278 0.240933 -vt 0.492901 0.240933 -vt 0.719784 0.240933 -vt 0.674407 0.240933 -vt 0.981195 0.677049 -vt 0.297012 0.955256 -vt 0.259402 0.714658 -vt 0.763170 0.353729 -vt 0.334589 0.428916 -vt 0.447385 0.579290 -vt 0.744828 0.018805 -vt 0.838356 0.504103 -vt 0.409776 0.278543 -vt 0.129890 0.219881 -vt 0.018805 0.353729 -vt 0.674407 0.219881 -vt 0.311395 0.219881 -vt 0.492901 0.219881 -vt 0.684594 0.794390 -vt 0.650239 0.824033 -vt 0.604862 0.824033 -vt 0.575219 0.744302 -vt 0.654951 0.714658 -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.248500 0.964200 0.092400 -vn 0.348500 0.000000 -0.937300 -vn -0.248500 0.964200 -0.092400 -vn 0.937300 0.000000 -0.348500 -vn 0.937300 0.000000 0.348500 -vn 0.348500 0.000000 0.937300 -vn -0.348500 0.000000 0.937300 -vn -0.937300 0.000000 0.348500 -vn 0.092400 0.964200 -0.248500 -vn -0.348500 0.000000 -0.937300 -vn -0.937300 0.000000 -0.348500 -vn 0.092400 0.964200 0.248500 -vn -0.092400 0.964200 -0.248500 -vn -0.092400 0.964200 0.248500 -vn 0.248500 0.964200 -0.092400 -vn -0.248500 0.964200 0.092400 -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/3/4 5/9/4 -f 3/10/5 7/11/5 5/12/5 -f 8/13/6 4/14/6 2/15/6 -f 16/16/7 43/17/7 44/18/7 -f 40/19/6 36/20/6 33/21/6 -f 12/22/8 14/23/8 13/24/8 -f 24/25/9 47/26/9 48/27/9 -f 32/28/6 28/29/6 9/30/6 -f 14/23/10 16/16/10 15/31/10 -f 36/32/4 35/33/4 34/34/4 -f 27/35/5 31/36/5 29/37/5 -f 16/16/11 18/38/11 17/39/11 -f 40/19/1 39/40/1 35/33/1 -f 9/30/4 10/41/4 29/37/4 -f 18/42/12 20/43/12 19/44/12 -f 38/45/2 37/46/2 39/40/2 -f 30/47/3 29/37/3 31/36/3 -f 20/43/13 22/48/13 21/49/13 -f 33/21/3 34/50/3 37/51/3 -f 32/28/2 31/52/2 27/53/2 -f 22/48/14 24/25/14 23/54/14 -f 12/22/15 42/55/15 41/56/15 -f 26/57/16 12/22/16 11/58/16 -f 24/25/17 26/57/17 25/59/17 -f 41/60/10 49/61/10 51/62/10 -f 35/33/5 39/40/5 37/46/5 -f 28/63/1 27/35/1 10/41/1 -f 20/43/18 18/42/18 44/64/18 -f 12/22/19 26/57/19 48/65/19 -f 20/43/20 45/66/20 46/67/20 -f 16/16/21 14/23/21 41/60/21 -f 24/25/22 22/48/22 46/68/22 -f 55/69/6 53/70/6 51/71/6 -f 47/26/17 55/72/17 56/73/17 -f 45/66/13 53/74/13 54/75/13 -f 43/17/11 51/76/11 52/77/11 -f 42/55/8 50/78/8 49/79/8 -f 48/65/16 56/80/16 50/81/16 -f 46/68/14 54/82/14 55/83/14 -f 44/64/12 52/84/12 53/85/12 -f 2/8/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/86/4 2/8/4 5/9/4 -f 1/87/5 3/10/5 5/12/5 -f 6/88/6 8/13/6 2/15/6 -f 18/38/7 16/16/7 44/18/7 -f 38/89/6 40/19/6 33/21/6 -f 11/58/8 12/22/8 13/24/8 -f 26/57/9 24/25/9 48/27/9 -f 30/90/6 32/28/6 9/30/6 -f 13/24/10 14/23/10 15/31/10 -f 33/91/4 36/32/4 34/34/4 -f 10/41/5 27/35/5 29/37/5 -f 15/31/11 16/16/11 17/39/11 -f 36/20/1 40/19/1 35/33/1 -f 30/90/4 9/30/4 29/37/4 -f 17/92/12 18/42/12 19/44/12 -f 40/93/2 38/45/2 39/40/2 -f 32/94/3 30/47/3 31/36/3 -f 19/44/13 20/43/13 21/49/13 -f 38/89/3 33/21/3 37/51/3 -f 28/29/2 32/28/2 27/53/2 -f 21/49/14 22/48/14 23/54/14 -f 14/23/15 12/22/15 41/56/15 -f 25/59/16 26/57/16 11/58/16 -f 23/54/17 24/25/17 25/59/17 -f 43/95/10 41/60/10 51/62/10 -f 34/34/5 35/33/5 37/46/5 -f 9/96/1 28/63/1 10/41/1 -f 45/97/18 20/43/18 44/64/18 -f 42/98/19 12/22/19 48/65/19 -f 22/48/20 20/43/20 46/67/20 -f 43/95/21 16/16/21 41/60/21 -f 47/99/22 24/25/22 46/68/22 -f 51/71/6 49/100/6 50/101/6 -f 50/101/6 56/102/6 55/69/6 -f 55/69/6 54/103/6 53/70/6 -f 53/70/6 52/104/6 51/71/6 -f 51/71/6 50/101/6 55/69/6 -f 48/27/17 47/26/17 56/73/17 -f 46/67/13 45/66/13 54/75/13 -f 44/18/11 43/17/11 52/77/11 -f 41/56/8 42/55/8 49/79/8 -f 42/98/16 48/65/16 50/81/16 -f 47/99/14 46/68/14 55/83/14 -f 45/97/12 44/64/12 53/85/12 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 346cfe68a6..0000000000 --- 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/thegadget3.obj b/src/main/resources/assets/hbm/models/thegadget3.obj deleted file mode 100644 index 1b3486829f..0000000000 --- a/src/main/resources/assets/hbm/models/thegadget3.obj +++ /dev/null @@ -1,1223 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3.blend1' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.943209 0.194775 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.376243 0.968634 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.870787 0.864137 -vt 0.409914 0.928973 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.726852 0.928973 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn 0.000000 -0.195100 -0.980800 -vn -0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn 0.000000 0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn -0.295900 0.794200 -0.530700 -vn -0.295900 0.936900 -0.186400 -vn -0.295900 0.936900 0.186400 -vn -0.295900 0.794200 0.530700 -vn -0.295900 0.530700 0.794200 -vn -0.295900 0.186400 0.936900 -vn -0.295900 -0.186400 0.936900 -vn -0.295900 -0.530700 0.794200 -vn -0.295900 -0.794200 0.530700 -vn -0.295900 -0.936900 0.186400 -vn -0.295900 -0.936900 -0.186400 -vn -0.295900 -0.794200 -0.530700 -vn -0.295900 -0.530700 -0.794200 -vn -0.295900 -0.186400 -0.936900 -vn -0.295900 0.186400 -0.936900 -vn -0.295900 0.530700 -0.794200 -vn 0.387500 0.904200 0.179800 -vn 0.387500 0.904200 -0.179800 -vn 0.387500 0.766500 -0.512200 -vn 0.387500 0.512200 -0.766500 -vn 0.387500 0.179800 -0.904200 -vn 0.387500 -0.179800 -0.904200 -vn 0.387500 -0.512200 -0.766500 -vn 0.387500 -0.766500 -0.512200 -vn 0.387500 -0.904200 -0.179800 -vn 0.387500 -0.904200 0.179800 -vn 0.387500 -0.766500 0.512200 -vn 0.387500 -0.512200 0.766500 -vn 0.387500 -0.179800 0.904200 -vn 0.387500 0.179800 0.904200 -vn 0.387500 0.512200 0.766500 -vn 0.387500 0.766500 0.512200 -vn -0.180700 0.908700 -0.376400 -vn 0.525300 0.786200 -0.325600 -vn -0.525300 0.786200 -0.325600 -vn 0.180700 0.908700 -0.376400 -vn -0.180700 0.376400 -0.908700 -vn 0.525300 0.325600 -0.786200 -vn -0.525300 0.325600 -0.786200 -vn 0.180700 0.376400 -0.908700 -vn -0.525300 -0.325600 -0.786200 -vn 0.180700 -0.376400 -0.908700 -vn -0.180700 -0.376400 -0.908700 -vn 0.525300 -0.325600 -0.786200 -vn 0.180700 -0.908700 -0.376400 -vn -0.180700 -0.908700 -0.376400 -vn 0.525300 -0.786200 -0.325600 -vn -0.525300 -0.786200 -0.325600 -vn -0.180700 -0.908700 0.376400 -vn 0.525300 -0.786200 0.325600 -vn -0.525300 -0.786200 0.325600 -vn 0.180700 -0.908700 0.376400 -vn 0.525300 -0.325600 0.786200 -vn -0.525300 -0.325600 0.786200 -vn 0.180700 -0.376400 0.908700 -vn -0.180700 -0.376400 0.908700 -vn -0.525300 0.325600 0.786200 -vn 0.180700 0.376400 0.908700 -vn -0.180700 0.376400 0.908700 -vn 0.525300 0.325600 0.786200 -vn -0.180700 0.908700 0.376400 -vn 0.525300 0.786200 0.325600 -vn -0.525300 0.786200 0.325600 -vn 0.180700 0.908700 0.376400 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/3/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 9/10/5 10/11/5 12/12/5 -f 12/12/6 14/13/6 13/14/6 -f 13/14/7 14/13/7 16/15/7 -f 16/15/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 19/19/10 20/18/10 22/20/10 -f 22/20/11 24/21/11 23/22/11 -f 24/21/12 26/23/12 25/24/12 -f 25/24/13 26/23/13 28/25/13 -f 27/26/14 28/25/14 30/27/14 -f 31/28/15 32/29/15 2/2/15 -f 29/30/16 30/27/16 32/29/16 -f 34/31/1 36/32/1 35/33/1 -f 36/32/2 38/34/2 37/35/2 -f 37/35/3 38/34/3 40/36/3 -f 39/37/4 40/36/4 42/38/4 -f 42/39/5 44/40/5 43/41/5 -f 44/40/6 46/42/6 45/43/6 -f 46/42/7 48/44/7 47/45/7 -f 48/44/8 50/46/8 49/47/8 -f 50/46/9 52/48/9 51/49/9 -f 51/49/10 52/48/10 54/50/10 -f 53/51/11 54/50/11 56/52/11 -f 56/52/12 58/53/12 57/54/12 -f 57/54/13 58/53/13 60/55/13 -f 59/56/14 60/55/14 62/57/14 -f 63/58/15 64/59/15 34/31/15 -f 61/60/16 62/57/16 64/59/16 -f 83/61/17 87/62/17 95/63/17 -f 98/64/1 100/65/1 99/66/1 -f 100/67/2 102/68/2 101/69/2 -f 102/70/3 104/71/3 103/72/3 -f 104/71/4 106/73/4 105/74/4 -f 106/75/5 108/76/5 107/77/5 -f 108/76/6 110/78/6 109/79/6 -f 110/80/7 112/81/7 111/82/7 -f 112/83/8 114/84/8 113/85/8 -f 114/84/9 116/86/9 115/87/9 -f 115/87/10 116/86/10 118/88/10 -f 118/88/11 120/89/11 119/90/11 -f 120/89/12 122/91/12 121/92/12 -f 122/91/13 124/93/13 123/94/13 -f 123/94/14 124/93/14 126/95/14 -f 118/96/18 110/97/18 126/98/18 -f 128/99/15 98/64/15 97/100/15 -f 125/101/16 126/95/16 128/99/16 -f 115/102/17 119/103/17 127/104/17 -f 130/105/1 132/106/1 131/107/1 -f 131/108/2 132/109/2 134/110/2 -f 134/111/3 136/112/3 135/113/3 -f 136/112/4 138/114/4 137/115/4 -f 138/116/5 140/117/5 139/118/5 -f 140/117/6 142/119/6 141/120/6 -f 141/121/7 142/122/7 144/123/7 -f 143/124/8 144/125/8 146/126/8 -f 146/126/9 148/127/9 147/128/9 -f 148/127/10 150/129/10 149/130/10 -f 150/129/11 152/131/11 151/132/11 -f 152/131/12 154/133/12 153/134/12 -f 154/133/13 156/135/13 155/136/13 -f 156/135/14 158/137/14 157/138/14 -f 150/139/18 142/140/18 158/141/18 -f 160/142/15 130/105/15 129/143/15 -f 157/138/16 158/137/16 160/142/16 -f 143/144/17 151/145/17 159/146/17 -f 86/147/18 78/148/18 70/149/18 -f 163/150/18 132/151/18 134/152/18 -f 168/153/18 167/154/18 142/155/18 -f 173/156/17 111/157/17 109/158/17 -f 131/159/19 132/160/19 163/161/19 -f 165/162/17 143/163/17 141/164/17 -f 165/165/20 168/166/20 144/167/20 -f 162/168/17 161/169/17 133/170/17 -f 141/171/21 142/172/21 167/173/21 -f 164/174/22 134/175/22 133/176/22 -f 171/177/18 100/178/18 102/179/18 -f 176/180/18 175/181/18 110/182/18 -f 170/183/17 169/184/17 101/185/17 -f 164/174/23 161/186/23 162/187/23 -f 172/188/22 102/189/22 101/190/22 -f 99/191/19 100/192/19 171/193/19 -f 173/194/20 176/195/20 112/196/20 -f 109/197/21 110/198/21 175/199/21 -f 168/166/23 165/165/23 166/200/23 -f 176/195/23 173/194/23 174/201/23 -f 172/188/23 169/202/23 170/203/23 -f 177/204/1 178/205/1 67/206/1 -f 178/207/2 179/208/2 69/209/2 -f 179/210/3 180/211/3 71/212/3 -f 180/213/4 181/214/4 73/215/4 -f 73/216/5 181/217/5 182/218/5 -f 182/219/6 183/220/6 77/221/6 -f 183/222/7 184/223/7 79/224/7 -f 184/225/8 185/226/8 81/227/8 -f 81/228/9 185/229/9 186/230/9 -f 83/231/10 186/232/10 187/233/10 -f 85/234/11 187/235/11 188/236/11 -f 188/237/12 189/238/12 89/239/12 -f 189/240/13 190/241/13 91/242/13 -f 190/243/14 191/244/14 93/245/14 -f 192/246/15 177/247/15 65/248/15 -f 191/249/16 192/250/16 95/251/16 -f 190/243/24 59/56/24 61/60/24 -f 59/56/25 190/241/25 189/240/25 -f 57/54/26 189/238/26 188/237/26 -f 53/51/27 55/252/27 188/236/27 -f 51/49/28 53/51/28 187/233/28 -f 49/47/29 51/49/29 186/230/29 -f 47/45/30 49/47/30 185/226/30 -f 45/43/31 47/45/31 184/223/31 -f 43/41/32 45/43/32 183/220/32 -f 43/41/33 182/218/33 181/217/33 -f 39/37/34 41/253/34 181/214/34 -f 39/37/35 180/211/35 179/210/35 -f 37/35/36 179/208/36 178/207/36 -f 35/33/37 178/205/37 177/204/37 -f 33/254/38 177/247/38 192/246/38 -f 63/58/39 192/250/39 191/249/39 -f 26/23/40 24/21/40 88/255/40 -f 92/256/41 28/25/41 26/23/41 -f 94/257/42 30/27/42 28/25/42 -f 96/258/43 32/29/43 30/27/43 -f 66/259/44 2/2/44 32/29/44 -f 68/260/45 4/3/45 2/2/45 -f 70/261/46 6/4/46 4/3/46 -f 72/262/47 8/6/47 6/4/47 -f 74/263/48 10/8/48 8/6/48 -f 12/12/49 10/11/49 74/264/49 -f 14/13/50 12/12/50 76/265/50 -f 16/15/51 14/13/51 78/266/51 -f 18/16/52 16/15/52 80/267/52 -f 20/18/53 18/16/53 82/268/53 -f 22/20/54 20/18/54 84/269/54 -f 24/21/55 22/20/55 86/270/55 -f 195/271/56 200/272/56 201/273/56 -f 193/274/57 198/275/57 199/276/57 -f 196/277/58 201/273/58 202/278/58 -f 194/279/59 199/276/59 200/272/59 -f 200/280/60 205/281/60 206/282/60 -f 198/283/61 203/284/61 204/285/61 -f 201/286/62 206/282/62 207/287/62 -f 199/288/63 204/285/63 205/281/63 -f 207/289/64 206/290/64 211/291/64 -f 204/292/65 209/293/65 210/294/65 -f 205/295/66 210/294/66 211/291/66 -f 204/292/67 203/296/67 208/297/67 -f 209/298/68 214/299/68 215/300/68 -f 210/301/69 215/300/69 216/302/69 -f 209/298/70 208/303/70 213/304/70 -f 212/305/71 211/306/71 216/302/71 -f 215/307/72 220/308/72 221/309/72 -f 213/310/73 218/311/73 219/312/73 -f 217/313/74 216/314/74 221/309/74 -f 215/307/75 214/315/75 219/312/75 -f 218/316/76 223/317/76 224/318/76 -f 221/319/77 226/320/77 227/321/77 -f 220/322/78 219/323/78 224/318/78 -f 220/322/79 225/324/79 226/320/79 -f 226/325/80 231/326/80 232/327/80 -f 225/328/81 224/329/81 229/330/81 -f 226/325/82 225/328/82 230/331/82 -f 223/332/83 228/333/83 229/330/83 -f 231/334/84 230/335/84 195/336/84 -f 228/337/85 193/338/85 194/339/85 -f 231/334/86 196/340/86 197/341/86 -f 229/342/87 194/339/87 195/336/87 -f 3/343/1 1/1/1 4/3/1 -f 3/343/2 4/3/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 11/344/5 9/10/5 12/12/5 -f 11/344/6 12/12/6 13/14/6 -f 15/345/7 13/14/7 16/15/7 -f 15/345/8 16/15/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 21/346/10 19/19/10 22/20/10 -f 21/346/11 22/20/11 23/22/11 -f 23/22/12 24/21/12 25/24/12 -f 27/26/13 25/24/13 28/25/13 -f 29/30/14 27/26/14 30/27/14 -f 1/1/15 31/28/15 2/2/15 -f 31/28/16 29/30/16 32/29/16 -f 33/254/1 34/31/1 35/33/1 -f 35/33/2 36/32/2 37/35/2 -f 39/37/3 37/35/3 40/36/3 -f 41/253/4 39/37/4 42/38/4 -f 41/347/5 42/39/5 43/41/5 -f 43/41/6 44/40/6 45/43/6 -f 45/43/7 46/42/7 47/45/7 -f 47/45/8 48/44/8 49/47/8 -f 49/47/9 50/46/9 51/49/9 -f 53/51/10 51/49/10 54/50/10 -f 55/252/11 53/51/11 56/52/11 -f 55/252/12 56/52/12 57/54/12 -f 59/56/13 57/54/13 60/55/13 -f 61/60/14 59/56/14 62/57/14 -f 33/254/15 63/58/15 34/31/15 -f 63/58/16 61/60/16 64/59/16 -f 95/63/17 65/348/17 67/349/17 -f 67/349/17 69/350/17 71/351/17 -f 71/351/17 73/352/17 75/353/17 -f 75/353/17 77/354/17 71/351/17 -f 79/355/17 81/356/17 83/61/17 -f 83/61/17 85/357/17 87/62/17 -f 87/62/17 89/358/17 91/359/17 -f 91/359/17 93/360/17 87/62/17 -f 95/63/17 67/349/17 79/355/17 -f 71/351/17 77/354/17 79/355/17 -f 79/355/17 83/61/17 95/63/17 -f 87/62/17 93/360/17 95/63/17 -f 67/349/17 71/351/17 79/355/17 -f 97/100/1 98/64/1 99/66/1 -f 99/361/2 100/67/2 101/69/2 -f 101/362/3 102/70/3 103/72/3 -f 103/72/4 104/71/4 105/74/4 -f 105/363/5 106/75/5 107/77/5 -f 107/77/6 108/76/6 109/79/6 -f 109/364/7 110/80/7 111/82/7 -f 111/365/8 112/83/8 113/85/8 -f 113/85/9 114/84/9 115/87/9 -f 117/366/10 115/87/10 118/88/10 -f 117/366/11 118/88/11 119/90/11 -f 119/90/12 120/89/12 121/92/12 -f 121/92/13 122/91/13 123/94/13 -f 125/101/14 123/94/14 126/95/14 -f 102/367/18 100/368/18 98/369/18 -f 98/369/18 128/370/18 126/98/18 -f 126/98/18 124/371/18 118/96/18 -f 122/372/18 120/373/18 118/96/18 -f 118/96/18 116/374/18 110/97/18 -f 114/375/18 112/376/18 110/97/18 -f 110/97/18 108/377/18 106/378/18 -f 106/378/18 104/379/18 110/97/18 -f 102/367/18 98/369/18 126/98/18 -f 124/371/18 122/372/18 118/96/18 -f 116/374/18 114/375/18 110/97/18 -f 110/97/18 104/379/18 102/367/18 -f 102/367/18 126/98/18 110/97/18 -f 127/380/15 128/99/15 97/100/15 -f 127/380/16 125/101/16 128/99/16 -f 127/104/17 97/381/17 99/382/17 -f 99/382/17 101/383/17 103/384/17 -f 103/384/17 105/385/17 107/386/17 -f 107/386/17 109/387/17 111/388/17 -f 111/388/17 113/389/17 115/102/17 -f 115/102/17 117/390/17 119/103/17 -f 119/103/17 121/391/17 123/392/17 -f 123/392/17 125/393/17 127/104/17 -f 127/104/17 99/382/17 103/384/17 -f 103/384/17 107/386/17 111/388/17 -f 111/388/17 115/102/17 127/104/17 -f 119/103/17 123/392/17 127/104/17 -f 127/104/17 103/384/17 111/388/17 -f 129/143/1 130/105/1 131/107/1 -f 133/394/2 131/108/2 134/110/2 -f 133/395/3 134/111/3 135/113/3 -f 135/113/4 136/112/4 137/115/4 -f 137/396/5 138/116/5 139/118/5 -f 139/118/6 140/117/6 141/120/6 -f 143/397/7 141/121/7 144/123/7 -f 145/398/8 143/124/8 146/126/8 -f 145/398/9 146/126/9 147/128/9 -f 147/128/10 148/127/10 149/130/10 -f 149/130/11 150/129/11 151/132/11 -f 151/132/12 152/131/12 153/134/12 -f 153/134/13 154/133/13 155/136/13 -f 155/136/14 156/135/14 157/138/14 -f 134/399/18 132/400/18 130/401/18 -f 130/401/18 160/402/18 158/141/18 -f 158/141/18 156/403/18 150/139/18 -f 154/404/18 152/405/18 150/139/18 -f 150/139/18 148/406/18 142/140/18 -f 146/407/18 144/408/18 142/140/18 -f 142/140/18 140/409/18 138/410/18 -f 138/410/18 136/411/18 142/140/18 -f 134/399/18 130/401/18 158/141/18 -f 156/403/18 154/404/18 150/139/18 -f 148/406/18 146/407/18 142/140/18 -f 142/140/18 136/411/18 134/399/18 -f 134/399/18 158/141/18 142/140/18 -f 159/412/15 160/142/15 129/143/15 -f 159/412/16 157/138/16 160/142/16 -f 159/146/17 129/413/17 131/414/17 -f 131/414/17 133/415/17 159/146/17 -f 135/416/17 137/417/17 139/418/17 -f 139/418/17 141/419/17 135/416/17 -f 143/144/17 145/420/17 147/421/17 -f 147/421/17 149/422/17 151/145/17 -f 151/145/17 153/423/17 155/424/17 -f 155/424/17 157/425/17 159/146/17 -f 159/146/17 133/415/17 135/416/17 -f 135/416/17 141/419/17 143/144/17 -f 143/144/17 147/421/17 151/145/17 -f 151/145/17 155/424/17 159/146/17 -f 159/146/17 135/416/17 143/144/17 -f 70/149/18 68/426/18 66/427/18 -f 66/427/18 96/428/18 94/429/18 -f 94/429/18 92/430/18 90/431/18 -f 90/431/18 88/432/18 86/147/18 -f 86/147/18 84/433/18 78/148/18 -f 82/434/18 80/435/18 78/148/18 -f 78/148/18 76/436/18 70/149/18 -f 74/437/18 72/438/18 70/149/18 -f 70/149/18 66/427/18 94/429/18 -f 94/429/18 90/431/18 70/149/18 -f 84/433/18 82/434/18 78/148/18 -f 76/436/18 74/437/18 70/149/18 -f 70/149/18 90/431/18 86/147/18 -f 164/439/18 163/150/18 134/152/18 -f 144/440/18 168/153/18 142/155/18 -f 174/441/17 173/156/17 109/158/17 -f 162/187/19 131/159/19 163/161/19 -f 166/442/17 165/162/17 141/164/17 -f 143/443/20 165/165/20 144/167/20 -f 131/444/17 162/168/17 133/170/17 -f 166/200/21 141/171/21 167/173/21 -f 161/186/22 164/174/22 133/176/22 -f 172/445/18 171/177/18 102/179/18 -f 112/446/18 176/180/18 110/182/18 -f 99/447/17 170/183/17 101/185/17 -f 163/161/23 164/174/23 162/187/23 -f 169/202/22 172/188/22 101/190/22 -f 170/203/19 99/191/19 171/193/19 -f 111/448/20 173/194/20 112/196/20 -f 174/201/21 109/197/21 175/199/21 -f 167/173/23 168/166/23 166/200/23 -f 175/199/23 176/195/23 174/201/23 -f 171/193/23 172/188/23 170/203/23 -f 65/449/1 177/204/1 67/206/1 -f 67/450/2 178/207/2 69/209/2 -f 69/451/3 179/210/3 71/212/3 -f 71/452/4 180/213/4 73/215/4 -f 75/453/5 73/216/5 182/218/5 -f 75/454/6 182/219/6 77/221/6 -f 77/455/7 183/222/7 79/224/7 -f 79/456/8 184/225/8 81/227/8 -f 83/457/9 81/228/9 186/230/9 -f 85/458/10 83/231/10 187/233/10 -f 87/459/11 85/234/11 188/236/11 -f 87/460/12 188/237/12 89/239/12 -f 89/461/13 189/240/13 91/242/13 -f 91/462/14 190/243/14 93/245/14 -f 95/463/15 192/246/15 65/248/15 -f 93/464/16 191/249/16 95/251/16 -f 191/244/24 190/243/24 61/60/24 -f 57/54/25 59/56/25 189/240/25 -f 55/252/26 57/54/26 188/237/26 -f 187/235/27 53/51/27 188/236/27 -f 186/232/28 51/49/28 187/233/28 -f 185/229/29 49/47/29 186/230/29 -f 184/225/30 47/45/30 185/226/30 -f 183/222/31 45/43/31 184/223/31 -f 182/219/32 43/41/32 183/220/32 -f 41/347/33 43/41/33 181/217/33 -f 180/213/34 39/37/34 181/214/34 -f 37/35/35 39/37/35 179/210/35 -f 35/33/36 37/35/36 178/207/36 -f 33/254/37 35/33/37 177/204/37 -f 63/58/38 33/254/38 192/246/38 -f 61/60/39 63/58/39 191/249/39 -f 90/465/40 26/23/40 88/255/40 -f 90/466/41 92/256/41 26/23/41 -f 92/467/42 94/257/42 28/25/42 -f 94/468/43 96/258/43 30/27/43 -f 96/469/44 66/259/44 32/29/44 -f 66/470/45 68/260/45 2/2/45 -f 68/471/46 70/261/46 4/3/46 -f 70/472/47 72/262/47 6/4/47 -f 72/473/48 74/263/48 8/6/48 -f 76/474/49 12/12/49 74/264/49 -f 78/475/50 14/13/50 76/265/50 -f 80/476/51 16/15/51 78/266/51 -f 82/477/52 18/16/52 80/267/52 -f 84/478/53 20/18/53 82/268/53 -f 86/479/54 22/20/54 84/269/54 -f 88/480/55 24/21/55 86/270/55 -f 196/277/56 195/271/56 201/273/56 -f 194/279/57 193/274/57 199/276/57 -f 197/481/58 196/277/58 202/278/58 -f 195/271/59 194/279/59 200/272/59 -f 201/286/60 200/280/60 206/282/60 -f 199/288/61 198/283/61 204/285/61 -f 202/482/62 201/286/62 207/287/62 -f 200/280/63 199/288/63 205/281/63 -f 212/483/64 207/289/64 211/291/64 -f 205/295/65 204/292/65 210/294/65 -f 206/290/66 205/295/66 211/291/66 -f 209/293/67 204/292/67 208/297/67 -f 210/301/68 209/298/68 215/300/68 -f 211/306/69 210/301/69 216/302/69 -f 214/299/70 209/298/70 213/304/70 -f 217/484/71 212/305/71 216/302/71 -f 216/314/72 215/307/72 221/309/72 -f 214/315/73 213/310/73 219/312/73 -f 222/485/74 217/313/74 221/309/74 -f 220/308/75 215/307/75 219/312/75 -f 219/323/76 218/316/76 224/318/76 -f 222/486/77 221/319/77 227/321/77 -f 225/324/78 220/322/78 224/318/78 -f 221/319/79 220/322/79 226/320/79 -f 227/487/80 226/325/80 232/327/80 -f 230/331/81 225/328/81 229/330/81 -f 231/326/82 226/325/82 230/331/82 -f 224/329/83 223/332/83 229/330/83 -f 196/340/84 231/334/84 195/336/84 -f 229/342/85 228/337/85 194/339/85 -f 232/488/86 231/334/86 197/341/86 -f 230/335/87 229/342/87 195/336/87 diff --git a/src/main/resources/assets/hbm/models/tsarbomba.obj b/src/main/resources/assets/hbm/models/tsarbomba.obj deleted file mode 100644 index e74a3094e4..0000000000 --- a/src/main/resources/assets/hbm/models/tsarbomba.obj +++ /dev/null @@ -1,799 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'tsarBomb.blend' -# www.blender.org -o Cylinder -v -1.000000 0.999999 -1.000000 -v 1.000000 1.000001 -1.000000 -v -1.000000 0.617316 -0.923880 -v 1.000000 0.617317 -0.923880 -v -0.999999 0.292892 -0.707107 -v 1.000001 0.292894 -0.707107 -v -0.999999 0.076120 -0.382683 -v 1.000001 0.076121 -0.382683 -v -0.999999 -0.000001 0.000000 -v 1.000001 0.000001 0.000000 -v -0.999999 0.076120 0.382684 -v 1.000001 0.076121 0.382684 -v -0.999999 0.292892 0.707107 -v 1.000001 0.292894 0.707107 -v -1.000000 0.617316 0.923880 -v 1.000000 0.617317 0.923880 -v -1.000000 0.999999 1.000000 -v 1.000000 1.000001 1.000000 -v -1.000000 1.382682 0.923880 -v 1.000000 1.382684 0.923880 -v -1.000001 1.707106 0.707107 -v 0.999999 1.707108 0.707107 -v -1.000001 1.923879 0.382684 -v 0.999999 1.923880 0.382684 -v -1.000001 1.999999 -0.000000 -v 0.999999 2.000001 -0.000000 -v -1.000001 1.923878 -0.382684 -v 0.999999 1.923880 -0.382684 -v -1.000001 1.707106 -0.707107 -v 0.999999 1.707108 -0.707107 -v -1.000000 1.382682 -0.923880 -v 1.000000 1.382684 -0.923880 -v 2.000000 0.674719 -0.785298 -v 2.000000 0.398959 -0.601041 -v 1.999999 0.214702 -0.325281 -v 1.999999 0.150000 -0.000000 -v 1.999999 0.214702 0.325281 -v 2.000000 0.398959 0.601041 -v 2.000000 0.674719 0.785298 -v 2.000000 1.000000 0.850000 -v 2.000000 1.325281 0.785298 -v 2.000000 1.601041 0.601041 -v 2.000001 1.785298 0.325281 -v 2.000001 1.850000 0.000000 -v 2.000001 1.785298 -0.325281 -v 2.000000 1.601041 -0.601041 -v 2.000000 1.325281 -0.785298 -v 2.000000 1.000000 -0.850000 -v -3.500000 1.000000 -0.600000 -v -3.500000 1.229610 -0.554328 -v -3.499999 1.424264 -0.424264 -v -3.499999 1.554328 -0.229610 -v -3.499999 1.600000 0.000000 -v -3.499999 1.554328 0.229610 -v -3.499999 1.424264 0.424264 -v -3.500000 1.229610 0.554328 -v -3.500000 1.000000 0.600000 -v -3.500000 0.770390 0.554328 -v -3.500000 0.575736 0.424264 -v -3.500000 0.445672 0.229610 -v -3.500000 0.400000 -0.000000 -v -3.500000 0.445672 -0.229610 -v -3.500000 0.575736 -0.424264 -v -3.500000 0.770390 -0.554328 -v -5.000000 1.000000 -0.600000 -v -5.000000 1.229610 -0.554328 -v -5.000000 1.424264 -0.424264 -v -5.000000 1.554328 -0.229610 -v -4.999999 1.600000 0.000000 -v -5.000000 1.554328 0.229610 -v -5.000000 1.424264 0.424264 -v -5.000000 1.229610 0.554328 -v -5.000000 1.000000 0.600000 -v -5.000000 0.770390 0.554328 -v -5.000000 0.575736 0.424264 -v -5.000000 0.445672 0.229610 -v -5.000000 0.400000 -0.000000 -v -5.000000 0.445672 -0.229610 -v -5.000000 0.575736 -0.424264 -v -5.000000 0.770390 -0.554328 -v 2.700000 1.000000 -0.600000 -v 2.700000 1.229610 -0.554328 -v 2.700001 1.424264 -0.424264 -v 2.700001 1.554328 -0.229610 -v 2.700001 1.600000 0.000000 -v 2.700001 1.554328 0.229610 -v 2.700001 1.424264 0.424264 -v 2.700000 1.229610 0.554328 -v 2.700000 1.000000 0.600000 -v 2.700000 0.770390 0.554328 -v 2.700000 0.575736 0.424264 -v 2.699999 0.445672 0.229610 -v 2.699999 0.400000 -0.000000 -v 2.699999 0.445672 -0.229610 -v 2.700000 0.575736 -0.424264 -v 2.700000 0.770390 -0.554328 -v 3.000000 1.000000 -0.000000 -v -4.250000 0.289964 -1.196548 -v -4.250000 0.318774 -1.213181 -v -4.250000 1.391259 0.016633 -v -3.500000 1.391259 0.016633 -v -4.250000 1.391259 -0.016633 -v -3.500000 1.391259 -0.016633 -v -4.250000 2.391259 -0.016637 -v -4.250000 1.891259 0.016631 -v -4.250000 0.289968 1.196550 -v -4.250000 0.789966 0.330524 -v -3.500000 0.789966 0.330524 -v -4.250000 0.818775 0.347157 -v -3.500000 0.818775 0.347157 -v -4.250000 1.891259 -0.016635 -v -4.250000 0.818775 -0.347157 -v -3.500000 0.818775 -0.347157 -v -4.250000 0.789966 -0.330524 -v -3.500000 0.789966 -0.330524 -v -4.250000 2.391259 0.016629 -v -4.250000 0.318777 1.213183 -v -5.000000 2.391259 -0.016637 -v -5.000000 1.891259 0.016631 -v -5.000000 1.891259 -0.016635 -v -5.000000 2.391259 0.016629 -v -4.250000 2.057926 -0.016636 -v -4.250000 2.224592 -0.016636 -v -3.500000 2.224592 -0.016636 -v -3.750000 2.391259 -0.016637 -v -3.750000 2.391259 0.016629 -v -4.250000 2.057926 0.016630 -v -4.250000 2.224592 0.016630 -v -3.500000 2.224592 0.016630 -v -4.250000 0.568774 -0.780169 -v -4.250000 0.539965 -0.763536 -v -4.250000 0.568776 0.780170 -v -4.250000 0.539967 0.763537 -v -5.000000 0.289964 -1.196548 -v -5.000000 0.318773 -1.213181 -v -5.000000 0.568774 -0.780169 -v -5.000000 0.539965 -0.763536 -v -5.000000 0.289968 1.196550 -v -5.000000 0.318777 1.213183 -v -5.000000 0.568776 0.780170 -v -5.000000 0.539967 0.763537 -v -3.750000 0.289965 -1.196548 -v -3.500000 0.373298 -1.052211 -v -3.750000 0.318774 -1.213181 -v -3.500000 0.402107 -1.068844 -v -3.750000 0.318777 1.213183 -v -3.500000 0.402110 1.068846 -v -3.750000 0.289968 1.196550 -v -3.500000 0.373301 1.052213 -vt 0.160468 0.428574 -vt 0.125244 0.428574 -vt 0.125245 0.248024 -vt 0.090021 0.428574 -vt 0.090021 0.248023 -vt 0.054797 0.428574 -vt 0.054798 0.248023 -vt 0.019573 0.428574 -vt 0.019574 0.248023 -vt 0.583153 0.428576 -vt 0.547929 0.428576 -vt 0.547929 0.248025 -vt 0.512705 0.428576 -vt 0.512706 0.248025 -vt 0.477481 0.428575 -vt 0.477482 0.248025 -vt 0.442258 0.428575 -vt 0.442258 0.248025 -vt 0.407034 0.428575 -vt 0.407035 0.248025 -vt 0.371810 0.428575 -vt 0.371811 0.248024 -vt 0.336587 0.428575 -vt 0.336587 0.248024 -vt 0.301363 0.428575 -vt 0.301363 0.248024 -vt 0.266139 0.428575 -vt 0.266140 0.248024 -vt 0.230915 0.428575 -vt 0.195692 0.428575 -vt 0.160469 0.248024 -vt 0.195692 0.248024 -vt 0.308409 0.019574 -vt 0.329543 0.019574 -vt 0.343633 0.019575 -vt 0.364767 0.019575 -vt 0.378856 0.019574 -vt 0.399991 0.019574 -vt 0.414080 0.019575 -vt 0.435214 0.019575 -vt 0.449303 0.019574 -vt 0.470438 0.019574 -vt 0.484527 0.019575 -vt 0.505661 0.019575 -vt 0.519751 0.019574 -vt 0.540885 0.019574 -vt 0.554975 0.019575 -vt 0.576109 0.019575 -vt 0.583153 0.248025 -vt 0.026620 0.019573 -vt 0.047754 0.019573 -vt 0.061843 0.019574 -vt 0.082977 0.019574 -vt 0.097067 0.019574 -vt 0.118201 0.019574 -vt 0.132291 0.019574 -vt 0.153425 0.019574 -vt 0.167514 0.019573 -vt 0.188649 0.019573 -vt 0.202738 0.019575 -vt 0.223872 0.019575 -vt 0.230916 0.248024 -vt 0.237962 0.019573 -vt 0.259096 0.019574 -vt 0.273185 0.019574 -vt 0.294320 0.019574 -vt 0.980421 0.146384 -vt 0.980421 0.167518 -vt 0.845008 0.167513 -vt 0.980420 0.188653 -vt 0.980419 0.209787 -vt 0.845006 0.209781 -vt 0.980418 0.230921 -vt 0.845005 0.230915 -vt 0.980417 0.252055 -vt 0.845004 0.252050 -vt 0.980416 0.273189 -vt 0.845003 0.273184 -vt 0.980415 0.294324 -vt 0.845002 0.294318 -vt 0.980415 0.315458 -vt 0.845002 0.315452 -vt 0.980414 0.336592 -vt 0.845001 0.336587 -vt 0.980413 0.357726 -vt 0.845000 0.357721 -vt 0.845014 0.019573 -vt 0.980427 0.019579 -vt 0.980426 0.040713 -vt 0.845013 0.040707 -vt 0.980425 0.061847 -vt 0.845012 0.061842 -vt 0.980424 0.082982 -vt 0.845011 0.082976 -vt 0.980423 0.104116 -vt 0.845010 0.104110 -vt 0.980422 0.125250 -vt 0.845009 0.125244 -vt 0.062131 0.791805 -vt 0.027661 0.768773 -vt 0.042605 0.693644 -vt 0.052155 0.519821 -vt 0.047751 0.586778 -vt 0.026617 0.586778 -vt 0.580511 0.519823 -vt 0.576108 0.586780 -vt 0.554973 0.586780 -vt 0.515347 0.519823 -vt 0.545287 0.519823 -vt 0.540884 0.586780 -vt 0.480123 0.519822 -vt 0.510063 0.519822 -vt 0.505660 0.586780 -vt 0.444899 0.519822 -vt 0.474840 0.519822 -vt 0.470437 0.586780 -vt 0.409676 0.519822 -vt 0.439616 0.519822 -vt 0.435213 0.586780 -vt 0.374452 0.519822 -vt 0.404392 0.519822 -vt 0.399989 0.586780 -vt 0.097065 0.586779 -vt 0.118199 0.586779 -vt 0.107632 0.646408 -vt 0.339228 0.519822 -vt 0.369168 0.519822 -vt 0.364765 0.586780 -vt 0.304004 0.519822 -vt 0.333945 0.519822 -vt 0.329541 0.586780 -vt 0.298721 0.519822 -vt 0.294318 0.586779 -vt 0.273183 0.586779 -vt 0.263497 0.519822 -vt 0.259094 0.586779 -vt 0.237960 0.586779 -vt 0.228273 0.519822 -vt 0.223870 0.586779 -vt 0.202736 0.586779 -vt 0.193050 0.519822 -vt 0.188646 0.586779 -vt 0.167512 0.586779 -vt 0.519750 0.586780 -vt 0.530317 0.646409 -vt 0.484526 0.586780 -vt 0.495093 0.646409 -vt 0.449302 0.586780 -vt 0.459869 0.646409 -vt 0.414079 0.586780 -vt 0.424645 0.646409 -vt 0.378855 0.586780 -vt 0.389422 0.646409 -vt 0.343631 0.586780 -vt 0.354198 0.646409 -vt 0.308407 0.586780 -vt 0.318974 0.646409 -vt 0.283750 0.646409 -vt 0.248526 0.646409 -vt 0.213303 0.646409 -vt 0.178079 0.646408 -vt 0.132288 0.586779 -vt 0.153423 0.586779 -vt 0.142855 0.646408 -vt 0.061841 0.586778 -vt 0.082975 0.586779 -vt 0.072408 0.646408 -vt 0.037184 0.646408 -vt 0.565540 0.646410 -vt 0.087378 0.519821 -vt 0.122602 0.519821 -vt 0.157826 0.519822 -vt 0.233557 0.519822 -vt 0.268781 0.519822 -vt 0.550570 0.519823 -vt 0.164969 0.753263 -vt 0.164971 0.685556 -vt 0.167974 0.685556 -vt 0.207121 0.753262 -vt 0.207121 0.685556 -vt 0.210124 0.685556 -vt 0.249270 0.685556 -vt 0.252274 0.685556 -vt 0.252274 0.753264 -vt 0.249271 0.753264 -vt 0.252274 0.798401 -vt 0.715578 0.663671 -vt 0.712575 0.663671 -vt 0.712576 0.618535 -vt 0.712576 0.878866 -vt 0.712575 0.803639 -vt 0.715578 0.803639 -vt 0.712575 0.731377 -vt 0.715578 0.731377 -vt 0.712575 0.776515 -vt 0.667437 0.731377 -vt 0.667438 0.663671 -vt 0.697529 0.799084 -vt 0.622299 0.799084 -vt 0.760716 0.663671 -vt 0.760716 0.731377 -vt 0.715578 0.776515 -vt 0.730624 0.799084 -vt 0.164969 0.798401 -vt 0.167973 0.753263 -vt 0.712575 0.177554 -vt 0.715578 0.177554 -vt 0.715578 0.204678 -vt 0.207120 0.798401 -vt 0.210124 0.753262 -vt 0.715578 0.579388 -vt 0.712575 0.579388 -vt 0.712575 0.504161 -vt 0.715578 0.019573 -vt 0.715578 0.064710 -vt 0.712575 0.064710 -vt 0.760716 0.064710 -vt 0.760716 0.132416 -vt 0.715578 0.132416 -vt 0.712575 0.132416 -vt 0.667437 0.132416 -vt 0.667437 0.064710 -vt 0.712575 0.319054 -vt 0.715578 0.319054 -vt 0.715578 0.364192 -vt 0.712575 0.477036 -vt 0.715578 0.477036 -vt 0.760716 0.364192 -vt 0.760716 0.431899 -vt 0.715578 0.431899 -vt 0.712575 0.431899 -vt 0.667437 0.431899 -vt 0.667437 0.364192 -vt 0.697529 0.200123 -vt 0.622299 0.200123 -vt 0.730624 0.200123 -vt 0.712575 0.204678 -vt 0.715578 0.279908 -vt 0.697529 0.499605 -vt 0.622300 0.499605 -vt 0.730624 0.499605 -vt 0.845008 0.146379 -vt 0.845007 0.188647 -vt 0.062131 0.685556 -vt 0.083265 0.685556 -vt 0.102790 0.693644 -vt 0.117734 0.708588 -vt 0.125822 0.728113 -vt 0.125822 0.749248 -vt 0.117734 0.768773 -vt 0.102790 0.783717 -vt 0.083265 0.791805 -vt 0.042605 0.783717 -vt 0.019573 0.749248 -vt 0.019573 0.728114 -vt 0.027661 0.708588 -vt 0.022215 0.519821 -vt 0.198333 0.519822 -vt 0.163109 0.519822 -vt 0.057438 0.519821 -vt 0.092662 0.519821 -vt 0.127886 0.519821 -vt 0.249271 0.798401 -vt 0.715579 0.618535 -vt 0.715579 0.878866 -vt 0.622300 0.731377 -vt 0.805854 0.799084 -vt 0.805854 0.731377 -vt 0.167972 0.798401 -vt 0.210123 0.798401 -vt 0.715578 0.504161 -vt 0.712575 0.019573 -vt 0.712575 0.364192 -vt 0.622300 0.132416 -vt 0.805853 0.132416 -vt 0.805853 0.200123 -vt 0.712575 0.279908 -vt 0.622299 0.431899 -vt 0.805853 0.499605 -vt 0.805853 0.431899 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn -0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn -0.000000 0.980800 0.195100 -vn -0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn -0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -0.155000 0.968900 0.192700 -vn -0.155000 0.821400 0.548900 -vn -0.155000 0.548900 0.821400 -vn -0.155000 0.192700 0.968900 -vn -0.155000 -0.192700 0.968900 -vn -0.155000 -0.548900 0.821400 -vn -0.155000 -0.821400 0.548900 -vn -0.155000 -0.968900 0.192700 -vn -0.155000 -0.968900 -0.192700 -vn -0.155000 -0.821400 -0.548900 -vn -0.155000 -0.548900 -0.821400 -vn -0.155000 -0.192700 -0.968900 -vn -0.155000 0.192700 -0.968900 -vn -0.155000 0.548900 -0.821400 -vn -0.155000 0.821400 -0.548900 -vn -0.155000 0.968900 -0.192700 -vn -1.000000 0.000000 0.000000 -vn 0.330600 -0.925600 -0.184100 -vn 0.330600 -0.925600 0.184100 -vn 0.330600 -0.784700 0.524300 -vn 0.330600 -0.524300 0.784700 -vn 0.330600 -0.184100 0.925600 -vn 0.330600 0.184100 0.925600 -vn 0.330600 0.524300 0.784700 -vn 0.890900 -0.252300 -0.377600 -vn 0.330600 0.784700 0.524300 -vn 0.330600 0.925600 0.184100 -vn 0.330600 0.925600 -0.184100 -vn 0.330600 0.784700 -0.524300 -vn 0.330600 0.524300 -0.784700 -vn 0.330600 0.184100 -0.925600 -vn 0.890900 -0.377600 0.252300 -vn 0.890900 -0.252300 0.377600 -vn 0.890900 -0.088600 0.445500 -vn 0.890900 0.088600 0.445500 -vn 0.890900 0.252300 0.377600 -vn 0.890900 0.377600 0.252300 -vn 0.890900 0.445500 0.088600 -vn 0.890900 0.445500 -0.088600 -vn 0.890900 0.377600 -0.252300 -vn 0.890900 0.252300 -0.377600 -vn 0.890900 0.088600 -0.445500 -vn 0.890900 -0.088600 -0.445500 -vn 0.890900 -0.377600 -0.252300 -vn 0.890900 -0.445500 -0.088600 -vn 0.890900 -0.445500 0.088600 -vn 0.330600 -0.784700 -0.524300 -vn 0.330600 -0.524300 -0.784700 -vn 0.330600 -0.184100 -0.925600 -vn 0.145600 -0.193000 -0.970300 -vn 0.145600 0.193000 -0.970300 -vn 0.145600 0.549700 -0.822600 -vn 0.145600 0.822600 -0.549700 -vn 0.145600 0.970300 -0.193000 -vn 0.145600 0.970300 0.193000 -vn 0.145600 0.822600 0.549700 -vn 0.145600 0.549700 0.822600 -vn 0.145600 0.193000 0.970300 -vn 0.145600 -0.193000 0.970300 -vn 0.145600 -0.549700 0.822600 -vn 0.145600 -0.822600 0.549700 -vn 0.145600 -0.970300 0.193000 -vn 0.145600 -0.970300 -0.193000 -vn 0.145600 -0.822600 -0.549700 -vn 0.145600 -0.549700 -0.822600 -vn 0.000000 0.500000 0.866000 -vn 0.000000 0.500000 -0.866000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 -0.000000 0.000000 -vn -0.000000 1.000000 -0.000000 -vn 0.554700 0.832100 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.554700 -0.416000 -0.720600 -vn -0.000000 0.866000 -0.500000 -vn 0.000000 -0.866000 0.500000 -vn 0.554700 -0.416000 0.720600 -vn 0.000000 -0.866000 -0.500000 -vn -0.000000 0.866000 0.500000 -vn 0.000000 -0.500000 -0.866000 -vn -0.000000 -0.500000 0.866000 -vn 0.554700 0.832000 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/10/5 12/11/5 11/12/5 -f 12/11/6 14/13/6 13/14/6 -f 14/13/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/21/11 24/23/11 23/24/11 -f 24/23/12 26/25/12 25/26/12 -f 25/26/13 26/25/13 28/27/13 -f 27/28/14 28/27/14 30/29/14 -f 32/30/15 2/1/15 1/31/15 -f 30/29/16 32/30/16 31/32/16 -f 53/33/17 54/34/17 23/24/17 -f 23/24/18 54/35/18 55/36/18 -f 55/37/19 56/38/19 19/20/19 -f 19/20/20 56/39/20 57/40/20 -f 17/18/21 57/41/21 58/42/21 -f 58/43/22 59/44/22 13/14/22 -f 59/45/23 60/46/23 11/12/23 -f 60/47/24 61/48/24 9/49/24 -f 61/50/25 62/51/25 7/7/25 -f 62/52/26 63/53/26 5/5/26 -f 63/54/27 64/55/27 3/3/27 -f 64/56/28 49/57/28 1/31/28 -f 1/31/29 49/58/29 50/59/29 -f 50/60/30 51/61/30 29/62/30 -f 51/63/31 52/64/31 27/28/31 -f 52/65/32 53/66/32 25/26/32 -f 67/67/14 68/68/14 52/69/14 -f 52/69/13 68/68/13 69/70/13 -f 69/70/12 70/71/12 54/72/12 -f 70/71/11 71/73/11 55/74/11 -f 71/73/10 72/75/10 56/76/10 -f 72/75/9 73/77/9 57/78/9 -f 73/77/8 74/79/8 58/80/8 -f 74/79/7 75/81/7 59/82/7 -f 75/81/6 76/83/6 60/84/6 -f 76/83/5 77/85/5 61/86/5 -f 61/87/4 77/88/4 78/89/4 -f 62/90/3 78/89/3 79/91/3 -f 63/92/2 79/91/2 80/93/2 -f 64/94/1 80/93/1 65/95/1 -f 49/96/15 65/95/15 66/97/15 -f 50/98/16 66/97/16 67/67/16 -f 73/99/33 71/100/33 67/101/33 -f 35/102/34 94/103/34 93/104/34 -f 36/105/35 93/106/35 92/107/35 -f 38/108/36 37/109/36 92/110/36 -f 39/111/37 38/112/37 91/113/37 -f 40/114/38 39/115/38 90/116/38 -f 41/117/39 40/118/39 89/119/39 -f 42/120/40 41/121/40 88/122/40 -f 95/123/41 96/124/41 97/125/41 -f 43/126/42 42/127/42 87/128/42 -f 44/129/43 43/130/43 86/131/43 -f 44/132/44 85/133/44 84/134/44 -f 45/135/45 84/136/45 83/137/45 -f 46/138/46 83/139/46 82/140/46 -f 47/141/47 82/142/47 81/143/47 -f 91/144/48 92/110/48 97/145/48 -f 90/146/49 91/113/49 97/147/49 -f 89/148/50 90/116/50 97/149/50 -f 88/150/51 89/119/51 97/151/51 -f 87/152/52 88/122/52 97/153/52 -f 86/154/53 87/128/53 97/155/53 -f 85/156/54 86/131/54 97/157/54 -f 84/134/55 85/133/55 97/158/55 -f 83/137/56 84/136/56 97/159/56 -f 82/140/57 83/139/57 97/160/57 -f 81/143/58 82/142/58 97/161/58 -f 96/162/59 81/163/59 97/164/59 -f 94/165/60 95/166/60 97/167/60 -f 93/104/61 94/103/61 97/168/61 -f 93/106/62 97/169/62 92/107/62 -f 34/170/63 95/166/63 94/165/63 -f 33/171/64 96/124/64 95/123/64 -f 48/172/65 81/163/65 96/162/65 -f 4/2/66 2/1/66 48/172/66 -f 2/1/67 32/30/67 47/141/67 -f 32/30/68 30/29/68 46/138/68 -f 28/27/69 45/135/69 46/173/69 -f 26/25/70 44/132/70 45/174/70 -f 24/23/71 43/130/71 44/129/71 -f 22/21/72 42/127/72 43/126/72 -f 20/19/73 41/121/73 42/120/73 -f 18/17/74 40/118/74 41/117/74 -f 16/15/75 39/115/75 40/114/75 -f 14/13/76 38/112/76 39/111/76 -f 12/11/77 37/109/77 38/108/77 -f 10/10/78 36/105/78 37/175/78 -f 10/8/79 8/6/79 35/102/79 -f 8/6/80 6/4/80 34/170/80 -f 6/4/81 4/2/81 33/171/81 -f 130/176/82 136/177/82 137/178/82 -f 133/179/83 141/180/83 140/181/83 -f 119/182/84 120/183/84 111/184/84 -f 105/185/33 111/184/33 102/186/33 -f 121/187/33 118/188/33 120/189/33 -f 103/190/85 124/191/85 129/192/85 -f 104/193/86 121/187/86 116/194/86 -f 129/192/87 124/191/87 125/195/87 -f 104/193/88 111/196/88 120/197/88 -f 111/196/88 124/198/88 103/199/88 -f 119/200/89 105/201/89 116/194/89 -f 126/202/89 105/201/89 129/203/89 -f 112/204/33 130/176/33 131/205/33 -f 142/206/90 144/207/90 145/208/90 -f 107/209/33 133/179/33 132/210/33 -f 108/211/85 110/212/85 147/213/85 -f 136/214/33 135/215/33 134/216/33 -f 136/217/91 130/218/91 99/219/91 -f 98/220/92 131/221/92 137/222/92 -f 140/223/33 141/224/33 138/225/33 -f 147/213/93 146/226/93 148/227/93 -f 141/228/94 133/229/94 106/230/94 -f 117/231/95 132/232/95 140/233/95 -f 131/221/92 143/234/92 115/235/92 -f 145/236/91 144/207/91 130/218/91 -f 98/220/96 99/219/96 144/207/96 -f 143/237/85 145/208/85 113/238/85 -f 117/231/97 138/225/97 106/230/97 -f 132/232/95 147/239/95 110/240/95 -f 148/227/94 133/229/94 149/241/94 -f 1/31/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/49/5 10/10/5 11/12/5 -f 11/12/6 12/11/6 13/14/6 -f 13/14/7 14/13/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 21/22/11 22/21/11 23/24/11 -f 23/24/12 24/23/12 25/26/12 -f 27/28/13 25/26/13 28/27/13 -f 29/62/14 27/28/14 30/29/14 -f 31/32/15 32/30/15 1/31/15 -f 29/62/16 30/29/16 31/32/16 -f 25/26/17 53/33/17 23/24/17 -f 21/22/18 23/24/18 55/36/18 -f 21/22/19 55/37/19 19/20/19 -f 17/18/20 19/20/20 57/40/20 -f 15/16/21 17/18/21 58/42/21 -f 15/16/22 58/43/22 13/14/22 -f 13/14/23 59/45/23 11/12/23 -f 11/12/24 60/47/24 9/49/24 -f 9/9/25 61/50/25 7/7/25 -f 7/7/26 62/52/26 5/5/26 -f 5/5/27 63/54/27 3/3/27 -f 3/3/28 64/56/28 1/31/28 -f 31/32/29 1/31/29 50/59/29 -f 31/32/30 50/60/30 29/62/30 -f 29/62/31 51/63/31 27/28/31 -f 27/28/32 52/65/32 25/26/32 -f 51/242/14 67/67/14 52/69/14 -f 53/243/13 52/69/13 69/70/13 -f 53/243/12 69/70/12 54/72/12 -f 54/72/11 70/71/11 55/74/11 -f 55/74/10 71/73/10 56/76/10 -f 56/76/9 72/75/9 57/78/9 -f 57/78/8 73/77/8 58/80/8 -f 58/80/7 74/79/7 59/82/7 -f 59/82/6 75/81/6 60/84/6 -f 60/84/5 76/83/5 61/86/5 -f 62/90/4 61/87/4 78/89/4 -f 63/92/3 62/90/3 79/91/3 -f 64/94/2 63/92/2 80/93/2 -f 49/96/1 64/94/1 65/95/1 -f 50/98/15 49/96/15 66/97/15 -f 51/242/16 50/98/16 67/67/16 -f 67/101/33 66/244/33 65/245/33 -f 65/245/33 80/246/33 79/247/33 -f 79/247/33 78/248/33 77/249/33 -f 77/249/33 76/250/33 75/251/33 -f 75/251/33 74/252/33 73/99/33 -f 73/99/33 72/253/33 71/100/33 -f 71/100/33 70/254/33 69/255/33 -f 69/255/33 68/256/33 71/100/33 -f 67/101/33 65/245/33 75/251/33 -f 79/247/33 77/249/33 75/251/33 -f 75/251/33 73/99/33 67/101/33 -f 71/100/33 68/256/33 67/101/33 -f 65/245/33 79/247/33 75/251/33 -f 36/257/34 35/102/34 93/104/34 -f 37/175/35 36/105/35 92/107/35 -f 91/144/36 38/108/36 92/110/36 -f 90/146/37 39/111/37 91/113/37 -f 89/148/38 40/114/38 90/116/38 -f 88/150/39 41/117/39 89/119/39 -f 87/152/40 42/120/40 88/122/40 -f 86/154/42 43/126/42 87/128/42 -f 85/156/43 44/129/43 86/131/43 -f 45/174/44 44/132/44 84/134/44 -f 46/173/45 45/135/45 83/137/45 -f 47/258/46 46/138/46 82/140/46 -f 48/259/47 47/141/47 81/143/47 -f 35/260/63 34/170/63 94/165/63 -f 34/261/64 33/171/64 95/123/64 -f 33/262/65 48/172/65 96/162/65 -f 33/262/66 4/2/66 48/172/66 -f 48/259/67 2/1/67 47/141/67 -f 47/258/68 32/30/68 46/138/68 -f 30/29/69 28/27/69 46/173/69 -f 28/27/70 26/25/70 45/174/70 -f 26/25/71 24/23/71 44/129/71 -f 24/23/72 22/21/72 43/126/72 -f 22/21/73 20/19/73 42/120/73 -f 20/19/74 18/17/74 41/117/74 -f 18/17/75 16/15/75 40/114/75 -f 16/15/76 14/13/76 39/111/76 -f 14/13/77 12/11/77 38/108/77 -f 12/11/78 10/10/78 37/175/78 -f 36/257/79 10/8/79 35/102/79 -f 35/260/80 8/6/80 34/170/80 -f 34/261/81 6/4/81 33/171/81 -f 131/205/82 130/176/82 137/178/82 -f 132/210/83 133/179/83 140/181/83 -f 105/185/84 119/182/84 111/184/84 -f 100/263/33 105/185/33 102/186/33 -f 119/264/33 121/187/33 120/189/33 -f 101/265/85 103/190/85 129/192/85 -f 126/202/86 125/195/86 104/193/86 -f 104/193/86 118/188/86 121/187/86 -f 116/194/86 126/202/86 104/193/86 -f 126/202/98 129/192/98 125/195/98 -f 118/188/88 104/193/88 120/197/88 -f 103/199/88 102/266/88 111/196/88 -f 111/196/88 104/193/88 125/195/88 -f 125/195/88 124/198/88 111/196/88 -f 121/187/89 119/200/89 116/194/89 -f 101/267/89 129/203/89 105/201/89 -f 126/202/89 116/194/89 105/201/89 -f 105/201/89 100/268/89 101/267/89 -f 114/269/33 112/204/33 131/205/33 -f 143/237/90 142/206/90 145/208/90 -f 109/270/33 107/209/33 132/210/33 -f 149/271/85 108/211/85 147/213/85 -f 137/272/33 136/214/33 134/216/33 -f 135/215/91 136/217/91 99/219/91 -f 134/216/92 98/220/92 137/222/92 -f 139/273/33 140/223/33 138/225/33 -f 149/271/93 147/213/93 148/227/93 -f 138/225/94 141/228/94 106/230/94 -f 139/273/95 117/231/95 140/233/95 -f 115/235/92 114/274/92 131/221/92 -f 131/221/92 98/220/92 142/206/92 -f 142/206/92 143/234/92 131/221/92 -f 130/218/91 112/275/91 113/276/91 -f 113/276/91 145/236/91 130/218/91 -f 144/207/91 99/219/91 130/218/91 -f 144/207/96 142/206/96 98/220/96 -f 98/220/96 134/216/96 135/215/96 -f 135/215/96 99/219/96 98/220/96 -f 115/277/85 143/237/85 113/238/85 -f 148/227/97 146/226/97 117/231/97 -f 117/231/97 139/273/97 138/225/97 -f 106/230/97 148/227/97 117/231/97 -f 110/240/95 109/278/95 132/232/95 -f 132/232/95 117/231/95 146/226/95 -f 146/226/95 147/239/95 132/232/95 -f 108/279/94 149/241/94 133/229/94 -f 148/227/94 106/230/94 133/229/94 -f 133/229/94 107/280/94 108/279/94 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 0db8a3682e..206d35e40b 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -3,10 +3,10 @@ "misc.nullChopper": {"category": "player", "sounds": [{"name": "hbm:misc/null", "stream": false}]}, "misc.nullCrashing": {"category": "player", "sounds": [{"name": "hbm:misc/null", "stream": false}]}, "misc.nullMine": {"category": "player", "sounds": [{"name": "hbm:misc/null", "stream": false}]}, + "misc.nullRadar": {"category": "player", "sounds": [{"name": "hbm:misc/null", "stream": false}]}, "block.crateBreak": {"category": "block", "sounds": ["hbm:block/cratebreak1", "hbm:block/cratebreak2", "hbm:block/cratebreak3", "hbm:block/cratebreak4", "hbm:block/cratebreak5"]}, "block.shutdown": {"category": "block", "sounds": [{"name": "hbm:block/shutdown", "stream": false}]}, - "block.minerOperate": {"category": "block", "sounds": [{"name": "hbm:block/minerOperate", "stream": false}]}, "block.assembleroperate": {"category": "block", "sounds": [{"name": "hbm:block/assemblerOperate", "stream": false}]}, "block.fel": {"category": "block", "sounds": [{"name": "hbm:block/fel", "stream": false}]}, "block.chemplantOperate": {"category": "block", "sounds": [{"name": "hbm:block/chemplantOperate", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/mineroperate.ogg b/src/main/resources/assets/hbm/sounds/block/mineroperate.ogg deleted file mode 100644 index c337318ada..0000000000 Binary files a/src/main/resources/assets/hbm/sounds/block/mineroperate.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/gasmask.png b/src/main/resources/assets/hbm/textures/armor/gasmask.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/gasmask.png rename to src/main/resources/assets/hbm/textures/armor/gasmask.png diff --git a/src/main/resources/assets/hbm/textures/armor/goggle_glasses.png b/src/main/resources/assets/hbm/textures/armor/goggle_glasses.png new file mode 100644 index 0000000000..ca53abba94 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/goggle_glasses.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/goggles.png b/src/main/resources/assets/hbm/textures/armor/goggles.png index ca53abba94..2eb6168a3e 100644 Binary files a/src/main/resources/assets/hbm/textures/armor/goggles.png and b/src/main/resources/assets/hbm/textures/armor/goggles.png differ diff --git a/src/main/resources/assets/hbm/textures/models/jetpack.png b/src/main/resources/assets/hbm/textures/armor/jetpack.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jetpack.png rename to src/main/resources/assets/hbm/textures/armor/jetpack.png diff --git a/src/main/resources/assets/hbm/textures/models/jetpack_anim.png b/src/main/resources/assets/hbm/textures/armor/jetpack_anim.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jetpack_anim.png rename to src/main/resources/assets/hbm/textures/armor/jetpack_anim.png diff --git a/src/main/resources/assets/hbm/textures/models/jetpackblue.png b/src/main/resources/assets/hbm/textures/armor/jetpackblue.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jetpackblue.png rename to src/main/resources/assets/hbm/textures/armor/jetpackblue.png diff --git a/src/main/resources/assets/hbm/textures/models/jetpackgreen.png b/src/main/resources/assets/hbm/textures/armor/jetpackgreen.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jetpackgreen.png rename to src/main/resources/assets/hbm/textures/armor/jetpackgreen.png diff --git a/src/main/resources/assets/hbm/textures/models/jetpackred.png b/src/main/resources/assets/hbm/textures/armor/jetpackred.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jetpackred.png rename to src/main/resources/assets/hbm/textures/armor/jetpackred.png diff --git a/src/main/resources/assets/hbm/textures/models/modelhazgrey.png b/src/main/resources/assets/hbm/textures/armor/modelhazgrey.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelhazgrey.png rename to src/main/resources/assets/hbm/textures/armor/modelhazgrey.png diff --git a/src/main/resources/assets/hbm/textures/models/modelhazpaa.png b/src/main/resources/assets/hbm/textures/armor/modelhazpaa.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelhazpaa.png rename to src/main/resources/assets/hbm/textures/armor/modelhazpaa.png diff --git a/src/main/resources/assets/hbm/textures/models/modelhazred.png b/src/main/resources/assets/hbm/textures/armor/modelhazred.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelhazred.png rename to src/main/resources/assets/hbm/textures/armor/modelhazred.png diff --git a/src/main/resources/assets/hbm/textures/models/modelm65.png b/src/main/resources/assets/hbm/textures/armor/modelm65.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelm65.png rename to src/main/resources/assets/hbm/textures/armor/modelm65.png diff --git a/src/main/resources/assets/hbm/textures/models/modelm65blaze.png b/src/main/resources/assets/hbm/textures/armor/modelm65blaze.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelm65blaze.png rename to src/main/resources/assets/hbm/textures/armor/modelm65blaze.png diff --git a/src/main/resources/assets/hbm/textures/models/modelm65mono.png b/src/main/resources/assets/hbm/textures/armor/modelm65mono.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelm65mono.png rename to src/main/resources/assets/hbm/textures/armor/modelm65mono.png diff --git a/src/main/resources/assets/hbm/textures/models/t45boots.png b/src/main/resources/assets/hbm/textures/armor/t45boots.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/t45boots.png rename to src/main/resources/assets/hbm/textures/armor/t45boots.png diff --git a/src/main/resources/assets/hbm/textures/models/t45chest.png b/src/main/resources/assets/hbm/textures/armor/t45chest.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/t45chest.png rename to src/main/resources/assets/hbm/textures/armor/t45chest.png diff --git a/src/main/resources/assets/hbm/textures/models/t45helmet.png b/src/main/resources/assets/hbm/textures/armor/t45helmet.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/t45helmet.png rename to src/main/resources/assets/hbm/textures/armor/t45helmet.png diff --git a/src/main/resources/assets/hbm/textures/models/t45legs.png b/src/main/resources/assets/hbm/textures/armor/t45legs.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/t45legs.png rename to src/main/resources/assets/hbm/textures/armor/t45legs.png diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_concrete.png b/src/main/resources/assets/hbm/textures/blocks/brick_concrete.png index 7aa2586cb5..7deba4f5ec 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_concrete.png and b/src/main/resources/assets/hbm/textures/blocks/brick_concrete.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_broken.png b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_broken.png index bb6e3e8fc7..015ec9cd60 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_broken.png and b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_broken.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_cracked.png b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_cracked.png index 4252a2e477..f3e77c1715 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_cracked.png and b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_cracked.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_marked.png b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_marked.png index 62785225a8..ba4a0a44f3 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_marked.png and b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_marked.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_mossy.png b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_mossy.png index 519ffc51f2..c64e86f960 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_concrete_mossy.png and b/src/main/resources/assets/hbm/textures/blocks/brick_concrete_mossy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_hazard.png b/src/main/resources/assets/hbm/textures/blocks/concrete_hazard.png new file mode 100644 index 0000000000..50ce195a54 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/concrete_hazard.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_0.png new file mode 100644 index 0000000000..7b4d92a07f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_1.png new file mode 100644 index 0000000000..93984491e7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_2.png new file mode 100644 index 0000000000..f61da63ab2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_3.png new file mode 100644 index 0000000000..775ecb4296 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_4.png new file mode 100644 index 0000000000..80acd93012 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_5.png new file mode 100644 index 0000000000..8cd175a383 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_6.png new file mode 100644 index 0000000000..17959187f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/dirt/waste_dirt_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_0.png new file mode 100644 index 0000000000..e7fe6c9048 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_1.png new file mode 100644 index 0000000000..33df74b88f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_2.png new file mode 100644 index 0000000000..a8e25e5cd7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_3.png new file mode 100644 index 0000000000..4eeafbc6d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_4.png new file mode 100644 index 0000000000..c61e1984e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_5.png new file mode 100644 index 0000000000..1dfbe38374 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_6.png new file mode 100644 index 0000000000..305b0b5279 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_side_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_0.png new file mode 100644 index 0000000000..565e4f5ee9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_1.png new file mode 100644 index 0000000000..d901b62fb6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_2.png new file mode 100644 index 0000000000..2282b420f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_3.png new file mode 100644 index 0000000000..de54bb73d2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_4.png new file mode 100644 index 0000000000..f14277b7b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_5.png new file mode 100644 index 0000000000..ff23a84b30 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_6.png new file mode 100644 index 0000000000..3068299351 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass/waste_grass_top_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/desktop.ini b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/desktop.ini new file mode 100644 index 0000000000..a17b9be640 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/desktop.ini @@ -0,0 +1,2 @@ +[LocalizedFileNames] +waste_grass_tall.png=@waste_grass_tall.png,0 diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_grass_tall.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_0.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/waste_grass_tall.png rename to src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_0.png diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_1.png new file mode 100644 index 0000000000..1b5b5e0ab5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_2.png new file mode 100644 index 0000000000..ce9ee274b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_3.png new file mode 100644 index 0000000000..5230f2a232 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_4.png new file mode 100644 index 0000000000..53fd3829e3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_5.png new file mode 100644 index 0000000000..cb54b9c8d2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_6.png new file mode 100644 index 0000000000..cc5e736e15 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/grass_tall/waste_grass_tall_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_0.png new file mode 100644 index 0000000000..c8cbdc9e56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_1.png new file mode 100644 index 0000000000..d0e7a6943d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_2.png new file mode 100644 index 0000000000..a104548308 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_3.png new file mode 100644 index 0000000000..7dac7b8f1a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_4.png new file mode 100644 index 0000000000..4cd04904cc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_5.png new file mode 100644 index 0000000000..ad782228c6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_6.png new file mode 100644 index 0000000000..6709b86cb1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/gravel/waste_gravel_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_mycelium_side.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/waste_mycelium_side.png rename to src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side.png diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_0.png new file mode 100644 index 0000000000..aa247c48e2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_1.png new file mode 100644 index 0000000000..b4c8c9ee0a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_2.png new file mode 100644 index 0000000000..59911e1d8c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_3.png new file mode 100644 index 0000000000..61c713a862 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_4.png new file mode 100644 index 0000000000..fe31d80c41 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_5.png new file mode 100644 index 0000000000..eebdea4ee2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_6.png new file mode 100644 index 0000000000..e9a3e19d21 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_side_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_mycelium_top.png b/src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_top.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/waste_mycelium_top.png rename to src/main/resources/assets/hbm/textures/blocks/contamination/mycelium/waste_mycelium_top.png diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_0.png new file mode 100644 index 0000000000..9cdf2ac243 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_1.png new file mode 100644 index 0000000000..c4eba294a3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_2.png new file mode 100644 index 0000000000..d381bc5719 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_3.png new file mode 100644 index 0000000000..b5c1427c13 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_4.png new file mode 100644 index 0000000000..f2ac011a52 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_5.png new file mode 100644 index 0000000000..988afd3161 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_6.png new file mode 100644 index 0000000000..bcbd098bef Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sand/waste_red_sand_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_0.png new file mode 100644 index 0000000000..bf48e47783 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_1.png new file mode 100644 index 0000000000..f89548d900 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_2.png new file mode 100644 index 0000000000..ab1fdc3630 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_3.png new file mode 100644 index 0000000000..9958f4d98d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_4.png new file mode 100644 index 0000000000..479be9a55b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_5.png new file mode 100644 index 0000000000..60acd4fa5a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_6.png new file mode 100644 index 0000000000..9d03b55bc3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_bottom_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_0.png new file mode 100644 index 0000000000..ae16345d32 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_1.png new file mode 100644 index 0000000000..2f8b9162f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_2.png new file mode 100644 index 0000000000..af5c3dc396 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_3.png new file mode 100644 index 0000000000..82836c9923 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_4.png new file mode 100644 index 0000000000..e0c10ce4ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_5.png new file mode 100644 index 0000000000..a15839c275 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_6.png new file mode 100644 index 0000000000..6162982144 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_normal_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_0.png new file mode 100644 index 0000000000..fb791099b4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_1.png new file mode 100644 index 0000000000..4fcc0fe292 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_2.png new file mode 100644 index 0000000000..e6cfc29fe3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_3.png new file mode 100644 index 0000000000..47e2377eb1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_4.png new file mode 100644 index 0000000000..011e630427 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_5.png new file mode 100644 index 0000000000..85073ecce5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_6.png new file mode 100644 index 0000000000..b035cf8280 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_sandstone/waste_red_sandstone_top_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_0.png new file mode 100644 index 0000000000..ea10923329 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_1.png new file mode 100644 index 0000000000..185b8a79f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_2.png new file mode 100644 index 0000000000..e60640b3ab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_3.png new file mode 100644 index 0000000000..a6c6305915 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_4.png new file mode 100644 index 0000000000..c152335ddb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_5.png new file mode 100644 index 0000000000..856ac570ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_6.png new file mode 100644 index 0000000000..99eb6dc159 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/red_trinitite/waste_trinitite_red_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_0.png new file mode 100644 index 0000000000..fafc9e7ade Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_1.png new file mode 100644 index 0000000000..c0f618b0ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_2.png new file mode 100644 index 0000000000..ca7289f615 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_3.png new file mode 100644 index 0000000000..03704006ea Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_4.png new file mode 100644 index 0000000000..2af85ac330 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_5.png new file mode 100644 index 0000000000..63916efcaf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_6.png new file mode 100644 index 0000000000..65db931b30 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sand/waste_sand_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_0.png new file mode 100644 index 0000000000..337e25f589 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_1.png new file mode 100644 index 0000000000..6abf8466ee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_2.png new file mode 100644 index 0000000000..01dfe95370 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_3.png new file mode 100644 index 0000000000..0d77c20038 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_4.png new file mode 100644 index 0000000000..7b4af140b1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_5.png new file mode 100644 index 0000000000..a6cd7d65ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_6.png new file mode 100644 index 0000000000..8b24759614 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_bottom_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_0.png new file mode 100644 index 0000000000..87a8f4c111 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_1.png new file mode 100644 index 0000000000..5f73d4e253 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_2.png new file mode 100644 index 0000000000..53cc048028 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_3.png new file mode 100644 index 0000000000..2ab5fa5aa0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_4.png new file mode 100644 index 0000000000..bfe16331e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_5.png new file mode 100644 index 0000000000..76ea24ef86 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_6.png new file mode 100644 index 0000000000..43c35abfd9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_normal_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_0.png new file mode 100644 index 0000000000..ba768f8a9a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_1.png new file mode 100644 index 0000000000..9486c2a450 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_2.png new file mode 100644 index 0000000000..0126e493d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_3.png new file mode 100644 index 0000000000..4386222155 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_4.png new file mode 100644 index 0000000000..841e5e7381 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_5.png new file mode 100644 index 0000000000..89dc05e6bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_6.png new file mode 100644 index 0000000000..93932b6306 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sandstone/waste_sandstone_top_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_1.png new file mode 100644 index 0000000000..e68cd27bd9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_2.png new file mode 100644 index 0000000000..83b249e149 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_3.png new file mode 100644 index 0000000000..07f696a77f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_4.png new file mode 100644 index 0000000000..5c3ebe7fa7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_0/sellafield_0_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_1.png new file mode 100644 index 0000000000..d7d368054a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_2.png new file mode 100644 index 0000000000..0288d0e2ed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_3.png new file mode 100644 index 0000000000..4a20fbef37 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_4.png new file mode 100644 index 0000000000..c2bb5f638d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_1/sellafield_1_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_1.png new file mode 100644 index 0000000000..f5c97572b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_2.png new file mode 100644 index 0000000000..05267d110e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_3.png new file mode 100644 index 0000000000..192267e292 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_4.png new file mode 100644 index 0000000000..813b9118b7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_2/sellafield_2_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_1.png new file mode 100644 index 0000000000..8f0289feab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_2.png new file mode 100644 index 0000000000..cad3894329 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_3.png new file mode 100644 index 0000000000..434ebda4a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_4.png new file mode 100644 index 0000000000..bb2ef80172 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_3/sellafield_3_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_1.png new file mode 100644 index 0000000000..7451b7279f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_2.png new file mode 100644 index 0000000000..a07ad53b2e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_3.png new file mode 100644 index 0000000000..50753b1bd1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_4.png new file mode 100644 index 0000000000..b24aa03a45 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_4/sellafield_4_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_1.png new file mode 100644 index 0000000000..b0ebd5d734 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_2.png new file mode 100644 index 0000000000..598ac71ef7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_3.png new file mode 100644 index 0000000000..808d107ae8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_4.png new file mode 100644 index 0000000000..0ed6e4712a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_5/sellafield_5_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_1.png new file mode 100644 index 0000000000..8da08d3ade Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_2.png new file mode 100644 index 0000000000..4589f6d7db Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_3.png new file mode 100644 index 0000000000..4e17bd0895 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_4.png new file mode 100644 index 0000000000..d25790d7fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/sellafield_6/sellafield_6_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_0.png new file mode 100644 index 0000000000..cb1e849afd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_1.png new file mode 100644 index 0000000000..7cb8639dbe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_2.png new file mode 100644 index 0000000000..d1c6480906 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_3.png new file mode 100644 index 0000000000..1c7b9c5a93 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_4.png new file mode 100644 index 0000000000..bf572335d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_5.png new file mode 100644 index 0000000000..0a27729266 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_6.png new file mode 100644 index 0000000000..043bce5a89 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/terracotta/waste_terracotta_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_0.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_0.png new file mode 100644 index 0000000000..77252d20f6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_1.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_1.png new file mode 100644 index 0000000000..8b7c9355f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_2.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_2.png new file mode 100644 index 0000000000..b8005e4b84 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_3.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_3.png new file mode 100644 index 0000000000..d9a4c7bb0d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_4.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_4.png new file mode 100644 index 0000000000..4f4210a8e1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_5.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_5.png new file mode 100644 index 0000000000..05d10dfc10 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_6.png b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_6.png new file mode 100644 index 0000000000..11a41a776a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/contamination/trinitite/waste_trinitite_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/coolant_duct.png b/src/main/resources/assets/hbm/textures/blocks/coolant_duct.png deleted file mode 100644 index d7ba4a2dec..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/coolant_duct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/coolant_duct_icon.png b/src/main/resources/assets/hbm/textures/blocks/coolant_duct_icon.png deleted file mode 100644 index bbade3f2bb..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/coolant_duct_icon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/coolant_duct_solid.png b/src/main/resources/assets/hbm/textures/blocks/coolant_duct_solid.png deleted file mode 100644 index a08eca7582..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/coolant_duct_solid.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/det_bale.png b/src/main/resources/assets/hbm/textures/blocks/det_bale.png new file mode 100644 index 0000000000..b09d74a432 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/det_bale.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/det_bale_top.png b/src/main/resources/assets/hbm/textures/blocks/det_bale_top.png new file mode 100644 index 0000000000..58f7f429d4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/det_bale_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/det_n2.png b/src/main/resources/assets/hbm/textures/blocks/det_n2.png new file mode 100644 index 0000000000..f97af46af4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/det_n2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/det_n2_top.png b/src/main/resources/assets/hbm/textures/blocks/det_n2_top.png new file mode 100644 index 0000000000..6df0d1d29d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/det_n2_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/difurnace_front_on.png b/src/main/resources/assets/hbm/textures/blocks/difurnace_front_on.png index 05f191b71a..6d25157221 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/difurnace_front_on.png and b/src/main/resources/assets/hbm/textures/blocks/difurnace_front_on.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_duct_alt.png b/src/main/resources/assets/hbm/textures/blocks/fluid_duct_alt.png deleted file mode 100644 index a5adf55545..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fluid_duct_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png index bd50c93cf0..cee09fc5f7 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png and b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png.mcmeta index 8e55e43baf..0645f48c62 100644 --- a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png.mcmeta +++ b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing.png.mcmeta @@ -1,5 +1,5 @@ { "animation": { - "frametime": 3 + "frametime": 2 } } diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png deleted file mode 100644 index 4c19d9fa86..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png.mcmeta deleted file mode 100644 index 8e55e43baf..0000000000 --- a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_flowing_e.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 3 - } -} diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png index e34c11b049..bf27b534c4 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png and b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png.mcmeta index 7ceb363941..b84e69f2c5 100644 --- a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png.mcmeta +++ b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still.png.mcmeta @@ -1,45 +1,5 @@ { "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 18, - 17, - 16, - 15, - 14, - 13, - 12, - 11, - 10, - 9, - 8, - 7, - 6, - 5, - 4, - 3, - 2, - 1 - ] + "frametime": 4 } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png deleted file mode 100644 index 73955dc29d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png.mcmeta deleted file mode 100644 index 7ceb363941..0000000000 --- a/src/main/resources/assets/hbm/textures/blocks/forgefluid/toxic_still_e.png.mcmeta +++ /dev/null @@ -1,45 +0,0 @@ -{ - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 18, - 17, - 16, - 15, - 14, - 13, - 12, - 11, - 10, - 9, - 8, - 7, - 6, - 5, - 4, - 3, - 2, - 1 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/gas_duct.png b/src/main/resources/assets/hbm/textures/blocks/gas_duct.png deleted file mode 100644 index 61c88729bd..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/gas_duct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/gas_duct_icon.png b/src/main/resources/assets/hbm/textures/blocks/gas_duct_icon.png deleted file mode 100644 index 53b818e5a0..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/gas_duct_icon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/gas_duct_solid.png b/src/main/resources/assets/hbm/textures/blocks/gas_duct_solid.png deleted file mode 100644 index 37c1b23971..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/gas_duct_solid.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct.png deleted file mode 100644 index 791308a5a2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct_alt.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct_alt.png deleted file mode 100644 index ebbb4dbcda..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon.png deleted file mode 100644 index b891092c97..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon_alt.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon_alt.png deleted file mode 100644 index ac329f5a5a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct_icon_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid.png deleted file mode 100644 index d8c218fa76..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid_alt.png b/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid_alt.png deleted file mode 100644 index 84a994b91d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/oil_duct_solid_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/railgun_plasma.png b/src/main/resources/assets/hbm/textures/blocks/railgun_plasma.png deleted file mode 100644 index 6aa0e1545f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/railgun_plasma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png index ec2d38d72b..2f1a9ee88c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank.png index 33c4f00423..367f4144c4 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler.png index 7b1a9ddcf5..1a6b034cc7 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control.png index 921051099b..9114ae1b41 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png index 124161c6c6..9256117c16 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png index ad90114809..2bdd15615d 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png index ad6590336a..ba7c3546ff 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element.png index 35e6b2b2fb..f65eec643a 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_colorable.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_colorable.png index d01da71f83..d4bb0fb231 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_colorable.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_colorable.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_fuelchunk.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_fuelchunk.png index 30ce8e37a3..68161e85de 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_fuelchunk.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_fuelchunk.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png index 5e08e41a9c..57a107d404 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim.png index 0fcaea8618..667039c19c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png index 15005d3ea2..c3545061c8 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater.png index 3b1a22ae45..c6b9c3996d 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator.png index 903b69ce0d..b84bb852a0 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser.png index 09c245323d..8e9c7564cf 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector.png index 4a20c356ec..a5bcf473e9 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod.png index 3baf5dc5a6..e45151be35 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_mod.png index 5e08e41a9c..57a107d404 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_mod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_mod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim.png index 0fcaea8618..667039c19c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim_mod.png index 15005d3ea2..c3545061c8 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim_mod.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_rod_reasim_mod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage.png index 2b5ae1bfda..3edf583454 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage.png and b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/red_cable_gauge_front.png b/src/main/resources/assets/hbm/textures/blocks/red_cable_gauge_front.png new file mode 100644 index 0000000000..4c07a8476b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/red_cable_gauge_front.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_0.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_0.png deleted file mode 100644 index e77c2edcea..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_1.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_1.png deleted file mode 100644 index 249b59c533..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_2.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_2.png deleted file mode 100644 index d1fd4ab0ec..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_3.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_3.png deleted file mode 100644 index fa7e5bb65f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_4.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_4.png deleted file mode 100644 index cf324ce424..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_core.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_core.png deleted file mode 100644 index 048fa50a00..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_core.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked.png deleted file mode 100644 index 816cc6c9be..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/vault_door.png b/src/main/resources/assets/hbm/textures/blocks/vault_door.png deleted file mode 100644 index 65c281c12b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/vault_door.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_earth_bottom.png b/src/main/resources/assets/hbm/textures/blocks/waste_earth_bottom.png deleted file mode 100644 index 36022db1ea..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_earth_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_earth_side.png b/src/main/resources/assets/hbm/textures/blocks/waste_earth_side.png deleted file mode 100644 index eabad09e5a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_earth_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_earth_top.png b/src/main/resources/assets/hbm/textures/blocks/waste_earth_top.png deleted file mode 100644 index 625f45be7b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_earth_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_grass_side.png b/src/main/resources/assets/hbm/textures/blocks/waste_grass_side.png deleted file mode 100644 index 080b3c4260..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_grass_top.png b/src/main/resources/assets/hbm/textures/blocks/waste_grass_top.png deleted file mode 100644 index 5718e7c188..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.png deleted file mode 100644 index f598573f4e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.png deleted file mode 100644 index dd146a8b34..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/blaze.png b/src/main/resources/assets/hbm/textures/entity/blaze.png deleted file mode 100644 index 19cdbb597d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/blaze.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/machine_fensu.png b/src/main/resources/assets/hbm/textures/entity/machine_fensu.png deleted file mode 100644 index 20cdb24f74..0000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/machine_fensu.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/machine_large_turbine.png b/src/main/resources/assets/hbm/textures/entity/machine_large_turbine.png deleted file mode 100644 index afd5da6049..0000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/machine_large_turbine.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ore_nether_uranium_scorched.png b/src/main/resources/assets/hbm/textures/entity/ore_nether_uranium_scorched.png deleted file mode 100644 index 30d2cd06bd..0000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ore_nether_uranium_scorched.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ore_uranium_scorched.png b/src/main/resources/assets/hbm/textures/entity/ore_uranium_scorched.png deleted file mode 100644 index 765ec2ad74..0000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ore_uranium_scorched.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/base-energy.png b/src/main/resources/assets/hbm/textures/gui/base-energy.png deleted file mode 100644 index e1004b712e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/base-energy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/bobmazon.png b/src/main/resources/assets/hbm/textures/gui/bobmazon.png index e2c82bf949..6afde62891 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/bobmazon.png and b/src/main/resources/assets/hbm/textures/gui/bobmazon.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/bombgenericlarge.png b/src/main/resources/assets/hbm/textures/gui/bombgenericlarge.png deleted file mode 100644 index 72f292efd4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/bombgenericlarge.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/control_panel/placement_grid.png b/src/main/resources/assets/hbm/textures/gui/control_panel/placement_grid.png new file mode 100644 index 0000000000..1bd4428e8c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/control_panel/placement_grid.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids.png b/src/main/resources/assets/hbm/textures/gui/fluids.png deleted file mode 100644 index cbf76299db..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids1.png b/src/main/resources/assets/hbm/textures/gui/fluids1.png deleted file mode 100644 index 1b56d122e5..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids2.png b/src/main/resources/assets/hbm/textures/gui/fluids2.png deleted file mode 100644 index a63500e11f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_bobmazon.png b/src/main/resources/assets/hbm/textures/gui/gui_bobmazon.png index 63202a5e2c..33890326ae 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_bobmazon.png and b/src/main/resources/assets/hbm/textures/gui/gui_bobmazon.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_n45.png b/src/main/resources/assets/hbm/textures/gui/gui_n45.png deleted file mode 100644 index f999eff934..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_n45.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/lava_still.png b/src/main/resources/assets/hbm/textures/gui/lava_still.png deleted file mode 100644 index 78bb29d5c3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/lava_still.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/lilboyschematic.png b/src/main/resources/assets/hbm/textures/gui/lilboyschematic.png index 9a3ce00267..5306064050 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/lilboyschematic.png and b/src/main/resources/assets/hbm/textures/gui/lilboyschematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_mining_drill.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_mining_drill.png deleted file mode 100644 index a28470173b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_mining_drill.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ball_resin.png b/src/main/resources/assets/hbm/textures/items/ball_resin.png new file mode 100644 index 0000000000..5c4657a999 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ball_resin.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png new file mode 100644 index 0000000000..e37d452d83 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png.mcmeta b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png.mcmeta new file mode 100644 index 0000000000..929e962c4b --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium.png.mcmeta @@ -0,0 +1,5 @@ +{ +"animation": { + "frametime": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png new file mode 100644 index 0000000000..03c6b997a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png.mcmeta b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png.mcmeta new file mode 100644 index 0000000000..929e962c4b --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/battery_sc_electronium_e.png.mcmeta @@ -0,0 +1,5 @@ +{ +"animation": { + "frametime": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium.png index f51c4ef7bb..55b08bbac6 100644 Binary files a/src/main/resources/assets/hbm/textures/items/battery_schrabidium.png and b/src/main/resources/assets/hbm/textures/items/battery_schrabidium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png index d9e92ed007..96af24f72e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png and b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_2.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_2.png index b0db61103a..ab884158d2 100644 Binary files a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_2.png and b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png index b35ac68822..fe84f7e26e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png and b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_new.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_new.png deleted file mode 100644 index 46d944174a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/hs-2.png b/src/main/resources/assets/hbm/textures/items/hs-2.png deleted file mode 100644 index d589b83e96..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/hs-2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png new file mode 100644 index 0000000000..7094fdeffd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_n2.png b/src/main/resources/assets/hbm/textures/items/missile_n2.png new file mode 100644 index 0000000000..2f020cce80 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_n2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/n2_charge.png b/src/main/resources/assets/hbm/textures/items/n2_charge.png index 5360e488f9..3248bb0ad1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/n2_charge.png and b/src/main/resources/assets/hbm/textures/items/n2_charge.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_mercury.png b/src/main/resources/assets/hbm/textures/items/nugget_mercury.png index 0e76b115f4..d309c9d884 100644 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_mercury.png and b/src/main/resources/assets/hbm/textures/items/nugget_mercury.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pocket_ptsd.png b/src/main/resources/assets/hbm/textures/items/pocket_ptsd.png new file mode 100644 index 0000000000..fd9bce7370 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pocket_ptsd.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_at209_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_at209_tiny.png new file mode 100644 index 0000000000..28f40f6b55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_at209_tiny.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_au198_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_au198_tiny.png new file mode 100644 index 0000000000..5c8b8710c5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_au198_tiny.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_cs137_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_cs137_tiny.png index da639f693f..fc1afa1564 100644 Binary files a/src/main/resources/assets/hbm/textures/items/powder_cs137_tiny.png and b/src/main/resources/assets/hbm/textures/items/powder_cs137_tiny.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_pb209_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_pb209_tiny.png new file mode 100644 index 0000000000..59b4dc3616 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_pb209_tiny.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_radspice_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_radspice_tiny.png new file mode 100644 index 0000000000..a9f1701162 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_radspice_tiny.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_unobtainium.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_unobtainium.png index 1b684f0cc5..9579f311b6 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_unobtainium.png and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_unobtainium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin0.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin0.png new file mode 100644 index 0000000000..725cb265dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin0.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin1.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin1.png new file mode 100644 index 0000000000..49ca38332e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin2.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin2.png new file mode 100644 index 0000000000..bfe06c0357 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_window_skin2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png deleted file mode 100644 index ee64287d35..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_n2.png b/src/main/resources/assets/hbm/textures/items/warhead_n2.png new file mode 100644 index 0000000000..d3c8902d77 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/warhead_n2.png differ diff --git a/src/main/resources/assets/hbm/textures/misc/sat_bobmazon.png b/src/main/resources/assets/hbm/textures/misc/sat_bobmazon.png index 4621deb874..d09f389374 100644 Binary files a/src/main/resources/assets/hbm/textures/misc/sat_bobmazon.png and b/src/main/resources/assets/hbm/textures/misc/sat_bobmazon.png differ 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 893349770f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/at4new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bale.png b/src/main/resources/assets/hbm/textures/models/bale.png deleted file mode 100644 index 908a0480f7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/bale.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt.png b/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt.png deleted file mode 100644 index 11bf136444..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt_alt.png b/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt_alt.png deleted file mode 100644 index 1b7ab1d464..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/blast_door_tooth_alt_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bombletthetatexture.png b/src/main/resources/assets/hbm/textures/models/bombletthetatexture.png deleted file mode 100644 index e4f809d0d4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/bombletthetatexture.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bombletzetatexture.png b/src/main/resources/assets/hbm/textures/models/bombletzetatexture.png deleted file mode 100644 index 5e196136a9..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/bombletzetatexture.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/balefirecrashed.png b/src/main/resources/assets/hbm/textures/models/bombs/balefirecrashed.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/balefirecrashed.png rename to src/main/resources/assets/hbm/textures/models/bombs/balefirecrashed.png diff --git a/src/main/resources/assets/hbm/textures/models/balefirecrashed_e.png b/src/main/resources/assets/hbm/textures/models/bombs/balefirecrashed_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/balefirecrashed_e.png rename to src/main/resources/assets/hbm/textures/models/bombs/balefirecrashed_e.png diff --git a/src/main/resources/assets/hbm/textures/models/bombgeneric.png b/src/main/resources/assets/hbm/textures/models/bombs/bombgeneric.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bombgeneric.png rename to src/main/resources/assets/hbm/textures/models/bombs/bombgeneric.png diff --git a/src/main/resources/assets/hbm/textures/models/customnuke.png b/src/main/resources/assets/hbm/textures/models/bombs/customnuke.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/customnuke.png rename to src/main/resources/assets/hbm/textures/models/bombs/customnuke.png diff --git a/src/main/resources/assets/hbm/textures/models/fatman.png b/src/main/resources/assets/hbm/textures/models/bombs/fatman.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/fatman.png rename to src/main/resources/assets/hbm/textures/models/bombs/fatman.png diff --git a/src/main/resources/assets/hbm/textures/models/fleija.png b/src/main/resources/assets/hbm/textures/models/bombs/fleija.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/fleija.png rename to src/main/resources/assets/hbm/textures/models/bombs/fleija.png diff --git a/src/main/resources/assets/hbm/textures/models/bombs/gadget.png b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png new file mode 100644 index 0000000000..684d42e4b3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png differ diff --git a/src/main/resources/assets/hbm/textures/models/ivymike.png b/src/main/resources/assets/hbm/textures/models/bombs/ivymike.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/ivymike.png rename to src/main/resources/assets/hbm/textures/models/bombs/ivymike.png diff --git a/src/main/resources/assets/hbm/textures/models/lilboy.png b/src/main/resources/assets/hbm/textures/models/bombs/lilboy.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/lilboy.png rename to src/main/resources/assets/hbm/textures/models/bombs/lilboy.png diff --git a/src/main/resources/assets/hbm/textures/models/prototype.png b/src/main/resources/assets/hbm/textures/models/bombs/prototype.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/prototype.png rename to src/main/resources/assets/hbm/textures/models/bombs/prototype.png diff --git a/src/main/resources/assets/hbm/textures/models/prototype_e.png b/src/main/resources/assets/hbm/textures/models/bombs/prototype_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/prototype_e.png rename to src/main/resources/assets/hbm/textures/models/bombs/prototype_e.png diff --git a/src/main/resources/assets/hbm/textures/models/bombs/tsar.png b/src/main/resources/assets/hbm/textures/models/bombs/tsar.png new file mode 100644 index 0000000000..479e5c44b1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/tsar.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tsarbomba.png b/src/main/resources/assets/hbm/textures/models/bombs/tsarbomba.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tsarbomba.png rename to src/main/resources/assets/hbm/textures/models/bombs/tsarbomba.png diff --git a/src/main/resources/assets/hbm/textures/models/boxcar_base.png b/src/main/resources/assets/hbm/textures/models/boxcar_base.png deleted file mode 100644 index 0c2ad3400f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/boxcar_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/boxcar_painted.png b/src/main/resources/assets/hbm/textures/models/boxcar_painted.png deleted file mode 100644 index 4675809793..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/boxcar_painted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/brimstone.png b/src/main/resources/assets/hbm/textures/models/brimstone.png deleted file mode 100644 index 45fa84d7d4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/brimstone.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capeayy.png b/src/main/resources/assets/hbm/textures/models/capeayy.png deleted file mode 100644 index cc7354999d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capeayy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capedafnik.png b/src/main/resources/assets/hbm/textures/models/capedafnik.png deleted file mode 100644 index 50ba68d179..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capedafnik.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capegasmask.png b/src/main/resources/assets/hbm/textures/models/capegasmask.png deleted file mode 100644 index 6b7d44edc7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capegasmask.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehbm.png b/src/main/resources/assets/hbm/textures/models/capehbm.png deleted file mode 100644 index 3a189322ff..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehbm.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehbm2.png b/src/main/resources/assets/hbm/textures/models/capehbm2.png deleted file mode 100644 index 05f01b2426..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehbm2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehbm_old.png b/src/main/resources/assets/hbm/textures/models/capehbm_old.png deleted file mode 100644 index a53d49dc10..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehbm_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehoboy.png b/src/main/resources/assets/hbm/textures/models/capehoboy.png deleted file mode 100644 index 74dc8a966d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehoboy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehoboy_mk1.png b/src/main/resources/assets/hbm/textures/models/capehoboy_mk1.png deleted file mode 100644 index 18d58d931c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehoboy_mk1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capehoboy_mk2.png b/src/main/resources/assets/hbm/textures/models/capehoboy_mk2.png deleted file mode 100644 index c434cb8bfa..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capehoboy_mk2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capelpkukin.png b/src/main/resources/assets/hbm/textures/models/capelpkukin.png deleted file mode 100644 index 12b4486223..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capelpkukin.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capemaster.png b/src/main/resources/assets/hbm/textures/models/capemaster.png deleted file mode 100644 index 24817c30b3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capemaster.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capemek.png b/src/main/resources/assets/hbm/textures/models/capemek.png deleted file mode 100644 index e2cac92024..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capemek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capenostalgia.png b/src/main/resources/assets/hbm/textures/models/capenostalgia.png deleted file mode 100644 index db3a4b9aec..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capenostalgia.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capenostalgia2.png b/src/main/resources/assets/hbm/textures/models/capenostalgia2.png deleted file mode 100644 index 432f29cb87..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capenostalgia2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/caperadiation.png b/src/main/resources/assets/hbm/textures/models/caperadiation.png deleted file mode 100644 index 2673f26394..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/caperadiation.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capered.png b/src/main/resources/assets/hbm/textures/models/capered.png deleted file mode 100644 index bfdb63ef05..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capered.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capered_old.png b/src/main/resources/assets/hbm/textures/models/capered_old.png deleted file mode 100644 index a91fdab4ce..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capered_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capehbm3.png b/src/main/resources/assets/hbm/textures/models/capes/capehbm3.png deleted file mode 100644 index aa5f751b39..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capehbm3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capehbm_old.png b/src/main/resources/assets/hbm/textures/models/capes/capehbm_old.png deleted file mode 100644 index a53d49dc10..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capehbm_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk1.png b/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk1.png deleted file mode 100644 index 18d58d931c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk2.png b/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk2.png deleted file mode 100644 index c434cb8bfa..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capehoboy_mk2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capejame.png b/src/main/resources/assets/hbm/textures/models/capes/capejame.png new file mode 100644 index 0000000000..4a7615d18d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/capes/capejame.png differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capelpkukin.png b/src/main/resources/assets/hbm/textures/models/capes/capelpkukin.png deleted file mode 100644 index 12b4486223..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capelpkukin.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capenostalgia2.png b/src/main/resources/assets/hbm/textures/models/capes/capenostalgia2.png deleted file mode 100644 index 432f29cb87..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capenostalgia2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capered_old.png b/src/main/resources/assets/hbm/textures/models/capes/capered_old.png deleted file mode 100644 index a91fdab4ce..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capered_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capeschrabby.png b/src/main/resources/assets/hbm/textures/models/capes/capeschrabby.png deleted file mode 100644 index 578d8cfc42..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capeschrabby.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capeschrabbyalt.png b/src/main/resources/assets/hbm/textures/models/capes/capeschrabbyalt.png deleted file mode 100644 index 43ba4bb00d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capeschrabbyalt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capetemplate.png b/src/main/resources/assets/hbm/textures/models/capes/capetemplate.png deleted file mode 100644 index 28b80b5684..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capetemplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capevertice.png b/src/main/resources/assets/hbm/textures/models/capes/capevertice.png deleted file mode 100644 index f8cb2c786f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capevertice.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/capezippysqrl.png b/src/main/resources/assets/hbm/textures/models/capes/capezippysqrl.png deleted file mode 100644 index 4d38074b9b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/capezippysqrl.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capesam.png b/src/main/resources/assets/hbm/textures/models/capesam.png deleted file mode 100644 index 015caf0988..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capesam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capeschrabidium.png b/src/main/resources/assets/hbm/textures/models/capeschrabidium.png deleted file mode 100644 index d785a26089..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capeschrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capeshield.png b/src/main/resources/assets/hbm/textures/models/capeshield.png deleted file mode 100644 index 54013ea37a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capeshield.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capetemplate.png b/src/main/resources/assets/hbm/textures/models/capetemplate.png deleted file mode 100644 index 28b80b5684..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capetemplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capetest.png b/src/main/resources/assets/hbm/textures/models/capetest.png deleted file mode 100644 index a2d0f284b6..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capetest.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capeunknown.png b/src/main/resources/assets/hbm/textures/models/capeunknown.png deleted file mode 100644 index 94efc81c23..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capeunknown.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capevertice.png b/src/main/resources/assets/hbm/textures/models/capevertice.png deleted file mode 100644 index f8cb2c786f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capevertice.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capevertice_2.png b/src/main/resources/assets/hbm/textures/models/capevertice_2.png deleted file mode 100644 index 7776b09714..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capevertice_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelbroadcaster.png b/src/main/resources/assets/hbm/textures/models/deco/modelbroadcaster.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelbroadcaster.png rename to src/main/resources/assets/hbm/textures/models/deco/modelbroadcaster.png diff --git a/src/main/resources/assets/hbm/textures/models/modelbroadcaster_e.png b/src/main/resources/assets/hbm/textures/models/deco/modelbroadcaster_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelbroadcaster_e.png rename to src/main/resources/assets/hbm/textures/models/deco/modelbroadcaster_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modelradioreceiver.png b/src/main/resources/assets/hbm/textures/models/deco/modelradioreceiver.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelradioreceiver.png rename to src/main/resources/assets/hbm/textures/models/deco/modelradioreceiver.png diff --git a/src/main/resources/assets/hbm/textures/models/modelradioreceiver_e.png b/src/main/resources/assets/hbm/textures/models/deco/modelradioreceiver_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelradioreceiver_e.png rename to src/main/resources/assets/hbm/textures/models/deco/modelradioreceiver_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modeltaperecorder.png b/src/main/resources/assets/hbm/textures/models/deco/modeltaperecorder.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeltaperecorder.png rename to src/main/resources/assets/hbm/textures/models/deco/modeltaperecorder.png diff --git a/src/main/resources/assets/hbm/textures/models/poles.png b/src/main/resources/assets/hbm/textures/models/deco/poles.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/poles.png rename to src/main/resources/assets/hbm/textures/models/deco/poles.png diff --git a/src/main/resources/assets/hbm/textures/models/polesatellitereceiver.png b/src/main/resources/assets/hbm/textures/models/deco/polesatellitereceiver.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/polesatellitereceiver.png rename to src/main/resources/assets/hbm/textures/models/deco/polesatellitereceiver.png diff --git a/src/main/resources/assets/hbm/textures/models/poletop.png b/src/main/resources/assets/hbm/textures/models/deco/poletop.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/poletop.png rename to src/main/resources/assets/hbm/textures/models/deco/poletop.png diff --git a/src/main/resources/assets/hbm/textures/models/steelbeam.png b/src/main/resources/assets/hbm/textures/models/deco/steelbeam.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/steelbeam.png rename to src/main/resources/assets/hbm/textures/models/deco/steelbeam.png diff --git a/src/main/resources/assets/hbm/textures/models/steelcorner.png b/src/main/resources/assets/hbm/textures/models/deco/steelcorner.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/steelcorner.png rename to src/main/resources/assets/hbm/textures/models/deco/steelcorner.png diff --git a/src/main/resources/assets/hbm/textures/models/steelroof.png b/src/main/resources/assets/hbm/textures/models/deco/steelroof.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/steelroof.png rename to src/main/resources/assets/hbm/textures/models/deco/steelroof.png diff --git a/src/main/resources/assets/hbm/textures/models/steelscaffold.png b/src/main/resources/assets/hbm/textures/models/deco/steelscaffold.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/steelscaffold.png rename to src/main/resources/assets/hbm/textures/models/deco/steelscaffold.png diff --git a/src/main/resources/assets/hbm/textures/models/steelwall.png b/src/main/resources/assets/hbm/textures/models/deco/steelwall.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/steelwall.png rename to src/main/resources/assets/hbm/textures/models/deco/steelwall.png diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_base.png b/src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blast_door_base.png rename to src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_base.png diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_block.png b/src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_block.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blast_door_block.png rename to src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_block.png diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_slider.png b/src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_slider.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blast_door_slider.png rename to src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_slider.png diff --git a/src/main/resources/assets/hbm/textures/models/blast_door_tooth.png b/src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_tooth.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blast_door_tooth.png rename to src/main/resources/assets/hbm/textures/models/doors/blast/blast_door_tooth.png diff --git a/src/main/resources/assets/hbm/textures/models/doors/hatch.png b/src/main/resources/assets/hbm/textures/models/doors/hatch.png index 9a6ae02a99..8e57a6c2c7 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/hatch.png and b/src/main/resources/assets/hbm/textures/models/doors/hatch.png differ diff --git a/src/main/resources/assets/hbm/textures/models/hatchtexture.png b/src/main/resources/assets/hbm/textures/models/doors/hatchtexture.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/hatchtexture.png rename to src/main/resources/assets/hbm/textures/models/doors/hatchtexture.png diff --git a/src/main/resources/assets/hbm/textures/models/keypad.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/keypad.png rename to src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad.png diff --git a/src/main/resources/assets/hbm/textures/models/keypad_error.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad_error.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/keypad_error.png rename to src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad_error.png diff --git a/src/main/resources/assets/hbm/textures/models/keypad_success.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad_success.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/keypad_success.png rename to src/main/resources/assets/hbm/textures/models/doors/slidingblast/keypad_success.png diff --git a/src/main/resources/assets/hbm/textures/models/sliding_blast_door.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sliding_blast_door.png rename to src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door.png diff --git a/src/main/resources/assets/hbm/textures/models/sliding_blast_door_keypad.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_keypad.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sliding_blast_door_keypad.png rename to src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_keypad.png diff --git a/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant1.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant1.png new file mode 100644 index 0000000000..6fe28536d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant1.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant2.png b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant2.png new file mode 100644 index 0000000000..0f69cd824e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/slidingblast/sliding_blast_door_variant2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/vault_cog_1.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_1.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_cog_1.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_1.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_cog_2.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_2.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_cog_2.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_2.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_cog_3.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_3.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_cog_3.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_3.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_cog_4.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_4.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_cog_4.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_cog_4.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_frame.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_frame.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_frame.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_frame.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_frame_old.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_frame_old.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_frame_old.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_frame_old.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_1.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_1.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_1.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_1.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_2.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_2.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_2.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_2.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_3.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_3.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_3.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_3.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_4.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_4.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_4.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_4.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_5.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_5.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_5.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_5.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_6.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_6.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_6.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_6.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_7.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_7.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_7.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_7.png diff --git a/src/main/resources/assets/hbm/textures/models/vault_label_8.png b/src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_8.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/vault_label_8.png rename to src/main/resources/assets/hbm/textures/models/doors/vault/vault_label_8.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_base.png b/src/main/resources/assets/hbm/textures/models/dornier_base.png deleted file mode 100644 index 24a99d9540..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/dornier_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ducc_st_engineer.png b/src/main/resources/assets/hbm/textures/models/ducc_st_engineer.png deleted file mode 100644 index 2b838516aa..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ducc_st_engineer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_0.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_0.png deleted file mode 100644 index 1a8bb3b147..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_1.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_1.png deleted file mode 100644 index 6025dcda44..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_10.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_10.png deleted file mode 100644 index 1a01546a5c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_10.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_2.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_2.png deleted file mode 100644 index c4b25b6f0e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_3.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_3.png deleted file mode 100644 index 04b52b194f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_4.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_4.png deleted file mode 100644 index 40bcf88119..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_5.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_5.png deleted file mode 100644 index a3943a5bd7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_6.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_6.png deleted file mode 100644 index ce99dc5d37..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_7.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_7.png deleted file mode 100644 index 2f9e3daca2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_8.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_8.png deleted file mode 100644 index c785499865..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_9.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_9.png deleted file mode 100644 index cf036de513..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire/balefire_9.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_0.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_0.png deleted file mode 100644 index 1a8bb3b147..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_1.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_1.png deleted file mode 100644 index 8a1166ac24..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_10.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_10.png deleted file mode 100644 index a1c4ab7591..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_10.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_2.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_2.png deleted file mode 100644 index c6649c95eb..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_3.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_3.png deleted file mode 100644 index b5523edb24..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_4.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_4.png deleted file mode 100644 index a0515385be..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_5.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_5.png deleted file mode 100644 index a2caad594d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_6.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_6.png deleted file mode 100644 index 3bfc31860f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_7.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_7.png deleted file mode 100644 index 3dfa2ad324..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_8.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_8.png deleted file mode 100644 index 20ac1bb7f6..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_9.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_9.png deleted file mode 100644 index 1240b2b8bf..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire_lightmap/balefire_9.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/blackhole.png b/src/main/resources/assets/hbm/textures/models/explosion/blackhole.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blackhole.png rename to src/main/resources/assets/hbm/textures/models/explosion/blackhole.png diff --git a/src/main/resources/assets/hbm/textures/models/blastfleija.png b/src/main/resources/assets/hbm/textures/models/explosion/blastfleija.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blastfleija.png rename to src/main/resources/assets/hbm/textures/models/explosion/blastfleija.png diff --git a/src/main/resources/assets/hbm/textures/models/blastsolinium.png b/src/main/resources/assets/hbm/textures/models/explosion/blastsolinium.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/blastsolinium.png rename to src/main/resources/assets/hbm/textures/models/explosion/blastsolinium.png diff --git a/src/main/resources/assets/hbm/textures/models/explosion/desktop.ini b/src/main/resources/assets/hbm/textures/models/explosion/desktop.ini new file mode 100644 index 0000000000..163d567502 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/models/explosion/desktop.ini @@ -0,0 +1,4 @@ +[LocalizedFileNames] +tom_flame.png=@tom_flame.png,0 +tom_flame_o.png=@tom_flame_o.png,0 +tom_main.png=@tom_main.png,0 diff --git a/src/main/resources/assets/hbm/textures/models/empblast.png b/src/main/resources/assets/hbm/textures/models/explosion/empblast.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/empblast.png rename to src/main/resources/assets/hbm/textures/models/explosion/empblast.png diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_0.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_0.png deleted file mode 100644 index a14b7dda56..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_1.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_1.png deleted file mode 100644 index 2f0893bc39..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_10.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_10.png deleted file mode 100644 index aa78948979..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_10.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_2.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_2.png deleted file mode 100644 index a891467d48..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_3.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_3.png deleted file mode 100644 index a81faac38b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_4.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_4.png deleted file mode 100644 index d3235d7c59..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_5.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_5.png deleted file mode 100644 index 19cc285e50..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_6.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_6.png deleted file mode 100644 index 8547a87525..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_7.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_7.png deleted file mode 100644 index 24bbf1f89e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_8.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_8.png deleted file mode 100644 index 768b855caa..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_9.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_9.png deleted file mode 100644 index 05c6d0bd39..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball/fireball_9.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_0.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_0.png deleted file mode 100644 index a14b7dda56..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_1.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_1.png deleted file mode 100644 index d516d29854..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_10.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_10.png deleted file mode 100644 index c7e6103b14..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_10.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_2.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_2.png deleted file mode 100644 index ef41c65ed4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_3.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_3.png deleted file mode 100644 index 30a72f04d4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_4.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_4.png deleted file mode 100644 index 414d3abbd1..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_5.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_5.png deleted file mode 100644 index 730f8050c2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_6.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_6.png deleted file mode 100644 index 9e3e2d900e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_7.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_7.png deleted file mode 100644 index 284f1b6fa9..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_8.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_8.png deleted file mode 100644 index eb7909eaa3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_9.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_9.png deleted file mode 100644 index cc9a67a11e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball_lightmap/fireball_9.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_ap.png b/src/main/resources/assets/hbm/textures/models/explosion/mine_ap.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mine_ap.png rename to src/main/resources/assets/hbm/textures/models/explosion/mine_ap.png diff --git a/src/main/resources/assets/hbm/textures/models/mine_fat.png b/src/main/resources/assets/hbm/textures/models/explosion/mine_fat.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mine_fat.png rename to src/main/resources/assets/hbm/textures/models/explosion/mine_fat.png diff --git a/src/main/resources/assets/hbm/textures/models/mine_fat_e.png b/src/main/resources/assets/hbm/textures/models/explosion/mine_fat_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mine_fat_e.png rename to src/main/resources/assets/hbm/textures/models/explosion/mine_fat_e.png diff --git a/src/main/resources/assets/hbm/textures/models/mine_he.png b/src/main/resources/assets/hbm/textures/models/explosion/mine_he.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mine_he.png rename to src/main/resources/assets/hbm/textures/models/explosion/mine_he.png diff --git a/src/main/resources/assets/hbm/textures/models/mine_shrap.png b/src/main/resources/assets/hbm/textures/models/explosion/mine_shrap.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mine_shrap.png rename to src/main/resources/assets/hbm/textures/models/explosion/mine_shrap.png diff --git a/src/main/resources/assets/hbm/textures/models/explosion/ring2.png b/src/main/resources/assets/hbm/textures/models/explosion/ring2.png deleted file mode 100644 index 89bc8bca55..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/ring2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/tom_flame.png b/src/main/resources/assets/hbm/textures/models/explosion/tom_flame.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/weapons/tom_flame.png rename to src/main/resources/assets/hbm/textures/models/explosion/tom_flame.png diff --git a/src/main/resources/assets/hbm/textures/models/tom_flame_o.png b/src/main/resources/assets/hbm/textures/models/explosion/tom_flame_o.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tom_flame_o.png rename to src/main/resources/assets/hbm/textures/models/explosion/tom_flame_o.png diff --git a/src/main/resources/assets/hbm/textures/models/weapons/tom_main.png b/src/main/resources/assets/hbm/textures/models/explosion/tom_main.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/weapons/tom_main.png rename to src/main/resources/assets/hbm/textures/models/explosion/tom_main.png diff --git a/src/main/resources/assets/hbm/textures/models/forcefield_base.png b/src/main/resources/assets/hbm/textures/models/forcefield_base.png deleted file mode 100644 index cb08b80bfb..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/forcefield_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/forcefield_top.png b/src/main/resources/assets/hbm/textures/models/forcefield_top.png deleted file mode 100644 index 5eced35ad4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/forcefield_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/goggles.png b/src/main/resources/assets/hbm/textures/models/goggles.png deleted file mode 100644 index 2eb6168a3e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/goggles.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/jetpackpurple.png b/src/main/resources/assets/hbm/textures/models/jetpackpurple.png deleted file mode 100644 index c1d0faf6f2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/jetpackpurple.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/lavabase.png b/src/main/resources/assets/hbm/textures/models/lavabase.png deleted file mode 100644 index ccb3ec41da..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/lavabase.png and /dev/null differ 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 0e0dd92c27..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/lilboy2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ams_base.png b/src/main/resources/assets/hbm/textures/models/machines/ams_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/ams_base.png rename to src/main/resources/assets/hbm/textures/models/machines/ams_base.png diff --git a/src/main/resources/assets/hbm/textures/models/ams_destroyed.png b/src/main/resources/assets/hbm/textures/models/machines/ams_destroyed.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/ams_destroyed.png rename to src/main/resources/assets/hbm/textures/models/machines/ams_destroyed.png diff --git a/src/main/resources/assets/hbm/textures/models/ams_emitter.png b/src/main/resources/assets/hbm/textures/models/machines/ams_emitter.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/ams_emitter.png rename to src/main/resources/assets/hbm/textures/models/machines/ams_emitter.png diff --git a/src/main/resources/assets/hbm/textures/models/ams_limiter.png b/src/main/resources/assets/hbm/textures/models/machines/ams_limiter.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/ams_limiter.png rename to src/main/resources/assets/hbm/textures/models/machines/ams_limiter.png diff --git a/src/main/resources/assets/hbm/textures/models/assembler_arm_new.png b/src/main/resources/assets/hbm/textures/models/machines/assembler_arm_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/assembler_arm_new.png rename to src/main/resources/assets/hbm/textures/models/machines/assembler_arm_new.png diff --git a/src/main/resources/assets/hbm/textures/models/assembler_base_new.png b/src/main/resources/assets/hbm/textures/models/machines/assembler_base_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/assembler_base_new.png rename to src/main/resources/assets/hbm/textures/models/machines/assembler_base_new.png diff --git a/src/main/resources/assets/hbm/textures/models/assembler_cog_new.png b/src/main/resources/assets/hbm/textures/models/machines/assembler_cog_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/assembler_cog_new.png rename to src/main/resources/assets/hbm/textures/models/machines/assembler_cog_new.png diff --git a/src/main/resources/assets/hbm/textures/models/assembler_slider_new.png b/src/main/resources/assets/hbm/textures/models/machines/assembler_slider_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/assembler_slider_new.png rename to src/main/resources/assets/hbm/textures/models/machines/assembler_slider_new.png diff --git a/src/main/resources/assets/hbm/textures/models/centrifuge_gas.png b/src/main/resources/assets/hbm/textures/models/machines/centrifuge_gas.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/centrifuge_gas.png rename to src/main/resources/assets/hbm/textures/models/machines/centrifuge_gas.png diff --git a/src/main/resources/assets/hbm/textures/models/centrifuge_new.png b/src/main/resources/assets/hbm/textures/models/machines/centrifuge_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/centrifuge_new.png rename to src/main/resources/assets/hbm/textures/models/machines/centrifuge_new.png diff --git a/src/main/resources/assets/hbm/textures/models/chemplant_base_new.png b/src/main/resources/assets/hbm/textures/models/machines/chemplant_base_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/chemplant_base_new.png rename to src/main/resources/assets/hbm/textures/models/machines/chemplant_base_new.png diff --git a/src/main/resources/assets/hbm/textures/models/chemplant_piston_new.png b/src/main/resources/assets/hbm/textures/models/machines/chemplant_piston_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/chemplant_piston_new.png rename to src/main/resources/assets/hbm/textures/models/machines/chemplant_piston_new.png diff --git a/src/main/resources/assets/hbm/textures/models/chemplant_spinner_new.png b/src/main/resources/assets/hbm/textures/models/machines/chemplant_spinner_new.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/chemplant_spinner_new.png rename to src/main/resources/assets/hbm/textures/models/machines/chemplant_spinner_new.png diff --git a/src/main/resources/assets/hbm/textures/models/core_emitter.png b/src/main/resources/assets/hbm/textures/models/machines/core_emitter.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_emitter.png rename to src/main/resources/assets/hbm/textures/models/machines/core_emitter.png diff --git a/src/main/resources/assets/hbm/textures/models/core_emitter_e.png b/src/main/resources/assets/hbm/textures/models/machines/core_emitter_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_emitter_e.png rename to src/main/resources/assets/hbm/textures/models/machines/core_emitter_e.png diff --git a/src/main/resources/assets/hbm/textures/models/core_injector.png b/src/main/resources/assets/hbm/textures/models/machines/core_injector.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_injector.png rename to src/main/resources/assets/hbm/textures/models/machines/core_injector.png diff --git a/src/main/resources/assets/hbm/textures/models/core_receiver.png b/src/main/resources/assets/hbm/textures/models/machines/core_receiver.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_receiver.png rename to src/main/resources/assets/hbm/textures/models/machines/core_receiver.png diff --git a/src/main/resources/assets/hbm/textures/models/core_stabilizer.png b/src/main/resources/assets/hbm/textures/models/machines/core_stabilizer.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_stabilizer.png rename to src/main/resources/assets/hbm/textures/models/machines/core_stabilizer.png diff --git a/src/main/resources/assets/hbm/textures/models/core_stabilizer_e.png b/src/main/resources/assets/hbm/textures/models/machines/core_stabilizer_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/core_stabilizer_e.png rename to src/main/resources/assets/hbm/textures/models/machines/core_stabilizer_e.png diff --git a/src/main/resources/assets/hbm/textures/models/derrick.png b/src/main/resources/assets/hbm/textures/models/machines/derrick.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/derrick.png rename to src/main/resources/assets/hbm/textures/models/machines/derrick.png diff --git a/src/main/resources/assets/hbm/textures/models/epress_body.png b/src/main/resources/assets/hbm/textures/models/machines/epress_body.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/epress_body.png rename to src/main/resources/assets/hbm/textures/models/machines/epress_body.png diff --git a/src/main/resources/assets/hbm/textures/models/epress_head.png b/src/main/resources/assets/hbm/textures/models/machines/epress_head.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/epress_head.png rename to src/main/resources/assets/hbm/textures/models/machines/epress_head.png diff --git a/src/main/resources/assets/hbm/textures/models/fracking_tower.png b/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/fracking_tower.png rename to src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png diff --git a/src/main/resources/assets/hbm/textures/models/lavabase_small.png b/src/main/resources/assets/hbm/textures/models/machines/lavabase_small.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/lavabase_small.png rename to src/main/resources/assets/hbm/textures/models/machines/lavabase_small.png diff --git a/src/main/resources/assets/hbm/textures/models/press_body.png b/src/main/resources/assets/hbm/textures/models/machines/press_body.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/press_body.png rename to src/main/resources/assets/hbm/textures/models/machines/press_body.png diff --git a/src/main/resources/assets/hbm/textures/models/press_head.png b/src/main/resources/assets/hbm/textures/models/machines/press_head.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/press_head.png rename to src/main/resources/assets/hbm/textures/models/machines/press_head.png diff --git a/src/main/resources/assets/hbm/textures/models/puf6tank.png b/src/main/resources/assets/hbm/textures/models/machines/puf6tank.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/puf6tank.png rename to src/main/resources/assets/hbm/textures/models/machines/puf6tank.png diff --git a/src/main/resources/assets/hbm/textures/models/pumpjack.png b/src/main/resources/assets/hbm/textures/models/machines/pumpjack.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/pumpjack.png rename to src/main/resources/assets/hbm/textures/models/machines/pumpjack.png diff --git a/src/main/resources/assets/hbm/textures/models/rad_gen_body.png b/src/main/resources/assets/hbm/textures/models/machines/rad_gen_body.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/rad_gen_body.png rename to src/main/resources/assets/hbm/textures/models/machines/rad_gen_body.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/reactor_small_base.png b/src/main/resources/assets/hbm/textures/models/machines/reactor_small_base.png new file mode 100644 index 0000000000..fdb0639412 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/reactor_small_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/reactor_small_rods.png b/src/main/resources/assets/hbm/textures/models/machines/reactor_small_rods.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/reactor_small_rods.png rename to src/main/resources/assets/hbm/textures/models/machines/reactor_small_rods.png diff --git a/src/main/resources/assets/hbm/textures/models/refinery.png b/src/main/resources/assets/hbm/textures/models/machines/refinery.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/refinery.png rename to src/main/resources/assets/hbm/textures/models/machines/refinery.png diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_body.png b/src/main/resources/assets/hbm/textures/models/machines/selenium_engine_body.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/selenium_engine_body.png rename to src/main/resources/assets/hbm/textures/models/machines/selenium_engine_body.png diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png b/src/main/resources/assets/hbm/textures/models/machines/selenium_engine_piston.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png rename to src/main/resources/assets/hbm/textures/models/machines/selenium_engine_piston.png diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png b/src/main/resources/assets/hbm/textures/models/machines/selenium_engine_rotor.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png rename to src/main/resources/assets/hbm/textures/models/machines/selenium_engine_rotor.png diff --git a/src/main/resources/assets/hbm/textures/models/tank.png b/src/main/resources/assets/hbm/textures/models/machines/tank.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tank.png rename to src/main/resources/assets/hbm/textures/models/machines/tank.png diff --git a/src/main/resources/assets/hbm/textures/models/tesla.png b/src/main/resources/assets/hbm/textures/models/machines/tesla.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tesla.png rename to src/main/resources/assets/hbm/textures/models/machines/tesla.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/tower_small.png b/src/main/resources/assets/hbm/textures/models/machines/tower_small.png index 26cf7e9e42..08937dba7d 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/tower_small.png and b/src/main/resources/assets/hbm/textures/models/machines/tower_small.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbine.png b/src/main/resources/assets/hbm/textures/models/machines/turbine.png index 5ddb4da799..498ff0be1d 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/turbine.png and b/src/main/resources/assets/hbm/textures/models/machines/turbine.png differ diff --git a/src/main/resources/assets/hbm/textures/models/uf6tank.png b/src/main/resources/assets/hbm/textures/models/machines/uf6tank.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/uf6tank.png rename to src/main/resources/assets/hbm/textures/models/machines/uf6tank.png diff --git a/src/main/resources/assets/hbm/textures/models/mining_drill.png b/src/main/resources/assets/hbm/textures/models/mining_drill.png deleted file mode 100644 index 3189729a11..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mining_drill.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/boxcar.png b/src/main/resources/assets/hbm/textures/models/misc/boxcar.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/boxcar.png rename to src/main/resources/assets/hbm/textures/models/misc/boxcar.png diff --git a/src/main/resources/assets/hbm/textures/models/boxcarflipv.png b/src/main/resources/assets/hbm/textures/models/misc/boxcarflipv.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/boxcarflipv.png rename to src/main/resources/assets/hbm/textures/models/misc/boxcarflipv.png diff --git a/src/main/resources/assets/hbm/textures/models/duchessgambit.png b/src/main/resources/assets/hbm/textures/models/misc/duchessgambit.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/duchessgambit.png rename to src/main/resources/assets/hbm/textures/models/misc/duchessgambit.png diff --git a/src/main/resources/assets/hbm/textures/models/modelstatue.png b/src/main/resources/assets/hbm/textures/models/misc/modelstatue.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelstatue.png rename to src/main/resources/assets/hbm/textures/models/misc/modelstatue.png diff --git a/src/main/resources/assets/hbm/textures/models/modeltestrender.png b/src/main/resources/assets/hbm/textures/models/misc/modeltestrender.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeltestrender.png rename to src/main/resources/assets/hbm/textures/models/misc/modeltestrender.png diff --git a/src/main/resources/assets/hbm/textures/models/textureigenrotor.png b/src/main/resources/assets/hbm/textures/models/misc/universaldark.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/textureigenrotor.png rename to src/main/resources/assets/hbm/textures/models/misc/universaldark.png diff --git a/src/main/resources/assets/hbm/textures/models/compact_launcher.png b/src/main/resources/assets/hbm/textures/models/missile_parts/compact_launcher.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/compact_launcher.png rename to src/main/resources/assets/hbm/textures/models/missile_parts/compact_launcher.png diff --git a/src/main/resources/assets/hbm/textures/models/missile_parts/forcefield_top.png b/src/main/resources/assets/hbm/textures/models/missile_parts/forcefield_top.png new file mode 100644 index 0000000000..cef5a21bcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_parts/forcefield_top.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_assembly.png b/src/main/resources/assets/hbm/textures/models/missile_parts/missile_assembly.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missile_assembly.png rename to src/main/resources/assets/hbm/textures/models/missile_parts/missile_assembly.png diff --git a/src/main/resources/assets/hbm/textures/models/missilepad.png b/src/main/resources/assets/hbm/textures/models/missile_parts/missilepad.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilepad.png rename to src/main/resources/assets/hbm/textures/models/missile_parts/missilepad.png diff --git a/src/main/resources/assets/hbm/textures/models/missile_parts/radar_base.png b/src/main/resources/assets/hbm/textures/models/missile_parts/radar_base.png new file mode 100644 index 0000000000..0aece43646 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_parts/radar_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_parts/radar_dish.png b/src/main/resources/assets/hbm/textures/models/missile_parts/radar_dish.png new file mode 100644 index 0000000000..edbf446cd5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_parts/radar_dish.png differ diff --git a/src/main/resources/assets/hbm/textures/models/sat_dock.png b/src/main/resources/assets/hbm/textures/models/missile_parts/sat_dock.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_dock.png rename to src/main/resources/assets/hbm/textures/models/missile_parts/sat_dock.png diff --git a/src/main/resources/assets/hbm/textures/models/strut.png b/src/main/resources/assets/hbm/textures/models/missile_parts/strut.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/strut.png rename to src/main/resources/assets/hbm/textures/models/missile_parts/strut.png diff --git a/src/main/resources/assets/hbm/textures/models/missileaa.png b/src/main/resources/assets/hbm/textures/models/missileaa.png deleted file mode 100644 index bcf4723eb0..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileaa.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilehuge_bu.png b/src/main/resources/assets/hbm/textures/models/missilehuge_bu.png deleted file mode 100644 index 1682924732..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilehuge_bu.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilehuge_cl.png b/src/main/resources/assets/hbm/textures/models/missilehuge_cl.png deleted file mode 100644 index 317e2fa7f9..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilehuge_cl.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilehuge_he.png b/src/main/resources/assets/hbm/textures/models/missilehuge_he.png deleted file mode 100644 index d15f913e67..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilehuge_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilehuge_in.png b/src/main/resources/assets/hbm/textures/models/missilehuge_in.png deleted file mode 100644 index 3fc624cfb3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilehuge_in.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilemirv.png b/src/main/resources/assets/hbm/textures/models/missilemirv.png deleted file mode 100644 index 2e989186ef..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilemirv.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bobmazon.png b/src/main/resources/assets/hbm/textures/models/missiles/bobmazon.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bobmazon.png rename to src/main/resources/assets/hbm/textures/models/missiles/bobmazon.png diff --git a/src/main/resources/assets/hbm/textures/models/missiles/desktop.ini b/src/main/resources/assets/hbm/textures/models/missiles/desktop.ini new file mode 100644 index 0000000000..e7c6ba6dc4 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/models/missiles/desktop.ini @@ -0,0 +1,2 @@ +[LocalizedFileNames] +bobmazon.png=@bobmazon.png,0 diff --git a/src/main/resources/assets/hbm/textures/models/minerrocket.png b/src/main/resources/assets/hbm/textures/models/missiles/minerrocket.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/minerrocket.png rename to src/main/resources/assets/hbm/textures/models/missiles/minerrocket.png diff --git a/src/main/resources/assets/hbm/textures/models/minerrocket_gerald.png b/src/main/resources/assets/hbm/textures/models/missiles/minerrocket_gerald.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/minerrocket_gerald.png rename to src/main/resources/assets/hbm/textures/models/missiles/minerrocket_gerald.png diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_abm.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_abm.png new file mode 100644 index 0000000000..302bad1ae6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_abm.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_huge.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge.png new file mode 100644 index 0000000000..97b025dc1e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_bu.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_bu.png new file mode 100644 index 0000000000..688ccc8e27 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_cl.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_cl.png new file mode 100644 index 0000000000..a257621e92 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_inc.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_inc.png new file mode 100644 index 0000000000..4990434a21 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_huge_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_strong.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong.png new file mode 100644 index 0000000000..c0253f2a81 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_bu.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_bu.png new file mode 100644 index 0000000000..fed6e88c2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_cl.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_cl.png new file mode 100644 index 0000000000..f8db81bf09 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_emp.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_emp.png new file mode 100644 index 0000000000..8580c9a3d1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_emp.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_inc.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_inc.png new file mode 100644 index 0000000000..42307a5ca1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_strong_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_v2.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2.png new file mode 100644 index 0000000000..20b53ed419 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_bu.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_bu.png new file mode 100644 index 0000000000..cf2a83d1d1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_cl.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_cl.png new file mode 100644 index 0000000000..443894c72f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_inc.png b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_inc.png new file mode 100644 index 0000000000..79b821e2b5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missile_v2_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missilebooster.png b/src/main/resources/assets/hbm/textures/models/missiles/missilebooster.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilebooster.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilebooster.png diff --git a/src/main/resources/assets/hbm/textures/models/missilecarrier.png b/src/main/resources/assets/hbm/textures/models/missiles/missilecarrier.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilecarrier.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilecarrier.png diff --git a/src/main/resources/assets/hbm/textures/models/missiledoomsday.png b/src/main/resources/assets/hbm/textures/models/missiles/missiledoomsday.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missiledoomsday.png rename to src/main/resources/assets/hbm/textures/models/missiles/missiledoomsday.png diff --git a/src/main/resources/assets/hbm/textures/models/missileendo.png b/src/main/resources/assets/hbm/textures/models/missiles/missileendo.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missileendo.png rename to src/main/resources/assets/hbm/textures/models/missiles/missileendo.png diff --git a/src/main/resources/assets/hbm/textures/models/missileexo.png b/src/main/resources/assets/hbm/textures/models/missiles/missileexo.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missileexo.png rename to src/main/resources/assets/hbm/textures/models/missiles/missileexo.png diff --git a/src/main/resources/assets/hbm/textures/models/missilemicro.png b/src/main/resources/assets/hbm/textures/models/missiles/missilemicro.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilemicro.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilemicro.png diff --git a/src/main/resources/assets/hbm/textures/models/missilemicrobhole.png b/src/main/resources/assets/hbm/textures/models/missiles/missilemicrobhole.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilemicrobhole.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilemicrobhole.png diff --git a/src/main/resources/assets/hbm/textures/models/missilemicroemp.png b/src/main/resources/assets/hbm/textures/models/missiles/missilemicroemp.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilemicroemp.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilemicroemp.png diff --git a/src/main/resources/assets/hbm/textures/models/missilemicroschrab.png b/src/main/resources/assets/hbm/textures/models/missiles/missilemicroschrab.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilemicroschrab.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilemicroschrab.png diff --git a/src/main/resources/assets/hbm/textures/models/missilemicrotaint.png b/src/main/resources/assets/hbm/textures/models/missiles/missilemicrotaint.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missilemicrotaint.png rename to src/main/resources/assets/hbm/textures/models/missiles/missilemicrotaint.png diff --git a/src/main/resources/assets/hbm/textures/models/missiles/missilen2.png b/src/main/resources/assets/hbm/textures/models/missiles/missilen2.png new file mode 100644 index 0000000000..a4b2400e52 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missiles/missilen2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missileneon.png b/src/main/resources/assets/hbm/textures/models/missiles/missileneon.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missileneon.png rename to src/main/resources/assets/hbm/textures/models/missiles/missileneon.png diff --git a/src/main/resources/assets/hbm/textures/models/missileneonh.png b/src/main/resources/assets/hbm/textures/models/missiles/missileneonh.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missileneonh.png rename to src/main/resources/assets/hbm/textures/models/missiles/missileneonh.png diff --git a/src/main/resources/assets/hbm/textures/models/missileneonv.png b/src/main/resources/assets/hbm/textures/models/missiles/missileneonv.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/missileneonv.png rename to src/main/resources/assets/hbm/textures/models/missiles/missileneonv.png diff --git a/src/main/resources/assets/hbm/textures/models/missilestrong_bu.png b/src/main/resources/assets/hbm/textures/models/missilestrong_bu.png deleted file mode 100644 index 64b534d7f3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilestrong_bu.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilestrong_cl.png b/src/main/resources/assets/hbm/textures/models/missilestrong_cl.png deleted file mode 100644 index e33a248b55..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilestrong_cl.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilestrong_emp.png b/src/main/resources/assets/hbm/textures/models/missilestrong_emp.png deleted file mode 100644 index 9a96655655..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilestrong_emp.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilestrong_he.png b/src/main/resources/assets/hbm/textures/models/missilestrong_he.png deleted file mode 100644 index 93710fdd98..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilestrong_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilestrong_in.png b/src/main/resources/assets/hbm/textures/models/missilestrong_in.png deleted file mode 100644 index 377226f6c5..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilestrong_in.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilev2_bu.png b/src/main/resources/assets/hbm/textures/models/missilev2_bu.png deleted file mode 100644 index 99a5d5127f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilev2_bu.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilev2_cl.png b/src/main/resources/assets/hbm/textures/models/missilev2_cl.png deleted file mode 100644 index 478aad78e4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilev2_cl.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilev2_he.png b/src/main/resources/assets/hbm/textures/models/missilev2_he.png deleted file mode 100644 index e23d4142b0..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilev2_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilev2_in.png b/src/main/resources/assets/hbm/textures/models/missilev2_in.png deleted file mode 100644 index 4f97c6d0fc..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilev2_in.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelb92.png b/src/main/resources/assets/hbm/textures/models/modelb92.png deleted file mode 100644 index 86dbc29945..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelb92.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelb92dark.png b/src/main/resources/assets/hbm/textures/models/modelb92dark.png deleted file mode 100644 index e41f8582cf..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelb92dark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelboltaction.png b/src/main/resources/assets/hbm/textures/models/modelboltaction.png deleted file mode 100644 index 4105129145..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelboltaction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelboltactiondarkgreen.png b/src/main/resources/assets/hbm/textures/models/modelboltactiondarkgreen.png deleted file mode 100644 index cb40afaffe..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelboltactiondarkgreen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelboltactiongreen.png b/src/main/resources/assets/hbm/textures/models/modelboltactiongreen.png deleted file mode 100644 index 1c5c31255c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelboltactiongreen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modeldash.png b/src/main/resources/assets/hbm/textures/models/modeldash.png deleted file mode 100644 index 26e6cac9dc..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modeldash.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelmp_alt.png b/src/main/resources/assets/hbm/textures/models/modelmp_alt.png deleted file mode 100644 index 4fd02a6e8e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelmp_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelpylon_alt.png b/src/main/resources/assets/hbm/textures/models/modelpylon_alt.png deleted file mode 100644 index 65cf39dad4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelpylon_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelradioalt.png b/src/main/resources/assets/hbm/textures/models/modelradioalt.png deleted file mode 100644 index e7a96af46d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelradioalt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelrocketold.png b/src/main/resources/assets/hbm/textures/models/modelrocketold.png deleted file mode 100644 index 36835fb13c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelrocketold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelrpg.png b/src/main/resources/assets/hbm/textures/models/modelrpg.png deleted file mode 100644 index a7323d537e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modelrpg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modeltwigun.png b/src/main/resources/assets/hbm/textures/models/modeltwigun.png deleted file mode 100644 index 403da0f56c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/modeltwigun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelpylon.png b/src/main/resources/assets/hbm/textures/models/network/modelpylon.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpylon.png rename to src/main/resources/assets/hbm/textures/models/network/modelpylon.png diff --git a/src/main/resources/assets/hbm/textures/models/nuketestbomb.png b/src/main/resources/assets/hbm/textures/models/nuketestbomb.png deleted file mode 100644 index 0726e0f571..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/nuketestbomb.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/b29_0.png b/src/main/resources/assets/hbm/textures/models/planes/b29_0.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/b29_0.png rename to src/main/resources/assets/hbm/textures/models/planes/b29_0.png diff --git a/src/main/resources/assets/hbm/textures/models/b29_1.png b/src/main/resources/assets/hbm/textures/models/planes/b29_1.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/b29_1.png rename to src/main/resources/assets/hbm/textures/models/planes/b29_1.png diff --git a/src/main/resources/assets/hbm/textures/models/b29_2.png b/src/main/resources/assets/hbm/textures/models/planes/b29_2.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/b29_2.png rename to src/main/resources/assets/hbm/textures/models/planes/b29_2.png diff --git a/src/main/resources/assets/hbm/textures/models/b29_3.png b/src/main/resources/assets/hbm/textures/models/planes/b29_3.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/b29_3.png rename to src/main/resources/assets/hbm/textures/models/planes/b29_3.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_0.png b/src/main/resources/assets/hbm/textures/models/planes/dornier_0.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/dornier_0.png rename to src/main/resources/assets/hbm/textures/models/planes/dornier_0.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_1.png b/src/main/resources/assets/hbm/textures/models/planes/dornier_1.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/dornier_1.png rename to src/main/resources/assets/hbm/textures/models/planes/dornier_1.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_2.png b/src/main/resources/assets/hbm/textures/models/planes/dornier_2.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/dornier_2.png rename to src/main/resources/assets/hbm/textures/models/planes/dornier_2.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_3.png b/src/main/resources/assets/hbm/textures/models/planes/dornier_3.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/dornier_3.png rename to src/main/resources/assets/hbm/textures/models/planes/dornier_3.png diff --git a/src/main/resources/assets/hbm/textures/models/dornier_4.png b/src/main/resources/assets/hbm/textures/models/planes/dornier_4.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/dornier_4.png rename to src/main/resources/assets/hbm/textures/models/planes/dornier_4.png diff --git a/src/main/resources/assets/hbm/textures/models/plate_armor_overlay.png b/src/main/resources/assets/hbm/textures/models/plate_armor_overlay.png deleted file mode 100644 index c861071e3d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/plate_armor_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_base.png b/src/main/resources/assets/hbm/textures/models/press_base.png deleted file mode 100644 index 1f12b4717c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_body_2.png b/src/main/resources/assets/hbm/textures/models/press_body_2.png deleted file mode 100644 index b67125d1f2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_body_2.png and /dev/null differ 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 c40599a539..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_head_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_head_new.png b/src/main/resources/assets/hbm/textures/models/press_head_new.png deleted file mode 100644 index d54d6c2e15..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_head_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/baleflare.png b/src/main/resources/assets/hbm/textures/models/projectiles/baleflare.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/baleflare.png rename to src/main/resources/assets/hbm/textures/models/projectiles/baleflare.png diff --git a/src/main/resources/assets/hbm/textures/models/baleflare_e.png b/src/main/resources/assets/hbm/textures/models/projectiles/baleflare_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/baleflare_e.png rename to src/main/resources/assets/hbm/textures/models/projectiles/baleflare_e.png diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/bombletthetatexture.png b/src/main/resources/assets/hbm/textures/models/projectiles/bombletthetatexture.png new file mode 100644 index 0000000000..b1b8d9fa25 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/projectiles/bombletthetatexture.png differ diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/bombletzetatexture.png b/src/main/resources/assets/hbm/textures/models/projectiles/bombletzetatexture.png new file mode 100644 index 0000000000..ddfafcf043 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/projectiles/bombletzetatexture.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bullet.png b/src/main/resources/assets/hbm/textures/models/projectiles/bullet.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bullet.png rename to src/main/resources/assets/hbm/textures/models/projectiles/bullet.png diff --git a/src/main/resources/assets/hbm/textures/models/chopperbomb.png b/src/main/resources/assets/hbm/textures/models/projectiles/chopperbomb.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/chopperbomb.png rename to src/main/resources/assets/hbm/textures/models/projectiles/chopperbomb.png diff --git a/src/main/resources/assets/hbm/textures/models/emplacer.png b/src/main/resources/assets/hbm/textures/models/projectiles/emplacer.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/emplacer.png rename to src/main/resources/assets/hbm/textures/models/projectiles/emplacer.png diff --git a/src/main/resources/assets/hbm/textures/models/mininuke.png b/src/main/resources/assets/hbm/textures/models/projectiles/mininuke.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mininuke.png rename to src/main/resources/assets/hbm/textures/models/projectiles/mininuke.png diff --git a/src/main/resources/assets/hbm/textures/models/mirv.png b/src/main/resources/assets/hbm/textures/models/projectiles/mirv.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mirv.png rename to src/main/resources/assets/hbm/textures/models/projectiles/mirv.png diff --git a/src/main/resources/assets/hbm/textures/models/modelsrocket.png b/src/main/resources/assets/hbm/textures/models/projectiles/modelsrocket.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelsrocket.png rename to src/main/resources/assets/hbm/textures/models/projectiles/modelsrocket.png diff --git a/src/main/resources/assets/hbm/textures/models/modelsvtrocket.png b/src/main/resources/assets/hbm/textures/models/projectiles/modelsvtrocket.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelsvtrocket.png rename to src/main/resources/assets/hbm/textures/models/projectiles/modelsvtrocket.png diff --git a/src/main/resources/assets/hbm/textures/models/plasmabeam.png b/src/main/resources/assets/hbm/textures/models/projectiles/plasmabeam.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/plasmabeam.png rename to src/main/resources/assets/hbm/textures/models/projectiles/plasmabeam.png diff --git a/src/main/resources/assets/hbm/textures/models/tau.png b/src/main/resources/assets/hbm/textures/models/projectiles/tau.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tau.png rename to src/main/resources/assets/hbm/textures/models/projectiles/tau.png diff --git a/src/main/resources/assets/hbm/textures/models/radar_base.png b/src/main/resources/assets/hbm/textures/models/radar_base.png deleted file mode 100644 index 2ebb4f2e5b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/radar_base.png and /dev/null differ 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 5f5b752dad..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/radar_head.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/rbmk_crane_console.png b/src/main/resources/assets/hbm/textures/models/rbmk_crane_console.png deleted file mode 100644 index a815ca0d5f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/rbmk_crane_console.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/reactor_small_base.png b/src/main/resources/assets/hbm/textures/models/reactor_small_base.png deleted file mode 100644 index 7c726d44c0..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/reactor_small_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/sat_base.png b/src/main/resources/assets/hbm/textures/models/sat/sat_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_base.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_base.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_dock_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_dock_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_dock_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_dock_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_foeq.png b/src/main/resources/assets/hbm/textures/models/sat/sat_foeq.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_foeq.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_foeq.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_foeq_burning.png b/src/main/resources/assets/hbm/textures/models/sat/sat_foeq_burning.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_foeq_burning.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_foeq_burning.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_foeq_burning_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_foeq_burning_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_foeq_burning_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_foeq_burning_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_foeq_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_foeq_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_foeq_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_foeq_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_laser.png b/src/main/resources/assets/hbm/textures/models/sat/sat_laser.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_laser.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_laser.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_laser_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_laser_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_laser_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_laser_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_mapper.png b/src/main/resources/assets/hbm/textures/models/sat/sat_mapper.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_mapper.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_mapper.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_mapper_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_mapper_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_mapper_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_mapper_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_radar.png b/src/main/resources/assets/hbm/textures/models/sat/sat_radar.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_radar.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_radar.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_resonator.png b/src/main/resources/assets/hbm/textures/models/sat/sat_resonator.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_resonator.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_resonator.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_scanner.png b/src/main/resources/assets/hbm/textures/models/sat/sat_scanner.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_scanner.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_scanner.png diff --git a/src/main/resources/assets/hbm/textures/models/sat_scanner_e.png b/src/main/resources/assets/hbm/textures/models/sat/sat_scanner_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/sat_scanner_e.png rename to src/main/resources/assets/hbm/textures/models/sat/sat_scanner_e.png diff --git a/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant1.png b/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant1.png deleted file mode 100644 index 9d10aa5e5d..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant2.png b/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant2.png deleted file mode 100644 index 8a327955d4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/sliding_blast_door_variant2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_toxic_fluid.png b/src/main/resources/assets/hbm/textures/models/tank/tank_toxic_fluid.png index d9efb22566..5e283308c8 100644 Binary files a/src/main/resources/assets/hbm/textures/models/tank/tank_toxic_fluid.png and b/src/main/resources/assets/hbm/textures/models/tank/tank_toxic_fluid.png differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_double.png b/src/main/resources/assets/hbm/textures/models/test_container_double.png deleted file mode 100644 index 182a96c72f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_double.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_single.png b/src/main/resources/assets/hbm/textures/models/test_container_single.png deleted file mode 100644 index c00662549b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_single.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/testcape.png b/src/main/resources/assets/hbm/textures/models/testcape.png deleted file mode 100644 index 672c05b309..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/testcape.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/testobj.png b/src/main/resources/assets/hbm/textures/models/testobj.png deleted file mode 100644 index e4b7504dc1..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/testobj.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/thegadget3_.png b/src/main/resources/assets/hbm/textures/models/thegadget3_.png deleted file mode 100644 index 548ef8613a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/thegadget3_.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/thegadget3_tex.png b/src/main/resources/assets/hbm/textures/models/thegadget3_tex.png deleted file mode 100644 index 81b6e10d60..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/thegadget3_tex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/modelgeiger.png b/src/main/resources/assets/hbm/textures/models/tools/modelgeiger.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelgeiger.png rename to src/main/resources/assets/hbm/textures/models/tools/modelgeiger.png diff --git a/src/main/resources/assets/hbm/textures/models/modelgeiger_e.png b/src/main/resources/assets/hbm/textures/models/tools/modelgeiger_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelgeiger_e.png rename to src/main/resources/assets/hbm/textures/models/tools/modelgeiger_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modelmultitool.png b/src/main/resources/assets/hbm/textures/models/tools/modelmultitool.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelmultitool.png rename to src/main/resources/assets/hbm/textures/models/tools/modelmultitool.png diff --git a/src/main/resources/assets/hbm/textures/models/shimmer_axe.png b/src/main/resources/assets/hbm/textures/models/tools/shimmer_axe.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/shimmer_axe.png rename to src/main/resources/assets/hbm/textures/models/tools/shimmer_axe.png diff --git a/src/main/resources/assets/hbm/textures/models/shimmer_sledge.png b/src/main/resources/assets/hbm/textures/models/tools/shimmer_sledge.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/shimmer_sledge.png rename to src/main/resources/assets/hbm/textures/models/tools/shimmer_sledge.png diff --git a/src/main/resources/assets/hbm/textures/models/truck_busted.png b/src/main/resources/assets/hbm/textures/models/truck_busted.png deleted file mode 100644 index e197106220..0000000000 Binary files a/src/main/resources/assets/hbm/textures/models/truck_busted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bm_box_lever.png b/src/main/resources/assets/hbm/textures/models/turrets/bm_box_lever.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bm_box_lever.png rename to src/main/resources/assets/hbm/textures/models/turrets/bm_box_lever.png diff --git a/src/main/resources/assets/hbm/textures/models/cwis_base.png b/src/main/resources/assets/hbm/textures/models/turrets/cwis_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/cwis_base.png rename to src/main/resources/assets/hbm/textures/models/turrets/cwis_base.png diff --git a/src/main/resources/assets/hbm/textures/models/cwis_gun.png b/src/main/resources/assets/hbm/textures/models/turrets/cwis_gun.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/cwis_gun.png rename to src/main/resources/assets/hbm/textures/models/turrets/cwis_gun.png diff --git a/src/main/resources/assets/hbm/textures/models/cwis_head.png b/src/main/resources/assets/hbm/textures/models/turrets/cwis_head.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/cwis_head.png rename to src/main/resources/assets/hbm/textures/models/turrets/cwis_head.png diff --git a/src/main/resources/assets/hbm/textures/models/cwis_rotor.png b/src/main/resources/assets/hbm/textures/models/turrets/cwis_rotor.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/cwis_rotor.png rename to src/main/resources/assets/hbm/textures/models/turrets/cwis_rotor.png diff --git a/src/main/resources/assets/hbm/textures/models/modelradio.png b/src/main/resources/assets/hbm/textures/models/turrets/modelradio.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelradio.png rename to src/main/resources/assets/hbm/textures/models/turrets/modelradio.png diff --git a/src/main/resources/assets/hbm/textures/models/railgun_base.png b/src/main/resources/assets/hbm/textures/models/turrets/railgun_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/railgun_base.png rename to src/main/resources/assets/hbm/textures/models/turrets/railgun_base.png diff --git a/src/main/resources/assets/hbm/textures/models/railgun_main.png b/src/main/resources/assets/hbm/textures/models/turrets/railgun_main.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/railgun_main.png rename to src/main/resources/assets/hbm/textures/models/turrets/railgun_main.png diff --git a/src/main/resources/assets/hbm/textures/models/railgun_main_e.png b/src/main/resources/assets/hbm/textures/models/turrets/railgun_main_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/railgun_main_e.png rename to src/main/resources/assets/hbm/textures/models/turrets/railgun_main_e.png diff --git a/src/main/resources/assets/hbm/textures/models/railgun_rotor.png b/src/main/resources/assets/hbm/textures/models/turrets/railgun_rotor.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/railgun_rotor.png rename to src/main/resources/assets/hbm/textures/models/turrets/railgun_rotor.png diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_base.png b/src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_base.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/turret_cheapo_base.png rename to src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_base.png diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_gun.png b/src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_gun.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/turret_cheapo_gun.png rename to src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_gun.png diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_head.png b/src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_head.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/turret_cheapo_head.png rename to src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_head.png diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_rotor.png b/src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_rotor.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/turret_cheapo_rotor.png rename to src/main/resources/assets/hbm/textures/models/turrets/turret_cheapo_rotor.png diff --git a/src/main/resources/assets/hbm/textures/models/bflauncher.png b/src/main/resources/assets/hbm/textures/models/weapons/bflauncher.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bflauncher.png rename to src/main/resources/assets/hbm/textures/models/weapons/bflauncher.png diff --git a/src/main/resources/assets/hbm/textures/models/bflauncher_e.png b/src/main/resources/assets/hbm/textures/models/weapons/bflauncher_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/bflauncher_e.png rename to src/main/resources/assets/hbm/textures/models/weapons/bflauncher_e.png diff --git a/src/main/resources/assets/hbm/textures/models/weapons/brimstone.png b/src/main/resources/assets/hbm/textures/models/weapons/brimstone.png new file mode 100644 index 0000000000..11094b7910 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/brimstone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/fatmanlauncher.png b/src/main/resources/assets/hbm/textures/models/weapons/fatmanlauncher.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/fatmanlauncher.png rename to src/main/resources/assets/hbm/textures/models/weapons/fatmanlauncher.png diff --git a/src/main/resources/assets/hbm/textures/models/jade_shotgun.png b/src/main/resources/assets/hbm/textures/models/weapons/jade_shotgun.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jade_shotgun.png rename to src/main/resources/assets/hbm/textures/models/weapons/jade_shotgun.png diff --git a/src/main/resources/assets/hbm/textures/models/jade_shotgun_lmap.png b/src/main/resources/assets/hbm/textures/models/weapons/jade_shotgun_lmap.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/jade_shotgun_lmap.png rename to src/main/resources/assets/hbm/textures/models/weapons/jade_shotgun_lmap.png diff --git a/src/main/resources/assets/hbm/textures/models/mirvlauncher.png b/src/main/resources/assets/hbm/textures/models/weapons/mirvlauncher.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/mirvlauncher.png rename to src/main/resources/assets/hbm/textures/models/weapons/mirvlauncher.png diff --git a/src/main/resources/assets/hbm/textures/models/modelb92sm.png b/src/main/resources/assets/hbm/textures/models/weapons/modelb92sm.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelb92sm.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelb92sm.png diff --git a/src/main/resources/assets/hbm/textures/models/modelb93.png b/src/main/resources/assets/hbm/textures/models/weapons/modelb93.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelb93.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelb93.png diff --git a/src/main/resources/assets/hbm/textures/models/modelbigswordtexture.png b/src/main/resources/assets/hbm/textures/models/weapons/modelbigswordtexture.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelbigswordtexture.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelbigswordtexture.png diff --git a/src/main/resources/assets/hbm/textures/models/modelboltactiondark.png b/src/main/resources/assets/hbm/textures/models/weapons/modelboltactiondark.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelboltactiondark.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelboltactiondark.png diff --git a/src/main/resources/assets/hbm/textures/models/weapons/modelboltactiongreen.png b/src/main/resources/assets/hbm/textures/models/weapons/modelboltactiongreen.png new file mode 100644 index 0000000000..001953b89f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/modelboltactiongreen.png differ diff --git a/src/main/resources/assets/hbm/textures/models/modelboltactionsaturnite.png b/src/main/resources/assets/hbm/textures/models/weapons/modelboltactionsaturnite.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelboltactionsaturnite.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelboltactionsaturnite.png diff --git a/src/main/resources/assets/hbm/textures/models/modelcalbarrel.png b/src/main/resources/assets/hbm/textures/models/weapons/modelcalbarrel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelcalbarrel.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelcalbarrel.png diff --git a/src/main/resources/assets/hbm/textures/models/modelcaldualstock.png b/src/main/resources/assets/hbm/textures/models/weapons/modelcaldualstock.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelcaldualstock.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelcaldualstock.png diff --git a/src/main/resources/assets/hbm/textures/models/modelcalstock.png b/src/main/resources/assets/hbm/textures/models/weapons/modelcalstock.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelcalstock.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelcalstock.png diff --git a/src/main/resources/assets/hbm/textures/models/modelcryolator.png b/src/main/resources/assets/hbm/textures/models/weapons/modelcryolator.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelcryolator.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelcryolator.png diff --git a/src/main/resources/assets/hbm/textures/models/modeldefabricator.png b/src/main/resources/assets/hbm/textures/models/weapons/modeldefabricator.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeldefabricator.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeldefabricator.png diff --git a/src/main/resources/assets/hbm/textures/models/modelempray.png b/src/main/resources/assets/hbm/textures/models/weapons/modelempray.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelempray.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelempray.png diff --git a/src/main/resources/assets/hbm/textures/models/modelempray_e.png b/src/main/resources/assets/hbm/textures/models/weapons/modelempray_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelempray_e.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelempray_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modeleuthanasia.png b/src/main/resources/assets/hbm/textures/models/weapons/modeleuthanasia.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeleuthanasia.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeleuthanasia.png diff --git a/src/main/resources/assets/hbm/textures/models/modelfolly.png b/src/main/resources/assets/hbm/textures/models/weapons/modelfolly.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelfolly.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelfolly.png diff --git a/src/main/resources/assets/hbm/textures/models/modelgun.png b/src/main/resources/assets/hbm/textures/models/weapons/modelgun.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelgun.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelgun.png diff --git a/src/main/resources/assets/hbm/textures/models/modelgustav.png b/src/main/resources/assets/hbm/textures/models/weapons/modelgustav.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelgustav.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelgustav.png diff --git a/src/main/resources/assets/hbm/textures/models/modelgustavyellow.png b/src/main/resources/assets/hbm/textures/models/weapons/modelgustavyellow.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelgustavyellow.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelgustavyellow.png diff --git a/src/main/resources/assets/hbm/textures/models/modelhp.png b/src/main/resources/assets/hbm/textures/models/weapons/modelhp.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelhp.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelhp.png diff --git a/src/main/resources/assets/hbm/textures/models/modelhp_e.png b/src/main/resources/assets/hbm/textures/models/weapons/modelhp_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelhp_e.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelhp_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modelimmolator.png b/src/main/resources/assets/hbm/textures/models/weapons/modelimmolator.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelimmolator.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelimmolator.png diff --git a/src/main/resources/assets/hbm/textures/models/modeljack.png b/src/main/resources/assets/hbm/textures/models/weapons/modeljack.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeljack.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeljack.png diff --git a/src/main/resources/assets/hbm/textures/models/modellacunae.png b/src/main/resources/assets/hbm/textures/models/weapons/modellacunae.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modellacunae.png rename to src/main/resources/assets/hbm/textures/models/weapons/modellacunae.png diff --git a/src/main/resources/assets/hbm/textures/models/modellacunaeavenger.png b/src/main/resources/assets/hbm/textures/models/weapons/modellacunaeavenger.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modellacunaeavenger.png rename to src/main/resources/assets/hbm/textures/models/weapons/modellacunaeavenger.png diff --git a/src/main/resources/assets/hbm/textures/models/modellacunaereal.png b/src/main/resources/assets/hbm/textures/models/weapons/modellacunaereal.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modellacunaereal.png rename to src/main/resources/assets/hbm/textures/models/weapons/modellacunaereal.png diff --git a/src/main/resources/assets/hbm/textures/models/modelleveraction.png b/src/main/resources/assets/hbm/textures/models/weapons/modelleveraction.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelleveraction.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelleveraction.png diff --git a/src/main/resources/assets/hbm/textures/models/modelleveractiondark.png b/src/main/resources/assets/hbm/textures/models/weapons/modelleveractiondark.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelleveractiondark.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelleveractiondark.png diff --git a/src/main/resources/assets/hbm/textures/models/modelmp.png b/src/main/resources/assets/hbm/textures/models/weapons/modelmp.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelmp.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelmp.png diff --git a/src/main/resources/assets/hbm/textures/models/modelmp40.png b/src/main/resources/assets/hbm/textures/models/weapons/modelmp40.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelmp40.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelmp40.png diff --git a/src/main/resources/assets/hbm/textures/models/modelnightmare.png b/src/main/resources/assets/hbm/textures/models/weapons/modelnightmare.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelnightmare.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelnightmare.png diff --git a/src/main/resources/assets/hbm/textures/models/modelnightmare2.png b/src/main/resources/assets/hbm/textures/models/weapons/modelnightmare2.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelnightmare2.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelnightmare2.png diff --git a/src/main/resources/assets/hbm/textures/models/modelosipr.png b/src/main/resources/assets/hbm/textures/models/weapons/modelosipr.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelosipr.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelosipr.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpanzerschreck.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpanzerschreck.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpanzerschreck.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpanzerschreck.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpip.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpip.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpip.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpip.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpipgrey.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpipgrey.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpipgrey.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpipgrey.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpipnoscope.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpipnoscope.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpipnoscope.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpipnoscope.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpipred.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpipred.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpipred.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpipred.png diff --git a/src/main/resources/assets/hbm/textures/models/modelpipsilver.png b/src/main/resources/assets/hbm/textures/models/weapons/modelpipsilver.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelpipsilver.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelpipsilver.png diff --git a/src/main/resources/assets/hbm/textures/models/modelskystinger.png b/src/main/resources/assets/hbm/textures/models/weapons/modelskystinger.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelskystinger.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelskystinger.png diff --git a/src/main/resources/assets/hbm/textures/models/modelspark.png b/src/main/resources/assets/hbm/textures/models/weapons/modelspark.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelspark.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelspark.png diff --git a/src/main/resources/assets/hbm/textures/models/modelspark_e.png b/src/main/resources/assets/hbm/textures/models/weapons/modelspark_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelspark_e.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelspark_e.png diff --git a/src/main/resources/assets/hbm/textures/models/modelstinger.png b/src/main/resources/assets/hbm/textures/models/weapons/modelstinger.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelstinger.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelstinger.png diff --git a/src/main/resources/assets/hbm/textures/models/modelswordredstone.png b/src/main/resources/assets/hbm/textures/models/weapons/modelswordredstone.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelswordredstone.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelswordredstone.png diff --git a/src/main/resources/assets/hbm/textures/models/modeluboinik.png b/src/main/resources/assets/hbm/textures/models/weapons/modeluboinik.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeluboinik.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeluboinik.png diff --git a/src/main/resources/assets/hbm/textures/models/modeluzi.png b/src/main/resources/assets/hbm/textures/models/weapons/modeluzi.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeluzi.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeluzi.png diff --git a/src/main/resources/assets/hbm/textures/models/modeluzibarrel.png b/src/main/resources/assets/hbm/textures/models/weapons/modeluzibarrel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeluzibarrel.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeluzibarrel.png diff --git a/src/main/resources/assets/hbm/textures/models/modeluzisaturnite.png b/src/main/resources/assets/hbm/textures/models/weapons/modeluzisaturnite.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeluzisaturnite.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeluzisaturnite.png diff --git a/src/main/resources/assets/hbm/textures/models/modeluzisilencer.png b/src/main/resources/assets/hbm/textures/models/weapons/modeluzisilencer.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modeluzisilencer.png rename to src/main/resources/assets/hbm/textures/models/weapons/modeluzisilencer.png diff --git a/src/main/resources/assets/hbm/textures/models/modelxvl1456.png b/src/main/resources/assets/hbm/textures/models/weapons/modelxvl1456.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelxvl1456.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelxvl1456.png diff --git a/src/main/resources/assets/hbm/textures/models/modelzomg.png b/src/main/resources/assets/hbm/textures/models/weapons/modelzomg.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelzomg.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelzomg.png diff --git a/src/main/resources/assets/hbm/textures/models/modelzomg_e.png b/src/main/resources/assets/hbm/textures/models/weapons/modelzomg_e.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/modelzomg_e.png rename to src/main/resources/assets/hbm/textures/models/weapons/modelzomg_e.png diff --git a/src/main/resources/assets/hbm/textures/models/rpc.png b/src/main/resources/assets/hbm/textures/models/weapons/rpc.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/rpc.png rename to src/main/resources/assets/hbm/textures/models/weapons/rpc.png diff --git a/src/main/resources/assets/hbm/textures/particle/explosion.png b/src/main/resources/assets/hbm/textures/particle/explosion.png deleted file mode 100644 index 4ef6a2b6b7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/particle/explosion.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/particle/explosion_bf.png b/src/main/resources/assets/hbm/textures/particle/explosion_bf.png deleted file mode 100644 index 246cbde61c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/particle/explosion_bf.png and /dev/null differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 1eaf6aeb4e..c9474a9bb5 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "HBM's Nuclear Tech - Extended Edition", "description": "A mod that adds all kinds of nukes and other things", - "version": "1.9.8", + "version": "2.0.0", "credits": "\n\nHBMMods: creator\nDrillgon200: original 1.12.2 port\nTheOriginalGolem: 1.12.2 bug fixing\nAlcater: Custom 1.12.2 version, updating and texturing\n\nSten89: bug tester\nGB_Doge_9000: bug tester\nHoboy: textures and models\nDoctor17: Russian translations\ngrangerave\nrodolphito\nmexikoedi: log spam fix\nCrowbar Collective: gluon gun sounds\n70000HP: MIRV and configs\n", "logoFile": "assets/hbm/textures/logo.png", "mcversion": "${mcversion}", @@ -11,6 +11,7 @@ "updateUrl": "https://www.curseforge.com/minecraft/mc-mods/hbms-nuclear-tech-mod-extended-edition/files", "authorList": [ "Alcater", + "Drillgon200", "HBMMods/The Bobcat" ], "parent": "",