diff --git a/changelog b/changelog index b675028b3..198a7f873 100644 --- a/changelog +++ b/changelog @@ -1,12 +1,6 @@ ## Changed -* Changed the multi fluid ID recipe, they now use analog circuits instead of silicon based ones, no longer requiring plastic to make -* Decreased the connection speed for all battery blocks, a full discharge now takes 30 seconds instead of 1 second, and charging now takes 10 seconds - * Capacitors have also been nerfed but they are twice as fast as battery blocks, 5 seconds for charging and 15 seconds for discharging -* Removed forgotten bricks -* Updated CMB brick texture -* The ICF machine block now renders with its 3d model in the creative inventory +* Most loot piles now have configurable loot pools ## Fixed -* Fixed pumpjack gauges not syncing properly -* Fixed some concrete variants not being revertable into uncolored concrete -* Fixed the ore density scanner not using proper translations for the HUD \ No newline at end of file +* Fixed some things not using variable max charge for armor mods, like static pads and DNT nanosuit tooltips +* Fixed arc furnace recipe config parser breaking when reading fluid recipes \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 93317634f..856cc07bf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5061 +mod_build_number=5082 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index c264d0120..6643e3fcd 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -1,7 +1,7 @@ package api.hbm.energymk2; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import api.hbm.energymk2.Nodespace.PowerNode; diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 5ec931234..27bcc21f2 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -1,7 +1,7 @@ package api.hbm.energymk2; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import api.hbm.energymk2.Nodespace.PowerNode; diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index a6db68c2c..e299938c1 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -1,8 +1,8 @@ package api.hbm.fluid; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import api.hbm.tile.ILoadedTile; diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 4c98dfd14..3f5ab4f95 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -2,8 +2,8 @@ package api.hbm.fluid; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/api/hbm/item/IButtonReceiver.java b/src/main/java/api/hbm/item/IButtonReceiver.java deleted file mode 100644 index db1741b55..000000000 --- a/src/main/java/api/hbm/item/IButtonReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package api.hbm.item; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IButtonReceiver { - - /** - * Called in ModEventHandlerClient for any keyboard input related to this item - * @param stack - * @param player - */ - @SideOnly(Side.CLIENT) - public void handleKeyboardInput(ItemStack stack, EntityPlayer player); -} diff --git a/src/main/java/api/hbm/item/IClickReceiver.java b/src/main/java/api/hbm/item/IClickReceiver.java deleted file mode 100644 index fd6830410..000000000 --- a/src/main/java/api/hbm/item/IClickReceiver.java +++ /dev/null @@ -1,20 +0,0 @@ -package api.hbm.item; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IClickReceiver { - - /** - * Called in ModEventHandlerClient for any mouse input related to this item - * @param stack - * @param player - * @param button - * @param state - * @return true if the event should be canceled - */ - @SideOnly(Side.CLIENT) - public boolean handleMouseInput(ItemStack stack, EntityPlayer player, int button, boolean state); -} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7a1a9f6e2..46eec14fd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -893,7 +893,6 @@ public class ModBlocks { public static Block watz_element; public static Block watz_cooler; public static Block watz_end; - public static Block watz_conductor; public static Block balefire; public static Block fire_digamma; @@ -1997,7 +1996,6 @@ public class ModBlocks { watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); - watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3310,6 +3308,12 @@ public class ModBlocks { GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); + + register(watz_element); + register(watz_cooler); + register(watz_end); + register(watz); + register(watz_pump); register(machine_icf_press); register(icf_laser_component); @@ -3317,13 +3321,6 @@ public class ModBlocks { register(icf_block); register(icf_component); register(icf); - - GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); - GameRegistry.registerBlock(watz_cooler, watz_cooler.getUnlocalizedName()); - register(watz_end); - GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(watz, watz.getUnlocalizedName()); - GameRegistry.registerBlock(watz_pump, watz_pump.getUnlocalizedName()); //E GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index 93683f0d2..f2a3f7783 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -7,8 +7,8 @@ import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index f2a8d73d7..8ae9a63a3 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -9,8 +9,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/generic/BlockEmitter.java b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java index 4d6b10199..c9b09dae1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockEmitter.java +++ b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java @@ -4,9 +4,9 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ITooltipProvider; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.tileentity.INBTPacketReceiver; import api.hbm.block.IToolable; diff --git a/src/main/java/com/hbm/blocks/generic/PartEmitter.java b/src/main/java/com/hbm/blocks/generic/PartEmitter.java index db823972c..771c9e37d 100644 --- a/src/main/java/com/hbm/blocks/generic/PartEmitter.java +++ b/src/main/java/com/hbm/blocks/generic/PartEmitter.java @@ -3,8 +3,8 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.ITooltipProvider; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import api.hbm.block.IToolable; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index f7a0fcfb8..f1662ec4e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -10,8 +10,8 @@ import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index 321d8307d..10d851109 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -11,8 +11,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.machine.TileEntityICFController; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 4c9654659..0fcbc6117 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -9,8 +9,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.machine.TileEntityPWRController; import com.hbm.util.fauxpointtwelve.BlockPos; diff --git a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java index 73526c494..459e958fd 100644 --- a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java +++ b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java @@ -8,8 +8,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityZirnoxDestroyed; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java index c5018700a..28ddcd06a 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java @@ -4,7 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockFlammable; import com.hbm.items.ModItems; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; 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 0480adc74..dc2f70829 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -4,8 +4,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; 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 299cf9f3c..9aef21c0b 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -5,8 +5,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 22dcdcad8..b21009505 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -82,10 +82,13 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { addToInventory(inv, access, toAdd, outputDirection.getOpposite().ordinal()); } + TileEntityCraneInserter inserter = null; + if(toAdd.stackSize > 0) { - addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, outputDirection.getOpposite().ordinal()); + inserter = (TileEntityCraneInserter) world.getTileEntity(x, y, z); + addToInventory(inserter, null, toAdd, outputDirection.getOpposite().ordinal()); } - if(toAdd.stackSize > 0) { + if(toAdd.stackSize > 0 && inserter != null && !inserter.destroyer) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); world.spawnEntityInWorld(drop); } diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index 5a0b3d5b3..bfea2582e 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -54,6 +54,7 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { if(!player.isSneaking()) { int meta = world.getBlockMetadata(x, y, z); + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); if(meta == 0) { world.setBlockMetadataWithNotify(x, y, z, 1, 2); world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); @@ -62,7 +63,6 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); } - TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); te.updateState(); return true; diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java index 6f1a803cd..20ba47c0e 100644 --- a/src/main/java/com/hbm/commands/CommandSatellites.java +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -8,6 +8,7 @@ import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; @@ -25,8 +26,10 @@ public class CommandSatellites extends CommandBase { @Override public String getCommandUsage(ICommandSender iCommandSender) { return String.format(Locale.US, - "%s/%s orbit %s- Launch the held satellite\n" + - "%s/%s descend %s- Deletes satellite by frequency.", + "%s/%s orbit %s- Launch the held satellite.\n" + + "%s/%s descend %s- Deletes satellite by frequency.\n"+ + "%s/%s list %s- Lists all active satellites.", + EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE ); @@ -65,6 +68,22 @@ public class CommandSatellites extends CommandBase { sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.no_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } break; + case "list": + data = SatelliteSavedData.getData(sender.getEntityWorld()); + if (data.sats.isEmpty()) { + ChatComponentTranslation message = new ChatComponentTranslation("commands.satellite.no_active_satellites"); + message.getChatStyle().setColor(EnumChatFormatting.RED); + sender.addChatMessage(message); + } else { + data.sats.forEach((listFreq, sat) -> { + String messageText = String.valueOf(listFreq) + " - " + sat.getClass().getSimpleName(); + ChatComponentText message = new ChatComponentText(messageText); + message.getChatStyle().setColor(EnumChatFormatting.GREEN); + sender.addChatMessage(message); + }); + } + break; + } } @@ -78,7 +97,7 @@ public class CommandSatellites extends CommandBase { return Collections.emptyList(); } if(args.length == 1) { - return getListOfStringsMatchingLastWord(args, "orbit", "descend"); + return getListOfStringsMatchingLastWord(args, "orbit", "descend","list"); } if (args[0].equals("descend")) { return getListOfStringsFromIterableMatchingLastWord(args, SatelliteSavedData.getData(sender.getEntityWorld()).sats.keySet().stream().map(String::valueOf).collect(Collectors.toList())); diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index b46a16a23..643ca8a9a 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -49,6 +49,7 @@ public class GeneralConfig { public static boolean enable528BedrockSpawn = false; public static boolean enable528BosniaSimulator = true; public static boolean enable528BedrockReplacement = true; + public static boolean enable528NetherBurn = true; public static int coltanRate = 2; public static int bedrockRate = 50; @@ -127,6 +128,7 @@ public class GeneralConfig { enable528BedrockSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockSpawning", "Enables the bedrock coltan ores as a rare spawn. These will be rarely found anywhere in the world.", false); enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true); enable528BedrockReplacement = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528BedrockReplacement", "Replaces certain bedrock ores with ones that require additional processing.", true); + enable528NetherBurn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528NetherBurn", "Whether players burn in the nether", true); coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); bedrockRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_bedrockColtanFrequency", "Determines how often (1 in X) bedrock coltan ores spawn. Applies for both the bedrock ores in the coltan deposit (if applicable) and the random bedrock ores (if applicable)", 50); diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java index 150c4352f..6e1375bbc 100644 --- a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -109,6 +109,7 @@ public class EntityFallingBlockNT extends Entity { int x = MathHelper.floor_double(this.posX); int y = MathHelper.floor_double(this.posY); int z = MathHelper.floor_double(this.posZ); + int meta = this.getMeta(); if(this.fallingTicks == 1) { if(this.worldObj.getBlock(x, y, z) != this.getBlock()) { @@ -127,10 +128,10 @@ public class EntityFallingBlockNT extends Entity { if(this.worldObj.getBlock(x, y, z) != Blocks.piston_extension) { this.setDead(); - if(!this.destroyOnLand && replacementCheck(x, y, z) && this.worldObj.setBlock(x, y, z, this.getBlock(), this.getMeta(), 3)) { + if(!this.destroyOnLand && replacementCheck(x, y, z) && this.worldObj.setBlock(x, y, z, this.getBlock(), meta, 3)) { - if(this.getBlock() instanceof BlockFalling) ((BlockFalling) this.getBlock()).func_149828_a(this.worldObj, x, y, z, this.getMeta()); - if(this.getBlock() instanceof BlockFallingNT) ((BlockFallingNT) this.getBlock()).onLand(this.worldObj, x, y, z, this.getMeta()); + if(this.getBlock() instanceof BlockFalling) ((BlockFalling) this.getBlock()).func_149828_a(this.worldObj, x, y, z, meta); + if(this.getBlock() instanceof BlockFallingNT) ((BlockFallingNT) this.getBlock()).onLand(this.worldObj, x, y, z, meta); if(this.tileNBT != null && this.getBlock() instanceof ITileEntityProvider) { TileEntity tileentity = this.worldObj.getTileEntity(x, y, z); @@ -153,13 +154,13 @@ public class EntityFallingBlockNT extends Entity { tileentity.markDirty(); } } - } else if(this.canDrop && !this.destroyOnLand) { - this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + } else if(this.canDrop && !this.destroyOnLand && this.getBlock().getItemDropped(meta, rand, 0) != null) { + this.entityDropItem(new ItemStack(this.getBlock().getItemDropped(meta, rand, 0), 1, this.getBlock().damageDropped(meta)), 0.0F); } } } else if(this.fallingTicks > 100 && !this.worldObj.isRemote && (y < 1 || y > 256) || this.fallingTicks > 600) { - if(this.canDrop) { - this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + if(this.canDrop && this.getBlock().getItemDropped(meta, rand, 0) != null) { + this.entityDropItem(new ItemStack(this.getBlock().getItemDropped(meta, rand, 0), 1, this.getBlock().damageDropped(meta)), 0.0F); } this.setDead(); diff --git a/src/main/java/com/hbm/entity/item/EntityFireworks.java b/src/main/java/com/hbm/entity/item/EntityFireworks.java index 64227e4aa..6602c2ef4 100644 --- a/src/main/java/com/hbm/entity/item/EntityFireworks.java +++ b/src/main/java/com/hbm/entity/item/EntityFireworks.java @@ -1,7 +1,7 @@ package com.hbm.entity.item; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java b/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java index 478363a7d..53f379cae 100644 --- a/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java +++ b/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java @@ -1,8 +1,8 @@ package com.hbm.entity.item; import com.hbm.entity.cart.EntityMinecartBogie; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 820bdfc3b..25cc3acb4 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -11,8 +11,8 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.LoopedEntitySoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.LoopedEntitySoundPacket; import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index 75fea35f7..e8da0ab89 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -2,8 +2,8 @@ package com.hbm.entity.logic; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/logic/EntityEMP.java b/src/main/java/com/hbm/entity/logic/EntityEMP.java index 3ba75fc54..c322b4fa7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityEMP.java +++ b/src/main/java/com/hbm/entity/logic/EntityEMP.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; import api.hbm.energymk2.IEnergyHandlerMK2; import cofh.api.energy.IEnergyProvider; diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 665d9550d..c72a26679 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -16,8 +16,8 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionSolinium; import com.hbm.interfaces.Spaghetti; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index bdee6f5f4..6c07d944d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -8,8 +8,8 @@ import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.init.Blocks; diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java index ca78f32a9..8322f29b6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java @@ -9,8 +9,8 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java index c5e3bb9f7..cffaee494 100644 --- a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java +++ b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java @@ -5,8 +5,8 @@ import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.entity.IRadiationImmune; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java index ad6d203fc..34e19c294 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPigeon.java +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -8,8 +8,8 @@ import com.hbm.entity.mob.ai.EntityAIStopFlying; import com.hbm.entity.mob.ai.EntityAISwimmingConditional; import com.hbm.entity.mob.ai.EntityAIWanderConditional; import com.hbm.items.tool.ItemFertilizer; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java index aa0851cc9..e6db43891 100644 --- a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java @@ -6,8 +6,8 @@ import java.util.List; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.machine.TileEntityTesla; diff --git a/src/main/java/com/hbm/entity/mob/EntityUFO.java b/src/main/java/com/hbm/entity/mob/EntityUFO.java index 4a8f46ee5..f30a84f93 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFO.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFO.java @@ -9,8 +9,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index a3ac74fbf..423f68429 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -15,8 +15,8 @@ import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java index 7c1ce74e1..daad80877 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java @@ -11,8 +11,8 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index 72c0e29de..47dfee456 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java index 1a21d96c2..8775e9510 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java @@ -4,8 +4,8 @@ import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 2e44faf9f..d6370efb8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -25,8 +25,8 @@ import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorUtil; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/entity/projectile/EntityCog.java b/src/main/java/com/hbm/entity/projectile/EntityCog.java index 84c27bb77..8fb460a3e 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCog.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCog.java @@ -2,8 +2,8 @@ package com.hbm.entity.projectile; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/projectile/EntityRubble.java b/src/main/java/com/hbm/entity/projectile/EntityRubble.java index b19f7263b..4cc2daf1f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRubble.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRubble.java @@ -2,7 +2,7 @@ package com.hbm.entity.projectile; import com.hbm.lib.ModDamageSource; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/entity/projectile/EntitySawblade.java b/src/main/java/com/hbm/entity/projectile/EntitySawblade.java index 9d4a3b592..fcc0c5a79 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySawblade.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySawblade.java @@ -2,8 +2,8 @@ package com.hbm.entity.projectile; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index ea23952ef..ded0a8193 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -70,29 +70,6 @@ public class ExplosionChaos { } } - public static void antiCheat(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 (ZZ < r22) { - if (rand.nextInt(15) == 0 && world.getBlock(X, Y, Z) != Blocks.air) - world.setBlock(X, Y, Z, ModBlocks.cheater_virus); - } - } - } - } - } - public static void hardenVirus(World world, int x, int y, int z, int bombStartStrength) { int r = bombStartStrength; @@ -405,7 +382,6 @@ public class ExplosionChaos { } public static void pDestruction(World world, int x, int y, int z) { - EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); world.spawnEntityInWorld(entityfallingblock); } diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 2fff85b46..ae8f4e5cb 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -5,8 +5,8 @@ import java.util.Random; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java index 0734db2e5..cca47893b 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java @@ -5,8 +5,9 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java index 088c38a83..be83da6b2 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java @@ -2,8 +2,8 @@ package com.hbm.explosion.vanillant.standard; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java index 79b5b6966..583eaa004 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; -import com.hbm.packet.ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.util.MathHelper; diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java index 186ea3b85..73f75de27 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java @@ -5,8 +5,8 @@ import java.util.Map.Entry; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IPlayerProcessor; -import com.hbm.packet.ExplosionKnockbackPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.ExplosionKnockbackPacket; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 81a44a47a..18c6a73fa 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -8,9 +8,9 @@ import com.hbm.config.RadiationConfig; import com.hbm.entity.mob.EntityDuck; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 485de324f..fa14f7d41 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -245,8 +245,9 @@ public class BossSpawnHandler { Vec3 vec; if(repell) { vec = Vec3.createVectorHelper(meteor.posX - player.posX, 0, meteor.posZ - player.posZ).normalize(); - vec.xCoord = vec.xCoord * meteorRand.nextDouble() - 0.5D; - vec.zCoord = vec.zCoord * meteorRand.nextDouble() - 0.5D; + double vel = meteorRand.nextDouble(); + vec.xCoord = vec.xCoord * vel; + vec.zCoord = vec.zCoord * vel; meteor.safe = true; } else { vec = Vec3.createVectorHelper(meteorRand.nextDouble() - 0.5D, 0, 0); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index a7f68661a..2ce39d4ce 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -20,10 +20,10 @@ import com.hbm.interfaces.IArmorModDash; import com.hbm.items.armor.ArmorFSB; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.ExtPropPacket; import com.hbm.potion.HbmPotion; -import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; @@ -99,8 +99,8 @@ public class EntityEffectHandler { ExplosionNukeSmall.explode(entity.worldObj, entity.posX, entity.posY, entity.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); } } - - if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { + //only sets players on fire so mod compatibility doesnt die + if((GeneralConfig.enable528 && GeneralConfig.enable528NetherBurn) && entity instanceof EntityPlayer && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { entity.setFire(5); } diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index a29dcad8c..9b30effe7 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -1,17 +1,19 @@ package com.hbm.handler; import com.hbm.inventory.gui.GUICalculator; + import cpw.mods.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; import com.hbm.extprop.HbmPlayerProps; import com.hbm.main.MainRegistry; -import com.hbm.packet.KeybindPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.KeybindPacket; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; +import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; import net.minecraft.client.settings.KeyBinding; public class HbmKeybinds { @@ -21,13 +23,17 @@ public class HbmKeybinds { public static KeyBinding calculatorKey = new KeyBinding(category + ".calculator", Keyboard.KEY_N, category); public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); - public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category); public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category); + public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); + public static KeyBinding gunPrimaryKey = new KeyBinding(category + ".gunPrimary", -100, category); + public static KeyBinding gunSecondaryKey = new KeyBinding(category + ".gunSecondary", -99, category); + public static KeyBinding gunTertiaryKey = new KeyBinding(category + ".gunTertitary", -98, category); + public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category); public static KeyBinding craneDownKey = new KeyBinding(category + ".craneMoveDown", Keyboard.KEY_DOWN, category); public static KeyBinding craneLeftKey = new KeyBinding(category + ".craneMoveLeft", Keyboard.KEY_LEFT, category); @@ -38,9 +44,14 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(calculatorKey); ClientRegistry.registerKeyBinding(jetpackKey); ClientRegistry.registerKeyBinding(hudKey); - ClientRegistry.registerKeyBinding(reloadKey); ClientRegistry.registerKeyBinding(dashKey); ClientRegistry.registerKeyBinding(trainKey); + + ClientRegistry.registerKeyBinding(reloadKey); + ClientRegistry.registerKeyBinding(gunPrimaryKey); + ClientRegistry.registerKeyBinding(gunSecondaryKey); + ClientRegistry.registerKeyBinding(gunTertiaryKey); + ClientRegistry.registerKeyBinding(craneUpKey); ClientRegistry.registerKeyBinding(craneDownKey); ClientRegistry.registerKeyBinding(craneLeftKey); @@ -50,6 +61,21 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(copyToolCtrl); } + @SubscribeEvent + public void mouseEvent(MouseInputEvent event) { + HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + + for(EnumKeybind key : EnumKeybind.values()) { + boolean last = props.getKeyPressed(key); + boolean current = MainRegistry.proxy.getIsKeyPressed(key); + + if(last != current) { + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); + props.setKeyPressed(key, current); + } + } + } + @SubscribeEvent public void keyEvent(KeyInputEvent event) { if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only @@ -73,7 +99,6 @@ public class HbmKeybinds { JETPACK, TOGGLE_JETPACK, TOGGLE_HEAD, - RELOAD, DASH, TRAIN, CRANE_UP, @@ -82,6 +107,10 @@ public class HbmKeybinds { CRANE_RIGHT, CRANE_LOAD, TOOL_ALT, - TOOL_CTRL + TOOL_CTRL, + GUN_PRIMARY, + GUN_SECONDARY, + GUN_TERTIARY, + RELOAD } } diff --git a/src/main/java/com/hbm/handler/HbmKeybindsServer.java b/src/main/java/com/hbm/handler/HbmKeybindsServer.java new file mode 100644 index 000000000..a8f5a99d6 --- /dev/null +++ b/src/main/java/com/hbm/handler/HbmKeybindsServer.java @@ -0,0 +1,26 @@ +package com.hbm.handler; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.items.IKeybindReceiver; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class HbmKeybindsServer { + + /** Can't put this in HbmKeybinds because it's littered with clientonly stuff */ + public static void onPressedServer(EntityPlayer player, EnumKeybind key, boolean state) { + + // EXTPROP HANDLING + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.setKeyPressed(key, state); + + // ITEM HANDLING + ItemStack held = player.getHeldItem(); + if(held != null && held.getItem() instanceof IKeybindReceiver) { + IKeybindReceiver rec = (IKeybindReceiver) held.getItem(); + if(rec.canHandleKeybind(player, held, key)) rec.handleKeybind(player, held, key, state); + } + } +} diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 11e2621b3..46025acce 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -4,8 +4,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 5dac19082..b355567bf 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -14,8 +14,8 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry.HazardClass; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 0bb1f6103..a6d351802 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -11,8 +11,8 @@ import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.ResourceManager; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 9f7a5aca7..98ac02468 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -17,8 +17,8 @@ import com.hbm.lib.HbmCollection; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 786346617..80dd4fc6d 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -19,8 +19,8 @@ import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.ResourceManager; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index 847a3f3ab..ac04b5aa4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -14,8 +14,8 @@ import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; import com.hbm.lib.HbmCollection; import com.hbm.lib.RefStrings; import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index 4c0f19804..34c25392a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -12,8 +12,8 @@ import com.hbm.items.ItemAmmoEnums.Ammo556mm; import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index 47ae1fb7d..8362c2605 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -10,8 +10,8 @@ import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index 2d76d18e6..f5b88310c 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -11,7 +11,7 @@ import com.hbm.main.MainRegistry; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.ChatBuilder; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 0ea31f450..ed16b5fa1 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -19,9 +19,9 @@ import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.ExplosionKnockbackPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.ExplosionKnockbackPacket; import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.tileentity.IRepairable; diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 5ed0b21db..123d99d7e 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -17,8 +17,8 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 1d7f84c1f..2aa52a588 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -12,8 +12,8 @@ import com.hbm.items.ItemAmmoEnums.AmmoGrenade; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.ResourceManager; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index d7fff5e2b..2bdf1cb63 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -12,8 +12,8 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.BobMathUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index 161dd5522..e09d50209 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -5,8 +5,8 @@ import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; import com.hbm.config.RadiationConfig; -import com.hbm.packet.AuxParticlePacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index f7d6a3c49..a716f925c 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -6,6 +6,7 @@ import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; +import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +33,7 @@ public class HazardTypeHydroactive extends HazardTypeBase { if(RadiationConfig.disableHydro) return; - if(item.isWet()) { + if(item.isWet() || item.worldObj.getBlock((int) Math.floor(item.posX), (int) Math.floor(item.posY), (int) Math.floor(item.posZ)).getMaterial() == Material.water) { item.setDead(); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); } diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 85a43f6bf..c2f5914db 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -116,10 +116,17 @@ public class RecipesCommon { this.stacksize = 1; return; } - this.item = stack.getItem(); - if(this.item == null) this.item = ModItems.nothing; //i'm going to bash some fuckard's head in - this.stacksize = stack.stackSize; - this.meta = stack.getItemDamage(); + try { + this.item = stack.getItem(); + if(this.item == null) this.item = ModItems.nothing; //i'm going to bash some fuckard's head in + this.stacksize = stack.stackSize; + this.meta = stack.getItemDamage(); + } catch(Exception ex) { + this.item = ModItems.nothing; + if(!GeneralConfig.enableSilentCompStackErrors) { + ex.printStackTrace(); + } + } } public ComparableStack makeSingular() { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java index ad08c4a45..aa5acf950 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -17,7 +17,7 @@ public class ContainerCraneInserter extends Container { 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 Slot(inserter, j + i * 7, 8 + j * 18, 17 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 2b9bbe7ea..5ad9b2944 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -17,8 +17,8 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; import com.hbm.lib.RefStrings; -import com.hbm.packet.AnvilCraftPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AnvilCraftPacket; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java index e739e81d6..bba645724 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java index dc8f89785..d75127785 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java +++ b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java @@ -9,8 +9,8 @@ import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; import com.hbm.util.EnumUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 66e72609b..9e2d4aa51 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java index e8ac99bda..89502cc38 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCoreEmitter; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityCoreEmitter; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java b/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java index 99c6fb2be..30ec1aa1d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCoreStabilizer; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java index b4c4dd7b2..6a066a684 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCounterTorch; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchCounter; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java b/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java index e2faf5fa4..80dc88555 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneBoxer; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneBoxer; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java index e6937c829..7e8f74ab0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneExtractor; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java b/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java index ef1465205..6bff412fc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneGrabber; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneGrabber; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java index 28813d9ae..a4890ae00 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java @@ -4,11 +4,15 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneInserter; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUICraneInserter extends GuiInfoContainer { @@ -23,11 +27,23 @@ public class GUICraneInserter extends GuiInfoContainer { this.xSize = 176; this.ySize = 185; } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 34 < y && guiTop + 34 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("destroyer", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, inserter.xCoord, inserter.yCoord, inserter.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 5, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -36,5 +52,8 @@ public class GUICraneInserter extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(inserter.destroyer) + drawTexturedModalRect(guiLeft + 151, guiTop + 34, 176, 0, 18, 18); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java b/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java index f378237df..77798355b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneRouter; import com.hbm.lib.RefStrings; import com.hbm.module.ModulePatternMatcher; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneRouter; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java index cd99405b4..4e98d7c4a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerDroneCrate; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityDroneCrate; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java index 914228045..32a547130 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerElectrolyserFluid; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityElectrolyser; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java index 3e4eabfd9..670acabb0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerElectrolyserMetal; import com.hbm.inventory.material.Mats; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityElectrolyser; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIFEL.java b/src/main/java/com/hbm/inventory/gui/GUIFEL.java index 890cb3299..443c01cac 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFEL.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFEL.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFEL; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityFEL; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIForceField.java b/src/main/java/com/hbm/inventory/gui/GUIForceField.java index 506541074..e18aca9f1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIForceField.java +++ b/src/main/java/com/hbm/inventory/gui/GUIForceField.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerForceField; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityForceField; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java index 817be3b10..80fd75371 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFunnel; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineFunnel; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index b39db1804..92d97a872 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerHadron; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityHadron; import com.hbm.tileentity.machine.TileEntityHadron.EnumHadronState; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java index a5a2a781f..d4eefef9a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerHeaterHeatex; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityHeaterHeatex; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIITER.java b/src/main/java/com/hbm/inventory/gui/GUIITER.java index 4e9b1d85c..27f78ff5d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIITER.java +++ b/src/main/java/com/hbm/inventory/gui/GUIITER.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerITER; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityITER; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java index a90bd4799..d3bf1c87f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java @@ -10,8 +10,8 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadRusted; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java index f1fdb4d91..7e50956a2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java @@ -11,8 +11,8 @@ import com.hbm.inventory.container.ContainerMachineArcFurnaceLarge; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 11480d37d..2fa8c4bbe 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -14,8 +14,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index 4b78d4aa5..fe81cccba 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineExcavator; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineExcavator; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java index 54ddb47e9..9ef320390 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineFluidTank; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index abcc30b6e..eca4887c6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -5,8 +5,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineGasFlare; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java index c5373d331..975fb7ad1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java @@ -6,8 +6,8 @@ import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.items.weapon.ItemCustomMissile; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePronter; import com.hbm.tileentity.bomb.TileEntityLaunchTable; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java b/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java index c40100afa..d8aec81b6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineMissileAssembly; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePart; import com.hbm.render.util.MissilePronter; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 68fd71f77..43fd1ba61 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -5,8 +5,8 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 310bc7db0..fe6ecbdea 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -11,8 +11,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java index 977f11d20..659febdab 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineWoodBurner; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java index dfa413f97..08d74a6c3 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMassStorage; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.storage.TileEntityMassStorage; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java index bc64a398e..13a3ac0f7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMicrowave; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityMicrowave; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java index 79681e6f8..6f5441984 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMiningLaser; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 79f6461d6..974e41635 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -9,8 +9,8 @@ import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.recipes.MixerRecipes; import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineMixer; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java b/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java index b03155b93..a3147d449 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeFstbmb; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.bomb.TileEntityNukeBalefire; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java index 8d040b03f..d93949e1a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerOilburner; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityHeaterOilburner; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index db21f4194..3220d178b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerPWR; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityPWRController; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java index 0b32f00e1..8a645908c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java @@ -6,8 +6,8 @@ import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index b07d3a19c..7867f1bc2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -11,8 +11,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java index fecf9b8e3..b1c8f415e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerRBMKControl; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java index 13ce7330f..acb1efae1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerRBMKControlAuto; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlAuto; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java index f9014122c..c1fb2b367 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java @@ -6,8 +6,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityRadioRec; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java index b141317da..b44711ee5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorControl; import com.hbm.lib.RefStrings; import com.hbm.module.NumberDisplay; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorControl; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java index e02d155a5..e8d13b703 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorResearch; import com.hbm.lib.RefStrings; import com.hbm.module.NumberDisplay; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorResearch; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java index f09558da7..be0312a00 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorZirnox; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index 64b9f36bd..b36c07fcd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -10,8 +10,8 @@ import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntitySILEX; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java index a96b12b6a..14ed3b483 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.ItemBobmazonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.ItemBobmazonPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java b/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java index 67cae4179..7f9c35ac9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.packet.ItemDesignatorPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.ItemDesignatorPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index e72526ced..e25744def 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -12,8 +12,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTItemControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTItemControlPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java index fc90751df..1f879d0a7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java @@ -6,8 +6,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import com.hbm.tileentity.network.TileEntityRadioTorchSender; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java index c78ea3061..11b38f125 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java @@ -7,8 +7,8 @@ import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java index af560d0d9..e7f4fe2bb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java @@ -8,7 +8,7 @@ import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatCoordPacket; +import com.hbm.packet.toserver.SatCoordPacket; import com.hbm.saveddata.satellites.Satellite.CoordActions; import com.hbm.saveddata.satellites.Satellite.Interfaces; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java index 392f620f9..bba6b5b4f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java @@ -10,7 +10,7 @@ import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatLaserPacket; +import com.hbm.packet.toserver.SatLaserPacket; import com.hbm.saveddata.satellites.Satellite.InterfaceActions; import com.hbm.saveddata.satellites.Satellite.Interfaces; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index f58519d0a..a91652ef0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -24,8 +24,8 @@ import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.ItemFolderPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java b/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java index 644f6eff6..a1fdb30cc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java +++ b/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java index f53a71a13..04b188f14 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -1,8 +1,8 @@ package com.hbm.inventory.gui; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretArty; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index c4c79e551..c5964c108 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -8,9 +8,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java index 1458112b9..2ca5524f1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java @@ -1,8 +1,8 @@ package com.hbm.inventory.gui; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.tileentity.turret.TileEntityTurretHIMARS; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatz.java b/src/main/java/com/hbm/inventory/gui/GUIWatz.java index c22046d29..cf190b93e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWatz.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWatz.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerWatz; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.render.util.GaugeUtil; import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityWatz; diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index bec49c8d3..d58fa3c3c 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -7,8 +7,9 @@ import codechicken.nei.api.INEIGuiHandler; import codechicken.nei.api.TaggedInventoryArea; import com.hbm.inventory.SlotPattern; import com.hbm.inventory.container.ContainerBase; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; + import cpw.mods.fml.common.Optional; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java index 316c6e9fb..c406fd3c9 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java +++ b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java @@ -7,8 +7,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTelex; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index eaafa0638..c32d31a52 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -233,7 +233,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { List mats = new ArrayList(); for(JsonElement fluid : fluids) { JsonArray matStack = fluid.getAsJsonArray(); - MaterialStack stack = new MaterialStack(Mats.matById.get(matStack.get(0).getAsInt()), matStack.get(1).getAsInt()); + MaterialStack stack = new MaterialStack(Mats.matByName.get(matStack.get(0).getAsString()), matStack.get(1).getAsInt()); if(stack.material.smeltable == SmeltingBehavior.SMELTABLE) { mats.add(stack); } diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java index 0d4fd2d11..a112f92a5 100644 --- a/src/main/java/com/hbm/itempool/ItemPool.java +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -65,6 +65,10 @@ public class ItemPool { return pool.pool; } + public static ItemStack getStack(String pool, Random rand) { + return getStack(ItemPool.getPool(pool), rand); + } + public static ItemStack getStack(WeightedRandomChestContent[] pool, Random rand) { WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(rand, pool); ItemStack stack = weighted.theItemId.copy(); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsPile.java b/src/main/java/com/hbm/itempool/ItemPoolsPile.java index 46bf7adca..254016416 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsPile.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsPile.java @@ -2,6 +2,7 @@ package com.hbm.itempool; import static com.hbm.lib.HbmChestContents.weighted; +import com.hbm.inventory.material.Mats; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; @@ -14,6 +15,13 @@ public class ItemPoolsPile { public static final String POOL_PILE_HIVE = "POOL_PILE_HIVE"; public static final String POOL_PILE_BONES = "POOL_PILE_BONES"; public static final String POOL_PILE_CAPS = "POOL_PILE_CAPS"; + public static final String POOL_PILE_MED_SYRINGE = "POOL_PILE_MED_SYRINGE"; + public static final String POOL_PILE_MED_PILLS = "POOL_PILE_MED_PILLS"; + public static final String POOL_PILE_MAKESHIFT_GUN = "POOL_PILE_MAKESHIFT_GUN"; + public static final String POOL_PILE_MAKESHIFT_WRENCH = "POOL_PILE_MAKESHIFT_WRENCH"; + public static final String POOL_PILE_MAKESHIFT_PLATES = "POOL_PILE_MAKESHIFT_PLATES"; + public static final String POOL_PILE_MAKESHIFT_WIRE = "POOL_PILE_MAKESHIFT_WIRE"; + public static final String POOL_PILE_NUKE_STORAGE = "POOL_PILE_NUKE_STORAGE"; public static void init() { @@ -69,5 +77,36 @@ public class ItemPoolsPile { weighted(ModItems.cap_sparkle, 0, 4, 4, 1), }; }}; + + //medicine stashes + new ItemPool(POOL_PILE_MED_SYRINGE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.syringe_metal_stimpak, 0, 1, 1, 10), + weighted(ModItems.syringe_metal_medx, 0, 1, 1, 5), + weighted(ModItems.syringe_metal_psycho, 0, 1, 1, 5), + }; + }}; + new ItemPool(POOL_PILE_MED_PILLS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.radaway, 0, 1, 1, 10), + weighted(ModItems.radx, 0, 1, 1, 10), + weighted(ModItems.iv_blood, 0, 1, 1, 15), + weighted(ModItems.siox, 0, 1, 1, 5), + }; + }}; + + //makeshift gun + new ItemPool(POOL_PILE_MAKESHIFT_GUN) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.gun_lever_action, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_WRENCH) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wrench, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_PLATES) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.plate_combine_steel, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_WIRE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wire_fine, Mats.MAT_ALUMINIUM.id, 1, 1, 10) }; }}; + + new ItemPool(POOL_PILE_NUKE_STORAGE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_nuke, AmmoFatman.STOCK.ordinal(), 1, 1, 10), + weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 1, 50), + weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 1, 50), + }; + }}; } } diff --git a/src/main/java/com/hbm/items/IEquipReceiver.java b/src/main/java/com/hbm/items/IEquipReceiver.java index 1f0c76ecd..62746e4b0 100644 --- a/src/main/java/com/hbm/items/IEquipReceiver.java +++ b/src/main/java/com/hbm/items/IEquipReceiver.java @@ -1,9 +1,10 @@ package com.hbm.items; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; public interface IEquipReceiver { - public void onEquip(EntityPlayer player); + public void onEquip(EntityPlayer player, ItemStack stack); } diff --git a/src/main/java/com/hbm/items/IKeybindReceiver.java b/src/main/java/com/hbm/items/IKeybindReceiver.java new file mode 100644 index 000000000..5a44b4cce --- /dev/null +++ b/src/main/java/com/hbm/items/IKeybindReceiver.java @@ -0,0 +1,12 @@ +package com.hbm.items; + +import com.hbm.handler.HbmKeybinds.EnumKeybind; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IKeybindReceiver { + + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind); + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state); +} diff --git a/src/main/java/com/hbm/items/ISyncButtons.java b/src/main/java/com/hbm/items/ISyncButtons.java deleted file mode 100644 index e06e3e78c..000000000 --- a/src/main/java/com/hbm/items/ISyncButtons.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.items; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.MouseEvent; - -public interface ISyncButtons { - - public boolean canReceiveMouse(EntityPlayer player, ItemStack stack, MouseEvent event, int button, boolean buttonstate); - public void receiveMouse(EntityPlayer player, ItemStack stack, int button, boolean buttonstate); -} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 751a673b0..562f86c53 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -36,7 +36,7 @@ import com.hbm.items.weapon.ItemCustomMissilePart.*; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.items.weapon.ItemMissile.MissileFuel; import com.hbm.items.weapon.ItemMissile.MissileTier; -import com.hbm.items.weapon.gununified.ItemEnergyGunBase; +import com.hbm.items.weapon.sedna.factory.GunFactory; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; @@ -1597,10 +1597,6 @@ public class ModItems { public static Item gun_hp_ammo; public static Item gun_euthanasia; public static Item gun_euthanasia_ammo; - public static Item gun_dash; - public static Item gun_dash_ammo; - public static Item gun_twigun; - public static Item gun_twigun_ammo; public static Item gun_defabricator; public static Item gun_defabricator_ammo; public static Item gun_vortex; @@ -1610,11 +1606,9 @@ public class ModItems { public static Item gun_m2; public static Item gun_lunatic_marksman; public static Item gun_uac_pistol; - - // We'll figure this part out later - //public static Item gun_llr, gun_mlr, gun_hlr, gun_twr, gun_lunatic, gun_lunatic_shotty; - //public static Item gun_uac_pistol, gun_uac_dmr, gun_uac_carbine, gun_uac_lmg; - //public static Item gun_benelli, gun_benelli_mod, gun_g36, spear_bishamonten, pagoda; + + public static Item gun_debug; + public static Item ammo_debug; public static Item crucible; @@ -3869,7 +3863,7 @@ public class ModItems { sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); - sat_relay = new ItemSatRelay().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); + sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); @@ -4140,10 +4134,6 @@ public class ModItems { gun_hp = new GunHP().setUnlocalizedName("gun_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hp"); gun_euthanasia_ammo = new Item().setUnlocalizedName("gun_euthanasia_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia_ammo"); gun_euthanasia = new GunEuthanasia().setUnlocalizedName("gun_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia"); - gun_dash_ammo = new Item().setUnlocalizedName("gun_dash_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dash_ammo"); - gun_dash = new GunDash().setUnlocalizedName("gun_dash").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dash"); - gun_twigun_ammo = new Item().setUnlocalizedName("gun_twigun_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_twigun_ammo"); - gun_twigun = new GunEuthanasia().setUnlocalizedName("gun_twigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_twigun"); gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); gun_defabricator = new GunDefabricator().setUnlocalizedName("gun_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator"); gun_vortex = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); @@ -5461,6 +5451,8 @@ public class ModItems { mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); + GunFactory.init(); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.mud_fluid, 1000), new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket)); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.acid_fluid, 1000), new ItemStack(ModItems.bucket_acid), new ItemStack(Items.bucket)); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.toxic_fluid, 1000), new ItemStack(ModItems.bucket_toxic), new ItemStack(Items.bucket)); @@ -6999,6 +6991,9 @@ public class ModItems { GameRegistry.registerItem(gun_glass_cannon, gun_glass_cannon.getUnlocalizedName()); GameRegistry.registerItem(gun_lunatic_marksman, gun_lunatic_marksman.getUnlocalizedName()); + GameRegistry.registerItem(gun_debug, gun_debug.getUnlocalizedName()); + GameRegistry.registerItem(ammo_debug, ammo_debug.getUnlocalizedName()); + //Ammo GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index 5882236e7..5702fed77 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -3,8 +3,8 @@ package com.hbm.items.armor; import java.util.List; import com.hbm.extprop.HbmPlayerProps; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorBJ; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 068ae49f1..d223e45c6 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -6,8 +6,8 @@ import java.util.UUID; import com.google.common.collect.Multimap; import com.hbm.extprop.HbmPlayerProps; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorDNT; import com.hbm.util.ArmorUtil; import com.hbm.util.BobMathUtil; @@ -173,7 +173,7 @@ public class ArmorDNT extends ArmorFSBPowered { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(this.getMaxCharge(stack))); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java index e42510fc3..2bc61d99c 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDiesel.java +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -6,8 +6,8 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorDiesel; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/items/armor/ItemModKnife.java b/src/main/java/com/hbm/items/armor/ItemModKnife.java index 9d61d7e2e..0c49f092f 100644 --- a/src/main/java/com/hbm/items/armor/ItemModKnife.java +++ b/src/main/java/com/hbm/items/armor/ItemModKnife.java @@ -5,8 +5,8 @@ import java.util.UUID; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index a9df9cfff..7aeafb941 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ISatChip; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteScanner; diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index 9e7d62556..a29a570b3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -74,7 +74,7 @@ public class ItemModPads extends ItemArmorMod { if(charge == 0) charge = powered.consumption / 40; - long power = Math.min(powered.maxPower, powered.getCharge(stack) + charge); + long power = Math.min(powered.getMaxCharge(stack), powered.getCharge(stack) + charge); powered.setCharge(stack, power); } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index 09b90947b..f3dbc31bb 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 340fd2f09..f92b8798b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index cbf04933b..9e23c4375 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index d95312f80..1017fd2a4 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 17499655c..032fbf61a 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -3,8 +3,8 @@ package com.hbm.items.food; import java.util.List; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 612eb8442..0592359de 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -8,7 +8,7 @@ import com.hbm.inventory.gui.GUIScreenFluid; import com.hbm.items.IItemControlReceiver; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.ChatBuilder; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/items/special/ItemCigarette.java b/src/main/java/com/hbm/items/special/ItemCigarette.java index 092885af4..b38fd2d29 100644 --- a/src/main/java/com/hbm/items/special/ItemCigarette.java +++ b/src/main/java/com/hbm/items/special/ItemCigarette.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index e690582c0..57698b4a0 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -8,8 +8,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 0b4ef3dd2..16eb83a0b 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -5,8 +5,8 @@ import com.hbm.items.IAnimatedItem; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.util.EntityDamageUtil; diff --git a/src/main/java/com/hbm/items/tool/ItemChainsaw.java b/src/main/java/com/hbm/items/tool/ItemChainsaw.java index a2d4dfb38..b20f5ba3b 100644 --- a/src/main/java/com/hbm/items/tool/ItemChainsaw.java +++ b/src/main/java/com/hbm/items/tool/ItemChainsaw.java @@ -2,8 +2,8 @@ package com.hbm.items.tool; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.IHeldSoundProvider; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/hbm/items/tool/ItemDiscord.java b/src/main/java/com/hbm/items/tool/ItemDiscord.java index 75f8893de..b17818c25 100644 --- a/src/main/java/com/hbm/items/tool/ItemDiscord.java +++ b/src/main/java/com/hbm/items/tool/ItemDiscord.java @@ -20,7 +20,7 @@ public class ItemDiscord extends Item { MovingObjectPosition pos = Library.rayTrace(player, 100, 1); - if(pos.typeOfHit == MovingObjectType.BLOCK) { + if(pos != null && pos.typeOfHit == MovingObjectType.BLOCK) { if(!world.isRemote) { diff --git a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java index 4fee946c8..eddb41ace 100644 --- a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java @@ -11,7 +11,7 @@ import com.hbm.interfaces.IHoldableWeapon; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.ChatBuilder; diff --git a/src/main/java/com/hbm/items/tool/ItemOilDetector.java b/src/main/java/com/hbm/items/tool/ItemOilDetector.java index 45d41af10..3b9cf86b7 100644 --- a/src/main/java/com/hbm/items/tool/ItemOilDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemOilDetector.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java index 12483fac7..5fd3ac58f 100644 --- a/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java +++ b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java @@ -3,7 +3,7 @@ package com.hbm.items.tool; import com.hbm.items.special.ItemBedrockOreBase; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 1776249cf..c83ca9459 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -4,7 +4,7 @@ import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionData; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java index a5907f3f5..660c0ed82 100644 --- a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java +++ b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java @@ -3,8 +3,8 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.BlockDummyable; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ChatBuilder; import com.hbm.util.fauxpointtwelve.BlockPos; diff --git a/src/main/java/com/hbm/items/tool/ItemSatInterface.java b/src/main/java/com/hbm/items/tool/ItemSatInterface.java index f67a8cc9e..512bfcc72 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatInterface.java +++ b/src/main/java/com/hbm/items/tool/ItemSatInterface.java @@ -6,7 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemSatChip; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatPanelPacket; +import com.hbm.packet.toclient.SatPanelPacket; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.IGUIProvider; diff --git a/src/main/java/com/hbm/items/tool/ItemSatRelay.java b/src/main/java/com/hbm/items/tool/ItemSatRelay.java deleted file mode 100644 index ba040cbd0..000000000 --- a/src/main/java/com/hbm/items/tool/ItemSatRelay.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.hbm.items.tool; - -import com.hbm.items.machine.ItemSatChip; - -public class ItemSatRelay extends ItemSatChip { -//Schrabby doesn't fucking know how this works so I HOPE it will create a new item that works without fucking everything up - - -} diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 43b6c885e..99ce2d356 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -13,7 +13,7 @@ import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; diff --git a/src/main/java/com/hbm/items/weapon/GunDash.java b/src/main/java/com/hbm/items/weapon/GunDash.java deleted file mode 100644 index c0ebd1e06..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDash.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityLaser; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunDash extends Item { - - Random rand = new Random(); - - public GunDash() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_dash_ammo)) - && count % 2 == 0) { - - EntityLaser laser = new EntityLaser(world, player); - MovingObjectPosition pos = Library.rayTrace(player, 200, 1.0F); - laser.posX = pos.blockX + 0.5; - laser.posY = pos.blockY + 0.5; - laser.posZ = pos.blockZ + 0.5; - - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.gun_dash_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(laser); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ratatatatatatatata!!"); - list.add(""); - list.add("Ammo: SMG Round"); - list.add("Damage: 2 - 8"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunRpg.java b/src/main/java/com/hbm/items/weapon/GunRpg.java deleted file mode 100644 index e3c8fa53e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunRpg.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityRocket; -import com.hbm.items.ModItems; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunRpg extends Item { - public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" }; - @SideOnly(Side.CLIENT) - private IIcon[] iconArray; - public GunRpg() { - this.maxStackSize = 1; - this.setMaxDamage(500); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_rocket)) { - 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; - } - - EntityRocket entityarrow = new EntityRocket(p_77615_2_, p_77615_3_, 3.0F); - - if (f == 1.0F) { - entityarrow.setIsCritical(true); - } - - p_77615_1_.damageItem(1, p_77615_3_); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.rpgShoot", 1.0F, 0.25F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_rocket); - } - - if (!p_77615_2_.isRemote) { - entityarrow.canBePickedUp = 2; - p_77615_2_.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Kaboom!"); - list.add(""); - list.add("Ammo: Rockets"); - list.add("Projectiles explode on impact."); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/GunUZI.java b/src/main/java/com/hbm/items/weapon/GunUZI.java deleted file mode 100644 index 630347f80..000000000 --- a/src/main/java/com/hbm/items/weapon/GunUZI.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunUZI extends Item implements IHoldableWeapon { - - Random rand = new Random(); - - public GunUZI() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.none; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_22lr)) { - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 2, 4, false, false); - entityarrow.setDamage(2 + rand.nextInt(3)); - - if(this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - entityarrow.setDamage(4 + rand.nextInt(5)); - entityarrow.fire = true; - } - - if(this == ModItems.gun_uzi || this == ModItems.gun_uzi_saturnite) - world.playSoundAtEntity(player, "hbm:weapon.uziShoot", 10.0F, 1.0F); - if(this == ModItems.gun_uzi_silencer || this == ModItems.gun_uzi_saturnite_silencer) - world.playSoundAtEntity(player, "hbm:weapon.silencerShoot", 0.15F, 1.0F); - - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.ammo_22lr); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_uzi) - list.add("[very intense pewpew-ing]"); - if(this == ModItems.gun_uzi_silencer) - list.add("Mom, where are my mittens?"); - if(this == ModItems.gun_uzi_saturnite) - list.add("The real deal."); - if(this == ModItems.gun_uzi_saturnite_silencer) - list.add("The real deal 2: Electric boogaloo"); - list.add(""); - list.add("Ammo: .22 LR Round"); - - if(this == ModItems.gun_uzi || this == ModItems.gun_uzi_silencer) { - list.add("Damage: 2 - 4"); - } - if(this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - list.add("Damage: 4 - 8"); - list.add("Sets enemy on fire."); - } - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - if (this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - return EnumRarity.rare; - } - - return EnumRarity.common; - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 2.5D, 0)); - return multimap; - } - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_CROSS; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunXVL1456.java b/src/main/java/com/hbm/items/weapon/GunXVL1456.java deleted file mode 100644 index 56381afe1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunXVL1456.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunXVL1456 extends Item { - - Random rand = new Random(); - - public GunXVL1456() - { - this.maxStackSize = 1; - this.setMaxDamage(2500); - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int i) { - - int j = this.getMaxItemUseDuration(stack) - i; - ArrowLooseEvent event = new ArrowLooseEvent(player, stack, j); - MinecraftForge.EVENT_BUS.post(event); - // if (event.isCanceled()) { - // return; - // } - j = event.charge * 2; - - if (player.isSneaking() && j >= 20) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if (flag || player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - EntityBullet entitybullet = new EntityBullet(world, player, 3.0F, j, j + 5, false, "tauDay"); - - entitybullet.setDamage(j + rand.nextInt(6)); - - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 1.0F, 0.5F); - - if (flag) { - entitybullet.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - - entitybullet.setIsCritical(true); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - stack.damageItem((int)(j * 0.05F), player); - - player.rotationPitch -= (j * 0.1F); - } - } - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - // if (event.isCanceled()) { - // return event.result; - // } - // Made uncancelable to prevent intermod idiocy - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (!player.isSneaking()) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) && count % 4 == 0) { - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 25, 65, false, "eyyOk"); - entityarrow.setDamage(25 + rand.nextInt(65 - 25)); - - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } else { - if (count % 20 == 0 && this.getMaxItemUseDuration(stack) - count != 0) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_xvl1456_ammo))) { - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - } - } - - world.playSoundAtEntity(player, "hbm:misc.nullTau", 0.1F, 1.0F); - } - - if(player instanceof EntityPlayer) - { - if(count < getMaxItemUseDuration(stack) - 200 && player.isSneaking() && count != 0) - { - if(!world.isRemote) - { - stack.damageItem(1250, player); - - world.createExplosion(player, player.posX, player.posY, player.posZ, 10.0F, true); - player.attackEntityFrom(ModDamageSource.tauBlast, 1000F); - player.dropOneItem(false); - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot tauons,"); - list.add("sneak to charge up for"); - list.add("stronger shots!"); - list.add(""); - list.add("Ammo: Depleted Uranium"); - list.add("Damage: 25 - 65"); - list.add("Charged Damage: 40 - 400"); - list.add("Projectiles penetrate walls."); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - return multimap; - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunZOMG.java b/src/main/java/com/hbm/items/weapon/GunZOMG.java deleted file mode 100644 index 971592633..000000000 --- a/src/main/java/com/hbm/items/weapon/GunZOMG.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityRainbow; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -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.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunZOMG extends Item { - - Random rand = new Random(); - - public GunZOMG() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - new ArrowNockEvent(player, stack); - { - player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); - } - - if (!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setBoolean("valid", false); - stack.stackTagCompound.setBoolean("superuser", false); - } - - if (!player.isSneaking()) { - if (stack.stackTagCompound.getBoolean("valid")) { - if ((player.inventory.hasItem(ModItems.nugget_euphemium) - || player.inventory.hasItem(ModItems.ingot_euphemium))) { - } else { - if (!player.inventory.hasItem(ModItems.nugget_euphemium) - && !player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", false); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation lost!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Request new validation!")); - } - } - } - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun not validated!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Validate your gun with shift right-click.")); - } - } - } else { - if (stack.stackTagCompound.getBoolean("valid")) { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun has already been validated.")); - } - } else { - if (player.inventory.hasItem(ModItems.nugget_euphemium) || player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", true); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun has been validated!")); - } - - //if(Library.superuser.contains(player.getUniqueID().toString())) { - if(player.inventory.hasItem(ModItems.polaroid)) { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Welcome, superuser!")); - } - stack.stackTagCompound.setBoolean("superuser", true); - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Welcome, user!")); - } - stack.stackTagCompound.setBoolean("superuser", false); - } - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation failed!")); - player.addChatMessage(new ChatComponentText("[ZOMG] No external negative gravity well found!")); - } - } - } - } - - return stack; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - if (!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setBoolean("valid", false); - stack.stackTagCompound.setBoolean("superuser", false); - } - - if (!player.isSneaking()) { - if (stack.stackTagCompound.getBoolean("valid")) { - EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack); - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.nugget_euphemium) - || player.inventory.hasItem(ModItems.ingot_euphemium)) && count % 1 == 0) { - if (!stack.stackTagCompound.getBoolean("superuser")) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow1 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow2 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow3 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow4 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow5 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - entityarrow.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow1.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow2.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow3.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow4.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow5.setDamage(35 + rand.nextInt(45 - 35)); - - world.playSoundAtEntity(player, "hbm:weapon.osiprShoot", 1.0F, 0.6F + (rand.nextFloat() * 0.4F)); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - world.spawnEntityInWorld(entityarrow1); - world.spawnEntityInWorld(entityarrow2); - world.spawnEntityInWorld(entityarrow3); - world.spawnEntityInWorld(entityarrow4); - world.spawnEntityInWorld(entityarrow5); - } - } else { - EntityRainbow entityarrow = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow1 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow2 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow3 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow4 = new EntityRainbow(world, player, 1F); - entityarrow.setDamage(10000 + rand.nextInt(90000)); - entityarrow1.setDamage(10000 + rand.nextInt(90000)); - entityarrow2.setDamage(10000 + rand.nextInt(90000)); - entityarrow3.setDamage(10000 + rand.nextInt(90000)); - entityarrow4.setDamage(10000 + rand.nextInt(90000)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.zomgShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - world.spawnEntityInWorld(entityarrow1); - world.spawnEntityInWorld(entityarrow2); - world.spawnEntityInWorld(entityarrow3); - world.spawnEntityInWorld(entityarrow4); - } - } - } else { - if (!player.inventory.hasItem(ModItems.nugget_euphemium) - && !player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", false); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation lost!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Request new validation!")); - } - } - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(itemstack.getTagCompound() == null) - { - list.add("Gun not validated."); - } else if(itemstack.getTagCompound().getBoolean("valid")) { - if(itemstack.getTagCompound().getBoolean("superuser")) { - list.add("Gun set to superuser mode."); - list.add("Firing mode: Negative energy bursts"); - } else { - list.add("Gun set to regular user mode."); - list.add("Firing mode: Dark pulse spray"); - } - } else { - list.add("Gun not validated."); - } - list.add(""); - list.add("Ammo: None (Requires Validation)"); - list.add("Damage: 35 - 45"); - list.add("Energy Damage: 10000 - 100000"); - list.add("Energy projectiles destroy blocks."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - //for(int i = 0; i < 25; i++) - // list.add("How do I use the ZOMG? How do I use the ZOMG? How do I use the ZOMG?"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index d6482e22f..0014cb736 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -23,8 +23,8 @@ import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.particle.helper.ExplosionCreator; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 61ad4299d..f50d3ba0f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -15,8 +15,8 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; diff --git a/src/main/java/com/hbm/items/weapon/ItemCrucible.java b/src/main/java/com/hbm/items/weapon/ItemCrucible.java index 0fbfb1a64..b2201d593 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCrucible.java +++ b/src/main/java/com/hbm/items/weapon/ItemCrucible.java @@ -6,8 +6,8 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.hbm.items.IEquipReceiver; import com.hbm.items.tool.ItemSwordAbility; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ShadyUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -34,7 +34,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver { } @Override - public void onEquip(EntityPlayer player) { + public void onEquip(EntityPlayer player, ItemStack stack) { if(!(player instanceof EntityPlayerMP)) return; diff --git a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java index 6a69055ab..4831b4556 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java +++ b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java @@ -5,8 +5,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.inventory.fluid.Fluids; -import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.enchantment.Enchantment; diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java similarity index 95% rename from src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java rename to src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java index 554f5a6ea..ffbc0388d 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java @@ -1,4 +1,4 @@ -package com.hbm.items.weapon.gununified; +package com.hbm.items.weapon; import java.util.List; @@ -9,10 +9,9 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index e40e9889c..cfefa2357 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -19,10 +19,10 @@ import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; import com.hbm.lib.HbmCollection; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; @@ -801,7 +801,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } @Override - public void onEquip(EntityPlayer player) { + public void onEquip(EntityPlayer player, ItemStack stack) { if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index 110ed0f3e..3a9ec6fba 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -10,8 +10,8 @@ import com.hbm.interfaces.IHoldableWeapon; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.machine.ItemFluidIcon; -import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 7dd20b1a0..b3c7e83c0 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -5,8 +5,8 @@ import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.sound.AudioWrapper; diff --git a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java b/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java deleted file mode 100644 index 38b210a38..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ISyncButtons; -import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.fluid.IFillableItem; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.client.event.MouseEvent; - -public class ItemPlasmaSpear extends Item implements IFillableItem, ISyncButtons { - - public static final int maxFuel = 3_000; - - @Override - public boolean showDurabilityBar(ItemStack stack) { - return getFill(stack) < maxFuel; - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (double) getFill(stack) / (double) maxFuel; - } - - @Override - public int getFill(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - setFill(stack, maxFuel); - return maxFuel; - } - - return stack.stackTagCompound.getInteger("fuel"); - } - - public void setFill(ItemStack stack, int fill) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("fuel", fill); - } - - public static ItemStack getEmptyTool(Item item) { - ItemPlasmaSpear tool = (ItemPlasmaSpear) item; - ItemStack stack = new ItemStack(item); - tool.setFill(stack, 0); - return stack; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(world.isRemote) return stack; - - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setBoolean("melee", !stack.stackTagCompound.getBoolean("melee")); - world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F); - - return stack; - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) { - - if(stack.hasTagCompound() && !stack.stackTagCompound.getBoolean("melee")) { - return true; //cancel hitting, it's ranged - } - - return false; - } - - @Override - public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack) { - - if(!(entityLiving instanceof EntityPlayerMP)) - return false; - - if(getFill(stack) <= 0) - return false; - - if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("melee")) { - return true; //cancel hitting, it's ranged - } - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "anim"); - nbt.setString("mode", "lSwing"); - PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(nbt, 0, 0, 0), (EntityPlayerMP)entityLiving); - - return false; - } - - @Override - public boolean canReceiveMouse(EntityPlayer player, ItemStack stack, MouseEvent event, int button, boolean buttonstate) { - - if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("melee")) { - return false; - } - - if(button == 0) { - event.setCanceled(true); - return true; - } - - return false; - } - - @Override - public void receiveMouse(EntityPlayer player, ItemStack stack, int button, boolean buttonstate) { - Vec3 start = Vec3.createVectorHelper(player.posX, player.posY + player.getEyeHeight() - player.yOffset, player.posZ); - Vec3 look = player.getLookVec(); - Vec3 end = start.addVector(look.xCoord * 100, look.yCoord * 100, look.zCoord * 100); - - List targets = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox( - Math.min(start.xCoord, end.xCoord), - Math.min(start.yCoord, end.yCoord), - Math.min(start.zCoord, end.zCoord), - Math.max(start.xCoord, end.xCoord), - Math.max(start.yCoord, end.yCoord), - Math.max(start.zCoord, end.zCoord) - )); - - for(Entity target : targets) { - - AxisAlignedBB aabb = target.boundingBox; - MovingObjectPosition hitMop = aabb.calculateIntercept(start, end); - - if(hitMop != null) { - target.attackEntityFrom(new EntityDamageSource(ModDamageSource.s_laser, player).setDamageBypassesArmor(), 15F); - } - } - } - - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return type == Fluids.SCHRABIDIC; - } - - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { - - int fill = this.getFill(stack); - int toFill = this.maxFuel - fill; - toFill = Math.min(toFill, amount); - toFill = Math.min(toFill, 10); - - this.setFill(stack, fill + toFill); - - return amount - toFill; - } - - @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } - @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } - - @Override - public FluidType getFirstFluidType(ItemStack stack) { - return Fluids.SCHRABIDIC; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java b/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java deleted file mode 100644 index ad2ab4f0d..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.util.Tuple.Pair; -import com.hbm.util.Tuple.Triplet; - -import api.hbm.item.IClickReceiver; -import api.hbm.item.IGunHUDProvider; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -@Deprecated -public abstract class GunFrame extends Item implements IGunHUDProvider, IClickReceiver { - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - - if(world.isRemote) { - this.updatePlayerClient(stack, world, player, slot, isCurrentItem); - } else { - this.updatePlayerServer(stack, world, player, slot, isCurrentItem); - } - } - } - - public void updatePlayerClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } - public void updatePlayerServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } - - @Override - @SideOnly(Side.CLIENT) - public boolean handleMouseInput(ItemStack stack, EntityPlayer player, int button, boolean state) { - return false; - } - - @Override - public List> getStatusBars(ItemStack stack, EntityPlayer player) { - return new ArrayList(); - } - - @Override - public List> getAmmoInfo(ItemStack stack, EntityPlayer player) { - return null; - } - - public static double getDurabilityBar(ItemStack stack) { - return 1.0D; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java b/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java deleted file mode 100644 index d1cfc831f..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import org.lwjgl.input.Keyboard; - -import com.hbm.handler.HbmKeybinds; - -import api.hbm.item.IButtonReceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class GunRealoadable extends GunFrame implements IButtonReceiver { - - private IReloadBehavior reload; - public static boolean lastReload = false; - - @Override - @SideOnly(Side.CLIENT) - public void handleKeyboardInput(ItemStack stack, EntityPlayer player) { - - boolean reload = Keyboard.isKeyDown(HbmKeybinds.reloadKey.getKeyCode()); - - if(this.reload != null) { - this.reload.tryStartReload(stack, player); - } - - lastReload = reload; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java b/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java deleted file mode 100644 index 1bc6e3d19..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IReloadBehavior { - - public boolean tryStartReload(ItemStack stack, EntityPlayer player); - public boolean updateRelaod(ItemStack stack, EntityPlayer player); -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java b/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java deleted file mode 100644 index 6d91fce96..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.List; - -import com.hbm.util.Tuple.Triplet; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IStatusBarProvider { - - public void provideBars(ItemStack stack, EntityPlayer player, List> bars); -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java b/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java deleted file mode 100644 index 9a47d0664..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.List; - -import com.hbm.util.Tuple.Triplet; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class StatusBarDurability implements IStatusBarProvider { - - @Override - public void provideBars(ItemStack stack, EntityPlayer player, List> bars) { - //TODO - } -} diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java new file mode 100644 index 000000000..9cc858b8b --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -0,0 +1,36 @@ +package com.hbm.items.weapon.sedna; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.ComparableStack; + +import net.minecraft.item.Item; + +public class BulletConfig { + + public static List configs = new ArrayList(); + + public final int id; + + public ComparableStack ammo; + public int ammoReloadCount = 1; + public float velocity = 5F; + public float spread = 0F; + public float wear = 1F; + public int projectilesMin = 1; + public int projectilesMax = 1; + + public float damageMult = 1.0F; + public float headshotMult = 1.0F; + + public double gravity = 0; + public int expires = 100; + + public BulletConfig() { + this.id = configs.size(); + configs.add(this); + } + + public BulletConfig setItem(Item ammo) { this.ammo = new ComparableStack(ammo); return this; } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java new file mode 100644 index 000000000..896d09832 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -0,0 +1,84 @@ +package com.hbm.items.weapon.sedna; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +import net.minecraft.item.ItemStack; + +public class GunConfig { + + /* FIELDS */ + + /** List of receivers used by the gun, primary and secondary are usually indices 0 and 1 respectively, if applicable */ + protected Receiver[] receivers; + protected float durability; + protected int drawDuration = 0; + protected Crosshair crosshair; + protected boolean reloadAnimationsSequential; + /** Lambda functions for clicking shit */ + protected BiConsumer onPressPrimary; + protected BiConsumer onPressSecondary; + protected BiConsumer onPressTertiary; + protected BiConsumer onPressReload; + /** Lambda functions for releasing the aforementioned shit */ + protected BiConsumer onReleasePrimary; + protected BiConsumer onReleaseSecondary; + protected BiConsumer onReleaseTertiary; + protected BiConsumer onReleaseReload; + /** The engine for the state machine that determines the gun's overall behavior */ + protected BiConsumer decider; + /** Lambda that returns the relevant animation for the given params */ + protected BiFunction animations; + + /* GETTERS */ + + public Receiver[] getReceivers(ItemStack stack) { return receivers; } + public float getDurability(ItemStack stack) { return durability; } + public int getDrawDuration(ItemStack stack) { return drawDuration; } + public Crosshair getCrosshair(ItemStack stack) { return crosshair; } + public boolean getReloadAnimSequential(ItemStack stack) { return reloadAnimationsSequential; } + + public BiConsumer getPressPrimary(ItemStack stack) { return this.onPressPrimary; } + public BiConsumer getPressSecondary(ItemStack stack) { return this.onPressSecondary; } + public BiConsumer getPressTertiary(ItemStack stack) { return this.onPressTertiary; } + public BiConsumer getPressReload(ItemStack stack) { return this.onPressReload; } + + public BiConsumer getReleasePrimary(ItemStack stack) { return this.onReleasePrimary; } + public BiConsumer getReleaseSecondary(ItemStack stack) { return this.onReleaseSecondary; } + public BiConsumer getReleaseTertiary(ItemStack stack) { return this.onReleaseTertiary; } + public BiConsumer getReleaseReload(ItemStack stack) { return this.onReleaseReload; } + + public BiConsumer getDecider(ItemStack stack) { return this.decider; } + + public BiFunction getAnims(ItemStack stack) { return this.animations; } + + /* SETTERS */ + + public GunConfig rec(Receiver... receivers) { this.receivers = receivers; return this; } + public GunConfig dura(float dura) { this.durability = dura; return this; } + public GunConfig draw(int draw) { this.drawDuration = draw; return this; } + public GunConfig crosshair(Crosshair crosshair) { this.crosshair = crosshair; return this; } + + //press + public GunConfig pp(BiConsumer lambda) { this.onPressPrimary = lambda; return this; } + public GunConfig ps(BiConsumer lambda) { this.onPressSecondary = lambda; return this; } + public GunConfig pt(BiConsumer lambda) { this.onPressTertiary = lambda; return this; } + public GunConfig pr(BiConsumer lambda) { this.onPressReload = lambda; return this; } + + //release + public GunConfig rp(BiConsumer lambda) { this.onReleasePrimary = lambda; return this; } + public GunConfig rs(BiConsumer lambda) { this.onReleaseSecondary = lambda; return this; } + public GunConfig rt(BiConsumer lambda) { this.onReleaseTertiary = lambda; return this; } + public GunConfig rr(BiConsumer lambda) { this.onReleaseReload = lambda; return this; } + + //decider + public GunConfig decider(BiConsumer lambda) { this.decider = lambda; return this; } + + //anims + public GunConfig anim(BiFunction lambda) { this.animations = lambda; return this; } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java new file mode 100644 index 000000000..b7376acc8 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -0,0 +1,180 @@ +package com.hbm.items.weapon.sedna; + +import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.interfaces.IItemHUD; +import com.hbm.items.IEquipReceiver; +import com.hbm.items.IKeybindReceiver; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.util.RenderScreenOverlay; +import com.hbm.util.EnumUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipReceiver, IItemHUD { + + public static final String KEY_DRAWN = "drawn"; + public static final String KEY_AIMING = "aiming"; + public static final String KEY_TIMER = "timer"; + public static final String KEY_STATE = "state"; + public static final String KEY_PRIMARY = "mouse1"; + public static final String KEY_SECONDARY = "mouse2"; + public static final String KEY_TERTIARY = "mouse3"; + public static final String KEY_RELOAD = "reload"; + + public static float prevAimingProgress; + public static float aimingProgress; + + /** NEVER ACCESS DIRECTLY - USE GETTER */ + private GunConfig config_DNA; + + public GunConfig getConfig(ItemStack stack) { + return config_DNA; + } + + public ItemGunBaseNT(GunConfig cfg) { + this.setMaxStackSize(1); + this.config_DNA = cfg; + } + + public static enum GunState { + DRAWING, //initial delay after selecting + IDLE, //gun can be fired or reloaded + WINDUP, //fire button is down, added delay before fire + JUST_FIRED, //gun has been fired, cooldown + RELOADING //gun is currently reloading + } + + @Override + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) { + return keybind == EnumKeybind.GUN_PRIMARY || keybind == EnumKeybind.GUN_SECONDARY || keybind == EnumKeybind.GUN_TERTIARY || keybind == EnumKeybind.RELOAD; + } + + @Override + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean newState) { + + GunConfig config = getConfig(stack); + LambdaContext ctx = new LambdaContext(config, player); + + if(keybind == EnumKeybind.GUN_PRIMARY && newState && !getPrimary(stack)) { if(config.getPressPrimary(stack) != null) config.getPressPrimary(stack).accept(stack, ctx); this.setPrimary(stack, newState); return; } + if(keybind == EnumKeybind.GUN_PRIMARY && !newState && getPrimary(stack)) { if(config.getReleasePrimary(stack) != null) config.getReleasePrimary(stack).accept(stack, ctx); this.setPrimary(stack, newState); return; } + if(keybind == EnumKeybind.GUN_SECONDARY && newState && !getSecondary(stack)) { if(config.getPressSecondary(stack) != null) config.getPressSecondary(stack).accept(stack, ctx); this.setSecondary(stack, newState); return; } + if(keybind == EnumKeybind.GUN_SECONDARY && !newState && getSecondary(stack)) { if(config.getReleaseSecondary(stack) != null) config.getReleaseSecondary(stack).accept(stack, ctx); this.setSecondary(stack, newState); return; } + if(keybind == EnumKeybind.GUN_TERTIARY && newState && !getTertiary(stack)) { if(config.getPressTertiary(stack) != null) config.getPressTertiary(stack).accept(stack, ctx); this.setTertiary(stack, newState); return; } + if(keybind == EnumKeybind.GUN_TERTIARY && !newState && getTertiary(stack)) { if(config.getReleaseTertiary(stack) != null) config.getReleaseTertiary(stack).accept(stack, ctx); this.setTertiary(stack, newState); return; } + if(keybind == EnumKeybind.RELOAD && newState && !getReloadKey(stack)) { if(config.getPressReload(stack) != null) config.getPressReload(stack).accept(stack, ctx); this.setReloadKey(stack, newState); return; } + if(keybind == EnumKeybind.RELOAD && !newState && getReloadKey(stack)) { if(config.getReleaseReload(stack) != null) config.getReleaseReload(stack).accept(stack, ctx); this.setReloadKey(stack, newState); return; } + } + + @Override + public void onEquip(EntityPlayer player, ItemStack stack) { + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.EQUIP.ordinal()), (EntityPlayerMP) player); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isHeld) { + + if(!(entity instanceof EntityPlayer)) return; + EntityPlayer player = (EntityPlayer) entity; + + if(world.isRemote) { + if(isHeld && player == MainRegistry.proxy.me()) { + prevAimingProgress = aimingProgress; + boolean aiming = this.getIsAiming(stack); + float aimSpeed = 0.25F; + if(aiming && aimingProgress < 1F) aimingProgress += aimSpeed; + if(!aiming && aimingProgress > 0F) aimingProgress -= aimSpeed; + aimingProgress = MathHelper.clamp_float(aimingProgress, 0F, 1F); + } + return; + } + + GunConfig config = this.getConfig(stack); + + if(!isHeld) { + this.setState(stack, GunState.DRAWING); + this.setTimer(stack, config.getDrawDuration(stack)); + this.setIsAiming(stack, false); + return; + } + + int timer = this.getTimer(stack); + if(timer > 0) this.setTimer(stack, timer - 1); + if(timer <= 1) nextState(player, stack); + } + + public void nextState(EntityPlayer player, ItemStack stack) { + GunConfig cfg = this.getConfig(stack); + cfg.getDecider(stack).accept(stack, new LambdaContext(cfg, player)); + } + + // GUN DRAWN // + public static boolean getIsDrawn(ItemStack stack) { return getValueBool(stack, KEY_DRAWN); } + public static void setIsDrawn(ItemStack stack, boolean value) { setValueBool(stack, KEY_DRAWN, value); } + + // GUN STATE TIMER // + public static int getTimer(ItemStack stack) { return getValueInt(stack, KEY_TIMER); } + public static void setTimer(ItemStack stack, int value) { setValueInt(stack, KEY_TIMER, value); } + + // GUN STATE // + public static GunState getState(ItemStack stack) { return EnumUtil.grabEnumSafely(GunState.class, getValueByte(stack, KEY_STATE)); } + public static void setState(ItemStack stack, GunState value) { setValueByte(stack, KEY_STATE, (byte) value.ordinal()); } + + // GUN AIMING // + public static boolean getIsAiming(ItemStack stack) { return getValueBool(stack, KEY_AIMING); } + public static void setIsAiming(ItemStack stack, boolean value) { setValueBool(stack, KEY_AIMING, value); } + + // BUTTON STATES // + public static boolean getPrimary(ItemStack stack) { return getValueBool(stack, KEY_PRIMARY); } + public static void setPrimary(ItemStack stack, boolean value) { setValueBool(stack, KEY_PRIMARY, value); } + public static boolean getSecondary(ItemStack stack) { return getValueBool(stack, KEY_SECONDARY); } + public static void setSecondary(ItemStack stack, boolean value) { setValueBool(stack, KEY_SECONDARY, value); } + public static boolean getTertiary(ItemStack stack) { return getValueBool(stack, KEY_TERTIARY); } + public static void setTertiary(ItemStack stack, boolean value) { setValueBool(stack, KEY_TERTIARY, value); } + public static boolean getReloadKey(ItemStack stack) { return getValueBool(stack, KEY_RELOAD); } + public static void setReloadKey(ItemStack stack, boolean value) { setValueBool(stack, KEY_RELOAD, value); } + + + /// UTIL /// + public static int getValueInt(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getInteger(name); return 0; } + public static void setValueInt(ItemStack stack, String name, int value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger(name, value); } + + public static byte getValueByte(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getByte(name); return 0; } + public static void setValueByte(ItemStack stack, String name, byte value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setByte(name, value); } + + public static boolean getValueBool(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getBoolean(name); return false; } + public static void setValueBool(ItemStack stack, String name, boolean value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setBoolean(name, value); } + + /** Wrapper for extra context used in most Consumer lambdas which are part of the guncfg */ + public static class LambdaContext { + public final GunConfig config; + public final EntityPlayer player; + + public LambdaContext(GunConfig config, EntityPlayer player) { + this.config = config; + this.player = player; + } + } + + @Override + public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { + if(type == ElementType.CROSSHAIRS) { + event.setCanceled(true); + if(aimingProgress >= 1F) return; + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, gun.getConfig(stack).getCrosshair(stack)); + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java new file mode 100644 index 000000000..b5320d003 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java @@ -0,0 +1,47 @@ +package com.hbm.items.weapon.sedna; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.handler.CasingEjector; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.mags.IMagazine; + +import net.minecraft.item.ItemStack; + +public class Receiver { + + protected float baseDamage; + protected int delayAfterFire; + protected int roundsPerCycle = 1; + protected boolean refireOnHold = false; + protected CasingEjector ejector = null; + protected int reloadDuration; + protected IMagazine magazine; + protected BiFunction canFire; + protected BiConsumer onFire; + + /* GETTERS */ + public float getBaseDamage(ItemStack stack) { return this.baseDamage; } + public int getDelayAfterFire(ItemStack stack) { return this.delayAfterFire; } + public int getRoundsPerCycle(ItemStack stack) { return this.roundsPerCycle; } + public boolean getRefireOnHold(ItemStack stack) { return this.refireOnHold; } + public CasingEjector getEjector(ItemStack stack) { return this.ejector; } + public int getReloadDuration(ItemStack stack) { return this.reloadDuration; } + public IMagazine getMagazine(ItemStack stack) { return this.magazine; } + + public BiFunction getCanFire(ItemStack stack) { return this.canFire; } + public BiConsumer getOnFire(ItemStack stack) { return this.onFire; } + + /* SETTERS */ + public Receiver dmg(float dmg) { this.baseDamage = dmg; return this; } + public Receiver delay(int delay) { this.delayAfterFire = delay; return this; } + public Receiver rounds(int rounds) { this.roundsPerCycle = rounds; return this; } + public Receiver auto(boolean auto) { this.refireOnHold = auto; return this; } + public Receiver burst(CasingEjector ejector) { this.ejector = ejector; return this; } + public Receiver reload(int delay) { this.reloadDuration = delay; return this; } + public Receiver mag(IMagazine magazine) { this.magazine = magazine; return this; } + + public Receiver canFire(BiFunction lambda) { this.canFire = lambda; return this; } + public Receiver fire(BiConsumer lambda) { this.onFire = lambda; return this; } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java new file mode 100644 index 000000000..424da2c29 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -0,0 +1,35 @@ +package com.hbm.items.weapon.sedna.factory; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.MagazineRevolverDrum; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +import net.minecraft.item.Item; + +public class GunFactory { + + public static void init() { + + ModItems.ammo_debug = new Item().setUnlocalizedName("ammo_debug").setTextureName(RefStrings.MODID + ":ammo_45"); + + BulletConfig ammo_debug = new BulletConfig().setItem(ModItems.ammo_debug); + + ModItems.gun_debug = new ItemGunBaseNT(new GunConfig() + .dura(600).draw(15).crosshair(Crosshair.L_CLASSIC) + .rec(new Receiver() + .dmg(10F).delay(10).mag(new MagazineRevolverDrum(0, 6).addConfigs(ammo_debug)) + .canFire(Lego.LAMBDA_DEBUG_CAN_FIRE).fire(Lego.LAMBDA_DEBUG_FIRE)) + .pr(Lego.LAMBDA_STANDARD_RELOAD) + .pp(Lego.LAMBDA_STANDARD_FIRE) + .pt(Lego.LAMBDA_TOGGLE_AIM) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(Lego.LAMBDA_DEBUG_ANIMS) + ).setUnlocalizedName("gun_debug").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java new file mode 100644 index 000000000..d4d3fdc8d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java @@ -0,0 +1,89 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BooleanSupplier; + +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class GunStateDecider { + + /** + * The meat and bones of the gun system's state machine. + * This standard decider can handle guns with an automatic primary receiver, as well as one receiver's reloading state. + * It supports draw delays as well as semi and auto fire + */ + public static BiConsumer LAMBDA_STANDARD_DECIDER = (stack, ctx) -> { + GunState lastState = ItemGunBaseNT.getState(stack); + deciderStandardFinishDraw(stack, lastState); + deciderStandardReload(stack, ctx, lastState, 0); + deciderAutoRefire(stack, ctx, lastState, 0, () -> { return ItemGunBaseNT.getPrimary(stack); }); + }; + + /** Transitions the gun from DRAWING to IDLE */ + public static void deciderStandardFinishDraw(ItemStack stack, GunState lastState) { + + //transition to idle + if(lastState == GunState.DRAWING) { + ItemGunBaseNT.setState(stack, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, 0); + } + } + + /** Triggers a reload action on the first receiver. If the mag is not full and reloading is still possible, set to RELOADING, otherwise IDLE */ + public static void deciderStandardReload(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex) { + + if(lastState == GunState.RELOADING) { + + EntityPlayer player = ctx.player; + GunConfig cfg = ctx.config; + Receiver rec = cfg.getReceivers(stack)[recIndex]; + + rec.getMagazine(stack).reloadAction(stack, player); + + //if after reloading the gun can still reload, assume a tube mag and resume reloading + if(cfg.getReceivers(stack)[recIndex].getMagazine(stack).canReload(stack, player)) { + ItemGunBaseNT.setState(stack, GunState.RELOADING); + ItemGunBaseNT.setTimer(stack, cfg.getReceivers(stack)[recIndex].getReloadDuration(stack)); + //if no more reloading can be done, go idle + } else { + ItemGunBaseNT.setState(stack, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, 0); + } + } + } + + /** Triggers a re-fire of the primary if the fire delay has expired, the left mouse button is down and re-firing is enabled, otherwise switches to IDLE */ + public static void deciderAutoRefire(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex, BooleanSupplier refireCondition) { + + if(lastState == GunState.JUST_FIRED) { + + GunConfig cfg = ctx.config; + Receiver rec = cfg.getReceivers(stack)[recIndex]; + + //if the gun supports re-fire (i.e. if it's an auto) + if(rec.getRefireOnHold(stack) && refireCondition.getAsBoolean()) { + //if there's a bullet loaded, fire again + if(rec.getCanFire(stack).apply(stack, ctx)) { + rec.getOnFire(stack).accept(stack, ctx); + ItemGunBaseNT.setState(stack, GunState.JUST_FIRED); + ItemGunBaseNT.setTimer(stack, rec.getDelayAfterFire(stack)); + //if not, revert to idle + } else { + ItemGunBaseNT.setState(stack, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, 0); + } + //if not, go idle + } else { + ItemGunBaseNT.setState(stack, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, 0); + } + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java new file mode 100644 index 000000000..54100485e --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -0,0 +1,84 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; + +/** + * "LEGO" - i.e. standardized building blocks which can be used to set up gun configs easily. + * + * @author hbm + */ +public class Lego { + + /** + * If IDLE and the mag of receiver 0 can be loaded, set state to RELOADING. Used by keybinds. */ + public static BiConsumer LAMBDA_STANDARD_RELOAD = (stack, ctx) -> { + + if(ItemGunBaseNT.getState(stack) == GunState.IDLE && ctx.config.getReceivers(stack)[0].getMagazine(stack).canReload(stack, ctx.player)) { + ItemGunBaseNT.setState(stack, GunState.RELOADING); + ItemGunBaseNT.setTimer(stack, ctx.config.getReceivers(stack)[0].getReloadDuration(stack)); + } + }; + + /** + * If IDLE and ammo is loaded, fire and set to JUST_FIRED. */ + public static BiConsumer LAMBDA_STANDARD_FIRE = (stack, ctx) -> { + + if(ItemGunBaseNT.getState(stack) == GunState.IDLE && ctx.config.getReceivers(stack)[0].getCanFire(stack).apply(stack, ctx)) { + ItemGunBaseNT.setState(stack, GunState.JUST_FIRED); + ItemGunBaseNT.setTimer(stack, ctx.config.getReceivers(stack)[0].getDelayAfterFire(stack)); + ctx.config.getReceivers(stack)[0].getOnFire(stack).accept(stack, ctx); + } + }; + + /** Toggles isAiming. Used by keybinds. */ + public static BiConsumer LAMBDA_TOGGLE_AIM = (stack, ctx) -> { ItemGunBaseNT.setIsAiming(stack, !ItemGunBaseNT.getIsAiming(stack)); }; + + /** Returns true if the mag has ammo in it. Used by keybind functions on whether to fire, and deciders on whether to trigger a refire, */ + public static BiFunction LAMBDA_STANDARD_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack) > 0; }; + + + + + /** JUMPER - bypasses mag testing and just allows constant fire */ + public static BiFunction LAMBDA_DEBUG_CAN_FIRE = (stack, ctx) -> { return true; }; + /** simply plays a sound to indicate that the keybind has triggered */ + public static BiConsumer LAMBDA_DEBUG_FIRE = (stack, ctx) -> { + EntityPlayer player = ctx.player; + player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.shotgunShoot", 1F, 1F); + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); + }; + public static BiFunction LAMBDA_DEBUG_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addKeyframePosition(0, 0, 0, 50).addKeyframePosition(0, 0, -3, 50).addKeyframePosition(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addKeyframePosition(0, 0, 1, 50).addKeyframePosition(0, 0, 1, 300).addKeyframePosition(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addKeyframePosition(0, 0, 1, 50)); + case CYCLE_EMPTY: break; + case ALT_CYCLE: break; + case EQUIP: return new BusAnimation().addBus("ROTATE", new BusAnimationSequence().addKeyframePosition(-360, 0, 0, 350)); + case RELOAD: break; + case RELOAD_CYCLE: break; + case RELOAD_EMPTY: break; + case RELOAD_END: break; + case SPINDOWN: break; + case SPINUP: break; + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java new file mode 100644 index 000000000..90d6a2337 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java @@ -0,0 +1,24 @@ +package com.hbm.items.weapon.sedna.mags; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IMagazine { + + /** What ammo is loaded currently */ + public Object getType(ItemStack stack); + /** Sets the mag's ammo type */ + public void setType(ItemStack stack, Object type); + /** How much ammo this mag can carry */ + public int getCapacity(ItemStack stack); + /** How much ammo is currently loaded */ + public int getAmount(ItemStack stack); + /** Sets the mag's ammo level */ + public void setAmount(ItemStack stack, int amount); + /** If a reload can even be initiated, i.e. the player even has bullets to load */ + public boolean canReload(ItemStack stack, EntityPlayer player); + /** The action done at the end of one reload cycle, either loading one shell or replacing the whole mag */ + public void reloadAction(ItemStack stack, EntityPlayer player); + /** The stack that should be displayed for the ammo HUD */ + public ItemStack getIcon(ItemStack stack); +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineRevolverDrum.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineRevolverDrum.java new file mode 100644 index 000000000..628d1a73d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineRevolverDrum.java @@ -0,0 +1,82 @@ +package com.hbm.items.weapon.sedna.mags; + +import com.hbm.items.weapon.sedna.BulletConfig; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +/** Uses individual bullets which are loaded all at once */ +public class MagazineRevolverDrum extends MagazineStandardBase { + + public MagazineRevolverDrum(int index, int capacity) { + super(index, capacity); + } + + /** Returns true if the player has the same ammo if partially loaded, or any valid ammo if not */ + @Override + public boolean canReload(ItemStack stack, EntityPlayer player) { + + for(ItemStack slot : player.inventory.mainInventory) { + + if(slot != null) { + if(this.getAmount(stack) == 0) { + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } else { + BulletConfig config = (BulletConfig) this.getType(stack); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } + } + + return false; + } + + /** Reloads all rounds at once. If the mag is empty, the mag's type will change to the first valid ammo type */ + @Override + public void reloadAction(ItemStack stack, EntityPlayer player) { + + for(int i = 0; i < player.inventory.mainInventory.length; i++) { + ItemStack slot = player.inventory.mainInventory[i]; + + if(slot != null) { + + //mag is empty, assume next best type + if(this.getAmount(stack) == 0) { + + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) { + this.setType(stack, config); + int toLoad = Math.min(this.getCapacity(stack), slot.stackSize); + this.setAmount(stack, toLoad); + player.inventory.decrStackSize(i, toLoad); + break; + } + } + //mag has a type set, only load that + } else { + BulletConfig config = (BulletConfig) this.getType(stack); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } //fixing broken NBT + + if(config.ammo.matchesRecipe(slot, true)) { + int alreadyLoaded = this.getAmount(stack); + int toLoad = Math.min(this.getCapacity(stack) - alreadyLoaded, slot.stackSize); + this.setAmount(stack, toLoad + alreadyLoaded); + player.inventory.decrStackSize(i, toLoad); + } + } + } + } + } + + @Override + public ItemStack getIcon(ItemStack stack) { + Object o = this.getType(stack); + if(o instanceof BulletConfig) { + return ((BulletConfig) o).ammo.toStack(); + } + return null; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineStandardBase.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineStandardBase.java new file mode 100644 index 000000000..818833767 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineStandardBase.java @@ -0,0 +1,58 @@ +package com.hbm.items.weapon.sedna.mags; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; + +import net.minecraft.item.ItemStack; + +/** Base class for typical magazines, i.e. ones that hold bullets, shells, grenades, etc, any ammo item. Type methods deal with BulletConfigs */ +public abstract class MagazineStandardBase implements IMagazine { + + public static final String KEY_MAG_COUNT = "magcount"; + public static final String KEY_MAG_TYPE = "magtype"; + + protected List acceptedBullets = new ArrayList(); + + /** A number so the gun tell multiple mags apart */ + public int index; + /** How much ammo this mag can hold */ + public int capacity; + + public MagazineStandardBase(int index, int capacity) { + this.index = index; + this.capacity = capacity; + } + + public MagazineStandardBase addConfigs(BulletConfig... cfgs) { for(BulletConfig cfg : cfgs) acceptedBullets.add(cfg); return this; } + + @Override + public Object getType(ItemStack stack) { + int type = getMagType(stack, index); + if(type >= 0 && type < acceptedBullets.size()) { + return acceptedBullets.get(type); + } + return null; + } + + @Override + public void setType(ItemStack stack, Object type) { + if(!(type instanceof BulletConfig)) return; + int i = acceptedBullets.indexOf(type); + if(i >= 0) setMagType(stack, index, i); + } + + @Override public int getCapacity(ItemStack stack) { return capacity; } + @Override public int getAmount(ItemStack stack) { return getMagCount(stack, index); } + @Override public void setAmount(ItemStack stack, int amount) { setMagCount(stack, index, amount); } + + // MAG TYPE // + public static int getMagType(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_TYPE + index); } + public static void setMagType(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_TYPE + index, value); } + + // MAG COUNT // + public static int getMagCount(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_COUNT + index); } + public static void setMagCount(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_COUNT + index, value); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/package-info.java b/src/main/java/com/hbm/items/weapon/sedna/package-info.java new file mode 100644 index 000000000..a23713eca --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/package-info.java @@ -0,0 +1,24 @@ +/** + * + */ +/** + * @author hbm + * + */ +package com.hbm.items.weapon.sedna; + +/* + +The MK2 unified gun system SEDNA + +ItemGunBase - NBT, timer, keybind handling + | GunConfig (1) - durability and sights + | Receiver (n) - base damage, fire modes + | Magazine (1) - NBT, reload management + | BulletConfig (n) - ammo stats + +Based on this system, alt fire that should logically use the same receiver actually use two different receivers, and +by extension two different mag fields. In this case, make sure to use the same mag instance (or an identical one) +on either receiver to ensure that both receivers access the same ammo pool and accept the same ammo types. + +*/ \ No newline at end of file diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index af861b280..0707248a9 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5061)"; + public static final String VERSION = "1.0.27 BETA (5082)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index eade6fd72..6ad597c84 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -104,6 +104,7 @@ import com.hbm.render.item.*; import com.hbm.render.item.ItemRenderMissileGeneric.RenderMissileType; import com.hbm.render.item.block.*; import com.hbm.render.item.weapon.*; +import com.hbm.render.item.weapon.sedna.*; import com.hbm.render.loader.HmfModelLoader; import com.hbm.render.model.ModelPigeon; import com.hbm.render.tileentity.*; @@ -551,8 +552,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_hp, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_euthanasia, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_dash, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_twigun, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red)); @@ -602,6 +601,8 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderWeaponCongo()); + //SEDNA + MinecraftForgeClient.registerItemRenderer(ModItems.gun_debug, new ItemRenderDebug()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); @@ -2112,6 +2113,9 @@ public class ClientProxy extends ServerProxy { case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed(); case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); + case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed(); + case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed(); + case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed(); } return false; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5a88ba3bf..acdda9f2e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1422,6 +1422,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gas7"); ignoreMappings.add("hbm:item.gas8"); ignoreMappings.add("hbm:tile.brick_forgotten"); + ignoreMappings.add("hbm:tile.watz_conductor"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 4f0d2f55b..7e57bef15 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -57,8 +57,8 @@ import com.hbm.lib.HbmCollection; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PermaSyncPacket; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PermaSyncPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; @@ -475,7 +475,7 @@ public class ModEventHandler { && (prevArmor[0] == null || prevArmor[0].getItem() != event.entityLiving.getHeldItem().getItem()) && event.entityLiving.getHeldItem().getItem() instanceof IEquipReceiver) { - ((IEquipReceiver)event.entityLiving.getHeldItem().getItem()).onEquip((EntityPlayer) event.entityLiving); + ((IEquipReceiver)event.entityLiving.getHeldItem().getItem()).onEquip((EntityPlayer) event.entityLiving, event.entityLiving.getHeldItem()); } for(int i = 1; i < 5; i++) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 317e05ba7..eab51c13d 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -24,6 +24,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.handler.GunConfiguration; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; +import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IHoldableWeapon; @@ -33,7 +34,6 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIArmorTable; import com.hbm.inventory.gui.GUIScreenPreview; import com.hbm.inventory.gui.GUIScreenWikiRender; -import com.hbm.items.ISyncButtons; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; @@ -44,12 +44,12 @@ import com.hbm.items.machine.ItemDepletedFuel; import com.hbm.items.machine.ItemFluidDuct; import com.hbm.items.machine.ItemRBMKPellet; import com.hbm.items.weapon.ItemGunBase; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SyncButtonsPacket; +import com.hbm.packet.toserver.AuxButtonPacket; +import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; import com.hbm.render.block.ct.CTStitchReceiver; @@ -63,7 +63,6 @@ import com.hbm.sound.MovingSoundChopper; import com.hbm.sound.MovingSoundChopperMine; import com.hbm.sound.MovingSoundCrashing; import com.hbm.sound.MovingSoundPlayerLoop; -import com.hbm.sound.MovingSoundXVL1456; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; @@ -80,9 +79,6 @@ import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; -import api.hbm.item.IButtonReceiver; -import api.hbm.item.IClickReceiver; - import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import cpw.mods.fml.client.FMLClientHandler; @@ -91,7 +87,6 @@ import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent; -import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; @@ -110,6 +105,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.settings.GameSettings; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -593,15 +589,6 @@ public class ModEventHandlerClient { Item held = player.getHeldItem().getItem(); - if(held instanceof IClickReceiver) { - IClickReceiver rec = (IClickReceiver) held; - - if(rec.handleMouseInput(player.getHeldItem(), player, event.button, event.buttonstate)) { - event.setCanceled(true); - return; - } - } - if(held instanceof ItemGunBase) { if(event.button == 0) @@ -620,30 +607,6 @@ public class ModEventHandlerClient { item.startActionClient(player.getHeldItem(), player.worldObj, player, false); } } - - if(held instanceof ISyncButtons) { - ISyncButtons rec = (ISyncButtons) held; - - if(rec.canReceiveMouse(player, player.getHeldItem(), event, event.button, event.buttonstate)) { - PacketDispatcher.wrapper.sendToServer(new SyncButtonsPacket(event.buttonstate, event.button)); - } - } - } - } - - @SubscribeEvent - public void keyEvent(KeyInputEvent event) { - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(player.getHeldItem() != null) { - - Item held = player.getHeldItem().getItem(); - - if(held instanceof IButtonReceiver) { - IButtonReceiver rec = (IButtonReceiver) held; - rec.handleKeyboardInput(player.getHeldItem(), player); - } } } @@ -674,19 +637,6 @@ public class ModEventHandlerClient { //A winner is you. //Conglaturations. //Fuck you. - - if(r.toString().equals("hbm:misc.nullTau") && Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) - { - EntityPlayer ent = Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2); - - if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop) == null) { - MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundXVL1456(new ResourceLocation("hbm:weapon.tauChargeLoop2"), ent, EnumHbmSound.soundTauLoop)); - MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(0.5F); - } else { - if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() < 1.5F) - MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() + 0.01F); - } - } if(r.toString().equals("hbm:misc.nullChopper") && Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) { @@ -1110,8 +1060,8 @@ public class ModEventHandlerClient { @SideOnly(Side.CLIENT) @SubscribeEvent - public void onMouseClicked(InputEvent.KeyInputEvent event) { - + public void onMouseClicked(InputEvent.MouseInputEvent event) { + Minecraft mc = Minecraft.getMinecraft(); if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { boolean state = Mouse.getEventButtonState(); @@ -1122,13 +1072,31 @@ public class ModEventHandlerClient { KeyBinding key = (KeyBinding) o; if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { - + key.pressed = state; if(state) { key.pressTime++; } } } + + boolean gunKey = keyCode == HbmKeybinds.gunPrimaryKey.getKeyCode() || keyCode == HbmKeybinds.gunSecondaryKey.getKeyCode() || + keyCode == HbmKeybinds.gunTertiaryKey.getKeyCode() || keyCode == HbmKeybinds.reloadKey.getKeyCode(); + + /* Shoot in favor of attacking */ + if(gunKey && keyCode == mc.gameSettings.keyBindAttack.getKeyCode()) { + mc.gameSettings.keyBindAttack.pressed = false; + mc.gameSettings.keyBindAttack.pressTime = 0; + } + + EntityPlayer player = mc.thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + if(gunKey && keyCode == mc.gameSettings.keyBindPickBlock.getKeyCode()) { + mc.gameSettings.keyBindPickBlock.pressed = false; + mc.gameSettings.keyBindPickBlock.pressTime = 0; + } + } } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 7fb0fc35b..693c8e20c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -9,6 +9,7 @@ import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; +import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; import com.hbm.render.model.ModelMan; import com.hbm.world.biome.BiomeGenCraterBase; @@ -33,11 +34,15 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.common.ForgeModContainer; @@ -409,6 +414,22 @@ public class ModEventHandlerRenderer { } } + @SubscribeEvent + public void onRenderHand(RenderHandEvent event) { + + //can't use plaxer.getHeldItem() here because the item rendering persists for a few frames after hitting the switch key + ItemStack toRender = Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender; + + if(toRender != null) { + IItemRenderer renderer = MinecraftForgeClient.getItemRenderer(toRender, ItemRenderType.EQUIPPED_FIRST_PERSON); + + if(renderer instanceof ItemRenderWeaponBase) { + ((ItemRenderWeaponBase) renderer).setPerspectiveAndRender(toRender, event.partialTicks); + event.setCanceled(true); + } + } + } + private static boolean fogInit = false; private static int fogX; private static int fogZ; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index aa3ff784d..07f22e0cb 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -951,6 +951,7 @@ public class ResourceManager { public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png"); public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png"); + public static final ResourceLocation debug_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/debug_gun.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index e2dea4a51..12c8de1da 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -1,6 +1,8 @@ package com.hbm.packet; import com.hbm.lib.RefStrings; +import com.hbm.packet.toclient.*; +import com.hbm.packet.toserver.*; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; @@ -11,8 +13,7 @@ public class PacketDispatcher { //Mark 1 Packet Sending Device public static final SimpleNetworkWrapper wrapper = NetworkRegistry.INSTANCE.newSimpleChannel(RefStrings.MODID); - public static final void registerPackets() - { + public static final void registerPackets() { int i = 0; //Sound packet that keeps client and server separated @@ -71,8 +72,6 @@ public class PacketDispatcher { wrapper.registerMessage(ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.Handler.class, ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.class, i++, Side.CLIENT); //Packet to send NBT data from clients to the serverside held item wrapper.registerMessage(NBTItemControlPacket.Handler.class, NBTItemControlPacket.class, i++, Side.SERVER); - //sends a button press to the held item, assuming it is an ISyncButtons - wrapper.registerMessage(SyncButtonsPacket.Handler.class, SyncButtonsPacket.class, i++, Side.SERVER); //General syncing for global values wrapper.registerMessage(PermaSyncPacket.Handler.class, PermaSyncPacket.class, i++, Side.CLIENT); //Syncs biome information for single positions or entire chunks diff --git a/src/main/java/com/hbm/packet/SyncButtonsPacket.java b/src/main/java/com/hbm/packet/SyncButtonsPacket.java deleted file mode 100644 index b460a4141..000000000 --- a/src/main/java/com/hbm/packet/SyncButtonsPacket.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hbm.packet; - -import com.hbm.items.ISyncButtons; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; - -public class SyncButtonsPacket implements IMessage { - - boolean state; - int button; - - public SyncButtonsPacket() { } - - public SyncButtonsPacket(boolean s, int b) { - state = s; - button = b; - } - - @Override - public void fromBytes(ByteBuf buf) { - state = buf.readBoolean(); - button = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeBoolean(state); - buf.writeInt(button); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(SyncButtonsPacket m, MessageContext ctx) { - - if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - return null; - - EntityPlayer p = ctx.getServerHandler().playerEntity; - - if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ISyncButtons) { - - ISyncButtons item = (ISyncButtons)p.getHeldItem().getItem(); - item.receiveMouse(p, p.getHeldItem(), m.button, m.state); - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/AuxElectricityPacket.java b/src/main/java/com/hbm/packet/toclient/AuxElectricityPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/AuxElectricityPacket.java rename to src/main/java/com/hbm/packet/toclient/AuxElectricityPacket.java index 39c27e7e1..571f925ce 100644 --- a/src/main/java/com/hbm/packet/AuxElectricityPacket.java +++ b/src/main/java/com/hbm/packet/toclient/AuxElectricityPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import api.hbm.energymk2.IEnergyHandlerMK2; import cpw.mods.fml.common.network.simpleimpl.IMessage; diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/toclient/AuxGaugePacket.java similarity index 98% rename from src/main/java/com/hbm/packet/AuxGaugePacket.java rename to src/main/java/com/hbm/packet/toclient/AuxGaugePacket.java index 17af20444..190a7f4b4 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/toclient/AuxGaugePacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.interfaces.Spaghetti; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; diff --git a/src/main/java/com/hbm/packet/AuxParticlePacket.java b/src/main/java/com/hbm/packet/toclient/AuxParticlePacket.java similarity index 97% rename from src/main/java/com/hbm/packet/AuxParticlePacket.java rename to src/main/java/com/hbm/packet/toclient/AuxParticlePacket.java index 1483e297d..317e121c0 100644 --- a/src/main/java/com/hbm/packet/AuxParticlePacket.java +++ b/src/main/java/com/hbm/packet/toclient/AuxParticlePacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.main.MainRegistry; diff --git a/src/main/java/com/hbm/packet/AuxParticlePacketNT.java b/src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java similarity index 98% rename from src/main/java/com/hbm/packet/AuxParticlePacketNT.java rename to src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java index f3b311e3a..beace3830 100644 --- a/src/main/java/com/hbm/packet/AuxParticlePacketNT.java +++ b/src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; diff --git a/src/main/java/com/hbm/packet/BiomeSyncPacket.java b/src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/BiomeSyncPacket.java rename to src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java index 203ddc281..3f529e1c3 100644 --- a/src/main/java/com/hbm/packet/BiomeSyncPacket.java +++ b/src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/toclient/BufPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/BufPacket.java rename to src/main/java/com/hbm/packet/toclient/BufPacket.java index 7ff502c9d..2e9b32c12 100644 --- a/src/main/java/com/hbm/packet/BufPacket.java +++ b/src/main/java/com/hbm/packet/toclient/BufPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.tileentity.IBufPacketReceiver; diff --git a/src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java b/src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java rename to src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java index 9d0aa99c2..0a4972bfe 100644 --- a/src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java b/src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java rename to src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java index c8300a0da..142a3fb26 100644 --- a/src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.util.ArrayList; import java.util.Iterator; diff --git a/src/main/java/com/hbm/packet/ExtPropPacket.java b/src/main/java/com/hbm/packet/toclient/ExtPropPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/ExtPropPacket.java rename to src/main/java/com/hbm/packet/toclient/ExtPropPacket.java index 641bc9b68..0364bf7e9 100644 --- a/src/main/java/com/hbm/packet/ExtPropPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ExtPropPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; diff --git a/src/main/java/com/hbm/packet/GunAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java similarity index 63% rename from src/main/java/com/hbm/packet/GunAnimationPacket.java rename to src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java index c744f72fd..377ac340b 100644 --- a/src/main/java/com/hbm/packet/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java @@ -1,6 +1,10 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; + +import java.util.function.BiFunction; import com.hbm.items.weapon.ItemGunBase; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.AnimType; @@ -51,6 +55,10 @@ public class GunAnimationPacket implements IMessage { if(stack == null) return null; + if(stack.getItem() instanceof com.hbm.items.weapon.sedna.ItemGunBaseNT) { + handleSedna(player, stack, slot, AnimType.values()[m.type]); + } + if(!(stack.getItem() instanceof ItemGunBase)) return null; @@ -81,5 +89,27 @@ public class GunAnimationPacket implements IMessage { return null; } + + public static void handleSedna(EntityPlayer player, ItemStack stack, int slot, AnimType type) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + GunConfig config = gun.getConfig(stack); + + BiFunction anims = config.getAnims(stack); + BusAnimation animation = anims.apply(stack, type); + + if(animation == null && type == AnimType.RELOAD_EMPTY) { + animation = anims.apply(stack, AnimType.RELOAD); + } + if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { + animation = anims.apply(stack, AnimType.CYCLE); + } + + if(animation != null) { + Minecraft.getMinecraft().entityRenderer.itemRenderer.resetEquippedProgress(); + Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender = stack; + boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; + HbmAnimations.hotbar[slot] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, isReloadAnimation && config.getReloadAnimSequential(stack)); + } + } } } diff --git a/src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java b/src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java rename to src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java index 0d364608f..f5282515a 100644 --- a/src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java +++ b/src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.entity.logic.EntityBomber; import com.hbm.sound.MovingSoundBomber; diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/toclient/LoopedSoundPacket.java similarity index 99% rename from src/main/java/com/hbm/packet/LoopedSoundPacket.java rename to src/main/java/com/hbm/packet/toclient/LoopedSoundPacket.java index 0312680a0..5533245d1 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/toclient/LoopedSoundPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.interfaces.Spaghetti; import com.hbm.sound.*; diff --git a/src/main/java/com/hbm/packet/NBTPacket.java b/src/main/java/com/hbm/packet/toclient/NBTPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/NBTPacket.java rename to src/main/java/com/hbm/packet/toclient/NBTPacket.java index 3bd5afbcb..65b15e8af 100644 --- a/src/main/java/com/hbm/packet/NBTPacket.java +++ b/src/main/java/com/hbm/packet/toclient/NBTPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; @@ -14,7 +14,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; - @Deprecated // rest in peace sweet little prince public class NBTPacket implements IMessage { diff --git a/src/main/java/com/hbm/packet/ParticleBurstPacket.java b/src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/ParticleBurstPacket.java rename to src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java index c6b58a8b7..6be55c831 100644 --- a/src/main/java/com/hbm/packet/ParticleBurstPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/PermaSyncPacket.java b/src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java similarity index 94% rename from src/main/java/com/hbm/packet/PermaSyncPacket.java rename to src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java index 2415e3696..dcf7ee365 100644 --- a/src/main/java/com/hbm/packet/PermaSyncPacket.java +++ b/src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java @@ -1,4 +1,6 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; + +import com.hbm.packet.PermaSyncHandler; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/PlayerInformPacket.java b/src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/PlayerInformPacket.java rename to src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java index 01bb8b599..0cdb23d20 100644 --- a/src/main/java/com/hbm/packet/PlayerInformPacket.java +++ b/src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.main.MainRegistry; diff --git a/src/main/java/com/hbm/packet/SatPanelPacket.java b/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/SatPanelPacket.java rename to src/main/java/com/hbm/packet/toclient/SatPanelPacket.java index 89252d7e1..3a1a343d3 100644 --- a/src/main/java/com/hbm/packet/SatPanelPacket.java +++ b/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; diff --git a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEDoorAnimationPacket.java rename to src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java index 7321aa015..3511f0d07 100644 --- a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.interfaces.IAnimatedDoor; diff --git a/src/main/java/com/hbm/packet/TEFFPacket.java b/src/main/java/com/hbm/packet/toclient/TEFFPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEFFPacket.java rename to src/main/java/com/hbm/packet/toclient/TEFFPacket.java index 4549dfc11..26de5bd91 100644 --- a/src/main/java/com/hbm/packet/TEFFPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEFFPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.tileentity.machine.TileEntityForceField; import cpw.mods.fml.common.network.simpleimpl.IMessage; diff --git a/src/main/java/com/hbm/packet/TEMissileMultipartPacket.java b/src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEMissileMultipartPacket.java rename to src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java index 9bf955906..e25d5bbac 100644 --- a/src/main/java/com/hbm/packet/TEMissileMultipartPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.handler.MissileStruct; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; diff --git a/src/main/java/com/hbm/packet/TESirenPacket.java b/src/main/java/com/hbm/packet/toclient/TESirenPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TESirenPacket.java rename to src/main/java/com/hbm/packet/toclient/TESirenPacket.java index bdd3d0ea0..8e6f79825 100644 --- a/src/main/java/com/hbm/packet/TESirenPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TESirenPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.items.machine.ItemCassette.SoundType; import com.hbm.items.machine.ItemCassette.TrackType; diff --git a/src/main/java/com/hbm/packet/TEVaultPacket.java b/src/main/java/com/hbm/packet/toclient/TEVaultPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEVaultPacket.java rename to src/main/java/com/hbm/packet/toclient/TEVaultPacket.java index 2b0139e92..84721d0b9 100644 --- a/src/main/java/com/hbm/packet/TEVaultPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEVaultPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.tileentity.machine.TileEntityBlastDoor; import com.hbm.tileentity.machine.TileEntityVaultDoor; diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/AnvilCraftPacket.java rename to src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java index d8b1049a4..1a33e48a6 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java similarity index 99% rename from src/main/java/com/hbm/packet/AuxButtonPacket.java rename to src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java index c80dfd5ef..7f41feeb1 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; diff --git a/src/main/java/com/hbm/packet/GunButtonPacket.java b/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/GunButtonPacket.java rename to src/main/java/com/hbm/packet/toserver/GunButtonPacket.java index a9688de1d..0dc5f0e99 100644 --- a/src/main/java/com/hbm/packet/GunButtonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.weapon.ItemGunBase; diff --git a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java b/src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java similarity index 99% rename from src/main/java/com/hbm/packet/ItemBobmazonPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java index c665f8891..9866b4596 100644 --- a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.util.Random; diff --git a/src/main/java/com/hbm/packet/ItemDesignatorPacket.java b/src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/ItemDesignatorPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java index 126325b16..8acdcc808 100644 --- a/src/main/java/com/hbm/packet/ItemDesignatorPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/packet/ItemFolderPacket.java b/src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java similarity index 99% rename from src/main/java/com/hbm/packet/ItemFolderPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java index 7f70ce19a..e6258ba19 100644 --- a/src/main/java/com/hbm/packet/ItemFolderPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.AssemblerRecipes; diff --git a/src/main/java/com/hbm/packet/KeybindPacket.java b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java similarity index 84% rename from src/main/java/com/hbm/packet/KeybindPacket.java rename to src/main/java/com/hbm/packet/toserver/KeybindPacket.java index 3b3f2a80c..945d21e69 100644 --- a/src/main/java/com/hbm/packet/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java @@ -1,7 +1,7 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; -import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.HbmKeybindsServer; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -39,9 +39,7 @@ public class KeybindPacket implements IMessage { public IMessage onMessage(KeybindPacket m, MessageContext ctx) { EntityPlayer p = ctx.getServerHandler().playerEntity; - HbmPlayerProps props = HbmPlayerProps.getData(p); - - props.setKeyPressed(EnumKeybind.values()[m.key], m.pressed); + HbmKeybindsServer.onPressedServer(p, EnumKeybind.values()[m.key], m.pressed); return null; } diff --git a/src/main/java/com/hbm/packet/NBTControlPacket.java b/src/main/java/com/hbm/packet/toserver/NBTControlPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/NBTControlPacket.java rename to src/main/java/com/hbm/packet/toserver/NBTControlPacket.java index 226b3eae1..52ca6261c 100644 --- a/src/main/java/com/hbm/packet/NBTControlPacket.java +++ b/src/main/java/com/hbm/packet/toserver/NBTControlPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.io.IOException; diff --git a/src/main/java/com/hbm/packet/NBTItemControlPacket.java b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/NBTItemControlPacket.java rename to src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java index 7f03f6894..3bae1121a 100644 --- a/src/main/java/com/hbm/packet/NBTItemControlPacket.java +++ b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.io.IOException; diff --git a/src/main/java/com/hbm/packet/SatCoordPacket.java b/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/SatCoordPacket.java rename to src/main/java/com/hbm/packet/toserver/SatCoordPacket.java index 0d165165d..b36ef3245 100644 --- a/src/main/java/com/hbm/packet/SatCoordPacket.java +++ b/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; diff --git a/src/main/java/com/hbm/packet/SatLaserPacket.java b/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/SatLaserPacket.java rename to src/main/java/com/hbm/packet/toserver/SatLaserPacket.java index 1dc430a7b..9b0bacea8 100644 --- a/src/main/java/com/hbm/packet/SatLaserPacket.java +++ b/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; diff --git a/src/main/java/com/hbm/particle/helper/IParticleCreator.java b/src/main/java/com/hbm/particle/helper/IParticleCreator.java index 2dbae2da1..f55ef2f05 100644 --- a/src/main/java/com/hbm/particle/helper/IParticleCreator.java +++ b/src/main/java/com/hbm/particle/helper/IParticleCreator.java @@ -2,8 +2,8 @@ package com.hbm.particle.helper; import java.util.Random; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; 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 e44b0444f..98c47f23a 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java @@ -6,16 +6,13 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.GunFolly; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelDash; import com.hbm.render.model.ModelDefabricator; import com.hbm.render.model.ModelEuthanasia; import com.hbm.render.model.ModelFolly; import com.hbm.render.model.ModelHP; import com.hbm.render.model.ModelJack; import com.hbm.render.model.ModelLacunae; -import com.hbm.render.model.ModelPip; import com.hbm.render.model.ModelSpark; -import com.hbm.render.model.ModelTwiGun; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; @@ -31,9 +28,6 @@ public class ItemRenderOverkill implements IItemRenderer { protected ModelHP hppLaserjet; protected ModelEuthanasia euthanasia; protected ModelDefabricator defab; - protected ModelDash dasher; - protected ModelTwiGun rgottp; - protected ModelPip pip; protected ModelLacunae lacunae; protected ModelFolly folly; @@ -43,9 +37,6 @@ public class ItemRenderOverkill implements IItemRenderer { hppLaserjet = new ModelHP(); euthanasia = new ModelEuthanasia(); defab = new ModelDefabricator(); - dasher = new ModelDash(); - rgottp = new ModelTwiGun(); - pip = new ModelPip(); lacunae = new ModelLacunae(); folly = new ModelFolly(); } @@ -88,10 +79,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); if(item.getItem() == ModItems.gun_defabricator) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); if(item.getItem() == ModItems.gun_revolver_pip) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); if(item.getItem() == ModItems.gun_revolver_nopip) @@ -154,16 +141,6 @@ public class ItemRenderOverkill implements IItemRenderer { euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_defabricator) defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || item.getItem() == ModItems.gun_minigun) @@ -190,10 +167,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); if(item.getItem() == ModItems.gun_defabricator) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); if(item.getItem() == ModItems.gun_revolver_pip) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); if(item.getItem() == ModItems.gun_revolver_nopip) @@ -256,16 +229,6 @@ public class ItemRenderOverkill implements IItemRenderer { euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_defabricator) defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || item.getItem() == ModItems.gun_minigun) @@ -291,10 +254,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); if(item.getItem() == ModItems.gun_defabricator) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); if(item.getItem() == ModItems.gun_revolver_pip) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); if(item.getItem() == ModItems.gun_revolver_nopip) @@ -341,16 +300,6 @@ public class ItemRenderOverkill implements IItemRenderer { euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_defabricator) defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || item.getItem() == ModItems.gun_minigun) diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java deleted file mode 100644 index 900012ce6..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java +++ /dev/null @@ -1,86 +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.ModelNightmare; -import com.hbm.render.model.ModelNightmare2; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverNightmare implements IItemRenderer { - - protected ModelNightmare n1; - protected ModelNightmare2 n2; - protected Item item; - - public ItemRenderRevolverNightmare(Item item) { - n1 = new ModelNightmare(); - n2 = new ModelNightmare2(); - this.item = item; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - if(this.item == ModItems.gun_revolver_nightmare) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare.png")); - if(this.item == ModItems.gun_revolver_nightmare2) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare2.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); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - if(this.item == ModItems.gun_revolver_nightmare) - n1.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - if(this.item == ModItems.gun_revolver_nightmare2) - n2.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(this.item == ModItems.gun_revolver_nightmare) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare.png")); - if(this.item == ModItems.gun_revolver_nightmare2) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare2.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - if(this.item == ModItems.gun_revolver_nightmare) - n1.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - if(this.item == ModItems.gun_revolver_nightmare2) - n2.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java deleted file mode 100644 index 8a2533a48..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRocket; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRocket implements IItemRenderer { - - protected ModelRocket swordModel; - - public ItemRenderRocket() { - swordModel = new ModelRocket(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRocket.png")); - GL11.glRotatef(-45.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.0F, 0.6F, -0.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRocket.png")); - GL11.glRotatef(-110.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 2.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.5F, 0.0F); - GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 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/ItemRenderWeaponGlass.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java index aa8e186e4..418636da7 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java @@ -3,7 +3,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.gununified.ItemEnergyGunBase; +import com.hbm.items.weapon.ItemEnergyGunBase; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java new file mode 100644 index 000000000..49635e669 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java @@ -0,0 +1,92 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderDebug extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + protected void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.0F * offset, -0.75F * offset, 1F * offset, + 0, -3.875 / 8D, 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + + double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); + GL11.glRotated(equipSpin[0], 0, 0, 1); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 0, 0, 1); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.debug_gun_tex); + ResourceManager.lilmac.renderPart("Gun"); + + GL11.glPushMatrix(); + ResourceManager.lilmac.renderPart("Pivot"); + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(4, 1.25, 0); + GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); + GL11.glTranslated(-4, -1.25, 0); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + protected void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glRotated(90, 0, 1, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.debug_gun_tex); + ResourceManager.lilmac.renderPart("Gun"); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + ResourceManager.lilmac.renderPart("Pivot"); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java new file mode 100644 index 000000000..dc9a64b8b --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -0,0 +1,229 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import org.lwjgl.util.glu.Project; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.IItemRenderer; + +public abstract class ItemRenderWeaponBase implements IItemRenderer { + + public static float interp; + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return type != ItemRenderType.FIRST_PERSON_MAP; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; + } + + @SuppressWarnings("incomplete-switch") //shut the fuck up + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + GL11.glPushMatrix(); + switch(type) { + case EQUIPPED_FIRST_PERSON: setupFirstPerson(item); renderFirstPerson(item); break; + case EQUIPPED: setupThirdPerson(item); renderOther(item, type); break; + case INVENTORY: setupInv(item); renderOther(item, type); break; + case ENTITY: setupEntity(item); renderOther(item, type); break; + } + GL11.glPopMatrix(); + } + + public void setPerspectiveAndRender(ItemStack stack, float interp) { + + this.interp = interp; + + Minecraft mc = Minecraft.getMinecraft(); + EntityRenderer entityRenderer = mc.entityRenderer; + float farPlaneDistance = mc.gameSettings.renderDistanceChunks * 16; + + GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT); + GL11.glMatrixMode(GL11.GL_PROJECTION); + GL11.glLoadIdentity(); + + Project.gluPerspective(this.getFOVModifier(interp, false), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, farPlaneDistance * 2.0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glLoadIdentity(); + + GL11.glPushMatrix(); + + if(mc.gameSettings.thirdPersonView == 0 && !mc.renderViewEntity.isPlayerSleeping() && !mc.gameSettings.hideGUI && !mc.playerController.enableEverythingIsScrewedUpMode()) { + entityRenderer.enableLightmap(interp); + this.setupTransformsAndRender(stack); + entityRenderer.disableLightmap(interp); + } + + GL11.glPopMatrix(); + + if(mc.gameSettings.thirdPersonView == 0 && !mc.renderViewEntity.isPlayerSleeping()) { + entityRenderer.itemRenderer.renderOverlays(interp); + } + } + + private float getFOVModifier(float interp, boolean useFOVSetting) { + + Minecraft mc = Minecraft.getMinecraft(); + EntityLivingBase entityplayer = (EntityLivingBase) mc.renderViewEntity; + float fov = 70.0F; + + if(useFOVSetting) fov = mc.gameSettings.fovSetting; + + if(entityplayer.getHealth() <= 0.0F) { + float f2 = (float) entityplayer.deathTime + interp; + fov /= (1.0F - 500.0F / (f2 + 500.0F)) * 2.0F + 1.0F; + } + + Block block = ActiveRenderInfo.getBlockAtEntityViewpoint(mc.theWorld, entityplayer, interp); + if(block.getMaterial() == Material.water) fov = fov * 60.0F / 70.0F; + + return fov; + } + + protected float getSwayMagnitude(ItemStack stack) { return 0.5F; } + protected float getSwayPeriod(ItemStack stack) { return 0.75F; } + protected float getTurnMagnitude(ItemStack stack) { return 2.75F; } + + protected void setupTransformsAndRender(ItemStack stack) { + Minecraft mc = Minecraft.getMinecraft(); + EntityPlayer player = mc.thePlayer; + + float swayMagnitude = getSwayMagnitude(stack); + float swayPeriod = getSwayPeriod(stack); + float turnMagnitude = getTurnMagnitude(stack); + + //lighting setup (item lighting changes based on player rotation) + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * interp; + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp; + + GL11.glPushMatrix(); + GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(yaw, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + //floppyness + EntityPlayerSP entityplayersp = (EntityPlayerSP) player; + float armPitch = entityplayersp.prevRenderArmPitch + (entityplayersp.renderArmPitch - entityplayersp.prevRenderArmPitch) * interp; + float armYaw = entityplayersp.prevRenderArmYaw + (entityplayersp.renderArmYaw - entityplayersp.prevRenderArmYaw) * interp; + GL11.glRotatef((player.rotationPitch - armPitch) * 0.1F * turnMagnitude, 1.0F, 0.0F, 0.0F); + GL11.glRotatef((player.rotationYaw - armYaw) * 0.1F * turnMagnitude, 0.0F, 1.0F, 0.0F); + + //brightness setup + int brightness = mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + //color setup + int color = stack.getItem().getColorFromItemStack(stack, 0); + float r = (float) (color >> 16 & 255) / 255.0F; + float g = (float) (color >> 8 & 255) / 255.0F; + float b = (float) (color & 255) / 255.0F; + GL11.glColor4f(r, g, b, 1.0F); + + GL11.glPushMatrix(); + + //swing + float swing = player.getSwingProgress(interp); + float swingZ = MathHelper.sin(swing * (float) Math.PI); + float swingX = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); + GL11.glTranslatef(-swingX * 0.4F, MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI * 2.0F) * 0.2F, -swingZ * 0.2F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + float swingYaw = MathHelper.sin(swing * swing * (float) Math.PI); + float swingPitchRoll = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); + GL11.glRotatef(-swingYaw * 20.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-swingPitchRoll * 20.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-swingPitchRoll * 80.0F, 1.0F, 0.0F, 0.0F); + + GL11.glRotated(180, 0, 1, 0); + + //viewbob + if(mc.renderViewEntity instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) mc.renderViewEntity; + float distanceDelta = entityplayer.distanceWalkedModified - entityplayer.prevDistanceWalkedModified; + float distanceInterp = -(entityplayer.distanceWalkedModified + distanceDelta * interp); + float camYaw = entityplayer.prevCameraYaw + (entityplayer.cameraYaw - entityplayer.prevCameraYaw) * interp; + float camPitch = entityplayer.prevCameraPitch + (entityplayer.cameraPitch - entityplayer.prevCameraPitch) * interp; + GL11.glTranslatef(MathHelper.sin(distanceInterp * (float) Math.PI * swayPeriod) * camYaw * 0.5F * swayMagnitude, -Math.abs(MathHelper.cos(distanceInterp * (float) Math.PI * swayPeriod) * camYaw) * swayMagnitude, 0.0F); + GL11.glRotatef(MathHelper.sin(distanceInterp * (float) Math.PI * swayPeriod) * camYaw * 3.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(Math.abs(MathHelper.cos(distanceInterp * (float) Math.PI * swayPeriod - 0.2F) * camYaw) * 5.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(camPitch, 1.0F, 0.0F, 0.0F); + } + + this.renderItem(ItemRenderType.EQUIPPED_FIRST_PERSON, stack, null, player); + + GL11.glPopMatrix(); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + RenderHelper.disableStandardItemLighting(); + } + + protected void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1); + + if(Minecraft.getMinecraft().thePlayer.isSneaking()) { + GL11.glTranslated(0, -3.875 / 8D, 0); + } else { + float offset = 0.8F; + GL11.glRotated(180, 0, 1, 0); + GL11.glTranslatef(1.0F * offset, -0.75F * offset, -0.5F * offset); + GL11.glRotated(180, 0, 1, 0); + } + } + + protected void setupThirdPerson(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(15.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(12.5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10.0F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslated(3.5, 0, 0); + + } + + protected void setupInv(ItemStack stack) { + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + } + + protected void setupEntity(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + } + + public abstract void renderFirstPerson(ItemStack stack); + public abstract void renderOther(ItemStack stack, ItemRenderType type); + + public static void standardAimingTransform(ItemStack stack, double sX, double sY, double sZ, double aX, double aY, double aZ) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + double x = sX + (aX - sX) * aimingProgress; + double y = sY + (aY - sY) * aimingProgress; + double z = sZ + (aZ - sZ) * aimingProgress; + GL11.glTranslated(x, y, z); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelAt4.java b/src/main/java/com/hbm/render/model/ModelAt4.java deleted file mode 100644 index f2f15512f..000000000 --- a/src/main/java/com/hbm/render/model/ModelAt4.java +++ /dev/null @@ -1,134 +0,0 @@ -// Date: 06.04.2016 17:39:42 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelAt4 extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelAt4() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 18, 3, 2); - Shape1.setRotationPoint(-8F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 5); - Shape2.addBox(0F, 0F, 0F, 18, 2, 3); - Shape2.setRotationPoint(-8F, 0.5F, -0.5F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 3, 4, 4); - Shape3.setRotationPoint(10F, -0.5F, -1F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 18); - Shape4.addBox(0F, 0F, 0F, 1, 3, 3); - Shape4.setRotationPoint(-9F, 0F, -0.5F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 14, 10); - Shape5.addBox(0F, 0F, 0F, 1, 4, 4); - Shape5.setRotationPoint(-10F, -0.5F, -1F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 24); - Shape6.addBox(0F, 0F, 0F, 1, 3, 1); - Shape6.setRotationPoint(-6F, 3F, 0.5F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 4, 24); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-3F, 3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 8, 18); - Shape8.addBox(0F, 0F, 0F, 3, 1, 1); - Shape8.setRotationPoint(-6F, -0.5F, -2F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 28); - Shape9.addBox(0F, 0F, 0F, 1, 1, 2); - Shape9.setRotationPoint(-5F, 0F, -1.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override -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, entity); - 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); - } - - public void renderModel(float 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); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBoltAction.java b/src/main/java/com/hbm/render/model/ModelBoltAction.java deleted file mode 100644 index 287421431..000000000 --- a/src/main/java/com/hbm/render/model/ModelBoltAction.java +++ /dev/null @@ -1,250 +0,0 @@ -// Date: 14.01.2018 22:26:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; - -public class ModelBoltAction extends ModelBase { - // fields - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Grip; - ModelRenderer BodyFront; - ModelRenderer BodyMain; - ModelRenderer LeverFront; - ModelRenderer LeverBottom; - ModelRenderer LeverMid; - ModelRenderer Trigger; - ModelRenderer GripFront; - ModelRenderer GropFrontBottom; - ModelRenderer GripBottom; - ModelRenderer Bolt; - ModelRenderer ChamberFront; - ModelRenderer ChamberBack; - ModelRenderer BodyBack; - ModelRenderer LeverTip; - ModelRenderer Lever; - ModelRenderer HandleFront; - ModelRenderer Pointer; - ModelRenderer HandleBottom; - ModelRenderer HandleGrip; - - public ModelBoltAction() { - textureWidth = 128; - textureHeight = 64; - - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 60, 3, 2); - Barrel1.setRotationPoint(-60F, 1.5F, -1F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 60, 2, 3); - Barrel2.setRotationPoint(-60F, 2F, -1.5F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 10); - Grip.addBox(0F, 0F, 0F, 28, 5, 4); - Grip.setRotationPoint(-28F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 0, 19); - BodyFront.addBox(0F, 0F, 0F, 3, 7, 4); - BodyFront.setRotationPoint(0F, 2.5F, -2F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyMain = new ModelRenderer(this, 14, 19); - BodyMain.addBox(0F, 0F, 0F, 8, 7, 4); - BodyMain.setRotationPoint(3F, 2.5F, -2F); - BodyMain.setTextureSize(64, 32); - BodyMain.mirror = true; - setRotation(BodyMain, 0F, 0F, 0F); - LeverFront = new ModelRenderer(this, 62, 30); - LeverFront.addBox(-1F, 0F, 0F, 2, 4, 2); - LeverFront.setRotationPoint(7F, 9F, -1F); - LeverFront.setTextureSize(64, 32); - LeverFront.mirror = true; - setRotation(LeverFront, 0F, 0F, 0F); - LeverBottom = new ModelRenderer(this, 70, 30); - LeverBottom.addBox(0F, 4F, 0F, 6, 1, 2); - LeverBottom.setRotationPoint(7F, 9F, -1F); - LeverBottom.setTextureSize(64, 32); - LeverBottom.mirror = true; - setRotation(LeverBottom, 0F, 0F, 0F); - LeverMid = new ModelRenderer(this, 62, 36); - LeverMid.addBox(6F, 0F, 0F, 1, 5, 2); - LeverMid.setRotationPoint(7F, 9F, -1F); - LeverMid.setTextureSize(64, 32); - LeverMid.mirror = true; - setRotation(LeverMid, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 88, 30); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(12.5F, 9F, -0.5F); - Trigger.setTextureSize(64, 32); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - GripFront = new ModelRenderer(this, 0, 30); - GripFront.addBox(0F, 0F, 0F, 18, 3, 4); - GripFront.setRotationPoint(-46F, 3F, -2F); - GripFront.setTextureSize(128, 64); - GripFront.mirror = true; - setRotation(GripFront, 0F, 0F, 0F); - GropFrontBottom = new ModelRenderer(this, 0, 37); - GropFrontBottom.addBox(0F, 0F, 0F, 18, 1, 2); - GropFrontBottom.setRotationPoint(-46F, 6F, -1F); - GropFrontBottom.setTextureSize(128, 64); - GropFrontBottom.mirror = true; - setRotation(GropFrontBottom, 0F, 0F, 0F); - GripBottom = new ModelRenderer(this, 0, 40); - GripBottom.addBox(0F, 0F, 0F, 28, 1, 2); - GripBottom.setRotationPoint(-28F, 8F, -1F); - GripBottom.setTextureSize(128, 64); - GripBottom.mirror = true; - setRotation(GripBottom, 0F, 0F, 0F); - Bolt = new ModelRenderer(this, 0, 43); - Bolt.addBox(0F, 0F, 0F, 10, 2, 2); - Bolt.setRotationPoint(3F, 2F, -1F); - Bolt.setTextureSize(128, 64); - Bolt.mirror = true; - setRotation(Bolt, 0F, 0F, 0F); - ChamberFront = new ModelRenderer(this, 0, 47); - ChamberFront.addBox(0F, 0F, 0F, 3, 1, 3); - ChamberFront.setRotationPoint(0F, 1.5F, -1.5F); - ChamberFront.setTextureSize(128, 64); - ChamberFront.mirror = true; - setRotation(ChamberFront, 0F, 0F, 0F); - ChamberBack = new ModelRenderer(this, 12, 47); - ChamberBack.addBox(0F, 0F, 0F, 3, 1, 3); - ChamberBack.setRotationPoint(8F, 1.5F, -1.5F); - ChamberBack.setTextureSize(128, 64); - ChamberBack.mirror = true; - setRotation(ChamberBack, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 0, 51); - BodyBack.addBox(0F, 0F, 0F, 4, 6, 4); - BodyBack.setRotationPoint(11F, 3.5F, -2F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - LeverTip = new ModelRenderer(this, 24, 43); - LeverTip.addBox(0F, -1F, 3F, 2, 2, 2); - LeverTip.setRotationPoint(11F, 3F, 0F); - LeverTip.setTextureSize(128, 64); - LeverTip.mirror = true; - setRotation(LeverTip, -0.4363323F, 0F, 0F); - Lever = new ModelRenderer(this, 32, 43); - Lever.addBox(0F, -0.5F, 0F, 1, 1, 4); - Lever.setRotationPoint(11.5F, 3F, 0F); - Lever.setTextureSize(128, 64); - Lever.mirror = true; - setRotation(Lever, -0.4363323F, 0F, 0F); - HandleFront = new ModelRenderer(this, 16, 51); - HandleFront.addBox(0F, 0F, 0F, 9, 5, 4); - HandleFront.setRotationPoint(15F, 4.5F, -2F); - HandleFront.setTextureSize(128, 64); - HandleFront.mirror = true; - setRotation(HandleFront, 0F, 0F, 0.4363323F); - Pointer = new ModelRenderer(this, 42, 43); - Pointer.addBox(0F, 0F, 0F, 3, 1, 1); - Pointer.setRotationPoint(-49F, 5.5F, -0.5F); - Pointer.setTextureSize(128, 64); - Pointer.mirror = true; - setRotation(Pointer, 0F, 0F, 0F); - HandleBottom = new ModelRenderer(this, 64, 10); - HandleBottom.addBox(0F, -8F, 0F, 23, 8, 4); - HandleBottom.setRotationPoint(19F, 16F, -2F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0F); - HandleGrip = new ModelRenderer(this, 38, 19); - HandleGrip.addBox(0F, 0F, 0F, 2, 5, 4); - HandleGrip.setRotationPoint(17F, 9.5F, -2F); - HandleGrip.setTextureSize(128, 64); - HandleGrip.mirror = true; - setRotation(HandleGrip, 0F, 0F, 0F); - } - - 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, entity); - Barrel1.render(f5); - Barrel2.render(f5); - Grip.render(f5); - BodyFront.render(f5); - BodyMain.render(f5); - LeverFront.render(f5); - LeverBottom.render(f5); - LeverMid.render(f5); - Trigger.render(f5); - GripFront.render(f5); - GropFrontBottom.render(f5); - GripBottom.render(f5); - Bolt.render(f5); - ChamberFront.render(f5); - ChamberBack.render(f5); - BodyBack.render(f5); - LeverTip.render(f5); - Lever.render(f5); - HandleFront.render(f5); - Pointer.render(f5); - HandleBottom.render(f5); - HandleGrip.render(f5); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot, float tran) { - - LeverTip.rotateAngleX += rot; - Lever.rotateAngleX += rot; - Bolt.offsetX += tran; - LeverTip.offsetX += tran; - Lever.offsetX += tran; - - render(entity, f, f1, f2, f3, f4, f5); - - setRotation(LeverTip, -0.4363323F, 0F, 0F); - setRotation(Lever, -0.4363323F, 0F, 0F); - Bolt.offsetX -= tran; - LeverTip.offsetX -= tran; - Lever.offsetX -= tran; - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelDash.java b/src/main/java/com/hbm/render/model/ModelDash.java deleted file mode 100755 index 24f56ecc2..000000000 --- a/src/main/java/com/hbm/render/model/ModelDash.java +++ /dev/null @@ -1,122 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: ModelDash -// Model Creator: -// Created on: 01.11.2017 - 20:07:57 -// Last changed on: 01.11.2017 - 20:07:57 - -package com.hbm.render.model; //Path where the model is located - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelDash extends ModelBase //Same as Filename -{ - int textureX = 64; - int textureY = 64; - ModelRenderer[] bodyModel; - - public ModelDash() //Same as Filename - { - textureWidth = 64; - textureHeight = 64; - bodyModel = new ModelRenderer[16]; - bodyModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - bodyModel[1] = new ModelRenderer(this, 25, 1); // Box 1 - bodyModel[2] = new ModelRenderer(this, 1, 9); // Box 2 - bodyModel[3] = new ModelRenderer(this, 33, 9); // Box 3 - bodyModel[4] = new ModelRenderer(this, 57, 1); // Box 4 - bodyModel[5] = new ModelRenderer(this, 1, 17); // Box 5 - bodyModel[6] = new ModelRenderer(this, 9, 17); // Box 6 - bodyModel[7] = new ModelRenderer(this, 17, 17); // Box 7 - bodyModel[8] = new ModelRenderer(this, 41, 17); // Box 8 - bodyModel[9] = new ModelRenderer(this, 1, 25); // Box 9 - bodyModel[10] = new ModelRenderer(this, 17, 25); // Box 10 - bodyModel[11] = new ModelRenderer(this, 41, 25); // Box 11 - bodyModel[12] = new ModelRenderer(this, 49, 25); // Box 12 - bodyModel[13] = new ModelRenderer(this, 1, 33); // Box 13 - bodyModel[14] = new ModelRenderer(this, 17, 33); // Box 14 - bodyModel[15] = new ModelRenderer(this, 25, 33); // Box 16 - - bodyModel[0].addBox(0F, 0F, 0F, 7, 3, 3, 0F); // Box 0 - bodyModel[0].setRotationPoint(0F, 0F, -1.5F); - - bodyModel[1].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 1 - bodyModel[1].setRotationPoint(-12F, 1F, 0F); - - bodyModel[2].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 2 - bodyModel[2].setRotationPoint(-12F, 1F, 0F); - bodyModel[2].rotateAngleX = 2.0943951F; - - bodyModel[3].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 3 - bodyModel[3].setRotationPoint(-12F, 1F, 0F); - bodyModel[3].rotateAngleX = -2.0943951F; - - bodyModel[4].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 4 - bodyModel[4].setRotationPoint(-12.5F, 1F, 0F); - - bodyModel[5].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 5 - bodyModel[5].setRotationPoint(-12.5F, 1F, 0F); - bodyModel[5].rotateAngleX = 2.0943951F; - - bodyModel[6].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 6 - bodyModel[6].setRotationPoint(-12.5F, 1F, 0F); - bodyModel[6].rotateAngleX = -2.0943951F; - - bodyModel[7].addBox(0F, 0F, 0F, 7, 1, 2, 0F); // Box 7 - bodyModel[7].setRotationPoint(0F, -0.5F, -1F); - - bodyModel[8].addBox(0F, 0F, 0F, 7, 2, 2, 0F); // Box 8 - bodyModel[8].setRotationPoint(7F, 0.5F, -1F); - - bodyModel[9].addBox(0F, 0F, 0F, 2, 2, 2, 0F); // Box 9 - bodyModel[9].setRotationPoint(12F, 2.5F, -1F); - - bodyModel[10].addBox(-6F, -2F, 0F, 6, 2, 2, 0F); // Box 10 - bodyModel[10].setRotationPoint(12F, 4.5F, -1F); - bodyModel[10].rotateAngleZ = 0.29670597F; - - bodyModel[11].addBox(0F, 0F, 0F, 1, 3, 1, 0F); // Box 11 - bodyModel[11].setRotationPoint(6F, 3F, -0.5F); - bodyModel[11].rotateAngleZ = -0.26179939F; - - bodyModel[12].addBox(0F, 0F, 0F, 5, 2, 2, 0F); // Box 12 - bodyModel[12].setRotationPoint(0F, 3F, -1F); - - bodyModel[13].addBox(0F, 0F, 0F, 6, 1, 1, 0F); // Box 13 - bodyModel[13].setRotationPoint(2F, 5F, -0.5F); - - bodyModel[14].addBox(0F, 0F, 0F, 1, 4, 1, 0F); // Box 14 - bodyModel[14].setRotationPoint(0.5F, 1F, -1.5F); - bodyModel[14].rotateAngleX = -0.61086524F; - - bodyModel[15].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 16 - bodyModel[15].setRotationPoint(3F, -1F, -0.5F); - - for(int i = 0; i < 16; i++) - { - bodyModel[i].setTextureSize(textureX, textureY); - bodyModel[i].mirror = true; - } - } - - @Override - 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, entity); - for(int i = 0; i < 16; i++) - { - bodyModel[i].render(f5); - } - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelGloves.java b/src/main/java/com/hbm/render/model/ModelGloves.java deleted file mode 100644 index 797d82d0d..000000000 --- a/src/main/java/com/hbm/render/model/ModelGloves.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.hbm.render.model; - -public class ModelGloves { - - //TODO: make the rubber gloves actually render when worn - public ModelGloves() { - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelGrenade.java b/src/main/java/com/hbm/render/model/ModelGrenade.java deleted file mode 100644 index 88ee4dddb..000000000 --- a/src/main/java/com/hbm/render/model/ModelGrenade.java +++ /dev/null @@ -1,67 +0,0 @@ -// Date: 23.01.2019 10:30:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelGrenade extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - - public ModelGrenade() { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 8, 8); - Shape1.setRotationPoint(-4F, -4F, -4F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 4, 6, 6); - Shape2.setRotationPoint(-8F, -3F, -3F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 20, 16); - Shape3.addBox(0F, 0F, 0F, 1, 4, 4); - Shape3.setRotationPoint(-9F, -2F, -2F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - } - - 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, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelNightmare.java b/src/main/java/com/hbm/render/model/ModelNightmare.java deleted file mode 100644 index 750e64b28..000000000 --- a/src/main/java/com/hbm/render/model/ModelNightmare.java +++ /dev/null @@ -1,198 +0,0 @@ -// Date: 08.12.2016 20:24:28 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelNightmare extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Bullet1; - ModelRenderer Bullet2; - ModelRenderer Bullet3; - ModelRenderer Bullet4; - ModelRenderer Bullet5; - ModelRenderer Bullet6; - - public ModelNightmare() { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 8, 2); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, -0.3490659F); - Shape2 = new ModelRenderer(this, 42, 0); - Shape2.addBox(0F, 0F, 0F, 9, 6, 2); - Shape2.setRotationPoint(-8F, -5F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 14); - Shape3.addBox(0F, 0F, 0F, 4, 2, 1); - Shape3.setRotationPoint(-0.03333334F, -3F, 0.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0.715585F); - Shape4 = new ModelRenderer(this, 22, 0); - Shape4.addBox(0F, 0F, 0F, 6, 4, 3); - Shape4.setRotationPoint(-7F, -4F, 0F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 0); - Shape5.addBox(0F, 0F, 0F, 1, 1, 1); - Shape5.setRotationPoint(0F, 0F, 0F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 34, 8); - Shape6.addBox(0F, 0F, 0F, 13, 2, 2); - Shape6.setRotationPoint(-21F, -4F, 0F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 17); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(2F, -3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.715585F); - Shape8 = new ModelRenderer(this, 4, 17); - Shape8.addBox(0F, 0F, 0F, 2, 1, 1); - Shape8.setRotationPoint(2F, -4F, 0.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0.715585F); - Shape9 = new ModelRenderer(this, 0, 20); - Shape9.addBox(0F, 0F, 0F, 6, 1, 1); - Shape9.setRotationPoint(-14F, -2F, 0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 26, 8); - Shape10.addBox(0F, 0F, 0F, 2, 2, 2); - Shape10.setRotationPoint(-19F, -5F, 0F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0.6108652F); - Shape11 = new ModelRenderer(this, 0, 10); - Shape11.addBox(0F, 0F, 0F, 4, 3, 1); - Shape11.setRotationPoint(-2F, 1F, 0.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 10, 0); - Shape12.addBox(0F, 0F, 0F, 1, 3, 1); - Shape12.setRotationPoint(0F, 0F, 0.5F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0.5235988F); - Bullet1 = new ModelRenderer(this, 6, 22); - Bullet1.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet1.setRotationPoint(-7.5F, -4F, -1F); - Bullet1.setTextureSize(64, 32); - Bullet1.mirror = true; - setRotation(Bullet1, 0F, 0F, 0F); - Bullet2 = new ModelRenderer(this, 0, 22); - Bullet2.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet2.setRotationPoint(-6.5F, -4F, -1F); - Bullet2.setTextureSize(64, 32); - Bullet2.mirror = true; - setRotation(Bullet2, 0F, 0F, 0F); - Bullet3 = new ModelRenderer(this, 6, 22); - Bullet3.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet3.setRotationPoint(-4.5F, -4F, -1F); - Bullet3.setTextureSize(64, 32); - Bullet3.mirror = true; - setRotation(Bullet3, 0F, 0F, 0F); - Bullet4 = new ModelRenderer(this, 0, 22); - Bullet4.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet4.setRotationPoint(-3.5F, -4F, -1F); - Bullet4.setTextureSize(64, 32); - Bullet4.mirror = true; - setRotation(Bullet4, 0F, 0F, 0F); - Bullet5 = new ModelRenderer(this, 6, 22); - Bullet5.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet5.setRotationPoint(-1.5F, -4F, -1F); - Bullet5.setTextureSize(64, 32); - Bullet5.mirror = true; - setRotation(Bullet5, 0F, 0F, 0F); - Bullet6 = new ModelRenderer(this, 0, 22); - Bullet6.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet6.setRotationPoint(-0.5F, -4F, -1F); - Bullet6.setTextureSize(64, 32); - Bullet6.mirror = true; - setRotation(Bullet6, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - 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); - GL11.glEnable(GL11.GL_CULL_FACE); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 0) - Bullet1.render(f5); - if(ammo > 1) - Bullet2.render(f5); - if(ammo > 2) - Bullet3.render(f5); - if(ammo > 3) - Bullet4.render(f5); - if(ammo > 4) - Bullet5.render(f5); - if(ammo > 5) - Bullet6.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelNightmare2.java b/src/main/java/com/hbm/render/model/ModelNightmare2.java deleted file mode 100644 index 143dfe549..000000000 --- a/src/main/java/com/hbm/render/model/ModelNightmare2.java +++ /dev/null @@ -1,265 +0,0 @@ -// Date: 08.12.2016 20:42:59 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelNightmare2 extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Bullet1; - ModelRenderer Bullet2; - ModelRenderer Bullet3; - ModelRenderer Bullet4; - ModelRenderer Bullet5; - ModelRenderer Bullet6; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - - public ModelNightmare2() { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 8, 2); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, -0.3490659F); - Shape2 = new ModelRenderer(this, 42, 0); - Shape2.addBox(0F, 0F, 0F, 9, 6, 2); - Shape2.setRotationPoint(-8F, -5F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 14); - Shape3.addBox(0F, 0F, 0F, 4, 2, 1); - Shape3.setRotationPoint(-0.03333334F, -3F, 0.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0.715585F); - Shape4 = new ModelRenderer(this, 22, 0); - Shape4.addBox(0F, 0F, 0F, 6, 4, 3); - Shape4.setRotationPoint(-7F, -4F, 0F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 34, 8); - Shape6.addBox(0F, 0F, 0F, 13, 2, 2); - Shape6.setRotationPoint(-21F, -4F, 0F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 17); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(2F, -3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.715585F); - Shape8 = new ModelRenderer(this, 4, 17); - Shape8.addBox(0F, 0F, 0F, 2, 1, 1); - Shape8.setRotationPoint(2F, -4F, 0.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0.715585F); - Shape9 = new ModelRenderer(this, 0, 20); - Shape9.addBox(0F, 0F, 0F, 6, 1, 1); - Shape9.setRotationPoint(-14F, -2F, 0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 26, 8); - Shape10.addBox(0F, 0F, 0F, 2, 2, 2); - Shape10.setRotationPoint(-19F, -5F, 0F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0.6108652F); - Shape11 = new ModelRenderer(this, 0, 10); - Shape11.addBox(0F, 0F, 0F, 4, 3, 1); - Shape11.setRotationPoint(-2F, 1F, 0.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 10, 0); - Shape12.addBox(0F, 0F, 0F, 1, 3, 1); - Shape12.setRotationPoint(0F, 0F, 0.5F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0.5235988F); - Bullet1 = new ModelRenderer(this, 6, 22); - Bullet1.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet1.setRotationPoint(-7.5F, -4F, -1F); - Bullet1.setTextureSize(64, 32); - Bullet1.mirror = true; - setRotation(Bullet1, 0F, 0F, 0F); - Bullet2 = new ModelRenderer(this, 0, 22); - Bullet2.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet2.setRotationPoint(-6.5F, -4F, -1F); - Bullet2.setTextureSize(64, 32); - Bullet2.mirror = true; - setRotation(Bullet2, 0F, 0F, 0F); - Bullet3 = new ModelRenderer(this, 6, 22); - Bullet3.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet3.setRotationPoint(-4.5F, -4F, -1F); - Bullet3.setTextureSize(64, 32); - Bullet3.mirror = true; - setRotation(Bullet3, 0F, 0F, 0F); - Bullet4 = new ModelRenderer(this, 0, 22); - Bullet4.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet4.setRotationPoint(-3.5F, -4F, -1F); - Bullet4.setTextureSize(64, 32); - Bullet4.mirror = true; - setRotation(Bullet4, 0F, 0F, 0F); - Bullet5 = new ModelRenderer(this, 6, 22); - Bullet5.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet5.setRotationPoint(-1.5F, -4F, -1F); - Bullet5.setTextureSize(64, 32); - Bullet5.mirror = true; - setRotation(Bullet5, 0F, 0F, 0F); - Bullet6 = new ModelRenderer(this, 0, 22); - Bullet6.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet6.setRotationPoint(-0.5F, -4F, -1F); - Bullet6.setTextureSize(64, 32); - Bullet6.mirror = true; - setRotation(Bullet6, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 14, 0); - Shape13.addBox(0F, 0F, 0F, 1, 1, 2); - Shape13.setRotationPoint(-13F, -3.5F, -2F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 34, 12); - Shape14.addBox(0F, 0F, 0F, 6, 1, 1); - Shape14.setRotationPoint(-19F, -3.5F, -1.533333F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 10, 4); - Shape15.addBox(0F, 0F, 0F, 1, 5, 1); - Shape15.setRotationPoint(-4F, -5F, 3F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 10, 10); - Shape16.addBox(-1F, -4F, 0F, 1, 4, 1); - Shape16.setRotationPoint(-3F, -5F, 3F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, -0.5235988F); - Shape17 = new ModelRenderer(this, 14, 8); - Shape17.addBox(0F, 0F, 0F, 5, 1, 1); - Shape17.setRotationPoint(-10F, -8.5F, 3F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 14, 12); - Shape18.addBox(-9F, 0F, 0F, 9, 1, 1); - Shape18.setRotationPoint(-10F, -8.5F, 3F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, -0.6108652F); - Shape19 = new ModelRenderer(this, 14, 10); - Shape19.addBox(-5F, 0F, -1F, 5, 1, 1); - Shape19.setRotationPoint(-16F, -3.5F, 4F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, -0.4461433F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 0) - Bullet1.render(f5); - if(ammo > 1) - Bullet2.render(f5); - if(ammo > 2) - Bullet3.render(f5); - if(ammo > 3) - Bullet4.render(f5); - if(ammo > 4) - Bullet5.render(f5); - if(ammo > 5) - Bullet6.render(f5); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0xFF0000; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-19F / 16F, -3F / 16F, -1F / 16F); - tessellator.addVertex(-150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelPip.java b/src/main/java/com/hbm/render/model/ModelPip.java deleted file mode 100755 index 6fe5f40c2..000000000 --- a/src/main/java/com/hbm/render/model/ModelPip.java +++ /dev/null @@ -1,223 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: Pip -// Model Creator: -// Created on:09.12.2017 - 12:48:52 -// Last changed on: 09.12.2017 - 12:48:52 - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPip extends ModelBase -{ - - public ModelRenderer pipModel[]; - - int textureX = 128; - int textureY = 128; - - public ModelPip() - { - textureWidth = 128; - textureHeight = 128; - pipModel = new ModelRenderer[39]; - pipModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - pipModel[1] = new ModelRenderer(this, 49, 1); // Box 1 - pipModel[2] = new ModelRenderer(this, 97, 1); // Box 2 - pipModel[3] = new ModelRenderer(this, 1, 9); // Box 3 - pipModel[4] = new ModelRenderer(this, 25, 9); // Box 4 - pipModel[5] = new ModelRenderer(this, 49, 9); // Box 5 - pipModel[6] = new ModelRenderer(this, 73, 9); // Box 6 - pipModel[7] = new ModelRenderer(this, 81, 17); // Box 7 - pipModel[8] = new ModelRenderer(this, 97, 17); // Box 10 - pipModel[9] = new ModelRenderer(this, 1, 25); // Box 12 - pipModel[10] = new ModelRenderer(this, 1, 9); // Box 14 - pipModel[11] = new ModelRenderer(this, 17, 25); // Box 15 - pipModel[12] = new ModelRenderer(this, 41, 25); // Box 16 - pipModel[13] = new ModelRenderer(this, 49, 9); // Box 17 - pipModel[14] = new ModelRenderer(this, 113, 17); // Box 18 - pipModel[15] = new ModelRenderer(this, 73, 17); // Box 19 - pipModel[16] = new ModelRenderer(this, 65, 25); // Box 20 - pipModel[17] = new ModelRenderer(this, 113, 25); // Box 22 - pipModel[18] = new ModelRenderer(this, 65, 25); // Box 23 - pipModel[19] = new ModelRenderer(this, 1, 33); // Box 24 - pipModel[20] = new ModelRenderer(this, 81, 33); // Box 25 - pipModel[21] = new ModelRenderer(this, 1, 41); // Box 26 - pipModel[22] = new ModelRenderer(this, 89, 33); // Box 27 - pipModel[23] = new ModelRenderer(this, 105, 33); // Box 28 - pipModel[24] = new ModelRenderer(this, 33, 41); // Box 29 - pipModel[25] = new ModelRenderer(this, 49, 41); // Box 30 - pipModel[26] = new ModelRenderer(this, 65, 41); // Box 31 - pipModel[27] = new ModelRenderer(this, 105, 41); // Box 32 - pipModel[28] = new ModelRenderer(this, 1, 49); // Box 33 - pipModel[29] = new ModelRenderer(this, 17, 49); // Box 34 - pipModel[30] = new ModelRenderer(this, 33, 49); // Box 35 - pipModel[31] = new ModelRenderer(this, 57, 49); // Box 36 - pipModel[32] = new ModelRenderer(this, 81, 49); // Box 37 - pipModel[33] = new ModelRenderer(this, 105, 49); // Box 38 - pipModel[34] = new ModelRenderer(this, 1, 57); // Box 39 - pipModel[35] = new ModelRenderer(this, 89, 25); // Box 40 - pipModel[36] = new ModelRenderer(this, 97, 41); // Box 41 - pipModel[37] = new ModelRenderer(this, 49, 49); // Box 42 - pipModel[38] = new ModelRenderer(this, 73, 57); // Box 43 - - pipModel[0].addBox(0F, 0F, 0F, 20, 3, 2, 0F); // Box 0 - pipModel[0].setRotationPoint(-20F, -5.5F, -1F); - - pipModel[1].addBox(0F, 0F, 0F, 20, 2, 3, 0F); // Box 1 - pipModel[1].setRotationPoint(-20F, -5F, -1.5F); - - pipModel[2].addBox(0F, 0F, 0F, 10, 8, 3, 0F); // Box 2 - pipModel[2].setRotationPoint(0F, -6F, -1.5F); - - pipModel[3].addBox(0F, 0F, 0F, 6, 5, 5, 0F); // Box 3 - pipModel[3].setRotationPoint(2F, -5F, -2.5F); - - pipModel[4].addBox(0F, 0F, 0F, 6, 6, 4, 0F); // Box 4 - pipModel[4].setRotationPoint(2F, -5.5F, -2F); - - pipModel[5].addBox(0F, 0F, 0F, 6, 4, 6, 0F); // Box 5 - pipModel[5].setRotationPoint(2F, -4.5F, -3F); - - pipModel[6].addBox(0F, 0F, 0F, 7, 2, 1, 0F); // Box 6 - pipModel[6].setRotationPoint(-7F, -2.5F, -0.5F); - - pipModel[7].addBox(-6F, 0F, 0F, 6, 3, 1, 0F); // Box 7 - pipModel[7].setRotationPoint(15F, -2.5F, -1.5F); - pipModel[7].rotateAngleZ = 0.61086524F; - - pipModel[8].addBox(0F, 0F, 0F, 5, 5, 3, 0F); // Box 10 - pipModel[8].setRotationPoint(10F, -2.5F, -1.5F); - - pipModel[9].addBox(-6F, 0F, 0F, 6, 3, 1, 0F); // Box 12 - pipModel[9].setRotationPoint(15F, -2.5F, 0.5F); - pipModel[9].rotateAngleZ = 0.61086524F; - - pipModel[10].addBox(-6F, 0F, 0F, 1, 3, 1, 0F); // Box 14 - pipModel[10].setRotationPoint(15F, -2.5F, -0.5F); - pipModel[10].rotateAngleZ = 0.61086524F; - - pipModel[11].addBox(0F, 0F, 0F, 6, 6, 4, 0F); // Box 15 - pipModel[11].setRotationPoint(12F, 4F, -2F); - - pipModel[12].addBox(-5F, -7F, 0F, 5, 7, 4, 0F); // Box 16 - pipModel[12].setRotationPoint(18F, 4F, -2F); - pipModel[12].rotateAngleZ = -0.52359878F; - - pipModel[13].addBox(0F, -2F, 0F, 1, 2, 1, 0F); // Box 17 - pipModel[13].setRotationPoint(12F, -2.5F, -0.5F); - pipModel[13].rotateAngleZ = 0.34906585F; - - pipModel[14].addBox(-0.5F, -3F, 0F, 3, 1, 1, 0F); // Box 18 - pipModel[14].setRotationPoint(12F, -2.5F, -0.5F); - pipModel[14].rotateAngleZ = 0.34906585F; - - pipModel[15].addBox(0F, 0F, 0F, 1, 3, 5, 0F); // Box 19 - pipModel[15].setRotationPoint(8F, -4F, -2.5F); - - pipModel[16].addBox(0F, 0F, 0F, 1, 3, 5, 0F); // Box 20 - pipModel[16].setRotationPoint(1F, -4F, -2.5F); - - pipModel[17].addBox(0F, 0F, 0F, 5, 3, 2, 0F); // Box 22 - pipModel[17].setRotationPoint(5F, 2F, -1F); - - pipModel[18].addBox(-1F, -0.5F, 0F, 1, 3, 1, 0F); // Box 23 - pipModel[18].setRotationPoint(9F, 2F, -0.5F); - pipModel[18].rotateAngleZ = 0.43633231F; - - pipModel[19].addBox(0F, 0F, 0F, 5, 1, 2, 0F); // Box 24 - pipModel[19].setRotationPoint(-19.5F, -6.5F, -1F); - - pipModel[20].addBox(0F, 0F, 0F, 4, 1, 1, 0F); // Box 25 - pipModel[20].setRotationPoint(-19F, -7.5F, -0.5F); - pipModel[20].rotateAngleZ = 0.26179939F; - - pipModel[21].addBox(0F, 0F, 0F, 15, 1, 2, 0F); // Box 26 - pipModel[21].setRotationPoint(-4F, -7F, -1F); - - pipModel[22].addBox(1F, 0F, 0F, 3, 4, 3, 0F); // Box 27 - pipModel[22].setRotationPoint(-3F, -12F, -1.5F); - - pipModel[23].addBox(1F, 0F, 0F, 3, 3, 4, 0F); // Box 28 - pipModel[23].setRotationPoint(-3F, -11.5F, -2F); - - pipModel[24].addBox(0F, 0F, 0F, 3, 3, 4, 0F); // Box 29 - pipModel[24].setRotationPoint(6F, -11.5F, -2F); - - pipModel[25].addBox(0F, 0F, 0F, 3, 4, 3, 0F); // Box 30 - pipModel[25].setRotationPoint(6F, -12F, -1.5F); - - pipModel[26].addBox(0F, 0F, 0F, 13, 3, 3, 0F); // Box 31 - pipModel[26].setRotationPoint(-3F, -11.5F, -1.5F); - - pipModel[27].addBox(0F, 0F, 0F, 3, 4, 3, 0F); // Box 32 - pipModel[27].setRotationPoint(-6F, -12F, -1.5F); - - pipModel[28].addBox(0F, 0F, 0F, 3, 3, 4, 0F); // Box 33 - pipModel[28].setRotationPoint(-6F, -11.5F, -2F); - - pipModel[29].addBox(0F, 0F, 0F, 4, 5, 3, 0F); // Box 34 - pipModel[29].setRotationPoint(-10F, -12.5F, -1.5F); - - pipModel[30].addBox(0F, 0F, 0F, 4, 3, 5, 0F); // Box 35 - pipModel[30].setRotationPoint(-10F, -11.5F, -2.5F); - - pipModel[31].addBox(0F, 0F, 0F, 4, 4, 4, 0F); // Box 36 - pipModel[31].setRotationPoint(-10F, -12F, -2F); - - pipModel[32].addBox(0F, 0F, 0F, 5, 3, 4, 0F); // Box 37 - pipModel[32].setRotationPoint(10F, -11.5F, -2F); - - pipModel[33].addBox(0F, 0F, 0F, 5, 4, 3, 0F); // Box 38 - pipModel[33].setRotationPoint(10F, -12F, -1.5F); - - pipModel[34].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 39 - pipModel[34].setRotationPoint(2F, -12F, -2F); - - pipModel[35].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 40 - pipModel[35].setRotationPoint(-2F, -8F, -0.5F); - - pipModel[36].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 41 - pipModel[36].setRotationPoint(6F, -8F, -0.5F); - - pipModel[37].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 42 - pipModel[37].setRotationPoint(2.5F, -12.5F, -1F); - - pipModel[38].addBox(0F, 0F, 0F, 3, 1, 3, 0F); // Box 43 - pipModel[38].setRotationPoint(2F, -13.5F, -1.5F); - - - for(int i = 0; i < 39; i++) - { - pipModel[i].setTextureSize(textureX, textureY); - pipModel[i].mirror = true; - } - - } - - @Override - 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, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - for(int i = 0; i < 39; i++) - { - pipModel[i].render(f5); - } - GL11.glEnable(GL11.GL_CULL_FACE); - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelRocket.java b/src/main/java/com/hbm/render/model/ModelRocket.java deleted file mode 100644 index 78dbc2895..000000000 --- a/src/main/java/com/hbm/render/model/ModelRocket.java +++ /dev/null @@ -1,121 +0,0 @@ -// Date: 20.01.2019 12:33:09 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRocket extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRocket() { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 7, 2, 2); - Shape1.setRotationPoint(0F, -1F, -1F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 3, 1, 1); - Shape2.setRotationPoint(-3F, -0.5F, -0.5F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 8, 4); - Shape3.addBox(0F, 0F, 0F, 3, 1, 1); - Shape3.setRotationPoint(-3F, -0.5F, -0.5F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0.1745329F, 0F); - Shape4 = new ModelRenderer(this, 0, 6); - Shape4.addBox(0F, 0F, -1F, 3, 1, 1); - Shape4.setRotationPoint(-3F, -0.5F, 0.5F); - Shape4.setTextureSize(32, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, -0.1745329F, 0F); - Shape5 = new ModelRenderer(this, 8, 6); - Shape5.addBox(0F, 0F, 0F, 3, 1, 1); - Shape5.setRotationPoint(-3F, -0.5F, -0.5F); - Shape5.setTextureSize(32, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, -0.1745329F); - Shape6 = new ModelRenderer(this, 0, 8); - Shape6.addBox(0F, -1F, 0F, 3, 1, 1); - Shape6.setRotationPoint(-3F, 0.5F, -0.5F); - Shape6.setTextureSize(32, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0.1745329F); - Shape7 = new ModelRenderer(this, 0, 10); - Shape7.addBox(0F, 0F, 0F, 4, 4, 0); - Shape7.setRotationPoint(4F, 0F, 0F); - Shape7.setTextureSize(32, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, -0.7853982F); - Shape8 = new ModelRenderer(this, 0, 14); - Shape8.addBox(0F, 0F, 0F, 4, 0, 4); - Shape8.setRotationPoint(4F, 0F, 0F); - Shape8.setTextureSize(32, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0.7853982F, 0F); - Shape9 = new ModelRenderer(this, 8, 8); - Shape9.addBox(0F, 0F, 0F, 1, 1, 1); - Shape9.setRotationPoint(7F, -0.5F, -0.5F); - Shape9.setTextureSize(32, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - 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, entity); - 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); - } - - public void renderAll(float 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); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRocketOld.java b/src/main/java/com/hbm/render/model/ModelRocketOld.java deleted file mode 100644 index a1c846d49..000000000 --- a/src/main/java/com/hbm/render/model/ModelRocketOld.java +++ /dev/null @@ -1,63 +0,0 @@ -// Date: 20.07.2015 22:08:24 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRocketOld extends ModelBase { - // fields - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRocketOld() { - textureWidth = 64; - textureHeight = 32; - - Shape7 = new ModelRenderer(this, 10, 0); - Shape7.addBox(0F, 0F, 0F, 1, 2, 2); - Shape7.setRotationPoint(-3F, -2F, -0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 4); - Shape8.addBox(0F, 0F, 0F, 10, 1, 1); - Shape8.setRotationPoint(-8F, -1.5F, 0F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 3, 2, 2); - Shape9.setRotationPoint(-6.5F, -2F, -0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override - 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, entity); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelTwiGun.java b/src/main/java/com/hbm/render/model/ModelTwiGun.java deleted file mode 100755 index 2318476af..000000000 --- a/src/main/java/com/hbm/render/model/ModelTwiGun.java +++ /dev/null @@ -1,329 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: TwiGun -// Model Creator: -// Created on: 01.11.2017 - 20:26:01 -// Last changed on: 01.11.2017 - 20:26:01 - -package com.hbm.render.model; //Path where the model is located - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTwiGun extends ModelBase //Same as Filename -{ - int textureX = 128; - int textureY = 128; - ModelRenderer[] bodyModel; - - public ModelTwiGun() //Same as Filename - { - textureWidth = 128; - textureHeight = 128; - bodyModel = new ModelRenderer[65]; - bodyModel[0] = new ModelRenderer(this, 1, 1); // Rotor5 - bodyModel[1] = new ModelRenderer(this, 17, 1); // Rotor4 - bodyModel[2] = new ModelRenderer(this, 33, 1); // Rotor1 - bodyModel[3] = new ModelRenderer(this, 49, 1); // Rotor6 - bodyModel[4] = new ModelRenderer(this, 65, 1); // Rotor3 - bodyModel[5] = new ModelRenderer(this, 81, 1); // Rotor2 - bodyModel[6] = new ModelRenderer(this, 89, 1); // Box 8 - bodyModel[7] = new ModelRenderer(this, 113, 1); // Box 9 - bodyModel[8] = new ModelRenderer(this, 1, 9); // Box 10 - bodyModel[9] = new ModelRenderer(this, 17, 9); // Box 11 - bodyModel[10] = new ModelRenderer(this, 33, 9); // Box 12 - bodyModel[11] = new ModelRenderer(this, 49, 9); // Box 13 - bodyModel[12] = new ModelRenderer(this, 65, 9); // Box 14 - bodyModel[13] = new ModelRenderer(this, 1, 17); // Box 15 - bodyModel[14] = new ModelRenderer(this, 9, 17); // Box 16 - bodyModel[15] = new ModelRenderer(this, 33, 17); // Box 17 - bodyModel[16] = new ModelRenderer(this, 73, 9); // Box 18 - bodyModel[17] = new ModelRenderer(this, 105, 9); // Box 19 - bodyModel[18] = new ModelRenderer(this, 57, 17); // Box 20 - bodyModel[19] = new ModelRenderer(this, 33, 17); // Box 21 - bodyModel[20] = new ModelRenderer(this, 1, 25); // Box 22 - bodyModel[21] = new ModelRenderer(this, 73, 17); // Box 23 - bodyModel[22] = new ModelRenderer(this, 25, 33); // Box 24 - bodyModel[23] = new ModelRenderer(this, 1, 25); // Box 25 - bodyModel[24] = new ModelRenderer(this, 57, 33); // Box 26 - bodyModel[25] = new ModelRenderer(this, 89, 33); // Box 27 - bodyModel[26] = new ModelRenderer(this, 1, 49); // Box 28 - bodyModel[27] = new ModelRenderer(this, 1, 49); // Box 29 - bodyModel[28] = new ModelRenderer(this, 97, 17); // Box 30 - bodyModel[29] = new ModelRenderer(this, 25, 49); // Box 31 - bodyModel[30] = new ModelRenderer(this, 65, 49); // Box 32 - bodyModel[31] = new ModelRenderer(this, 25, 57); // Box 33 - bodyModel[32] = new ModelRenderer(this, 65, 57); // Box 34 - bodyModel[33] = new ModelRenderer(this, 33, 65); // Box 35 - bodyModel[34] = new ModelRenderer(this, 97, 49); // Box 36 - bodyModel[35] = new ModelRenderer(this, 57, 25); // Box 37 - bodyModel[36] = new ModelRenderer(this, 73, 65); // Box 38 - bodyModel[37] = new ModelRenderer(this, 1, 73); // Box 40 - bodyModel[38] = new ModelRenderer(this, 33, 73); // Box 41 - bodyModel[39] = new ModelRenderer(this, 49, 73); // Box 42 - bodyModel[40] = new ModelRenderer(this, 105, 57); // Box 43 - bodyModel[41] = new ModelRenderer(this, 113, 65); // Box 44 - bodyModel[42] = new ModelRenderer(this, 113, 25); // Box 45 - bodyModel[43] = new ModelRenderer(this, 121, 9); // Box 46 - bodyModel[44] = new ModelRenderer(this, 73, 73); // Box 47 - bodyModel[45] = new ModelRenderer(this, 25, 73); // Box 48 - bodyModel[46] = new ModelRenderer(this, 89, 73); // Box 49 - bodyModel[47] = new ModelRenderer(this, 25, 25); // Box 50 - bodyModel[48] = new ModelRenderer(this, 17, 9); // Box 51 - bodyModel[49] = new ModelRenderer(this, 49, 33); // Box 52 - bodyModel[50] = new ModelRenderer(this, 81, 33); // Box 53 - bodyModel[51] = new ModelRenderer(this, 57, 1); // Box 54 - bodyModel[52] = new ModelRenderer(this, 73, 1); // Box 55 - bodyModel[53] = new ModelRenderer(this, 105, 73); // Box 56 - bodyModel[54] = new ModelRenderer(this, 89, 73); // Box 57 - bodyModel[55] = new ModelRenderer(this, 17, 81); // Box 58 - bodyModel[56] = new ModelRenderer(this, 73, 81); // Box 59 - bodyModel[57] = new ModelRenderer(this, 1, 89); // Box 60 - bodyModel[58] = new ModelRenderer(this, 33, 89); // Box 61 - bodyModel[59] = new ModelRenderer(this, 49, 41); // Box 63 - bodyModel[60] = new ModelRenderer(this, 89, 81); // Box 64 - bodyModel[61] = new ModelRenderer(this, 113, 81); // Box 65 - bodyModel[62] = new ModelRenderer(this, 1, 89); // Box 66 - bodyModel[63] = new ModelRenderer(this, 89, 89); // Box 67 - bodyModel[64] = new ModelRenderer(this, 17, 97); // Box 68 - - bodyModel[0].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor5 - bodyModel[0].setRotationPoint(-12F, 0F, 0F); - - bodyModel[1].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor4 - bodyModel[1].setRotationPoint(-12F, 0F, 0F); - bodyModel[1].rotateAngleX = 2.0943951F; - - bodyModel[2].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor1 - bodyModel[2].setRotationPoint(-12F, 0F, 0F); - bodyModel[2].rotateAngleX = -2.0943951F; - - bodyModel[3].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor6 - bodyModel[3].setRotationPoint(-12F, 0F, 0F); - - bodyModel[4].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor3 - bodyModel[4].setRotationPoint(-12F, 0F, 0F); - bodyModel[4].rotateAngleX = 2.0943951F; - - bodyModel[5].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor2 - bodyModel[5].setRotationPoint(-12F, 0F, 0F); - bodyModel[5].rotateAngleX = -2.0943951F; - - bodyModel[6].addBox(0F, 0F, 0F, 5, 0, 8, 0F); // Box 8 - bodyModel[6].setRotationPoint(-13F, -6F, -4F); - - bodyModel[7].addBox(0F, -1F, -1F, 5, 2, 2, 0F); // Box 9 - bodyModel[7].setRotationPoint(-13F, 0F, 0F); - - bodyModel[8].addBox(0F, -1F, -1F, 5, 2, 2, 0F); // Box 10 - bodyModel[8].setRotationPoint(-13F, 0F, 0F); - bodyModel[8].rotateAngleX = 0.78539816F; - - bodyModel[9].addBox(0F, 0F, 0F, 5, 0, 5, 0F); // Box 11 - bodyModel[9].setRotationPoint(-13F, -6F, 4F); - bodyModel[9].rotateAngleX = -0.78539816F; - - bodyModel[10].addBox(0F, 0F, 0F, 9, 1, 1, 0F); // Box 12 - bodyModel[10].setRotationPoint(-15F, -3F, 7F); - - bodyModel[11].addBox(0F, 0F, -5F, 5, 0, 5, 0F); // Box 13 - bodyModel[11].setRotationPoint(-13F, -6F, -4F); - bodyModel[11].rotateAngleX = 0.78539816F; - - bodyModel[12].addBox(0F, 0F, 0F, 9, 1, 1, 0F); // Box 14 - bodyModel[12].setRotationPoint(-15F, -3F, -8F); - - bodyModel[13].addBox(0F, 0F, 0F, 5, 0, 7, 0F); // Box 15 - bodyModel[13].setRotationPoint(-13F, 6.5F, -3.5F); - - bodyModel[14].addBox(0F, 0F, 0F, 5, 0, 10, 0F); // Box 16 - bodyModel[14].setRotationPoint(-13F, 6.5F, 3.5F); - bodyModel[14].rotateAngleX = 1.13446401F; - - bodyModel[15].addBox(0F, 0F, -10F, 5, 0, 10, 0F); // Box 17 - bodyModel[15].setRotationPoint(-13F, 6.5F, -3.5F); - bodyModel[15].rotateAngleX = -1.13446401F; - - bodyModel[16].addBox(0F, 0F, 0F, 2, 2, 16, 0F); // Box 18 - bodyModel[16].setRotationPoint(-15F, -2F, -8F); - - bodyModel[17].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 19 - bodyModel[17].setRotationPoint(-16F, -2F, -2F); - - bodyModel[18].addBox(0F, 0F, 0F, 5, 1, 1, 0F); // Box 20 - bodyModel[18].setRotationPoint(-13F, 6F, -0.5F); - - bodyModel[19].addBox(0F, 0F, 0F, 2, 5, 2, 0F); // Box 21 - bodyModel[19].setRotationPoint(-15F, 2F, -1F); - - bodyModel[20].addBox(0F, 0F, 0F, 0, 10, 10, 0F); // Box 22 - bodyModel[20].setRotationPoint(-13F, -5F, -5F); - - bodyModel[21].addBox(0F, -1.5F, -1.5F, 3, 3, 3, 0F); // Box 23 - bodyModel[21].setRotationPoint(-19F, 0F, 0F); - - bodyModel[22].addBox(0F, -2F, -2F, 8, 4, 4, 0F); // Box 24 - bodyModel[22].setRotationPoint(-27F, 0F, 0F); - - bodyModel[23].addBox(0F, -1.5F, -1.5F, 3, 3, 3, 0F); // Box 25 - bodyModel[23].setRotationPoint(-19F, 0F, 0F); - bodyModel[23].rotateAngleX = -0.78539816F; - - bodyModel[24].addBox(0F, -2F, -2F, 8, 4, 4, 0F); // Box 26 - bodyModel[24].setRotationPoint(-27F, 0F, 0F); - bodyModel[24].rotateAngleX = -0.78539816F; - - bodyModel[25].addBox(0F, 0F, 0F, 14, 6, 4, 0F); // Box 27 - bodyModel[25].setRotationPoint(-6F, -3F, -2F); - - bodyModel[26].addBox(0F, 0F, 0F, 2, 2, 16, 0F); // Box 28 - bodyModel[26].setRotationPoint(-8F, -2F, -8F); - - bodyModel[27].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 29 - bodyModel[27].setRotationPoint(-9F, -2F, -2F); - - bodyModel[28].addBox(0F, 0F, 0F, 2, 5, 2, 0F); // Box 30 - bodyModel[28].setRotationPoint(-8F, 2F, -1F); - - bodyModel[29].addBox(0F, 0F, 0F, 14, 1, 5, 0F); // Box 31 - bodyModel[29].setRotationPoint(-6F, -3F, 2F); - bodyModel[29].rotateAngleX = -0.26179939F; - - bodyModel[30].addBox(0F, 0F, 0F, 14, 1, 1, 0F); // Box 32 - bodyModel[30].setRotationPoint(-6F, -1.5F, 6F); - - bodyModel[31].addBox(0F, -1F, 0F, 14, 1, 5, 0F); // Box 33 - bodyModel[31].setRotationPoint(-6F, 1F, 2F); - bodyModel[31].rotateAngleX = 0.26179939F; - - bodyModel[32].addBox(0F, -1F, -5F, 14, 1, 5, 0F); // Box 34 - bodyModel[32].setRotationPoint(-6F, 1F, -2F); - bodyModel[32].rotateAngleX = -0.26179939F; - - bodyModel[33].addBox(0F, 0F, -5F, 14, 1, 5, 0F); // Box 35 - bodyModel[33].setRotationPoint(-6F, -3F, -2F); - bodyModel[33].rotateAngleX = 0.26179939F; - - bodyModel[34].addBox(0F, 0F, 0F, 14, 1, 1, 0F); // Box 36 - bodyModel[34].setRotationPoint(-6F, -1.5F, -7F); - - bodyModel[35].addBox(0F, 0F, 0F, 5, 0, 4, 0F); // Box 37 - bodyModel[35].setRotationPoint(-8F, -6F, -2F); - bodyModel[35].rotateAngleZ = 0.78539816F; - - bodyModel[36].addBox(0F, 0F, 0F, 16, 4, 2, 0F); // Box 38 - bodyModel[36].setRotationPoint(-6F, 3F, -1F); - - bodyModel[37].addBox(0F, 0F, 0F, 6, 6, 6, 0F); // Box 40 - bodyModel[37].setRotationPoint(8F, -3F, -3F); - - bodyModel[38].addBox(0F, 0F, 0F, 3, 2, 10, 0F); // Box 41 - bodyModel[38].setRotationPoint(8F, -2F, -5F); - - bodyModel[39].addBox(0F, 0F, 0F, 4, 1, 13, 0F); // Box 42 - bodyModel[39].setRotationPoint(8F, -1.5F, -6.5F); - - bodyModel[40].addBox(0F, 0F, 0F, 8, 3, 3, 0F); // Box 43 - bodyModel[40].setRotationPoint(14F, -1F, -1.5F); - - bodyModel[41].addBox(0F, 0F, 0F, 1, 7, 3, 0F); // Box 44 - bodyModel[41].setRotationPoint(22.5F, -1F, -1.5F); - - bodyModel[42].addBox(0F, 0F, 0F, 4, 4, 3, 0F); // Box 45 - bodyModel[42].setRotationPoint(18F, 2F, -1.5F); - - bodyModel[43].addBox(0F, 0F, 0F, 2, 4, 1, 0F); // Box 46 - bodyModel[43].setRotationPoint(13F, 2F, 0F); - - bodyModel[44].addBox(0F, -5F, 0F, 2, 5, 3, 0F); // Box 47 - bodyModel[44].setRotationPoint(18F, 6F, -1.5F); - bodyModel[44].rotateAngleZ = -0.43633231F; - - bodyModel[45].addBox(0F, 0F, 0F, 6, 1, 2, 0F); // Box 48 - bodyModel[45].setRotationPoint(10F, 6F, -1F); - - bodyModel[46].addBox(0F, 0F, 0F, 3, 2, 2, 0F); // Box 49 - bodyModel[46].setRotationPoint(14F, -3F, -1F); - bodyModel[46].rotateAngleZ = 0.78539816F; - - bodyModel[47].addBox(0F, 0F, 0F, 2, 1, 5, 0F); // Box 50 - bodyModel[47].setRotationPoint(14F, 0F, -2.5F); - - bodyModel[48].addBox(0F, 0F, 0F, 1, 1, 1, 0F); // Box 51 - bodyModel[48].setRotationPoint(10.5F, -3.5F, -0.5F); - - bodyModel[49].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 52 - bodyModel[49].setRotationPoint(9F, -3.5F, -2F); - - bodyModel[50].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 53 - bodyModel[50].setRotationPoint(10F, -3.5F, 1F); - - bodyModel[51].addBox(0F, 0F, 0F, 1, 1, 3, 0F); // Box 54 - bodyModel[51].setRotationPoint(9F, -3.5F, -1F); - - bodyModel[52].addBox(0F, 0F, 0F, 1, 1, 3, 0F); // Box 55 - bodyModel[52].setRotationPoint(12F, -3.5F, -2F); - - bodyModel[53].addBox(0F, 0F, 0F, 1, 6, 2, 0F); // Box 56 - bodyModel[53].setRotationPoint(22F, -0.5F, -1F); - - bodyModel[54].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 57 - bodyModel[54].setRotationPoint(-5F, -0.5F, -6F); - - bodyModel[55].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 58 - bodyModel[55].setRotationPoint(-4F, -0.5F, -6F); - - bodyModel[56].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 59 - bodyModel[56].setRotationPoint(-3F, -0.5F, -6F); - - bodyModel[57].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 60 - bodyModel[57].setRotationPoint(-2F, -0.5F, -6F); - - bodyModel[58].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 61 - bodyModel[58].setRotationPoint(-1F, -0.5F, -6F); - - bodyModel[59].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 63 - bodyModel[59].setRotationPoint(-4F, -3.5F, -1F); - - bodyModel[60].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 64 - bodyModel[60].setRotationPoint(-1F, -3.5F, -1F); - - bodyModel[61].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 65 - bodyModel[61].setRotationPoint(2F, -3.5F, -1F); - - bodyModel[62].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 66 - bodyModel[62].setRotationPoint(5F, -3.5F, -1F); - - bodyModel[63].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 67 - bodyModel[63].setRotationPoint(0F, -0.5F, -6F); - - bodyModel[64].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 68 - bodyModel[64].setRotationPoint(1F, -0.5F, -6F); - - for(int i = 0; i < 65; i++) - { - bodyModel[i].setTextureSize(textureX, textureY); - bodyModel[i].mirror = true; - } - } - - @Override - 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, entity); - for(int i = 0; i < 65; i++) - { - bodyModel[i].render(f5); - } - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderLPW2.java b/src/main/java/com/hbm/render/tileentity/RenderLPW2.java index bb5e674f0..4e4eacf41 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLPW2.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLPW2.java @@ -139,7 +139,7 @@ public class RenderLPW2 extends TileEntitySpecialRenderer { GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); - GL11.glTranslated(0, BobMathUtil.sps(errorTimer) + errorTimer / 2D - 1, 0); + GL11.glTranslated(0, (BobMathUtil.sps(errorTimer) + errorTimer / 2D) % 1, 0); ResourceManager.lpw2.renderPart("Screen"); GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java index 54c3c1ad1..f15a7d778 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java @@ -38,7 +38,7 @@ public class RenderSolarBoiler extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); - if(te instanceof TileEntitySolarBoiler && !Minecraft.getMinecraft().gameSettings.fancyGraphics) { + if(te instanceof TileEntitySolarBoiler && Minecraft.getMinecraft().gameSettings.fancyGraphics) { TileEntitySolarBoiler boiler = (TileEntitySolarBoiler) te; Tessellator tess = Tessellator.instance; diff --git a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java index 23714debb..e712391ee 100644 --- a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java +++ b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java @@ -7,6 +7,7 @@ import net.minecraft.client.audio.MovingSound; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; +@Deprecated //wtf is this horseshit public abstract class MovingSoundPlayerLoop extends MovingSound { public static List globalSoundList = new ArrayList(); diff --git a/src/main/java/com/hbm/sound/MovingSoundXVL1456.java b/src/main/java/com/hbm/sound/MovingSoundXVL1456.java deleted file mode 100644 index 304e123ef..000000000 --- a/src/main/java/com/hbm/sound/MovingSoundXVL1456.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.sound; - -import com.hbm.items.ModItems; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class MovingSoundXVL1456 extends MovingSoundPlayerLoop { - - public MovingSoundXVL1456(ResourceLocation p_i45104_1_, Entity player, EnumHbmSound type) { - super(p_i45104_1_, player, type); - this.setPitch(0.5F); - } - - @Override - public void update() { - super.update(); - - ItemStack i = null; - - if(this.player != null) { - i = ((EntityPlayer)this.player).getItemInUse(); - } - - //this.setPitch(this.getPitch() + 0.1F); - - if(i == null || (i != null && i.getItem() != ModItems.gun_xvl1456) || !((EntityPlayer)this.player).isSneaking() || ((EntityPlayer)this.player).getItemInUseDuration() <= 0) - this.stop(); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java index 688962e83..04d1fe52a 100644 --- a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -1,7 +1,7 @@ package com.hbm.tileentity; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; diff --git a/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java b/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java index fa230a3ba..a22b501e8 100644 --- a/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java +++ b/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java @@ -1,7 +1,7 @@ package com.hbm.tileentity; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index a8f856310..d05ac0843 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -10,7 +10,7 @@ import com.hbm.interfaces.IAnimatedDoor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEDoorAnimationPacket; +import com.hbm.packet.toclient.TEDoorAnimationPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.util.fauxpointtwelve.BlockPos; diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index d9a17469d..d34c5ee38 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -1,9 +1,9 @@ package com.hbm.tileentity; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.BufPacket; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxGaugePacket; +import com.hbm.packet.toclient.BufPacket; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java index 1d1871c2e..bfd9a6ced 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java @@ -1,8 +1,8 @@ package com.hbm.tileentity; -import com.hbm.packet.BufPacket; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; +import com.hbm.packet.toclient.NBTPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java index 6467ac91e..0577276c8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java @@ -1,8 +1,8 @@ package com.hbm.tileentity.bomb; import com.hbm.blocks.bomb.BlockChargeBase; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.tileentity.INBTPacketReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 25ad4ef2a..60b75b91f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -16,9 +16,9 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.BufPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java index be34e001c..ed97928b7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java @@ -1,8 +1,8 @@ package com.hbm.tileentity.bomb; import com.hbm.entity.item.EntityFireworks; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 67db230ec..e9e8ef8d2 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -17,9 +17,9 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.BufPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java index 122e52ba3..ac6bfec24 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java @@ -7,8 +7,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.particle.EntityOrangeFX; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.entity.projectile.EntityWaterSplash; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java index e13795a69..d22bd4150 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.DummyBlockBlast; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEVaultPacket; +import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java index 0c580bf65..744e3bab9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import java.util.List; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.LoopedSoundPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 2654c3f6e..925e10cdc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -13,8 +13,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.main.MainRegistry; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IConfigurableMachine; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index 45e31909c..63cda0d05 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -18,8 +18,8 @@ import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.inventory.recipes.CrucibleRecipes.CrucibleRecipe; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IMetalCopiable; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index a060d6e45..ee353cee0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -23,9 +23,9 @@ import com.hbm.inventory.recipes.ElectrolyserMetalRecipes.ElectrolysisMetalRecip import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.BobMathUtil; import com.hbm.util.CrucibleUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 417c24894..91d89b53e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -8,7 +8,7 @@ import com.hbm.inventory.gui.GUIForceField; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFFPacket; +import com.hbm.packet.toclient.TEFFPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java index 15202f6de..6e30c6cdf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.ICopiable; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.inventory.material.NTMMaterial; import com.hbm.util.CrucibleUtil; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java index ba297333f..ecf625688 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.inventory.material.Mats.MaterialStack; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import api.hbm.block.ICrucibleAcceptor; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 167f550c8..acd6246fb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -15,8 +15,8 @@ import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java index f044f3fad..d4b0ff25f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java @@ -1,8 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.BlockHadronPower; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index d9c52bffe..e48bf26fa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -11,9 +11,9 @@ import com.hbm.inventory.gui.GUIICF; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemICFPellet; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 76f10b622..17119ce6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -21,8 +21,8 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemFusionShield; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 2162cfeb8..bff0afcdb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -6,9 +6,9 @@ import com.hbm.inventory.container.ContainerMachineArcFurnace; import com.hbm.inventory.gui.GUIMachineArcFurnace; import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxElectricityPacket; +import com.hbm.packet.toclient.AuxGaugePacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index abd5b4ec2..c1e92720a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -21,8 +21,8 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index cfa5f1022..42743ff25 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -14,9 +14,9 @@ import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 4924fb718..d33ec0705 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -9,9 +9,9 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java index 1fa553080..6719b17d3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java @@ -12,8 +12,8 @@ import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; import com.hbm.main.MainRegistry; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index b3179241c..92fb4d7a7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -11,8 +11,8 @@ import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.lib.Library; -import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.LoopedSoundPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BufferUtil; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index 4ffd642d6..9560bbd23 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -8,7 +8,7 @@ import com.hbm.items.weapon.ItemCustomMissilePart; import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java index d7800be4b..28c7c8604 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -18,9 +18,9 @@ import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 56ab3442f..6172e954e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -4,8 +4,8 @@ import com.hbm.config.VersatileConfig; import com.hbm.inventory.container.ContainerMachineRTG; import com.hbm.inventory.gui.GUIMachineRTG; import com.hbm.items.machine.ItemRTGPellet; -import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxElectricityPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 0eb956fe3..57d08843e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -18,12 +18,13 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteHorizons; import com.hbm.saveddata.satellites.SatelliteLaser; +import com.hbm.saveddata.satellites.SatelliteResonator; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; @@ -464,6 +465,15 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I sat.onCoordAction(world, player, x, y, z); } } + if(sat instanceof SatelliteResonator) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + int y = world.getTopSolidOrLiquidBlock(x, z); //the top fucking block because I will never make radars transmit Y coordinates as well! + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onCoordAction(world, player, x, y, z); + } + } } if(link != null && link.getItem() == ModItems.radar_linker) { BlockPos pos = ItemCoordinateBase.getPosition(link); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java index ba08f0d82..f4dfafdd3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import api.hbm.entity.RadarEntry; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index 9ac85cf5c..53cf6a7d4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -5,8 +5,8 @@ import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.ShredderRecipes; import com.hbm.items.machine.ItemBlades; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxElectricityPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java index a2ebd812f..9cd3671b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java @@ -8,7 +8,7 @@ import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemCassette.SoundType; import com.hbm.items.machine.ItemCassette.TrackType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TESirenPacket; +import com.hbm.packet.toclient.TESirenPacket; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index e424883db..4adc07649 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -14,9 +14,9 @@ import com.hbm.inventory.recipes.SolderingRecipes.SolderingRecipe; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 71caf6423..235cc9c1f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -11,8 +11,8 @@ import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemScraps; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.util.fauxpointtwelve.DirPos; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 2559943c8..a16db611c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -18,8 +18,8 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java index f0b6a5500..cd7a8ad37 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java @@ -8,8 +8,8 @@ import com.hbm.entity.projectile.EntitySawblade; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index 212468a1d..12be2af04 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -6,8 +6,8 @@ import com.hbm.interfaces.ICopiable; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java index 8ca80eb24..8fa592af5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.DummyBlockVault; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEVaultPacket; +import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index ed713def1..8d3f3abe6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -18,9 +18,9 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemWatzPellet; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java index 4fb2be3ef..562109830 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import java.util.List; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 3afa3fb12..7964d9c83 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -5,8 +5,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.FractionRecipes; import com.hbm.lib.Library; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 15233ad0c..288faa0ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine.pile; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.block.IPileNeutronReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 57bc990bc..cf1d2d8bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -6,8 +6,8 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.CompatHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.items.machine.ItemRBMKRod; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.tileentity.INBTPacketReceiver; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; 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 44703c013..9adb5b1a8 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -9,9 +9,9 @@ import com.hbm.entity.effect.EntitySpear; import com.hbm.entity.projectile.EntityRBMKDebris; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IOverpressurable; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index 7c6278c84..5b2e0b519 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine.rbmk; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java index fc1451df5..42122c5ed 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java @@ -2,8 +2,8 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerFileCabinet; import com.hbm.inventory.gui.GUIFileCabinet; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index d89f7e63a..ec59e2493 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -19,9 +19,9 @@ import com.hbm.inventory.gui.GUIMachineFluidTank; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 86d7c3cb9..29cc6b043 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.network; import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.inventory.gui.GUICraneExtractor; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index b98985bc2..151bf3628 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.network; import com.hbm.blocks.network.CraneInserter; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; @@ -8,18 +9,22 @@ import com.hbm.util.InventoryUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider { +public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { + public boolean destroyer = true; public static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; public TileEntityCraneInserter() { @@ -82,9 +87,23 @@ public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUI } } } + + this.networkPackNT(15); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(destroyer); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + destroyer = buf.readBoolean(); + } + @Override public int[] getAccessibleSlotsFromSide(int side) { return access; @@ -110,4 +129,26 @@ public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUI public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneInserter(player.inventory, this); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.destroyer = nbt.getBoolean("destroyer"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("destroyer", this.destroyer); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("destroyer")) this.destroyer = !this.destroyer; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java index cb08c5bb8..33b68fc4e 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.entity.item.EntityDeliveryDrone; import com.hbm.util.ParticleUtil; -import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BufPacket; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.util.fauxpointtwelve.BlockPos; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java index 6e1a226dd..7d6ff74d8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java @@ -1,16 +1,20 @@ package com.hbm.tileentity.network; import api.hbm.fluid.PipeNet; +import net.minecraft.block.Block; +import net.minecraft.world.World; public class TileEntityFluidValve extends TileEntityPipeBaseNT { @Override - public boolean canUpdate() { + public boolean shouldConnect() { return this.worldObj != null && this.getBlockMetadata() == 1 && super.canUpdate(); } public void updateState() { + this.blockMetadata = -1; // delete cache + if(this.getBlockMetadata() == 0 && this.network != null) { this.network.destroy(); this.network = null; @@ -24,4 +28,9 @@ public class TileEntityFluidValve extends TileEntityPipeBaseNT { } } } + + @Override + public boolean shouldRefresh(Block oldBlock, Block newBlock, int oldMeta, int newMeta, World world, int x, int y, int z) { + return oldBlock != newBlock; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index 342eb324d..223828698 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -36,7 +36,7 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor, lastType = type; } - if(!worldObj.isRemote && canUpdate()) { + if(!worldObj.isRemote && shouldConnect()) { //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume this.setPipeNet(type, null); @@ -109,8 +109,7 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor, /** * Only update until a power net is formed, in >99% of the cases it should be the first tick. Everything else is handled by neighbors and the net itself. */ - @Override - public boolean canUpdate() { + public boolean shouldConnect() { return (this.network == null || !this.network.isValid()) && !this.isInvalid(); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java index 71fc659f9..28c66c658 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.network; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.NBTPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 156472346..b598e0a99 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -11,8 +11,8 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemAmmoArty; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.Optional; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 2ec8a6b26..6cea0933e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -21,8 +21,8 @@ import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemTurretBiometry; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java index 6ca6c4e35..64f329a79 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java @@ -7,8 +7,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretChekhov; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 1cd792cea..9303c7a97 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -15,8 +15,8 @@ import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.gui.GUITurretFritz; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.tileentity.IFluidCopiable; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java index 5afbd8afa..f726cdff3 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java @@ -10,8 +10,8 @@ import com.hbm.handler.CasingEjector; import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.inventory.gui.GUITurretHoward; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.util.EntityDamageUtil; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java index 26536ffb5..c3e9d7655 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.turret; import com.hbm.config.WeaponConfig; import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java index f89b81cbd..e5c323f2b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java @@ -7,8 +7,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretJeremy; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index 91dc3e9ab..43dacb564 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -8,8 +8,8 @@ import com.hbm.inventory.gui.GUITurretMaxwell; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java index 09b8d22ee..76420c588 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java @@ -8,8 +8,8 @@ import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretSentry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java index acb7898cb..bc3dc51ff 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java @@ -2,8 +2,8 @@ package com.hbm.tileentity.turret; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java index d25acbc74..10d95d561 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java @@ -7,8 +7,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.gui.GUITurretTauon; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index bf96fb050..ee4f64899 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -4,7 +4,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; -import com.hbm.inventory.material.Mats; import com.hbm.itempool.ItemPool; import com.hbm.itempool.ItemPoolsPile; import com.hbm.items.ModItems; @@ -12,7 +11,6 @@ import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -46,12 +44,9 @@ public class LootGenerator { else loot.addItem(new ItemStack(ModItems.ammo_rocket), -0.25, 0, -0.25); - for(int i = 0; i < 4; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, 0.25); - for(int i = 0; i < 2; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.syringe_metal_stimpak, 1), -0.25, i * 0.03125, 0.25); - for(int i = 0; i < 6; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, -0.25); + for(int i = 0; i < 4; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, 0.25); + for(int i = 0; i < 2; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.syringe_metal_stimpak, 1), -0.25, i * 0.03125, 0.25); + for(int i = 0; i < 6; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, -0.25); } } @@ -61,15 +56,8 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { - for(int i = 0; i < 4; i++) { - int type = world.rand.nextInt(4); - Item syringe = type < 2 ? ModItems.syringe_metal_stimpak : type == 2 ? ModItems.syringe_metal_medx : ModItems.syringe_metal_psycho; - addItemWithDeviation(loot, world.rand, new ItemStack(syringe), 0.125, i * 0.03125, 0.25); - } - - int type = world.rand.nextInt(8); - Item syringe = type < 2 ? ModItems.radaway : type < 4 ? ModItems.radx : type < 7 ? ModItems.iv_blood : ModItems.siox; - addItemWithDeviation(loot, world.rand, new ItemStack(syringe), -0.25, 0, -0.125); + for(int i = 0; i < 4; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MED_SYRINGE, world.rand), 0.125, i * 0.03125, 0.25); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MED_PILLS, world.rand), -0.25, 0, -0.125); } } @@ -84,7 +72,7 @@ public class LootGenerator { int count = world.rand.nextInt(5) + 3; for(int k = 0; k < count; k++) { - addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_CAPS), world.rand), i * 0.3125, k * 0.03125, j * 0.3125); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_CAPS, world.rand), i * 0.3125, k * 0.03125, j * 0.3125); } } } @@ -98,20 +86,15 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { boolean r = world.rand.nextBoolean(); - if(r) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0.125, 0.025, 0.25); + if(r) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_GUN, world.rand), 0.125, 0.025, 0.25); - if(!r || world.rand.nextBoolean()) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wrench), -0.25, 0, -0.28125); + if(!r || world.rand.nextBoolean()) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_WRENCH, world.rand), -0.25, 0, -0.28125); int count = world.rand.nextInt(2) + 1; - for(int i = 0; i < count; i++) { - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.plate_steel), -0.25, i * 0.03125, 0.3125); - } + for(int i = 0; i < count; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_PLATES, world.rand), -0.25, i * 0.03125, 0.3125); count = world.rand.nextInt(2) + 2; - for(int i = 0; i < count; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_fine, 1, Mats.MAT_ALUMINIUM.id), 0.25, i * 0.03125, 0.1875); + for(int i = 0; i < count; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_WIRE, world.rand), 0.25, i * 0.03125, 0.1875); } } @@ -121,15 +104,11 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { - boolean memes = world.rand.nextInt(10) == 0; - for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { - if(world.rand.nextBoolean() || memes) { - int type = world.rand.nextInt(11); - AmmoFatman nuke = memes ? AmmoFatman.PUMPKIN : type == 0 ? AmmoFatman.STOCK : type <= 5 ? AmmoFatman.LOW : AmmoFatman.SAFE; - loot.addItem(ModItems.ammo_nuke.stackFromEnum(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); + if(world.rand.nextBoolean()) { + loot.addItem(ItemPool.getStack(ItemPoolsPile.POOL_PILE_NUKE_STORAGE, world.rand), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); } } } @@ -170,12 +149,10 @@ public class LootGenerator { addItemWithDeviation(loot, world.rand, book, 0, 0, -0.25); int count = world.rand.nextInt(3) + 2; - for(int k = 0; k < count; k++) - addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.25); + for(int k = 0; k < count; k++) addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.25); count = world.rand.nextInt(2) + 1; - for(int k = 0; k < count; k++) - addItemWithDeviation(loot, world.rand, new ItemStack(Items.paper), 0.25, k * 0.03125, 0.125); + for(int k = 0; k < count; k++) addItemWithDeviation(loot, world.rand, new ItemStack(Items.paper), 0.25, k * 0.03125, 0.125); } } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index 45898c14d..2c654de56 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -1,8 +1,8 @@ package com.hbm.util; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index b06cf9d86..4f23a6865 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -1,7 +1,8 @@ package com.hbm.world; -import com.hbm.packet.BiomeSyncPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BiomeSyncPacket; + import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 09bf2e8c3..565b71102 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -34,3 +34,6 @@ public net.minecraft.world.gen.ChunkProviderFlat field_82702_h # ha # ChunkProviderServer public net.minecraft.world.gen.ChunkProviderServer field_73248_b # chunksToUnload + +# ItemRenderer +public net.minecraft.client.renderer.ItemRenderer field_78453_b # itemToRender \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 026f86d95..9a0f2e0cc 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -654,7 +654,7 @@ hbm.key.craneMoveDown=Kran rückwärts hbm.key.craneMoveLeft=Kran nach links hbm.key.craneMoveRight=Kran nach rechts hbm.key.craneMoveUp=Kran vorwärts -hbm.key.toggleBack=Rucksack umschalten +hbm.key.toggleBack=Jetpack umschalten hbm.key.toggleHUD=HUD umschalten hbm.key.reload=Nachladen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 92411ce93..3dacbd643 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -675,6 +675,7 @@ chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production +commands.satellite.no_active_satellites=No active satellites found! commands.satellite.no_satellite=No satellite using this frequency found! commands.satellite.not_a_satellite=The held item is not a satellite! commands.satellite.satellite_descended=Satellite successfully descended. @@ -1361,7 +1362,7 @@ hbm.key.craneMoveLeft=Move Crane Left hbm.key.craneMoveRight=Move Crane Right hbm.key.craneMoveUp=Move Crane Forward hbm.key.dash=Dash (Unbind from Crouch in config) -hbm.key.toggleBack=Toggle Backpack +hbm.key.toggleBack=Toggle Jetpack hbm.key.toggleHUD=Toggle HUD hbm.key.reload=Reload hbm.key.copyToolAlt=Copy Tool: Switch Paste diff --git a/src/main/resources/assets/hbm/models/weapons/flamethrower.obj b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj new file mode 100644 index 000000000..a89a5efca --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj @@ -0,0 +1,4043 @@ +# Blender v2.79 (sub 0) OBJ File: 'flamethrower.blend' +# www.blender.org +o Circle +v 0.000000 0.500000 7.000000 +v -0.250000 0.433013 7.000000 +v -0.433012 0.250000 7.000000 +v -0.500000 0.000000 7.000000 +v -0.433012 -0.250000 7.000000 +v -0.250000 -0.433013 7.000000 +v 0.000000 -0.500000 7.000000 +v 0.250000 -0.433013 7.000000 +v 0.433012 -0.250000 7.000000 +v 0.500000 -0.000000 7.000000 +v 0.433013 0.250000 7.000000 +v 0.250000 0.433013 7.000000 +v 0.000000 0.750000 5.750000 +v -0.375000 0.649519 5.750000 +v -0.649519 0.375000 5.750000 +v -0.750000 0.000000 5.750000 +v -0.649519 -0.375000 5.750000 +v -0.375000 -0.649519 5.750000 +v 0.000000 -0.750000 5.750000 +v 0.375000 -0.649519 5.750000 +v 0.649519 -0.375000 5.750000 +v 0.750000 -0.000000 5.750000 +v 0.649519 0.375000 5.750000 +v 0.375000 0.649519 5.750000 +v 0.000000 0.375000 7.000000 +v -0.187500 0.324760 7.000000 +v -0.324759 0.187500 7.000000 +v -0.375000 0.000000 7.000000 +v -0.324759 -0.187500 7.000000 +v -0.187500 -0.324759 7.000000 +v 0.000000 -0.375000 7.000000 +v 0.187500 -0.324760 7.000000 +v 0.324759 -0.187500 7.000000 +v 0.375000 -0.000000 7.000000 +v 0.324759 0.187500 7.000000 +v 0.187500 0.324759 7.000000 +v 0.000000 0.500000 5.500000 +v -0.250000 0.433013 5.500000 +v -0.433012 0.250000 5.500000 +v -0.500000 0.000000 5.500000 +v -0.433012 -0.250000 5.500000 +v -0.250000 -0.433013 5.500000 +v 0.000000 -0.500000 5.500000 +v 0.250000 -0.433013 5.500000 +v 0.433012 -0.250000 5.500000 +v 0.500000 -0.000000 5.500000 +v 0.433013 0.250000 5.500000 +v 0.250000 0.433013 5.500000 +v 0.000000 0.375000 6.000000 +v -0.187500 0.324760 6.000000 +v -0.324759 0.187500 6.000000 +v -0.375000 0.000000 6.000000 +v -0.324759 -0.187500 6.000000 +v -0.187500 -0.324759 6.000000 +v 0.000000 -0.375000 6.000000 +v 0.187500 -0.324760 6.000000 +v 0.324759 -0.187500 6.000000 +v 0.375000 -0.000000 6.000000 +v 0.324759 0.187500 6.000000 +v 0.187500 0.324759 6.000000 +v 0.000000 0.750000 5.500000 +v -0.375000 0.649519 5.500000 +v -0.649519 0.375000 5.500000 +v -0.750000 0.000000 5.500000 +v -0.649519 -0.375000 5.500000 +v -0.375000 -0.649519 5.500000 +v 0.000000 -0.750000 5.500000 +v 0.375000 -0.649519 5.500000 +v 0.649519 -0.375000 5.500000 +v 0.750000 -0.000000 5.500000 +v 0.649519 0.375000 5.500000 +v 0.375000 0.649519 5.500000 +v 0.000000 0.750000 4.000000 +v -0.375000 0.649519 4.000000 +v -0.649519 0.375000 4.000000 +v -0.750000 0.000000 4.000000 +v -0.649519 -0.375000 4.000000 +v -0.375000 -0.649519 4.000000 +v 0.000000 -0.750000 4.000000 +v 0.375000 -0.649519 4.000000 +v 0.649519 -0.375000 4.000000 +v 0.750000 -0.000000 4.000000 +v 0.649519 0.375000 4.000000 +v 0.375000 0.649519 4.000000 +v 0.000000 0.500000 4.000000 +v -0.250000 0.433013 4.000000 +v -0.433012 0.250000 4.000000 +v -0.500000 0.000000 4.000000 +v -0.433012 -0.250000 4.000000 +v -0.250000 -0.433013 4.000000 +v 0.000000 -0.500000 4.000000 +v 0.250000 -0.433013 4.000000 +v 0.433012 -0.250000 4.000000 +v 0.500000 -0.000000 4.000000 +v 0.433013 0.250000 4.000000 +v 0.250000 0.433013 4.000000 +v 0.000000 0.500000 -3.500000 +v -0.250000 0.433013 -3.500000 +v -0.433012 0.250000 -3.500000 +v -0.500000 0.000000 -3.500000 +v -0.433012 -0.250000 -3.500000 +v -0.250000 -0.433013 -3.500000 +v 0.000000 -0.500000 -3.500000 +v 0.250000 -0.433013 -3.500000 +v 0.433012 -0.250000 -3.500000 +v 0.500000 -0.000000 -3.500000 +v 0.433013 0.250000 -3.500000 +v 0.250000 0.433013 -3.500000 +v 0.000000 0.750000 -3.500000 +v -0.375000 0.649519 -3.500000 +v -0.649519 0.375000 -3.500000 +v -0.750000 0.000000 -3.500000 +v -0.649519 -0.375000 -3.500000 +v -0.375000 -0.649519 -3.500000 +v 0.000000 -0.750000 -3.500000 +v 0.375000 -0.649519 -3.500000 +v 0.649519 -0.375000 -3.500000 +v 0.750000 -0.000000 -3.500000 +v 0.649519 0.375000 -3.500000 +v 0.375000 0.649519 -3.500000 +v 0.000000 0.750000 -4.500000 +v -0.375000 0.649519 -4.500000 +v -0.649519 0.375000 -4.500000 +v -0.750000 0.000000 -4.500000 +v -0.649519 -0.375000 -4.500000 +v -0.375000 -0.649519 -4.500000 +v 0.000000 -0.750000 -4.500000 +v 0.375000 -0.649519 -4.500000 +v 0.649519 -0.375000 -4.500000 +v 0.750000 -0.000000 -4.500000 +v 0.649519 0.375000 -4.500000 +v 0.375000 0.649519 -4.500000 +v -0.500000 1.000000 -4.500000 +v -1.000000 0.500000 -4.500000 +v 1.000000 0.500000 -4.500000 +v 0.500000 1.000000 -4.500000 +v -1.000000 -0.500000 -4.500000 +v -0.500000 -1.000000 -4.500000 +v 0.500000 -1.000000 -4.500000 +v 1.000000 -0.500000 -4.500000 +v -0.500000 -1.000000 -8.000000 +v -1.000000 -0.500000 -8.000000 +v -1.000000 0.500000 -8.000000 +v -0.500000 1.000000 -8.000000 +v 0.500000 1.000000 -8.000000 +v 1.000000 0.500000 -8.000000 +v 1.000000 -0.500000 -8.000000 +v 0.500000 -1.000000 -8.000000 +v 0.000000 -0.625000 4.750000 +v -0.176777 -0.625000 4.823223 +v -0.250000 -0.625000 5.000000 +v -0.176777 -0.625000 5.176777 +v 0.000000 -0.625000 5.250000 +v 0.176776 -0.625000 5.176777 +v 0.250000 -0.625000 5.000000 +v 0.176776 -0.625000 4.823223 +v 0.000000 -0.875000 4.750000 +v -0.176777 -0.875000 4.823223 +v -0.250000 -0.875000 5.000000 +v -0.176777 -0.875000 5.176777 +v 0.000000 -0.875000 5.250000 +v 0.176776 -0.875000 5.176777 +v 0.250000 -0.875000 5.000000 +v 0.176776 -0.875000 4.823223 +v 0.000000 -0.875000 4.875000 +v -0.088388 -0.875000 4.911612 +v -0.125000 -0.875000 5.000000 +v -0.088388 -0.875000 5.088388 +v 0.000000 -0.875000 5.125000 +v 0.088388 -0.875000 5.088388 +v 0.125000 -0.875000 5.000000 +v 0.088388 -0.875000 4.911612 +v 0.000000 -1.125000 4.875000 +v -0.088388 -1.125000 4.911612 +v -0.125000 -1.125000 5.000000 +v -0.088388 -1.125000 5.088388 +v 0.000000 -1.125000 5.125000 +v 0.088388 -1.125000 5.088388 +v 0.125000 -1.125000 5.000000 +v 0.088388 -1.125000 4.911612 +v 0.000000 -1.500000 7.250000 +v 0.000000 -1.390165 4.984835 +v -0.088388 -1.364277 5.010723 +v -0.125000 -1.301777 5.073223 +v -0.088388 -1.239277 5.135724 +v 0.000000 -1.213388 5.161612 +v 0.088388 -1.239277 5.135724 +v 0.125000 -1.301777 5.073223 +v 0.088388 -1.364277 5.010723 +v 0.000000 -1.500000 5.250000 +v -0.088388 -1.463388 5.250000 +v -0.125000 -1.375000 5.250000 +v -0.088388 -1.286611 5.250000 +v 0.000000 -1.250000 5.250000 +v 0.088388 -1.286611 5.250000 +v 0.125000 -1.375000 5.250000 +v 0.088388 -1.463388 5.250000 +v -0.088388 -1.463388 7.250000 +v -0.125000 -1.375000 7.250000 +v -0.088388 -1.286611 7.250000 +v 0.000000 -1.250000 7.250000 +v 0.088388 -1.286611 7.250000 +v 0.125000 -1.375000 7.250000 +v 0.088388 -1.463388 7.250000 +v 0.000000 -0.875000 7.625000 +v 0.000000 -1.390165 7.515165 +v -0.088388 -1.364277 7.489277 +v -0.125000 -1.301777 7.426777 +v -0.088388 -1.239276 7.364276 +v 0.000000 -1.213388 7.338388 +v 0.088388 -1.239276 7.364276 +v 0.125000 -1.301777 7.426777 +v 0.088388 -1.364277 7.489277 +v 0.000000 -1.125000 7.625000 +v -0.088388 -1.125000 7.588388 +v -0.125000 -1.125000 7.500000 +v -0.088388 -1.125000 7.411612 +v 0.000000 -1.125000 7.375000 +v 0.088388 -1.125000 7.411612 +v 0.125000 -1.125000 7.500000 +v 0.088388 -1.125000 7.588388 +v -0.088388 -0.875000 7.588388 +v -0.125000 -0.875000 7.500000 +v -0.088388 -0.875000 7.411612 +v 0.000000 -0.875000 7.375000 +v 0.088388 -0.875000 7.411612 +v 0.125000 -0.875000 7.500000 +v 0.088388 -0.875000 7.588388 +v 0.000000 -0.875000 7.750000 +v -0.176777 -0.875000 7.676777 +v -0.250000 -0.875000 7.500000 +v -0.176777 -0.875000 7.323223 +v 0.000000 -0.875000 7.250000 +v 0.176776 -0.875000 7.323223 +v 0.250000 -0.875000 7.500000 +v 0.176776 -0.875000 7.676777 +v 0.000000 -0.375000 7.625000 +v -0.088388 -0.375000 7.588388 +v -0.125000 -0.375000 7.500000 +v -0.088388 -0.375000 7.411612 +v 0.000000 -0.375000 7.375000 +v 0.088388 -0.375000 7.411612 +v 0.125000 -0.375000 7.500000 +v 0.088388 -0.375000 7.588388 +v -0.500000 -0.750000 -4.500000 +v 0.500000 -0.750000 -4.500000 +v 0.500000 -1.000000 -4.500000 +v -0.500000 -1.000000 -4.500000 +v -0.500000 -0.750000 4.250000 +v 0.500000 -0.750000 4.250000 +v 0.500000 -1.000000 4.250000 +v -0.500000 -1.000000 4.250000 +v 0.375000 1.000000 -7.125000 +v -0.500000 -0.750000 4.500000 +v 0.500000 -0.750000 4.500000 +v -0.375000 1.000000 -7.125000 +v -0.500000 -0.500000 4.250000 +v 0.500000 -0.500000 4.250000 +v -0.500000 -0.500000 4.500000 +v 0.500000 -0.500000 4.500000 +v -0.375000 1.000000 -7.875000 +v 0.375000 1.000000 -7.875000 +v -0.375000 1.250000 -7.125000 +v 0.375000 1.250000 -7.125000 +v -0.375000 1.250000 -7.875000 +v 0.375000 1.250000 -7.875000 +v -0.250000 1.250000 -7.250000 +v 0.250000 1.250000 -7.250000 +v -0.250000 1.250000 -7.750000 +v 0.250000 1.250000 -7.750000 +v -0.250000 1.875000 -7.750000 +v -0.250000 2.250000 -7.250000 +v 0.250000 2.250000 -7.250000 +v 0.250000 1.875000 -7.750000 +v -0.500000 0.000000 -0.750000 +v -0.433012 0.250000 -0.750000 +v -0.187500 2.062500 -7.250000 +v 0.187500 2.062500 -7.250000 +v -0.250000 0.433013 -0.750000 +v 0.000000 0.500000 -0.750000 +v -0.187500 2.062500 -5.750000 +v 0.187500 2.062500 -5.750000 +v -0.250000 1.625000 -5.750000 +v 0.250000 1.625000 -5.750000 +v -0.250000 2.125000 -5.750000 +v 0.250000 2.125000 -5.750000 +v -0.250000 2.125000 -5.375000 +v -0.250000 1.625000 -5.500000 +v 0.250000 1.625000 -5.500000 +v 0.250000 2.125000 -5.375000 +v -0.062500 1.687500 -7.250000 +v -0.187500 1.812500 -7.250000 +v 0.187500 1.812500 -7.250000 +v 0.062500 1.687500 -7.250000 +v -0.187500 1.812500 -5.750000 +v -0.062500 1.687500 -5.750000 +v 0.062500 1.687500 -5.750000 +v 0.187500 1.812500 -5.750000 +v -0.433012 -0.250000 -0.750000 +v -0.250000 -0.433013 -0.750000 +v 0.000000 -0.500000 -0.750000 +v 0.250000 -0.433013 -0.750000 +v 0.433012 -0.250000 -0.750000 +v 0.500000 -0.000000 -0.750000 +v 0.433013 0.250000 -0.750000 +v 0.250000 0.433013 -0.750000 +v 0.000000 0.625000 -0.750000 +v -0.312500 0.541266 -0.750000 +v -0.541266 0.312500 -0.750000 +v -0.625000 0.000000 -0.750000 +v -0.541266 -0.312500 -0.750000 +v -0.312500 -0.541266 -0.750000 +v 0.000000 -0.625000 -0.750000 +v 0.312500 -0.541266 -0.750000 +v 0.541265 -0.312500 -0.750000 +v 0.625000 -0.000000 -0.750000 +v 0.541266 0.312500 -0.750000 +v 0.312500 0.541266 -0.750000 +v 0.433012 -0.250000 -0.250000 +v 0.250000 -0.433013 -0.250000 +v 0.000000 -0.500000 -0.250000 +v -0.250000 -0.433013 -0.250000 +v -0.433012 -0.250000 -0.250000 +v -0.500000 0.000000 -0.250000 +v -0.433012 0.250000 -0.250000 +v -0.250000 0.433013 -0.250000 +v 0.000000 0.500000 -0.250000 +v 0.500000 -0.000000 -0.250000 +v 0.433013 0.250000 -0.250000 +v 0.250000 0.433013 -0.250000 +v -0.312500 0.541266 -0.250000 +v 0.000000 0.625000 -0.250000 +v -0.541266 0.312500 -0.250000 +v -0.625000 0.000000 -0.250000 +v -0.541266 -0.312500 -0.250000 +v -0.312500 -0.541266 -0.250000 +v 0.000000 -0.625000 -0.250000 +v 0.312500 -0.541266 -0.250000 +v 0.541265 -0.312500 -0.250000 +v 0.625000 -0.000000 -0.250000 +v 0.541266 0.312500 -0.250000 +v 0.312500 0.541266 -0.250000 +v 0.375000 0.125000 -0.375000 +v 0.375000 -0.125000 -0.375000 +v 0.375000 0.125000 -0.625000 +v 0.375000 -0.125000 -0.625000 +v 0.875000 -0.125000 -0.625000 +v 0.875000 0.125000 -0.625000 +v 0.875000 -0.125000 -0.375000 +v 0.875000 0.125000 -0.375000 +v 0.875000 -0.187500 -0.687500 +v 0.875000 0.187500 -0.687500 +v 0.625000 -0.125000 -0.375000 +v 0.625000 0.125000 -0.375000 +v 2.875000 -0.187500 -0.687500 +v 2.875000 0.187500 -0.687500 +v 0.750000 0.125000 -0.375000 +v 0.750000 -0.125000 -0.375000 +v 0.875000 -0.187500 -0.437500 +v 0.875000 -0.062500 -0.312500 +v 0.875000 0.062500 -0.312500 +v 0.875000 0.187500 -0.437500 +v 0.000000 -0.500000 7.500000 +v 2.875000 -0.062500 -0.312500 +v 2.875000 -0.187500 -0.437500 +v 2.875000 0.187500 -0.437500 +v 2.875000 0.062500 -0.312500 +v 0.625000 0.125000 -0.125000 +v 0.625000 -0.125000 -0.125000 +v 0.750000 0.125000 -0.125000 +v 0.750000 -0.125000 -0.125000 +v 0.750000 0.125000 0.000000 +v 0.750000 -0.125000 0.000000 +v 2.875000 0.125000 -0.125000 +v 2.875000 -0.125000 -0.125000 +v 2.750000 0.125000 0.000000 +v 2.750000 -0.125000 0.000000 +v 0.312500 0.541266 -3.500000 +v 0.217648 0.553754 -3.500000 +v 0.141747 0.495513 -3.500000 +v 0.129259 0.400660 -3.500000 +v 0.282352 0.312272 -3.500000 +v 0.358253 0.370513 -3.500000 +v 0.370741 0.465365 -3.500000 +v 0.312500 0.541266 4.000000 +v 0.217648 0.553754 4.000000 +v 0.141747 0.495513 4.000000 +v 0.129259 0.400660 4.000000 +v 0.282352 0.312272 4.000000 +v 0.358253 0.370513 4.000000 +v 0.370741 0.465365 4.000000 +v -0.312500 0.541266 -3.500000 +v -0.370741 0.465365 -3.500000 +v -0.358253 0.370513 -3.500000 +v -0.282352 0.312272 -3.500000 +v -0.129259 0.400660 -3.500000 +v -0.141747 0.495513 -3.500000 +v -0.217648 0.553753 -3.500000 +v -0.312500 0.541266 4.000000 +v -0.370741 0.465365 4.000000 +v -0.358253 0.370513 4.000000 +v -0.282352 0.312272 4.000000 +v -0.129259 0.400660 4.000000 +v -0.141747 0.495513 4.000000 +v -0.217648 0.553753 4.000000 +v 1.250000 1.750000 -4.250000 +v 0.896447 1.603553 -4.250000 +v 0.750000 1.250000 -4.250000 +v 0.896447 0.896447 -4.250000 +v 1.250000 0.750000 -4.250000 +v 1.603553 0.896447 -4.250000 +v 1.750000 1.250000 -4.250000 +v 1.603553 1.603553 -4.250000 +v 0.896447 1.603553 -4.000000 +v 1.250000 1.750000 -4.000000 +v 0.750000 1.250000 -4.000000 +v 0.896447 0.896447 -4.000000 +v 1.250000 0.750000 -4.000000 +v 1.603553 0.896447 -4.000000 +v 1.750000 1.250000 -4.000000 +v 1.603553 1.603553 -4.000000 +v 1.073223 1.426777 -3.750000 +v 1.250000 1.500000 -3.750000 +v 1.000000 1.250000 -3.750000 +v 1.073223 1.073223 -3.750000 +v 1.250000 1.000000 -3.750000 +v 1.426776 1.073223 -3.750000 +v 1.500000 1.250000 -3.750000 +v 1.426776 1.426777 -3.750000 +v 1.312500 1.125000 -4.187500 +v 1.187500 1.125000 -4.187500 +v 1.250000 1.500000 -4.250000 +v 1.187500 1.125000 -4.250000 +v 1.016466 1.281631 -4.093750 +v 1.016466 1.281631 -3.906250 +v 1.281631 1.016466 -3.906250 +v 1.281631 1.016466 -4.093750 +v 0.309360 0.574524 -4.093750 +v 0.309360 0.574524 -3.906250 +v 0.574524 0.309359 -3.906250 +v 0.574524 0.309359 -4.093750 +v 1.250000 1.500000 -4.187500 +v 1.312500 1.125000 -4.250000 +v 0.940640 1.559359 -4.250000 +v 1.250000 1.687500 -4.250000 +v 0.812500 1.250000 -4.250000 +v 0.940640 0.940641 -4.250000 +v 1.250000 0.812500 -4.250000 +v 1.559359 0.940641 -4.250000 +v 1.687500 1.250000 -4.250000 +v 1.559359 1.559359 -4.250000 +v 0.940640 1.559359 -4.187500 +v 1.250000 1.687500 -4.187500 +v 0.812500 1.250000 -4.187500 +v 0.940640 0.940641 -4.187500 +v 1.250000 0.812500 -4.187500 +v 1.559359 0.940641 -4.187500 +v 1.687500 1.250000 -4.187500 +v 1.559359 1.559359 -4.187500 +v 0.000000 -1.125000 -0.500000 +v 0.437500 -1.242228 -0.500000 +v 0.000000 -1.000000 -6.000000 +v 0.000000 -1.000000 -1.000000 +v 0.500000 -1.133975 -6.000000 +v 0.500000 -1.133975 -1.000000 +v 0.866025 -1.500000 -6.000000 +v 0.866025 -1.500000 -1.000000 +v 1.000000 -2.000000 -6.000000 +v 1.000000 -2.000000 -1.000000 +v 0.866025 -2.500000 -6.000000 +v 0.866025 -2.500000 -1.000000 +v 0.500000 -2.866025 -6.000000 +v 0.500000 -2.866025 -1.000000 +v 0.000000 -3.000000 -6.000000 +v 0.000000 -3.000000 -1.000000 +v -0.500000 -2.866025 -6.000000 +v -0.500000 -2.866026 -1.000000 +v -0.866025 -2.500000 -6.000000 +v -0.866025 -2.500000 -1.000000 +v -1.000000 -2.000000 -6.000000 +v -1.000000 -2.000000 -1.000000 +v -0.866026 -1.500000 -6.000000 +v -0.866026 -1.500001 -1.000000 +v -0.500000 -1.133975 -6.000000 +v -0.500000 -1.133975 -1.000000 +v 0.757772 -1.562500 -0.500000 +v 0.875000 -2.000000 -0.500000 +v 0.757772 -2.437500 -0.500000 +v 0.437500 -2.757772 -0.500000 +v 0.000000 -2.875000 -0.500000 +v -0.437500 -2.757772 -0.500000 +v -0.757772 -2.437500 -0.500000 +v -0.875000 -2.000000 -0.500000 +v -0.757772 -1.562500 -0.500000 +v -0.437500 -1.242228 -0.500000 +v 0.000000 -1.500000 -0.250000 +v 0.250000 -1.566987 -0.250000 +v 0.433013 -1.750000 -0.250000 +v 0.500000 -2.000000 -0.250000 +v 0.433012 -2.250000 -0.250000 +v 0.250000 -2.433013 -0.250000 +v 0.000000 -2.500000 -0.250000 +v -0.250000 -2.433013 -0.250000 +v -0.433012 -2.250000 -0.250000 +v -0.500000 -2.000000 -0.250000 +v -0.433013 -1.750000 -0.250000 +v -0.250000 -1.566988 -0.250000 +v 0.000000 -1.125000 -6.500000 +v 0.437500 -1.242228 -6.500000 +v 0.757772 -1.562500 -6.500000 +v 0.875000 -2.000000 -6.500000 +v 0.757772 -2.437500 -6.500000 +v 0.437500 -2.757772 -6.500000 +v 0.000000 -2.875000 -6.500000 +v -0.437500 -2.757772 -6.500000 +v -0.757772 -2.437500 -6.500000 +v -0.875000 -2.000000 -6.500000 +v -0.757772 -1.562500 -6.500000 +v -0.437500 -1.242228 -6.500000 +v 0.000000 -1.500000 -6.750000 +v 0.250000 -1.566987 -6.750000 +v 0.433013 -1.750000 -6.750000 +v 0.500000 -2.000000 -6.750000 +v 0.433012 -2.250000 -6.750000 +v 0.250000 -2.433013 -6.750000 +v 0.000000 -2.500000 -6.750000 +v -0.250000 -2.433013 -6.750000 +v -0.433012 -2.250000 -6.750000 +v -0.500000 -2.000000 -6.750000 +v -0.433013 -1.750000 -6.750000 +v -0.250000 -1.566988 -6.750000 +v 0.000000 -1.000000 -5.000000 +v -0.250000 -1.566987 -7.500000 +v -0.433013 -1.750000 -7.500000 +v -0.500000 -2.000000 -7.500000 +v 0.866025 -2.500000 -5.000000 +v 0.500000 -2.866025 -5.000000 +v 0.000000 -3.000000 -5.000000 +v -0.500000 -2.866025 -5.000000 +v -0.866025 -2.500000 -5.000000 +v -1.000000 -2.000000 -5.000000 +v -0.866026 -1.500000 -5.000000 +v -0.500000 -1.133975 -5.000000 +v 0.000000 -1.000000 -5.500000 +v 0.000000 -1.500000 -7.500000 +v 0.250000 -1.566987 -7.500000 +v 0.433013 -1.750000 -7.500000 +v 0.866025 -2.500000 -5.500000 +v 0.500000 -2.866025 -5.500000 +v 0.000000 -3.000000 -5.500000 +v -0.500000 -2.866025 -5.500000 +v -0.866025 -2.500000 -5.500000 +v -1.000000 -2.000000 -5.500000 +v -0.866026 -1.500000 -5.500000 +v -0.500000 -1.133975 -5.500000 +v 0.000000 -0.750000 -5.500000 +v -0.625000 -0.917468 -5.500000 +v -1.082532 -1.375000 -5.500000 +v -1.250000 -2.000000 -5.500000 +v -1.082532 -2.625000 -5.500000 +v -0.625000 -3.082531 -5.500000 +v 0.000000 -3.250000 -5.500000 +v 0.625000 -3.082532 -5.500000 +v 1.082531 -2.625000 -5.500000 +v 0.500000 -2.000000 -7.500000 +v 0.433012 -2.250000 -7.500000 +v 0.250000 -2.433013 -7.500000 +v 0.000000 -0.750000 -5.000000 +v -0.625000 -0.917468 -5.000000 +v -1.082532 -1.375000 -5.000000 +v -1.250000 -2.000000 -5.000000 +v -1.082532 -2.625000 -5.000000 +v -0.625000 -3.082531 -5.000000 +v 0.000000 -3.250000 -5.000000 +v 0.625000 -3.082532 -5.000000 +v 1.082531 -2.625000 -5.000000 +v 0.000000 -2.500000 -7.500000 +v -0.250000 -2.433013 -7.500000 +v -0.433012 -2.250000 -7.500000 +v 1.082531 -2.625000 -1.500000 +v -0.250000 -1.566988 -6.750000 +v -0.433013 -1.750000 -6.750000 +v -0.500000 -2.000000 -6.750000 +v 0.625000 -3.082532 -1.500000 +v 0.000000 -3.250000 -1.500000 +v -0.625000 -3.082531 -1.500000 +v -1.082532 -2.625000 -1.500000 +v -1.250000 -2.000000 -1.500000 +v -1.082532 -1.375000 -1.500000 +v -0.625000 -0.917468 -1.500000 +v 0.000000 -0.750000 -1.500000 +v 1.082531 -2.625000 -2.000000 +v -0.433012 -2.250000 -6.750000 +v -0.250000 -2.433013 -6.750000 +v 0.000000 -2.500000 -6.750000 +v 0.625000 -3.082532 -2.000000 +v 0.000000 -3.250000 -2.000000 +v -0.625000 -3.082531 -2.000000 +v -1.082532 -2.625000 -2.000000 +v -1.250000 -2.000000 -2.000000 +v -1.082532 -1.375000 -2.000000 +v -0.625000 -0.917468 -2.000000 +v 0.000000 -0.750000 -2.000000 +v -0.500000 -1.133975 -2.000000 +v -0.866026 -1.500000 -2.000000 +v -1.000000 -2.000000 -2.000000 +v -0.866025 -2.500000 -2.000000 +v -0.500000 -2.866025 -2.000000 +v 0.000000 -3.000000 -2.000000 +v 0.500000 -2.866025 -2.000000 +v 0.866025 -2.500000 -2.000000 +v 0.000000 -1.000000 -2.000000 +v 0.250000 -2.433013 -6.750000 +v 0.433012 -2.250000 -6.750000 +v 0.500000 -2.000000 -6.750000 +v -0.500000 -1.133975 -1.500000 +v -0.866026 -1.500000 -1.500000 +v -1.000000 -2.000000 -1.500000 +v -0.866025 -2.500000 -1.500000 +v -0.500000 -2.866025 -1.500000 +v 0.000000 -3.000000 -1.500000 +v 0.500000 -2.866025 -1.500000 +v 0.866025 -2.500000 -1.500000 +v 0.000000 -1.000000 -1.500000 +v 0.433013 -1.750000 -6.750000 +v 0.250000 -1.566987 -6.750000 +v 0.000000 -1.500000 -6.750000 +v -0.250000 -1.625000 -6.875000 +v 0.250000 -1.625000 -6.875000 +v -0.250000 -1.625000 -7.375000 +v 0.250000 -1.625000 -7.375000 +v -0.250000 -1.000000 -6.875000 +v 0.250000 -1.000000 -6.875000 +v -0.250000 -1.000000 -7.375000 +v 0.250000 -1.000000 -7.375000 +v 0.000000 -1.625000 -7.500000 +v -0.265165 -1.734835 -7.500000 +v -0.375000 -2.000000 -7.500000 +v -0.265165 -2.265165 -7.500000 +v 0.000000 -2.375000 -7.500000 +v 0.265165 -2.265165 -7.500000 +v 0.375000 -2.000000 -7.500000 +v 0.265165 -1.734835 -7.500000 +v 0.000000 -1.625000 -8.500000 +v -0.265165 -1.734835 -8.500000 +v -0.375000 -2.000000 -8.500000 +v -0.265165 -2.265165 -8.500000 +v 0.000000 -2.375000 -8.500000 +v 0.265165 -2.265165 -8.500000 +v 0.375000 -2.000000 -8.500000 +v 0.265165 -1.734835 -8.500000 +v 0.375000 0.000000 -8.250001 +v 0.000000 -1.478553 -8.853554 +v -0.265165 -1.556218 -8.931218 +v -0.375000 -1.743718 -9.118718 +v -0.265165 -1.931218 -9.306218 +v 0.000000 -2.008883 -9.383883 +v 0.265165 -1.931218 -9.306218 +v 0.375000 -1.743718 -9.118718 +v 0.265165 -1.556219 -8.931218 +v 0.000000 -1.125000 -9.000000 +v -0.265165 -1.125000 -9.109835 +v -0.375000 -1.125000 -9.375000 +v -0.265165 -1.125000 -9.640165 +v 0.000000 -1.125000 -9.750000 +v 0.265165 -1.125000 -9.640165 +v 0.375000 -1.125000 -9.375000 +v 0.265165 -1.125000 -9.109835 +v 0.000000 -0.875000 -9.000000 +v -0.265165 -0.875000 -9.109835 +v -0.375000 -0.875000 -9.375000 +v -0.265165 -0.875000 -9.640165 +v 0.000000 -0.875000 -9.750000 +v 0.265165 -0.875000 -9.640165 +v 0.375000 -0.875000 -9.375000 +v 0.265165 -0.875000 -9.109835 +v 0.265165 0.265166 -8.250001 +v 0.000000 0.375000 -8.250000 +v -0.265165 0.265166 -8.250001 +v -0.375000 0.000000 -8.250001 +v -0.265165 -0.265165 -8.250000 +v 0.000000 -0.375000 -8.250000 +v 0.000000 -0.375000 -8.500000 +v -0.265165 -0.265165 -8.500000 +v -0.375000 0.000000 -8.500001 +v -0.265165 0.265166 -8.500001 +v 0.000000 0.375000 -8.500000 +v 0.265165 0.265166 -8.500001 +v 0.375000 0.000000 -8.500001 +v 0.265165 -0.265165 -8.500000 +v 0.265165 -0.443782 -8.931218 +v 0.375000 -0.256282 -9.118719 +v 0.265165 -0.068781 -9.306219 +v 0.000000 0.008884 -9.383883 +v -0.265165 -0.068781 -9.306219 +v -0.375000 -0.256282 -9.118719 +v -0.265165 -0.443782 -8.931218 +v 0.000000 -0.521446 -8.853554 +v 0.265165 -0.265165 -8.250000 +v 0.000000 0.500000 -8.250000 +v -0.353553 0.353554 -8.250000 +v -0.500000 0.000000 -8.250000 +v -0.353553 -0.353553 -8.250000 +v 0.000000 -0.500000 -8.250000 +v 0.353553 -0.353553 -8.250000 +v 0.500000 0.000000 -8.250000 +v 0.353553 0.353554 -8.250000 +v -0.353553 0.353554 -8.000000 +v 0.000000 0.500000 -8.000000 +v -0.500000 0.000000 -8.000000 +v -0.353553 -0.353553 -8.000000 +v 0.000000 -0.500000 -8.000000 +v 0.353553 -0.353553 -8.000000 +v 0.500000 0.000000 -8.000000 +v 0.353553 0.353554 -8.000000 +v -0.937500 1.000000 -4.562500 +v -0.562500 1.000000 -4.562500 +v -0.937500 1.000000 -4.937500 +v -0.562500 1.000000 -4.937500 +v -0.937500 0.500000 -4.562500 +v -0.562500 0.500000 -4.562500 +v -0.937500 0.500000 -4.937500 +v -0.562500 0.500000 -4.937500 +v -0.937500 1.000000 -5.062500 +v -0.562500 1.000000 -5.062500 +v -0.937500 1.000000 -5.437500 +v -0.562500 1.000000 -5.437500 +v -0.937500 0.500000 -5.062500 +v -0.562500 0.500000 -5.062500 +v -0.937500 0.500000 -5.437500 +v -0.562500 0.500000 -5.437500 +v -0.875000 1.000000 -4.625000 +v -0.625000 1.000000 -4.625000 +v -0.875000 1.000000 -4.875000 +v -0.625000 1.000000 -4.875000 +v -0.875000 1.375000 -4.875000 +v -0.875000 1.375000 -4.625000 +v -0.625000 1.375000 -4.625000 +v -0.625000 1.375000 -4.875000 +v -0.875000 1.000000 -5.125000 +v -0.625000 1.000000 -5.125000 +v -0.875000 1.000000 -5.375000 +v -0.625000 1.000000 -5.375000 +v -0.875000 1.375000 -5.375000 +v -0.875000 1.375000 -5.125000 +v -0.625000 1.375000 -5.125000 +v -0.625000 1.375000 -5.375000 +v 0.500000 -1.000000 2.500000 +v 3.000000 -1.000000 2.500000 +v 0.500000 2.500000 2.500000 +v 3.000000 1.990000 2.500000 +v 0.500000 2.500000 2.250000 +v 0.500000 -1.000000 2.250000 +v 3.000000 -1.000000 2.250000 +v 3.000000 1.990000 2.250000 +v 1.500000 2.500000 2.500000 +v 1.500000 2.500000 2.250000 +v -3.000000 -1.000000 2.500000 +v -0.500000 -1.000000 2.500000 +v -3.000000 2.000000 2.500000 +v -0.500000 2.500000 2.500000 +v -3.000000 2.000000 2.250000 +v -3.000000 -1.000000 2.250000 +v -0.500000 -1.000000 2.250000 +v -0.500000 2.500000 2.250000 +v -1.500000 2.500000 2.500000 +v -1.500000 2.500000 2.250000 +v -0.500000 0.625000 2.437500 +v 0.500000 0.625000 2.437500 +v -0.500000 0.625000 2.312500 +v 0.500000 0.625000 2.312500 +v -0.500000 0.750000 2.312500 +v -0.500000 0.750000 2.437500 +v 0.500000 0.750000 2.437500 +v 0.500000 0.750000 2.312500 +v -0.500000 1.125000 2.437500 +v 0.500000 1.125000 2.437500 +v -0.500000 1.125000 2.312500 +v 0.500000 1.125000 2.312500 +v -0.500000 1.250000 2.312500 +v -0.500000 1.250000 2.437500 +v 0.500000 1.250000 2.437500 +v 0.500000 1.250000 2.312500 +v -0.500000 2.125000 2.437500 +v 0.500000 2.125000 2.437500 +v -0.500000 2.125000 2.312500 +v 0.500000 2.125000 2.312500 +v -0.500000 2.250000 2.312500 +v -0.500000 2.250000 2.437500 +v 0.500000 2.250000 2.437500 +v 0.500000 2.250000 2.312500 +v 2.000000 -3.000000 2.500000 +v 2.000000 -3.000000 2.250000 +v -2.000000 -3.000000 2.250000 +v -2.000000 -3.000000 2.500000 +v -2.937500 1.812500 2.250000 +v -2.812500 1.812500 2.250000 +v -2.937500 1.937500 2.250000 +v -2.812500 1.937500 2.250000 +v -0.687500 0.562500 -4.500000 +v -0.562500 0.562500 -4.500000 +v -0.687500 0.687500 -4.500000 +v -0.562500 0.687500 -4.500000 +v -1.137500 0.437500 -3.150000 +v -1.587500 0.437500 -1.800000 +v -2.037500 0.687500 -0.450000 +v -2.487500 1.187500 0.900000 +v -2.362500 1.187500 0.900000 +v -1.912500 0.687500 -0.450000 +v -1.462500 0.437500 -1.800000 +v -1.012500 0.437500 -3.150000 +v -1.012500 0.312500 -3.150000 +v -1.462500 0.312500 -1.800000 +v -1.912500 0.562500 -0.450000 +v -2.362500 1.062500 0.900000 +v -2.487500 1.062500 0.900000 +v -2.037500 0.562500 -0.450000 +v -1.587500 0.312500 -1.800000 +v -1.137500 0.312500 -3.150000 +v -0.500000 0.000000 2.125000 +v -0.433012 0.250000 2.125000 +v -0.250000 0.433013 2.125000 +v 0.000000 0.500000 2.125000 +v -0.433012 -0.250000 2.125000 +v -0.250000 -0.433013 2.125000 +v 0.000000 -0.500000 2.125000 +v 0.250000 -0.433013 2.125000 +v 0.433012 -0.250000 2.125000 +v 0.500000 -0.000000 2.125000 +v 0.433013 0.250000 2.125000 +v 0.250000 0.433013 2.125000 +v 0.000000 0.625000 2.125000 +v -0.312500 0.541266 2.125000 +v -0.541266 0.312500 2.125000 +v -0.625000 0.000000 2.125000 +v -0.541266 -0.312500 2.125000 +v -0.312500 -0.541266 2.125000 +v 0.000000 -0.625000 2.125000 +v 0.312500 -0.541266 2.125000 +v 0.541265 -0.312500 2.125000 +v 0.625000 -0.000000 2.125000 +v 0.541266 0.312500 2.125000 +v 0.312500 0.541266 2.125000 +v 0.433012 -0.250000 2.625000 +v 0.250000 -0.433013 2.625000 +v 0.000000 -0.500000 2.625000 +v -0.250000 -0.433013 2.625000 +v -0.433012 -0.250000 2.625000 +v -0.500000 0.000000 2.625000 +v -0.433012 0.250000 2.625000 +v -0.250000 0.433013 2.625000 +v 0.000000 0.500000 2.625000 +v 0.500000 -0.000000 2.625000 +v 0.433013 0.250000 2.625000 +v 0.250000 0.433013 2.625000 +v -0.312500 0.541266 2.625000 +v 0.000000 0.625000 2.625000 +v -0.541266 0.312500 2.625000 +v -0.625000 0.000000 2.625000 +v -0.541266 -0.312500 2.625000 +v -0.312500 -0.541266 2.625000 +v 0.000000 -0.625000 2.625000 +v 0.312500 -0.541266 2.625000 +v 0.541265 -0.312500 2.625000 +v 0.625000 -0.000000 2.625000 +v 0.541266 0.312500 2.625000 +v 0.312500 0.541266 2.625000 +vt 0.052023 0.334677 +vt 0.046243 0.318548 +vt 0.052023 0.318548 +vt 0.052023 0.383065 +vt 0.046243 0.366935 +vt 0.052023 0.366935 +vt 0.052023 0.245968 +vt 0.046243 0.258065 +vt 0.046243 0.245968 +vt 0.052023 0.479839 +vt 0.046243 0.463710 +vt 0.052023 0.463710 +vt 0.052023 0.407258 +vt 0.046243 0.391129 +vt 0.052023 0.391129 +vt 0.052023 0.286290 +vt 0.046243 0.270161 +vt 0.052023 0.270161 +vt 0.052023 0.197581 +vt 0.046243 0.209677 +vt 0.046243 0.197581 +vt 0.052023 0.431452 +vt 0.046243 0.415323 +vt 0.052023 0.415323 +vt 0.052023 0.310484 +vt 0.046243 0.294355 +vt 0.052023 0.294355 +vt 0.052023 0.358871 +vt 0.046243 0.342742 +vt 0.052023 0.342742 +vt 0.052023 0.237903 +vt 0.046243 0.221774 +vt 0.052023 0.221774 +vt 0.052023 0.439516 +vt 0.046243 0.451613 +vt 0.046243 0.439516 +vt 0.002476 0.496091 +vt 0.017341 0.484117 +vt 0.032206 0.496091 +vt 0.132948 0.290323 +vt 0.121387 0.310484 +vt 0.121387 0.294355 +vt 0.132948 0.314516 +vt 0.121387 0.334677 +vt 0.121387 0.318548 +vt 0.121387 0.342742 +vt 0.132948 0.362903 +vt 0.121387 0.358871 +vt 0.121387 0.366935 +vt 0.132948 0.387097 +vt 0.121387 0.383065 +vt 0.121387 0.407258 +vt 0.121387 0.391129 +vt 0.121387 0.415323 +vt 0.132948 0.435484 +vt 0.121387 0.431452 +vt 0.121387 0.455645 +vt 0.121387 0.439516 +vt 0.121387 0.463710 +vt 0.132948 0.483871 +vt 0.121387 0.479839 +vt 0.132948 0.193548 +vt 0.121387 0.213710 +vt 0.121387 0.197581 +vt 0.132948 0.217742 +vt 0.121387 0.237903 +vt 0.121387 0.221774 +vt 0.132948 0.241935 +vt 0.121387 0.262097 +vt 0.121387 0.245968 +vt 0.132948 0.266129 +vt 0.121387 0.286290 +vt 0.121387 0.270161 +vt 0.202312 0.290323 +vt 0.213873 0.310484 +vt 0.202312 0.314516 +vt 0.213873 0.334677 +vt 0.202312 0.338710 +vt 0.213873 0.342742 +vt 0.202312 0.362903 +vt 0.213873 0.366935 +vt 0.202312 0.387097 +vt 0.213873 0.407258 +vt 0.202312 0.411290 +vt 0.213873 0.415323 +vt 0.202312 0.435484 +vt 0.213873 0.455645 +vt 0.202312 0.459677 +vt 0.213873 0.463710 +vt 0.202312 0.483871 +vt 0.213873 0.197581 +vt 0.202312 0.217742 +vt 0.202312 0.193548 +vt 0.213873 0.221774 +vt 0.202312 0.241935 +vt 0.213873 0.262097 +vt 0.202312 0.266129 +vt 0.213873 0.286290 +vt 0.213873 0.366935 +vt 0.225434 0.387097 +vt 0.213873 0.383065 +vt 0.213873 0.262097 +vt 0.225434 0.241935 +vt 0.225434 0.266129 +vt 0.213873 0.463710 +vt 0.225434 0.483871 +vt 0.213873 0.479839 +vt 0.213873 0.407258 +vt 0.225434 0.411290 +vt 0.213873 0.286290 +vt 0.225434 0.290323 +vt 0.213873 0.197581 +vt 0.225434 0.217742 +vt 0.213873 0.213710 +vt 0.213873 0.415323 +vt 0.225434 0.435484 +vt 0.213873 0.431452 +vt 0.213873 0.310484 +vt 0.225434 0.314516 +vt 0.213873 0.342742 +vt 0.225434 0.362903 +vt 0.213873 0.358871 +vt 0.213873 0.221774 +vt 0.213873 0.237903 +vt 0.213873 0.455645 +vt 0.225434 0.459677 +vt 0.213873 0.334677 +vt 0.225434 0.338710 +vt 0.092486 0.677419 +vt 0.254335 0.741935 +vt 0.092486 0.741935 +vt 0.092486 0.580645 +vt 0.254335 0.645161 +vt 0.092486 0.645161 +vt 0.092486 0.483871 +vt 0.254335 0.548387 +vt 0.092486 0.548387 +vt 0.000000 0.741935 +vt 0.023121 0.645161 +vt 0.277457 0.645161 +vt 0.346821 0.677419 +vt 0.323699 0.774194 +vt 0.092486 0.774194 +vt 0.254335 0.774194 +vt 0.092486 0.870968 +vt 0.254335 0.838710 +vt 0.254335 0.870968 +vt 0.092486 0.838710 +vt 0.676301 0.943548 +vt 0.682081 0.935484 +vt 0.684971 0.943548 +vt 0.658960 0.943548 +vt 0.664740 0.935484 +vt 0.667630 0.943548 +vt 0.650289 0.943548 +vt 0.658960 0.935484 +vt 0.641618 0.943548 +vt 0.635838 0.935484 +vt 0.638728 0.935484 +vt 0.693642 0.943548 +vt 0.687861 0.935484 +vt 0.690751 0.935484 +vt 0.670520 0.935484 +vt 0.673410 0.935484 +vt 0.647399 0.935484 +vt 0.632948 0.943548 +vt 0.627168 0.935484 +vt 0.630058 0.935484 +vt 0.739884 0.903226 +vt 0.745665 0.911290 +vt 0.736994 0.911290 +vt 0.760116 0.903226 +vt 0.754335 0.911290 +vt 0.757225 0.903226 +vt 0.705202 0.903226 +vt 0.710983 0.911290 +vt 0.702312 0.911290 +vt 0.722543 0.903226 +vt 0.728324 0.911290 +vt 0.719653 0.911290 +vt 0.731214 0.903226 +vt 0.751445 0.903226 +vt 0.748555 0.903226 +vt 0.699422 0.903226 +vt 0.693642 0.911290 +vt 0.696532 0.903226 +vt 0.716763 0.903226 +vt 0.713873 0.903226 +vt 0.699422 0.548387 +vt 0.294798 0.483871 +vt 0.699422 0.483871 +vt 0.699422 0.403226 +vt 0.294798 0.387097 +vt 0.699422 0.387097 +vt 0.294798 0.467742 +vt 0.699422 0.467742 +vt 0.832370 0.395161 +vt 0.803468 0.387097 +vt 0.838150 0.387097 +vt 0.838150 0.395161 +vt 0.815029 0.435484 +vt 0.815029 0.395161 +vt 0.283237 0.483871 +vt 0.283237 0.483871 +vt 0.271676 0.467742 +vt 0.283237 0.467742 +vt 0.294798 0.403226 +vt 0.283237 0.387097 +vt 0.283237 0.403226 +vt 0.271676 0.403226 +vt 0.271676 0.387097 +vt 0.283237 0.387097 +vt 0.283237 0.548387 +vt 0.271676 0.483871 +vt 0.907514 0.370968 +vt 0.872832 0.387097 +vt 0.872832 0.370968 +vt 0.803468 0.370968 +vt 0.768786 0.387097 +vt 0.768786 0.370968 +vt 0.838150 0.370968 +vt 0.867052 0.395161 +vt 0.901734 0.395161 +vt 0.907514 0.387097 +vt 0.797688 0.395161 +vt 0.815029 0.467742 +vt 0.838150 0.435484 +vt 0.838150 0.467742 +vt 0.791907 0.395161 +vt 0.768786 0.459677 +vt 0.768786 0.395161 +vt 0.791907 0.459677 +vt 0.861272 0.395161 +vt 0.768786 0.500000 +vt 0.838150 0.491935 +vt 0.838150 0.500000 +vt 0.768786 0.548387 +vt 0.838150 0.524194 +vt 0.838150 0.548387 +vt 0.768786 0.524194 +vt 0.838150 0.508065 +vt 0.809249 0.596774 +vt 0.786127 0.564516 +vt 0.809249 0.564516 +vt 0.786127 0.653226 +vt 0.809249 0.620968 +vt 0.809249 0.653226 +vt 0.786127 0.620968 +vt 0.786127 0.596774 +vt 0.809249 0.548387 +vt 0.774566 0.564516 +vt 0.820809 0.564516 +vt 0.826590 0.596774 +vt 0.768786 0.508065 +vt 0.838150 0.483871 +vt 0.768786 0.491935 +vt 0.768786 0.483871 +vt 0.838150 0.467742 +vt 1.000000 0.330645 +vt 0.994220 0.310484 +vt 1.000000 0.314516 +vt 1.000000 0.350806 +vt 0.994220 0.330645 +vt 1.000000 0.334677 +vt 1.000000 0.370968 +vt 0.994220 0.350806 +vt 1.000000 0.354839 +vt 1.000000 0.391129 +vt 0.994220 0.370968 +vt 1.000000 0.375000 +vt 1.000000 0.411290 +vt 0.994220 0.391129 +vt 1.000000 0.395161 +vt 1.000000 0.431452 +vt 0.994220 0.411290 +vt 1.000000 0.415323 +vt 1.000000 0.435484 +vt 0.994220 0.451613 +vt 0.994220 0.431452 +vt 1.000000 0.455645 +vt 0.994220 0.471774 +vt 1.000000 0.475806 +vt 0.994220 0.491935 +vt 1.000000 0.270161 +vt 0.994220 0.250000 +vt 1.000000 0.254032 +vt 1.000000 0.274194 +vt 0.994220 0.290323 +vt 0.994220 0.270161 +vt 1.000000 0.310484 +vt 1.000000 0.294355 +vt 0.971098 0.310484 +vt 0.965318 0.330645 +vt 0.965318 0.314516 +vt 0.971098 0.330645 +vt 0.965318 0.350806 +vt 0.965318 0.334677 +vt 0.971098 0.350806 +vt 0.965318 0.370968 +vt 0.965318 0.354839 +vt 0.971098 0.370968 +vt 0.965318 0.391129 +vt 0.965318 0.375000 +vt 0.971098 0.391129 +vt 0.965318 0.411290 +vt 0.965318 0.395161 +vt 0.971098 0.411290 +vt 0.965318 0.431452 +vt 0.965318 0.415323 +vt 0.965318 0.435484 +vt 0.971098 0.451613 +vt 0.965318 0.451613 +vt 0.965318 0.455645 +vt 0.971098 0.471774 +vt 0.965318 0.471774 +vt 0.965318 0.475806 +vt 0.971098 0.491935 +vt 0.965318 0.491935 +vt 0.971098 0.250000 +vt 0.965318 0.270161 +vt 0.965318 0.254032 +vt 0.965318 0.274194 +vt 0.971098 0.290323 +vt 0.965318 0.290323 +vt 0.965318 0.310484 +vt 0.965318 0.294355 +vt 0.890173 0.895161 +vt 0.797688 0.879032 +vt 0.890173 0.879032 +vt 0.786127 0.854839 +vt 0.797688 0.854839 +vt 0.927746 0.870968 +vt 0.904624 0.854839 +vt 0.927746 0.854839 +vt 0.927746 0.887097 +vt 0.904624 0.870968 +vt 0.927746 0.919355 +vt 0.904624 0.903226 +vt 0.927746 0.903226 +vt 0.890173 0.911290 +vt 0.797688 0.903226 +vt 0.890173 0.903226 +vt 0.797688 0.911290 +vt 0.890173 0.915323 +vt 0.797688 0.919355 +vt 0.893064 0.875000 +vt 0.890173 0.854839 +vt 0.893064 0.858871 +vt 0.462428 0.959677 +vt 0.450867 0.951613 +vt 0.462428 0.951613 +vt 0.450867 0.983871 +vt 0.445087 0.983871 +vt 0.450867 0.975806 +vt 0.797688 0.895161 +vt 0.890173 0.899194 +vt 0.893064 0.915323 +vt 0.901734 0.854839 +vt 0.904624 0.858871 +vt 0.901734 0.879032 +vt 0.904624 0.875000 +vt 0.890173 0.935484 +vt 0.890173 0.919355 +vt 0.462428 0.983871 +vt 0.462428 0.975806 +vt 0.450867 0.959677 +vt 0.450867 0.935484 +vt 0.462428 0.935484 +vt 0.445087 0.983871 +vt 0.352601 0.975806 +vt 0.445087 0.975806 +vt 0.445087 0.951613 +vt 0.346821 0.959677 +vt 0.346821 0.975806 +vt 0.445087 0.951613 +vt 0.352601 0.959677 +vt 0.346821 0.951613 +vt 0.346821 0.935484 +vt 0.445087 0.935484 +vt 0.445087 0.959677 +vt 0.930636 0.129032 +vt 0.927746 0.153226 +vt 0.927746 0.129032 +vt 0.965329 0.016129 +vt 0.976879 0.000015 +vt 0.988428 0.016129 +vt 0.959538 0.056452 +vt 0.962428 0.080645 +vt 0.959538 0.080645 +vt 0.979769 0.084677 +vt 0.962428 0.088710 +vt 0.956647 0.491935 +vt 0.973988 0.556452 +vt 0.956647 0.556452 +vt 0.930636 0.556452 +vt 0.947977 0.491935 +vt 0.947977 0.556452 +vt 0.959538 0.088710 +vt 0.930636 0.225806 +vt 0.927746 0.201613 +vt 0.930636 0.201613 +vt 0.962428 0.112903 +vt 0.959538 0.112903 +vt 0.930636 0.177419 +vt 0.930636 0.153226 +vt 0.973988 0.491935 +vt 0.982659 0.556452 +vt 0.930636 0.080645 +vt 0.927746 0.056452 +vt 0.930636 0.056452 +vt 0.930636 0.104839 +vt 0.927746 0.104839 +vt 0.927746 0.177419 +vt 0.930636 0.250000 +vt 0.927746 0.225806 +vt 0.927746 0.080645 +vt 0.945086 0.000034 +vt 0.959375 0.008291 +vt 0.965293 0.028226 +vt 0.722543 0.463710 +vt 0.734104 0.427419 +vt 0.734104 0.467742 +vt 0.722543 0.504032 +vt 0.734104 0.508065 +vt 0.722543 0.544355 +vt 0.734104 0.548387 +vt 0.722543 0.584677 +vt 0.734104 0.588710 +vt 0.722543 0.625000 +vt 0.734104 0.629032 +vt 0.722543 0.665323 +vt 0.734104 0.669355 +vt 0.722543 0.705645 +vt 0.734104 0.709677 +vt 0.708338 0.725837 +vt 0.748309 0.725837 +vt 0.728324 0.774132 +vt 0.757225 0.387097 +vt 0.734104 0.370968 +vt 0.757225 0.370968 +vt 0.768786 0.705645 +vt 0.757225 0.669355 +vt 0.768786 0.673387 +vt 0.722543 0.423387 +vt 0.734104 0.387097 +vt 0.734104 0.427419 +vt 0.768786 0.665323 +vt 0.757225 0.629032 +vt 0.768786 0.633065 +vt 0.768786 0.423387 +vt 0.768786 0.391129 +vt 0.768786 0.463710 +vt 0.757225 0.427419 +vt 0.768786 0.431452 +vt 0.768786 0.504032 +vt 0.757225 0.467742 +vt 0.768786 0.471774 +vt 0.768786 0.625000 +vt 0.757225 0.588710 +vt 0.768786 0.592742 +vt 0.768786 0.544355 +vt 0.757225 0.508065 +vt 0.768786 0.512097 +vt 0.768786 0.584677 +vt 0.757225 0.548387 +vt 0.768786 0.552419 +vt 0.768786 0.584677 +vt 0.757225 0.548387 +vt 0.768786 0.552419 +vt 0.768786 0.625000 +vt 0.757225 0.588710 +vt 0.768786 0.592742 +vt 0.768786 0.665323 +vt 0.757225 0.629032 +vt 0.768786 0.633065 +vt 0.768786 0.705645 +vt 0.757225 0.669355 +vt 0.768786 0.673387 +vt 0.768786 0.544355 +vt 0.757225 0.508065 +vt 0.768786 0.512097 +vt 0.722543 0.705645 +vt 0.734104 0.669355 +vt 0.734104 0.709677 +vt 0.768786 0.504032 +vt 0.757225 0.467742 +vt 0.768786 0.471774 +vt 0.768786 0.463710 +vt 0.757225 0.427419 +vt 0.768786 0.431452 +vt 0.722543 0.665323 +vt 0.734104 0.629032 +vt 0.768786 0.423387 +vt 0.757225 0.387097 +vt 0.768786 0.391129 +vt 0.722543 0.423387 +vt 0.734104 0.387097 +vt 0.734104 0.370968 +vt 0.757225 0.370968 +vt 0.722543 0.625000 +vt 0.734104 0.588710 +vt 0.722543 0.584677 +vt 0.734104 0.548387 +vt 0.722543 0.544355 +vt 0.734104 0.508065 +vt 0.748309 0.790353 +vt 0.748309 0.822550 +vt 0.708338 0.822550 +vt 0.722543 0.504032 +vt 0.734104 0.467742 +vt 0.722543 0.463710 +vt 0.884393 0.500000 +vt 0.861272 0.459677 +vt 0.884393 0.459677 +vt 0.930636 0.500000 +vt 0.907514 0.459677 +vt 0.930636 0.459677 +vt 0.907514 0.500000 +vt 0.861272 0.500000 +vt 0.838150 0.459677 +vt 0.826390 0.685484 +vt 0.803468 0.717463 +vt 0.780547 0.685484 +vt 0.965318 0.612903 +vt 0.982659 0.588710 +vt 0.982659 0.612903 +vt 0.965318 0.612903 +vt 0.982659 0.588710 +vt 0.982659 0.612903 +vt 0.947977 0.588710 +vt 0.965318 0.556452 +vt 0.965318 0.588710 +vt 1.000000 0.556452 +vt 1.000000 0.588710 +vt 0.982659 0.556452 +vt 0.930636 0.588710 +vt 0.947977 0.556452 +vt 0.947977 0.588710 +vt 0.965318 0.556452 +vt 0.965318 0.588710 +vt 1.000000 0.556452 +vt 1.000000 0.588710 +vt 0.982659 0.556452 +vt 0.930636 0.588710 +vt 0.947977 0.556452 +vt 0.953757 0.653226 +vt 0.965318 0.637097 +vt 0.965318 0.653226 +vt 0.953757 0.653226 +vt 0.965318 0.637097 +vt 0.965318 0.653226 +vt 0.953757 0.612903 +vt 0.942197 0.637097 +vt 0.942197 0.612903 +vt 0.976879 0.612903 +vt 0.965318 0.612903 +vt 0.953757 0.637097 +vt 0.930636 0.637097 +vt 0.930636 0.612903 +vt 0.953757 0.612903 +vt 0.942197 0.637097 +vt 0.942197 0.612903 +vt 0.976879 0.612903 +vt 0.965318 0.612903 +vt 0.953757 0.637097 +vt 0.930636 0.637097 +vt 0.930636 0.612903 +vt 0.566474 0.370968 +vt 0.520231 0.145161 +vt 0.635838 0.338710 +vt 0.647399 0.338710 +vt 0.763006 0.145161 +vt 0.716763 0.370968 +vt 0.635838 0.145161 +vt 0.520231 0.370968 +vt 0.508671 0.145161 +vt 0.635838 0.370968 +vt 0.566474 0.387097 +vt 0.346821 0.145161 +vt 0.358382 0.016129 +vt 0.358382 0.145161 +vt 0.520231 0.387097 +vt 0.473988 0.145161 +vt 0.427746 0.370968 +vt 0.358382 0.338710 +vt 0.855491 0.370968 +vt 0.809249 0.370968 +vt 0.809249 0.145161 +vt 0.485549 0.370968 +vt 0.473988 0.370968 +vt 0.427746 0.387097 +vt 0.404624 0.016129 +vt 0.358382 0.387097 +vt 0.358382 0.370968 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.589595 -0.000000 +vt 0.589595 0.016129 +vt 0.647399 0.016129 +vt 0.647399 0.145161 +vt 0.693642 0.016129 +vt 0.965318 0.330645 +vt 0.959538 0.310484 +vt 0.965318 0.314516 +vt 0.965318 0.350806 +vt 0.959538 0.330645 +vt 0.965318 0.334677 +vt 0.965318 0.370968 +vt 0.959538 0.350806 +vt 0.965318 0.354839 +vt 0.965318 0.391129 +vt 0.959538 0.370968 +vt 0.965318 0.375000 +vt 0.965318 0.411290 +vt 0.959538 0.391129 +vt 0.965318 0.395161 +vt 0.965318 0.431452 +vt 0.959538 0.411290 +vt 0.965318 0.415323 +vt 0.965318 0.435484 +vt 0.959538 0.451613 +vt 0.959538 0.431452 +vt 0.965318 0.455645 +vt 0.959538 0.471774 +vt 0.965318 0.475806 +vt 0.959538 0.491935 +vt 0.965318 0.270161 +vt 0.959538 0.250000 +vt 0.965318 0.254032 +vt 0.965318 0.274194 +vt 0.959538 0.290323 +vt 0.959538 0.270161 +vt 0.965318 0.310484 +vt 0.965318 0.294355 +vt 0.936416 0.310484 +vt 0.930636 0.330645 +vt 0.930636 0.314516 +vt 0.936416 0.330645 +vt 0.930636 0.350806 +vt 0.930636 0.334677 +vt 0.936416 0.350806 +vt 0.930636 0.370968 +vt 0.930636 0.354839 +vt 0.936416 0.370968 +vt 0.930636 0.391129 +vt 0.930636 0.375000 +vt 0.936416 0.391129 +vt 0.930636 0.411290 +vt 0.930636 0.395161 +vt 0.936416 0.411290 +vt 0.930636 0.431452 +vt 0.930636 0.415323 +vt 0.930636 0.435484 +vt 0.936416 0.451613 +vt 0.930636 0.451613 +vt 0.930636 0.455645 +vt 0.936416 0.471774 +vt 0.930636 0.471774 +vt 0.930636 0.475806 +vt 0.936416 0.491935 +vt 0.930636 0.491935 +vt 0.936416 0.250000 +vt 0.930636 0.270161 +vt 0.930636 0.254032 +vt 0.930636 0.274194 +vt 0.936416 0.290323 +vt 0.930636 0.290323 +vt 0.930636 0.310484 +vt 0.930636 0.294355 +vt 0.046243 0.330645 +vt 0.046243 0.379032 +vt 0.052023 0.262097 +vt 0.046243 0.475806 +vt 0.046243 0.403226 +vt 0.046243 0.282258 +vt 0.052023 0.213710 +vt 0.046243 0.427419 +vt 0.046243 0.306452 +vt 0.046243 0.354839 +vt 0.046243 0.233871 +vt 0.052023 0.455645 +vt 0.017341 0.532012 +vt 0.008759 0.528803 +vt 0.002476 0.520038 +vt 0.000177 0.508065 +vt 0.008759 0.487326 +vt 0.025923 0.487326 +vt 0.034506 0.508065 +vt 0.032206 0.520038 +vt 0.025923 0.528803 +vt 0.132948 0.338710 +vt 0.132948 0.411290 +vt 0.132948 0.459677 +vt 0.213873 0.294355 +vt 0.213873 0.318548 +vt 0.213873 0.358871 +vt 0.213873 0.383065 +vt 0.213873 0.391129 +vt 0.213873 0.431452 +vt 0.213873 0.439516 +vt 0.213873 0.479839 +vt 0.213873 0.213710 +vt 0.213873 0.237903 +vt 0.213873 0.245968 +vt 0.213873 0.270161 +vt 0.213873 0.245968 +vt 0.213873 0.391129 +vt 0.213873 0.270161 +vt 0.225434 0.193548 +vt 0.213873 0.294355 +vt 0.213873 0.439516 +vt 0.213873 0.318548 +vt 0.254335 0.677419 +vt 0.254335 0.580645 +vt 0.254335 0.483871 +vt 0.069364 0.774194 +vt 0.023121 0.774194 +vt 0.000000 0.677419 +vt 0.069364 0.645161 +vt 0.277457 0.774194 +vt 0.323699 0.645161 +vt 0.346821 0.741935 +vt 0.679191 0.935484 +vt 0.661850 0.935484 +vt 0.653179 0.935484 +vt 0.644509 0.935484 +vt 0.624277 0.943548 +vt 0.742775 0.903226 +vt 0.763006 0.911290 +vt 0.708093 0.903226 +vt 0.725434 0.903226 +vt 0.734104 0.903226 +vt 0.294798 0.548387 +vt 0.809249 0.395161 +vt 0.271676 0.548387 +vt 0.843931 0.395161 +vt 0.878613 0.395161 +vt 0.774566 0.395161 +vt 0.861272 0.459677 +vt 0.786127 0.548387 +vt 0.768786 0.596774 +vt 0.768786 0.467742 +vt 1.000000 0.451613 +vt 1.000000 0.471774 +vt 1.000000 0.491935 +vt 1.000000 0.290323 +vt 0.971098 0.431452 +vt 0.971098 0.270161 +vt 0.786127 0.879032 +vt 0.780347 0.870968 +vt 0.780347 0.862903 +vt 0.904624 0.887097 +vt 0.904624 0.919355 +vt 0.893064 0.899194 +vt 0.797688 0.935484 +vt 0.346821 0.983871 +vt 0.976879 0.032243 +vt 0.968712 0.027523 +vt 0.968712 0.004735 +vt 0.985046 0.004735 +vt 0.985046 0.027523 +vt 0.962428 0.056452 +vt 0.930636 0.491935 +vt 0.982659 0.491935 +vt 0.927746 0.250000 +vt 0.959375 0.048160 +vt 0.945086 0.056418 +vt 0.930798 0.048160 +vt 0.924880 0.028226 +vt 0.930798 0.008291 +vt 0.722543 0.431452 +vt 0.722543 0.471774 +vt 0.722543 0.512097 +vt 0.722543 0.552419 +vt 0.722543 0.592742 +vt 0.722543 0.633065 +vt 0.722543 0.673387 +vt 0.716785 0.769818 +vt 0.708338 0.758034 +vt 0.705247 0.741936 +vt 0.716785 0.714053 +vt 0.728324 0.709739 +vt 0.739862 0.714053 +vt 0.751401 0.741935 +vt 0.748309 0.758034 +vt 0.739862 0.769819 +vt 0.757225 0.709677 +vt 0.722543 0.391129 +vt 0.757225 0.709677 +vt 0.722543 0.673387 +vt 0.722543 0.633065 +vt 0.722543 0.391129 +vt 0.722543 0.592742 +vt 0.722543 0.552419 +vt 0.722543 0.512097 +vt 0.739862 0.834335 +vt 0.728324 0.838648 +vt 0.716785 0.834335 +vt 0.705246 0.806452 +vt 0.708338 0.790353 +vt 0.716785 0.778569 +vt 0.728324 0.774255 +vt 0.739862 0.778569 +vt 0.751401 0.806452 +vt 0.722543 0.471774 +vt 0.722543 0.431452 +vt 0.838150 0.500000 +vt 0.819676 0.708097 +vt 0.787260 0.708097 +vt 0.787260 0.662871 +vt 0.803468 0.653505 +vt 0.819676 0.662871 +vt 0.930636 0.556452 +vt 0.930636 0.556452 +vt 0.976879 0.637097 +vt 0.976879 0.637097 +vt 0.763006 0.370968 +vt 0.508671 0.370968 +vt 0.635838 0.387097 +vt 0.346821 0.016129 +vt 0.924855 0.145161 +vt 0.924855 0.338710 +vt 0.485549 0.145161 +vt 0.346821 0.338710 +vt 0.473988 0.387097 +vt 0.976879 0.653226 +vt 0.976879 0.653226 +vt 0.976879 0.653226 +vt 0.404624 0.000000 +vt 0.635838 0.016129 +vt 0.878613 0.016129 +vt 0.965318 0.451613 +vt 0.965318 0.471774 +vt 0.965318 0.491935 +vt 0.965318 0.290323 +vt 0.936416 0.431452 +vt 0.936416 0.270161 +vt 0.109827 0.314516 +vt 0.109827 0.338710 +vt 0.109827 0.362903 +vt 0.109827 0.387097 +vt 0.109827 0.411290 +vt 0.109827 0.459677 +vt 0.109827 0.483871 +vt 0.109827 0.193548 +vt 0.109827 0.217742 +vt 0.109827 0.241935 +vt 0.109827 0.290323 +vt 0.109827 0.435484 +vt 0.109827 0.266129 +vt 0.000000 0.270161 +vt 0.000000 0.197581 +vt 0.000000 0.415323 +vt 0.000000 0.294355 +vt 0.000000 0.342742 +vt 0.000000 0.221774 +vt 0.000000 0.439516 +vt 0.000000 0.318548 +vt 0.000000 0.366935 +vt 0.000000 0.245968 +vt 0.000000 0.463710 +vt 0.000000 0.391129 +vt -0.000000 0.032258 +vt 0.346821 0.048387 +vt -0.000000 0.048387 +vt -0.000000 0.177419 +vt 0.346821 0.193548 +vt -0.000000 0.193548 +vt -0.000000 0.129032 +vt 0.346821 0.145161 +vt -0.000000 0.145161 +vt 0.346821 0.064516 +vt -0.000000 0.064516 +vt -0.000000 -0.000000 +vt 0.346821 0.016129 +vt -0.000000 0.016129 +vt 0.346821 0.161290 +vt -0.000000 0.161290 +vt 0.346821 0.080645 +vt -0.000000 0.080645 +vt -0.000000 0.096774 +vt 0.346821 0.112903 +vt -0.000000 0.112903 +vt 0.346821 0.032258 +vt 0.346821 0.177419 +vt 0.346821 0.096774 +vt 0.346821 0.129032 +vt 0.271676 0.338710 +vt 0.271676 0.387097 +vt 0.271676 0.266129 +vt 0.271676 0.483871 +vt 0.271676 0.411290 +vt 0.271676 0.290323 +vt 0.271676 0.217742 +vt 0.271676 0.435484 +vt 0.271676 0.314516 +vt 0.271676 0.362903 +vt 0.271676 0.241935 +vt 0.271676 0.459677 +vt 0.650289 0.959677 +vt 0.641618 0.959677 +vt 0.632948 0.959677 +vt 0.624277 0.959677 +vt 0.684971 0.959677 +vt 0.676301 0.959677 +vt 0.667630 0.959677 +vt 0.658960 0.959677 +vt 0.693642 0.959677 +vt 0.624277 0.983871 +vt 0.612717 0.975806 +vt 0.624277 0.975806 +vt 0.624277 1.000000 +vt 0.612717 0.991935 +vt 0.624277 0.991935 +vt 0.624277 0.951613 +vt 0.612717 0.943548 +vt 0.624277 0.943548 +vt 0.624277 0.967742 +vt 0.612717 0.959677 +vt 0.624277 0.959677 +vt 0.612717 0.967742 +vt 0.612717 0.983871 +vt 0.612717 0.935484 +vt 0.624277 0.935484 +vt 0.612717 0.951613 +vt 0.606936 0.943548 +vt 0.601156 0.935484 +vt 0.604046 0.935484 +vt 0.601156 0.951613 +vt 0.609827 0.951613 +vt 0.601156 0.983871 +vt 0.601156 0.975806 +vt 0.606936 0.991935 +vt 0.601156 1.000000 +vt 0.601156 0.991935 +vt 0.601156 0.943548 +vt 0.601156 0.967742 +vt 0.601156 0.959677 +vt 0.609827 0.983871 +vt 0.589595 0.967742 +vt 0.592486 0.983871 +vt 0.595376 0.943548 +vt 0.598266 0.935484 +vt 0.592486 0.951613 +vt 0.589595 0.975806 +vt 0.595376 0.991935 +vt 0.589595 0.959677 +vt 0.589595 1.000000 +vt 0.497110 0.991935 +vt 0.589595 0.991935 +vt 0.589595 0.951613 +vt 0.497110 0.943548 +vt 0.589595 0.943548 +vt 0.497110 0.959677 +vt 0.497110 0.967742 +vt 0.497110 0.983871 +vt 0.589595 0.983871 +vt 0.497110 0.935484 +vt 0.589595 0.935484 +vt 0.497110 0.951613 +vt 0.497110 0.975806 +vt 0.485549 0.983871 +vt 0.485549 0.975806 +vt 0.491329 0.991935 +vt 0.485549 1.000000 +vt 0.485549 0.991935 +vt 0.494220 0.951613 +vt 0.485549 0.943548 +vt 0.491329 0.943548 +vt 0.485549 0.967742 +vt 0.485549 0.959677 +vt 0.494220 0.983871 +vt 0.488439 0.935484 +vt 0.485549 0.935484 +vt 0.485549 0.951613 +vt 0.479769 0.991935 +vt 0.476879 0.983871 +vt 0.479769 0.943548 +vt 0.482659 0.935484 +vt 0.473988 0.959677 +vt 0.476879 0.951613 +vt 0.473988 0.975806 +vt 0.473988 0.967742 +vt 0.462428 0.967742 +vt 0.462428 0.959677 +vt 0.473988 0.983871 +vt 0.462428 0.991935 +vt 0.462428 0.983871 +vt 0.473988 0.935484 +vt 0.462428 0.943548 +vt 0.462428 0.935484 +vt 0.473988 0.951613 +vt 0.462428 0.951613 +vt 0.462428 0.975806 +vt 0.473988 1.000000 +vt 0.473988 0.991935 +vt 0.473988 0.943548 +vt 0.719653 0.943548 +vt 0.713873 0.943548 +vt 0.739884 0.943548 +vt 0.757225 0.943548 +vt 0.705202 0.943548 +vt 0.728324 0.943548 +vt 0.722543 0.943548 +vt 0.731214 0.943548 +vt 0.754335 0.943548 +vt 0.748555 0.943548 +vt 0.702312 0.943548 +vt 0.696532 0.943548 +vt 0.346821 0.879032 +vt -0.000000 0.870968 +vt 0.346821 0.870968 +vt 0.346821 0.911290 +vt -0.000000 0.903226 +vt 0.346821 0.903226 +vt 0.346821 0.887097 +vt -0.000000 0.879032 +vt 0.346821 0.919355 +vt -0.000000 0.911290 +vt -0.000000 0.895161 +vt 0.346821 0.895161 +vt -0.000000 0.887097 +vt 0.346821 0.927419 +vt 0.000000 0.919355 +vt 0.346821 0.919355 +vt 0.346821 0.959677 +vt 0.000000 0.951613 +vt 0.346821 0.951613 +vt 0.346821 0.935484 +vt 0.000000 0.927419 +vt 0.346821 0.967742 +vt 0.000000 0.959677 +vt 0.000000 0.943548 +vt 0.346821 0.943548 +vt 0.000000 0.935484 +vt 0.942197 0.080645 +vt 0.959538 0.060484 +vt 0.959538 0.072581 +vt 0.942197 0.153226 +vt 0.942197 0.177419 +vt 0.942197 0.225806 +vt 0.942197 0.129032 +vt 0.942197 0.201613 +vt 0.942197 0.250000 +vt 0.942197 0.104839 +vt 0.959538 0.120968 +vt 0.959538 0.193548 +vt 0.959538 0.241935 +vt 0.959538 0.084677 +vt 0.959538 0.096774 +vt 0.959538 0.145161 +vt 0.959538 0.169355 +vt 0.959538 0.217742 +vt 0.924855 0.201613 +vt 0.924855 0.056452 +vt 0.924855 0.104839 +vt 0.924855 0.177419 +vt 0.924855 0.225806 +vt 0.924855 0.080645 +vt 0.924855 0.129032 +vt 0.924855 0.153226 +vt 0.346821 0.604839 +vt 0.369942 0.580645 +vt 0.369942 0.612903 +vt 0.393064 0.741935 +vt 0.369942 0.709677 +vt 0.393064 0.709677 +vt 0.624277 0.709677 +vt 0.624277 0.741935 +vt 0.369942 0.645161 +vt 0.346821 0.620968 +vt 0.393064 0.774194 +vt 0.369942 0.806452 +vt 0.369942 0.774194 +vt 0.624277 0.677419 +vt 0.367052 0.935484 +vt 0.346821 0.911290 +vt 0.369942 0.903226 +vt 0.369942 0.741935 +vt 0.393064 0.677419 +vt 0.624277 0.645161 +vt 0.346821 0.895161 +vt 0.369942 0.870968 +vt 0.369942 0.677419 +vt 0.393064 0.645161 +vt 0.624277 0.612903 +vt 0.346821 0.862903 +vt 0.369942 0.838710 +vt 0.393064 0.612903 +vt 0.624277 0.580645 +vt 0.346821 0.814516 +vt 0.393064 0.580645 +vt 0.369942 0.548387 +vt 0.393064 0.548387 +vt 0.624277 0.548387 +vt 0.346821 0.782258 +vt 0.393064 0.903226 +vt 0.393064 0.870968 +vt 0.393064 0.935484 +vt 0.624277 0.903226 +vt 0.624277 0.935484 +vt 0.346821 0.750000 +vt 0.393064 0.838710 +vt 0.393064 0.806452 +vt 0.624277 0.870968 +vt 0.346821 0.733871 +vt 0.624277 0.838710 +vt 0.346821 0.685484 +vt 0.624277 0.806452 +vt 0.346821 0.669355 +vt 0.624277 0.774194 +vt 0.346821 0.572581 +vt 0.647399 0.612903 +vt 0.647399 0.645161 +vt 0.343702 0.564533 +vt 0.343702 0.596757 +vt 0.303697 0.596757 +vt 0.670520 0.669355 +vt 0.647399 0.677419 +vt 0.647399 0.709677 +vt 0.647399 0.741935 +vt 0.647399 0.774194 +vt 0.647399 0.806452 +vt 0.647399 0.838710 +vt 0.647399 0.870968 +vt 0.647399 0.935484 +vt 0.647399 0.903226 +vt 0.647399 0.580645 +vt 0.303697 0.790340 +vt 0.343702 0.790340 +vt 0.323699 0.838676 +vt 0.670520 0.685484 +vt 0.670520 0.701613 +vt 0.670520 0.733871 +vt 0.670520 0.750000 +vt 0.670520 0.766129 +vt 0.670520 0.798387 +vt 0.670520 0.830645 +vt 0.670520 0.846774 +vt 0.670520 0.862903 +vt 0.670520 0.895161 +vt 0.670520 0.911290 +vt 0.670520 0.927419 +vt 0.670520 0.556452 +vt 0.670520 0.572581 +vt 0.670520 0.604839 +vt 0.670520 0.637097 +vt 0.699422 0.471774 +vt 0.699422 0.504032 +vt 0.699422 0.633065 +vt 0.699422 0.665323 +vt 0.699422 0.512097 +vt 0.699422 0.544355 +vt 0.699422 0.391129 +vt 0.699422 0.423387 +vt 0.699422 0.673387 +vt 0.699422 0.705645 +vt 0.699422 0.552419 +vt 0.699422 0.584677 +vt 0.699422 0.431452 +vt 0.699422 0.463710 +vt 0.699422 0.592742 +vt 0.699422 0.625000 +vt 0.699422 0.592742 +vt 0.699422 0.625000 +vt 0.699422 0.431452 +vt 0.699422 0.463710 +vt 0.699422 0.552419 +vt 0.699422 0.584677 +vt 0.699422 0.673387 +vt 0.699422 0.705645 +vt 0.699422 0.391129 +vt 0.699422 0.423387 +vt 0.699422 0.512097 +vt 0.699422 0.544355 +vt 0.699422 0.633065 +vt 0.699422 0.665323 +vt 0.699422 0.471774 +vt 0.699422 0.504032 +vt 0.670520 0.887097 +vt 0.705202 0.903226 +vt 0.670520 0.903226 +vt 0.670520 0.854839 +vt 0.705202 0.870968 +vt 0.670520 0.870968 +vt 0.670520 0.806452 +vt 0.705202 0.790323 +vt 0.705202 0.806452 +vt 0.670520 0.741935 +vt 0.705202 0.758065 +vt 0.670520 0.758065 +vt 0.670520 0.709677 +vt 0.705202 0.725806 +vt 0.670520 0.725806 +vt 0.670520 0.838710 +vt 0.705202 0.854839 +vt 0.670520 0.774194 +vt 0.705202 0.774194 +vt 0.705202 0.741935 +vt 0.670520 0.822581 +vt 0.705202 0.838710 +vt 0.705202 0.887097 +vt 0.670520 0.790323 +vt 0.705202 0.822581 +vt 0.849711 0.564516 +vt 0.838150 0.500000 +vt 0.849711 0.500000 +vt 0.872832 0.564516 +vt 0.861272 0.500000 +vt 0.872832 0.500000 +vt 0.895954 0.564516 +vt 0.884393 0.500000 +vt 0.895954 0.500000 +vt 0.919075 0.564516 +vt 0.907514 0.500000 +vt 0.919075 0.500000 +vt 0.861272 0.564516 +vt 0.884393 0.564516 +vt 0.907514 0.564516 +vt 0.930636 0.564516 +vt 0.930636 0.500000 +vt 0.919075 0.612903 +vt 0.907514 0.576613 +vt 0.919075 0.580645 +vt 0.861272 0.576613 +vt 0.849711 0.612903 +vt 0.849711 0.580645 +vt 0.884393 0.629032 +vt 0.872832 0.568548 +vt 0.907514 0.616935 +vt 0.895954 0.568548 +vt 0.930636 0.584677 +vt 0.838150 0.584677 +vt 0.861272 0.616935 +vt 0.861272 0.641129 +vt 0.849711 0.677419 +vt 0.849711 0.645161 +vt 0.872832 0.689516 +vt 0.872832 0.633065 +vt 0.907514 0.681452 +vt 0.895954 0.633065 +vt 0.907514 0.641129 +vt 0.930636 0.649194 +vt 0.919075 0.677419 +vt 0.919075 0.645161 +vt 0.838150 0.649194 +vt 0.861272 0.681452 +vt 0.895954 0.689516 +vt 0.919075 0.693548 +vt 0.907514 0.709677 +vt 0.907514 0.693548 +vt 0.861272 0.709677 +vt 0.849711 0.693548 +vt 0.861272 0.693548 +vt 0.884393 0.693548 +vt 0.872832 0.709677 +vt 0.872832 0.693548 +vt 0.895954 0.693548 +vt 0.930636 0.693548 +vt 0.919075 0.709677 +vt 0.849711 0.709677 +vt 0.838150 0.693548 +vt 0.895954 0.709677 +vt 0.895954 0.854839 +vt 0.884393 0.838710 +vt 0.895954 0.838710 +vt 0.872832 0.854839 +vt 0.861272 0.838710 +vt 0.872832 0.838710 +vt 0.849711 0.854839 +vt 0.838150 0.838710 +vt 0.849711 0.838710 +vt 0.930636 0.854839 +vt 0.919075 0.838710 +vt 0.930636 0.838710 +vt 0.907514 0.854839 +vt 0.907514 0.838710 +vt 0.861272 0.854839 +vt 0.849711 0.790323 +vt 0.838150 0.818548 +vt 0.838150 0.794355 +vt 0.872832 0.834677 +vt 0.861272 0.786290 +vt 0.872832 0.778226 +vt 0.895954 0.834677 +vt 0.884393 0.774194 +vt 0.895954 0.778226 +vt 0.919075 0.790323 +vt 0.907514 0.826613 +vt 0.907514 0.786290 +vt 0.861272 0.826613 +vt 0.930636 0.794355 +vt 0.919075 0.822581 +vt 0.930636 0.729839 +vt 0.919075 0.758065 +vt 0.919075 0.725806 +vt 0.907514 0.762097 +vt 0.895954 0.713710 +vt 0.907514 0.721774 +vt 0.884393 0.709677 +vt 0.872832 0.770161 +vt 0.872832 0.713710 +vt 0.861272 0.762097 +vt 0.849711 0.725806 +vt 0.861272 0.721774 +vt 0.895954 0.770161 +vt 0.849711 0.758065 +vt 0.838150 0.729839 +vt 0.780347 0.725806 +vt 0.768786 0.701613 +vt 0.780347 0.701613 +vt 0.780347 0.677419 +vt 0.768786 0.653226 +vt 0.780347 0.653226 +vt 0.780347 0.822581 +vt 0.768786 0.798387 +vt 0.780347 0.798387 +vt 0.780347 0.774194 +vt 0.768786 0.750000 +vt 0.780347 0.750000 +vt 0.768786 0.725806 +vt 0.768786 0.677419 +vt 0.780347 0.846774 +vt 0.768786 0.822581 +vt 0.768786 0.774194 +vt 0.277457 0.983871 +vt 0.346821 0.991935 +vt 0.277457 0.991935 +vt 0.346821 0.975806 +vt 0.346821 0.983871 +vt 0.277457 0.975806 +vt 0.346821 0.967742 +vt 0.346821 1.000000 +vt 0.277457 1.000000 +vt -0.000000 1.000000 +vt 0.069364 0.991935 +vt 0.069364 1.000000 +vt 0.138728 0.991935 +vt 0.138728 1.000000 +vt 0.208092 0.991935 +vt 0.208092 1.000000 +vt 0.000000 0.975806 +vt 0.069364 0.967742 +vt 0.069364 0.975806 +vt 0.138728 0.967742 +vt 0.138728 0.975806 +vt 0.208092 0.967742 +vt 0.208092 0.975806 +vt 0.277457 0.967742 +vt 0.069364 0.983871 +vt 0.000000 0.983871 +vt 0.138728 0.983871 +vt 0.208092 0.983871 +vt -0.000000 0.991935 +vt 0.725434 0.951613 +vt 0.736994 0.943548 +vt 0.734104 0.951613 +vt 0.745665 0.943548 +vt 0.742775 0.951613 +vt 0.751445 0.951613 +vt 0.763006 0.943548 +vt 0.760116 0.951613 +vt 0.699422 0.951613 +vt 0.710983 0.943548 +vt 0.708093 0.951613 +vt 0.716763 0.951613 +vt 0.000000 0.282258 +vt 0.000000 0.209677 +vt 0.000000 0.427419 +vt 0.000000 0.306452 +vt 0.000000 0.354839 +vt 0.000000 0.233871 +vt 0.000000 0.451613 +vt 0.000000 0.330645 +vt 0.000000 0.379032 +vt 0.000000 0.258065 +vt 0.000000 0.475806 +vt 0.000000 0.403226 +vt 0.346821 -0.000000 +vt 0.271676 0.193548 +vt 0.612717 1.000000 +vt 0.604046 1.000000 +vt 0.598266 1.000000 +vt 0.497110 1.000000 +vt 0.488439 1.000000 +vt 0.482659 1.000000 +vt 0.462428 1.000000 +vt -0.000000 0.919355 +vt 0.000000 0.967742 +vt 0.942197 0.056452 +vt 0.959538 0.108871 +vt 0.959538 0.181452 +vt 0.959538 0.229839 +vt 0.959538 0.133065 +vt 0.959538 0.157258 +vt 0.959538 0.205645 +vt 0.924855 0.250000 +vt 0.346821 0.588710 +vt 0.346821 0.637097 +vt 0.346821 0.927419 +vt 0.346821 0.879032 +vt 0.346821 0.846774 +vt 0.346821 0.830645 +vt 0.346821 0.798387 +vt 0.346821 0.766129 +vt 0.346821 0.717742 +vt 0.346821 0.701613 +vt 0.346821 0.653226 +vt 0.346821 0.556452 +vt 0.335248 0.608552 +vt 0.323699 0.612869 +vt 0.312151 0.608552 +vt 0.300602 0.580645 +vt 0.303697 0.564533 +vt 0.312151 0.552738 +vt 0.323699 0.548421 +vt 0.335248 0.552738 +vt 0.346796 0.580645 +vt 0.670520 0.653226 +vt 0.647399 0.548387 +vt 0.312151 0.834358 +vt 0.303697 0.822564 +vt 0.300602 0.806452 +vt 0.312151 0.778545 +vt 0.323699 0.774227 +vt 0.335248 0.778545 +vt 0.346796 0.806452 +vt 0.343702 0.822564 +vt 0.335248 0.834358 +vt 0.670520 0.717742 +vt 0.670520 0.782258 +vt 0.670520 0.814516 +vt 0.670520 0.879032 +vt 0.670520 0.588710 +vt 0.670520 0.620968 +vt 0.705202 0.709677 +vt 0.838150 0.564516 +vt 0.872832 0.625000 +vt 0.895954 0.625000 +vt 0.930636 0.608871 +vt 0.838150 0.608871 +vt 0.930636 0.673387 +vt 0.838150 0.673387 +vt 0.930636 0.709677 +vt 0.838150 0.709677 +vt 0.884393 0.854839 +vt 0.838150 0.854839 +vt 0.919075 0.854839 +vt 0.849711 0.822581 +vt 0.930636 0.818548 +vt 0.930636 0.754032 +vt 0.838150 0.754032 +vt 0.768786 0.846774 +vt -0.000000 0.967742 +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.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.8000 -0.6000 +vn 0.0000 -0.2425 0.9701 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9864 0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.3219 0.9468 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.4903 0.8492 0.1961 +vn -0.0000 0.9806 0.1961 +vn -0.4903 0.8492 0.1961 +vn -0.8492 0.4903 0.1961 +vn -0.9806 -0.0000 0.1961 +vn -0.8492 -0.4903 0.1961 +vn -0.4903 -0.8492 0.1961 +vn -0.0000 -0.9806 0.1961 +vn 0.4903 -0.8492 0.1961 +vn 0.8492 -0.4903 0.1961 +vn 0.9806 -0.0000 0.1961 +vn 0.8492 0.4903 0.1961 +vn 0.6124 0.3536 -0.7071 +vn 0.3536 0.6124 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.3536 0.6124 -0.7071 +vn -0.6124 0.3536 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.6124 -0.3536 -0.7071 +vn -0.3536 -0.6124 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.3536 -0.6124 -0.7071 +vn 0.6124 -0.3536 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.6794 -0.1448 -0.7194 +vn 0.7263 0.1363 0.6737 +vn -0.7263 0.1363 0.6737 +vn -0.6794 -0.1448 -0.7194 +vn 0.0000 -0.1866 -0.9824 +vn 0.9987 -0.0196 -0.0473 +vn 0.0000 0.2049 0.9788 +vn -0.9987 -0.0196 -0.0473 +vn -0.9955 -0.0671 -0.0671 +vn 0.9955 -0.0671 -0.0671 +vn 0.6630 -0.5294 -0.5294 +vn 0.7574 0.4617 0.4617 +vn -0.7574 0.4617 0.4617 +vn -0.6630 -0.5294 -0.5294 +vn -0.0000 -0.9824 -0.1866 +vn 0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.0000 0.9788 0.2049 +vn -0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 0.1363 +vn -0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 -0.1363 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn -0.0000 -0.9824 0.1866 +vn 0.9987 -0.0473 0.0196 +vn 0.0000 0.9788 -0.2049 +vn -0.9987 -0.0473 0.0196 +vn 0.6794 -0.7194 0.1448 +vn 0.9955 -0.0671 0.0671 +vn 0.6630 -0.5294 0.5293 +vn 0.7574 0.4617 -0.4617 +vn -0.7574 0.4617 -0.4617 +vn -0.6630 -0.5294 0.5293 +vn -0.9955 -0.0671 0.0671 +vn 0.7263 0.1363 -0.6737 +vn 0.9987 -0.0196 0.0473 +vn -0.7263 0.1363 -0.6737 +vn 0.0000 0.2049 -0.9788 +vn -0.6794 -0.1448 0.7194 +vn -0.9987 -0.0196 0.0473 +vn 0.6794 -0.1448 0.7194 +vn 0.0000 -0.1866 0.9824 +vn -0.9701 0.2425 -0.0000 +vn -0.6860 0.2425 0.6860 +vn 0.9701 0.2425 -0.0000 +vn 0.6860 0.2425 0.6860 +vn 0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.0000 0.2425 0.9701 +vn 0.6088 -0.7934 0.0000 +vn -0.2588 0.9659 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 0.1305 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.6088 -0.7934 0.0000 +vn -0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.2881 -0.1664 0.9430 +vn 0.4177 -0.7235 0.5496 +vn 0.7235 -0.4177 0.5496 +vn -0.0000 0.9928 0.1198 +vn 0.4177 0.7235 0.5496 +vn 0.4964 0.8598 0.1198 +vn 0.4964 0.8598 -0.1198 +vn -0.0000 0.9928 -0.1198 +vn 0.8354 -0.0000 0.5496 +vn -0.4964 0.8598 0.1198 +vn -0.7235 0.4177 0.5496 +vn -0.4177 0.7235 0.5496 +vn 0.8598 0.4964 -0.1198 +vn 0.0000 -0.8354 0.5496 +vn -0.1664 -0.2881 0.9430 +vn -0.4177 -0.7235 0.5496 +vn -0.0000 0.8354 0.5496 +vn 0.8598 0.4964 0.1198 +vn 0.9928 0.0000 -0.1198 +vn -0.7235 -0.4177 0.5496 +vn 0.7235 0.4177 0.5496 +vn 0.9928 -0.0000 0.1198 +vn 0.8598 -0.4964 -0.1198 +vn -0.2881 -0.1664 0.9430 +vn -0.8354 -0.0000 0.5496 +vn 0.8598 -0.4964 0.1198 +vn 0.4964 -0.8598 -0.1198 +vn -0.2881 0.1664 0.9430 +vn 0.4964 -0.8598 0.1198 +vn 0.0000 -0.9928 0.1198 +vn 0.0000 -0.9928 -0.1198 +vn -0.1664 0.2881 0.9430 +vn -0.4964 -0.8598 0.1198 +vn -0.8598 -0.4964 0.1198 +vn -0.4964 -0.8598 -0.1198 +vn -0.0000 0.3327 0.9430 +vn -0.9928 -0.0000 0.1198 +vn -0.8598 0.4964 0.1198 +vn -0.8598 -0.4964 -0.1198 +vn -0.9928 -0.0000 -0.1198 +vn 0.2881 0.1664 0.9430 +vn -0.8598 0.4964 -0.1198 +vn -0.4964 0.8598 -0.1198 +vn 0.1664 -0.2881 0.9430 +vn 0.7235 -0.4177 -0.5496 +vn 0.8354 0.0000 -0.5496 +vn 0.2881 0.1664 -0.9430 +vn 0.7235 0.4177 -0.5496 +vn 0.4177 0.7235 -0.5496 +vn -0.0000 0.8354 -0.5496 +vn -0.4177 0.7235 -0.5496 +vn -0.7235 0.4177 -0.5496 +vn -0.8354 -0.0000 -0.5496 +vn -0.7235 -0.4177 -0.5496 +vn 0.0000 -0.8354 -0.5496 +vn -0.4177 -0.7235 -0.5496 +vn 0.4177 -0.7235 -0.5496 +vn 0.2881 -0.1664 -0.9430 +vn -0.2881 -0.1664 -0.9430 +vn 0.0000 0.3327 -0.9430 +vn 0.1664 0.2881 -0.9430 +vn -0.1664 0.2881 -0.9430 +vn -0.2881 0.1664 -0.9430 +vn -0.3327 -0.0000 -0.9430 +vn -0.1664 -0.2881 -0.9430 +vn -0.0000 -0.3327 -0.9430 +vn 0.1664 -0.2881 -0.9430 +vn 0.3327 -0.0000 -0.9430 +vn 0.2588 -0.9659 0.0000 +vn -0.9987 0.0196 -0.0473 +vn 0.9987 0.0196 -0.0473 +vn 0.6794 0.1448 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.7263 -0.1363 0.6737 +vn -0.6794 0.1448 -0.7194 +vn 0.0000 0.9824 -0.1866 +vn -0.6794 0.7194 -0.1448 +vn 0.9987 0.0473 -0.0196 +vn 0.6794 0.7194 -0.1448 +vn -0.0000 -0.9788 0.2049 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.9987 0.0473 -0.0196 +vn 0.7574 -0.4617 0.4617 +vn 0.9955 0.0671 -0.0671 +vn 0.6630 0.5294 -0.5294 +vn -0.6630 0.5294 -0.5294 +vn -0.7574 -0.4617 0.4617 +vn -0.9955 0.0671 -0.0671 +vn 0.0000 -0.2049 0.9788 +vn 0.0000 0.1866 -0.9824 +vn 0.6788 0.6701 0.3004 +vn -0.5806 0.8131 -0.0429 +vn -0.6975 0.6931 -0.1819 +vn 0.7923 -0.5902 0.1548 +vn 0.6866 0.6388 0.3472 +vn 0.6651 -0.7335 0.1405 +vn -0.6262 -0.7022 -0.3388 +vn -0.6449 -0.7160 -0.2673 +vn -0.8661 -0.4997 -0.0111 +vn -0.6464 0.5821 -0.4933 +vn -0.7075 -0.6998 0.0981 +vn -0.6614 0.6307 -0.4059 +vn -0.6866 -0.7268 -0.0152 +vn -0.6788 0.6701 -0.3004 +vn -0.6650 -0.7335 -0.1405 +vn 0.6561 -0.5453 0.5217 +vn 0.6152 -0.6243 0.4814 +vn 0.6281 -0.6770 0.3837 +vn 0.6449 -0.7160 0.2673 +vn 0.7334 0.6775 -0.0555 +vn 0.5151 0.8106 -0.2786 +vn 0.7162 0.6954 0.0597 +vn 0.6975 0.6931 0.1819 +vn -0.5700 0.6227 -0.5360 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.3327 -0.0000 0.9430 +vn 0.0000 -0.3327 0.9430 +vn -0.3327 -0.0000 0.9430 +vn 0.1664 0.2881 0.9430 +s off +f 1/1/1 36/2/1 12/3/1 +f 3/4/1 26/5/1 2/6/1 +f 9/7/1 34/8/1 33/9/1 +f 7/10/1 30/11/1 6/12/1 +f 4/13/1 27/14/1 3/15/1 +f 11/16/1 34/17/1 10/18/1 +f 7/19/1 32/20/1 31/21/1 +f 5/22/1 28/23/1 4/24/1 +f 12/25/1 35/26/1 11/27/1 +f 2/28/1 25/29/1 1/30/1 +f 9/31/1 32/32/1 8/33/1 +f 5/34/1 30/35/1 29/36/1 +f 53/37/1 55/38/1 57/39/1 +f 71/40/1 48/41/1 47/42/1 +f 72/43/1 37/44/1 48/45/1 +f 37/46/1 62/47/1 38/48/1 +f 38/49/1 63/50/1 39/51/1 +f 63/50/1 40/52/1 39/53/1 +f 40/54/1 65/55/1 41/56/1 +f 65/55/1 42/57/1 41/58/1 +f 42/59/1 67/60/1 43/61/1 +f 67/62/1 44/63/1 43/64/1 +f 68/65/1 45/66/1 44/67/1 +f 69/68/1 46/69/1 45/70/1 +f 70/71/1 47/72/1 46/73/1 +f 83/74/2 96/75/2 84/76/2 +f 84/76/2 85/77/2 73/78/2 +f 85/79/2 74/80/2 73/78/2 +f 86/81/2 75/82/2 74/80/2 +f 75/82/2 88/83/2 76/84/2 +f 88/85/2 77/86/2 76/84/2 +f 77/86/2 90/87/2 78/88/2 +f 90/89/2 79/90/2 78/88/2 +f 91/91/2 80/92/2 79/93/2 +f 92/94/2 81/95/2 80/92/2 +f 81/95/2 94/96/2 82/97/2 +f 82/97/2 95/98/2 83/74/2 +f 98/99/1 111/100/1 99/101/1 +f 106/102/1 117/103/1 118/104/1 +f 102/105/1 115/106/1 103/107/1 +f 100/108/1 111/100/1 112/109/1 +f 107/110/1 118/104/1 119/111/1 +f 103/112/1 116/113/1 104/114/1 +f 100/115/1 113/116/1 101/117/1 +f 108/118/1 119/111/1 120/119/1 +f 97/120/1 110/121/1 98/122/1 +f 104/123/1 117/103/1 105/124/1 +f 102/125/1 113/116/1 114/126/1 +f 97/127/1 120/119/1 109/128/1 +f 136/129/3 144/130/3 133/131/3 +f 140/132/4 146/133/4 135/134/4 +f 138/135/5 148/136/5 139/137/5 +f 138/138/1 140/139/1 136/129/1 +f 146/140/2 148/141/2 142/142/2 +f 146/133/6 136/129/6 135/134/6 +f 134/143/7 144/130/7 143/144/7 +f 148/136/8 140/132/8 139/137/8 +f 138/145/9 142/146/9 141/147/9 +f 134/143/10 142/146/10 137/148/10 +f 159/149/5 168/150/5 160/151/5 +f 157/152/5 166/153/5 158/154/5 +f 164/155/5 165/156/5 157/152/5 +f 163/157/5 170/158/5 171/159/5 +f 161/160/5 168/161/5 169/162/5 +f 159/149/5 166/163/5 167/164/5 +f 163/157/5 172/165/5 164/155/5 +f 162/166/5 169/167/5 170/168/5 +f 228/169/5 235/170/5 236/171/5 +f 225/172/5 234/173/5 226/174/5 +f 224/175/5 231/176/5 232/177/5 +f 222/178/5 229/179/5 230/180/5 +f 205/181/5 236/171/5 229/179/5 +f 226/182/5 235/170/5 227/183/5 +f 224/184/5 233/185/5 225/186/5 +f 222/187/5 231/176/5 223/188/5 +f 245/189/3 250/190/3 246/191/3 +f 248/192/10 249/193/10 245/194/10 +f 251/195/5 248/192/5 247/196/5 +f 246/191/4 251/195/4 247/196/4 +f 270/197/3 264/198/3 266/199/3 +f 269/200/2 274/201/2 270/202/2 +f 251/195/4 250/190/4 255/203/4 +f 250/204/4 260/205/4 255/206/4 +f 249/193/10 252/207/10 254/208/10 +f 251/195/11 254/209/11 252/207/11 +f 255/206/1 259/210/1 254/209/1 +f 254/209/10 257/211/10 249/212/10 +f 249/213/2 258/214/2 250/204/2 +f 256/215/10 265/216/10 261/217/10 +f 253/218/1 263/219/1 256/220/1 +f 261/217/2 266/199/2 262/221/2 +f 262/221/4 264/198/4 253/218/4 +f 269/222/3 266/199/3 265/216/3 +f 267/223/3 265/216/3 263/224/3 +f 268/225/3 263/219/3 264/198/3 +f 273/226/12 271/227/12 272/228/12 +f 268/229/1 272/230/1 267/231/1 +f 268/229/4 274/201/4 273/232/4 +f 267/233/10 271/227/10 269/200/10 +f 297/234/5 291/235/5 294/236/5 +f 281/237/3 278/238/3 277/239/3 +f 282/240/4 293/241/4 278/238/4 +f 285/242/2 284/243/2 283/244/2 +f 289/245/13 287/246/13 288/247/13 +f 285/242/3 290/248/3 286/249/3 +f 284/243/5 288/250/5 283/244/5 +f 286/249/4 289/251/4 284/243/4 +f 285/242/10 288/252/10 287/253/10 +f 298/254/8 294/236/8 293/241/8 +f 292/255/9 296/256/9 295/257/9 +f 295/257/10 277/258/10 292/255/10 +f 305/259/2 316/260/2 304/261/2 +f 306/262/2 317/263/2 305/264/2 +f 280/265/2 318/266/2 306/267/2 +f 279/268/2 307/269/2 280/270/2 +f 276/271/2 308/272/2 279/273/2 +f 275/274/2 309/275/2 276/276/2 +f 275/277/2 311/278/2 310/279/2 +f 299/280/2 312/281/2 311/278/2 +f 300/282/2 313/283/2 312/281/2 +f 302/284/2 313/285/2 301/286/2 +f 302/287/2 315/288/2 314/289/2 +f 304/290/2 315/288/2 303/291/2 +f 340/292/1 329/293/1 328/294/1 +f 341/295/1 330/296/1 329/297/1 +f 342/298/1 327/299/1 330/300/1 +f 332/301/1 326/302/1 327/303/1 +f 331/304/1 325/305/1 326/306/1 +f 333/307/1 324/308/1 325/309/1 +f 324/310/1 335/311/1 323/312/1 +f 323/313/1 336/314/1 322/315/1 +f 322/316/1 337/317/1 321/318/1 +f 337/319/1 320/320/1 321/321/1 +f 320/322/1 339/323/1 319/324/1 +f 339/323/1 328/325/1 319/326/1 +f 362/327/3 356/328/3 352/329/3 +f 365/330/4 355/331/4 356/328/4 +f 345/332/2 347/333/2 346/334/2 +f 343/335/3 348/336/3 345/332/3 +f 346/337/5 349/338/5 344/339/5 +f 360/340/1 367/341/1 361/342/1 +f 364/343/11 349/344/11 365/345/11 +f 348/346/10 351/347/10 347/348/10 +f 354/349/3 370/350/3 357/351/3 +f 352/329/2 355/331/2 351/347/2 +f 349/338/1 343/335/1 344/339/1 +f 371/352/5 373/353/5 369/354/5 +f 366/355/14 350/356/14 367/341/14 +f 361/342/10 349/357/10 360/340/10 +f 347/348/10 359/358/10 349/359/10 +f 362/360/10 348/346/10 350/361/10 +f 351/362/5 365/345/5 359/363/5 +f 358/364/5 369/354/5 353/365/5 +f 353/365/10 368/366/10 354/349/10 +f 357/351/4 371/367/4 358/368/4 +f 371/369/5 377/370/5 373/371/5 +f 373/371/15 368/366/15 369/354/15 +f 368/366/3 372/372/3 370/350/3 +f 374/373/16 377/370/16 375/374/16 +f 370/375/3 376/376/3 374/377/3 +f 370/375/2 375/378/2 371/379/2 +f 373/371/1 376/376/1 372/380/1 +f 407/381/2 445/382/2 444/383/2 +f 424/384/1 426/385/1 428/386/1 +f 442/387/17 433/388/17 431/389/17 +f 433/388/2 432/390/2 443/391/2 +f 441/392/2 434/393/2 437/394/2 +f 435/395/1 440/396/1 436/397/1 +f 431/389/5 443/391/5 430/398/5 +f 440/396/8 437/394/8 436/397/8 +f 411/399/2 450/400/2 412/401/2 +f 430/398/18 432/402/18 442/403/18 +f 413/404/2 445/382/2 406/405/2 +f 438/406/7 435/407/7 434/393/7 +f 409/408/2 448/409/2 410/410/2 +f 408/411/2 444/383/2 446/412/2 +f 413/404/2 450/400/2 451/413/2 +f 410/414/2 449/415/2 411/399/2 +f 408/411/2 447/416/2 409/408/2 +f 456/417/2 455/418/2 454/419/2 +f 550/420/2 563/421/2 562/422/2 +f 551/423/2 562/422/2 561/424/2 +f 552/425/2 561/424/2 560/426/2 +f 553/427/2 560/426/2 559/428/2 +f 554/429/2 559/428/2 558/430/2 +f 555/431/2 558/430/2 557/432/2 +f 544/433/2 557/432/2 556/434/2 +f 566/435/2 579/436/2 545/437/2 +f 580/438/19 611/439/19 623/440/19 +f 532/441/1 569/442/1 543/443/1 +f 610/444/2 592/445/2 596/446/2 +f 543/447/1 570/448/1 542/449/1 +f 622/450/1 580/438/1 623/451/1 +f 621/452/1 584/453/1 622/454/1 +f 620/455/1 585/456/1 621/457/1 +f 542/458/1 571/459/1 541/460/1 +f 619/461/1 586/462/1 620/463/1 +f 618/464/1 587/465/1 619/466/1 +f 541/467/1 572/468/1 540/469/1 +f 617/470/1 588/471/1 618/472/1 +f 616/473/1 589/474/1 617/475/1 +f 624/476/1 590/477/1 616/478/1 +f 540/479/1 573/480/1 539/481/1 +f 612/482/2 602/483/2 603/484/2 +f 539/485/1 574/486/1 538/487/1 +f 538/488/1 575/489/1 537/490/1 +f 604/491/2 601/492/2 602/483/2 +f 537/493/1 576/494/1 536/495/1 +f 549/496/2 564/497/2 563/421/2 +f 576/494/19 548/498/19 536/499/19 +f 605/500/2 600/501/2 601/492/2 +f 606/502/2 599/503/2 600/501/2 +f 607/504/2 598/505/2 599/503/2 +f 614/506/1 625/507/1 582/508/1 +f 608/509/2 597/510/2 598/505/2 +f 609/511/2 596/446/2 597/510/2 +f 635/512/4 629/513/4 631/514/4 +f 632/515/10 630/516/10 628/517/10 +f 634/518/2 631/514/2 630/516/2 +f 633/519/1 628/520/1 629/513/1 +f 702/521/2 700/522/2 706/523/2 +f 717/524/3 718/525/3 716/526/3 +f 725/527/3 726/528/3 724/529/3 +f 717/530/4 723/531/4 719/532/4 +f 718/525/10 720/533/10 716/534/10 +f 719/532/2 722/535/2 718/525/2 +f 716/536/1 721/537/1 717/530/1 +f 725/538/4 731/539/4 727/540/4 +f 726/528/10 728/541/10 724/542/10 +f 727/540/2 730/543/2 726/528/2 +f 724/544/1 729/545/1 725/538/1 +f 746/546/3 744/547/3 745/548/3 +f 738/549/3 736/550/3 737/551/3 +f 735/552/4 738/553/4 733/554/4 +f 732/555/10 736/550/10 734/556/10 +f 734/556/2 739/557/2 735/552/2 +f 733/554/1 737/558/1 732/559/1 +f 743/560/4 746/561/4 741/562/4 +f 740/563/10 744/547/10 742/564/10 +f 742/564/2 747/565/2 743/560/2 +f 741/562/1 745/566/1 740/567/1 +f 756/568/1 748/569/1 751/570/1 +f 755/571/2 753/572/2 757/573/2 +f 749/574/4 755/571/4 751/570/4 +f 750/575/10 753/576/10 748/569/10 +f 751/577/20 757/578/20 756/568/20 +f 763/579/21 795/580/21 758/581/21 +f 756/568/3 752/582/3 750/575/3 +f 759/583/1 766/584/1 760/585/1 +f 767/586/2 765/587/2 764/588/2 +f 759/583/4 765/589/4 761/590/4 +f 760/585/10 763/579/10 758/581/10 +f 761/590/3 767/591/3 766/584/3 +f 748/569/1 759/583/1 795/592/1 +f 766/584/22 762/593/22 760/594/22 +f 770/595/5 769/596/5 768/597/5 +f 774/598/3 772/599/3 773/600/3 +f 770/601/2 775/602/2 771/603/2 +f 769/596/1 773/600/1 768/597/1 +f 782/604/3 780/605/3 781/606/3 +f 778/607/5 777/608/5 776/609/5 +f 778/610/2 783/611/2 779/612/2 +f 777/608/1 781/606/1 776/609/1 +f 790/613/3 788/614/3 789/615/3 +f 786/616/5 785/617/5 784/618/5 +f 786/619/2 791/620/2 787/621/2 +f 785/617/1 789/615/1 784/618/1 +f 795/592/5 793/622/5 792/623/5 +f 749/574/23 793/624/23 754/625/23 +f 764/588/2 753/572/2 793/626/2 +f 830/627/2 841/628/2 829/629/2 +f 831/630/2 842/631/2 830/632/2 +f 823/633/2 843/634/2 831/635/2 +f 822/636/2 832/637/2 823/638/2 +f 821/639/2 833/640/2 822/641/2 +f 820/642/2 834/643/2 821/644/2 +f 820/645/2 836/646/2 835/647/2 +f 824/648/2 837/649/2 836/646/2 +f 825/650/2 838/651/2 837/649/2 +f 827/652/2 838/653/2 826/654/2 +f 827/655/2 840/656/2 839/657/2 +f 829/658/2 840/656/2 828/659/2 +f 865/660/1 854/661/1 853/662/1 +f 866/663/1 855/664/1 854/665/1 +f 867/666/1 852/667/1 855/668/1 +f 857/669/1 851/670/1 852/671/1 +f 856/672/1 850/673/1 851/674/1 +f 858/675/1 849/676/1 850/677/1 +f 849/678/1 860/679/1 848/680/1 +f 848/681/1 861/682/1 847/683/1 +f 847/684/1 862/685/1 846/686/1 +f 862/687/1 845/688/1 846/689/1 +f 845/690/1 864/691/1 844/692/1 +f 864/691/1 853/693/1 844/694/1 +f 1/1/1 25/695/1 36/2/1 +f 3/4/1 27/696/1 26/5/1 +f 9/7/1 10/697/1 34/8/1 +f 7/10/1 31/698/1 30/11/1 +f 4/13/1 28/699/1 27/14/1 +f 11/16/1 35/700/1 34/17/1 +f 7/19/1 8/701/1 32/20/1 +f 5/22/1 29/702/1 28/23/1 +f 12/25/1 36/703/1 35/26/1 +f 2/28/1 26/704/1 25/29/1 +f 9/31/1 33/705/1 32/32/1 +f 5/34/1 6/706/1 30/35/1 +f 49/707/1 50/708/1 51/709/1 +f 51/709/1 52/710/1 53/37/1 +f 53/37/1 54/711/1 55/38/1 +f 55/38/1 56/712/1 57/39/1 +f 57/39/1 58/713/1 59/714/1 +f 59/714/1 60/715/1 57/39/1 +f 60/715/1 49/707/1 57/39/1 +f 49/707/1 51/709/1 57/39/1 +f 51/709/1 53/37/1 57/39/1 +f 71/40/1 72/43/1 48/41/1 +f 72/43/1 61/716/1 37/44/1 +f 37/46/1 61/716/1 62/47/1 +f 38/49/1 62/47/1 63/50/1 +f 63/50/1 64/717/1 40/52/1 +f 40/54/1 64/717/1 65/55/1 +f 65/55/1 66/718/1 42/57/1 +f 42/59/1 66/718/1 67/60/1 +f 67/62/1 68/65/1 44/63/1 +f 68/65/1 69/68/1 45/66/1 +f 69/68/1 70/71/1 46/69/1 +f 70/71/1 71/40/1 47/72/1 +f 83/74/2 95/719/2 96/75/2 +f 84/76/2 96/720/2 85/77/2 +f 85/79/2 86/721/2 74/80/2 +f 86/81/2 87/722/2 75/82/2 +f 75/82/2 87/723/2 88/83/2 +f 88/85/2 89/724/2 77/86/2 +f 77/86/2 89/725/2 90/87/2 +f 90/89/2 91/726/2 79/90/2 +f 91/91/2 92/727/2 80/92/2 +f 92/94/2 93/728/2 81/95/2 +f 81/95/2 93/729/2 94/96/2 +f 82/97/2 94/730/2 95/98/2 +f 98/99/1 110/121/1 111/100/1 +f 106/102/1 105/731/1 117/103/1 +f 102/105/1 114/126/1 115/106/1 +f 100/108/1 99/732/1 111/100/1 +f 107/110/1 106/733/1 118/104/1 +f 103/112/1 115/734/1 116/113/1 +f 100/115/1 112/109/1 113/116/1 +f 108/118/1 107/735/1 119/111/1 +f 97/120/1 109/128/1 110/121/1 +f 104/123/1 116/113/1 117/103/1 +f 102/125/1 101/736/1 113/116/1 +f 97/127/1 108/737/1 120/119/1 +f 136/129/3 145/738/3 144/130/3 +f 140/132/4 147/739/4 146/133/4 +f 138/135/5 141/740/5 148/136/5 +f 136/129/1 133/131/1 134/741/1 +f 134/741/1 137/742/1 138/138/1 +f 138/138/1 139/743/1 140/139/1 +f 140/139/1 135/744/1 136/129/1 +f 136/129/1 134/741/1 138/138/1 +f 142/142/2 143/745/2 144/130/2 +f 144/130/2 145/738/2 146/140/2 +f 146/140/2 147/746/2 148/141/2 +f 148/141/2 141/747/2 142/142/2 +f 142/142/2 144/130/2 146/140/2 +f 146/133/6 145/738/6 136/129/6 +f 134/143/7 133/131/7 144/130/7 +f 148/136/8 147/739/8 140/132/8 +f 138/145/9 137/148/9 142/146/9 +f 134/143/10 143/144/10 142/146/10 +f 159/149/5 167/748/5 168/150/5 +f 157/152/5 165/749/5 166/153/5 +f 164/155/5 172/750/5 165/156/5 +f 163/157/5 162/166/5 170/158/5 +f 161/160/5 160/151/5 168/161/5 +f 159/149/5 158/154/5 166/163/5 +f 163/157/5 171/751/5 172/165/5 +f 162/166/5 161/752/5 169/167/5 +f 228/169/5 227/753/5 235/170/5 +f 225/172/5 233/754/5 234/173/5 +f 224/175/5 223/755/5 231/176/5 +f 222/178/5 205/756/5 229/179/5 +f 205/181/5 228/757/5 236/171/5 +f 226/182/5 234/173/5 235/170/5 +f 224/184/5 232/177/5 233/185/5 +f 222/187/5 230/180/5 231/176/5 +f 245/189/3 249/758/3 250/190/3 +f 248/192/10 252/207/10 249/193/10 +f 251/195/5 252/207/5 248/192/5 +f 246/191/4 250/190/4 251/195/4 +f 270/197/3 268/759/3 264/198/3 +f 269/200/2 271/227/2 274/201/2 +f 250/204/4 258/214/4 260/205/4 +f 251/195/11 255/206/11 254/209/11 +f 255/206/1 260/205/1 259/210/1 +f 254/209/10 259/210/10 257/211/10 +f 249/213/2 257/760/2 258/214/2 +f 256/215/10 263/224/10 265/216/10 +f 253/218/1 264/198/1 263/219/1 +f 261/217/2 265/216/2 266/199/2 +f 262/221/4 266/199/4 264/198/4 +f 269/222/3 270/761/3 266/199/3 +f 267/223/3 269/762/3 265/216/3 +f 268/225/3 267/763/3 263/219/3 +f 273/226/12 274/201/12 271/227/12 +f 268/229/1 273/232/1 272/230/1 +f 268/229/4 270/202/4 274/201/4 +f 267/233/10 272/764/10 271/227/10 +f 297/234/5 296/256/5 291/235/5 +f 281/237/3 282/240/3 278/238/3 +f 282/240/4 298/254/4 293/241/4 +f 285/242/2 286/249/2 284/243/2 +f 289/245/13 290/248/13 287/246/13 +f 285/242/3 287/246/3 290/248/3 +f 284/243/5 289/765/5 288/250/5 +f 286/249/4 290/766/4 289/251/4 +f 285/242/10 283/244/10 288/252/10 +f 298/254/8 297/234/8 294/236/8 +f 292/255/9 291/235/9 296/256/9 +f 295/257/10 281/767/10 277/258/10 +f 305/259/2 317/263/2 316/260/2 +f 306/262/2 318/266/2 317/263/2 +f 280/265/2 307/269/2 318/266/2 +f 279/268/2 308/272/2 307/269/2 +f 276/271/2 309/275/2 308/272/2 +f 275/274/2 310/279/2 309/275/2 +f 275/277/2 299/768/2 311/278/2 +f 299/280/2 300/769/2 312/281/2 +f 300/282/2 301/770/2 313/283/2 +f 302/284/2 314/289/2 313/285/2 +f 302/287/2 303/771/2 315/288/2 +f 304/290/2 316/260/2 315/288/2 +f 340/292/1 341/295/1 329/293/1 +f 341/295/1 342/298/1 330/296/1 +f 342/298/1 332/301/1 327/299/1 +f 332/301/1 331/304/1 326/302/1 +f 331/304/1 333/307/1 325/305/1 +f 333/307/1 334/772/1 324/308/1 +f 324/310/1 334/772/1 335/311/1 +f 323/313/1 335/311/1 336/314/1 +f 322/316/1 336/314/1 337/317/1 +f 337/319/1 338/773/1 320/320/1 +f 320/322/1 338/773/1 339/323/1 +f 339/323/1 340/292/1 328/325/1 +f 362/327/3 366/355/3 356/328/3 +f 356/328/4 366/774/4 365/330/4 +f 366/774/4 367/775/4 365/330/4 +f 367/775/4 364/776/4 365/330/4 +f 345/332/2 348/336/2 347/333/2 +f 343/335/3 350/777/3 348/336/3 +f 346/337/5 347/778/5 349/338/5 +f 360/340/1 364/343/1 367/341/1 +f 360/340/11 349/344/11 364/343/11 +f 349/344/11 359/363/11 365/345/11 +f 348/346/10 352/329/10 351/347/10 +f 354/349/3 368/366/3 370/350/3 +f 352/329/2 356/328/2 355/331/2 +f 349/338/1 350/777/1 343/335/1 +f 362/327/14 350/356/14 366/355/14 +f 350/356/14 361/342/14 367/341/14 +f 361/342/10 350/779/10 349/357/10 +f 347/348/10 351/347/10 359/358/10 +f 362/360/10 352/329/10 348/346/10 +f 351/362/5 355/780/5 365/345/5 +f 358/364/5 371/352/5 369/354/5 +f 353/365/10 369/354/10 368/366/10 +f 357/351/4 370/350/4 371/367/4 +f 371/369/5 375/781/5 377/370/5 +f 373/371/15 372/380/15 368/366/15 +f 374/373/16 376/376/16 377/370/16 +f 370/375/3 372/380/3 376/376/3 +f 370/375/2 374/377/2 375/378/2 +f 373/371/1 377/370/1 376/376/1 +f 407/381/2 406/405/2 445/382/2 +f 423/782/1 422/783/1 424/384/1 +f 424/384/1 425/784/1 426/385/1 +f 426/385/1 427/785/1 428/386/1 +f 428/386/1 429/786/1 423/782/1 +f 423/782/1 424/384/1 428/386/1 +f 442/387/17 432/787/17 433/388/17 +f 441/392/2 438/406/2 434/393/2 +f 435/395/1 439/788/1 440/396/1 +f 431/389/5 433/388/5 443/391/5 +f 440/396/8 441/392/8 437/394/8 +f 411/399/2 449/415/2 450/400/2 +f 430/398/18 443/391/18 432/402/18 +f 413/404/2 451/413/2 445/382/2 +f 438/406/7 439/789/7 435/407/7 +f 409/408/2 447/416/2 448/409/2 +f 408/411/2 407/381/2 444/383/2 +f 413/404/2 412/401/2 450/400/2 +f 410/414/2 448/790/2 449/415/2 +f 408/411/2 446/412/2 447/416/2 +f 454/419/2 452/791/2 453/792/2 +f 453/792/2 459/793/2 454/419/2 +f 459/793/2 458/794/2 454/419/2 +f 458/794/2 457/795/2 454/419/2 +f 457/795/2 456/417/2 454/419/2 +f 550/420/2 549/796/2 563/421/2 +f 551/423/2 550/797/2 562/422/2 +f 552/425/2 551/798/2 561/424/2 +f 553/427/2 552/799/2 560/426/2 +f 554/429/2 553/800/2 559/428/2 +f 555/431/2 554/801/2 558/430/2 +f 544/433/2 555/802/2 557/432/2 +f 545/437/2 546/803/2 566/435/2 +f 546/803/2 547/804/2 566/435/2 +f 547/804/2 565/805/2 566/435/2 +f 566/435/2 567/806/2 577/807/2 +f 577/807/2 578/808/2 579/436/2 +f 579/436/2 535/809/2 534/810/2 +f 534/810/2 533/811/2 579/436/2 +f 533/811/2 545/437/2 579/436/2 +f 566/435/2 577/807/2 579/436/2 +f 580/438/19 592/445/19 611/439/19 +f 532/441/1 568/812/1 569/442/1 +f 610/444/2 611/813/2 592/445/2 +f 543/447/1 569/442/1 570/448/1 +f 622/450/1 584/453/1 580/438/1 +f 621/452/1 585/456/1 584/453/1 +f 620/455/1 586/462/1 585/456/1 +f 542/458/1 570/448/1 571/459/1 +f 619/461/1 587/465/1 586/462/1 +f 618/464/1 588/471/1 587/465/1 +f 541/467/1 571/459/1 572/468/1 +f 617/470/1 589/474/1 588/471/1 +f 616/473/1 590/477/1 589/474/1 +f 624/476/1 591/814/1 590/477/1 +f 540/479/1 572/468/1 573/480/1 +f 612/482/2 604/815/2 602/483/2 +f 539/485/1 573/480/1 574/486/1 +f 538/488/1 574/486/1 575/489/1 +f 604/491/2 605/816/2 601/492/2 +f 537/493/1 575/489/1 576/494/1 +f 549/496/2 548/817/2 564/497/2 +f 576/494/19 564/497/19 548/498/19 +f 605/500/2 606/818/2 600/501/2 +f 606/502/2 607/819/2 599/503/2 +f 607/504/2 608/820/2 598/505/2 +f 625/507/1 626/821/1 582/508/1 +f 626/821/1 627/822/1 582/508/1 +f 627/822/1 581/823/1 582/508/1 +f 582/508/1 583/824/1 593/825/1 +f 593/825/1 594/826/1 595/827/1 +f 595/827/1 613/828/1 614/506/1 +f 614/506/1 615/829/1 625/507/1 +f 582/508/1 593/825/1 595/827/1 +f 595/827/1 614/506/1 582/508/1 +f 608/509/2 609/830/2 597/510/2 +f 609/511/2 610/831/2 596/446/2 +f 635/512/4 633/519/4 629/513/4 +f 632/515/10 634/518/10 630/516/10 +f 634/518/2 635/512/2 631/514/2 +f 633/519/1 632/832/1 628/520/1 +f 702/521/2 701/833/2 700/522/2 +f 700/522/2 707/834/2 706/523/2 +f 706/523/2 705/835/2 704/836/2 +f 704/836/2 703/837/2 706/523/2 +f 703/837/2 702/521/2 706/523/2 +f 717/524/3 719/532/3 718/525/3 +f 725/527/3 727/540/3 726/528/3 +f 717/530/4 721/537/4 723/531/4 +f 718/525/10 722/535/10 720/533/10 +f 719/532/2 723/531/2 722/535/2 +f 716/536/1 720/838/1 721/537/1 +f 725/538/4 729/545/4 731/539/4 +f 726/528/10 730/543/10 728/541/10 +f 727/540/2 731/539/2 730/543/2 +f 724/544/1 728/839/1 729/545/1 +f 746/546/3 747/565/3 744/547/3 +f 738/549/3 739/557/3 736/550/3 +f 735/552/4 739/557/4 738/553/4 +f 732/555/10 737/840/10 736/550/10 +f 734/556/2 736/550/2 739/557/2 +f 733/554/1 738/553/1 737/558/1 +f 743/560/4 747/565/4 746/561/4 +f 740/563/10 745/841/10 744/547/10 +f 742/564/2 744/547/2 747/565/2 +f 741/562/1 746/561/1 745/566/1 +f 750/575/1 748/569/1 756/568/1 +f 748/569/1 749/574/1 751/570/1 +f 754/625/2 753/572/2 755/571/2 +f 753/572/2 752/842/2 757/573/2 +f 749/574/4 754/625/4 755/571/4 +f 750/575/10 752/843/10 753/576/10 +f 751/577/20 755/844/20 757/578/20 +f 763/579/21 794/845/21 795/580/21 +f 756/568/3 757/578/3 752/582/3 +f 760/585/1 758/581/1 759/583/1 +f 759/583/1 761/590/1 766/584/1 +f 764/588/2 763/846/2 762/847/2 +f 762/847/2 767/586/2 764/588/2 +f 759/583/4 764/848/4 765/589/4 +f 760/585/10 762/849/10 763/579/10 +f 761/590/3 765/850/3 767/591/3 +f 759/583/1 758/581/1 795/592/1 +f 795/592/1 792/623/1 748/569/1 +f 792/623/1 749/574/1 748/569/1 +f 766/584/22 767/591/22 762/593/22 +f 770/595/5 771/851/5 769/596/5 +f 774/598/3 775/602/3 772/599/3 +f 770/601/2 772/599/2 775/602/2 +f 769/596/1 774/598/1 773/600/1 +f 782/604/3 783/611/3 780/605/3 +f 778/607/5 779/852/5 777/608/5 +f 778/610/2 780/605/2 783/611/2 +f 777/608/1 782/604/1 781/606/1 +f 790/613/3 791/620/3 788/614/3 +f 786/616/5 787/853/5 785/617/5 +f 786/619/2 788/614/2 791/620/2 +f 785/617/1 790/613/1 789/615/1 +f 795/592/5 794/854/5 793/622/5 +f 749/574/23 792/855/23 793/624/23 +f 753/572/2 754/625/2 793/626/2 +f 793/626/2 794/856/2 764/588/2 +f 794/856/2 763/846/2 764/588/2 +f 830/627/2 842/631/2 841/628/2 +f 831/630/2 843/634/2 842/631/2 +f 823/633/2 832/637/2 843/634/2 +f 822/636/2 833/640/2 832/637/2 +f 821/639/2 834/643/2 833/640/2 +f 820/642/2 835/647/2 834/643/2 +f 820/645/2 824/857/2 836/646/2 +f 824/648/2 825/858/2 837/649/2 +f 825/650/2 826/859/2 838/651/2 +f 827/652/2 839/657/2 838/653/2 +f 827/655/2 828/860/2 840/656/2 +f 829/658/2 841/628/2 840/656/2 +f 865/660/1 866/663/1 854/661/1 +f 866/663/1 867/666/1 855/664/1 +f 867/666/1 857/669/1 852/667/1 +f 857/669/1 856/672/1 851/670/1 +f 856/672/1 858/675/1 850/673/1 +f 858/675/1 859/861/1 849/676/1 +f 849/678/1 859/861/1 860/679/1 +f 848/681/1 860/679/1 861/682/1 +f 847/684/1 861/682/1 862/685/1 +f 862/687/1 863/862/1 845/688/1 +f 845/690/1 863/862/1 864/691/1 +f 864/691/1 865/660/1 853/693/1 +s 1 +f 24/863/24 1/1/25 12/3/24 +f 13/864/25 2/28/26 1/30/25 +f 14/865/26 3/4/27 2/6/26 +f 15/866/27 4/13/28 3/15/27 +f 16/867/28 5/22/29 4/24/28 +f 5/34/29 18/868/30 6/706/30 +f 6/12/30 19/869/31 7/10/31 +f 19/870/31 8/701/32 7/19/31 +f 20/871/32 9/31/33 8/33/32 +f 21/872/33 10/697/34 9/7/33 +f 10/18/34 23/873/35 11/16/35 +f 11/27/35 24/863/24 12/25/24 +f 23/873/36 48/41/37 24/863/37 +f 48/45/37 13/864/38 24/863/37 +f 13/864/38 38/48/39 14/865/39 +f 38/49/39 15/866/40 14/865/39 +f 39/53/40 16/867/41 15/866/40 +f 16/867/41 41/56/42 17/874/42 +f 41/58/42 18/868/43 17/874/42 +f 42/59/43 19/869/44 18/868/43 +f 19/870/44 44/63/45 20/871/45 +f 44/67/45 21/872/46 20/871/45 +f 21/872/46 46/69/47 22/875/47 +f 22/875/47 47/72/36 23/873/36 +f 35/700/48 58/876/10 34/17/10 +f 32/20/49 55/877/3 31/21/3 +f 29/702/50 52/878/4 28/23/4 +f 36/703/51 59/879/48 35/26/48 +f 26/704/52 49/880/5 25/29/5 +f 33/705/53 56/881/49 32/32/49 +f 30/35/19 53/882/50 29/36/50 +f 25/695/5 60/883/51 36/2/51 +f 27/696/54 50/884/52 26/5/52 +f 34/8/10 57/885/53 33/9/53 +f 31/698/3 54/886/19 30/11/19 +f 28/699/4 51/887/54 27/14/54 +f 66/718/51 79/90/5 67/60/5 +f 63/50/53 76/84/10 64/717/10 +f 70/71/4 83/74/50 71/40/50 +f 67/62/5 80/92/52 68/65/52 +f 64/717/10 77/86/48 65/55/48 +f 71/40/50 84/76/19 72/43/19 +f 61/716/3 74/80/49 62/47/49 +f 68/65/52 81/95/54 69/68/54 +f 65/55/48 78/88/51 66/718/51 +f 72/43/19 73/78/3 61/716/3 +f 62/47/49 75/82/53 63/50/53 +f 69/68/54 82/97/4 70/71/4 +f 93/888/54 106/889/4 94/890/4 +f 90/891/51 103/892/5 91/893/5 +f 87/894/53 100/895/10 88/896/10 +f 94/890/4 107/897/50 95/898/50 +f 91/899/5 104/900/52 92/901/52 +f 88/896/10 101/902/48 89/903/48 +f 95/898/50 108/904/19 96/905/19 +f 85/906/3 98/907/49 86/908/49 +f 92/901/52 105/909/54 93/888/54 +f 89/903/48 102/910/51 90/891/51 +f 96/905/19 97/911/3 85/906/3 +f 86/908/49 99/912/53 87/894/53 +f 120/119/19 121/913/3 109/128/3 +f 110/121/49 123/914/53 111/100/53 +f 117/103/54 130/915/4 118/104/4 +f 114/126/51 127/916/5 115/106/5 +f 111/100/53 124/917/10 112/109/10 +f 118/104/4 131/918/50 119/111/50 +f 115/734/5 128/919/52 116/113/52 +f 112/109/10 125/920/48 113/116/48 +f 119/111/50 132/921/19 120/119/19 +f 109/128/3 122/922/49 110/121/49 +f 116/113/52 129/923/54 117/103/54 +f 113/116/48 126/924/51 114/126/51 +f 163/157/4 156/925/47 155/926/4 +f 161/752/1 154/927/16 153/928/1 +f 159/149/10 152/929/15 151/930/10 +f 157/152/2 150/931/41 149/932/2 +f 164/155/47 149/932/2 156/925/47 +f 162/166/16 155/926/4 154/927/16 +f 160/151/15 153/933/1 152/929/15 +f 158/154/41 151/930/10 150/931/41 +f 171/934/4 180/935/55 172/936/47 +f 169/937/1 178/938/56 170/939/16 +f 167/940/10 176/941/57 168/942/15 +f 165/943/2 174/944/58 166/945/41 +f 172/936/47 173/946/59 165/943/2 +f 170/939/16 179/947/60 171/934/4 +f 168/942/15 177/948/61 169/949/1 +f 166/945/41 175/950/62 167/940/10 +f 176/951/57 186/952/14 177/953/61 +f 174/944/58 184/954/63 175/955/62 +f 180/935/55 188/956/64 189/957/65 +f 178/958/56 186/959/14 187/960/66 +f 176/951/57 184/954/63 185/961/67 +f 174/944/58 182/962/44 183/963/68 +f 173/946/59 189/957/65 182/962/44 +f 178/958/56 188/956/64 179/964/60 +f 189/957/65 190/965/69 182/962/44 +f 187/960/66 196/966/70 188/956/64 +f 186/952/14 193/967/71 194/968/72 +f 183/963/68 192/969/73 184/954/63 +f 188/956/64 197/970/74 189/957/65 +f 186/959/14 195/971/75 187/960/66 +f 185/961/67 192/969/73 193/967/71 +f 182/962/44 191/972/76 183/963/68 +f 194/973/72 202/974/77 195/975/75 +f 192/976/73 200/977/78 193/978/71 +f 190/965/69 198/979/79 191/972/76 +f 197/970/74 181/980/80 190/965/69 +f 195/975/75 203/981/81 196/982/70 +f 193/978/71 201/983/82 194/984/72 +f 191/972/76 199/985/83 192/976/73 +f 196/982/70 204/986/84 197/970/74 +f 204/986/84 212/987/85 213/988/86 +f 202/989/77 210/990/38 211/991/87 +f 199/992/83 209/993/88 200/994/78 +f 198/979/79 206/995/11 207/996/89 +f 204/986/84 206/995/11 181/980/80 +f 203/997/81 211/991/87 212/987/85 +f 201/998/82 209/993/88 210/999/38 +f 198/979/79 208/1000/90 199/992/83 +f 212/987/85 219/1001/91 220/1002/92 +f 210/999/38 217/1003/93 218/1004/94 +f 208/1000/90 215/1005/95 216/1006/96 +f 212/987/85 221/1007/97 213/988/86 +f 210/990/38 219/1001/91 211/991/87 +f 208/1000/90 217/1003/93 209/993/88 +f 207/996/89 214/1008/98 215/1005/95 +f 213/988/86 214/1008/98 206/995/11 +f 215/1005/95 205/1009/1 222/1010/15 +f 221/1007/97 205/1009/1 214/1008/98 +f 220/1011/92 226/1012/47 227/1013/4 +f 218/1014/94 224/1015/41 225/1016/2 +f 216/1017/96 222/1010/15 223/1018/10 +f 220/1011/92 228/1019/16 221/1007/97 +f 218/1020/94 226/1012/47 219/1021/91 +f 216/1017/96 224/1015/41 217/1022/93 +f 231/176/99 238/1023/100 239/1024/99 +f 235/170/101 244/1025/102 236/171/102 +f 233/754/103 242/1026/104 234/173/104 +f 231/176/99 240/1027/105 232/177/105 +f 230/180/100 237/1028/106 238/1029/100 +f 236/171/102 237/1030/106 229/179/106 +f 235/170/101 242/1031/104 243/1032/101 +f 233/185/103 240/1033/105 241/1034/103 +f 316/260/4 339/323/54 315/288/54 +f 309/275/53 331/304/49 308/272/49 +f 317/263/50 340/292/4 316/260/4 +f 310/279/10 333/307/53 309/275/53 +f 318/266/19 341/295/50 317/263/50 +f 311/278/48 334/772/10 310/279/10 +f 307/269/3 342/298/19 318/266/19 +f 312/281/51 335/311/48 311/278/48 +f 313/283/5 336/314/51 312/281/51 +f 314/289/52 337/319/5 313/285/5 +f 315/288/54 338/773/52 314/289/52 +f 308/272/49 332/301/3 307/269/3 +f 383/1035/54 389/1036/107 382/1037/107 +f 380/1038/53 386/1039/108 379/1040/108 +f 384/1041/109 390/1042/54 383/1035/54 +f 381/1043/110 387/1044/53 380/1038/53 +f 379/1040/108 385/1045/19 378/1046/19 +f 378/1046/19 391/1047/109 384/1041/109 +f 397/1048/50 403/1049/111 396/1050/111 +f 394/1051/48 400/1052/112 393/1053/112 +f 398/1054/113 404/1055/50 397/1048/50 +f 395/1056/114 401/1057/48 394/1051/48 +f 393/1053/112 399/1058/49 392/1059/49 +f 392/1059/49 405/1060/113 398/1054/113 +f 417/1061/115 426/1062/11 425/1063/115 +f 407/381/7 415/1064/3 406/405/3 +f 406/405/3 421/1065/6 413/404/6 +f 412/401/4 419/1066/8 411/399/8 +f 410/410/5 417/1061/9 409/408/9 +f 408/411/10 414/1067/7 407/381/7 +f 413/404/6 420/1068/4 412/401/4 +f 411/399/8 418/1069/5 410/414/5 +f 409/408/9 416/1070/10 408/411/10 +f 416/1070/15 422/1071/116 414/1067/116 +f 421/1065/117 428/1072/16 420/1068/16 +f 419/1066/118 426/1073/11 418/1069/11 +f 416/1070/15 425/1074/115 424/1075/15 +f 414/1067/116 423/1076/14 415/1064/14 +f 415/1064/14 429/1077/117 421/1065/117 +f 420/1068/16 427/1078/118 419/1066/118 +f 449/415/7 458/1079/10 450/400/10 +f 447/416/6 456/1080/3 448/409/3 +f 444/383/8 454/1081/4 446/412/4 +f 450/400/10 459/1082/9 451/413/9 +f 448/790/3 457/1083/7 449/415/7 +f 446/412/4 455/1084/6 447/416/6 +f 445/382/5 452/1085/8 444/383/8 +f 451/413/9 453/1086/5 445/382/5 +f 500/1087/119 489/1088/120 488/1089/121 +f 463/1090/122 461/1091/123 465/1092/124 +f 463/1090/122 464/1093/125 462/1094/126 +f 487/1095/127 500/1096/119 488/1089/121 +f 485/1097/128 494/1098/129 495/1099/130 +f 465/1092/124 466/1100/131 464/1093/125 +f 490/1101/132 503/1102/133 491/1103/134 +f 485/1097/128 460/1104/135 463/1090/122 +f 467/1105/136 468/1106/137 466/1100/131 +f 503/1107/133 492/1108/138 491/1103/134 +f 465/1092/124 486/1109/139 467/1105/136 +f 469/1110/140 470/1111/141 468/1106/137 +f 504/1112/142 493/1113/143 492/1108/138 +f 469/1110/140 488/1089/121 471/1114/144 +f 471/1114/144 472/1115/145 470/1111/141 +f 493/1113/143 506/1116/146 494/1098/129 +f 473/1117/147 490/1118/132 475/1119/148 +f 473/1117/147 474/1120/149 472/1115/145 +f 494/1098/129 507/1121/150 495/1099/130 +f 477/1122/151 492/1108/138 479/1123/152 +f 475/1124/148 476/1125/153 474/1126/149 +f 495/1099/130 496/1127/154 460/1104/135 +f 481/1128/155 494/1098/129 483/1129/156 +f 477/1122/151 478/1130/157 476/1125/153 +f 496/1131/154 461/1091/123 460/1104/135 +f 467/1105/136 487/1095/127 469/1110/140 +f 479/1123/152 480/1132/158 478/1130/157 +f 461/1091/123 498/1133/159 486/1109/139 +f 473/1117/147 488/1089/121 489/1088/120 +f 481/1128/155 482/1134/160 480/1132/158 +f 475/1124/148 491/1103/134 477/1122/151 +f 498/1135/159 487/1095/127 486/1109/139 +f 483/1129/156 484/1136/161 482/1134/160 +f 501/1137/162 490/1118/132 489/1088/120 +f 479/1123/152 493/1113/143 481/1128/155 +f 485/1097/128 462/1094/126 484/1136/161 +f 468/1106/137 512/1138/163 511/1139/164 +f 500/1140/119 498/1141/159 506/1142/146 +f 511/1139/164 522/1143/165 510/1144/166 +f 462/1094/126 509/1145/167 508/1146/168 +f 466/1100/131 509/1145/167 464/1093/125 +f 482/1134/160 519/1147/169 518/1148/170 +f 478/1130/157 517/1149/171 516/1150/172 +f 476/1125/153 514/1151/173 474/1126/149 +f 462/1094/126 519/1147/169 484/1136/161 +f 472/1115/145 512/1138/163 470/1111/141 +f 468/1106/137 510/1144/166 466/1100/131 +f 480/1132/158 518/1148/170 517/1149/171 +f 478/1130/157 515/1152/174 476/1125/153 +f 474/1120/149 513/1153/175 472/1115/145 +f 524/1154/176 528/1155/177 520/1156/178 +f 509/1145/167 522/1157/165 521/1158/179 +f 509/1145/167 520/1159/178 508/1146/168 +f 519/1147/169 520/1160/178 531/1161/180 +f 519/1147/169 530/1162/181 518/1148/170 +f 518/1148/170 529/1163/182 517/1149/171 +f 516/1150/172 529/1164/182 528/1165/177 +f 516/1150/172 527/1166/183 515/1152/174 +f 514/1151/173 527/1167/183 526/1168/184 +f 513/1153/175 526/1169/184 525/1170/185 +f 513/1153/175 524/1171/176 512/1138/163 +f 512/1138/163 523/1172/186 511/1139/164 +f 538/1173/3 551/423/19 539/1174/19 +f 542/1175/54 555/431/52 543/1176/52 +f 539/1177/19 552/425/50 540/1178/50 +f 536/1179/7 549/496/49 537/1180/49 +f 543/1181/52 544/433/187 532/1182/187 +f 540/1183/50 553/427/4 541/1184/4 +f 537/1185/49 550/420/3 538/1186/3 +f 541/1187/4 554/429/54 542/1188/54 +f 563/421/52 574/486/5 562/422/5 +f 560/426/48 571/459/10 559/428/10 +f 557/432/49 568/812/108 556/434/108 +f 564/497/8 575/489/52 563/421/52 +f 561/424/51 572/468/48 560/426/48 +f 558/430/53 569/442/49 557/432/49 +f 562/422/5 573/480/51 561/424/51 +f 559/428/10 570/448/53 558/430/53 +f 600/501/10 589/474/53 601/492/53 +f 597/510/5 586/462/51 598/505/51 +f 601/492/53 590/477/49 602/483/49 +f 598/505/51 587/465/48 599/503/48 +f 592/445/8 584/453/52 596/446/52 +f 602/483/49 591/814/108 603/484/108 +f 599/503/48 588/471/10 600/501/10 +f 596/446/52 585/456/5 597/510/5 +f 618/1189/4 605/500/54 617/1190/54 +f 622/1191/49 609/511/3 621/1192/3 +f 619/1193/50 606/502/4 618/1194/4 +f 616/1195/52 612/482/187 624/1196/187 +f 623/1197/7 610/444/49 622/1198/49 +f 620/1199/19 607/504/50 619/1200/50 +f 617/1201/54 604/491/52 616/1202/52 +f 621/1203/3 608/509/19 620/1204/19 +f 594/1205/51 577/1206/5 595/1207/5 +f 583/1208/10 579/1209/48 593/1210/48 +f 627/1211/3 546/1212/19 545/1213/3 +f 614/1214/54 565/1215/4 615/1216/4 +f 595/1217/5 567/1218/52 613/1219/52 +f 582/1220/53 535/1221/10 583/1208/10 +f 625/1222/50 565/1215/4 547/1223/50 +f 613/1219/52 566/1224/54 614/1214/54 +f 581/1225/49 534/1226/53 582/1220/53 +f 593/1210/48 578/1227/51 594/1205/51 +f 626/1228/19 547/1223/50 546/1212/19 +f 627/1211/3 533/1229/49 581/1225/49 +f 651/1230/75 636/1231/3 643/1232/6 +f 649/1233/74 642/1234/4 641/1235/8 +f 647/1236/76 640/1237/5 639/1238/9 +f 645/1239/71 638/1240/10 637/1241/7 +f 650/1242/70 643/1232/6 642/1234/4 +f 648/1243/69 641/1235/8 640/1237/5 +f 646/1244/73 639/1238/9 638/1240/10 +f 644/1245/72 637/1241/7 636/1246/3 +f 654/1247/67 646/1248/73 645/1249/71 +f 650/1250/70 660/1251/66 651/1252/75 +f 657/1253/44 649/1254/74 648/1243/69 +f 655/1255/63 647/1256/76 646/1248/73 +f 644/1257/72 654/1247/67 645/1249/71 +f 660/1251/66 644/1258/72 651/1252/75 +f 649/1254/74 659/1259/64 650/1250/70 +f 647/1256/76 657/1253/44 648/1243/69 +f 659/1260/64 668/1261/56 660/1262/66 +f 657/1253/44 666/1263/55 658/1264/65 +f 663/1265/62 656/1266/68 655/1267/63 +f 653/1268/14 662/1269/57 654/1270/67 +f 668/1261/56 653/1271/14 660/1262/66 +f 658/1264/65 667/1272/60 659/1260/64 +f 664/1273/58 657/1253/44 656/1266/68 +f 662/1269/57 655/1267/63 654/1270/67 +f 662/1274/57 671/1275/188 663/1276/62 +f 675/1277/189 668/1278/56 667/1279/60 +f 665/1280/59 674/1281/190 666/1282/55 +f 671/1275/188 664/1283/58 663/1276/62 +f 661/1284/61 670/1285/191 662/1274/57 +f 676/1286/192 661/1287/61 668/1278/56 +f 674/1281/190 667/1279/60 666/1282/55 +f 672/1288/193 665/1280/59 664/1283/58 +f 679/1289/7 687/1290/194 686/1291/195 +f 677/1292/6 689/1293/196 688/1294/197 +f 699/1295/8 683/1296/198 690/1297/199 +f 682/1298/5 684/1299/200 683/1300/198 +f 680/1301/10 686/1291/195 685/1302/201 +f 687/1290/194 677/1292/6 688/1294/197 +f 652/1303/4 690/1297/199 689/1293/196 +f 684/1299/200 680/1301/10 685/1302/201 +f 691/1304/202 683/1305/198 698/1306/11 +f 688/1307/197 692/1308/203 693/1309/204 +f 686/1310/195 694/1311/38 695/1312/205 +f 697/1313/206 685/1314/201 696/1315/207 +f 689/1316/196 691/1304/202 692/1308/203 +f 694/1311/38 688/1307/197 693/1309/204 +f 685/1314/201 695/1312/205 696/1315/207 +f 698/1317/11 684/1318/200 697/1313/206 +f 669/1319/208 697/1320/206 670/1321/191 +f 696/1322/207 672/1323/193 671/1324/188 +f 673/1325/209 693/1326/204 674/1327/190 +f 692/1328/203 676/1329/192 675/1330/189 +f 670/1321/191 696/1322/207 671/1324/188 +f 695/1331/205 673/1325/209 672/1323/193 +f 674/1327/190 692/1328/203 675/1330/189 +f 691/1332/202 669/1333/208 676/1329/192 +f 707/1334/6 714/1335/4 706/1336/4 +f 705/1337/8 712/1338/5 704/1339/5 +f 703/1340/9 710/1341/10 702/1342/10 +f 701/1343/7 709/1344/3 700/1345/3 +f 700/1345/3 715/1346/6 707/1334/6 +f 706/1336/4 713/1347/8 705/1337/8 +f 704/1348/5 711/1349/9 703/1340/9 +f 702/1342/10 708/1350/7 701/1343/7 +f 811/1351/210 802/1352/211 804/1353/212 +f 811/1351/210 801/1354/213 803/1355/214 +f 812/1356/215 800/1357/216 801/1354/213 +f 804/1353/212 800/1358/216 819/1359/217 +f 796/1360/218 807/1361/219 816/1362/220 +f 816/1362/220 806/1363/221 817/1364/222 +f 817/1364/222 805/1365/223 818/1366/224 +f 818/1366/224 804/1353/212 819/1359/217 +f 797/1367/225 816/1368/220 815/1369/226 +f 815/1369/226 817/1370/222 814/1371/227 +f 814/1371/227 818/1372/224 813/1373/228 +f 813/1373/228 819/1374/217 812/1356/215 +f 797/1367/225 808/1375/229 799/1376/230 +f 815/1369/226 809/1377/231 808/1375/229 +f 814/1371/227 810/1378/232 809/1377/231 +f 810/1378/232 812/1356/215 811/1351/210 +f 799/1376/230 807/1361/219 798/1379/233 +f 808/1375/229 806/1363/221 807/1361/219 +f 809/1377/231 805/1365/223 806/1363/221 +f 810/1378/232 804/1353/212 805/1365/223 +f 841/628/4 864/691/54 840/656/54 +f 834/643/53 856/672/49 833/640/49 +f 842/631/50 865/660/4 841/628/4 +f 835/647/10 858/675/53 834/643/53 +f 843/634/19 866/663/50 842/631/50 +f 836/646/48 859/861/10 835/647/10 +f 832/637/3 867/666/19 843/634/19 +f 837/649/51 860/679/48 836/646/48 +f 838/651/5 861/682/51 837/649/51 +f 839/657/52 862/687/5 838/653/5 +f 840/656/54 863/862/52 839/657/52 +f 833/640/49 857/669/3 832/637/3 +f 238/1029/234 237/1028/38 363/1380/3 +f 237/1030/38 244/1381/235 363/1382/3 +f 244/1025/235 243/1383/7 363/1384/3 +f 243/1032/7 242/1031/236 363/1385/3 +f 242/1026/236 241/1386/14 363/1387/3 +f 241/1034/14 240/1033/237 363/1388/3 +f 240/1027/237 239/1389/6 363/1390/3 +f 239/1024/6 238/1023/234 363/1391/3 +f 24/863/24 13/864/25 1/1/25 +f 13/864/25 14/865/26 2/28/26 +f 14/865/26 15/866/27 3/4/27 +f 15/866/27 16/867/28 4/13/28 +f 16/867/28 17/874/29 5/22/29 +f 5/34/29 17/874/29 18/868/30 +f 6/12/30 18/868/30 19/869/31 +f 19/870/31 20/871/32 8/701/32 +f 20/871/32 21/872/33 9/31/33 +f 21/872/33 22/875/34 10/697/34 +f 10/18/34 22/875/34 23/873/35 +f 11/27/35 23/873/35 24/863/24 +f 23/873/36 47/42/36 48/41/37 +f 48/45/37 37/44/38 13/864/38 +f 13/864/38 37/46/38 38/48/39 +f 38/49/39 39/51/40 15/866/40 +f 39/53/40 40/52/41 16/867/41 +f 16/867/41 40/54/41 41/56/42 +f 41/58/42 42/57/43 18/868/43 +f 42/59/43 43/61/44 19/869/44 +f 19/870/44 43/64/44 44/63/45 +f 44/67/45 45/66/46 21/872/46 +f 21/872/46 45/70/46 46/69/47 +f 22/875/47 46/73/47 47/72/36 +f 35/700/48 59/1392/48 58/876/10 +f 32/20/49 56/1393/49 55/877/3 +f 29/702/50 53/1394/50 52/878/4 +f 36/703/51 60/1395/51 59/879/48 +f 26/704/52 50/1396/52 49/880/5 +f 33/705/53 57/1397/53 56/881/49 +f 30/35/19 54/1398/19 53/882/50 +f 25/695/5 49/1399/5 60/883/51 +f 27/696/54 51/1400/54 50/884/52 +f 34/8/10 58/1401/10 57/885/53 +f 31/698/3 55/1402/3 54/886/19 +f 28/699/4 52/1403/4 51/887/54 +f 66/718/51 78/88/51 79/90/5 +f 63/50/53 75/82/53 76/84/10 +f 70/71/4 82/97/4 83/74/50 +f 67/62/5 79/93/5 80/92/52 +f 64/717/10 76/84/10 77/86/48 +f 71/40/50 83/74/50 84/76/19 +f 61/716/3 73/78/3 74/80/49 +f 68/65/52 80/92/52 81/95/54 +f 65/55/48 77/86/48 78/88/51 +f 72/43/19 84/76/19 73/78/3 +f 62/47/49 74/80/49 75/82/53 +f 69/68/54 81/95/54 82/97/4 +f 93/888/54 105/909/54 106/889/4 +f 90/891/51 102/910/51 103/892/5 +f 87/894/53 99/912/53 100/895/10 +f 94/890/4 106/889/4 107/897/50 +f 91/899/5 103/1404/5 104/900/52 +f 88/896/10 100/895/10 101/902/48 +f 95/898/50 107/897/50 108/904/19 +f 85/906/3 97/911/3 98/907/49 +f 92/901/52 104/900/52 105/909/54 +f 89/903/48 101/902/48 102/910/51 +f 96/905/19 108/904/19 97/911/3 +f 86/908/49 98/907/49 99/912/53 +f 120/119/19 132/921/19 121/913/3 +f 110/121/49 122/922/49 123/914/53 +f 117/103/54 129/923/54 130/915/4 +f 114/126/51 126/924/51 127/916/5 +f 111/100/53 123/914/53 124/917/10 +f 118/104/4 130/915/4 131/918/50 +f 115/734/5 127/1405/5 128/919/52 +f 112/109/10 124/917/10 125/920/48 +f 119/111/50 131/918/50 132/921/19 +f 109/128/3 121/913/3 122/922/49 +f 116/113/52 128/919/52 129/923/54 +f 113/116/48 125/920/48 126/924/51 +f 163/157/4 164/155/47 156/925/47 +f 161/752/1 162/166/16 154/927/16 +f 159/149/10 160/151/15 152/929/15 +f 157/152/2 158/154/41 150/931/41 +f 164/155/47 157/152/2 149/932/2 +f 162/166/16 163/157/4 155/926/4 +f 160/151/15 161/160/1 153/933/1 +f 158/154/41 159/149/10 151/930/10 +f 171/934/4 179/947/60 180/935/55 +f 169/937/1 177/1406/61 178/938/56 +f 167/940/10 175/950/62 176/941/57 +f 165/943/2 173/946/59 174/944/58 +f 172/936/47 180/935/55 173/946/59 +f 170/939/16 178/938/56 179/947/60 +f 168/942/15 176/941/57 177/948/61 +f 166/945/41 174/944/58 175/950/62 +f 176/951/57 185/961/67 186/952/14 +f 174/944/58 183/963/68 184/954/63 +f 180/935/55 179/964/60 188/956/64 +f 178/958/56 177/1407/61 186/959/14 +f 176/951/57 175/955/62 184/954/63 +f 174/944/58 173/946/59 182/962/44 +f 173/946/59 180/935/55 189/957/65 +f 178/958/56 187/960/66 188/956/64 +f 189/957/65 197/970/74 190/965/69 +f 187/960/66 195/971/75 196/966/70 +f 186/952/14 185/961/67 193/967/71 +f 183/963/68 191/972/76 192/969/73 +f 188/956/64 196/966/70 197/970/74 +f 186/959/14 194/1408/72 195/971/75 +f 185/961/67 184/954/63 192/969/73 +f 182/962/44 190/965/69 191/972/76 +f 194/973/72 201/1409/82 202/974/77 +f 192/976/73 199/985/83 200/977/78 +f 190/965/69 181/980/80 198/979/79 +f 197/970/74 204/986/84 181/980/80 +f 195/975/75 202/974/77 203/981/81 +f 193/978/71 200/977/78 201/983/82 +f 191/972/76 198/979/79 199/985/83 +f 196/982/70 203/981/81 204/986/84 +f 204/986/84 203/997/81 212/987/85 +f 202/989/77 201/1410/82 210/990/38 +f 199/992/83 208/1000/90 209/993/88 +f 198/979/79 181/980/80 206/995/11 +f 204/986/84 213/988/86 206/995/11 +f 203/997/81 202/989/77 211/991/87 +f 201/998/82 200/994/78 209/993/88 +f 198/979/79 207/996/89 208/1000/90 +f 212/987/85 211/991/87 219/1001/91 +f 210/999/38 209/993/88 217/1003/93 +f 208/1000/90 207/996/89 215/1005/95 +f 212/987/85 220/1002/92 221/1007/97 +f 210/990/38 218/1411/94 219/1001/91 +f 208/1000/90 216/1006/96 217/1003/93 +f 207/996/89 206/995/11 214/1008/98 +f 213/988/86 221/1007/97 214/1008/98 +f 215/1005/95 214/1008/98 205/1009/1 +f 221/1007/97 228/1019/16 205/1009/1 +f 220/1011/92 219/1021/91 226/1012/47 +f 218/1014/94 217/1022/93 224/1015/41 +f 216/1017/96 215/1005/95 222/1010/15 +f 220/1011/92 227/1013/4 228/1019/16 +f 218/1020/94 225/1412/2 226/1012/47 +f 216/1017/96 223/1018/10 224/1015/41 +f 231/176/99 230/180/100 238/1023/100 +f 235/170/101 243/1383/101 244/1025/102 +f 233/754/103 241/1386/103 242/1026/104 +f 231/176/99 239/1389/99 240/1027/105 +f 230/180/100 229/179/106 237/1028/106 +f 236/171/102 244/1381/102 237/1030/106 +f 235/170/101 234/173/104 242/1031/104 +f 233/185/103 232/177/105 240/1033/105 +f 316/260/4 340/292/4 339/323/54 +f 309/275/53 333/307/53 331/304/49 +f 317/263/50 341/295/50 340/292/4 +f 310/279/10 334/772/10 333/307/53 +f 318/266/19 342/298/19 341/295/50 +f 311/278/48 335/311/48 334/772/10 +f 307/269/3 332/301/3 342/298/19 +f 312/281/51 336/314/51 335/311/48 +f 313/283/5 337/317/5 336/314/51 +f 314/289/52 338/773/52 337/319/5 +f 315/288/54 339/323/54 338/773/52 +f 308/272/49 331/304/49 332/301/3 +f 383/1035/54 390/1042/54 389/1036/107 +f 380/1038/53 387/1044/53 386/1039/108 +f 384/1041/109 391/1047/109 390/1042/54 +f 381/1043/110 388/1413/110 387/1044/53 +f 379/1040/108 386/1039/108 385/1045/19 +f 378/1046/19 385/1045/19 391/1047/109 +f 397/1048/50 404/1055/50 403/1049/111 +f 394/1051/48 401/1057/48 400/1052/112 +f 398/1054/113 405/1060/113 404/1055/50 +f 395/1056/114 402/1414/114 401/1057/48 +f 393/1053/112 400/1052/112 399/1058/49 +f 392/1059/49 399/1058/49 405/1060/113 +f 417/1061/115 418/1415/11 426/1062/11 +f 407/381/7 414/1067/7 415/1064/3 +f 406/405/3 415/1064/3 421/1065/6 +f 412/401/4 420/1068/4 419/1066/8 +f 410/410/5 418/1415/5 417/1061/9 +f 408/411/10 416/1070/10 414/1067/7 +f 413/404/6 421/1065/6 420/1068/4 +f 411/399/8 419/1066/8 418/1069/5 +f 409/408/9 417/1061/9 416/1070/10 +f 416/1070/15 424/1416/15 422/1071/116 +f 421/1065/117 429/1417/117 428/1072/16 +f 419/1066/118 427/1418/118 426/1073/11 +f 416/1070/15 417/1061/115 425/1074/115 +f 414/1067/116 422/1419/116 423/1076/14 +f 415/1064/14 423/1420/14 429/1077/117 +f 420/1068/16 428/1421/16 427/1078/118 +f 449/415/7 457/1083/7 458/1079/10 +f 447/416/6 455/1084/6 456/1080/3 +f 444/383/8 452/1085/8 454/1081/4 +f 450/400/10 458/1079/10 459/1082/9 +f 448/790/3 456/1422/3 457/1083/7 +f 446/412/4 454/1081/4 455/1084/6 +f 445/382/5 453/1086/5 452/1085/8 +f 451/413/9 459/1082/9 453/1086/5 +f 500/1087/119 501/1423/162 489/1088/120 +f 463/1090/122 460/1104/135 461/1091/123 +f 463/1090/122 465/1092/124 464/1093/125 +f 487/1095/127 499/1424/238 500/1096/119 +f 485/1097/128 483/1129/156 494/1098/129 +f 465/1092/124 467/1105/136 466/1100/131 +f 490/1101/132 502/1425/239 503/1102/133 +f 485/1097/128 495/1099/130 460/1104/135 +f 467/1105/136 469/1110/140 468/1106/137 +f 503/1107/133 504/1426/142 492/1108/138 +f 465/1092/124 461/1091/123 486/1109/139 +f 469/1110/140 471/1114/144 470/1111/141 +f 504/1112/142 505/1427/240 493/1113/143 +f 469/1110/140 487/1095/127 488/1089/121 +f 471/1114/144 473/1117/147 472/1115/145 +f 493/1113/143 505/1428/240 506/1116/146 +f 473/1117/147 489/1088/120 490/1118/132 +f 473/1117/147 475/1119/148 474/1120/149 +f 494/1098/129 506/1429/146 507/1121/150 +f 477/1122/151 491/1103/134 492/1108/138 +f 475/1124/148 477/1122/151 476/1125/153 +f 495/1099/130 507/1430/150 496/1127/154 +f 481/1128/155 493/1113/143 494/1098/129 +f 477/1122/151 479/1123/152 478/1130/157 +f 496/1131/154 497/1431/241 461/1091/123 +f 467/1105/136 486/1109/139 487/1095/127 +f 479/1123/152 481/1128/155 480/1132/158 +f 461/1091/123 497/1432/241 498/1133/159 +f 473/1117/147 471/1114/144 488/1089/121 +f 481/1128/155 483/1129/156 482/1134/160 +f 475/1124/148 490/1101/132 491/1103/134 +f 498/1135/159 499/1433/238 487/1095/127 +f 483/1129/156 485/1097/128 484/1136/161 +f 501/1137/162 502/1434/239 490/1118/132 +f 479/1123/152 492/1108/138 493/1113/143 +f 485/1097/128 463/1090/122 462/1094/126 +f 468/1106/137 470/1111/141 512/1138/163 +f 498/1141/159 497/1435/241 506/1142/146 +f 497/1435/241 496/1436/154 506/1142/146 +f 496/1436/154 507/1437/150 506/1142/146 +f 506/1142/146 505/1438/240 504/1439/142 +f 504/1439/142 503/1440/133 502/1441/239 +f 502/1441/239 501/1442/162 500/1140/119 +f 500/1140/119 499/1443/238 498/1141/159 +f 506/1142/146 504/1439/142 502/1441/239 +f 502/1441/239 500/1140/119 506/1142/146 +f 511/1139/164 523/1444/186 522/1143/165 +f 462/1094/126 464/1093/125 509/1145/167 +f 466/1100/131 510/1144/166 509/1145/167 +f 482/1134/160 484/1136/161 519/1147/169 +f 478/1130/157 480/1132/158 517/1149/171 +f 476/1125/153 515/1152/174 514/1151/173 +f 462/1094/126 508/1146/168 519/1147/169 +f 472/1115/145 513/1153/175 512/1138/163 +f 468/1106/137 511/1139/164 510/1144/166 +f 480/1132/158 482/1134/160 518/1148/170 +f 478/1130/157 516/1150/172 515/1152/174 +f 474/1120/149 514/1445/173 513/1153/175 +f 520/1156/178 521/1446/179 524/1154/176 +f 521/1446/179 522/1447/165 524/1154/176 +f 522/1447/165 523/1448/186 524/1154/176 +f 524/1154/176 525/1449/185 526/1450/184 +f 526/1450/184 527/1451/183 528/1155/177 +f 528/1155/177 529/1452/182 530/1453/181 +f 530/1453/181 531/1454/180 528/1155/177 +f 531/1454/180 520/1156/178 528/1155/177 +f 524/1154/176 526/1450/184 528/1155/177 +f 509/1145/167 510/1144/166 522/1157/165 +f 509/1145/167 521/1455/179 520/1159/178 +f 519/1147/169 508/1146/168 520/1160/178 +f 519/1147/169 531/1456/180 530/1162/181 +f 518/1148/170 530/1457/181 529/1163/182 +f 516/1150/172 517/1149/171 529/1164/182 +f 516/1150/172 528/1458/177 527/1166/183 +f 514/1151/173 515/1152/174 527/1167/183 +f 513/1153/175 514/1445/173 526/1169/184 +f 513/1153/175 525/1459/185 524/1171/176 +f 512/1138/163 524/1460/176 523/1172/186 +f 538/1173/3 550/797/3 551/423/19 +f 542/1175/54 554/801/54 555/431/52 +f 539/1177/19 551/798/19 552/425/50 +f 536/1179/7 548/817/7 549/496/49 +f 543/1181/52 555/802/52 544/433/187 +f 540/1183/50 552/799/50 553/427/4 +f 537/1185/49 549/796/49 550/420/3 +f 541/1187/4 553/800/4 554/429/54 +f 563/421/52 575/489/52 574/486/5 +f 560/426/48 572/468/48 571/459/10 +f 557/432/49 569/442/49 568/812/108 +f 564/497/8 576/494/8 575/489/52 +f 561/424/51 573/480/51 572/468/48 +f 558/430/53 570/448/53 569/442/49 +f 562/422/5 574/486/5 573/480/51 +f 559/428/10 571/459/10 570/448/53 +f 600/501/10 588/471/10 589/474/53 +f 597/510/5 585/456/5 586/462/51 +f 601/492/53 589/474/53 590/477/49 +f 598/505/51 586/462/51 587/465/48 +f 592/445/8 580/438/8 584/453/52 +f 602/483/49 590/477/49 591/814/108 +f 599/503/48 587/465/48 588/471/10 +f 596/446/52 584/453/52 585/456/5 +f 618/1189/4 606/818/4 605/500/54 +f 622/1191/49 610/831/49 609/511/3 +f 619/1193/50 607/819/50 606/502/4 +f 616/1195/52 604/815/52 612/482/187 +f 623/1197/7 611/813/7 610/444/49 +f 620/1199/19 608/820/19 607/504/50 +f 617/1201/54 605/816/54 604/491/52 +f 621/1203/3 609/830/3 608/509/19 +f 594/1205/51 578/1227/51 577/1206/5 +f 583/1208/10 535/1221/10 579/1209/48 +f 627/1211/3 626/1228/19 546/1212/19 +f 614/1214/54 566/1224/54 565/1215/4 +f 595/1217/5 577/1461/5 567/1218/52 +f 582/1220/53 534/1226/53 535/1221/10 +f 625/1222/50 615/1216/4 565/1215/4 +f 613/1219/52 567/1218/52 566/1224/54 +f 581/1225/49 533/1229/49 534/1226/53 +f 593/1210/48 579/1209/48 578/1227/51 +f 626/1228/19 625/1222/50 547/1223/50 +f 627/1211/3 545/1213/3 533/1229/49 +f 651/1230/75 644/1462/72 636/1231/3 +f 649/1233/74 650/1242/70 642/1234/4 +f 647/1236/76 648/1243/69 640/1237/5 +f 645/1239/71 646/1244/73 638/1240/10 +f 650/1242/70 651/1230/75 643/1232/6 +f 648/1243/69 649/1233/74 641/1235/8 +f 646/1244/73 647/1236/76 639/1238/9 +f 644/1245/72 645/1239/71 637/1241/7 +f 654/1247/67 655/1255/63 646/1248/73 +f 650/1250/70 659/1259/64 660/1251/66 +f 657/1253/44 658/1463/65 649/1254/74 +f 655/1255/63 656/1464/68 647/1256/76 +f 644/1257/72 653/1465/14 654/1247/67 +f 660/1251/66 653/1466/14 644/1258/72 +f 649/1254/74 658/1463/65 659/1259/64 +f 647/1256/76 656/1464/68 657/1253/44 +f 659/1260/64 667/1272/60 668/1261/56 +f 657/1253/44 665/1280/59 666/1263/55 +f 663/1265/62 664/1273/58 656/1266/68 +f 653/1268/14 661/1467/61 662/1269/57 +f 668/1261/56 661/1468/61 653/1271/14 +f 658/1264/65 666/1263/55 667/1272/60 +f 664/1273/58 665/1280/59 657/1253/44 +f 662/1269/57 663/1265/62 655/1267/63 +f 662/1274/57 670/1285/191 671/1275/188 +f 675/1277/189 676/1286/192 668/1278/56 +f 665/1280/59 673/1325/209 674/1281/190 +f 671/1275/188 672/1288/193 664/1283/58 +f 661/1284/61 669/1469/208 670/1285/191 +f 676/1286/192 669/1470/208 661/1287/61 +f 674/1281/190 675/1277/189 667/1279/60 +f 672/1288/193 673/1325/209 665/1280/59 +f 679/1289/7 678/1471/3 687/1290/194 +f 677/1292/6 652/1303/4 689/1293/196 +f 699/1295/8 682/1472/5 683/1296/198 +f 682/1298/5 681/1473/9 684/1299/200 +f 680/1301/10 679/1289/7 686/1291/195 +f 687/1290/194 678/1471/3 677/1292/6 +f 652/1303/4 699/1295/8 690/1297/199 +f 684/1299/200 681/1473/9 680/1301/10 +f 691/1304/202 690/1474/199 683/1305/198 +f 688/1307/197 689/1316/196 692/1308/203 +f 686/1310/195 687/1290/194 694/1311/38 +f 697/1313/206 684/1318/200 685/1314/201 +f 689/1316/196 690/1474/199 691/1304/202 +f 694/1311/38 687/1290/194 688/1307/197 +f 685/1314/201 686/1310/195 695/1312/205 +f 698/1317/11 683/1475/198 684/1318/200 +f 669/1319/208 698/1476/11 697/1320/206 +f 696/1322/207 695/1331/205 672/1323/193 +f 673/1325/209 694/1311/38 693/1326/204 +f 692/1328/203 691/1332/202 676/1329/192 +f 670/1321/191 697/1320/206 696/1322/207 +f 695/1331/205 694/1311/38 673/1325/209 +f 674/1327/190 693/1326/204 692/1328/203 +f 691/1332/202 698/1477/11 669/1333/208 +f 707/1334/6 715/1346/6 714/1335/4 +f 705/1337/8 713/1347/8 712/1338/5 +f 703/1340/9 711/1349/9 710/1341/10 +f 701/1343/7 708/1350/7 709/1344/3 +f 700/1345/3 709/1344/3 715/1346/6 +f 706/1336/4 714/1335/4 713/1347/8 +f 704/1348/5 712/1478/5 711/1349/9 +f 702/1342/10 710/1341/10 708/1350/7 +f 811/1351/210 803/1355/214 802/1352/211 +f 811/1351/210 812/1356/215 801/1354/213 +f 812/1356/215 819/1374/217 800/1357/216 +f 804/1353/212 802/1352/211 800/1358/216 +f 796/1360/218 798/1379/233 807/1361/219 +f 816/1362/220 807/1361/219 806/1363/221 +f 817/1364/222 806/1363/221 805/1365/223 +f 818/1366/224 805/1365/223 804/1353/212 +f 797/1367/225 796/1479/218 816/1368/220 +f 815/1369/226 816/1368/220 817/1370/222 +f 814/1371/227 817/1370/222 818/1372/224 +f 813/1373/228 818/1372/224 819/1374/217 +f 797/1367/225 815/1369/226 808/1375/229 +f 815/1369/226 814/1371/227 809/1377/231 +f 814/1371/227 813/1373/228 810/1378/232 +f 810/1378/232 813/1373/228 812/1356/215 +f 799/1376/230 808/1375/229 807/1361/219 +f 808/1375/229 809/1377/231 806/1363/221 +f 809/1377/231 810/1378/232 805/1365/223 +f 810/1378/232 811/1351/210 804/1353/212 +f 841/628/4 865/660/4 864/691/54 +f 834/643/53 858/675/53 856/672/49 +f 842/631/50 866/663/50 865/660/4 +f 835/647/10 859/861/10 858/675/53 +f 843/634/19 867/666/19 866/663/50 +f 836/646/48 860/679/48 859/861/10 +f 832/637/3 857/669/3 867/666/19 +f 837/649/51 861/682/51 860/679/48 +f 838/651/5 862/685/5 861/682/51 +f 839/657/52 863/862/52 862/687/5 +f 840/656/54 864/691/54 863/862/52 +f 833/640/49 856/672/49 857/669/3 diff --git a/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj b/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj new file mode 100644 index 000000000..420992dda --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj @@ -0,0 +1,2314 @@ +# Blender v2.79 (sub 0) OBJ File: 'maresleg.blend' +# www.blender.org +o Circle +v 0.000000 1.187500 8.000000 +v -0.093750 1.162380 8.000000 +v -0.162380 1.093750 8.000000 +v -0.187500 1.000000 8.000000 +v -0.162380 0.906250 8.000000 +v -0.093750 0.837620 8.000000 +v 0.000000 0.812500 8.000000 +v 0.093750 0.837620 8.000000 +v 0.162380 0.906250 8.000000 +v 0.187500 1.000000 8.000000 +v 0.162380 1.093750 8.000000 +v 0.093750 1.162380 8.000000 +v 0.000000 1.187500 -2.000000 +v -0.093750 1.162380 -2.000000 +v -0.162380 1.093750 -2.000000 +v -0.187500 1.000000 -2.000000 +v -0.162380 0.906250 -2.000000 +v -0.093750 0.837620 -2.000000 +v 0.000000 0.812500 -2.000000 +v 0.093750 0.837620 -2.000000 +v 0.162380 0.906250 -2.000000 +v 0.187500 1.000000 -2.000000 +v 0.162380 1.093750 -2.000000 +v 0.093750 1.162380 -2.000000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v 0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v 0.000000 1.125000 7.000000 +v -0.062500 1.108253 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v 0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +v 0.000000 1.125000 3.750000 +v -0.062500 1.108253 3.750000 +v -0.108253 1.062500 3.750000 +v -0.125000 1.000000 3.750000 +v -0.108253 0.937500 3.750000 +v -0.062500 0.891747 3.750000 +v 0.000000 0.875000 3.750000 +v 0.062500 0.891747 3.750000 +v 0.108253 0.937500 3.750000 +v 0.125000 1.000000 3.750000 +v 0.108253 1.062500 3.750000 +v 0.062500 1.108253 3.750000 +v 0.000000 1.125000 2.750000 +v -0.062500 1.108253 2.750000 +v -0.108253 1.062500 2.750000 +v -0.125000 1.000000 2.750000 +v -0.108253 0.937500 2.750000 +v -0.062500 0.891747 2.750000 +v 0.000000 0.875000 2.750000 +v 0.062500 0.891747 2.750000 +v 0.108253 0.937500 2.750000 +v 0.125000 1.000000 2.750000 +v 0.108253 1.062500 2.750000 +v 0.062500 1.108253 2.750000 +v 0.000000 1.187500 3.000000 +v -0.093750 1.162380 3.000000 +v -0.162380 1.093750 3.000000 +v -0.187500 1.000000 3.000000 +v -0.162380 0.906250 3.000000 +v -0.093750 0.837620 3.000000 +v 0.000000 0.812500 3.000000 +v 0.093750 0.837620 3.000000 +v 0.162380 0.906250 3.000000 +v 0.187500 1.000000 3.000000 +v 0.162380 1.093750 3.000000 +v 0.093750 1.162380 3.000000 +v 0.000000 1.250000 3.000000 +v -0.125000 1.216506 3.000000 +v -0.216506 1.125000 3.000000 +v -0.250000 1.000000 3.000000 +v 0.250000 1.000000 3.000000 +v 0.216506 1.125000 3.000000 +v 0.125000 1.216506 3.000000 +v 0.000000 1.250000 3.250000 +v -0.125000 1.216506 3.250000 +v -0.216506 1.125000 3.250000 +v -0.250000 1.000000 3.250000 +v 0.250000 1.000000 3.250000 +v 0.216506 1.125000 3.250000 +v 0.125000 1.216506 3.250000 +v 0.000000 1.187500 3.250000 +v -0.093750 1.162380 3.250000 +v -0.162380 1.093750 3.250000 +v -0.187500 1.000000 3.250000 +v -0.162380 0.906250 3.250000 +v -0.093750 0.837620 3.250000 +v 0.000000 0.812500 3.250000 +v 0.093750 0.837620 3.250000 +v 0.162380 0.906250 3.250000 +v 0.187500 1.000000 3.250000 +v 0.162380 1.093750 3.250000 +v 0.093750 1.162380 3.250000 +v 0.000000 0.750000 -2.000000 +v -0.093750 0.724880 -2.000000 +v -0.162380 0.656250 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.162380 0.468750 -2.000000 +v -0.093750 0.400120 -2.000000 +v 0.000000 0.375000 -2.000000 +v 0.093750 0.400120 -2.000000 +v 0.162380 0.468750 -2.000000 +v 0.187500 0.562500 -2.000000 +v 0.162380 0.656250 -2.000000 +v 0.093750 0.724880 -2.000000 +v 0.000000 0.750000 3.000000 +v -0.093750 0.724880 3.000000 +v -0.162380 0.656250 3.000000 +v -0.187500 0.562500 3.000000 +v -0.162380 0.468750 3.000000 +v -0.093750 0.400120 3.000000 +v 0.000000 0.375000 3.000000 +v 0.093750 0.400120 3.000000 +v 0.162380 0.468750 3.000000 +v 0.187500 0.562500 3.000000 +v 0.162380 0.656250 3.000000 +v 0.093750 0.724880 3.000000 +v -0.250000 0.562500 3.000000 +v -0.216506 0.437500 3.000000 +v -0.125000 0.345994 3.000000 +v 0.000000 0.312500 3.000000 +v 0.125000 0.345994 3.000000 +v 0.216506 0.437500 3.000000 +v 0.250000 0.562500 3.000000 +v -0.250000 0.562500 3.250000 +v -0.216506 0.437500 3.250000 +v -0.125000 0.345994 3.250000 +v 0.000000 0.312500 3.250000 +v 0.125000 0.345994 3.250000 +v 0.216506 0.437500 3.250000 +v 0.250000 0.562500 3.250000 +v 0.000000 1.250000 -2.000000 +v -0.125000 1.216506 -2.000000 +v -0.216506 1.125000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 1.000000 -2.000000 +v 0.216506 1.125000 -2.000000 +v 0.125000 1.216506 -2.000000 +v -0.250000 0.562500 -2.000000 +v -0.216506 0.437500 -2.000000 +v -0.125000 0.345994 -2.000000 +v 0.000000 0.312500 -2.000000 +v 0.125000 0.345994 -2.000000 +v 0.216506 0.437500 -2.000000 +v 0.250000 0.562500 -2.000000 +v -0.125000 1.216506 -2.375000 +v 0.000000 1.250000 -2.375000 +v -0.216506 1.125000 -2.375000 +v -0.250000 1.000000 -2.375000 +v 0.216506 1.125000 -2.375000 +v 0.250000 1.000000 -2.375000 +v 0.125000 1.216506 -2.375000 +v -0.250000 0.562500 -2.375000 +v 0.250000 0.562500 -2.375000 +v -0.216506 0.437500 -2.375000 +v -0.125000 0.345994 -2.375000 +v 0.000000 0.312500 -2.375000 +v 0.125000 0.345994 -2.375000 +v 0.216506 0.437500 -2.375000 +v 0.000000 1.125000 -2.375000 +v -0.062500 1.108253 -2.375000 +v -0.108253 1.062500 -2.375000 +v -0.125000 1.000000 -2.375000 +v -0.108253 0.937500 -2.375000 +v -0.062500 0.891747 -2.375000 +v 0.000000 0.875000 -2.375000 +v 0.062500 0.891747 -2.375000 +v 0.108253 0.937500 -2.375000 +v 0.125000 1.000000 -2.375000 +v 0.108253 1.062500 -2.375000 +v 0.062500 1.108253 -2.375000 +v 0.000000 0.687500 -2.375000 +v -0.062500 0.670753 -2.375000 +v -0.108253 0.625000 -2.375000 +v -0.125000 0.562500 -2.375000 +v -0.108253 0.500000 -2.375000 +v -0.062500 0.454247 -2.375000 +v 0.000000 0.437500 -2.375000 +v 0.062500 0.454247 -2.375000 +v 0.108253 0.500000 -2.375000 +v 0.125000 0.562500 -2.375000 +v 0.108253 0.625000 -2.375000 +v 0.062500 0.670753 -2.375000 +v 0.000000 1.125000 -1.375000 +v -0.062500 1.108253 -1.375000 +v -0.108253 1.062500 -1.375000 +v -0.125000 1.000000 -1.375000 +v -0.108253 0.937500 -1.375000 +v -0.062500 0.891747 -1.375000 +v 0.000000 0.875000 -1.375000 +v 0.062500 0.891747 -1.375000 +v 0.108253 0.937500 -1.375000 +v 0.125000 1.000000 -1.375000 +v 0.108253 1.062500 -1.375000 +v 0.062500 1.108253 -1.375000 +v 0.000000 0.687500 -1.375000 +v -0.062500 0.670753 -1.375000 +v -0.108253 0.625000 -1.375000 +v -0.125000 0.562500 -1.375000 +v -0.108253 0.500000 -1.375000 +v -0.062500 0.454247 -1.375000 +v 0.000000 0.437500 -1.375000 +v 0.062500 0.454247 -1.375000 +v 0.108253 0.500000 -1.375000 +v 0.125000 0.562500 -1.375000 +v 0.108253 0.625000 -1.375000 +v 0.062500 0.670753 -1.375000 +v 0.312500 1.125000 -2.125000 +v 0.312500 1.125000 -2.500000 +v 0.187500 1.125000 -2.125000 +v 0.187500 1.125000 -2.500000 +v 0.312500 0.437500 -2.125000 +v 0.187500 0.437500 -2.125000 +v 0.312500 0.187500 -2.375000 +v 0.312500 1.000000 -2.625000 +v 0.187500 1.000000 -2.625000 +v 0.312500 1.000000 -3.000000 +v 0.187500 1.000000 -3.000000 +v 0.312500 0.562500 -3.750000 +v 0.312500 0.875000 -3.375000 +v 0.187500 0.875000 -3.375000 +v 0.312500 -0.062500 -2.875000 +v 0.312500 -0.062500 -3.875000 +v -0.187500 1.125000 -2.125000 +v -0.187500 1.125000 -2.500000 +v -0.312500 1.125000 -2.125000 +v -0.312500 1.125000 -2.500000 +v -0.187500 0.437500 -2.125000 +v -0.312500 0.437500 -2.125000 +v -0.312500 0.187500 -2.375000 +v -0.187500 1.000000 -2.625000 +v -0.312500 1.000000 -2.625000 +v -0.187500 1.000000 -3.000000 +v -0.312500 1.000000 -3.000000 +v -0.312500 0.562500 -3.750000 +v -0.187500 0.875000 -3.375000 +v -0.312500 0.875000 -3.375000 +v -0.312500 -0.062500 -2.875000 +v -0.312500 -0.062500 -3.875000 +v -0.187500 0.769607 -3.582107 +v -0.187500 0.445183 -3.798880 +v 0.250000 0.562500 -2.000000 +v -0.250000 0.562500 -2.000000 +v 0.250000 1.000000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 0.562500 1.625000 +v -0.250000 0.562500 1.625000 +v 0.250000 1.000000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.250000 0.687500 1.750000 +v -0.250000 0.687500 1.750000 +v 0.250000 0.874000 1.750000 +v -0.250000 0.874000 1.750000 +v 0.187500 0.562500 -2.000000 +v 0.187500 1.000000 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.187500 1.000000 -2.000000 +v 0.187500 0.562500 -1.375000 +v 0.187500 1.000000 -1.375000 +v -0.187500 0.562500 -1.375000 +v -0.187500 1.000000 -1.375000 +v 0.187500 1.187500 -2.375000 +v -0.187500 1.187500 -2.375000 +v 0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.875000 +v 0.187500 0.437500 -2.875000 +v -0.187500 1.187500 -2.500000 +v 0.187500 1.187500 -2.500000 +v -0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -2.875000 +v -0.187500 -0.062500 -2.875000 +v -0.187500 0.062500 -3.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 0.562500 -3.750000 +v 0.187500 0.562500 -3.750000 +v 0.187500 0.062500 -3.875000 +v 0.187500 0.445183 -3.798880 +v 0.187500 0.769607 -3.582107 +v 0.187500 0.986380 -3.257684 +v 0.187500 1.062500 -2.875000 +v -0.187500 0.986380 -3.257684 +v -0.187500 1.062500 -2.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 1.062500 -2.625000 +v 0.187500 1.062500 -2.625000 +v 0.312500 0.437500 -4.125000 +v -0.312500 0.437500 -4.125000 +v 0.312500 -0.187500 -4.125000 +v -0.312500 -0.187500 -4.125000 +v -0.187500 0.437500 -3.500000 +v 0.187500 0.437500 -3.500000 +v -0.250000 -0.250000 -4.125000 +v 0.250000 -0.250000 -4.125000 +v -0.250000 0.500000 -4.125000 +v 0.250000 0.500000 -4.125000 +v -0.250000 -0.250000 -5.625000 +v -0.250000 -1.000000 -5.250000 +v 0.250000 -1.000000 -5.250000 +v 0.250000 -0.250000 -5.625000 +v 0.375000 -0.125000 -4.125000 +v 0.375000 0.375000 -4.125000 +v 0.375000 -0.875000 -5.312500 +v 0.375000 -0.375000 -5.562500 +v -0.375000 0.375000 -4.125000 +v -0.375000 -0.125000 -4.125000 +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.875000 -5.312500 +v -0.250000 -0.500000 -5.750000 +v -0.250000 -1.000000 -5.500000 +v 0.250000 -1.000000 -5.500000 +v 0.250000 -0.500000 -5.750000 +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.625000 -5.437500 +v -0.375000 -1.375000 -8.000000 +v -0.375000 0.000000 -5.562500 +v -0.375000 -0.125000 -8.000000 +v 0.375000 -0.375000 -5.562500 +v 0.375000 -0.625000 -5.437500 +v 0.375000 -1.375000 -8.000000 +v 0.375000 0.000000 -5.562500 +v 0.375000 -0.125000 -8.000000 +v 0.250000 0.000000 -8.000000 +v -0.250000 0.000000 -8.000000 +v -0.250000 -1.500000 -8.000000 +v 0.250000 -1.500000 -8.000000 +v 0.250000 -0.750000 -5.375000 +v -0.250000 -0.750000 -5.375000 +v 0.250000 0.125000 -5.562500 +v -0.250000 0.125000 -5.562500 +v 0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.625000 +v 0.125000 -0.062500 -3.625000 +v 0.125000 -0.812500 -4.875000 +v -0.125000 -0.812500 -4.875000 +v 0.125000 -1.062500 -4.875000 +v -0.125000 -1.062500 -4.875000 +v 0.125000 -1.187500 -4.750000 +v -0.125000 -1.187500 -4.750000 +v 0.125000 -1.187500 -4.500000 +v -0.125000 -1.187500 -4.500000 +v 0.125000 -0.687500 -3.750000 +v -0.125000 -0.687500 -3.750000 +v 0.125000 -0.437500 -3.750000 +v -0.125000 -0.437500 -3.750000 +v 0.125000 -0.437500 -3.250000 +v -0.125000 -0.437500 -3.250000 +v 0.125000 -0.187500 -3.000000 +v -0.125000 -0.187500 -3.000000 +v 0.125000 -0.062500 -3.000000 +v -0.125000 -0.062500 -3.000000 +v 0.125000 -0.187500 -3.062500 +v -0.125000 -0.187500 -3.062500 +v 0.125000 -0.062500 -3.062500 +v -0.125000 -0.062500 -3.062500 +v 0.125000 -0.375000 -3.625000 +v -0.125000 -0.375000 -3.625000 +v 0.125000 -0.375000 -3.250000 +v -0.125000 -0.375000 -3.250000 +v 0.125000 -0.250000 -3.812500 +v -0.125000 -0.250000 -3.812500 +v 0.125000 -1.125000 -4.750000 +v -0.125000 -1.125000 -4.750000 +v 0.125000 -1.125000 -4.500000 +v -0.125000 -1.125000 -4.500000 +v 0.125000 -0.812500 -4.812500 +v -0.125000 -0.812500 -4.812500 +v 0.125000 -1.062500 -4.812500 +v -0.125000 -1.062500 -4.812500 +v 0.125000 -0.750000 -3.937500 +v -0.125000 -0.750000 -3.937500 +v 0.125000 -0.500000 -3.937500 +v -0.125000 -0.500000 -3.937500 +v 0.125000 -0.437500 -4.250000 +v -0.125000 -0.437500 -4.250000 +v 0.125000 -0.437500 -4.000000 +v -0.125000 -0.437500 -4.000000 +v 0.062500 -0.062500 -3.562500 +v -0.062500 -0.062500 -3.562500 +v 0.062500 -0.062500 -3.500000 +v -0.062500 -0.062500 -3.500000 +v 0.062500 -0.187500 -3.562500 +v -0.062500 -0.187500 -3.562500 +v 0.062500 -0.187500 -3.500000 +v -0.062500 -0.187500 -3.500000 +v 0.062500 -0.312500 -3.437500 +v -0.062500 -0.312500 -3.437500 +v 0.000000 1.625000 -2.375000 +v -0.062500 1.608253 -2.375000 +v -0.108253 1.562500 -2.375000 +v -0.125000 1.500000 -2.375000 +v -0.108253 1.437500 -2.375000 +v -0.062500 1.391747 -2.375000 +v 0.000000 1.375000 -2.375000 +v 0.062500 1.391747 -2.375000 +v 0.108253 1.437500 -2.375000 +v 0.125000 1.500000 -2.375000 +v 0.108253 1.562500 -2.375000 +v 0.062500 1.608253 -2.375000 +v 0.000000 1.625000 -1.625000 +v -0.062500 1.608253 -1.625000 +v -0.108253 1.562500 -1.625000 +v -0.125000 1.500000 -1.625000 +v -0.108253 1.437500 -1.625000 +v -0.062500 1.391747 -1.625000 +v 0.000000 1.375000 -1.625000 +v 0.062500 1.391747 -1.625000 +v 0.108253 1.437500 -1.625000 +v 0.125000 1.500000 -1.625000 +v 0.108253 1.562500 -1.625000 +v 0.062500 1.608253 -1.625000 +v 0.000000 1.640625 -2.375000 +v -0.070312 1.621785 -2.375000 +v -0.121785 1.570312 -2.375000 +v -0.140625 1.500000 -2.375000 +v -0.121785 1.429688 -2.375000 +v -0.070312 1.378215 -2.375000 +v 0.000000 1.359375 -2.375000 +v 0.070312 1.378215 -2.375000 +v 0.121785 1.429688 -2.375000 +v 0.140625 1.500000 -2.375000 +v 0.121785 1.570312 -2.375000 +v 0.070312 1.621785 -2.375000 +v 0.000000 1.640625 -2.437500 +v -0.070312 1.621785 -2.437500 +v -0.121785 1.570312 -2.437500 +v -0.140625 1.500000 -2.437500 +v -0.121785 1.429688 -2.437500 +v -0.070312 1.378215 -2.437500 +v 0.000000 1.359375 -2.437500 +v 0.070312 1.378215 -2.437500 +v 0.121785 1.429688 -2.437500 +v 0.140625 1.500000 -2.437500 +v 0.121785 1.570312 -2.437500 +v 0.070312 1.621785 -2.437500 +vt 0.004098 0.224299 +vt 0.000000 0.205607 +vt 0.004098 0.205607 +vt 0.004098 -0.000000 +vt 0.000000 0.009346 +vt 0.000000 -0.000000 +vt 0.004098 0.037383 +vt 0.000000 0.018692 +vt 0.004098 0.018692 +vt 0.004098 0.056075 +vt 0.000000 0.037383 +vt 0.000000 0.065421 +vt 0.000000 0.056075 +vt 0.004098 0.093458 +vt 0.000000 0.074766 +vt 0.004098 0.074766 +vt 0.000000 0.102804 +vt 0.000000 0.093458 +vt 0.004098 0.130841 +vt 0.000000 0.112150 +vt 0.004098 0.112150 +vt 0.000000 0.140187 +vt 0.000000 0.130841 +vt 0.004098 0.168224 +vt 0.000000 0.149533 +vt 0.004098 0.149533 +vt 0.000000 0.177570 +vt 0.000000 0.168224 +vt 0.004098 0.186916 +vt 0.000000 0.196262 +vt 0.000000 0.186916 +vt 0.073770 0.224346 +vt 0.080851 0.233668 +vt 0.073770 0.261635 +vt 0.073770 0.336468 +vt 0.080862 0.345804 +vt 0.073770 0.373812 +vt 0.286885 0.224299 +vt 0.282787 0.205607 +vt 0.286885 0.205607 +vt 0.286885 0.186916 +vt 0.282787 0.196262 +vt 0.282787 0.186916 +vt 0.286885 0.168224 +vt 0.282787 0.177570 +vt 0.282787 0.168224 +vt 0.282787 0.149533 +vt 0.286885 0.149533 +vt 0.286885 0.130841 +vt 0.282787 0.140187 +vt 0.282787 0.130841 +vt 0.282787 0.112150 +vt 0.286885 0.112150 +vt 0.286885 0.093458 +vt 0.282787 0.102804 +vt 0.282787 0.093458 +vt 0.282787 0.074766 +vt 0.286885 0.074766 +vt 0.286885 0.056075 +vt 0.282787 0.065421 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.286885 0.037383 +vt 0.282787 0.018692 +vt 0.286885 0.018692 +vt 0.286885 0.000000 +vt 0.282787 0.009346 +vt 0.282787 -0.000000 +vt 0.571329 0.341081 +vt 0.573778 0.359421 +vt 0.567782 0.345750 +vt 0.575825 0.351334 +vt 0.581967 0.364425 +vt 0.581967 0.355087 +vt 0.590157 0.359421 +vt 0.588109 0.351334 +vt 0.596152 0.345750 +vt 0.594252 0.327074 +vt 0.592606 0.341081 +vt 0.588109 0.302814 +vt 0.596152 0.243035 +vt 0.592606 0.313068 +vt 0.569683 0.327074 +vt 0.565588 0.327074 +vt 0.557370 0.359421 +vt 0.559819 0.341081 +vt 0.563365 0.345750 +vt 0.549180 0.364425 +vt 0.555323 0.351334 +vt 0.540991 0.359421 +vt 0.549180 0.355087 +vt 0.534996 0.345750 +vt 0.543038 0.351334 +vt 0.532801 0.327074 +vt 0.538542 0.341081 +vt 0.598346 0.327074 +vt 0.598346 0.261711 +vt 0.565588 0.261711 +vt 0.571329 0.313068 +vt 0.575825 0.302814 +vt 0.567782 0.243035 +vt 0.573778 0.229364 +vt 0.581967 0.299061 +vt 0.581967 0.224360 +vt 0.590157 0.229364 +vt 0.561465 0.327074 +vt 0.565560 0.327074 +vt 0.532801 0.261711 +vt 0.538542 0.313068 +vt 0.559819 0.313068 +vt 0.555323 0.302814 +vt 0.563365 0.243035 +vt 0.549180 0.299061 +vt 0.557370 0.229364 +vt 0.540991 0.229364 +vt 0.543038 0.302814 +vt 0.534996 0.243035 +vt 0.476516 0.252326 +vt 0.483607 0.224321 +vt 0.490697 0.252326 +vt 0.476543 0.364441 +vt 0.483607 0.336542 +vt 0.490670 0.364441 +vt 0.620900 0.302820 +vt 0.625399 0.275706 +vt 0.625399 0.313079 +vt 0.614754 0.299064 +vt 0.620900 0.285965 +vt 0.608608 0.302820 +vt 0.614754 0.289721 +vt 0.604109 0.313079 +vt 0.608608 0.285965 +vt 0.602462 0.327095 +vt 0.604109 0.275706 +vt 0.627046 0.261690 +vt 0.627046 0.327095 +vt 0.631143 0.327095 +vt 0.631143 0.261690 +vt 0.602462 0.261690 +vt 0.598365 0.327095 +vt 0.598365 0.261690 +vt 0.600561 0.345781 +vt 0.604109 0.341110 +vt 0.608608 0.351370 +vt 0.614754 0.355125 +vt 0.606559 0.359461 +vt 0.620900 0.351370 +vt 0.614754 0.364468 +vt 0.625399 0.341110 +vt 0.622949 0.359461 +vt 0.628948 0.345781 +vt 0.628948 0.243004 +vt 0.625399 0.247675 +vt 0.620900 0.237416 +vt 0.614754 0.233660 +vt 0.622949 0.229324 +vt 0.606559 0.229324 +vt 0.608608 0.237416 +vt 0.600561 0.243004 +vt 0.604109 0.247675 +vt 0.643444 0.310911 +vt 0.647541 0.280377 +vt 0.647541 0.308408 +vt 0.651638 0.310911 +vt 0.654638 0.271034 +vt 0.654638 0.317751 +vt 0.655736 0.327095 +vt 0.640444 0.271034 +vt 0.640444 0.317751 +vt 0.639346 0.261690 +vt 0.639346 0.327095 +vt 0.631152 0.327095 +vt 0.631152 0.261690 +vt 0.663930 0.327095 +vt 0.655736 0.261690 +vt 0.663930 0.261690 +vt 0.654638 0.336438 +vt 0.661735 0.345781 +vt 0.651638 0.343278 +vt 0.655736 0.359461 +vt 0.647541 0.345781 +vt 0.647541 0.364468 +vt 0.639346 0.359461 +vt 0.640444 0.336438 +vt 0.633347 0.345781 +vt 0.640444 0.252347 +vt 0.633347 0.243004 +vt 0.643444 0.245507 +vt 0.639346 0.229324 +vt 0.647541 0.224317 +vt 0.651638 0.245507 +vt 0.655736 0.229324 +vt 0.661735 0.243004 +vt 0.654638 0.252347 +vt 0.713115 0.186916 +vt 0.721311 0.289720 +vt 0.713115 0.289720 +vt 0.803279 0.252336 +vt 0.778689 0.271028 +vt 0.770492 0.112150 +vt 0.721311 0.485981 +vt 0.713115 0.383178 +vt 0.721311 0.383178 +vt 0.803279 0.420561 +vt 0.827869 0.467290 +vt 0.770492 0.560748 +vt 0.975410 0.317757 +vt 0.909836 0.261682 +vt 0.975410 0.261682 +vt 0.028689 0.728972 +vt 0.266393 0.663551 +vt 0.266393 0.728972 +vt 0.266393 0.588785 +vt 0.028689 0.523364 +vt 0.266393 0.523364 +vt 0.020492 0.570093 +vt 0.028689 0.588785 +vt 0.020492 0.682243 +vt 0.028689 0.663551 +vt 0.852459 0.504673 +vt 0.877049 0.392523 +vt 0.877049 0.504673 +vt 0.975410 0.635514 +vt 1.000000 0.616822 +vt 1.000000 0.635514 +vt 0.975410 0.598131 +vt 1.000000 0.598131 +vt 0.852459 0.392523 +vt 0.877049 0.317757 +vt 0.836066 0.112150 +vt 0.852459 0.186916 +vt 0.827869 0.205607 +vt 0.836066 0.560748 +vt 0.852459 0.485981 +vt 0.852459 0.579439 +vt 0.852459 0.102804 +vt 0.852459 0.000000 +vt 0.885246 0.018692 +vt 0.959016 0.158879 +vt 0.942623 0.102804 +vt 0.959016 0.102804 +vt 0.959016 0.084112 +vt 0.934426 0.037383 +vt 0.942623 0.158879 +vt 0.909836 0.242991 +vt 0.885246 0.242991 +vt 0.852459 0.158879 +vt 0.885246 0.392523 +vt 0.909836 0.317757 +vt 0.909836 0.392523 +vt 0.934426 0.224299 +vt 0.959016 0.177570 +vt 0.893443 0.485981 +vt 0.909836 0.392523 +vt 0.877049 0.392523 +vt 0.893443 0.485981 +vt 0.885246 0.504673 +vt 0.934942 0.474589 +vt 0.956208 0.442187 +vt 0.970412 0.393687 +vt 0.266393 0.738318 +vt 0.274590 0.644860 +vt 0.315574 0.663551 +vt 0.803279 0.803738 +vt 0.721311 0.803738 +vt 0.803279 0.691589 +vt 0.520492 0.691589 +vt 0.520492 0.803738 +vt 0.495902 0.710280 +vt 0.545082 0.691589 +vt 0.553279 0.710280 +vt 0.336066 0.878505 +vt 0.344262 0.887850 +vt 0.336066 0.887850 +vt 0.344262 0.934579 +vt 0.336066 0.925234 +vt 0.344262 0.925234 +vt 0.368852 0.887850 +vt 0.393443 0.878505 +vt 0.401639 0.887850 +vt 0.393443 0.934579 +vt 0.368852 0.925234 +vt 0.401639 0.925234 +vt 0.364754 0.878505 +vt 0.364754 0.934579 +vt 0.241803 0.738318 +vt 0.258197 0.728972 +vt 0.241803 0.728972 +vt 0.258197 0.738318 +vt 0.241803 0.728972 +vt 0.258197 0.728972 +vt 0.262295 0.747664 +vt 0.266393 0.785047 +vt 0.266393 0.747664 +vt 0.262295 0.785047 +vt 0.266393 0.747664 +vt 0.266393 0.785047 +vt 0.262295 0.747664 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.192623 0.841121 +vt 0.196721 0.869159 +vt 0.209016 0.841121 +vt 0.209016 0.841121 +vt 0.196721 0.869159 +vt 0.225410 0.841121 +vt 0.192623 0.897196 +vt 0.225410 0.841121 +vt 0.168033 0.785047 +vt 0.172131 0.766355 +vt 0.172131 0.785047 +vt 0.180328 0.803738 +vt 0.184426 0.785047 +vt 0.184426 0.803738 +vt 0.168033 0.803738 +vt 0.172131 0.803738 +vt 0.180328 0.785047 +vt 0.180328 0.766355 +vt 0.778689 0.803764 +vt 0.785777 0.813097 +vt 0.778689 0.841096 +vt 0.762295 0.878505 +vt 0.766393 0.869159 +vt 0.766393 0.878505 +vt 0.762295 0.822430 +vt 0.766393 0.831776 +vt 0.762295 0.831776 +vt 0.762295 0.906542 +vt 0.766393 0.915888 +vt 0.762295 0.915888 +vt 0.766393 0.887850 +vt 0.762295 0.887850 +vt 0.762295 0.841121 +vt 0.766393 0.841121 +vt 0.762295 0.813084 +vt 0.766393 0.803738 +vt 0.766393 0.813084 +vt 0.762295 0.897196 +vt 0.766393 0.897196 +vt 0.766393 0.850467 +vt 0.762295 0.850467 +vt 0.762295 0.859813 +vt 0.762295 0.869159 +vt 0.766393 0.822430 +vt 0.766393 0.906542 +vt 0.766393 0.859813 +vt 0.787992 0.831765 +vt 0.795082 0.803760 +vt 0.802173 0.831765 +vt 0.000000 0.214953 +vt 0.000000 0.028037 +vt 0.000000 0.046729 +vt 0.000000 0.084112 +vt 0.000000 0.121495 +vt 0.000000 0.158879 +vt 0.069682 0.259137 +vt 0.066690 0.233668 +vt 0.066690 0.252313 +vt 0.065594 0.242991 +vt 0.069682 0.226844 +vt 0.077859 0.226844 +vt 0.081947 0.242991 +vt 0.080851 0.252313 +vt 0.077858 0.259137 +vt 0.069676 0.371311 +vt 0.066679 0.345804 +vt 0.066679 0.364476 +vt 0.065582 0.355140 +vt 0.069676 0.338970 +vt 0.077865 0.338970 +vt 0.081959 0.355140 +vt 0.080862 0.364476 +vt 0.077865 0.371311 +vt 0.282787 0.214953 +vt 0.282787 0.158879 +vt 0.282787 0.121495 +vt 0.282787 0.084112 +vt 0.282787 0.046729 +vt 0.282787 0.028037 +vt 0.536896 0.327074 +vt 0.565560 0.261711 +vt 0.549180 0.224360 +vt 0.487700 0.259160 +vt 0.483607 0.261661 +vt 0.479513 0.259160 +vt 0.475419 0.242991 +vt 0.476516 0.233656 +vt 0.479513 0.226822 +vt 0.487700 0.226822 +vt 0.490697 0.233656 +vt 0.491794 0.242991 +vt 0.487685 0.371248 +vt 0.483607 0.373740 +vt 0.479529 0.371248 +vt 0.475451 0.355141 +vt 0.476543 0.345842 +vt 0.479529 0.339034 +vt 0.487685 0.339034 +vt 0.490670 0.345842 +vt 0.491763 0.355141 +vt 0.614754 0.224317 +vt 0.643444 0.277874 +vt 0.651638 0.277874 +vt 0.643444 0.343278 +vt 0.647541 0.243004 +vt 0.721311 0.186916 +vt 0.745902 0.289720 +vt 0.754098 0.271028 +vt 0.737705 0.149533 +vt 0.713115 0.485981 +vt 0.754098 0.401869 +vt 0.745902 0.383178 +vt 0.778689 0.401869 +vt 0.737705 0.523364 +vt 0.020492 0.542056 +vt 0.020492 0.710280 +vt 0.975410 0.616822 +vt 0.852459 0.317757 +vt 0.852459 0.093458 +vt 0.877049 0.000000 +vt 0.909836 0.018692 +vt 0.877049 0.261682 +vt 0.852459 0.261682 +vt 0.885246 0.317757 +vt 0.877049 0.504673 +vt 0.885246 0.504673 +vt 0.909836 0.485981 +vt 0.909836 0.485981 +vt 0.970417 0.393693 +vt 0.975410 0.336449 +vt 0.909836 0.317757 +vt 0.975410 0.317757 +vt 0.975410 0.336449 +vt 0.956204 0.442175 +vt 0.934941 0.474575 +vt 0.315574 0.738318 +vt 0.307377 0.757009 +vt 0.274590 0.757009 +vt 0.266393 0.663551 +vt 0.307377 0.644860 +vt 0.713115 0.785047 +vt 0.713115 0.710280 +vt 0.721311 0.691589 +vt 0.811475 0.710280 +vt 0.811475 0.785047 +vt 0.504098 0.803738 +vt 0.495902 0.785047 +vt 0.504098 0.691589 +vt 0.553279 0.785047 +vt 0.545082 0.803738 +vt 0.344262 0.878505 +vt 0.336066 0.934579 +vt 0.368852 0.878505 +vt 0.368852 0.934579 +vt 0.348361 0.878505 +vt 0.348361 0.934579 +vt 0.258197 0.738318 +vt 0.241803 0.738318 +vt 0.262295 0.785047 +vt 0.192623 0.841121 +vt 0.184426 0.850467 +vt 0.184426 0.850467 +vt 0.192623 0.897196 +vt 0.184426 0.897196 +vt 0.184426 0.897196 +vt 0.774596 0.838595 +vt 0.771600 0.813097 +vt 0.771600 0.831763 +vt 0.770503 0.822430 +vt 0.774596 0.806265 +vt 0.782781 0.806265 +vt 0.786874 0.822430 +vt 0.785777 0.831763 +vt 0.782781 0.838595 +vt 0.762295 0.803738 +vt 0.799176 0.838599 +vt 0.795082 0.841100 +vt 0.790989 0.838599 +vt 0.786895 0.822430 +vt 0.787992 0.813095 +vt 0.790989 0.806261 +vt 0.799176 0.806261 +vt 0.802173 0.813095 +vt 0.803269 0.822430 +vt 0.282787 0.149533 +vt 0.282787 0.130841 +vt 0.282787 0.018692 +vt 0.282787 0.074766 +vt 0.282787 0.205607 +vt 0.282787 0.093458 +vt 0.282787 0.112150 +vt 0.282787 0.168224 +vt 0.282787 -0.000000 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.282787 0.186916 +vt 0.663934 0.224299 +vt 0.663934 0.205607 +vt 0.663934 0.186916 +vt 0.663934 0.168224 +vt 0.663934 0.149533 +vt 0.663934 0.130841 +vt 0.663934 0.112150 +vt 0.663934 0.093458 +vt 0.663934 0.074766 +vt 0.663934 0.056075 +vt 0.663934 0.037383 +vt 0.663934 0.018692 +vt 0.663934 0.000000 +vt -0.000000 0.252336 +vt 0.065574 0.261682 +vt -0.000000 0.261682 +vt -0.000000 0.299065 +vt 0.065574 0.308411 +vt -0.000000 0.308411 +vt -0.000000 0.327103 +vt 0.065574 0.336449 +vt -0.000000 0.336449 +vt -0.000000 0.242991 +vt 0.065574 0.252336 +vt -0.000000 0.289720 +vt 0.065574 0.299065 +vt -0.000000 0.271028 +vt 0.065574 0.280374 +vt -0.000000 0.280374 +vt -0.000000 0.317757 +vt 0.065574 0.327103 +vt -0.000000 0.233645 +vt 0.065574 0.242991 +vt 0.065574 0.289720 +vt 0.065574 0.271028 +vt 0.065574 0.317757 +vt -0.000000 0.224299 +vt 0.065574 0.233645 +vt -0.000000 0.364486 +vt 0.065574 0.373832 +vt -0.000000 0.373832 +vt -0.000000 0.411215 +vt 0.065574 0.420561 +vt -0.000000 0.420561 +vt -0.000000 0.439252 +vt 0.065574 0.448598 +vt -0.000000 0.448598 +vt -0.000000 0.355140 +vt 0.065574 0.364486 +vt -0.000000 0.401869 +vt 0.065574 0.411215 +vt -0.000000 0.383178 +vt 0.065574 0.392523 +vt -0.000000 0.392523 +vt -0.000000 0.429907 +vt 0.065574 0.439252 +vt -0.000000 0.345794 +vt 0.065574 0.355140 +vt 0.065574 0.401869 +vt 0.065574 0.383178 +vt 0.065574 0.429907 +vt -0.000000 0.336449 +vt 0.065574 0.345794 +vt 0.688525 0.196262 +vt 0.704918 0.214953 +vt 0.688525 0.214953 +vt 0.688525 0.158879 +vt 0.704918 0.177570 +vt 0.688525 0.177570 +vt 0.704918 0.196262 +vt 0.688525 0.140187 +vt 0.704918 0.158879 +vt 0.688525 0.121495 +vt 0.704918 0.140187 +vt 0.704918 0.233645 +vt 0.688525 0.233645 +vt 0.688525 0.299065 +vt 0.704918 0.299065 +vt 0.409836 0.448598 +vt 0.081967 0.429907 +vt 0.409836 0.429907 +vt 0.081967 0.411215 +vt 0.409836 0.411215 +vt 0.081967 0.392523 +vt 0.409836 0.392523 +vt 0.081967 0.373832 +vt 0.409836 0.373832 +vt 0.081967 0.355140 +vt 0.409836 0.355140 +vt 0.081967 0.336449 +vt 0.409836 0.336449 +vt 0.081967 0.317757 +vt 0.409836 0.317757 +vt 0.081967 0.299065 +vt 0.409836 0.299065 +vt 0.081967 0.280374 +vt 0.409836 0.280374 +vt 0.081967 0.261682 +vt 0.409836 0.261682 +vt 0.081967 0.242991 +vt 0.409836 0.242991 +vt 0.081967 0.224299 +vt 0.409836 0.224299 +vt 0.704918 0.056075 +vt 0.688525 0.056075 +vt 0.688525 0.336449 +vt 0.704918 0.355140 +vt 0.688525 0.355140 +vt 0.688525 0.037383 +vt 0.688525 0.317757 +vt 0.704918 0.336449 +vt 0.688525 0.018692 +vt 0.704918 0.037383 +vt 0.704918 0.317757 +vt 0.688525 -0.000000 +vt 0.704918 0.018692 +vt 0.663934 0.317757 +vt 0.688525 0.336449 +vt 0.663934 0.336449 +vt 0.663934 0.214953 +vt 0.688525 0.233645 +vt 0.663934 0.233645 +vt 0.688525 0.355140 +vt 0.663934 0.355140 +vt 0.663934 0.121495 +vt 0.688525 0.140187 +vt 0.663934 0.140187 +vt 0.663934 -0.000000 +vt 0.688525 0.018692 +vt 0.663934 0.018692 +vt 0.688525 0.158879 +vt 0.663934 0.158879 +vt 0.688525 0.037383 +vt 0.663934 0.037383 +vt 0.688525 0.177570 +vt 0.663934 0.177570 +vt 0.688525 0.056075 +vt 0.663934 0.056075 +vt 0.688525 0.299065 +vt 0.663934 0.299065 +vt 0.688525 0.121495 +vt 0.688525 0.196262 +vt 0.663934 0.196262 +vt 0.688525 0.317757 +vt 0.688525 0.214953 +vt 0.409836 0.401869 +vt 0.475410 0.392523 +vt 0.475410 0.401869 +vt 0.409836 0.355140 +vt 0.475410 0.345794 +vt 0.475410 0.355140 +vt 0.409836 0.327103 +vt 0.475410 0.317757 +vt 0.475410 0.327103 +vt 0.409836 0.280374 +vt 0.475410 0.271028 +vt 0.475410 0.280374 +vt 0.409836 0.345794 +vt 0.475410 0.336449 +vt 0.409836 0.317757 +vt 0.475410 0.308411 +vt 0.409836 0.271028 +vt 0.475410 0.261682 +vt 0.409836 0.448598 +vt 0.475410 0.439252 +vt 0.475410 0.448598 +vt 0.409836 0.308411 +vt 0.475410 0.299065 +vt 0.409836 0.261682 +vt 0.475410 0.252336 +vt 0.409836 0.439252 +vt 0.475410 0.429907 +vt 0.409836 0.299065 +vt 0.475410 0.289720 +vt 0.409836 0.392523 +vt 0.475410 0.383178 +vt 0.409836 0.252336 +vt 0.475410 0.242991 +vt 0.409836 0.429907 +vt 0.475410 0.420561 +vt 0.409836 0.289720 +vt 0.409836 0.383178 +vt 0.475410 0.373832 +vt 0.409836 0.242991 +vt 0.475410 0.233645 +vt 0.409836 0.420561 +vt 0.475410 0.411215 +vt 0.409836 0.373832 +vt 0.475410 0.364486 +vt 0.409836 0.233645 +vt 0.475410 0.224299 +vt 0.409836 0.411215 +vt 0.409836 0.364486 +vt 0.409836 0.336449 +vt 0.475410 0.336449 +vt 0.745902 0.308411 +vt 0.754098 0.289720 +vt 0.778689 0.289720 +vt 0.754098 0.308411 +vt 0.803279 0.289720 +vt 0.778689 0.308411 +vt 0.721311 0.018692 +vt 0.737705 0.093458 +vt 0.721311 0.074766 +vt 0.721311 0.364486 +vt 0.745902 0.364486 +vt 0.754098 0.364486 +vt 0.778689 0.364486 +vt 0.754098 0.383178 +vt 0.803279 0.364486 +vt 0.778689 0.383178 +vt 0.827869 0.383178 +vt 0.827869 0.364486 +vt 0.852459 0.383178 +vt 0.770492 0.093458 +vt 0.836066 0.074766 +vt 0.840164 0.093458 +vt 0.000000 0.588785 +vt 0.008197 0.663551 +vt 0.000000 0.663551 +vt 0.020492 0.588785 +vt 0.020492 0.663551 +vt 0.008197 0.588785 +vt 0.225410 0.514019 +vt 0.028689 0.448598 +vt 0.225410 0.654206 +vt 0.836066 0.018692 +vt 0.770492 0.000000 +vt 0.836066 0.000000 +vt 0.770492 0.074766 +vt 0.827869 0.308411 +vt 0.803279 0.308411 +vt 0.803279 0.383178 +vt 1.000000 0.504673 +vt 0.975410 0.560748 +vt 0.975410 0.504673 +vt 1.000000 0.336449 +vt 0.975410 0.392523 +vt 1.000000 0.317757 +vt 1.000000 0.392523 +vt 0.975410 0.448598 +vt 1.000000 0.560748 +vt 1.000000 0.448598 +vt 0.852459 0.289720 +vt 0.827869 0.289720 +vt 0.852459 -0.000000 +vt 0.426230 0.663551 +vt 0.442623 0.738318 +vt 0.426230 0.738318 +vt 0.336066 0.448598 +vt 0.426230 0.523364 +vt 0.336066 0.523364 +vt 0.319672 0.635514 +vt 0.426230 0.635514 +vt 0.319672 0.766355 +vt 0.331967 0.551402 +vt 0.426230 0.850467 +vt 0.442623 0.766355 +vt 0.442623 0.850467 +vt 0.426230 0.551402 +vt 0.331967 0.850467 +vt 0.426230 0.766355 +vt 0.336066 0.878505 +vt 0.426230 0.878505 +vt 0.475410 0.663551 +vt 0.475410 0.738318 +vt 0.491803 0.738318 +vt 0.491803 0.663551 +vt 0.442623 0.635514 +vt 0.442623 0.551402 +vt 0.553279 0.813084 +vt 0.536885 0.392523 +vt 0.713115 0.364486 +vt 0.713115 0.392523 +vt 0.553279 0.682243 +vt 0.713115 0.682243 +vt 0.536885 0.467290 +vt 0.713115 0.495327 +vt 0.536885 0.495327 +vt 0.713115 1.000000 +vt 0.553279 0.869159 +vt 0.713115 0.813084 +vt 0.553279 0.626168 +vt 0.545082 0.588785 +vt 0.147541 0.897196 +vt 0.057377 0.934579 +vt 0.057377 0.897196 +vt 0.163934 0.897196 +vt 0.147541 0.934579 +vt 0.176230 0.897196 +vt 0.163934 0.934579 +vt 0.192623 0.897196 +vt 0.176230 0.934579 +vt 0.250000 0.897196 +vt 0.192623 0.934579 +vt 0.266393 0.897196 +vt 0.250000 0.934579 +vt 0.336066 0.971963 +vt 0.348361 0.971963 +vt 0.364754 0.971963 +vt 0.368852 0.971963 +vt 0.409836 0.934579 +vt 0.393443 0.971963 +vt 0.409836 0.971963 +vt 0.426230 0.934579 +vt 0.426230 0.971963 +vt 0.077869 0.728972 +vt 0.061475 0.766355 +vt 0.061475 0.728972 +vt 0.077869 0.766355 +vt 0.086066 0.728972 +vt 0.086066 0.766355 +vt 0.102459 0.728972 +vt 0.020492 0.766355 +vt 0.168033 0.766355 +vt 0.184426 0.728972 +vt 0.184426 0.766355 +vt 0.143443 0.728972 +vt 0.102459 0.766355 +vt 0.159836 0.728972 +vt 0.143443 0.766355 +vt 0.159836 0.766355 +vt 0.168033 0.728972 +vt 0.159836 0.803738 +vt 0.159836 0.785047 +vt 0.168033 0.766355 +vt 0.770492 0.018692 +vt 0.737705 0.000000 +vt 0.721311 -0.000000 +vt 0.721311 0.093458 +vt 0.713115 0.850467 +vt 0.713115 0.897196 +vt 0.713115 0.906542 +vt 0.713115 0.803738 +vt 0.713115 0.813084 +vt 0.713115 0.859813 +vt 0.713115 0.822430 +vt 0.713115 0.869159 +vt 0.713115 0.831776 +vt 0.713115 0.878505 +vt 0.713115 0.841121 +vt 0.713115 0.887850 +vt 0.770492 0.813084 +vt 0.770492 0.897196 +vt 0.770492 0.850467 +vt 0.770492 0.869159 +vt 0.770492 0.822430 +vt 0.770492 0.906542 +vt 0.770492 0.859813 +vt 0.770492 0.878505 +vt 0.770492 0.831776 +vt 0.770492 0.915888 +vt 0.770492 0.887850 +vt 0.770492 0.841121 +vt 0.282787 0.224299 +vt 0.065574 0.224299 +vt 0.065574 0.336449 +vt 0.704918 0.121495 +vt 0.081967 0.448598 +vt 0.704918 0.000000 +vt 0.688525 -0.000000 +vt 0.409836 0.336449 +vt 0.409836 0.224299 +vt 0.721311 0.308411 +vt 0.266393 0.448598 +vt 0.225410 0.457944 +vt 0.266393 0.457944 +vt 0.266393 0.514019 +vt 0.225410 0.598131 +vt 0.266393 0.598131 +vt 0.266393 0.654206 +vt 0.442623 0.663551 +vt 0.426230 0.448598 +vt 0.536885 0.364486 +vt 0.713115 0.467290 +vt 0.545082 0.906542 +vt 0.266393 0.934579 +vt 0.344262 0.971963 +vt 0.020492 0.728972 +vt 0.159836 0.766355 +vt 0.713115 0.915888 +vt 0.770492 0.803738 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.4472 0.8944 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 0.1305 0.0000 +vn 0.9914 -0.1305 0.0000 +vn -0.9914 -0.1305 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9871 -0.1602 +vn 0.0000 0.8736 -0.4866 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 0.9024 -0.4308 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 -0.9732 0.2298 +vn 0.0000 -0.9522 0.3054 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9231 0.3845 +vn 0.0000 0.3808 0.9246 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 0.0980 -0.9952 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.8944 0.4472 +vn 0.3702 0.6646 -0.6490 +vn -0.4346 -0.0292 -0.9002 +vn -0.3702 0.6646 -0.6490 +vn 0.3158 0.8487 -0.4243 +vn -0.3158 0.8487 -0.4243 +vn -0.3875 -0.7728 0.5027 +vn 0.3803 -0.8832 0.2744 +vn 0.3875 -0.7728 0.5027 +vn 0.8592 0.4574 -0.2292 +vn 0.9085 0.1932 -0.3706 +vn -0.8592 0.4574 -0.2292 +vn 0.9547 -0.2517 0.1590 +vn -0.9201 -0.3912 -0.0217 +vn -0.4362 -0.7533 -0.4922 +vn 0.9201 -0.3912 -0.0217 +vn -0.9547 -0.2517 0.1590 +vn -0.9085 0.1932 -0.3706 +vn -0.3803 -0.8832 0.2744 +vn 0.4362 -0.7533 -0.4922 +vn 0.4346 -0.0292 -0.9002 +vn -0.3867 0.9210 -0.0472 +vn -0.9193 0.3932 -0.0202 +vn -0.3779 0.9246 -0.0474 +vn -0.3846 -0.8870 0.2557 +vn -0.8923 -0.4340 0.1241 +vn -0.3487 -0.9012 0.2575 +vn 0.3867 0.9210 -0.0472 +vn 0.9193 0.3932 -0.0202 +vn 0.9281 0.3719 -0.0191 +vn 0.3846 -0.8870 0.2557 +vn 0.8923 -0.4340 0.1241 +vn 0.9180 -0.3806 0.1114 +vn 0.3779 0.9246 -0.0474 +vn -0.9281 0.3719 -0.0191 +vn 0.0000 0.4719 -0.8817 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9571 0.2898 +vn 0.0000 -0.4719 0.8817 +vn 0.0000 0.9571 0.2898 +vn 0.0000 0.0985 0.9951 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9571 -0.2898 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.2298 0.9732 +vn 0.0000 -0.7071 -0.7071 +vn -0.9180 -0.3806 0.1114 +vn 0.3487 -0.9012 0.2575 +s off +f 7/1/1 54/2/1 6/3/1 +f 7/4/1 56/5/1 55/6/1 +f 9/7/1 56/8/1 8/9/1 +f 10/10/1 57/11/1 9/7/1 +f 10/10/1 59/12/1 58/13/1 +f 12/14/1 59/15/1 11/16/1 +f 12/14/1 49/17/1 60/18/1 +f 2/19/1 49/20/1 1/21/1 +f 2/19/1 51/22/1 50/23/1 +f 4/24/1 51/25/1 3/26/1 +f 4/24/1 53/27/1 52/28/1 +f 5/29/1 54/30/1 53/31/1 +f 67/32/1 69/33/1 61/34/1 +f 91/35/1 93/36/1 85/37/1 +f 43/38/1 78/39/1 42/40/1 +f 41/41/1 78/42/1 77/43/1 +f 40/44/1 77/45/1 76/46/1 +f 40/44/1 75/47/1 39/48/1 +f 38/49/1 75/50/1 74/51/1 +f 38/49/1 73/52/1 37/53/1 +f 48/54/1 73/55/1 84/56/1 +f 48/54/1 83/57/1 47/58/1 +f 46/59/1 83/60/1 82/61/1 +f 46/59/1 81/62/1 45/63/1 +f 45/63/1 80/64/1 44/65/1 +f 43/66/1 80/67/1 79/68/1 +f 107/69/2 115/70/2 114/71/2 +f 108/72/2 109/73/2 115/70/2 +f 97/74/2 110/75/2 109/73/2 +f 98/76/2 111/77/2 110/75/2 +f 100/78/2 111/77/2 99/79/2 +f 102/80/2 160/81/2 101/82/2 +f 106/83/2 114/71/2 113/84/2 +f 122/85/1 133/86/1 121/87/1 +f 116/88/1 134/89/1 122/85/1 +f 117/90/1 123/91/1 116/88/1 +f 118/92/1 124/93/1 117/90/1 +f 119/94/1 125/95/1 118/92/1 +f 112/96/2 101/82/2 159/97/2 +f 165/98/2 105/99/2 113/84/2 +f 104/100/2 164/101/2 163/102/2 +f 103/103/2 163/102/2 162/104/2 +f 103/103/2 161/105/2 102/80/2 +f 121/87/1 132/106/1 120/107/1 +f 166/108/1 127/109/1 119/94/1 +f 120/107/1 132/106/1 131/110/1 +f 130/111/1 171/112/1 131/110/1 +f 129/113/1 170/114/1 130/111/1 +f 168/115/1 129/113/1 128/116/1 +f 167/117/1 128/116/1 127/109/1 +f 247/118/2 243/119/2 239/120/2 +f 235/121/2 231/122/2 227/123/2 +f 20/124/1 145/125/1 21/126/1 +f 19/127/1 146/128/1 20/124/1 +f 18/129/1 135/130/1 19/127/1 +f 17/131/1 136/132/1 18/129/1 +f 16/133/1 137/134/1 17/131/1 +f 21/126/1 144/135/1 22/136/1 +f 177/137/1 144/135/1 186/138/1 +f 138/139/1 176/140/1 180/141/1 +f 175/142/1 16/133/1 15/143/1 +f 14/144/1 175/142/1 15/143/1 +f 13/145/1 174/146/1 14/144/1 +f 24/147/1 173/148/1 13/145/1 +f 23/149/1 179/150/1 24/147/1 +f 22/136/1 178/151/1 23/149/1 +f 185/152/1 144/135/1 143/153/1 +f 142/154/1 185/152/1 143/153/1 +f 141/155/1 184/156/1 142/154/1 +f 182/157/1 141/155/1 140/158/1 +f 181/159/1 140/158/1 139/160/1 +f 180/141/1 139/160/1 138/139/1 +f 208/161/2 213/162/2 207/163/2 +f 213/162/2 206/164/2 207/163/2 +f 206/164/2 215/165/2 205/166/2 +f 215/165/2 204/167/2 205/166/2 +f 223/168/2 208/161/2 209/169/2 +f 222/170/2 209/169/2 210/171/2 +f 222/170/2 192/172/2 195/173/2 +f 190/174/2 216/175/2 194/176/2 +f 203/177/2 190/174/2 189/178/2 +f 202/179/2 189/178/2 187/180/2 +f 201/181/2 187/180/2 188/182/2 +f 193/183/2 201/181/2 188/182/2 +f 211/184/2 193/183/2 191/185/2 +f 192/172/2 211/184/2 191/185/2 +f 221/186/2 195/173/2 200/187/2 +f 220/188/2 200/187/2 199/189/2 +f 198/190/2 220/188/2 199/189/2 +f 218/191/2 198/190/2 197/192/2 +f 196/193/2 218/191/2 197/192/2 +f 194/176/2 217/194/2 196/193/2 +f 254/195/1 249/196/1 251/197/1 +f 261/198/3 258/199/3 263/200/3 +f 270/201/1 265/202/1 267/203/1 +f 278/204/4 276/205/4 279/206/4 +f 327/207/5 311/208/5 328/209/5 +f 288/210/4 286/211/4 284/212/4 +f 285/213/3 287/214/3 283/215/3 +f 293/216/3 287/214/3 289/217/3 +f 288/210/4 294/218/4 290/219/4 +f 304/220/1 305/221/1 303/222/1 +f 303/223/6 309/224/6 304/225/6 +f 309/224/7 330/226/7 329/227/7 +f 306/228/5 308/229/5 305/221/5 +f 264/230/3 331/231/3 260/232/3 +f 280/233/4 332/234/4 334/235/4 +f 254/236/4 251/237/4 257/238/4 +f 318/239/8 336/240/8 319/241/8 +f 319/242/4 336/240/4 262/243/4 +f 335/244/3 274/245/3 272/246/3 +f 254/236/6 335/244/6 269/247/6 +f 307/248/1 312/249/1 308/250/1 +f 277/251/3 335/244/3 318/252/3 +f 329/253/4 307/254/4 306/255/4 +f 330/256/3 310/257/3 303/222/3 +f 325/258/4 281/259/4 307/254/4 +f 308/250/3 312/249/3 321/260/3 +f 337/261/1 345/262/1 340/263/1 +f 359/264/2 361/265/2 364/266/2 +f 362/267/9 357/268/9 371/269/9 +f 362/267/1 365/270/1 373/271/1 +f 400/272/4 394/273/4 396/274/4 +f 397/275/3 395/276/3 393/277/3 +f 392/278/4 402/279/4 390/280/4 +f 401/281/3 391/282/3 389/283/3 +f 394/273/4 404/284/4 392/278/4 +f 403/285/3 393/277/3 391/282/3 +f 410/286/4 384/287/4 386/288/4 +f 407/289/3 385/290/3 383/291/3 +f 414/292/4 380/293/4 382/294/4 +f 411/295/3 381/296/3 379/297/3 +f 384/287/4 414/292/4 382/294/4 +f 413/298/3 383/291/3 381/296/3 +f 386/288/4 416/299/4 410/286/4 +f 388/300/4 418/301/4 416/299/4 +f 385/290/3 415/302/3 387/303/3 +f 387/303/3 417/304/3 389/305/3 +f 406/306/4 422/307/4 418/301/4 +f 389/305/3 421/308/3 405/309/3 +f 380/293/4 420/310/4 376/311/4 +f 379/297/3 419/312/3 411/295/3 +f 420/310/4 422/307/4 406/306/4 +f 405/309/3 421/308/3 419/312/3 +f 428/313/4 432/314/4 430/315/4 +f 425/316/3 427/317/3 423/318/3 +f 424/319/4 430/315/4 426/320/4 +f 429/321/3 431/322/3 427/317/3 +f 451/323/1 453/324/1 445/325/1 +f 435/326/1 458/327/1 459/328/1 +f 441/329/1 466/330/1 442/331/1 +f 438/332/1 463/333/1 439/334/1 +f 435/326/1 460/335/1 436/336/1 +f 443/337/1 466/330/1 467/338/1 +f 440/339/1 463/340/1 464/341/1 +f 437/342/1 460/335/1 461/343/1 +f 443/337/1 468/344/1 444/345/1 +f 433/346/1 458/327/1 434/347/1 +f 440/339/1 465/348/1 441/329/1 +f 438/332/1 461/343/1 462/349/1 +f 433/346/1 468/344/1 457/350/1 +f 479/351/2 475/352/2 471/353/2 +f 7/1/1 55/354/1 54/2/1 +f 7/4/1 8/9/1 56/5/1 +f 9/7/1 57/355/1 56/8/1 +f 10/10/1 58/356/1 57/11/1 +f 10/10/1 11/16/1 59/12/1 +f 12/14/1 60/357/1 59/15/1 +f 12/14/1 1/21/1 49/17/1 +f 2/19/1 50/358/1 49/20/1 +f 2/19/1 3/26/1 51/22/1 +f 4/24/1 52/359/1 51/25/1 +f 4/24/1 5/29/1 53/27/1 +f 5/29/1 6/3/1 54/30/1 +f 61/34/1 62/360/1 65/361/1 +f 62/360/1 63/362/1 65/361/1 +f 63/362/1 64/363/1 65/361/1 +f 65/361/1 66/364/1 67/32/1 +f 67/32/1 68/365/1 69/33/1 +f 69/33/1 70/366/1 71/367/1 +f 71/367/1 72/368/1 69/33/1 +f 72/368/1 61/34/1 69/33/1 +f 65/361/1 67/32/1 61/34/1 +f 85/37/1 86/369/1 89/370/1 +f 86/369/1 87/371/1 89/370/1 +f 87/371/1 88/372/1 89/370/1 +f 89/370/1 90/373/1 91/35/1 +f 91/35/1 92/374/1 93/36/1 +f 93/36/1 94/375/1 95/376/1 +f 95/376/1 96/377/1 93/36/1 +f 96/377/1 85/37/1 93/36/1 +f 89/370/1 91/35/1 85/37/1 +f 43/38/1 79/378/1 78/39/1 +f 41/41/1 42/40/1 78/42/1 +f 40/44/1 41/41/1 77/45/1 +f 40/44/1 76/379/1 75/47/1 +f 38/49/1 39/48/1 75/50/1 +f 38/49/1 74/380/1 73/52/1 +f 48/54/1 37/53/1 73/55/1 +f 48/54/1 84/381/1 83/57/1 +f 46/59/1 47/58/1 83/60/1 +f 46/59/1 82/382/1 81/62/1 +f 45/63/1 81/383/1 80/64/1 +f 43/66/1 44/65/1 80/67/1 +f 107/69/2 108/72/2 115/70/2 +f 108/72/2 97/74/2 109/73/2 +f 97/74/2 98/76/2 110/75/2 +f 98/76/2 99/79/2 111/77/2 +f 100/78/2 112/96/2 111/77/2 +f 102/80/2 161/105/2 160/81/2 +f 106/83/2 107/69/2 114/71/2 +f 122/85/1 134/89/1 133/86/1 +f 116/88/1 123/91/1 134/89/1 +f 117/90/1 124/93/1 123/91/1 +f 118/92/1 125/95/1 124/93/1 +f 119/94/1 126/384/1 125/95/1 +f 100/78/2 101/82/2 112/96/2 +f 101/82/2 160/81/2 159/97/2 +f 164/101/2 105/99/2 165/98/2 +f 105/99/2 106/83/2 113/84/2 +f 104/100/2 105/99/2 164/101/2 +f 103/103/2 104/100/2 163/102/2 +f 103/103/2 162/104/2 161/105/2 +f 121/87/1 133/86/1 132/106/1 +f 167/117/1 127/109/1 166/108/1 +f 127/109/1 126/384/1 119/94/1 +f 171/112/1 172/385/1 131/110/1 +f 172/385/1 120/107/1 131/110/1 +f 130/111/1 170/114/1 171/112/1 +f 129/113/1 169/386/1 170/114/1 +f 168/115/1 169/386/1 129/113/1 +f 167/117/1 168/115/1 128/116/1 +f 239/120/2 238/387/2 237/388/2 +f 237/388/2 248/389/2 239/120/2 +f 248/389/2 247/118/2 239/120/2 +f 247/118/2 246/390/2 243/119/2 +f 246/390/2 245/391/2 243/119/2 +f 245/391/2 244/392/2 243/119/2 +f 243/119/2 242/393/2 241/394/2 +f 241/394/2 240/395/2 243/119/2 +f 240/395/2 239/120/2 243/119/2 +f 227/123/2 226/396/2 225/397/2 +f 225/397/2 236/398/2 227/123/2 +f 236/398/2 235/121/2 227/123/2 +f 235/121/2 234/399/2 231/122/2 +f 234/399/2 233/400/2 231/122/2 +f 233/400/2 232/401/2 231/122/2 +f 231/122/2 230/402/2 229/403/2 +f 229/403/2 228/404/2 231/122/2 +f 228/404/2 227/123/2 231/122/2 +f 20/124/1 146/128/1 145/125/1 +f 19/127/1 135/130/1 146/128/1 +f 18/129/1 136/132/1 135/130/1 +f 17/131/1 137/134/1 136/132/1 +f 16/133/1 138/139/1 137/134/1 +f 21/126/1 145/125/1 144/135/1 +f 177/137/1 22/136/1 144/135/1 +f 138/139/1 16/133/1 176/140/1 +f 175/142/1 176/140/1 16/133/1 +f 14/144/1 174/146/1 175/142/1 +f 13/145/1 173/148/1 174/146/1 +f 24/147/1 179/150/1 173/148/1 +f 23/149/1 178/151/1 179/150/1 +f 22/136/1 177/137/1 178/151/1 +f 185/152/1 186/138/1 144/135/1 +f 142/154/1 184/156/1 185/152/1 +f 141/155/1 183/405/1 184/156/1 +f 182/157/1 183/405/1 141/155/1 +f 181/159/1 182/157/1 140/158/1 +f 180/141/1 181/159/1 139/160/1 +f 208/161/2 224/406/2 213/162/2 +f 213/162/2 214/407/2 206/164/2 +f 206/164/2 214/407/2 215/165/2 +f 215/165/2 216/175/2 204/167/2 +f 223/168/2 224/406/2 208/161/2 +f 222/170/2 223/168/2 209/169/2 +f 222/170/2 210/171/2 192/172/2 +f 190/174/2 204/167/2 216/175/2 +f 203/177/2 204/167/2 190/174/2 +f 202/179/2 203/177/2 189/178/2 +f 201/181/2 202/179/2 187/180/2 +f 193/183/2 212/408/2 201/181/2 +f 211/184/2 212/408/2 193/183/2 +f 192/172/2 210/171/2 211/184/2 +f 221/186/2 222/170/2 195/173/2 +f 220/188/2 221/186/2 200/187/2 +f 198/190/2 219/409/2 220/188/2 +f 218/191/2 219/409/2 198/190/2 +f 196/193/2 217/194/2 218/191/2 +f 194/176/2 216/175/2 217/194/2 +f 254/195/1 253/410/1 249/196/1 +f 250/411/3 249/196/3 256/412/3 +f 249/196/3 253/410/3 256/412/3 +f 253/410/3 255/413/3 256/412/3 +f 255/413/3 263/200/3 258/199/3 +f 256/412/3 255/413/3 258/199/3 +f 263/200/3 264/230/3 260/232/3 +f 260/232/3 261/198/3 263/200/3 +f 270/201/1 269/414/1 265/202/1 +f 270/201/4 267/203/4 273/415/4 +f 267/203/4 268/416/4 273/415/4 +f 273/415/4 275/417/4 271/418/4 +f 275/417/4 278/204/4 279/206/4 +f 279/206/4 271/418/4 275/417/4 +f 271/418/4 270/201/4 273/415/4 +f 276/205/4 280/233/4 279/206/4 +f 327/207/5 312/249/5 311/208/5 +f 288/210/4 290/219/4 286/211/4 +f 285/213/3 289/217/3 287/214/3 +f 293/216/3 291/419/3 287/214/3 +f 288/210/4 292/420/4 294/218/4 +f 304/220/1 306/228/1 305/221/1 +f 303/223/6 310/421/6 309/224/6 +f 309/224/7 310/421/7 330/226/7 +f 306/228/5 307/422/5 308/229/5 +f 264/230/3 333/423/3 331/231/3 +f 280/233/4 276/205/4 332/234/4 +f 251/237/4 252/424/4 257/238/4 +f 257/238/4 259/425/4 336/240/4 +f 259/425/4 262/243/4 336/240/4 +f 336/240/4 254/236/4 257/238/4 +f 318/239/8 335/244/8 336/240/8 +f 272/246/3 266/426/3 265/427/3 +f 265/427/3 269/247/3 272/246/3 +f 269/247/3 335/244/3 272/246/3 +f 335/244/3 277/251/3 274/245/3 +f 254/236/6 336/240/6 335/244/6 +f 307/248/1 311/428/1 312/249/1 +f 306/255/4 304/429/4 329/253/4 +f 304/429/4 309/430/4 329/253/4 +f 329/253/4 326/431/4 307/254/4 +f 303/222/3 305/221/3 330/256/3 +f 305/221/3 308/250/3 330/256/3 +f 308/250/3 324/432/3 330/256/3 +f 281/259/4 282/433/4 307/254/4 +f 282/433/4 315/434/4 311/435/4 +f 307/254/4 282/433/4 311/435/4 +f 315/434/4 328/436/4 311/435/4 +f 307/254/4 326/431/4 325/258/4 +f 312/249/3 327/207/3 320/437/3 +f 320/437/3 321/260/3 312/249/3 +f 321/260/3 322/438/3 308/250/3 +f 322/438/3 323/439/3 308/250/3 +f 323/439/3 324/432/3 308/250/3 +f 340/263/1 339/440/1 349/441/1 +f 349/441/1 350/442/1 337/261/1 +f 337/261/1 338/443/1 345/262/1 +f 345/262/1 346/444/1 340/263/1 +f 340/263/1 349/441/1 337/261/1 +f 361/265/2 368/445/2 367/446/2 +f 367/446/2 366/447/2 361/265/2 +f 366/447/2 364/266/2 361/265/2 +f 364/266/2 370/448/2 369/449/2 +f 369/449/2 359/264/2 364/266/2 +f 358/450/9 372/451/9 357/268/9 +f 372/451/9 371/269/9 357/268/9 +f 371/269/9 363/452/9 362/267/9 +f 373/271/1 374/453/1 357/268/1 +f 374/453/1 360/454/1 357/268/1 +f 357/268/1 362/267/1 373/271/1 +f 400/272/4 398/455/4 394/273/4 +f 397/275/3 399/456/3 395/276/3 +f 392/278/4 404/457/4 402/279/4 +f 401/281/3 403/458/3 391/282/3 +f 394/273/4 398/459/4 404/284/4 +f 403/285/3 397/460/3 393/277/3 +f 410/286/4 408/461/4 384/287/4 +f 407/289/3 409/462/3 385/290/3 +f 414/292/4 412/463/4 380/293/4 +f 411/295/3 413/298/3 381/296/3 +f 384/287/4 408/461/4 414/292/4 +f 413/298/3 407/289/3 383/291/3 +f 386/288/4 388/300/4 416/299/4 +f 388/300/4 390/464/4 418/301/4 +f 385/290/3 409/462/3 415/302/3 +f 387/303/3 415/302/3 417/304/3 +f 418/301/4 390/464/4 406/306/4 +f 390/464/4 402/465/4 406/306/4 +f 405/309/3 401/466/3 389/305/3 +f 389/305/3 417/304/3 421/308/3 +f 380/293/4 412/463/4 420/310/4 +f 379/297/3 375/467/3 419/312/3 +f 377/468/4 376/311/4 406/306/4 +f 376/311/4 420/310/4 406/306/4 +f 419/312/3 375/467/3 405/309/3 +f 375/467/3 378/469/3 405/309/3 +f 425/316/3 429/321/3 427/317/3 +f 424/319/4 428/313/4 430/315/4 +f 445/325/1 446/470/1 449/471/1 +f 446/470/1 447/472/1 449/471/1 +f 447/472/1 448/473/1 449/471/1 +f 449/471/1 450/474/1 451/323/1 +f 451/323/1 452/475/1 453/324/1 +f 453/324/1 454/476/1 455/477/1 +f 455/477/1 456/478/1 453/324/1 +f 456/478/1 445/325/1 453/324/1 +f 449/471/1 451/323/1 445/325/1 +f 435/326/1 434/347/1 458/327/1 +f 441/329/1 465/348/1 466/330/1 +f 438/332/1 462/349/1 463/333/1 +f 435/326/1 459/328/1 460/335/1 +f 443/337/1 442/331/1 466/330/1 +f 440/339/1 439/479/1 463/340/1 +f 437/342/1 436/336/1 460/335/1 +f 443/337/1 467/338/1 468/344/1 +f 433/346/1 457/350/1 458/327/1 +f 440/339/1 464/341/1 465/348/1 +f 438/332/1 437/342/1 461/343/1 +f 433/346/1 444/345/1 468/344/1 +f 471/353/2 470/480/2 469/481/2 +f 469/481/2 480/482/2 471/353/2 +f 480/482/2 479/351/2 471/353/2 +f 479/351/2 478/483/2 475/352/2 +f 478/483/2 477/484/2 475/352/2 +f 477/484/2 476/485/2 475/352/2 +f 475/352/2 474/486/2 473/487/2 +f 473/487/2 472/488/2 475/352/2 +f 472/488/2 471/353/2 475/352/2 +s 1 +f 27/489/10 4/24/4 3/26/10 +f 26/490/11 3/26/10 2/19/11 +f 32/491/12 9/7/13 8/9/12 +f 35/492/14 12/14/15 11/16/14 +f 30/493/16 7/1/5 6/3/16 +f 36/494/15 1/21/6 12/14/15 +f 25/495/6 2/19/11 1/21/6 +f 28/496/4 5/29/17 4/24/4 +f 31/497/5 8/9/12 7/4/5 +f 34/498/3 11/16/14 10/10/3 +f 33/499/13 10/10/3 9/7/13 +f 29/500/17 6/3/16 5/29/17 +f 19/501/5 42/40/16 18/502/16 +f 18/502/16 41/41/17 17/503/17 +f 17/503/17 40/44/4 16/504/4 +f 16/504/4 39/48/10 15/505/10 +f 15/505/10 38/49/11 14/506/11 +f 14/506/11 37/53/6 13/507/6 +f 13/507/6 48/54/15 24/508/15 +f 24/508/15 47/58/14 23/509/14 +f 23/509/14 46/59/3 22/510/3 +f 22/510/3 45/63/13 21/511/13 +f 21/511/13 44/65/12 20/512/12 +f 20/512/12 43/66/5 19/513/5 +f 52/514/3 63/515/13 51/516/13 +f 59/517/17 70/518/4 58/519/4 +f 56/520/11 67/521/6 55/522/6 +f 53/523/14 64/524/3 52/514/3 +f 60/525/16 71/526/17 59/517/17 +f 50/527/12 61/528/5 49/529/5 +f 57/530/10 68/531/11 56/520/11 +f 54/532/15 65/533/14 53/523/14 +f 49/529/5 72/534/16 60/525/16 +f 51/516/13 62/535/12 50/527/12 +f 58/519/4 69/536/10 57/530/10 +f 55/537/6 66/538/15 54/532/15 +f 76/539/3 87/540/13 75/541/13 +f 83/542/17 94/543/4 82/544/4 +f 80/545/11 91/546/6 79/547/6 +f 77/548/14 88/549/3 76/539/3 +f 84/550/16 95/551/17 83/542/17 +f 74/552/12 85/553/5 73/554/5 +f 81/555/10 92/556/11 80/545/11 +f 78/557/15 89/558/14 77/548/14 +f 73/554/5 96/559/16 84/550/16 +f 75/541/13 86/560/12 74/552/12 +f 82/544/4 93/561/10 81/555/10 +f 79/562/6 90/563/15 78/557/15 +f 115/564/15 121/565/14 114/566/14 +f 110/567/11 116/568/6 109/569/6 +f 109/569/6 122/570/15 115/564/15 +f 111/571/10 117/572/11 110/567/11 +f 112/573/18 118/574/10 111/571/10 +f 114/566/14 120/575/19 113/576/19 +f 165/577/20 120/575/19 172/578/20 +f 141/579/5 152/580/16 140/581/16 +f 140/581/16 151/582/17 139/583/17 +f 139/583/17 150/584/4 138/585/4 +f 138/585/4 149/586/10 137/587/10 +f 137/587/10 148/588/11 136/589/11 +f 136/589/11 147/590/6 135/591/6 +f 135/591/6 158/592/15 146/593/15 +f 146/593/15 157/594/14 145/595/14 +f 145/595/14 156/596/3 144/597/3 +f 144/597/3 155/598/13 143/599/13 +f 143/599/13 154/600/12 142/601/12 +f 142/601/12 153/602/5 141/603/5 +f 166/604/21 112/573/18 159/605/21 +f 163/606/12 169/607/5 162/608/5 +f 160/609/17 166/604/21 159/605/21 +f 164/610/13 170/611/12 163/606/12 +f 161/612/16 167/613/17 160/609/17 +f 165/577/20 171/614/13 164/610/13 +f 162/615/5 168/616/16 161/612/16 +f 181/617/17 197/618/16 182/619/16 +f 175/620/10 190/621/18 176/622/18 +f 182/619/16 198/623/5 183/624/5 +f 177/625/19 191/626/14 178/627/14 +f 183/628/5 199/629/12 184/630/12 +f 178/627/14 193/631/15 179/632/15 +f 184/630/12 200/633/13 185/634/13 +f 179/632/15 188/635/6 173/636/6 +f 185/634/13 195/637/20 186/638/20 +f 176/622/18 194/639/21 180/640/21 +f 186/638/20 192/641/19 177/625/19 +f 173/636/6 187/642/11 174/643/11 +f 180/640/21 196/644/17 181/617/17 +f 174/643/11 189/645/10 175/620/10 +f 236/646/16 201/647/5 212/648/16 +f 229/649/14 206/650/15 205/651/14 +f 244/652/11 221/653/10 220/654/11 +f 237/655/5 214/656/12 213/657/5 +f 230/658/15 207/659/6 206/650/15 +f 245/660/10 222/661/4 221/653/10 +f 238/662/12 215/663/13 214/656/12 +f 231/664/6 208/665/11 207/666/6 +f 246/667/4 223/668/17 222/661/4 +f 239/669/13 216/670/3 215/663/13 +f 232/671/11 209/672/10 208/665/11 +f 247/673/17 224/674/16 223/668/17 +f 225/675/5 202/676/12 201/647/5 +f 240/677/3 217/678/14 216/670/3 +f 233/679/10 210/680/4 209/672/10 +f 248/681/16 213/657/5 224/674/16 +f 226/682/12 203/683/13 202/676/12 +f 241/684/14 218/685/15 217/678/14 +f 234/686/4 211/687/17 210/680/4 +f 227/688/13 204/689/3 203/683/13 +f 242/690/15 219/691/6 218/685/15 +f 235/692/17 212/648/16 211/687/17 +f 228/693/3 205/651/14 204/689/3 +f 243/694/6 220/654/11 219/695/6 +f 252/696/22 249/196/6 250/411/22 +f 256/697/22 252/696/22 250/411/22 +f 258/698/23 257/699/22 256/697/22 +f 261/700/24 259/701/23 258/698/23 +f 269/702/25 255/703/26 254/704/25 +f 268/416/22 265/705/6 266/706/22 +f 272/707/22 268/416/22 266/706/22 +f 274/708/23 273/709/22 272/707/22 +f 277/710/24 275/711/23 274/708/23 +f 276/712/24 318/713/27 332/714/28 +f 263/715/29 316/716/30 264/717/29 +f 287/718/31 292/719/32 288/720/31 +f 290/219/33 293/721/34 289/217/33 +f 294/722/34 291/723/32 293/721/34 +f 299/724/5 287/214/31 288/725/31 +f 290/219/33 289/217/33 302/726/6 +f 317/727/30 279/728/29 280/729/29 +f 263/715/29 255/703/26 313/730/30 +f 261/700/24 319/731/27 262/732/24 +f 318/713/27 278/733/24 277/710/24 +f 325/734/22 324/735/35 323/736/22 +f 315/737/36 321/738/37 320/437/36 +f 320/437/36 328/739/2 315/737/36 +f 282/740/37 322/741/7 321/738/37 +f 326/742/35 330/226/6 324/735/35 +f 281/743/7 323/736/22 322/741/7 +f 318/713/27 331/744/28 332/714/28 +f 264/717/29 316/716/30 333/423/38 +f 331/744/28 319/731/27 260/745/24 +f 316/716/30 334/746/38 333/423/38 +f 334/746/38 317/727/30 280/729/29 +f 344/747/39 353/748/40 341/749/41 +f 340/263/42 341/749/41 339/440/43 +f 337/750/44 343/751/45 338/752/46 +f 344/747/39 346/753/47 348/754/48 +f 341/749/41 349/755/49 339/440/43 +f 345/756/50 348/754/48 346/753/47 +f 352/757/51 353/758/40 354/759/52 +f 338/752/46 347/760/53 345/756/50 +f 350/761/54 351/762/55 352/757/51 +f 337/763/44 352/757/51 342/764/56 +f 351/762/55 341/749/41 353/758/40 +f 353/748/40 355/765/57 354/766/52 +f 342/767/56 355/765/57 343/768/45 +f 354/759/52 342/764/56 352/757/51 +f 347/760/53 356/769/58 348/754/48 +f 344/747/39 348/754/48 356/769/58 +f 343/751/45 355/770/57 347/760/53 +f 368/445/59 360/771/60 374/453/61 +f 372/772/62 359/773/63 369/774/64 +f 367/446/65 365/775/66 366/776/67 +f 371/777/68 364/778/69 363/779/70 +f 373/271/71 368/445/59 374/453/61 +f 369/774/64 371/777/68 372/772/62 +f 359/780/63 357/781/4 361/782/72 +f 364/778/69 362/783/3 363/784/70 +f 362/783/3 366/776/67 365/775/66 +f 361/782/72 357/781/4 360/771/60 +f 379/785/73 376/786/74 375/787/74 +f 381/788/75 380/789/73 379/785/73 +f 383/790/76 382/791/75 381/788/75 +f 385/792/77 384/793/76 383/790/76 +f 387/794/78 386/795/77 385/792/77 +f 389/796/1 388/797/78 387/794/78 +f 391/282/31 390/280/5 389/283/5 +f 393/277/32 392/278/31 391/282/31 +f 395/276/1 394/273/32 393/277/32 +f 397/275/37 400/798/2 399/456/2 +f 398/799/37 403/285/22 404/800/22 +f 401/281/79 404/801/22 403/458/22 +f 405/802/80 402/803/79 401/281/79 +f 406/804/80 378/805/25 377/806/25 +f 407/807/81 410/808/82 409/809/82 +f 408/810/81 413/811/83 414/812/83 +f 411/813/78 414/812/83 413/811/83 +f 416/814/73 409/809/82 410/808/82 +f 418/815/75 415/816/73 416/817/73 +f 419/818/77 412/819/78 411/813/78 +f 421/820/76 420/821/77 419/818/77 +f 422/822/76 417/823/75 418/815/75 +f 426/320/1 429/321/84 425/316/1 +f 423/824/2 428/313/75 424/319/2 +f 430/315/84 431/322/9 429/321/84 +f 427/825/75 432/826/85 428/313/75 +f 314/827/30 271/828/26 279/728/29 +f 255/703/26 314/827/30 313/730/30 +f 271/828/26 269/702/25 270/829/25 +f 255/703/26 253/830/25 254/704/25 +f 433/346/6 456/831/15 444/345/15 +f 438/332/16 449/832/17 437/342/17 +f 439/334/5 450/833/16 438/332/16 +f 440/339/12 451/834/5 439/479/5 +f 441/329/13 452/835/12 440/339/12 +f 434/347/11 445/836/6 433/346/6 +f 442/331/3 453/837/13 441/329/13 +f 435/326/10 446/838/11 434/347/11 +f 443/337/14 454/839/3 442/331/3 +f 436/336/4 447/840/10 435/326/10 +f 444/345/15 455/841/14 443/337/14 +f 437/342/17 448/842/4 436/336/4 +f 463/340/5 476/843/12 464/341/12 +f 460/335/4 473/844/17 461/343/17 +f 467/338/14 480/845/15 468/344/15 +f 457/350/6 470/846/11 458/327/11 +f 464/341/12 477/847/13 465/348/13 +f 461/343/17 474/848/16 462/349/16 +f 468/344/15 469/849/6 457/350/6 +f 458/327/11 471/850/10 459/328/10 +f 465/348/13 478/851/3 466/330/3 +f 462/349/16 475/852/5 463/333/5 +f 459/328/10 472/853/4 460/335/4 +f 466/330/3 479/854/14 467/338/14 +f 27/489/10 28/496/4 4/24/4 +f 26/490/11 27/489/10 3/26/10 +f 32/491/12 33/499/13 9/7/13 +f 35/492/14 36/494/15 12/14/15 +f 30/493/16 31/855/5 7/1/5 +f 36/494/15 25/495/6 1/21/6 +f 25/495/6 26/490/11 2/19/11 +f 28/496/4 29/500/17 5/29/17 +f 31/497/5 32/491/12 8/9/12 +f 34/498/3 35/492/14 11/16/14 +f 33/499/13 34/498/3 10/10/3 +f 29/500/17 30/493/16 6/3/16 +f 19/501/5 43/38/5 42/40/16 +f 18/502/16 42/40/16 41/41/17 +f 17/503/17 41/41/17 40/44/4 +f 16/504/4 40/44/4 39/48/10 +f 15/505/10 39/48/10 38/49/11 +f 14/506/11 38/49/11 37/53/6 +f 13/507/6 37/53/6 48/54/15 +f 24/508/15 48/54/15 47/58/14 +f 23/509/14 47/58/14 46/59/3 +f 22/510/3 46/59/3 45/63/13 +f 21/511/13 45/63/13 44/65/12 +f 20/512/12 44/65/12 43/66/5 +f 52/514/3 64/524/3 63/515/13 +f 59/517/17 71/526/17 70/518/4 +f 56/520/11 68/531/11 67/521/6 +f 53/523/14 65/533/14 64/524/3 +f 60/525/16 72/534/16 71/526/17 +f 50/527/12 62/535/12 61/528/5 +f 57/530/10 69/536/10 68/531/11 +f 54/532/15 66/538/15 65/533/14 +f 49/529/5 61/528/5 72/534/16 +f 51/516/13 63/515/13 62/535/12 +f 58/519/4 70/518/4 69/536/10 +f 55/537/6 67/856/6 66/538/15 +f 76/539/3 88/549/3 87/540/13 +f 83/542/17 95/551/17 94/543/4 +f 80/545/11 92/556/11 91/546/6 +f 77/548/14 89/558/14 88/549/3 +f 84/550/16 96/559/16 95/551/17 +f 74/552/12 86/560/12 85/553/5 +f 81/555/10 93/561/10 92/556/11 +f 78/557/15 90/563/15 89/558/14 +f 73/554/5 85/553/5 96/559/16 +f 75/541/13 87/540/13 86/560/12 +f 82/544/4 94/543/4 93/561/10 +f 79/562/6 91/857/6 90/563/15 +f 115/564/15 122/570/15 121/565/14 +f 110/567/11 117/572/11 116/568/6 +f 109/569/6 116/568/6 122/570/15 +f 111/571/10 118/574/10 117/572/11 +f 112/573/18 119/858/18 118/574/10 +f 114/566/14 121/565/14 120/575/19 +f 165/577/20 113/576/19 120/575/19 +f 141/579/5 153/859/5 152/580/16 +f 140/581/16 152/580/16 151/582/17 +f 139/583/17 151/582/17 150/584/4 +f 138/585/4 150/584/4 149/586/10 +f 137/587/10 149/586/10 148/588/11 +f 136/589/11 148/588/11 147/590/6 +f 135/591/6 147/590/6 158/592/15 +f 146/593/15 158/592/15 157/594/14 +f 145/595/14 157/594/14 156/596/3 +f 144/597/3 156/596/3 155/598/13 +f 143/599/13 155/598/13 154/600/12 +f 142/601/12 154/600/12 153/602/5 +f 166/604/21 119/858/18 112/573/18 +f 163/606/12 170/611/12 169/607/5 +f 160/609/17 167/613/17 166/604/21 +f 164/610/13 171/614/13 170/611/12 +f 161/612/16 168/616/16 167/613/17 +f 165/577/20 172/578/20 171/614/13 +f 162/615/5 169/860/5 168/616/16 +f 181/617/17 196/644/17 197/618/16 +f 175/620/10 189/645/10 190/621/18 +f 182/619/16 197/618/16 198/623/5 +f 177/625/19 192/641/19 191/626/14 +f 183/628/5 198/861/5 199/629/12 +f 178/627/14 191/626/14 193/631/15 +f 184/630/12 199/629/12 200/633/13 +f 179/632/15 193/631/15 188/635/6 +f 185/634/13 200/633/13 195/637/20 +f 176/622/18 190/621/18 194/639/21 +f 186/638/20 195/637/20 192/641/19 +f 173/636/6 188/635/6 187/642/11 +f 180/640/21 194/639/21 196/644/17 +f 174/643/11 187/642/11 189/645/10 +f 236/646/16 225/675/5 201/647/5 +f 229/649/14 230/658/15 206/650/15 +f 244/652/11 245/660/10 221/653/10 +f 237/655/5 238/662/12 214/656/12 +f 230/658/15 231/862/6 207/659/6 +f 245/660/10 246/667/4 222/661/4 +f 238/662/12 239/669/13 215/663/13 +f 231/664/6 232/671/11 208/665/11 +f 246/667/4 247/673/17 223/668/17 +f 239/669/13 240/677/3 216/670/3 +f 232/671/11 233/679/10 209/672/10 +f 247/673/17 248/681/16 224/674/16 +f 225/675/5 226/682/12 202/676/12 +f 240/677/3 241/684/14 217/678/14 +f 233/679/10 234/686/4 210/680/4 +f 248/681/16 237/655/5 213/657/5 +f 226/682/12 227/688/13 203/683/13 +f 241/684/14 242/690/15 218/685/15 +f 234/686/4 235/692/17 211/687/17 +f 227/688/13 228/693/3 204/689/3 +f 242/690/15 243/863/6 219/691/6 +f 235/692/17 236/646/16 212/648/16 +f 228/693/3 229/649/14 205/651/14 +f 243/694/6 244/652/11 220/654/11 +f 252/696/22 251/864/6 249/196/6 +f 256/697/22 257/699/22 252/696/22 +f 258/698/23 259/701/23 257/699/22 +f 261/700/24 262/732/24 259/701/23 +f 269/702/25 271/828/26 255/703/26 +f 268/416/22 267/203/6 265/705/6 +f 272/707/22 273/709/22 268/416/22 +f 274/708/23 275/711/23 273/709/22 +f 277/710/24 278/733/24 275/711/23 +f 263/715/29 313/730/30 316/716/30 +f 287/718/31 291/723/32 292/719/32 +f 290/219/33 294/722/34 293/721/34 +f 294/722/34 292/719/32 291/723/32 +f 288/725/31 284/865/5 301/866/5 +f 284/865/5 297/867/5 301/866/5 +f 295/868/5 283/215/5 299/724/5 +f 283/215/5 287/214/31 299/724/5 +f 288/725/31 301/866/5 299/724/5 +f 289/217/33 285/213/6 300/869/6 +f 285/213/6 296/870/6 300/869/6 +f 298/871/6 286/211/6 302/726/6 +f 286/211/6 290/219/33 302/726/6 +f 289/217/33 300/869/6 302/726/6 +f 317/727/30 314/827/30 279/728/29 +f 261/700/24 260/745/24 319/731/27 +f 318/713/27 276/712/24 278/733/24 +f 325/734/22 326/742/35 324/735/35 +f 315/737/36 282/740/37 321/738/37 +f 320/437/36 327/207/2 328/739/2 +f 282/740/37 281/743/7 322/741/7 +f 326/742/35 329/227/6 330/226/6 +f 281/743/7 325/734/22 323/736/22 +f 318/713/27 319/731/27 331/744/28 +f 316/716/30 317/727/30 334/746/38 +f 344/747/39 356/872/58 353/748/40 +f 340/263/42 344/747/39 341/749/41 +f 337/750/44 342/873/56 343/751/45 +f 344/747/39 340/263/42 346/753/47 +f 341/749/41 351/762/55 349/755/49 +f 345/756/50 347/760/53 348/754/48 +f 352/757/51 351/762/55 353/758/40 +f 338/752/46 343/751/45 347/760/53 +f 350/761/54 349/755/49 351/762/55 +f 337/763/44 350/761/54 352/757/51 +f 353/748/40 356/872/58 355/765/57 +f 342/767/56 354/766/52 355/765/57 +f 347/760/53 355/770/57 356/769/58 +f 368/445/59 361/782/72 360/771/60 +f 372/772/62 358/874/86 359/773/63 +f 367/446/65 373/271/71 365/775/66 +f 371/777/68 370/875/87 364/778/69 +f 373/271/71 367/446/65 368/445/59 +f 369/774/64 370/875/87 371/777/68 +f 359/780/63 358/876/86 357/781/4 +f 364/778/69 366/776/67 362/783/3 +f 379/785/73 380/789/73 376/786/74 +f 381/788/75 382/791/75 380/789/73 +f 383/790/76 384/793/76 382/791/75 +f 385/792/77 386/795/77 384/793/76 +f 387/794/78 388/797/78 386/795/77 +f 389/796/1 390/877/1 388/797/78 +f 391/282/31 392/278/31 390/280/5 +f 393/277/32 394/273/32 392/278/31 +f 395/276/1 396/274/1 394/273/32 +f 397/275/37 398/878/37 400/798/2 +f 398/799/37 397/460/37 403/285/22 +f 401/281/79 402/803/79 404/801/22 +f 405/802/80 406/804/80 402/803/79 +f 406/804/80 405/802/80 378/805/25 +f 407/807/81 408/810/81 410/808/82 +f 408/810/81 407/807/81 413/811/83 +f 411/813/78 412/819/78 414/812/83 +f 416/814/73 415/879/73 409/809/82 +f 418/815/75 417/823/75 415/816/73 +f 419/818/77 420/821/77 412/819/78 +f 421/820/76 422/822/76 420/821/77 +f 422/822/76 421/820/76 417/823/75 +f 426/320/1 430/315/84 429/321/84 +f 423/824/2 427/825/75 428/313/75 +f 430/315/84 432/314/9 431/322/9 +f 427/825/75 431/880/85 432/826/85 +f 255/703/26 271/828/26 314/827/30 +f 433/346/6 445/836/6 456/831/15 +f 438/332/16 450/833/16 449/832/17 +f 439/334/5 451/881/5 450/833/16 +f 440/339/12 452/835/12 451/834/5 +f 441/329/13 453/837/13 452/835/12 +f 434/347/11 446/838/11 445/836/6 +f 442/331/3 454/839/3 453/837/13 +f 435/326/10 447/840/10 446/838/11 +f 443/337/14 455/841/14 454/839/3 +f 436/336/4 448/842/4 447/840/10 +f 444/345/15 456/831/15 455/841/14 +f 437/342/17 449/832/17 448/842/4 +f 463/340/5 475/882/5 476/843/12 +f 460/335/4 472/853/4 473/844/17 +f 467/338/14 479/854/14 480/845/15 +f 457/350/6 469/849/6 470/846/11 +f 464/341/12 476/843/12 477/847/13 +f 461/343/17 473/844/17 474/848/16 +f 468/344/15 480/845/15 469/849/6 +f 458/327/11 470/846/11 471/850/10 +f 465/348/13 477/847/13 478/851/3 +f 462/349/16 474/848/16 475/852/5 +f 459/328/10 471/850/10 472/853/4 +f 466/330/3 478/851/3 479/854/14 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index b9fe59269..3c3ad4a6b 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -1,5 +1,4 @@ { - "misc.nullTau": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullChopper": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullCrashing": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullMine": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png index 114a1561a..17e78f6bc 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png 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 c1d0faf6f..000000000 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/ModelBoltAction.png b/src/main/resources/assets/hbm/textures/models/ModelBoltAction.png deleted file mode 100644 index 410512914..000000000 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/ModelBoltActionDark.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionDark.png deleted file mode 100644 index 3bd22f1f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionDark.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 cb40afaff..000000000 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 1c5c31255..000000000 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/ModelBoltActionSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionSaturnite.png deleted file mode 100644 index f89c1a960..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionSaturnite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png b/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png deleted file mode 100644 index 1b5903f49..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png b/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png deleted file mode 100644 index c24d88063..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalStock.png b/src/main/resources/assets/hbm/textures/models/ModelCalStock.png deleted file mode 100644 index e1f8df03e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalStock.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 100755 index 26e6cac9d..000000000 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/ModelLeverAction.png b/src/main/resources/assets/hbm/textures/models/ModelLeverAction.png deleted file mode 100644 index 8068043e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLeverAction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png b/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png deleted file mode 100644 index b8d66c59d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPip.png b/src/main/resources/assets/hbm/textures/models/ModelPip.png deleted file mode 100755 index 40c63f03e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPip.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png b/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png deleted file mode 100644 index 9173393a2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png b/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png deleted file mode 100644 index f912f4df1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipRed.png b/src/main/resources/assets/hbm/textures/models/ModelPipRed.png deleted file mode 100644 index 2488821dd..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipRed.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipSilver.png b/src/main/resources/assets/hbm/textures/models/ModelPipSilver.png deleted file mode 100644 index 0e874ca24..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipSilver.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 100755 index 65cf39dad..000000000 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/ModelRPG.png b/src/main/resources/assets/hbm/textures/models/ModelRPG.png deleted file mode 100644 index a7323d537..000000000 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/ModelRevolver.png b/src/main/resources/assets/hbm/textures/models/ModelRevolver.png deleted file mode 100644 index 34fd41af0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolver.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png deleted file mode 100644 index 647bcea5b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png deleted file mode 100644 index 594005b8e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png deleted file mode 100644 index 69ed11934..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png deleted file mode 100644 index 508d1e8b6..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.png deleted file mode 100644 index 8254ead18..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.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 36835fb13..000000000 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/ModelSkyStinger.png b/src/main/resources/assets/hbm/textures/models/ModelSkyStinger.png deleted file mode 100644 index 6b0f85daa..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelSkyStinger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelStinger.png b/src/main/resources/assets/hbm/textures/models/ModelStinger.png deleted file mode 100644 index c296d5f79..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelStinger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png b/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png deleted file mode 100644 index 0faabee24..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/PlasmaBeam.png b/src/main/resources/assets/hbm/textures/models/PlasmaBeam.png deleted file mode 100644 index 608752d56..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/PlasmaBeam.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 100755 index e4f809d0d..000000000 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/machines/lpw2.png b/src/main/resources/assets/hbm/textures/models/machines/lpw2.png index 264827245..4b0ec544c 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/lpw2.png and b/src/main/resources/assets/hbm/textures/models/machines/lpw2.png differ 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 e19710622..000000000 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/weapons/debug_gun.png b/src/main/resources/assets/hbm/textures/models/weapons/debug_gun.png new file mode 100644 index 000000000..49b083ca9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/debug_gun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png new file mode 100644 index 000000000..10e3eb59b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png b/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png deleted file mode 100644 index 7709cf279..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png b/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png new file mode 100644 index 000000000..b520a29b3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png differ