Full Code of FlansMods/FlansMod for AI

1.12.2 71ba7ed065d9 cached
783 files
10.6 MB
2.8M tokens
4670 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (11,270K chars total). Download the full file to get everything.
Repository: FlansMods/FlansMod
Branch: 1.12.2
Commit: 71ba7ed065d9
Files: 783
Total size: 10.6 MB

Directory structure:
gitextract_nyisj3dr/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── crash_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── gradle.yml
├── .gitignore
├── LICENSE.txt
├── README.md
├── build.bat
├── build.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
└── src/
    └── main/
        ├── java/
        │   └── com/
        │       └── flansmod/
        │           ├── api/
        │           │   ├── IControllable.java
        │           │   └── IExplodeable.java
        │           ├── apocalypse/
        │           │   ├── client/
        │           │   │   ├── ClientProxyApocalypse.java
        │           │   │   └── model/
        │           │   │       ├── ModelBuggy.java
        │           │   │       ├── ModelGroundSkeleton.java
        │           │   │       ├── ModelGunRack.java
        │           │   │       ├── ModelNukeDrop.java
        │           │   │       ├── ModelPowerCube.java
        │           │   │       ├── ModelSkullBoss.java
        │           │   │       ├── ModelSkullDrone.java
        │           │   │       ├── ModelSlumpedSkeleton.java
        │           │   │       ├── ModelTeleporter.java
        │           │   │       ├── RenderFakePlayer.java
        │           │   │       ├── RenderNukeDrop.java
        │           │   │       ├── RenderPowerCube.java
        │           │   │       ├── RenderSkullBoss.java
        │           │   │       ├── RenderSkullDrone.java
        │           │   │       ├── RenderSurvivor.java
        │           │   │       └── RenderTeleporter.java
        │           │   └── common/
        │           │       ├── ApocalypseData.java
        │           │       ├── CommonProxyApocalypse.java
        │           │       ├── FlansModApocalypse.java
        │           │       ├── FlansModLootGenerator.java
        │           │       ├── PropertyFloat.java
        │           │       ├── blocks/
        │           │       │   ├── BlockPowerCube.java
        │           │       │   ├── BlockStatic.java
        │           │       │   ├── BlockSulphur.java
        │           │       │   ├── BlockSulphuricAcid.java
        │           │       │   └── TileEntityPowerCube.java
        │           │       ├── entity/
        │           │       │   ├── EntityAIGoSomewhere.java
        │           │       │   ├── EntityAIMecha.java
        │           │       │   ├── EntityFakePlayer.java
        │           │       │   ├── EntityFlansModShooter.java
        │           │       │   ├── EntityFlyByPlane.java
        │           │       │   ├── EntityNukeDrop.java
        │           │       │   ├── EntitySkullBoss.java
        │           │       │   ├── EntitySkullDrone.java
        │           │       │   ├── EntitySkuller.java
        │           │       │   ├── EntitySurvivor.java
        │           │       │   └── EntityTeleporter.java
        │           │       ├── items/
        │           │       │   └── ItemSulphuricAcidBucket.java
        │           │       ├── network/
        │           │       │   └── PacketApocalypseCountdown.java
        │           │       └── world/
        │           │           ├── BiomeApocalypse.java
        │           │           ├── BiomeDecoratorApocalypse.java
        │           │           ├── BiomeDesertCanyon.java
        │           │           ├── BiomeProviderApocalypse.java
        │           │           ├── BiomeSulphurPits.java
        │           │           ├── ChunkProviderApocalypse.java
        │           │           ├── GenLayerApocalypse.java
        │           │           ├── GenLayerBiomes.java
        │           │           ├── TeleporterApocalypse.java
        │           │           ├── WorldGenSulphurPool.java
        │           │           ├── WorldProviderApocalypse.java
        │           │           └── buildings/
        │           │               ├── MapGenAbandonedVillage.java
        │           │               ├── StructureAbandonedVillagePieces.java
        │           │               ├── WorldGenAbandonedPortal.java
        │           │               ├── WorldGenBossPillar.java
        │           │               ├── WorldGenDeadTree.java
        │           │               ├── WorldGenDyeFactory.java
        │           │               ├── WorldGenFlan.java
        │           │               ├── WorldGenResearchLab.java
        │           │               ├── WorldGenRoads.java
        │           │               ├── WorldGenRunway.java
        │           │               └── WorldGenSkeleton.java
        │           ├── client/
        │           │   ├── ClientProxy.java
        │           │   ├── ClientRenderHooks.java
        │           │   ├── EntityCamera.java
        │           │   ├── FlansModClient.java
        │           │   ├── MovingSoundDriveable.java
        │           │   ├── TileEntitySpawnerRenderer.java
        │           │   ├── debug/
        │           │   │   ├── EntityDebugAABB.java
        │           │   │   ├── EntityDebugColor.java
        │           │   │   ├── EntityDebugDot.java
        │           │   │   ├── EntityDebugVector.java
        │           │   │   ├── RenderDebugAABB.java
        │           │   │   ├── RenderDebugDot.java
        │           │   │   └── RenderDebugVector.java
        │           │   ├── gui/
        │           │   │   ├── GuiArmourBox.java
        │           │   │   ├── GuiDriveableController.java
        │           │   │   ├── GuiDriveableCrafting.java
        │           │   │   ├── GuiDriveableFuel.java
        │           │   │   ├── GuiDriveableInventory.java
        │           │   │   ├── GuiDriveableMenu.java
        │           │   │   ├── GuiDriveableRepair.java
        │           │   │   ├── GuiGunBox.java
        │           │   │   ├── GuiGunModTable.java
        │           │   │   ├── GuiMechaInventory.java
        │           │   │   ├── GuiPaintjobTable.java
        │           │   │   ├── config/
        │           │   │   │   ├── ModGuiConfig.java
        │           │   │   │   └── ModGuiFactory.java
        │           │   │   └── teams/
        │           │   │       ├── EnumLoadoutSlot.java
        │           │   │       ├── GuiBaseEditor.java
        │           │   │       ├── GuiChooseLoadout.java
        │           │   │       ├── GuiEditLoadout.java
        │           │   │       ├── GuiLandingPage.java
        │           │   │       ├── GuiMissionResults.java
        │           │   │       ├── GuiOpenRewardBox.java
        │           │   │       ├── GuiTeamScores.java
        │           │   │       ├── GuiTeamSelect.java
        │           │   │       ├── GuiTeamsBase.java
        │           │   │       └── GuiVoting.java
        │           │   ├── handlers/
        │           │   │   ├── ClientEventHandler.java
        │           │   │   ├── FlansModResourceHandler.java
        │           │   │   ├── KeyInputHandler.java
        │           │   │   └── MouseInputHandler.java
        │           │   ├── model/
        │           │   │   ├── AnimTankTrack.java
        │           │   │   ├── AnimTrackLink.java
        │           │   │   ├── CustomItemRenderType.java
        │           │   │   ├── CustomItemRenderer.java
        │           │   │   ├── EnumAnimationType.java
        │           │   │   ├── EnumMeleeAnimation.java
        │           │   │   ├── GunAnimations.java
        │           │   │   ├── InstantBulletRenderer.java
        │           │   │   ├── ModelAAGun.java
        │           │   │   ├── ModelAttachment.java
        │           │   │   ├── ModelBomb.java
        │           │   │   ├── ModelBullet.java
        │           │   │   ├── ModelCustomArmour.java
        │           │   │   ├── ModelDefaultMuzzleFlash.java
        │           │   │   ├── ModelDriveable.java
        │           │   │   ├── ModelFlagpole.java
        │           │   │   ├── ModelGun.java
        │           │   │   ├── ModelItemHolder.java
        │           │   │   ├── ModelMG.java
        │           │   │   ├── ModelMecha.java
        │           │   │   ├── ModelMechaTool.java
        │           │   │   ├── ModelMuzzleFlash.java
        │           │   │   ├── ModelNull.java
        │           │   │   ├── ModelPlane.java
        │           │   │   ├── ModelVehicle.java
        │           │   │   ├── RenderAAGun.java
        │           │   │   ├── RenderBullet.java
        │           │   │   ├── RenderFlag.java
        │           │   │   ├── RenderFlagpole.java
        │           │   │   ├── RenderGrenade.java
        │           │   │   ├── RenderGun.java
        │           │   │   ├── RenderGunItem.java
        │           │   │   ├── RenderItemHolder.java
        │           │   │   ├── RenderMG.java
        │           │   │   ├── RenderMecha.java
        │           │   │   ├── RenderNull.java
        │           │   │   ├── RenderParachute.java
        │           │   │   ├── RenderPlane.java
        │           │   │   └── RenderVehicle.java
        │           │   ├── teams/
        │           │   │   └── ClientTeamsData.java
        │           │   ├── tmt/
        │           │   │   ├── Angle3D.java
        │           │   │   ├── Bone.java
        │           │   │   ├── Coord2D.java
        │           │   │   ├── ModelPool.java
        │           │   │   ├── ModelPoolEntry.java
        │           │   │   ├── ModelPoolObjEntry.java
        │           │   │   ├── ModelRendererTurbo.java
        │           │   │   ├── PositionTextureVertex.java
        │           │   │   ├── PositionTransformVertex.java
        │           │   │   ├── Shape2D.java
        │           │   │   ├── Shape3D.java
        │           │   │   ├── TextureGroup.java
        │           │   │   ├── TexturedPolygon.java
        │           │   │   ├── TmtTessellator.java
        │           │   │   ├── TransformGroup.java
        │           │   │   └── TransformGroupBone.java
        │           │   └── util/
        │           │       ├── FlansKeyConflictContext.java
        │           │       └── WorldRenderer.java
        │           ├── common/
        │           │   ├── BlockFlansWorkbench.java
        │           │   ├── BlockItemHolder.java
        │           │   ├── CommonGuiHandler.java
        │           │   ├── CommonProxy.java
        │           │   ├── CommonTickHandler.java
        │           │   ├── ContentManager.java
        │           │   ├── CraftingInstance.java
        │           │   ├── CreativeTabFlan.java
        │           │   ├── EntityItemCustomRender.java
        │           │   ├── FlansHooks.java
        │           │   ├── FlansMod.java
        │           │   ├── FlansModExplosion.java
        │           │   ├── IFlansModContentProvider.java
        │           │   ├── ItemBlockManyNames.java
        │           │   ├── ItemHolderType.java
        │           │   ├── ModuloHelper.java
        │           │   ├── PlayerData.java
        │           │   ├── PlayerHandler.java
        │           │   ├── RotatedAxes.java
        │           │   ├── TileEntityItemHolder.java
        │           │   ├── driveables/
        │           │   │   ├── CollisionBox.java
        │           │   │   ├── CollisionSurface.java
        │           │   │   ├── ContainerDriveableInventory.java
        │           │   │   ├── ContainerDriveableMenu.java
        │           │   │   ├── DriveableData.java
        │           │   │   ├── DriveablePart.java
        │           │   │   ├── DriveablePosition.java
        │           │   │   ├── DriveableType.java
        │           │   │   ├── EntityDamageSourceCollision.java
        │           │   │   ├── EntityDriveable.java
        │           │   │   ├── EntityPlane.java
        │           │   │   ├── EntitySeat.java
        │           │   │   ├── EntityVehicle.java
        │           │   │   ├── EntityWheel.java
        │           │   │   ├── EnumDriveablePart.java
        │           │   │   ├── EnumPlaneMode.java
        │           │   │   ├── EnumWeaponType.java
        │           │   │   ├── ItemPlane.java
        │           │   │   ├── ItemVehicle.java
        │           │   │   ├── PilotGun.java
        │           │   │   ├── PlaneType.java
        │           │   │   ├── Propeller.java
        │           │   │   ├── Seat.java
        │           │   │   ├── ShootPoint.java
        │           │   │   ├── VehicleType.java
        │           │   │   ├── collisions/
        │           │   │   │   ├── CollisionPlane.java
        │           │   │   │   ├── CollisionShapeBox.java
        │           │   │   │   ├── CollisionTest.java
        │           │   │   │   └── RidingEntityPosition.java
        │           │   │   └── mechas/
        │           │   │       ├── ContainerMechaInventory.java
        │           │   │       ├── EntityMecha.java
        │           │   │       ├── EnumMechaItemType.java
        │           │   │       ├── EnumMechaSlotType.java
        │           │   │       ├── EnumMechaToolType.java
        │           │   │       ├── ItemMecha.java
        │           │   │       ├── ItemMechaAddon.java
        │           │   │       ├── MechaInventory.java
        │           │   │       ├── MechaItemType.java
        │           │   │       ├── MechaType.java
        │           │   │       └── SlotMecha.java
        │           │   ├── enchantments/
        │           │   │   ├── EnchantmentDuelist.java
        │           │   │   ├── EnchantmentJuggernaut.java
        │           │   │   ├── EnchantmentLumberjack.java
        │           │   │   ├── EnchantmentModule.java
        │           │   │   ├── EnchantmentNimble.java
        │           │   │   ├── EnchantmentSharpshooter.java
        │           │   │   ├── EnchantmentSteady.java
        │           │   │   ├── GloveType.java
        │           │   │   └── ItemGlove.java
        │           │   ├── eventhandlers/
        │           │   │   └── PlayerDeathEventListener.java
        │           │   ├── guns/
        │           │   │   ├── AAGunType.java
        │           │   │   ├── AttachmentType.java
        │           │   │   ├── BulletType.java
        │           │   │   ├── ContainerGunModTable.java
        │           │   │   ├── EntityAAGun.java
        │           │   │   ├── EntityBullet.java
        │           │   │   ├── EntityDamageSourceFlan.java
        │           │   │   ├── EntityGrenade.java
        │           │   │   ├── EntityMG.java
        │           │   │   ├── EntityShootable.java
        │           │   │   ├── EnumAttachmentType.java
        │           │   │   ├── EnumFireMode.java
        │           │   │   ├── EnumSecondaryFunction.java
        │           │   │   ├── EnumSpreadPattern.java
        │           │   │   ├── FireableGun.java
        │           │   │   ├── FiredShot.java
        │           │   │   ├── GrenadeType.java
        │           │   │   ├── GunType.java
        │           │   │   ├── IScope.java
        │           │   │   ├── InventoryGunModTable.java
        │           │   │   ├── InventoryHelper.java
        │           │   │   ├── ItemAAGun.java
        │           │   │   ├── ItemAttachment.java
        │           │   │   ├── ItemBullet.java
        │           │   │   ├── ItemGrenade.java
        │           │   │   ├── ItemGun.java
        │           │   │   ├── ItemShootable.java
        │           │   │   ├── Paintjob.java
        │           │   │   ├── ShootBulletHandler.java
        │           │   │   ├── ShootableType.java
        │           │   │   ├── ShotHandler.java
        │           │   │   ├── SlotGun.java
        │           │   │   ├── boxes/
        │           │   │   │   ├── BlockGunBox.java
        │           │   │   │   ├── BoxType.java
        │           │   │   │   ├── ContainerGunBox.java
        │           │   │   │   └── GunBoxType.java
        │           │   │   └── raytracing/
        │           │   │       ├── EnumHitboxType.java
        │           │   │       ├── FlansModRaytracer.java
        │           │   │       ├── PlayerHitbox.java
        │           │   │       └── PlayerSnapshot.java
        │           │   ├── network/
        │           │   │   ├── PacketAAGunAngles.java
        │           │   │   ├── PacketAddSingleRewardBoxInstance.java
        │           │   │   ├── PacketBase.java
        │           │   │   ├── PacketBaseEdit.java
        │           │   │   ├── PacketBlockHitEffect.java
        │           │   │   ├── PacketBreakSound.java
        │           │   │   ├── PacketBulletTrail.java
        │           │   │   ├── PacketBuyArmour.java
        │           │   │   ├── PacketBuyWeapon.java
        │           │   │   ├── PacketCraftDriveable.java
        │           │   │   ├── PacketDriveableControl.java
        │           │   │   ├── PacketDriveableDamage.java
        │           │   │   ├── PacketDriveableGUI.java
        │           │   │   ├── PacketDriveableKey.java
        │           │   │   ├── PacketDriveableKeyHeld.java
        │           │   │   ├── PacketFlak.java
        │           │   │   ├── PacketGunAnimation.java
        │           │   │   ├── PacketGunFire.java
        │           │   │   ├── PacketGunPaint.java
        │           │   │   ├── PacketHandler.java
        │           │   │   ├── PacketHitMarker.java
        │           │   │   ├── PacketKillMessage.java
        │           │   │   ├── PacketLoadoutData.java
        │           │   │   ├── PacketMGFire.java
        │           │   │   ├── PacketMGMount.java
        │           │   │   ├── PacketMechaControl.java
        │           │   │   ├── PacketOpenRewardBox.java
        │           │   │   ├── PacketPlaneControl.java
        │           │   │   ├── PacketPlaySound.java
        │           │   │   ├── PacketReload.java
        │           │   │   ├── PacketRepairDriveable.java
        │           │   │   ├── PacketRequestDebug.java
        │           │   │   ├── PacketRoundFinished.java
        │           │   │   ├── PacketSeatUpdates.java
        │           │   │   ├── PacketTeamInfo.java
        │           │   │   ├── PacketTeamSelect.java
        │           │   │   ├── PacketVehicleControl.java
        │           │   │   ├── PacketVoteCast.java
        │           │   │   └── PacketVoting.java
        │           │   ├── paintjob/
        │           │   │   ├── BlockPaintjobTable.java
        │           │   │   ├── ContainerPaintjobTable.java
        │           │   │   ├── IPaintableItem.java
        │           │   │   ├── PaintableType.java
        │           │   │   └── TileEntityPaintjobTable.java
        │           │   ├── parts/
        │           │   │   ├── EnumPartCategory.java
        │           │   │   ├── ItemPart.java
        │           │   │   └── PartType.java
        │           │   ├── teams/
        │           │   │   ├── ArmourBoxType.java
        │           │   │   ├── ArmourType.java
        │           │   │   ├── BlockArmourBox.java
        │           │   │   ├── BlockSpawner.java
        │           │   │   ├── CommandTeams.java
        │           │   │   ├── EntityConnectingLine.java
        │           │   │   ├── EntityFlag.java
        │           │   │   ├── EntityFlagpole.java
        │           │   │   ├── EntityGunItem.java
        │           │   │   ├── EntityTeamItem.java
        │           │   │   ├── Gametype.java
        │           │   │   ├── GametypeCTF.java
        │           │   │   ├── GametypeDM.java
        │           │   │   ├── GametypeTDM.java
        │           │   │   ├── GametypeZombies.java
        │           │   │   ├── IPlayerClass.java
        │           │   │   ├── ITeamBase.java
        │           │   │   ├── ITeamObject.java
        │           │   │   ├── ItemFlagpole.java
        │           │   │   ├── ItemOpStick.java
        │           │   │   ├── ItemRewardBox.java
        │           │   │   ├── ItemTeamArmour.java
        │           │   │   ├── LoadoutPool.java
        │           │   │   ├── PermanentBaseData.java
        │           │   │   ├── PlayerClass.java
        │           │   │   ├── PlayerClassCustom.java
        │           │   │   ├── PlayerLoadout.java
        │           │   │   ├── PlayerRankData.java
        │           │   │   ├── RewardBox.java
        │           │   │   ├── RewardBoxInstance.java
        │           │   │   ├── RoundFinishedData.java
        │           │   │   ├── Team.java
        │           │   │   ├── TeamsManager.java
        │           │   │   ├── TeamsManagerClassic.java
        │           │   │   ├── TeamsManagerRanked.java
        │           │   │   ├── TeamsMap.java
        │           │   │   ├── TeamsRound.java
        │           │   │   └── TileEntitySpawner.java
        │           │   ├── tools/
        │           │   │   ├── EntityParachute.java
        │           │   │   ├── ItemTool.java
        │           │   │   └── ToolType.java
        │           │   ├── types/
        │           │   │   ├── EnumPaintjobRarity.java
        │           │   │   ├── EnumType.java
        │           │   │   ├── IFlanItem.java
        │           │   │   ├── InfoType.java
        │           │   │   └── TypeFile.java
        │           │   ├── util/
        │           │   │   └── BlockUtil.java
        │           │   └── vector/
        │           │       ├── Matrix.java
        │           │       ├── Matrix2f.java
        │           │       ├── Matrix3f.java
        │           │       ├── Matrix4f.java
        │           │       ├── ReadableVector.java
        │           │       ├── ReadableVector2f.java
        │           │       ├── ReadableVector3f.java
        │           │       ├── ReadableVector4f.java
        │           │       ├── Vector.java
        │           │       ├── Vector2f.java
        │           │       ├── Vector3f.java
        │           │       ├── Vector3i.java
        │           │       ├── Vector4f.java
        │           │       ├── WritableVector2f.java
        │           │       ├── WritableVector3f.java
        │           │       └── WritableVector4f.java
        │           ├── mechaparts/
        │           │   └── common/
        │           │       └── MechaPartsPackMod.java
        │           ├── modernweapons/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── Model1887.java
        │           │   │       ├── Model2xScope.java
        │           │   │       ├── Model4xScope.java
        │           │   │       ├── Model8xScope.java
        │           │   │       ├── ModelA10.java
        │           │   │       ├── ModelA91.java
        │           │   │       ├── ModelAA12.java
        │           │   │       ├── ModelACOG.java
        │           │   │       ├── ModelACR.java
        │           │   │       ├── ModelADAR15.java
        │           │   │       ├── ModelAK47.java
        │           │   │       ├── ModelAK74.java
        │           │   │       ├── ModelAN94.java
        │           │   │       ├── ModelASH12.java
        │           │   │       ├── ModelAT4.java
        │           │   │       ├── ModelAUG.java
        │           │   │       ├── ModelAbrams.java
        │           │   │       ├── ModelAmmoBag.java
        │           │   │       ├── ModelApacheAH64.java
        │           │   │       ├── ModelB4CrossBow.java
        │           │   │       ├── ModelB52.java
        │           │   │       ├── ModelBarrett.java
        │           │   │       ├── ModelBinoculars.java
        │           │   │       ├── ModelBizon.java
        │           │   │       ├── ModelBlackHawk.java
        │           │   │       ├── ModelBlackHawkUH60.java
        │           │   │       ├── ModelBulletFlash1.java
        │           │   │       ├── ModelC4.java
        │           │   │       ├── ModelChallengerII.java
        │           │   │       ├── ModelCharmBase.java
        │           │   │       ├── ModelCharmBasePanel.java
        │           │   │       ├── ModelCharmBaseSight.java
        │           │   │       ├── ModelChinook.java
        │           │   │       ├── ModelClaymore.java
        │           │   │       ├── ModelCloakerGoggles.java
        │           │   │       ├── ModelCobra.java
        │           │   │       ├── ModelColdWarE2.java
        │           │   │       ├── ModelDeployableBag.java
        │           │   │       ├── ModelDesertEagle.java
        │           │   │       ├── ModelDevotionX55.java
        │           │   │       ├── ModelDragunov.java
        │           │   │       ├── ModelEC665.java
        │           │   │       ├── ModelEMP4.java
        │           │   │       ├── ModelElDiablo.java
        │           │   │       ├── ModelExecutioner.java
        │           │   │       ├── ModelExoskeletonBody.java
        │           │   │       ├── ModelExoskeletonBoots.java
        │           │   │       ├── ModelExoskeletonHelmet.java
        │           │   │       ├── ModelExoskeletonLegs.java
        │           │   │       ├── ModelF22.java
        │           │   │       ├── ModelFAMAS.java
        │           │   │       ├── ModelFMG.java
        │           │   │       ├── ModelFNSCAR.java
        │           │   │       ├── ModelFS10.java
        │           │   │       ├── ModelFlamethrower.java
        │           │   │       ├── ModelFlareGun.java
        │           │   │       ├── ModelFlashlight.java
        │           │   │       ├── ModelForegrip.java
        │           │   │       ├── ModelG3.java
        │           │   │       ├── ModelG36.java
        │           │   │       ├── ModelGAU19.java
        │           │   │       ├── ModelGL1.java
        │           │   │       ├── ModelGL6.java
        │           │   │       ├── ModelGalil.java
        │           │   │       ├── ModelGlock.java
        │           │   │       ├── ModelHCAR.java
        │           │   │       ├── ModelHCOG.java
        │           │   │       ├── ModelHESatchel.java
        │           │   │       ├── ModelHK416.java
        │           │   │       ├── ModelHind.java
        │           │   │       ├── ModelHindMI24.java
        │           │   │       ├── ModelHoneyBadger.java
        │           │   │       ├── ModelHumvee.java
        │           │   │       ├── ModelJudge.java
        │           │   │       ├── ModelJury.java
        │           │   │       ├── ModelKCASmart50.java
        │           │   │       ├── ModelKCASmartcarbine.java
        │           │   │       ├── ModelKCASmartpistol.java
        │           │   │       ├── ModelKCAWolverineIV.java
        │           │   │       ├── ModelKrissVector.java
        │           │   │       ├── ModelL86.java
        │           │   │       ├── ModelL96.java
        │           │   │       ├── ModelLDCIGScope.java
        │           │   │       ├── ModelLeopard2A6.java
        │           │   │       ├── ModelLittleBird.java
        │           │   │       ├── ModelLittleBirdMH6.java
        │           │   │       ├── ModelLongBarrel.java
        │           │   │       ├── ModelM1014.java
        │           │   │       ├── ModelM14.java
        │           │   │       ├── ModelM16A4.java
        │           │   │       ├── ModelM1911.java
        │           │   │       ├── ModelM21.java
        │           │   │       ├── ModelM249.java
        │           │   │       ├── ModelM40A3.java
        │           │   │       ├── ModelM60E4.java
        │           │   │       ├── ModelM72LAW.java
        │           │   │       ├── ModelM9.java
        │           │   │       ├── ModelMIM23.java
        │           │   │       ├── ModelMIM23Rocket.java
        │           │   │       ├── ModelMLRS6.java
        │           │   │       ├── ModelMP5.java
        │           │   │       ├── ModelMP7.java
        │           │   │       ├── ModelMTAR.java
        │           │   │       ├── ModelMWParachute.java
        │           │   │       ├── ModelMakarov.java
        │           │   │       ├── ModelMastiff1218.java
        │           │   │       ├── ModelMedicBag.java
        │           │   │       ├── ModelMiniUzi.java
        │           │   │       ├── ModelMinigun.java
        │           │   │       ├── ModelMolotov.java
        │           │   │       ├── ModelMuzzleBreak.java
        │           │   │       ├── ModelNTW20.java
        │           │   │       ├── ModelP90.java
        │           │   │       ├── ModelPAW20.java
        │           │   │       ├── ModelPanzerfaust3.java
        │           │   │       ├── ModelPeaceKeeper.java
        │           │   │       ├── ModelPistolFlashlight.java
        │           │   │       ├── ModelPr3.java
        │           │   │       ├── ModelPredator37mm.java
        │           │   │       ├── ModelProximityMine.java
        │           │   │       ├── ModelQuickReloadGrip.java
        │           │   │       ├── ModelR700.java
        │           │   │       ├── ModelR870.java
        │           │   │       ├── ModelRPD.java
        │           │   │       ├── ModelRPG.java
        │           │   │       ├── ModelRPGRocket.java
        │           │   │       ├── ModelRPK.java
        │           │   │       ├── ModelRaptorF22.java
        │           │   │       ├── ModelRedDot.java
        │           │   │       ├── ModelRiotShield.java
        │           │   │       ├── ModelRocket.java
        │           │   │       ├── ModelRoundGrenade.java
        │           │   │       ├── ModelSG550.java
        │           │   │       ├── ModelSIGP226.java
        │           │   │       ├── ModelSIGP232.java
        │           │   │       ├── ModelSPAS.java
        │           │   │       ├── ModelSU25.java
        │           │   │       ├── ModelSentryGun.java
        │           │   │       ├── ModelShockAbsorbentStock.java
        │           │   │       ├── ModelSideWinder7.java
        │           │   │       ├── ModelSilencer.java
        │           │   │       ├── ModelSkorpion.java
        │           │   │       ├── ModelStinger.java
        │           │   │       ├── ModelStingerMissile.java
        │           │   │       ├── ModelSuperHeavyBoots.java
        │           │   │       ├── ModelSuperHeavyChest.java
        │           │   │       ├── ModelSuperHeavyHelmet.java
        │           │   │       ├── ModelSuperHeavyLegs.java
        │           │   │       ├── ModelT90.java
        │           │   │       ├── ModelTiger665.java
        │           │   │       ├── ModelTornado.java
        │           │   │       ├── ModelTornadoGR4.java
        │           │   │       ├── ModelTripleTake.java
        │           │   │       ├── ModelUSP.java
        │           │   │       ├── ModelUnderBarrelLaser.java
        │           │   │       ├── ModelVoltV3.java
        │           │   │       └── ModelW1200.java
        │           │   └── common/
        │           │       └── ModernWeaponsPackMod.java
        │           ├── nerf/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelDisc.java
        │           │   │       └── ModelVulcan.java
        │           │   └── common/
        │           │       └── NerfPackMod.java
        │           ├── simple/
        │           │   └── common/
        │           │       └── SimplePartsPackMod.java
        │           ├── steampunk/
        │           │   └── common/
        │           │       └── SteampunkPackMod.java
        │           ├── titan/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelCircularSaw.java
        │           │   │       ├── ModelDrill.java
        │           │   │       ├── ModelExcavator.java
        │           │   │       ├── ModelProtoTitan.java
        │           │   │       ├── ModelRocketPack.java
        │           │   │       └── ModelZeroTitan.java
        │           │   └── common/
        │           │       └── TitanPackMod.java
        │           ├── utility/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       └── ModelTunnelBore.java
        │           │   └── common/
        │           │       └── UtilityPackMod.java
        │           ├── ww2/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── Model105leFH18B2.java
        │           │   │       ├── Model50Cal.java
        │           │   │       ├── ModelAmericanBoots.java
        │           │   │       ├── ModelAmericanChest.java
        │           │   │       ├── ModelAmericanHelmet.java
        │           │   │       ├── ModelAmericanPants.java
        │           │   │       ├── ModelAmmoBag.java
        │           │   │       ├── ModelB1.java
        │           │   │       ├── ModelBAR.java
        │           │   │       ├── ModelBF109.java
        │           │   │       ├── ModelBMWR75.java
        │           │   │       ├── ModelBazooka.java
        │           │   │       ├── ModelBinoculars.java
        │           │   │       ├── ModelBofors.java
        │           │   │       ├── ModelBren.java
        │           │   │       ├── ModelBrowning.java
        │           │   │       ├── ModelC96.java
        │           │   │       ├── ModelCamel.java
        │           │   │       ├── ModelChaffee.java
        │           │   │       ├── ModelChiHa.java
        │           │   │       ├── ModelChiNu.java
        │           │   │       ├── ModelChurchill.java
        │           │   │       ├── ModelColt.java
        │           │   │       ├── ModelCromwell.java
        │           │   │       ├── ModelCrusader.java
        │           │   │       ├── ModelDP28.java
        │           │   │       ├── ModelFg42.java
        │           │   │       ├── ModelFlak88.java
        │           │   │       ├── ModelFlakvierling.java
        │           │   │       ├── ModelFlamethrower.java
        │           │   │       ├── ModelFokker.java
        │           │   │       ├── ModelFragGrenade.java
        │           │   │       ├── ModelFragGrenade2.java
        │           │   │       ├── ModelFury.java
        │           │   │       ├── ModelG43.java
        │           │   │       ├── ModelGermanBoots.java
        │           │   │       ├── ModelGermanChest.java
        │           │   │       ├── ModelGermanHelmet.java
        │           │   │       ├── ModelGermanPants.java
        │           │   │       ├── ModelGothaGV.java
        │           │   │       ├── ModelGreaseGun.java
        │           │   │       ├── ModelGreyhound.java
        │           │   │       ├── ModelHellcat.java
        │           │   │       ├── ModelIS2.java
        │           │   │       ├── ModelJeep.java
        │           │   │       ├── ModelKV1.java
        │           │   │       ├── ModelKar98k.java
        │           │   │       ├── ModelKar98kSniper.java
        │           │   │       ├── ModelKubel.java
        │           │   │       ├── ModelLancaster.java
        │           │   │       ├── ModelLeeenfield.java
        │           │   │       ├── ModelLeeenfieldS.java
        │           │   │       ├── ModelLuchs.java
        │           │   │       ├── ModelLuger.java
        │           │   │       ├── ModelM10.java
        │           │   │       ├── ModelM157MM.java
        │           │   │       ├── ModelM1Carbine.java
        │           │   │       ├── ModelM1Garand.java
        │           │   │       ├── ModelM3A1GreaseGun.java
        │           │   │       ├── ModelM3Halftrack.java
        │           │   │       ├── ModelM45Quad.java
        │           │   │       ├── ModelM8Smoke.java
        │           │   │       ├── ModelMG34.java
        │           │   │       ├── ModelMG42.java
        │           │   │       ├── ModelMaus.java
        │           │   │       ├── ModelMine.java
        │           │   │       ├── ModelMosin.java
        │           │   │       ├── ModelMosinSniper.java
        │           │   │       ├── ModelMp40.java
        │           │   │       ├── ModelMp44.java
        │           │   │       ├── ModelMustang.java
        │           │   │       ├── ModelPIAT.java
        │           │   │       ├── ModelPPSH.java
        │           │   │       ├── ModelPak40.java
        │           │   │       ├── ModelPanzer.java
        │           │   │       ├── ModelPanzerIILuchs.java
        │           │   │       ├── ModelPanzerfaust.java
        │           │   │       ├── ModelPanzerschreck.java
        │           │   │       ├── ModelS100.java
        │           │   │       ├── ModelSASJeep.java
        │           │   │       ├── ModelSTG44.java
        │           │   │       ├── ModelSU112.java
        │           │   │       ├── ModelSdkFz2.java
        │           │   │       ├── ModelSdkFz222.java
        │           │   │       ├── ModelSdkFz251.java
        │           │   │       ├── ModelSherman.java
        │           │   │       ├── ModelSpitfire.java
        │           │   │       ├── ModelSpringfield.java
        │           │   │       ├── ModelSpringfieldSniper.java
        │           │   │       ├── ModelSten.java
        │           │   │       ├── ModelStickGrenade.java
        │           │   │       ├── ModelStickGrenade2.java
        │           │   │       ├── ModelStuG.java
        │           │   │       ├── ModelT34.java
        │           │   │       ├── ModelT3485.java
        │           │   │       ├── ModelTT33.java
        │           │   │       ├── ModelThompson.java
        │           │   │       ├── ModelTiger.java
        │           │   │       ├── ModelTiger131.java
        │           │   │       ├── ModelTigerII.java
        │           │   │       ├── ModelTrenchgun.java
        │           │   │       ├── ModelType100.java
        │           │   │       ├── ModelType14.java
        │           │   │       ├── ModelType38.java
        │           │   │       ├── ModelType38sniper.java
        │           │   │       ├── ModelType4HoRo.java
        │           │   │       ├── ModelType99.java
        │           │   │       ├── ModelUC2Pdr.java
        │           │   │       ├── ModelWW2Parachute.java
        │           │   │       ├── ModelWebley.java
        │           │   │       ├── ModelYak9.java
        │           │   │       ├── ModelZF4Scope.java
        │           │   │       ├── ModelZero.java
        │           │   │       ├── Modelvickersk.java
        │           │   │       └── ModelvickerskGO.java
        │           │   └── common/
        │           │       └── WW2PackMod.java
        │           ├── yeolde/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelArrow.java
        │           │   │       ├── ModelBiplane.java
        │           │   │       ├── ModelNetherGrip.java
        │           │   │       ├── ModelRock.java
        │           │   │       └── ModelTwoSeatBiplane.java
        │           │   └── common/
        │           │       └── YeOldePackMod.java
        │           └── zombie/
        │               ├── client/
        │               │   └── model/
        │               │       ├── ModelApron.java
        │               │       ├── ModelBaseballBat.java
        │               │       ├── ModelBearTrap.java
        │               │       ├── ModelCoat.java
        │               │       ├── ModelColtPython.java
        │               │       ├── ModelCombatKnife.java
        │               │       ├── ModelDoubleBarrelledShotgun.java
        │               │       ├── ModelDustbinLidChestplate.java
        │               │       ├── ModelFlareGun.java
        │               │       ├── ModelFleshLump.java
        │               │       ├── ModelGlock17.java
        │               │       ├── ModelM4Carbine.java
        │               │       ├── ModelMP5K.java
        │               │       ├── ModelMachete.java
        │               │       ├── ModelOlympia.java
        │               │       ├── ModelPanHelmet.java
        │               │       ├── ModelPoliceHat.java
        │               │       ├── ModelRiotShield.java
        │               │       ├── ModelSamuraiSword.java
        │               │       ├── ModelScrewdriver.java
        │               │       ├── ModelSledgehammer.java
        │               │       ├── ModelSurgicalAxe.java
        │               │       └── ModelWinchesterModel70.java
        │               └── common/
        │                   └── ZombiePackMod.java
        └── resources/
            ├── LICENSE.txt
            ├── RedstoneFlux API - LICENSE - LGPLv3.txt
            ├── assets/
            │   ├── flansmod/
            │   │   ├── blockstates/
            │   │   │   ├── flansworkbench.json
            │   │   │   ├── gunpowderblock.json
            │   │   │   ├── paintjobtable.json
            │   │   │   └── teamsspawner.json
            │   │   ├── lang/
            │   │   │   ├── de_de.lang
            │   │   │   ├── en_us.lang
            │   │   │   ├── es_es.lang
            │   │   │   ├── fr_fr.lang
            │   │   │   ├── pl_pl.lang
            │   │   │   ├── pt_br.lang
            │   │   │   ├── ru_ru.lang
            │   │   │   ├── zh_TW.lang
            │   │   │   └── zh_cn.lang
            │   │   ├── models/
            │   │   │   ├── block/
            │   │   │   │   ├── flansworkbench_guns.json
            │   │   │   │   ├── flansworkbench_parts.json
            │   │   │   │   ├── flansworkbench_vehicles.json
            │   │   │   │   ├── gunpowderblock.json
            │   │   │   │   ├── paintjobtable.json
            │   │   │   │   ├── teamsspawner_items.json
            │   │   │   │   ├── teamsspawner_players.json
            │   │   │   │   └── teamsspawner_vehicles.json
            │   │   │   └── item/
            │   │   │       ├── crosshairsymbol.json
            │   │   │       ├── custom.json
            │   │   │       ├── flagpole.json
            │   │   │       ├── flansworkbench_guns.json
            │   │   │       ├── flansworkbench_item.json
            │   │   │       ├── flansworkbench_parts.json
            │   │   │       ├── flansworkbench_vehicles.json
            │   │   │       ├── gunpowderblock.json
            │   │   │       ├── opstick.json
            │   │   │       ├── opstick_connecting.json
            │   │   │       ├── opstick_destruction.json
            │   │   │       ├── opstick_mapping.json
            │   │   │       ├── opstick_ownership.json
            │   │   │       ├── paintjobtable.json
            │   │   │       ├── rainbowpaintcan.json
            │   │   │       ├── teamsspawner_items.json
            │   │   │       ├── teamsspawner_players.json
            │   │   │       └── teamsspawner_vehicles.json
            │   │   ├── sounds/
            │   │   │   ├── skullboss_laugh.ogg
            │   │   │   ├── skullboss_spawn.ogg
            │   │   │   └── unlocknotch.ogg
            │   │   └── sounds.json
            │   └── flansmodapocalypse/
            │       ├── blockstates/
            │       │   ├── blocklabstone.json
            │       │   ├── blockpowercube.json
            │       │   ├── blocksulphur.json
            │       │   └── blocksulphuricacid.json
            │       ├── lang/
            │       │   ├── en_us.lang
            │       │   ├── fr_fr.lang
            │       │   └── ru_ru.lang
            │       ├── models/
            │       │   ├── block/
            │       │   │   ├── blocklabstone.json
            │       │   │   ├── blockpowercube.json
            │       │   │   ├── blocksulphur.json
            │       │   │   └── blocksulphuricacid.json
            │       │   └── item/
            │       │       ├── blocklabstone.json
            │       │       ├── blockpowercube.json
            │       │       ├── blocksulphur.json
            │       │       ├── blocksulphuricacid.json
            │       │       └── flansulphur.json
            │       └── textures/
            │           └── blocks/
            │               ├── sulphuricacidflowing.png.mcmeta
            │               └── sulphuricacidstill.png.mcmeta
            ├── mcmod.info
            └── pack.mcmeta

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
indent_style = tab
trim_trailing_whitespace = false

[*.java]
insert_final_newline = true

[*.{info,mcmeta,json}]
indent_style = space
indent_size = 2

[*.gradle]
indent_style = space
indent_size = 4


================================================
FILE: .gitattributes
================================================
# Text
*       text    eol=lf
*.java  text    eol=lf
*.json  text    eol=lf
*.md    text    eol=lf
*.txt   text    eol=lf
*.sh    text    eol=lf
*.bat   text    eol=crlf

# Binary
*.png   binary
*.jpg   binary
*.jpeg  binary
*.jar   binary
*.ogg   binary


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---
<!-- BEFORE POSTING AN ISSUE: Read the issue reporting guidelines at
https://github.com/FlansMods/FlansMod/wiki/Issue-Reporting -->
<!-- If you do not follow the guidelines, we may close your issue without explanation -->

**Describe the bug**
<!-- A clear and concise description of what the bug is. -->

**To Reproduce**
Steps to reproduce the behaviour:
1. 
2. 
3. 
4. 

**Expected behaviour**
<!-- A clear and concise description of what you expected to happen. -->

**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->

**Versions (please complete the following information)**
 - Forge: 
 - Flan's Mod: 

**Additional context**
<!-- Add any other context about the problem here.
Add a link to a [gist](https://gist.github.com/) of any errors. -->


================================================
FILE: .github/ISSUE_TEMPLATE/crash_report.md
================================================
---
name: Crash report
about: Create a report to help us improve
title: ''
labels: crash
assignees: ''

---
<!-- BEFORE POSTING AN ISSUE: Read the issue reporting guidelines at
https://github.com/FlansMods/FlansMod/wiki/Issue-Reporting -->
<!-- If you do not follow the guidelines, we may close your issue without explanation -->
**To Reproduce**
Steps to reproduce the crash:
1. 
2. 
3. 
4. 

**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->

**Versions (please complete the following information)**
 - Forge: 
 - Flan's Mod: 

**Crash Log**
<!-- Add a link to a [gist](https://gist.github.com/) of the crash. -->

**Additional context**
<!-- Add any other context about the problem here. -->



================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---
<!-- BEFORE POSTING AN ISSUE: Read the issue reporting guidelines at
https://github.com/FlansMods/FlansMod/wiki/Issue-Reporting -->
<!-- If you do not follow the guidelines, we may close your issue without explanation -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features
you've considered. -->

**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->


================================================
FILE: .github/workflows/gradle.yml
================================================
name: Java CI with Gradle

on: [ push, pull_request ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew build

    - name: Upload build artifacts
      uses: actions/upload-artifact@v1
      with:
        name: build-artifacts
        path: build/output/


================================================
FILE: .gitignore
================================================
# Build and Bins
.gradle/
build/
bin/
out/
run/*
src/main/java/com/flansmod/leaderboards/*

# IDEs
.classpath
.project
.settings/
eclipse/
.idea/
*.iml
*.ipr
*.iws

# System
Thumbs.db
.DS_Store

# Flan's Mod
!run/Flan/

# Flan's Scripts
upload.bat
*.launch


================================================
FILE: LICENSE.txt
================================================
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(g) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, Noncommercial, ShareAlike. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; to Distribute and Publicly Perform the Work including as incorporated in Collections; and, to Distribute and Publicly Perform Adaptations. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights described in Section 4(e).

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(d), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(d), as requested. You may Distribute or Publicly Perform an Adaptation only under: (i) the terms of this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a copy of, or the URI, for Applicable License with every copy of each Adaptation You Distribute or Publicly Perform. You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License. You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in con-nection with the exchange of copyrighted works. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. For the avoidance of doubt:

Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c). Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous

Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


================================================
FILE: README.md
================================================
[![GitHub release](https://img.shields.io/github/v/tag/FlansMods/FlansMod.svg?include_prereleases&sort=semver&color=brightgreen)](https://GitHub.com//FlansMods/FlansMod/releases/)
[![Github all releases](https://img.shields.io/github/downloads/FlansMods/FlansMod/total.svg)](https://GitHub.com/FlansMods/FlansMod/releases/)
[![GitHub forks](https://img.shields.io/github/forks/FlansMods/FlansMod.svg?color=brightgreen)](https://GitHub.com/FlansMods/FlansMod/network/)
[![GitHub forks](https://img.shields.io/github/stars/FlansMods/FlansMod.svg?color=brightgreen)](https://GitHub.com/FlansMods/FlansMod/stargazers/)
[![GitHub contributors](https://img.shields.io/github/contributors/FlansMods/FlansMod.svg)](https://GitHub.com/FlansMods/FlansMod/graphs/contributors/)

# [Flan's Mod](https://www.flansmod.com/)

This is the offical Github repository of the minecraft modification Flan's Mod.

## Installation

If you just want use the Mod, just head over to [this](https://github.com/FlansMods/FlansMod/wiki/Installing-FlansMod) page in the wiki, everything is explained there.

## Issues

If you encounter any issues while using Flan's Mod, see this [page](https://github.com/FlansMods/FlansMod/wiki/Issue-Reporting)

## Development

If you want to contribute to this project, feel free to pitch in and submit a pull request. If you plan larger changes, please talk first to other contributers as there might be hidden problems.

Instructions on how to build FlansMod are below

### Building
1. Download/clone this repository
1. Run the build command for your system in the repository
	- Linux/Mac: `./gradlew build`
	- Windows: `gradlew.bat build`
1. Built files are found in the directory `./build/output`


This GitHub environment is to be treated maturely -- do not release any of this source code without prior
permission from jamioflan.


================================================
FILE: build.bat
================================================
gradlew build
pause

================================================
FILE: build.gradle
================================================
buildscript
{
    dependencies
	{
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
    }
    repositories
	{
        jcenter()
        maven
		{
			// location of the maven that hosts the forge files
			name = "Forge maven"
			url = "http://files.minecraftforge.net/maven"
        }
    }
}

apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'com.github.johnrengelman.shadow'

version = version_major + "." + version_minor + "." + version_patch + version_extra
group = "com.flansmod"
archivesBaseName = "Flan's Mod"

apocalypseVersion = apocalypseVersion + version_extra

sourceCompatibility = targetCompatibility = '1.8'
compileJava {
    sourceCompatibility = targetCompatibility = '1.8'
}

dependencies {
    compile "io.vavr:vavr:0.10.2"
    shadow "io.vavr:vavr:0.10.2"
}

minecraft {
    version = minecraft_version + "-" + forge_version
    runDir = "run"

    replace "@ALLOWED_VERSIONS@", "[5.10.0, 5.11)"
    replace "@VERSION@", project.version
    replaceIn "FlansMod.java"
	replaceIn "ModernWeaponsPackMod.java"
	replaceIn "TitanPackMod.java"
	replaceIn "SimplePartsPackMod.java"
	replaceIn "NerfPackMod.java"
	replaceIn "MechaPartsPackMod.java"
	replaceIn "UtilityPackMod.java"
	replaceIn "WW2PackMod.java"
	replaceIn "YeOldePackMod.java"
	replaceIn "ZombiePackMod.java"

    replace "@ALLOWED_VERSIONS_APOCALYPSE@", "[1.4, 1.5)"
    replace "@VERSION_APOCALYPSE@", project.apocalypseVersion
    replaceIn "FlansModApocalypse.java"

    mappings = "stable_39"
    //if this is required, it should be enabled locally for selected runs. These runs will take about 10 seconds longer
    makeObfSourceJar = false
}

processResources {
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "apocalypseversion", project.apocalypseVersion
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'

        // replace version and mcversion
        expand 'version': project.version, 'apocalypseversion': project.apocalypseVersion,
            'mcversion': project.minecraft.version
    }

    // copy everything else except the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}

version = "${project.minecraft.version}-${project.version}"

task mechaParts(type: Jar) {
	from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/mechaparts/' }
    from 'run/Flan/Mecha Parts Pack'
    baseName = 'Mecha Parts'
    appendix = 'Content Pack'
}

task modernWeapons(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/modernweapons/' }
    from 'run/Flan/Modern Weapons Pack'
    baseName = 'Modern Warfare'
    appendix = 'Content Pack'
}

task nerf(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/nerf/' }
    from 'run/Flan/Nerf Pack'
    baseName = 'Nerf'
    appendix = 'Content Pack'
}

task simpleParts(type: Jar) {
	from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/simple/' }
    from 'run/Flan/Parts Pack'
    baseName = 'Simple Parts'
    appendix = 'Content Pack'
}

task titan(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/titan/' }
    from 'run/Flan/Titan Pack'
    baseName = 'Titan'
    appendix = 'Content Pack'
}

task utility(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/utility/' }
    from 'run/Flan/Utility Pack'
    baseName = 'Utility'
    appendix = 'Content Pack'
}

task ww2(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/ww2/' }
    from 'run/Flan/WW2 Pack'
    baseName = 'WW2'
    appendix = 'Content Pack'
}

task yeOlde(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/yeolde/' }
    from 'run/Flan/Ye Olde Pack'
    baseName = 'Ye Olde'
    appendix = 'Content Pack'
}

task zombie(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/zombie/' }
    from 'run/Flan/Zombie Pack'
    baseName = 'Zombie'
    appendix = 'Content Pack'
}

task apoc(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/apocalypse/' }
    from 'run/Flan/Apocalypse Pack'
    baseName = 'Apocalypse'
    appendix = 'Content Pack'
}

task leaderboards(type: Jar) {
    from(zipTree("${destinationDir}/${archiveName}")) { include 'com/flansmod/leaderboards/' }
    baseName = 'Leaderboards'
    appendix = 'Content Pack'
}

task contentPacks() {
    dependsOn mechaParts
    dependsOn modernWeapons
    dependsOn nerf
    dependsOn simpleParts
    dependsOn titan
    dependsOn utility
    dependsOn ww2
    dependsOn yeOlde
    dependsOn zombie
    dependsOn apoc
	dependsOn leaderboards
}

task clearOutput(type: Delete) {
    delete 'build/output/'
}

task outputJar(type: Jar) {
    destinationDir = new File("build/output/mods/")
    from(zipTree("build/libs/${archivesBaseName}-${version}-all.jar")) {
        exclude '**/apocalypse/'
        exclude '**/modernweapons/'
        exclude '**/nerf/'
        exclude '**/titan/'
        exclude '**/utility/'
        exclude '**/ww2/'
        exclude '**/yeolde/'
        exclude '**/zombie/'
        exclude '**/simple/'
        exclude '**/mechaparts/'
		exclude '**/steampunk/'
		exclude '**/leaderboards/'
    }
}

task outputPacks(type: Copy) {
    from('build/libs/') {
        include "**/*${version}.jar"
        exclude "**/Flan's Mod*.jar"
    }
    into 'build/output/mods/'
}

shadowJar {
    configurations = [project.configurations.shadow]
}

reobf {
    shadowJar {
        mappingType = "SEARGE"
    }
}

tasks.reobfShadowJar.mustRunAfter shadowJar

build {
    dependsOn reobfShadowJar
    dependsOn contentPacks
    dependsOn clearOutput
    dependsOn outputJar
    dependsOn outputPacks
}


================================================
FILE: gradle/wrapper/gradle-wrapper.properties
================================================
#Wed Jun 03 12:06:43 BST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip


================================================
FILE: gradle.properties
================================================
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G

forge_version = 14.23.5.2838
minecraft_version = 1.12.2
jei_version = 4.16.1.1000

version_major = 5
version_minor = 10
version_patch = 0
version_extra =
apocalypseVersion = 1.4.0


================================================
FILE: gradlew
================================================
#!/usr/bin/env sh

##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn () {
    echo "$*"
}

die () {
    echo
    echo "$*"
    echo
    exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
  NONSTOP* )
    nonstop=true
    ;;
esac

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
    JAVACMD=`cygpath --unix "$JAVACMD"`

    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option

        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi

# Escape application args
save () {
    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
    echo " "
}
APP_ARGS=$(save "$@")

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
  cd "$(dirname "$0")"
fi

exec "$JAVACMD" "$@"


================================================
FILE: gradlew.bat
================================================
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega


================================================
FILE: src/main/java/com/flansmod/api/IControllable.java
================================================
package com.flansmod.api;

import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import com.flansmod.common.driveables.EntitySeat;

public interface IControllable
{
	/**
	 * This is fired every tick.
	 *
	 * @param deltaX change in X of the mouse.
	 * @param deltaY change in Y of the mouse.
	 */
	void onMouseMoved(int deltaX, int deltaY);
	
	/**
	 * @param key the keycode of the key. see @link:KeyInputHandler
	 * @return boolean to indicate it this key was handled.
	 */
	boolean pressKey(int key, EntityPlayer player, boolean isOnEvent);
	
	boolean serverHandleKeyPress(int key, EntityPlayer player);
	
	void updateKeyHeldState(int key, boolean held);
	
	/**
	 * @return riddenByEntity
	 */
	Entity getControllingEntity();
	
	boolean isDead();
	
	/**
	 * @return The player's view roll
	 */
	float getPlayerRoll();
	
	float getPrevPlayerRoll();
	
	/**
	 * @return The player's 3rd person view distance
	 */
	float getCameraDistance();
	
	@SideOnly(Side.CLIENT)
	EntityLivingBase getCamera();
	
	EntitySeat getSeat(EntityLivingBase living);
}


================================================
FILE: src/main/java/com/flansmod/api/IExplodeable.java
================================================
package com.flansmod.api;

/**
 * Implement this interface if an entity is able to explode. Other modders will be able to check if
 * an entity instanceof this, and if so, call the explode() method.
 *
 * @author AidanBrady
 */
public interface IExplodeable
{
	/**
	 * Explode the entity completely.
	 */
	void explode();
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/ClientProxyApocalypse.java
================================================
package com.flansmod.apocalypse.client;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

import com.flansmod.apocalypse.client.model.RenderSkullDrone;
import com.flansmod.apocalypse.client.model.RenderFakePlayer;
import com.flansmod.apocalypse.client.model.RenderNukeDrop;
import com.flansmod.apocalypse.client.model.RenderPowerCube;
import com.flansmod.apocalypse.client.model.RenderSkullBoss;
import com.flansmod.apocalypse.client.model.RenderSurvivor;
import com.flansmod.apocalypse.client.model.RenderTeleporter;
import com.flansmod.apocalypse.common.CommonProxyApocalypse;
import com.flansmod.apocalypse.common.FlansModApocalypse;
import com.flansmod.apocalypse.common.blocks.BlockSulphuricAcid;
import com.flansmod.apocalypse.common.blocks.TileEntityPowerCube;
import com.flansmod.apocalypse.common.entity.EntityAIMecha;
import com.flansmod.apocalypse.common.entity.EntitySkullDrone;
import com.flansmod.apocalypse.common.entity.EntityFakePlayer;
import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntitySkullBoss;
import com.flansmod.apocalypse.common.entity.EntitySurvivor;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;
import com.flansmod.client.FlansModClient;
import com.flansmod.client.handlers.FlansModResourceHandler;
import com.flansmod.client.model.RenderMecha;
import com.flansmod.client.util.WorldRenderer;
import com.flansmod.common.FlansMod;

public class ClientProxyApocalypse extends CommonProxyApocalypse
{
	private static final String FLUID_MODEL_PATH = "flansmodapocalypse:fluid";
	
	public static int apocalypseCountdown = 0;
	
	@Override
	public void preInit(FMLPreInitializationEvent event)
	{
		super.preInit(event);
		
		MinecraftForge.EVENT_BUS.register(this);
		
		((BlockSulphuricAcid)FlansModApocalypse.blockSulphuricAcid).registerRenderer();
		RenderingRegistry.registerEntityRenderingHandler(EntitySurvivor.class, new RenderSurvivor.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntityFakePlayer.class,new RenderFakePlayer.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntityTeleporter.class, new RenderTeleporter.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntityAIMecha.class, new RenderMecha.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntityNukeDrop.class, new RenderNukeDrop.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntitySkullBoss.class, new RenderSkullBoss.Factory());
		RenderingRegistry.registerEntityRenderingHandler(EntitySkullDrone.class, new RenderSkullDrone.Factory());

	}
	
	@Override
	public void init(FMLInitializationEvent event)
	{
		super.init(event);

		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPowerCube.class, new RenderPowerCube());
	}
	
	@Override
	public void postInit(FMLPostInitializationEvent event)
	{
		//FlansMod.getPacketHandler().registerPacket(PacketApocalypseCountdown.class);
	}
	
	@SubscribeEvent
	public void registerSoundEvents(RegistryEvent.Register<SoundEvent> event)
	{
		event.getRegistry().register(FlansModResourceHandler.getSoundEvent("skullboss_laugh"));
		event.getRegistry().register(FlansModResourceHandler.getSoundEvent("skullboss_spawn"));
	}
	
	
	public static void updateApocalypseCountdownTimer(int i)
	{
		apocalypseCountdown = i;
	}
	
	@SubscribeEvent
	public void registerModels(ModelRegistryEvent event)
	{		
		ModelLoader.setCustomModelResourceLocation(FlansModApocalypse.sulphur, 0, 
				new ModelResourceLocation(FlansModApocalypse.MODID + ":flansulphur", "inventory"));
		
		ModelLoader.setCustomModelResourceLocation(FlansModApocalypse.itemBlockSulphur, 0, 
				new ModelResourceLocation(FlansModApocalypse.MODID + ":blocksulphur", "inventory"));
		
		ModelLoader.setCustomModelResourceLocation(FlansModApocalypse.itemBlockPowerCube, 0, 
				new ModelResourceLocation(FlansModApocalypse.MODID + ":blockpowercube", "inventory"));

		ModelLoader.setCustomModelResourceLocation(FlansModApocalypse.itemBlockLabStone, 0, 
				new ModelResourceLocation(FlansModApocalypse.MODID + ":blocklabstone", "inventory"));
	}
	
	/**
	 * Tick hook for client logic
	 */
	@SubscribeEvent
	public void tick(TickEvent.ClientTickEvent event)
	{
		if(event.phase == TickEvent.Phase.START)
		{
			if(apocalypseCountdown > 0)
			{
				apocalypseCountdown--;
			}
		}
	}
	
	/**
	 * Tick hook for client render
	 */
	@SubscribeEvent
	public void tick(TickEvent.RenderTickEvent event)
	{
		if(event.phase == TickEvent.Phase.START)
		{
		
		}
	}
	
	@SubscribeEvent
	public void eventHandler(RenderGameOverlayEvent event)
	{
		Minecraft mc = Minecraft.getMinecraft();
		//DEBUG vehicles
		if(apocalypseCountdown > 0 && FlansMod.DEBUG)
		{
			mc.fontRenderer.drawString("Seconds to the apocalypse: " + (apocalypseCountdown / 20), 2, 2, 0xffffff);
		}
		
		//Draw white screen if we are being nuked
		ScaledResolution scaledresolution = new ScaledResolution(FlansModClient.minecraft);
		int i = scaledresolution.getScaledWidth();
		int j = scaledresolution.getScaledHeight();
		
		Tessellator tessellator = Tessellator.getInstance();
		
		if(!event.isCancelable() && event.getType() == ElementType.HELMET)
		{
			boolean playerIsInExplosion = false;
			for(Object obj : mc.world.loadedEntityList)
			{
				if(obj instanceof EntityNukeDrop)
				{
					EntityNukeDrop nuke = (EntityNukeDrop)obj;
					float scale = 1F - 1F / ((float)nuke.timeSinceExplosion / 5F + 1);
					scale *= 100F * scale;
					float alpha = ((float)nuke.timeSinceExplosion / (float)EntityNukeDrop.explosionLength);
					alpha = 1F - alpha * alpha;
					alpha *= 0.5F;
					//Render white screen
					if(mc.player.getDistanceSq(nuke) < scale * scale)
					{
						FlansModClient.minecraft.entityRenderer.setupOverlayRendering();
						GlStateManager.enableBlend();
						GlStateManager.disableDepth();
						GlStateManager.disableTexture2D();
						GlStateManager.depthMask(false);
						GlStateManager.blendFunc(770, 771);
						GlStateManager.color(1F, 1F, 1F, alpha);
						GlStateManager.disableAlpha();

						WorldRenderer worldrenderer = FlansModClient.getWorldRenderer();
						worldrenderer.startDrawingQuads();
						worldrenderer.addVertexWithUV(i / 2 - 2 * j, j, -90D, 0.0D, 1.0D);
						worldrenderer.addVertexWithUV(i / 2 + 2 * j, j, -90D, 1.0D, 1.0D);
						worldrenderer.addVertexWithUV(i / 2 + 2 * j, 0.0D, -90D, 1.0D, 0.0D);
						worldrenderer.addVertexWithUV(i / 2 - 2 * j, 0.0D, -90D, 0.0D, 0.0D);
						worldrenderer.draw();
						GlStateManager.depthMask(true);
						GlStateManager.enableDepth();
						GlStateManager.enableAlpha();
						GlStateManager.enableTexture2D();
						GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
					}
				}
			}
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelBuggy.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.4.2
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model; //Path where the model is located

import com.flansmod.client.model.ModelVehicle;
import com.flansmod.client.tmt.Coord2D;
import com.flansmod.client.tmt.ModelRendererTurbo;
import com.flansmod.client.tmt.Shape2D;

public class ModelBuggy extends ModelVehicle //Same as Filename
{
	int textureX = 256;
	int textureY = 256;

	public ModelBuggy() //Same as Filename
	{
		bodyModel = new ModelRendererTurbo[206];
		bodyModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 9
		bodyModel[1] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 10
		bodyModel[2] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 11
		bodyModel[3] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 12
		bodyModel[4] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 13
		bodyModel[5] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 14
		bodyModel[6] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 20
		bodyModel[7] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 21
		bodyModel[8] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 30
		bodyModel[9] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 31
		bodyModel[10] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 41
		bodyModel[11] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 46
		bodyModel[12] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 49
		bodyModel[13] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 52
		bodyModel[14] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 55
		bodyModel[15] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 56
		bodyModel[16] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 57
		bodyModel[17] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 59
		bodyModel[18] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 60
		bodyModel[19] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 61
		bodyModel[20] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 2
		bodyModel[21] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 3
		bodyModel[22] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 5
		bodyModel[23] = new ModelRendererTurbo(this, 0, 67, textureX, textureY); // Box 6
		bodyModel[24] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 7
		bodyModel[25] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 9
		bodyModel[26] = new ModelRendererTurbo(this, 0, 59, textureX, textureY); // Box 10
		bodyModel[27] = new ModelRendererTurbo(this, 0, 73, textureX, textureY); // Box 11
		bodyModel[28] = new ModelRendererTurbo(this, 0, 67, textureX, textureY); // Box 12
		bodyModel[29] = new ModelRendererTurbo(this, 0, 59, textureX, textureY); // Box 13
		bodyModel[30] = new ModelRendererTurbo(this, 0, 73, textureX, textureY); // Box 14
		bodyModel[31] = new ModelRendererTurbo(this, 0, 59, textureX, textureY); // Box 15
		bodyModel[32] = new ModelRendererTurbo(this, 0, 67, textureX, textureY); // Box 16
		bodyModel[33] = new ModelRendererTurbo(this, 0, 73, textureX, textureY); // Box 17
		bodyModel[34] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 20
		bodyModel[35] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 21
		bodyModel[36] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 22
		bodyModel[37] = new ModelRendererTurbo(this, 127, 122, textureX, textureY); // Box 24
		bodyModel[38] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 25
		bodyModel[39] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 26
		bodyModel[40] = new ModelRendererTurbo(this, 97, 124, textureX, textureY); // Box 27
		bodyModel[41] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 28
		bodyModel[42] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 30
		bodyModel[43] = new ModelRendererTurbo(this, 97, 122, textureX, textureY); // Box 31
		bodyModel[44] = new ModelRendererTurbo(this, 63, 129, textureX, textureY); // Box 32
		bodyModel[45] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 33
		bodyModel[46] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 34
		bodyModel[47] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 35
		bodyModel[48] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 36
		bodyModel[49] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 37
		bodyModel[50] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 38
		bodyModel[51] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 39
		bodyModel[52] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 40
		bodyModel[53] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 41
		bodyModel[54] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 42
		bodyModel[55] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 43
		bodyModel[56] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 45
		bodyModel[57] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 46
		bodyModel[58] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 47
		bodyModel[59] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 48
		bodyModel[60] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 49
		bodyModel[61] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 50
		bodyModel[62] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 51
		bodyModel[63] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 52
		bodyModel[64] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 54
		bodyModel[65] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 55
		bodyModel[66] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 56
		bodyModel[67] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 57
		bodyModel[68] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 63
		bodyModel[69] = new ModelRendererTurbo(this, 0, 51, textureX, textureY); // Box 64
		bodyModel[70] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 67
		bodyModel[71] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 68
		bodyModel[72] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 69
		bodyModel[73] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 70
		bodyModel[74] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 71
		bodyModel[75] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 8
		bodyModel[76] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 9
		bodyModel[77] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 12
		bodyModel[78] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 13
		bodyModel[79] = new ModelRendererTurbo(this, 85, 55, textureX, textureY); // Box 14
		bodyModel[80] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 82
		bodyModel[81] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 83
		bodyModel[82] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 84
		bodyModel[83] = new ModelRendererTurbo(this, 60, 50, textureX, textureY); // Box 85
		bodyModel[84] = new ModelRendererTurbo(this, 85, 55, textureX, textureY); // Box 86
		bodyModel[85] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 92
		bodyModel[86] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 93
		bodyModel[87] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 94
		bodyModel[88] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 95
		bodyModel[89] = new ModelRendererTurbo(this, 30, 55, textureX, textureY); // Box 96
		bodyModel[90] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 97
		bodyModel[91] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 98
		bodyModel[92] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 99
		bodyModel[93] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 100
		bodyModel[94] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 101
		bodyModel[95] = new ModelRendererTurbo(this, 30, 55, textureX, textureY); // Box 102
		bodyModel[96] = new ModelRendererTurbo(this, 0, 55, textureX, textureY); // Box 103
		bodyModel[97] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 104
		bodyModel[98] = new ModelRendererTurbo(this, 0, 67, textureX, textureY); // Box 106
		bodyModel[99] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 107
		bodyModel[100] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 108
		bodyModel[101] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 109
		bodyModel[102] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 112
		bodyModel[103] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 114
		bodyModel[104] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 119
		bodyModel[105] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 120
		bodyModel[106] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 121
		bodyModel[107] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 122
		bodyModel[108] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 123
		bodyModel[109] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 124
		bodyModel[110] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 125
		bodyModel[111] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 126
		bodyModel[112] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 127
		bodyModel[113] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 129
		bodyModel[114] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 131
		bodyModel[115] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 132
		bodyModel[116] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 133
		bodyModel[117] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 134
		bodyModel[118] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 135
		bodyModel[119] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 136
		bodyModel[120] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 137
		bodyModel[121] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 138
		bodyModel[122] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 139
		bodyModel[123] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 140
		bodyModel[124] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 141
		bodyModel[125] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 143
		bodyModel[126] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 144
		bodyModel[127] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 147
		bodyModel[128] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 148
		bodyModel[129] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 149
		bodyModel[130] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 150
		bodyModel[131] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 151
		bodyModel[132] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 159
		bodyModel[133] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 160
		bodyModel[134] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 161
		bodyModel[135] = new ModelRendererTurbo(this, 72, 96, textureX, textureY); // Box 162
		bodyModel[136] = new ModelRendererTurbo(this, 40, 68, textureX, textureY); // Box 163
		bodyModel[137] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 164
		bodyModel[138] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 165
		bodyModel[139] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 166
		bodyModel[140] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 167
		bodyModel[141] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 168
		bodyModel[142] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 169
		bodyModel[143] = new ModelRendererTurbo(this, 87, 18, textureX, textureY); // Box 170
		bodyModel[144] = new ModelRendererTurbo(this, 87, 5, textureX, textureY); // Box 171
		bodyModel[145] = new ModelRendererTurbo(this, 54, 11, textureX, textureY); // Box 172
		bodyModel[146] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 173
		bodyModel[147] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 174
		bodyModel[148] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 175
		bodyModel[149] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 176
		bodyModel[150] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 177
		bodyModel[151] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 178
		bodyModel[152] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 179
		bodyModel[153] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 180
		bodyModel[154] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 181
		bodyModel[155] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 182
		bodyModel[156] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 183
		bodyModel[157] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 184
		bodyModel[158] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 185
		bodyModel[159] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 186
		bodyModel[160] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 187
		bodyModel[161] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 188
		bodyModel[162] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 189
		bodyModel[163] = new ModelRendererTurbo(this, 119, 42, textureX, textureY); // Box 190
		bodyModel[164] = new ModelRendererTurbo(this, 87, 30, textureX, textureY); // Box 191
		bodyModel[165] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 192
		bodyModel[166] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 193
		bodyModel[167] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 194
		bodyModel[168] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 195
		bodyModel[169] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 211
		bodyModel[170] = new ModelRendererTurbo(this, 0, 78, textureX, textureY); // Box 212
		bodyModel[171] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 213
		bodyModel[172] = new ModelRendererTurbo(this, 0, 78, textureX, textureY); // Box 214
		bodyModel[173] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 215
		bodyModel[174] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 216
		bodyModel[175] = new ModelRendererTurbo(this, 19, 53, textureX, textureY); // Box 218
		bodyModel[176] = new ModelRendererTurbo(this, 6, 49, textureX, textureY); // Box 219
		bodyModel[177] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 230
		bodyModel[178] = new ModelRendererTurbo(this, 73, 107, textureX, textureY); // Box 231
		bodyModel[179] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 232
		bodyModel[180] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 233
		bodyModel[181] = new ModelRendererTurbo(this, 0, 107, textureX, textureY); // Box 234
		bodyModel[182] = new ModelRendererTurbo(this, 97, 122, textureX, textureY); // Box 235
		bodyModel[183] = new ModelRendererTurbo(this, 63, 129, textureX, textureY); // Box 236
		bodyModel[184] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 237
		bodyModel[185] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 238
		bodyModel[186] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 239
		bodyModel[187] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 240
		bodyModel[188] = new ModelRendererTurbo(this, 0, 107, textureX, textureY); // Box 241
		bodyModel[189] = new ModelRendererTurbo(this, 73, 107, textureX, textureY); // Box 242
		bodyModel[190] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 243
		bodyModel[191] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 244
		bodyModel[192] = new ModelRendererTurbo(this, 85, 65, textureX, textureY); // Box 245
		bodyModel[193] = new ModelRendererTurbo(this, 85, 65, textureX, textureY); // Box 246
		bodyModel[194] = new ModelRendererTurbo(this, 70, 72, textureX, textureY); // Box 247
		bodyModel[195] = new ModelRendererTurbo(this, 70, 72, textureX, textureY); // Box 248
		bodyModel[196] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 249
		bodyModel[197] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 250
		bodyModel[198] = new ModelRendererTurbo(this, 111, 51, textureX, textureY); // Box 251
		bodyModel[199] = new ModelRendererTurbo(this, 111, 51, textureX, textureY); // Box 252
		bodyModel[200] = new ModelRendererTurbo(this, 121, 51, textureX, textureY); // Box 253
		bodyModel[201] = new ModelRendererTurbo(this, 121, 51, textureX, textureY); // Box 254
		bodyModel[202] = new ModelRendererTurbo(this, 121, 55, textureX, textureY); // Box 255
		bodyModel[203] = new ModelRendererTurbo(this, 121, 55, textureX, textureY); // Box 256
		bodyModel[204] = new ModelRendererTurbo(this, 0, 126, textureX, textureY); // Box 258
		bodyModel[205] = new ModelRendererTurbo(this, 6, 49, textureX, textureY); // Box 1

		bodyModel[0].addShapeBox(0F, 0F, 0F, 21, 1, 1, 0F, 0F, 0F, -4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 4F, 0F, 0F, -4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 4F); // Box 9
		bodyModel[0].setRotationPoint(7F, 4.2F, 9F);

		bodyModel[1].addShapeBox(0F, 0F, 0F, 1, 9, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 4F, 0F, 0F, -4F, 0F, 0F, -4F, 0F, 0F, 4F, 0F, 0F); // Box 10
		bodyModel[1].setRotationPoint(32F, -4.8F, 9F);

		bodyModel[2].addShapeBox(0F, 0F, 0F, 1, 1, 20, 0F, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 11
		bodyModel[2].setRotationPoint(32F, -5.8F, -10F);

		bodyModel[3].addShapeBox(0F, 0F, 0F, 1, 1, 20, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 12
		bodyModel[3].setRotationPoint(28F, 4.2F, -10F);

		bodyModel[4].addShapeBox(0F, 0F, 0F, 10, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 13
		bodyModel[4].setRotationPoint(-14F, -6.8F, 13F);

		bodyModel[5].addShapeBox(0F, 0F, 0F, 21, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 14
		bodyModel[5].setRotationPoint(-14F, 4.2F, 13F);

		bodyModel[6].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F); // Box 20
		bodyModel[6].setRotationPoint(-25F, -6.8F, 13F);

		bodyModel[7].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F); // Box 21
		bodyModel[7].setRotationPoint(-25F, 4.2F, 13F);

		bodyModel[8].addShapeBox(0F, 0F, 0F, 1, 8, 1, 0F, 5F, 0F, 2F, -5F, 0F, 2F, -5F, 0F, -2F, 5F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 30
		bodyModel[8].setRotationPoint(-4F, -17.8F, 11F);

		bodyModel[9].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 31
		bodyModel[9].setRotationPoint(-4F, -9.8F, -13F);

		bodyModel[10].addShapeBox(0F, 0F, 0F, 1, 14, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 41
		bodyModel[10].setRotationPoint(-4F, -9.8F, 13F);

		bodyModel[11].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 46
		bodyModel[11].setRotationPoint(2F, 4.2F, -13F);

		bodyModel[12].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 49
		bodyModel[12].setRotationPoint(-14F, 4.2F, -13F);

		bodyModel[13].addShapeBox(0F, 0F, 0F, 16, 1, 1, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 52
		bodyModel[13].setRotationPoint(-41F, -7.8F, 13F);

		bodyModel[14].addShapeBox(0F, 0F, 0F, 10, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 55
		bodyModel[14].setRotationPoint(-35F, 3.2F, 13F);

		bodyModel[15].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 56
		bodyModel[15].setRotationPoint(-26F, 3.2F, -13F);

		bodyModel[16].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 57
		bodyModel[16].setRotationPoint(-35F, 3.2F, -13F);

		bodyModel[17].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 59
		bodyModel[17].setRotationPoint(-35F, -6.8F, 13F);

		bodyModel[18].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 60
		bodyModel[18].setRotationPoint(-26F, -6.8F, 13F);

		bodyModel[19].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 61
		bodyModel[19].setRotationPoint(-14F, -5.8F, 13F);

		bodyModel[20].addShapeBox(0F, 0F, 0F, 25, 2, 1, 0F, 0F, -2F, -4F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -2F, 4F, 0F, 1F, -4F, 0F, 2F, 0F, 0F, 2F, 0F, 0F, 1F, 4F); // Box 2
		bodyModel[20].setRotationPoint(7F, -8.8F, 9F);

		bodyModel[21].addShapeBox(0F, 0F, 0F, 25, 1, 1, 0F, 0F, 0F, 0F, 0F, -3F, -21F, 0F, -3F, 21F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 3F, -21F, 0F, 3F, 21F, 0F, 0F, 0F); // Box 3
		bodyModel[21].setRotationPoint(7F, -8.8F, -13F);

		bodyModel[22].addShapeBox(0F, 0F, 0F, 1, 1, 22, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 5
		bodyModel[22].setRotationPoint(32F, 0.7F, -11F);

		bodyModel[23].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 6
		bodyModel[23].setRotationPoint(32.5F, 2.2F, 4F);

		bodyModel[24].addShapeBox(0F, 0F, 0F, 1, 1, 22, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 7
		bodyModel[24].setRotationPoint(32F, 3.7F, -11F);

		bodyModel[25].addShapeBox(0F, 0F, 0F, 1, 2, 1, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 9
		bodyModel[25].setRotationPoint(32F, 1.7F, 11F);

		bodyModel[26].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 10
		bodyModel[26].setRotationPoint(32.5F, 1.2F, 4F);

		bodyModel[27].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F); // Box 11
		bodyModel[27].setRotationPoint(32.5F, 3.2F, 4F);

		bodyModel[28].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 12
		bodyModel[28].setRotationPoint(32.5F, 2.2F, -7F);

		bodyModel[29].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 13
		bodyModel[29].setRotationPoint(32.5F, 1.2F, -7F);

		bodyModel[30].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F); // Box 14
		bodyModel[30].setRotationPoint(32.5F, 3.2F, -7F);

		bodyModel[31].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 15
		bodyModel[31].setRotationPoint(32.5F, 1.2F, -1.5F);

		bodyModel[32].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 16
		bodyModel[32].setRotationPoint(32.5F, 2.2F, -1.5F);

		bodyModel[33].addShapeBox(0F, 0F, 0F, 1, 1, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F); // Box 17
		bodyModel[33].setRotationPoint(32.5F, 3.2F, -1.5F);

		bodyModel[34].addShapeBox(0F, 0F, 0F, 13, 1, 1, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 20
		bodyModel[34].setRotationPoint(18.5F, 1.7F, 11F);

		bodyModel[35].addShapeBox(0F, 0F, 0F, 13, 1, 1, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 21
		bodyModel[35].setRotationPoint(18.5F, 2.7F, 11F);

		bodyModel[36].addShapeBox(0F, 0F, 0F, 1, 3, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 22
		bodyModel[36].setRotationPoint(17.5F, 1.7F, 11F);

		bodyModel[37].addShapeBox(0F, 0F, 0F, 14, 1, 25, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F); // Box 24
		bodyModel[37].setRotationPoint(-12.5F, 3.7F, -12.5F);

		bodyModel[38].addShapeBox(0F, 0F, 0F, 15, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F); // Box 25
		bodyModel[38].setRotationPoint(-13F, 4.2F, -13F);

		bodyModel[39].addShapeBox(0F, 0F, 0F, 24, 1, 23, 0F, 0F, -0.3F, 0F, 0F, -3.3F, -4F, 0F, -3.3F, -4F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 2.7F, -4F, 0F, 2.7F, -4F, 0F, -0.3F, 0F); // Box 26
		bodyModel[39].setRotationPoint(7.5F, -9.3F, -11.5F);

		bodyModel[40].addShapeBox(0F, 0F, 0F, 1, 9, 25, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F); // Box 27
		bodyModel[40].setRotationPoint(-25.5F, -6.3F, -12.5F);

		bodyModel[41].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 28
		bodyModel[41].setRotationPoint(-26F, -7.8F, -13F);

		bodyModel[42].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 6F, 0F, 0F, -6F, 0F, 0F, -6F, 0F, 0F, 6F, 0F, 0F); // Box 30
		bodyModel[42].setRotationPoint(-6F, -5.8F, 13F);

		bodyModel[43].addShapeBox(0F, 0F, 0F, 1, 6, 10, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 31
		bodyModel[43].setRotationPoint(-23F, -6.8F, 1F);

		bodyModel[44].addShapeBox(0F, 0F, 0F, 11, 2, 10, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F); // Box 32
		bodyModel[44].setRotationPoint(-23F, 1.5F, 1F);

		bodyModel[45].addShapeBox(0F, 0F, 0F, 21, 1, 1, 0F, 0F, 0F, 4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -4F, 0F, 0F, 4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -4F); // Box 33
		bodyModel[45].setRotationPoint(7F, 4.2F, -10F);

		bodyModel[46].addShapeBox(0F, 0F, 0F, 1, 9, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 4F, 0F, 0F, -4F, 0F, 0F, -4F, 0F, 0F, 4F, 0F, 0F); // Box 34
		bodyModel[46].setRotationPoint(32F, -4.8F, -10F);

		bodyModel[47].addShapeBox(0F, 0F, 0F, 25, 2, 1, 0F, 0F, -2F, 4F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -2F, -4F, 0F, 1F, 4F, 0F, 2F, 0F, 0F, 2F, 0F, 0F, 1F, -4F); // Box 35
		bodyModel[47].setRotationPoint(7F, -8.8F, -10F);

		bodyModel[48].addShapeBox(0F, 0F, 0F, 1, 2, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, 1F, 0F); // Box 36
		bodyModel[48].setRotationPoint(32F, 1.7F, -12F);

		bodyModel[49].addShapeBox(0F, 0F, 0F, 13, 1, 1, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 37
		bodyModel[49].setRotationPoint(18.5F, 1.7F, -12F);

		bodyModel[50].addShapeBox(0F, 0F, 0F, 13, 1, 1, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 38
		bodyModel[50].setRotationPoint(18.5F, 2.7F, -12F);

		bodyModel[51].addShapeBox(0F, 0F, 0F, 10, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 39
		bodyModel[51].setRotationPoint(-14F, -6.8F, -14F);

		bodyModel[52].addShapeBox(0F, 0F, 0F, 21, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 40
		bodyModel[52].setRotationPoint(-14F, 4.2F, -14F);

		bodyModel[53].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F); // Box 41
		bodyModel[53].setRotationPoint(-25F, -6.8F, -14F);

		bodyModel[54].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F); // Box 42
		bodyModel[54].setRotationPoint(-25F, 4.2F, -14F);

		bodyModel[55].addShapeBox(0F, 0F, 0F, 1, 14, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 43
		bodyModel[55].setRotationPoint(-4F, -9.8F, -14F);

		bodyModel[56].addShapeBox(0F, 0F, 0F, 16, 1, 1, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 45
		bodyModel[56].setRotationPoint(-41F, -7.8F, -14F);

		bodyModel[57].addShapeBox(0F, 0F, 0F, 10, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 46
		bodyModel[57].setRotationPoint(-35F, 3.2F, -14F);

		bodyModel[58].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 47
		bodyModel[58].setRotationPoint(-35F, -6.8F, -14F);

		bodyModel[59].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 48
		bodyModel[59].setRotationPoint(-26F, -6.8F, -14F);

		bodyModel[60].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 49
		bodyModel[60].setRotationPoint(-14F, -5.8F, -14F);

		bodyModel[61].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 6F, 0F, 0F, -6F, 0F, 0F, -6F, 0F, 0F, 6F, 0F, 0F); // Box 50
		bodyModel[61].setRotationPoint(-6F, -5.8F, -14F);

		bodyModel[62].addShapeBox(0F, 0F, 0F, 1, 3, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 51
		bodyModel[62].setRotationPoint(17.5F, 1.7F, -12F);

		bodyModel[63].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 52
		bodyModel[63].setRotationPoint(32F, -4.8F, -8F);

		bodyModel[64].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 54
		bodyModel[64].setRotationPoint(32F, -4.8F, 7F);

		bodyModel[65].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 55
		bodyModel[65].setRotationPoint(32F, -4.8F, -5.5F);

		bodyModel[66].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 56
		bodyModel[66].setRotationPoint(32F, -4.8F, -0.5F);

		bodyModel[67].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 57
		bodyModel[67].setRotationPoint(32F, -4.8F, -3F);

		bodyModel[68].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 63
		bodyModel[68].setRotationPoint(32F, -4.8F, 4.5F);

		bodyModel[69].addShapeBox(0F, 0F, 0F, 1, 6, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F, -0.2F, -0.5F, -0.2F); // Box 64
		bodyModel[69].setRotationPoint(32F, -4.8F, 2F);

		bodyModel[70].addShapeBox(0F, 0F, 0F, 25, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, -21F, 0F, 0F, 21F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -21F, 0F, 0F, 21F, 0F, 0F, 0F); // Box 67
		bodyModel[70].setRotationPoint(3F, 4.2F, -13F);

		bodyModel[71].addShapeBox(0F, 0F, 0F, 25, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 21F, 0F, 0F, -21F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 21F, 0F, 0F, -21F, 0F, 0F, 0F); // Box 68
		bodyModel[71].setRotationPoint(3F, 4.2F, 12F);

		bodyModel[72].addShapeBox(0F, 0F, 0F, 15, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F); // Box 69
		bodyModel[72].setRotationPoint(-13F, 4.2F, 12F);

		bodyModel[73].addShapeBox(0F, 0F, 0F, 1, 13, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 70
		bodyModel[73].setRotationPoint(6F, -8.8F, -14F);

		bodyModel[74].addShapeBox(0F, 0F, 0F, 1, 13, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 71
		bodyModel[74].setRotationPoint(6F, -8.8F, 13F);

		bodyModel[75].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, 0F, -0.3F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -0.3F, 0F, 0F, 0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0.5F, 0F); // Box 8
		bodyModel[75].setRotationPoint(17F, -7F, 13F);

		bodyModel[76].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, 0F, -1.7F, 0F, 0F, 0.2F, 0F, 0F, 0.2F, 0F, 0F, -1.7F, 0F, -1.1F, 1.7F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1.1F, 1.7F, 0F); // Box 9
		bodyModel[76].setRotationPoint(13F, -6.5F, 13F);

		bodyModel[77].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, -1.7F, -3F, 0F, 0F, 0.3F, 0F, 0F, 0.3F, 0F, -1.7F, -3F, 0F, -2.9F, 2.5F, 0F, 1.2F, -0.3F, 0F, 1.2F, -0.3F, 0F, -2.9F, 2.5F, 0F); // Box 12
		bodyModel[77].setRotationPoint(9F, -4.5F, 13F);

		bodyModel[78].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, -2.4F, -3F, 0F, -0.3F, 0.5F, 0F, -0.3F, 0.5F, 0F, -2.4F, -3F, 0F, -3.5F, 1.7F, 0F, 0.9F, -1F, 0F, 0.9F, -1F, 0F, -3.5F, 2.5F, 0F); // Box 13
		bodyModel[78].setRotationPoint(7F, -1F, 13F);

		bodyModel[79].addShapeBox(0F, 0F, 0F, 6, 1, 8, 0F, 0F, 0.5F, 0F, 0F, -0.8F, 0F, 0F, -0.8F, 0F, 0F, 0.5F, 0F, 0F, -0.5F, 0F, 0F, 1.2F, 0F, 0F, 1.2F, 0F, 0F, -0.5F, 0F); // Box 14
		bodyModel[79].setRotationPoint(21F, -6.5F, 13F);

		bodyModel[80].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, 0F, -0.3F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -0.3F, 0F, 0F, 0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0.5F, 0F); // Box 82
		bodyModel[80].setRotationPoint(17F, -7F, -21F);

		bodyModel[81].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, 0F, -1.7F, 0F, 0F, 0.2F, 0F, 0F, 0.2F, 0F, 0F, -1.7F, 0F, -1.1F, 1.7F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1.1F, 1.7F, 0F); // Box 83
		bodyModel[81].setRotationPoint(13F, -6.5F, -21F);

		bodyModel[82].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, -1.7F, -3F, 0F, 0F, 0.3F, 0F, 0F, 0.3F, 0F, -1.7F, -3F, 0F, -2.9F, 2.5F, 0F, 1.2F, -0.3F, 0F, 1.2F, -0.3F, 0F, -2.9F, 2.5F, 0F); // Box 84
		bodyModel[82].setRotationPoint(9F, -4.5F, -21F);

		bodyModel[83].addShapeBox(0F, 0F, 0F, 4, 1, 8, 0F, -2.4F, -3F, 0F, -0.3F, 0.5F, 0F, -0.3F, 0.5F, 0F, -2.4F, -3F, 0F, -3.5F, 2.5F, 0F, 0.9F, -1F, 0F, 0.9F, -1F, 0F, -3.5F, 1.7F, 0F); // Box 85
		bodyModel[83].setRotationPoint(7F, -1F, -21F);

		bodyModel[84].addShapeBox(0F, 0F, 0F, 6, 1, 8, 0F, 0F, 0.5F, 0F, 0F, -0.8F, 0F, 0F, -0.8F, 0F, 0F, 0.5F, 0F, 0F, -0.5F, 0F, 0F, 1.2F, 0F, 0F, 1.2F, 0F, 0F, -0.5F, 0F); // Box 86
		bodyModel[84].setRotationPoint(21F, -6.5F, -21F);

		bodyModel[85].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, -0.3F, 0.5F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, -0.3F, 0.5F, 0F, 0.9F, -1F, 0F, 0F, 3F, 0F, 0F, 3F, 0F, 0.9F, -1F, 0F); // Box 92
		bodyModel[85].setRotationPoint(-26F, -1F, 14F);

		bodyModel[86].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0.3F, 0F, -1.7F, -3F, 0F, -1.7F, -3F, 0F, 0F, 0.3F, 0F, 1.2F, -0.3F, 0F, -2.9F, 2.5F, 0F, -2.9F, 2.5F, 0F, 1.2F, -0.3F, 0F); // Box 93
		bodyModel[86].setRotationPoint(-28F, -4.5F, 14F);

		bodyModel[87].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0.2F, 0F, 0F, -1.7F, 0F, 0F, -1.7F, 0F, 0F, 0.2F, 0F, 0F, 0F, 0F, -1.1F, 1.7F, 0F, -1.1F, 1.7F, 0F, 0F, 0F, 0F); // Box 94
		bodyModel[87].setRotationPoint(-32F, -6.5F, 14F);

		bodyModel[88].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0.5F, 0F, 0F, 0.5F, 0F, 0F, 0F, 0F); // Box 95
		bodyModel[88].setRotationPoint(-36F, -7F, 14F);

		bodyModel[89].addShapeBox(0F, 0F, 0F, 8, 1, 9, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 96
		bodyModel[89].setRotationPoint(-44F, -7F, 14F);

		bodyModel[90].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -4F, 0F, 0F, 0F); // Box 97
		bodyModel[90].setRotationPoint(-22F, 2F, 14F);

		bodyModel[91].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, -0.3F, 0.5F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, -0.3F, 0.5F, 0F, 0.9F, -1F, 0F, 0F, 3F, 0F, 0F, 3F, 0F, 0.9F, -1F, 0F); // Box 98
		bodyModel[91].setRotationPoint(-26F, -1F, -23F);

		bodyModel[92].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0.3F, 0F, -1.7F, -3F, 0F, -1.7F, -3F, 0F, 0F, 0.3F, 0F, 1.2F, -0.3F, 0F, -2.9F, 2.5F, 0F, -2.9F, 2.5F, 0F, 1.2F, -0.3F, 0F); // Box 99
		bodyModel[92].setRotationPoint(-28F, -4.5F, -23F);

		bodyModel[93].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0.2F, 0F, 0F, -1.7F, 0F, 0F, -1.7F, 0F, 0F, 0.2F, 0F, 0F, 0F, 0F, -1.1F, 1.7F, 0F, -1.1F, 1.7F, 0F, 0F, 0F, 0F); // Box 100
		bodyModel[93].setRotationPoint(-32F, -6.5F, -23F);

		bodyModel[94].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0.5F, 0F, 0F, 0.5F, 0F, 0F, 0F, 0F); // Box 101
		bodyModel[94].setRotationPoint(-36F, -7F, -23F);

		bodyModel[95].addShapeBox(0F, 0F, 0F, 8, 1, 9, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 102
		bodyModel[95].setRotationPoint(-44F, -7F, -23F);

		bodyModel[96].addShapeBox(0F, 0F, 0F, 4, 1, 9, 0F, 0F, 0F, 0F, 0F, 0F, -4F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -4F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 103
		bodyModel[96].setRotationPoint(-22F, 2F, -23F);

		bodyModel[97].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 104
		bodyModel[97].setRotationPoint(6F, -8.8F, -13F);

		bodyModel[98].addShapeBox(0F, 0F, 0F, 8, 1, 23, 0F, 0F, -0.3F, 0F, 0F, -1.3F, 0F, 0F, -1.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 0.7F, 0F, 0F, 0.7F, 0F, 0F, -0.3F, 0F); // Box 106
		bodyModel[98].setRotationPoint(-2.5F, -10.3F, -11.5F);

		bodyModel[99].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F); // Box 107
		bodyModel[99].setRotationPoint(-3F, -6.8F, -13F);

		bodyModel[100].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F); // Box 108
		bodyModel[100].setRotationPoint(-3F, -6.8F, 12F);

		bodyModel[101].addShapeBox(0F, 0F, 0F, 1, 1, 20, 0F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 109
		bodyModel[101].setRotationPoint(-9F, -18.8F, -10F);

		bodyModel[102].addShapeBox(0F, 0F, 0F, 1, 1, 20, 0F, -1F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, -1F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 112
		bodyModel[102].setRotationPoint(-24F, -20.8F, -10F);

		bodyModel[103].addShapeBox(0F, 0F, 0F, 1, 4, 1, 0F, -5F, 0F, 2F, 5F, 0F, 2F, 5F, 0F, -2F, -5F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 114
		bodyModel[103].setRotationPoint(-29F, -19.8F, 11F);

		bodyModel[104].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 119
		bodyModel[104].setRotationPoint(-3F, -6.8F, 13F);

		bodyModel[105].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 120
		bodyModel[105].setRotationPoint(-3F, -6.8F, -14F);

		bodyModel[106].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 121
		bodyModel[106].setRotationPoint(6F, -6.8F, -13F);

		bodyModel[107].addShapeBox(0F, 0F, 0F, 25, 1, 1, 0F, 0F, 0F, 0F, 0F, -3F, 21F, 0F, -3F, -21F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 3F, 21F, 0F, 3F, -21F, 0F, 0F, 0F); // Box 122
		bodyModel[107].setRotationPoint(7F, -8.8F, 12F);

		bodyModel[108].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, -1F, 25F, 0F, -1F, -25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 25F, 0F, 1F, -25F, 0F, 0F, 0F); // Box 123
		bodyModel[108].setRotationPoint(-3F, -9.8F, 12F);

		bodyModel[109].addShapeBox(0F, 0F, 0F, 9, 1, 1, 0F, 0F, 0F, 0F, 0F, -1F, -25F, 0F, -1F, 25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, -25F, 0F, 1F, 25F, 0F, 0F, 0F); // Box 124
		bodyModel[109].setRotationPoint(-3F, -9.8F, -13F);

		bodyModel[110].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 125
		bodyModel[110].setRotationPoint(-4F, -9.8F, -13F);

		bodyModel[111].addShapeBox(0F, 0F, 0F, 1, 8, 1, 0F, 5F, 0F, -2F, -5F, 0F, -2F, -5F, 0F, 2F, 5F, 0F, 2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 126
		bodyModel[111].setRotationPoint(-4F, -17.8F, -12F);

		bodyModel[112].addShapeBox(0F, 0F, 0F, 1, 4, 1, 0F, -5F, 0F, -2F, 5F, 0F, -2F, 5F, 0F, 2F, -5F, 0F, 2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 127
		bodyModel[112].setRotationPoint(-29F, -19.8F, -12F);

		bodyModel[113].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -6F, 0F, 0F, 6F, 0F, 0F, 6F, 0F, 0F, -6F, 0F, 0F); // Box 129
		bodyModel[113].setRotationPoint(-2F, -5.8F, -14F);

		bodyModel[114].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -6F, 0F, 0F, 6F, 0F, 0F, 6F, 0F, 0F, -6F, 0F, 0F); // Box 131
		bodyModel[114].setRotationPoint(-2F, -5.8F, 13F);

		bodyModel[115].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 132
		bodyModel[115].setRotationPoint(-29F, -7.8F, -13F);

		bodyModel[116].addShapeBox(0F, 0F, 0F, 7, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 133
		bodyModel[116].setRotationPoint(-42F, 3.2F, 13F);

		bodyModel[117].addShapeBox(0F, 0F, 0F, 7, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 134
		bodyModel[117].setRotationPoint(-42F, 3.2F, -14F);

		bodyModel[118].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 135
		bodyModel[118].setRotationPoint(-42F, 3.2F, -13F);

		bodyModel[119].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 1F, 0F, 0F); // Box 136
		bodyModel[119].setRotationPoint(-41F, -6.8F, 13F);

		bodyModel[120].addShapeBox(0F, 0F, 0F, 1, 10, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 1F, 0F, 0F); // Box 137
		bodyModel[120].setRotationPoint(-41F, -6.8F, -14F);

		bodyModel[121].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 138
		bodyModel[121].setRotationPoint(-4F, -6.8F, -13F);

		bodyModel[122].addShapeBox(0F, 0F, 0F, 1, 3, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 139
		bodyModel[122].setRotationPoint(-23F, -0.8F, 1F);

		bodyModel[123].addShapeBox(0F, 0F, 0F, 1, 3, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 140
		bodyModel[123].setRotationPoint(-23F, -0.8F, 9F);

		bodyModel[124].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 0F, 0F, 0F, -1F, 25F, 0F, -1F, -25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 25F, 0F, 1F, -25F, 0F, 0F, 0F); // Box 141
		bodyModel[124].setRotationPoint(-25F, 3.2F, 12F);

		bodyModel[125].addShapeBox(0F, 0F, 0F, 11, 1, 1, 0F, 0F, 0F, 0F, 0F, -1F, -25F, 0F, -1F, 25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, -25F, 0F, 1F, 25F, 0F, 0F, 0F); // Box 143
		bodyModel[125].setRotationPoint(-25F, 3.2F, -13F);

		bodyModel[126].addShapeBox(0F, 0F, 0F, 8, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -25F, 0F, 0F, 25F, 0F, 0F, 0F); // Box 144
		bodyModel[126].setRotationPoint(-34F, 3.2F, -13F);

		bodyModel[127].addShapeBox(0F, 0F, 0F, 6, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 25F, 0F, 0F, -25F, 0F, 0F, 0F); // Box 147
		bodyModel[127].setRotationPoint(-41F, 3.2F, 12F);

		bodyModel[128].addShapeBox(0F, 0F, 0F, 14, 1, 25, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F); // Box 148
		bodyModel[128].setRotationPoint(-40.5F, 2.7F, -12.5F);

		bodyModel[129].addShapeBox(0F, 0F, 0F, 1, 2, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 149
		bodyModel[129].setRotationPoint(-14F, 2.2F, 10F);

		bodyModel[130].addShapeBox(0F, 0F, 0F, 1, 2, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 150
		bodyModel[130].setRotationPoint(-14F, 2.2F, 1F);

		bodyModel[131].addShapeBox(0F, 0F, 0F, 14, 1, 1, 0F, 0F, 2F, -2F, 0F, 0F, -2F, 0F, 0F, 2F, 0F, 2F, 2F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -2F, 0F); // Box 151
		bodyModel[131].setRotationPoint(-23F, -18.8F, -10F);

		bodyModel[132].addShapeBox(0F, 0F, 0F, 1, 8, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 5F, 0F, 2F, -5F, 0F, 2F, -5F, 0F, -2F, 5F, 0F, -2F); // Box 159
		bodyModel[132].setRotationPoint(-29F, -15.8F, -12F);

		bodyModel[133].addShapeBox(0F, 0F, 0F, 1, 8, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 5F, 0F, -2F, -5F, 0F, -2F, -5F, 0F, 2F, 5F, 0F, 2F); // Box 160
		bodyModel[133].setRotationPoint(-29F, -15.8F, 11F);

		bodyModel[134].addShapeBox(0F, 0F, 0F, 1, 1, 26, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 161
		bodyModel[134].setRotationPoint(-34F, -7.8F, -13F);

		bodyModel[135].addShapeBox(0F, 0F, 0F, 12, 2, 8, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 162
		bodyModel[135].setRotationPoint(-40F, -6F, -1F);

		bodyModel[136].addShapeBox(0F, 0F, 0F, 12, 2, 8, 0F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F, 0.2F, 0F, 0.2F); // Box 163
		bodyModel[136].setRotationPoint(-40F, -5F, -1F);

		bodyModel[137].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 164
		bodyModel[137].setRotationPoint(-38F, -5F, -3.2F);

		bodyModel[138].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 165
		bodyModel[138].setRotationPoint(-35F, -5F, -3.2F);

		bodyModel[139].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 166
		bodyModel[139].setRotationPoint(-32F, -5F, -3.2F);

		bodyModel[140].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 167
		bodyModel[140].setRotationPoint(-32F, -5F, 6.8F);

		bodyModel[141].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 168
		bodyModel[141].setRotationPoint(-35F, -5F, 6.8F);

		bodyModel[142].addShapeBox(0F, 0F, 0F, 2, 2, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 169
		bodyModel[142].setRotationPoint(-38F, -5F, 6.8F);

		bodyModel[143].addShapeBox(0F, 0F, 0F, 12, 2, 8, 0F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F); // Box 170
		bodyModel[143].setRotationPoint(-40F, -2F, -1F);

		bodyModel[144].addShapeBox(0F, 0F, 0F, 12, 3, 8, 0F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 171
		bodyModel[144].setRotationPoint(-40F, 0F, -1F);

		bodyModel[145].addShapeBox(0F, 0F, 0F, 12, 2, 8, 0F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F); // Box 172
		bodyModel[145].setRotationPoint(-40F, -4F, -1F);

		bodyModel[146].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 173
		bodyModel[146].setRotationPoint(-32F, -5.5F, -2.2F);

		bodyModel[147].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 174
		bodyModel[147].setRotationPoint(-35F, -5.5F, -2.2F);

		bodyModel[148].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 175
		bodyModel[148].setRotationPoint(-38F, -5.5F, -2.2F);

		bodyModel[149].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 176
		bodyModel[149].setRotationPoint(-32F, -5.5F, 5.8F);

		bodyModel[150].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 177
		bodyModel[150].setRotationPoint(-35F, -5.5F, 5.8F);

		bodyModel[151].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 178
		bodyModel[151].setRotationPoint(-38F, -5.5F, 5.8F);

		bodyModel[152].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 179
		bodyModel[152].setRotationPoint(-32F, -3.5F, 5.8F);

		bodyModel[153].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 180
		bodyModel[153].setRotationPoint(-35F, -3.5F, 5.8F);

		bodyModel[154].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 181
		bodyModel[154].setRotationPoint(-38F, -3.5F, 5.8F);

		bodyModel[155].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 182
		bodyModel[155].setRotationPoint(-32F, -3.5F, -2.2F);

		bodyModel[156].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 183
		bodyModel[156].setRotationPoint(-35F, -3.5F, -2.2F);

		bodyModel[157].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F); // Box 184
		bodyModel[157].setRotationPoint(-38F, -3.5F, -2.2F);

		bodyModel[158].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 185
		bodyModel[158].setRotationPoint(-38F, -5F, -3.2F);

		bodyModel[159].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 186
		bodyModel[159].setRotationPoint(-35F, -5F, -3.2F);

		bodyModel[160].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 187
		bodyModel[160].setRotationPoint(-32F, -5F, -3.2F);

		bodyModel[161].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 188
		bodyModel[161].setRotationPoint(-32F, -5F, 7.8F);

		bodyModel[162].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 189
		bodyModel[162].setRotationPoint(-35F, -5F, 7.8F);

		bodyModel[163].addShapeBox(0F, 0F, 0F, 2, 2, 1, 0F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F, 0F, 0F, -0.1F); // Box 190
		bodyModel[163].setRotationPoint(-38F, -5F, 7.8F);

		bodyModel[164].addShapeBox(0F, 0F, 0F, 12, 1, 8, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F); // Box 191
		bodyModel[164].setRotationPoint(-40F, -1.5F, -1F);

		bodyModel[165].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 192
		bodyModel[165].setRotationPoint(-39F, -6.5F, 3F);

		bodyModel[166].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 193
		bodyModel[166].setRotationPoint(-31F, -6.5F, 3F);

		bodyModel[167].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 194
		bodyModel[167].setRotationPoint(-36.5F, -6.5F, 3F);

		bodyModel[168].addShapeBox(0F, 0F, 0F, 2, 1, 2, 0F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, -0.5F, 0F, -0.5F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 195
		bodyModel[168].setRotationPoint(-33.5F, -6.5F, 3F);

		bodyModel[169].addShapeBox(-0.5F, 0F, -0.5F, 1, 2, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F); // Box 211
		bodyModel[169].setRotationPoint(-3.5F, -11.8F, 13.5F);
		bodyModel[169].rotateAngleY = 0.43633231F;

		bodyModel[170].addShapeBox(-0.5F, -2F, -1F, 1, 2, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 212
		bodyModel[170].setRotationPoint(-3.5F, -11.8F, 13.5F);
		bodyModel[170].rotateAngleY = 0.43633231F;

		bodyModel[171].addShapeBox(-0.5F, 0F, -0.5F, 1, 2, 1, 0F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F); // Box 213
		bodyModel[171].setRotationPoint(-3.5F, -11.8F, -13.5F);
		bodyModel[171].rotateAngleY = -0.43633231F;

		bodyModel[172].addShapeBox(-0.5F, -2F, -1F, 1, 2, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 214
		bodyModel[172].setRotationPoint(-3.5F, -11.8F, -13.5F);
		bodyModel[172].rotateAngleY = -0.43633231F;

		bodyModel[173].addShapeBox(0F, 0F, 0F, 1, 12, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 2F, 0F, 4F, -2F, 0F, 4F, -2F, 0F, -4F, 2F, 0F, -4F); // Box 215
		bodyModel[173].setRotationPoint(-24F, -19.8F, -10F);

		bodyModel[174].addShapeBox(0F, 0F, 0F, 1, 12, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 2F, 0F, -4F, -2F, 0F, -4F, -2F, 0F, 4F, 2F, 0F, 4F); // Box 216
		bodyModel[174].setRotationPoint(-24F, -19.8F, 9F);

		bodyModel[175].addShapeBox(0F, 0F, 0F, 5, 4, 4, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 218
		bodyModel[175].setRotationPoint(-33F, -1F, -12F);
		bodyModel[175].rotateAngleY = 0.29670597F;

		bodyModel[176].addShapeBox(0F, 0F, 0F, 5, 2, 3, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 219
		bodyModel[176].setRotationPoint(-34F, 1F, -6F);
		bodyModel[176].rotateAngleY = 0.05235988F;

		bodyModel[177].addShapeBox(0F, 0F, 0F, 1, 8, 0, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -5.3F, 0F, 0F, 4.7F, 0F, 0F, 4.7F, 0F, 2F, -5.3F, 0F, 2F); // Box 230
		bodyModel[177].setRotationPoint(-8.5F, -18F, 9F);

		bodyModel[178].addShapeBox(0F, 0F, 0F, 1, 3, 8, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -5.3F, 0F, 0F, 4.7F, 0F, 0F, 4.7F, 0F, 0F, -5.3F, 0F, 0F); // Box 231
		bodyModel[178].setRotationPoint(-8.5F, -18F, 1F);

		bodyModel[179].addShapeBox(0F, 0F, 0F, 14, 1, 1, 0F, 0F, 2F, 2F, 0F, 0F, 2F, 0F, 0F, -2F, 0F, 2F, -2F, 0F, -2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -2F, 0F); // Box 232
		bodyModel[179].setRotationPoint(-23F, -18.8F, 9F);

		bodyModel[180].addShapeBox(0F, 0F, 0F, 14, 1, 1, 0F, 0F, 2F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 2F, 0F, 0F, -2.5F, 0F, 0F, -0.5F, 0F, 0F, -0.5F, 0F, 0F, -2.5F, 0F); // Box 233
		bodyModel[180].setRotationPoint(-23F, -18.8F, -0.5F);

		bodyModel[181].addShapeBox(0F, 0F, 0F, 1, 2, 8, 0F, -2.3F, 0F, 0F, 1.7F, 0F, 0F, 1.7F, 0F, 0F, -2.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F); // Box 234
		bodyModel[181].setRotationPoint(-3.5F, -12F, 1F);

		bodyModel[182].addShapeBox(0F, 0F, 0F, 1, 6, 10, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 235
		bodyModel[182].setRotationPoint(-23F, -6.8F, -11F);

		bodyModel[183].addShapeBox(0F, 0F, 0F, 11, 2, 10, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F, -3F, 0F, 0F); // Box 236
		bodyModel[183].setRotationPoint(-23F, 1.5F, -11F);

		bodyModel[184].addShapeBox(0F, 0F, 0F, 1, 3, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 237
		bodyModel[184].setRotationPoint(-23F, -0.8F, -3F);

		bodyModel[185].addShapeBox(0F, 0F, 0F, 1, 3, 2, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F, -0.2F, 0F, 0F); // Box 238
		bodyModel[185].setRotationPoint(-23F, -0.8F, -11F);

		bodyModel[186].addShapeBox(0F, 0F, 0F, 1, 2, 2, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 239
		bodyModel[186].setRotationPoint(-14F, 2.2F, -11F);

		bodyModel[187].addShapeBox(0F, 0F, 0F, 1, 2, 2, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 240
		bodyModel[187].setRotationPoint(-14F, 2.2F, -2F);

		bodyModel[188].addShapeBox(0F, 0F, 0F, 1, 2, 8, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -5.3F, 0F, 0F, 4.7F, 0F, 0F, 4.7F, 0F, 0F, -5.3F, 0F, 0F); // Box 241
		bodyModel[188].setRotationPoint(-8.5F, -18F, -9F);

		bodyModel[189].addShapeBox(0F, 0F, 0F, 1, 3, 8, 0F, -2.3F, 0F, 0F, 1.7F, 0F, 0F, 1.7F, 0F, 0F, -2.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F); // Box 242
		bodyModel[189].setRotationPoint(-3.5F, -13F, -9F);

		bodyModel[190].addShapeBox(0F, 0F, 0F, 1, 8, 0, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -5.3F, 0F, 2F, 4.7F, 0F, 2F, 4.7F, 0F, 0F, -5.3F, 0F, 0F); // Box 243
		bodyModel[190].setRotationPoint(-8.5F, -18F, -9F);

		bodyModel[191].addShapeBox(0F, 0F, 0F, 1, 8, 2, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -5.3F, 0F, 0F, 4.7F, 0F, 0F, 4.7F, 0F, 0F, -5.3F, 0F, 0F); // Box 244
		bodyModel[191].setRotationPoint(-8.5F, -18F, -1F);

		bodyModel[192].addShapeBox(0F, 0F, 0F, 1, 4, 9, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 4.7F, 0F, 0F, -5.3F, 0F, 0F, -5.3F, 0F, 2F, 4.7F, 0F, 2F); // Box 245
		bodyModel[192].setRotationPoint(-24.5F, -20F, 0F);

		bodyModel[193].addShapeBox(0F, 0F, 0F, 1, 4, 9, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 4.7F, 0F, 2F, -5.3F, 0F, 2F, -5.3F, 0F, 0F, 4.7F, 0F, 0F); // Box 246
		bodyModel[193].setRotationPoint(-24.5F, -20F, -9F);

		bodyModel[194].addShapeBox(0F, 0F, 0F, 1, 8, 11, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 4.7F, 0F, 0F, -5.3F, 0F, 0F, -5.3F, 0F, 2F, 4.7F, 0F, 2F); // Box 247
		bodyModel[194].setRotationPoint(-29.5F, -16F, 0F);

		bodyModel[195].addShapeBox(0F, 0F, 0F, 1, 8, 11, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, 4.7F, 0F, 2F, -5.3F, 0F, 2F, -5.3F, 0F, 0F, 4.7F, 0F, 0F); // Box 248
		bodyModel[195].setRotationPoint(-29.5F, -16F, -11F);

		bodyModel[196].addShapeBox(0F, 0F, 0F, 2, 2, 42, 0F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F, 0F, 0F, -2F); // Box 249
		bodyModel[196].setRotationPoint(19.5F, 1.5F, -21F);

		bodyModel[197].addBox(0F, 0F, 0F, 2, 2, 46, 0F); // Box 250
		bodyModel[197].setRotationPoint(-36.5F, 1.5F, -23F);

		bodyModel[198].addBox(0F, 0F, 0F, 1, 4, 3, 0F); // Box 251
		bodyModel[198].setRotationPoint(0F, -1F, 7F);
		bodyModel[198].rotateAngleZ = -0.55850536F;

		bodyModel[199].addBox(0F, 0F, 0F, 1, 4, 3, 0F); // Box 252
		bodyModel[199].setRotationPoint(0F, -1F, -1F);
		bodyModel[199].rotateAngleZ = -0.55850536F;

		bodyModel[200].addBox(1F, 2F, 1F, 3, 1, 1, 0F); // Box 253
		bodyModel[200].setRotationPoint(0F, -1F, -1F);
		bodyModel[200].rotateAngleZ = -0.55850536F;

		bodyModel[201].addBox(1F, 2F, 1F, 3, 1, 1, 0F); // Box 254
		bodyModel[201].setRotationPoint(0F, -1F, 7F);
		bodyModel[201].rotateAngleZ = -0.55850536F;

		bodyModel[202].addBox(3F, 1F, 0F, 2, 3, 3, 0F); // Box 255
		bodyModel[202].setRotationPoint(0F, -1F, 7F);
		bodyModel[202].rotateAngleZ = -0.55850536F;

		bodyModel[203].addBox(3F, 1F, 0F, 2, 3, 3, 0F); // Box 256
		bodyModel[203].setRotationPoint(0F, -1F, -1F);
		bodyModel[203].rotateAngleZ = -0.55850536F;

		bodyModel[204].addShapeBox(0F, 0F, 0F, 1, 11, 26, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F, -0.3F, 0F, 0F); // Box 258
		bodyModel[204].setRotationPoint(3F, -6F, -13F);

		bodyModel[205].addShapeBox(0F, 0F, 0F, 5, 2, 3, 0F, 0F, 0F, 0.2F, 0F, 0F, 0.2F, 0F, 0F, 0.2F, 0F, 0F, 0.2F, 0F, -1F, 0.2F, 0F, -1F, 0.2F, 0F, -1F, 0.2F, 0F, -1F, 0.2F); // Box 1
		bodyModel[205].setRotationPoint(-34F, 0F, -6F);
		bodyModel[205].rotateAngleY = 0.05235988F;


		leftFrontWheelModel = new ModelRendererTurbo[1];
		leftFrontWheelModel[0] = new ModelRendererTurbo(this, 112, 73, textureX, textureY); // Box 10

		leftFrontWheelModel[0].addShape3D(8F, -7F, -5F, new Shape2D(new Coord2D[]{new Coord2D(4, 0, 4, 0), new Coord2D(12, 0, 12, 0), new Coord2D(15, 3, 15, 3), new Coord2D(15, 11, 15, 11), new Coord2D(12, 14, 12, 14), new Coord2D(4, 14, 4, 14), new Coord2D(1, 11, 1, 11), new Coord2D(1, 3, 1, 3)}), 5, 14, 14, 52, 5, ModelRendererTurbo.MR_FRONT, new float[]{5, 8, 5, 8, 5, 8, 5, 8}); // Box 10
		leftFrontWheelModel[0].setRotationPoint(20.5F, 2.7F, 15F);


		rightFrontWheelModel = new ModelRendererTurbo[1];
		rightFrontWheelModel[0] = new ModelRendererTurbo(this, 112, 73, textureX, textureY); // Box 10

		rightFrontWheelModel[0].addShape3D(8F, -7F, 0F, new Shape2D(new Coord2D[]{new Coord2D(4, 0, 4, 0), new Coord2D(12, 0, 12, 0), new Coord2D(15, 3, 15, 3), new Coord2D(15, 11, 15, 11), new Coord2D(12, 14, 12, 14), new Coord2D(4, 14, 4, 14), new Coord2D(1, 11, 1, 11), new Coord2D(1, 3, 1, 3)}), 5, 14, 14, 52, 5, ModelRendererTurbo.MR_FRONT, new float[]{5, 8, 5, 8, 5, 8, 5, 8}); // Box 10
		rightFrontWheelModel[0].setRotationPoint(20.5F, 2.7F, -15F);


		leftBackWheelModel = new ModelRendererTurbo[1];
		leftBackWheelModel[0] = new ModelRendererTurbo(this, 117, 96, textureX, textureY); // Box 10

		leftBackWheelModel[0].addShape3D(8F, -7F, -7F, new Shape2D(new Coord2D[]{new Coord2D(4, 0, 4, 0), new Coord2D(12, 0, 12, 0), new Coord2D(15, 3, 15, 3), new Coord2D(15, 11, 15, 11), new Coord2D(12, 14, 12, 14), new Coord2D(4, 14, 4, 14), new Coord2D(1, 11, 1, 11), new Coord2D(1, 3, 1, 3)}), 7, 14, 14, 52, 7, ModelRendererTurbo.MR_FRONT, new float[]{5, 8, 5, 8, 5, 8, 5, 8}); // Box 10
		leftBackWheelModel[0].setRotationPoint(-35.5F, 2.7F, 15F);


		rightBackWheelModel = new ModelRendererTurbo[1];
		rightBackWheelModel[0] = new ModelRendererTurbo(this, 117, 96, textureX, textureY); // Box 10

		rightBackWheelModel[0].addShape3D(8F, -7F, 0F, new Shape2D(new Coord2D[]{new Coord2D(4, 0, 4, 0), new Coord2D(12, 0, 12, 0), new Coord2D(15, 3, 15, 3), new Coord2D(15, 11, 15, 11), new Coord2D(12, 14, 12, 14), new Coord2D(4, 14, 4, 14), new Coord2D(1, 11, 1, 11), new Coord2D(1, 3, 1, 3)}), 7, 14, 14, 52, 7, ModelRendererTurbo.MR_FRONT, new float[]{5, 8, 5, 8, 5, 8, 5, 8}); // Box 10
		rightBackWheelModel[0].setRotationPoint(-35.5F, 2.7F, -15F);


		steeringWheelModel = new ModelRendererTurbo[11];
		steeringWheelModel[0] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 196
		steeringWheelModel[1] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 200
		steeringWheelModel[2] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 201
		steeringWheelModel[3] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 202
		steeringWheelModel[4] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 203
		steeringWheelModel[5] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 205
		steeringWheelModel[6] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 206
		steeringWheelModel[7] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 207
		steeringWheelModel[8] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 209
		steeringWheelModel[9] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 210
		steeringWheelModel[10] = new ModelRendererTurbo(this, 0, 98, textureX, textureY); // Box 0

		steeringWheelModel[0].addShapeBox(0F, -0.5F, -3F, 1, 1, 6, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F); // Box 196
		steeringWheelModel[0].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[1].addShapeBox(0F, -2F, 3F, 1, 1, 1, 0F, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 200
		steeringWheelModel[1].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[2].addShapeBox(0F, -2F, -4F, 1, 1, 1, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 201
		steeringWheelModel[2].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[3].addShapeBox(0F, -3F, -3F, 1, 1, 6, 0F, 0F, -0.5F, -1F, 0F, -0.5F, -1F, 0F, -0.5F, -1F, 0F, -0.5F, -1F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F); // Box 202
		steeringWheelModel[3].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[4].addShapeBox(0F, 2F, 3F, 1, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 1F, 0F, 0F, 1F, 0F, 0F, -1F, 0F, 0F, -1F); // Box 203
		steeringWheelModel[4].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[5].addShapeBox(0F, 2F, -4F, 1, 1, 1, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -1F, 0F, 0F, -1F, 0F, 0F, 1F, 0F, 0F, 1F); // Box 205
		steeringWheelModel[5].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[6].addBox(0F, -1F, -4F, 1, 3, 1, 0F); // Box 206
		steeringWheelModel[6].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[7].addBox(0F, -1F, 3F, 1, 3, 1, 0F); // Box 207
		steeringWheelModel[7].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[8].addShapeBox(0F, 0F, -0.5F, 1, 3, 1, 0F, -0.2F, -0.3F, -0.2F, -0.2F, -0.3F, -0.2F, -0.2F, -0.3F, -0.2F, -0.2F, -0.3F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F, -0.2F, 0F, -0.2F); // Box 209
		steeringWheelModel[8].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[9].addShapeBox(0.6F, -0.5F, -0.5F, 3, 1, 1, 0F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F, -0.2F, -0.3F, -0.3F); // Box 210
		steeringWheelModel[9].setRotationPoint(-7F, -9.5F, 7F);

		steeringWheelModel[10].addShapeBox(0F, 3F, -3F, 1, 1, 6, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, -0.5F, -1F, 0F, -0.5F, -1F, 0F, -0.5F, -1F, 0F, -0.5F, -1F); // Box 0
		steeringWheelModel[10].setRotationPoint(-7F, -9.5F, 7F);


		translateAll(0F, 0F, 0F);


		flipAll();
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelGroundSkeleton.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model;

import com.flansmod.client.model.ModelItemHolder;
import com.flansmod.client.tmt.ModelRendererTurbo;
import com.flansmod.common.vector.Vector3f;

public class ModelGroundSkeleton extends ModelItemHolder
{
	int textureX = 32;
	int textureY = 16;

	public ModelGroundSkeleton()
	{
		baseModel = new ModelRendererTurbo[3];
		baseModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 1
		baseModel[1] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 2
		baseModel[2] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Box 3

		baseModel[0].addBox(0F, 0F, 0F, 8, 8, 8, 0F); // Box 1
		baseModel[0].setRotationPoint(4F, -4F, 0F);
		baseModel[0].rotateAngleX = 0.52359878F;

		baseModel[1].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 2
		baseModel[1].setRotationPoint(1F, 6F, 9F);
		baseModel[1].rotateAngleX = 2.35619449F;
		baseModel[1].rotateAngleY = -0.26179939F;

		baseModel[2].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 3
		baseModel[2].setRotationPoint(13F, 6F, 8F);
		baseModel[2].rotateAngleX = 2.35619449F;
		baseModel[2].rotateAngleY = 0.26179939F;
		
		itemOffset = new Vector3f(0F, -0.35F, 0.5F);
		//itemRotation = new Vector3f(-30F, 0F, 0F);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelGunRack.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model;

import com.flansmod.client.model.ModelItemHolder;
import com.flansmod.client.tmt.ModelRendererTurbo;
import com.flansmod.common.vector.Vector3f;

public class ModelGunRack extends ModelItemHolder
{
	int textureX = 256;
	int textureY = 32;

	public ModelGunRack()
	{
		baseModel = new ModelRendererTurbo[10];
		baseModel[0] = new ModelRendererTurbo(this, 1, 1, textureX, textureY); // Import Box5
		baseModel[1] = new ModelRendererTurbo(this, 57, 1, textureX, textureY); // Box 6
		baseModel[2] = new ModelRendererTurbo(this, 73, 1, textureX, textureY); // Box 8
		baseModel[3] = new ModelRendererTurbo(this, 97, 1, textureX, textureY); // Box 9
		baseModel[4] = new ModelRendererTurbo(this, 113, 1, textureX, textureY); // Box 10
		baseModel[5] = new ModelRendererTurbo(this, 137, 1, textureX, textureY); // Box 11
		baseModel[6] = new ModelRendererTurbo(this, 153, 1, textureX, textureY); // Box 12
		baseModel[7] = new ModelRendererTurbo(this, 169, 1, textureX, textureY); // Box 13
		baseModel[8] = new ModelRendererTurbo(this, 201, 1, textureX, textureY); // Box 14
		baseModel[9] = new ModelRendererTurbo(this, 217, 1, textureX, textureY); // Box 15

		baseModel[0].addBox(0F, 0F, 0F, 16, 1, 8, 0F); // Import Box5
		baseModel[0].setRotationPoint(0F, -1F, 0F);

		baseModel[1].addBox(0F, 0F, 0F, 1, 5, 6, 0F); // Box 6
		baseModel[1].setRotationPoint(0F, -11F, 0F);

		baseModel[2].addBox(0F, 0F, 0F, 1, 5, 8, 0F); // Box 8
		baseModel[2].setRotationPoint(0F, -6F, 0F);

		baseModel[3].addBox(0F, 0F, 0F, 1, 5, 4, 0F); // Box 9
		baseModel[3].setRotationPoint(0F, -16F, 0F);

		baseModel[4].addBox(0F, 0F, 0F, 1, 5, 8, 0F); // Box 10
		baseModel[4].setRotationPoint(15F, -6F, 0F);

		baseModel[5].addBox(0F, 0F, 0F, 1, 5, 6, 0F); // Box 11
		baseModel[5].setRotationPoint(15F, -11F, 0F);

		baseModel[6].addBox(0F, 0F, 0F, 1, 5, 4, 0F); // Box 12
		baseModel[6].setRotationPoint(15F, -16F, 0F);

		baseModel[7].addBox(0F, 0F, 0F, 14, 15, 1, 0F); // Box 13
		baseModel[7].setRotationPoint(1F, -16F, 0F);

		baseModel[8].addBox(0F, 0F, 0F, 1, 1, 6, 0F); // Box 14
		baseModel[8].setRotationPoint(5F, -9F, 0F);

		baseModel[9].addBox(0F, 0F, 0F, 1, 1, 6, 0F); // Box 15
		baseModel[9].setRotationPoint(10F, -9F, 0F);

		itemOffset = new Vector3f(0F, 0.5F, -0.25F);
		itemRotation = new Vector3f(75F, 90F, 0F);

		//flipAll();
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelNukeDrop.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.model.ModelBase;

import com.flansmod.client.tmt.ModelRendererTurbo;

public class ModelNukeDrop extends ModelBase
{
	private ModelRendererTurbo[] nukeModel;
	private ModelRendererTurbo[] mushroomCloudModel;
	private ModelRendererTurbo[] ballModel;
	
	public ModelNukeDrop()
	{
		int textureX = 64, textureY = 64;
		
		nukeModel = new ModelRendererTurbo[5];
		
		nukeModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		nukeModel[0].addBox(-2, -4, -2, 4, 8, 4);
		
		nukeModel[1] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		nukeModel[1].addTrapezoid(-2, -6, -2, 4, 2, 4, 0F, -1F, ModelRendererTurbo.MR_BOTTOM);
		
		nukeModel[2] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		nukeModel[2].addTrapezoid(-2, 4, -2, 4, 2, 4, 0F, -1F, ModelRendererTurbo.MR_TOP);
		
		nukeModel[3] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		nukeModel[3].addTrapezoid(-2, 6, -2, 4, 2, 4, 0F, -1F, ModelRendererTurbo.MR_BOTTOM);
		
		nukeModel[4] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		nukeModel[4].addBox(-2, 8, -2, 4, 2, 4);
		
		ballModel = new ModelRendererTurbo[2];
		
		ballModel[0] = new ModelRendererTurbo(this, 32, 0, textureX, textureY);
		ballModel[0].addSphere(0, 0, 0, 16, 16, 16, 32, 32);
		
		ballModel[1] = new ModelRendererTurbo(this, 32, 0, textureX, textureY);
		ballModel[1].flip = true;
		ballModel[1].addSphere(0, 0, 0, 16, 16, 16, 32, 32);
	}
	
	public void renderNuke(float scale)
	{
		for(ModelRendererTurbo aNukeModel : nukeModel) aNukeModel.render(scale);
	}
	
	public void renderMushroomCloud(float scale)
	{
		
	}
	
	public void renderBall(float scale)
	{
		for(ModelRendererTurbo aBallModel : ballModel) aBallModel.render(scale);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelPowerCube.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model;

import net.minecraft.client.model.ModelBase;

import com.flansmod.client.tmt.ModelRendererTurbo;

public class ModelPowerCube extends ModelBase
{
	int textureX = 512;
	int textureY = 32;
	
	private ModelRendererTurbo[] bodyModel;
	
	public ModelPowerCube()
	{
		bodyModel = new ModelRendererTurbo[13];
		bodyModel[0] = new ModelRendererTurbo(this, 1, 1, textureX, textureY); // Box 0
		bodyModel[1] = new ModelRendererTurbo(this, 41, 1, textureX, textureY); // Box 1
		bodyModel[2] = new ModelRendererTurbo(this, 73, 1, textureX, textureY); // Box 2
		bodyModel[3] = new ModelRendererTurbo(this, 105, 1, textureX, textureY); // Box 3
		bodyModel[4] = new ModelRendererTurbo(this, 129, 1, textureX, textureY); // Box 4
		bodyModel[5] = new ModelRendererTurbo(this, 169, 1, textureX, textureY); // Box 5
		bodyModel[6] = new ModelRendererTurbo(this, 201, 1, textureX, textureY); // Box 6
		bodyModel[7] = new ModelRendererTurbo(this, 233, 1, textureX, textureY); // Box 7
		bodyModel[8] = new ModelRendererTurbo(this, 265, 1, textureX, textureY); // Box 8
		bodyModel[9] = new ModelRendererTurbo(this, 281, 1, textureX, textureY); // Box 9
		bodyModel[10] = new ModelRendererTurbo(this, 297, 1, textureX, textureY); // Box 10
		bodyModel[11] = new ModelRendererTurbo(this, 313, 1, textureX, textureY); // Box 11
		bodyModel[12] = new ModelRendererTurbo(this, 329, 1, textureX, textureY); // Box 12
		
		bodyModel[0].addBox(0F, 0F, 0F, 16, 2, 2, 0F); // Box 0
		bodyModel[0].setRotationPoint(0F, -2F, 0F);
		
		bodyModel[1].addBox(0F, 0F, 0F, 16, 2, 2, 0F); // Box 1
		bodyModel[1].setRotationPoint(0F, -2F, 14F);
		
		bodyModel[2].addBox(0F, 0F, 0F, 2, 2, 12, 0F); // Box 2
		bodyModel[2].setRotationPoint(0F, -2F, 2F);
		
		bodyModel[3].addBox(0F, 0F, 0F, 2, 2, 12, 0F); // Box 3
		bodyModel[3].setRotationPoint(14F, -2F, 2F);
		
		bodyModel[4].addBox(0F, 0F, 0F, 16, 2, 2, 0F); // Box 4
		bodyModel[4].setRotationPoint(0F, -16F, 0F);
		
		bodyModel[5].addBox(0F, 0F, 0F, 16, 2, 2, 0F); // Box 5
		bodyModel[5].setRotationPoint(0F, -16F, 14F);
		
		bodyModel[6].addBox(0F, 0F, 0F, 2, 2, 12, 0F); // Box 6
		bodyModel[6].setRotationPoint(14F, -16F, 2F);
		
		bodyModel[7].addBox(0F, 0F, 0F, 2, 2, 12, 0F); // Box 7
		bodyModel[7].setRotationPoint(0F, -16F, 2F);
		
		bodyModel[8].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 8
		bodyModel[8].setRotationPoint(0F, -14F, 0F);
		
		bodyModel[9].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 9
		bodyModel[9].setRotationPoint(14F, -14F, 0F);
		
		bodyModel[10].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 10
		bodyModel[10].setRotationPoint(14F, -14F, 14F);
		
		bodyModel[11].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 11
		bodyModel[11].setRotationPoint(0F, -14F, 14F);
		
		bodyModel[12].addBox(0F, 0F, 0F, 8, 8, 8, 0F); // Box 12
		bodyModel[12].setRotationPoint(4F, -12F, 4F);
	}
	
	public void render()
	{
		float f5 = 0.0625F;
		
		for(int i = 0; i < 12; i++)
		{
			bodyModel[i].render(f5);
		}
	}
	
	public void renderPower()
	{
		bodyModel[12].render(0.0625F);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSkullBoss.java
================================================
package com.flansmod.apocalypse.client.model;

import com.flansmod.client.tmt.ModelRendererTurbo;

import net.minecraft.client.model.ModelBase;

public class ModelSkullBoss extends ModelBase
{
	private ModelRendererTurbo head;
	private ModelRendererTurbo jaw;
	
	public ModelSkullBoss()
	{
		int textureX = 64, textureY = 32;
				
		head = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		head.addBox(-4, 0, -4, 8, 8, 8);
		
		jaw = new ModelRendererTurbo(this, 32, 0, textureX, textureY);
		jaw.addBox(-3, -4, -3, 6, 4, 6);
	}
	
	public void renderHead(float scale)
	{
		head.render(scale);
	}
	
	public void renderJaw(float scale)
	{
		jaw.render(scale);
	}
}

================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSkullDrone.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model;

import com.flansmod.client.model.ModelItemHolder;
import com.flansmod.client.tmt.ModelRendererTurbo;
import com.flansmod.common.vector.Vector3f;

import net.minecraft.client.model.ModelBase;

public class ModelSkullDrone extends ModelBase
{
	int textureX = 64;
	int textureY = 32;
	
	private ModelRendererTurbo[] baseModel, propellerModel; 
	public Vector3f itemOrigin = new Vector3f(0f, -0.5f, 0f);
	public int numPropellers = 4;
	public Vector3f[] propellerOrigins = new Vector3f[] {
			new Vector3f(1.1f, 0.55f, 1.1f),
			new Vector3f(1.1f, 0.55f, -1.1f),
			new Vector3f(-1.1f, 0.55f, -1.1f),
			new Vector3f(-1.1f, 0.55f, 1.1f)
	};

	public ModelSkullDrone()
	{
		baseModel = new ModelRendererTurbo[6];
		baseModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY); // Head
		baseModel[1] = new ModelRendererTurbo(this, 32, 0, textureX, textureY); // Jaw
		baseModel[2] = new ModelRendererTurbo(this, 56, 0, textureX, textureY); // Arm 1
		baseModel[3] = new ModelRendererTurbo(this, 56, 0, textureX, textureY); // Arm 2
		baseModel[4] = new ModelRendererTurbo(this, 56, 0, textureX, textureY); // Arm 3
		baseModel[5] = new ModelRendererTurbo(this, 56, 0, textureX, textureY); // Arm 4

		baseModel[0].addBox(-4, 0, -4, 8, 8, 8); // Head
		baseModel[1].addBox(-3, -4, -3, 6, 4, 6); // Jaw

		for(int i = 0; i < 4; i++)
		{
			baseModel[i + 2].addBox(-1F, 0F, -1F, 2, 24, 2, 0F); // Arm 1
			baseModel[i + 2].setRotationPoint(propellerOrigins[i].x * 4f, 0F, propellerOrigins[i].z * 4f);
			baseModel[i + 2].rotateAngleX = -(float)Math.PI * 0.375f;
			baseModel[i + 2].rotateAngleY = (float)Math.PI * (1.25f + i * 0.5f);
		}
		
		propellerModel = new ModelRendererTurbo[2];
		propellerModel[0] = new ModelRendererTurbo(this, 0, 16, textureX, textureY); // Box 1
		propellerModel[1] = new ModelRendererTurbo(this, 0, 18, textureX, textureY); // Box 2
		
		propellerModel[0].addBox(-6F, -0.5F, -0.5F, 12, 1, 1, 0F); // Box 1
		propellerModel[1].addBox(-0.5F, -0.5F, -6F, 1, 1, 12, 0F); // Box 2
	}
	
	public void renderBase(float scale)
	{
		for(ModelRendererTurbo mr : baseModel)
			mr.render(scale);
	}
	
	public void renderPropeller(float scale)
	{
		for(ModelRendererTurbo mr : propellerModel)
			mr.render(scale);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSlumpedSkeleton.java
================================================
//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13
// Copyright (C) 2015 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+

package com.flansmod.apocalypse.client.model;

import com.flansmod.client.model.ModelItemHolder;
import com.flansmod.client.tmt.ModelRendererTurbo;
import com.flansmod.common.vector.Vector3f;

public class ModelSlumpedSkeleton extends ModelItemHolder
{
	int textureX = 128;
	int textureY = 32;

	public ModelSlumpedSkeleton()
	{
		baseModel = new ModelRendererTurbo[6];
		baseModel[0] = new ModelRendererTurbo(this, 1, 1, textureX, textureY); // Import Box1
		baseModel[1] = new ModelRendererTurbo(this, 41, 1, textureX, textureY); // Import Box2
		baseModel[2] = new ModelRendererTurbo(this, 57, 1, textureX, textureY); // Import Box3
		baseModel[3] = new ModelRendererTurbo(this, 69, 1, textureX, textureY); // Import Box5
		baseModel[4] = new ModelRendererTurbo(this, 97, 1, textureX, textureY); // Box 0
		baseModel[5] = new ModelRendererTurbo(this, 113, 1, textureX, textureY); // Box 1

		baseModel[0].addBox(0F, 0F, 0F, 8, 8, 8, 0F); // Import Box1
		baseModel[0].setRotationPoint(4F, -5F, 12F);
		baseModel[0].rotateAngleX = -0.78539816F;

		baseModel[1].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Import Box2
		baseModel[1].setRotationPoint(2F, 6F, 9F);
		baseModel[1].rotateAngleX = 0.78539816F;
		baseModel[1].rotateAngleY = -0.26179939F;

		baseModel[2].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Import Box3
		baseModel[2].setRotationPoint(12F, 6F, 8F);
		baseModel[2].rotateAngleX = 0.78539816F;
		baseModel[2].rotateAngleY = 0.26179939F;

		baseModel[3].addBox(0F, 0F, 0F, 8, 12, 4, 0F); // Import Box5
		baseModel[3].setRotationPoint(4F, 4F, 7F);

		baseModel[4].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 0
		baseModel[4].setRotationPoint(5F, 16F, 10F);
		baseModel[4].rotateAngleX = 1.57079633F;
		baseModel[4].rotateAngleY = -0.26179939F;

		baseModel[5].addBox(0F, 0F, 0F, 2, 12, 2, 0F); // Box 1
		baseModel[5].setRotationPoint(9F, 16F, 10F);
		baseModel[5].rotateAngleX = 1.57079633F;
		baseModel[5].rotateAngleY = 0.26179939F;
		
		translateAll(0, -16, -8);
		itemOffset = new Vector3f(0F, -0.35F, 0.25F);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelTeleporter.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.model.ModelBase;

import com.flansmod.client.tmt.ModelRendererTurbo;

public class ModelTeleporter extends ModelBase
{
	private ModelRendererTurbo model;
	
	public ModelTeleporter()
	{
		int textureX = 64, textureY = 64;
		
		model = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
		model.addSphere(0, 0, 0, 16, 16, 16, 64, 64);
	}
	
	public void render(float f)
	{
		model.render(f);
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderFakePlayer.java
================================================
package com.flansmod.apocalypse.client.model;

import com.flansmod.apocalypse.common.entity.EntityFakePlayer;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.layers.LayerBipedArmor;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.client.registry.IRenderFactory;

public class RenderFakePlayer extends RenderBiped<EntityFakePlayer>
{
	private static final ResourceLocation SURVIVOR_SKIN = new ResourceLocation("flansmodapocalypse", "textures/entity/Survivor.png");
	
	public RenderFakePlayer(RenderManager man, ModelBiped model, float f)
	{
		super(man, model, f);
		
		this.addLayer(new LayerBipedArmor(this));
	}
	
	protected ResourceLocation getEntityTexture(EntityFakePlayer entity)
	{
		return SURVIVOR_SKIN;
	}
	
	public static class Factory implements IRenderFactory<EntityFakePlayer>
	{
		@Override
		public Render<EntityFakePlayer> createRenderFor(RenderManager manager)
		{
			return new RenderFakePlayer(manager, new ModelBiped(), 0);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderNukeDrop.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;

public class RenderNukeDrop extends Render<EntityNukeDrop>
{
	private static final ResourceLocation texture = new ResourceLocation("flansmodapocalypse", "textures/entity/NukeDrop.png");
	private ModelNukeDrop model;
	
	public RenderNukeDrop(RenderManager rm)
	{
		super(rm);
		model = new ModelNukeDrop();
		MinecraftForge.EVENT_BUS.register(this);
	}
	
	public void render(EntityNukeDrop entity, double x, double y, double z, float p_76986_8_, float partialTicks)
	{
		bindEntityTexture(entity);
		
		EntityNukeDrop nuke = entity;
		
		GlStateManager.pushMatrix();
		GlStateManager.translate(x, y, z);
		
		if(entity.onGround)
		{
			//Exploded
			float alpha = ((float)nuke.timeSinceExplosion / (float)EntityNukeDrop.explosionLength);
			alpha = 1F - alpha * alpha;
			alpha *= 0.5F;
			
			GlStateManager.enableAlpha();
			
			RenderHelper.disableStandardItemLighting();
			GlStateManager.shadeModel(7425);
			GlStateManager.enableBlend();
			GlStateManager.blendFunc(770, 1);
			GlStateManager.disableCull();
			
			GlStateManager.pushMatrix();
			float scale = 1F - 1F / ((float)nuke.timeSinceExplosion / 5F + 1);
			scale *= 100F * scale;
			GlStateManager.scale(-scale, scale, scale);
			
			GlStateManager.color(1F, 1F, 1F, alpha);
			
			model.renderBall(0.0625F);
			GlStateManager.popMatrix();
			
			
			GlStateManager.enableCull();
			GlStateManager.disableBlend();
			GlStateManager.shadeModel(7424);
			RenderHelper.enableStandardItemLighting();
		}
		else
		{
			//Falling
			model.renderNuke(0.0625F);
		}
		
		GlStateManager.popMatrix();
	}
	
	@Override
	protected ResourceLocation getEntityTexture(EntityNukeDrop entity)
	{
		return texture;
	}
	
	@SubscribeEvent
	public void renderWorld(RenderWorldLastEvent event)
	{
		//Get the world
		World world = Minecraft.getMinecraft().world;
		if(world == null)
			return;
		
		//Get the camera frustrum for clipping
		Entity camera = Minecraft.getMinecraft().getRenderViewEntity();
		double x = camera.lastTickPosX + (camera.posX - camera.lastTickPosX) * event.getPartialTicks();
		double y = camera.lastTickPosY + (camera.posY - camera.lastTickPosY) * event.getPartialTicks();
		double z = camera.lastTickPosZ + (camera.posZ - camera.lastTickPosZ) * event.getPartialTicks();
		
		//Frustum frustrum = new Frustum();
		//frustrum.setPosition(x, y, z);
		
		//Push
		GlStateManager.pushMatrix();
		//Setup lighting
		Minecraft.getMinecraft().entityRenderer.enableLightmap();
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
		GlStateManager.enableLighting();
		GlStateManager.disableBlend();
		
		RenderHelper.enableStandardItemLighting();
		
		GlStateManager.translate(-(float)x, -(float)y, -(float)z);
		for(Object entity : world.loadedEntityList)
		{
			if(entity instanceof EntityNukeDrop)
			{
				EntityNukeDrop nuke = (EntityNukeDrop)entity;
				int i = nuke.getBrightnessForRender();
				
				if(nuke.isBurning())
				{
					i = 15728880;
				}
				
				int j = i % 65536;
				int k = i / 65536;
				OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F);
				GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
				render(nuke,
						nuke.prevPosX + (nuke.posX - nuke.prevPosX) * event.getPartialTicks(),
						nuke.prevPosY + (nuke.posY - nuke.prevPosY) * event.getPartialTicks(),
						nuke.prevPosZ + (nuke.posZ - nuke.prevPosZ) * event.getPartialTicks(), 0F, event.getPartialTicks());
			}
		}
		
		//Reset Lighting
		Minecraft.getMinecraft().entityRenderer.disableLightmap();
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
		GlStateManager.disableLighting();
		//Pop
		GlStateManager.popMatrix();
	}
	
	public static class Factory implements IRenderFactory<EntityNukeDrop>
	{
		@Override
		public Render<EntityNukeDrop> createRenderFor(RenderManager manager)
		{
			return new RenderNukeDrop(manager);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderPowerCube.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.util.ResourceLocation;

import com.flansmod.apocalypse.common.blocks.TileEntityPowerCube;

public class RenderPowerCube extends TileEntitySpecialRenderer<TileEntityPowerCube>
{
	private ResourceLocation TEXTURE = new ResourceLocation("flansmodapocalypse", "textures/blocks/PowerCube.png");
	private ModelPowerCube model;
	
	public RenderPowerCube()
	{
		model = new ModelPowerCube();
	}
	
	@Override
	public void render(TileEntityPowerCube holder, double posX, double posY, double posZ, float partialTicks, int destroyStage, float alpha)
	{
		if(model != null)
		{
			bindTexture(TEXTURE);
			GlStateManager.pushMatrix();
			GlStateManager.translate((float)posX, (float)posY, (float)posZ);
			GlStateManager.rotate(180F, 0F, 0F, 1F);
	        
	        /*
	        switch(EnumFacing.HORIZONTALS[holder.getBlockMetadata()])
	        {
			case NORTH:
				GlStateManager.translate(-1F, 0F, 0F);
				GlStateManager.rotate(0F, 0F, 1F, 0F);
				break;
			case EAST:
				GlStateManager.translate(-1F, 0F, 1F);
				GlStateManager.rotate(90F, 0F, 1F, 0F);
				break;
			case SOUTH:
				GlStateManager.translate(0F, 0F, 1F);
				GlStateManager.rotate(180F, 0F, 1F, 0F);
				break;
			case WEST:
				GlStateManager.rotate(270F, 0F, 1F, 0F);
				break;  
	        }
	        */
			GlStateManager.translate(-1F, 0F, 0F);
			model.render();

			float angle = (holder.age + partialTicks) * 10F;
			float scale = (float)Math.sin(angle * 0.01F);

			GlStateManager.pushMatrix();
			GlStateManager.translate(0.5F, -0.5F, 0.5F);
			GlStateManager.rotate(angle * 1.345F, 1F, 0F, 0F);
			GlStateManager.rotate(angle * 0.8925F, 0F, 1F, 0F);
			GlStateManager.rotate(angle * 0.245F, 0F, 0F, 1F);
			GlStateManager.scale(scale, scale, scale);
			GlStateManager.translate(-0.5F, 0.5F, -0.5F);
			model.renderPower();
			GlStateManager.popMatrix();

			scale = (float)Math.cos(angle * 0.0134F);

			GlStateManager.pushMatrix();
			GlStateManager.translate(0.5F, -0.5F, 0.5F);
			GlStateManager.rotate(angle * 1.783F, 1F, 0F, 0F);
			GlStateManager.rotate(angle * 1.145F, 0F, 1F, 0F);
			GlStateManager.rotate(angle * 0.3567F, 0F, 0F, 1F);
			GlStateManager.scale(scale, scale, scale);
			GlStateManager.translate(-0.5F, 0.5F, -0.5F);
			model.renderPower();
			GlStateManager.popMatrix();

			scale = (float)Math.sin(angle * 0.0254F);

			GlStateManager.pushMatrix();
			GlStateManager.translate(0.5F, -0.5F, 0.5F);
			GlStateManager.rotate(angle * 1.9993F, 1F, 0F, 0F);
			GlStateManager.rotate(angle * 1.111F, 0F, 1F, 0F);
			GlStateManager.rotate(angle * 0.578F, 0F, 0F, 1F);
			GlStateManager.scale(scale, scale, scale);
			GlStateManager.translate(-0.5F, 0.5F, -0.5F);
			model.renderPower();
			GlStateManager.popMatrix();

			GlStateManager.popMatrix();
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSkullBoss.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntitySkullBoss;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;

public class RenderSkullBoss extends Render<EntitySkullBoss>
{
	private static final ResourceLocation texture = new ResourceLocation("flansmodapocalypse", "textures/entity/skullboss.png");
	private ModelSkullBoss model;
	
	public RenderSkullBoss(RenderManager rm)
	{
		super(rm);
		model = new ModelSkullBoss();
	}
	
	public void doRender(EntitySkullBoss entity, double x, double y, double z, float p_76986_8_, float partialTicks)
	{
		bindEntityTexture(entity);
		
		GlStateManager.pushMatrix();
		GlStateManager.translate(x, y, z);
		
		GlStateManager.rotate(-entity.rotationYaw + entity.GetSpawnSpin(partialTicks), 0, 1, 0);
		GlStateManager.rotate(entity.rotationPitch, 0, 0, 1);
		GlStateManager.scale(32f, 32f, 32f);
		
		float laughFactor = entity.GetLaughFactor(partialTicks);
		
		GlStateManager.pushMatrix();
		{
			GlStateManager.rotate(laughFactor * 15.0f, 0, 0, 1);
			model.renderHead(1F / 16F);
		}
		GlStateManager.popMatrix();
		
	
		GlStateManager.pushMatrix();
		{
			GlStateManager.rotate(-laughFactor * 15.0f, 0, 0, 1);
			model.renderJaw(1F / 16F);		
		}
		GlStateManager.popMatrix();
		
		
		GlStateManager.popMatrix();
	}
	
	@Override
	protected ResourceLocation getEntityTexture(EntitySkullBoss entity)
	{
		return texture;
	}
		
	public static class Factory implements IRenderFactory<EntitySkullBoss>
	{
		@Override
		public Render<EntitySkullBoss> createRenderFor(RenderManager manager)
		{
			return new RenderSkullBoss(manager);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSkullDrone.java
================================================
package com.flansmod.apocalypse.client.model;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import com.flansmod.apocalypse.common.entity.EntitySkullDrone;
import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntitySkullBoss;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;
import com.flansmod.client.ClientProxy;
import com.flansmod.client.handlers.FlansModResourceHandler;
import com.flansmod.client.model.ModelGun;
import com.flansmod.common.guns.GunType;
import com.flansmod.common.guns.ItemGun;
import com.flansmod.common.vector.Vector3f;

public class RenderSkullDrone extends Render<EntitySkullDrone>
{
	private static final ResourceLocation texture = new ResourceLocation("flansmodapocalypse", "textures/entity/skulldrone.png");
	private ModelSkullDrone model;
	private static final ItemRenderer renderer = new ItemRenderer(Minecraft.getMinecraft());
	private static RenderItem renderItem;
	
	public RenderSkullDrone(RenderManager rm)
	{
		super(rm);
		renderItem = Minecraft.getMinecraft().getRenderItem();
		model = new ModelSkullDrone();
	}
	
	public void doRender(EntitySkullDrone entity, double x, double y, double z, float p_76986_8_, float partialTicks)
	{
		bindEntityTexture(entity);
		
		GlStateManager.pushMatrix();
		GlStateManager.translate(x, y, z);
		
		GlStateManager.rotate(-entity.rotationYaw, 0, 1, 0);
		
		GlStateManager.pushMatrix();
		{
			model.renderBase(1F / 16F);
			
			for(int i = 0; i < model.numPropellers; i++)
			{
				GlStateManager.pushMatrix();
				GlStateManager.translate(model.propellerOrigins[i].x, model.propellerOrigins[i].y, model.propellerOrigins[i].z);
				GlStateManager.rotate((entity.ticksExisted + partialTicks) * (i % 2== 0 ? -80f :80f), 0f, 1f, 0f);
				GlStateManager.scale(2f,  2f, 2f);
				model.renderPropeller(1f / 16f);
				GlStateManager.popMatrix();
			}
		}
		GlStateManager.popMatrix();
			
		GlStateManager.pushMatrix();
		
		ItemStack stack = entity.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND);
		if(!stack.isEmpty())
		{
			model.itemOrigin = new Vector3f(0f, -0.5f, 0f);
			GlStateManager.translate(model.itemOrigin.x, model.itemOrigin.y, model.itemOrigin.z);
			GlStateManager.rotate(entity.rotationPitch, 0, 0, 1);
			
			Item item = stack.getItem();
			if(item instanceof ItemGun && ((ItemGun)item).GetType().model != null)
			{
				GunType gunType = ((ItemGun)item).GetType();
				ModelGun model = gunType.model;
				
				//GlStateManager.rotate(-90F, 0F, 0F, 1F);
				bindTexture(FlansModResourceHandler.getTexture(gunType));
				ClientProxy.gunRenderer.renderGun(stack, gunType, 1F / 16F, model, entity.animations, 0F);
			}
			else
			{
				GlStateManager.rotate(-135F, 0F, 0F, 1F);
				GlStateManager.translate(0F, -0.4F, 0F);
				
				IBakedModel ibakedmodel = renderItem.getItemModelMesher().getItemModel(stack);
				renderItem.renderItem(stack, ibakedmodel);
				
				GlStateManager.disableRescaleNormal();
			}
		}
		GlStateManager.popMatrix();
		
		GlStateManager.popMatrix();
	}
	
	@Override
	protected ResourceLocation getEntityTexture(EntitySkullDrone entity)
	{
		return texture;
	}
		
	public static class Factory implements IRenderFactory<EntitySkullDrone>
	{
		@Override
		public Render<EntitySkullDrone> createRenderFor(RenderManager manager)
		{
			return new RenderSkullDrone(manager);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSurvivor.java
================================================
package com.flansmod.apocalypse.client.model;

import com.flansmod.apocalypse.common.entity.EntitySurvivor;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.layers.LayerBipedArmor;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.client.registry.IRenderFactory;

public class RenderSurvivor extends RenderBiped<EntitySurvivor>
{
	private static final ResourceLocation SURVIVOR_SKIN = new ResourceLocation("flansmodapocalypse", "textures/entity/Survivor.png");
	
	public RenderSurvivor(RenderManager man, ModelBiped model, float f)
	{
		super(man, model, f);
		
		this.addLayer(new LayerBipedArmor(this));
	}
	
	protected ResourceLocation getEntityTexture(EntitySurvivor entity)
	{
		return SURVIVOR_SKIN;
	}
	
	public static class Factory implements IRenderFactory<EntitySurvivor>
	{
		@Override
		public Render<EntitySurvivor> createRenderFor(RenderManager manager)
		{
			return new RenderSurvivor(manager, new ModelBiped(), 0);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderTeleporter.java
================================================
package com.flansmod.apocalypse.client.model;

import com.flansmod.apocalypse.common.entity.EntityTeleporter;
import com.flansmod.client.model.RenderParachute;
import com.flansmod.common.tools.EntityParachute;

import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.client.registry.IRenderFactory;

public class RenderTeleporter extends Render<EntityTeleporter>
{
	private ModelTeleporter model;
	private static final ResourceLocation texture = new ResourceLocation("flansmodapocalypse", "textures/entity/Teleporter.png");
	private static int[] randomiser = new int[]{145, 167, 324, 541};
	
	public RenderTeleporter(RenderManager renderManager)
	{
		super(renderManager);
		model = new ModelTeleporter();
	}
	
	public void doRender(EntityTeleporter entity, double x, double y, double z, float p_76986_8_, float partialTicks)
	{
		bindEntityTexture(entity);
		
		RenderHelper.disableStandardItemLighting();
		//GlStateManager.disableTexture2D();
		GlStateManager.shadeModel(7425);
		//GlStateManager.enableBlend();
		//GlStateManager.blendFunc(770, 1);
		//GlStateManager.disableAlpha();
		GlStateManager.enableCull();
		//GlStateManager.depthMask(false);
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
		
		for(int i = 0; i < 4; i++)
		{
			float scaleX = 0.4F * (float)Math.sin((entity.ticksExisted + partialTicks) * 0.1F + 1.7F * randomiser[i]) + 1.0F;
			float scaleY = 0.4F * (float)Math.cos((entity.ticksExisted + partialTicks) * 0.114F + 1.145F + 0.35F * randomiser[(i + 1) % 4]) + 1.0F;
			float scaleZ = 0.4F * (float)Math.cos((entity.ticksExisted + partialTicks) * 0.121F + 0.7545F - 11F * randomiser[i]) + 1.0F;
			float rotation = 100F * (float)Math.cos((entity.ticksExisted + partialTicks) * 0.000121F * randomiser[(i + 2) % 4]);
			GlStateManager.pushMatrix();
			GlStateManager.translate(0.0F, 1.0F, 0.0F);
			GlStateManager.translate(x, y, z);
			GlStateManager.rotate(rotation, 1F, 1F, 0F);
			GlStateManager.rotate(100F * (float)Math.sin((entity.ticksExisted + partialTicks) * 0.000173F * randomiser[(i + 2) % 4]), 1F, 0F, 1F);
			GlStateManager.scale(-scaleX, scaleY, scaleZ);
			model.render(0.0625F);
			GlStateManager.popMatrix();
		}
		
		GlStateManager.depthMask(true);
		GlStateManager.disableCull();
		GlStateManager.disableBlend();
		GlStateManager.shadeModel(7424);
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
		GlStateManager.enableTexture2D();
		GlStateManager.enableAlpha();
		RenderHelper.enableStandardItemLighting();
	}
	
	@Override
	protected ResourceLocation getEntityTexture(EntityTeleporter entity)
	{
		return texture;
	}
	
	public static class Factory implements IRenderFactory<EntityTeleporter>
	{
		@Override
		public Render<EntityTeleporter> createRenderFor(RenderManager manager)
		{
			return new RenderTeleporter(manager);
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/common/ApocalypseData.java
================================================
package com.flansmod.apocalypse.common;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;

import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import com.flansmod.common.FlansMod;

public class ApocalypseData
{
	/**
	 * The point at which each player entered the apocalypse. For deciding where they should come out
	 */
	public HashMap<UUID, BlockPos> entryPoints = new HashMap<>();
	
	@SubscribeEvent
	public void worldData(WorldEvent event)
	{
		if(event.getWorld().isRemote)
			return;
		if(event instanceof WorldEvent.Load)
		{
			loadPerWorldData(event, event.getWorld());
			savePerWorldData(event, event.getWorld());
		}
		if(event instanceof WorldEvent.Save)
		{
			savePerWorldData(event, event.getWorld());
		}
	}

	private void savePerWorldData(WorldEvent event, World world)
	{
		if(world.provider.getDimension() == 0)
		{
			try
			{
				//Make directory
				File dir = new File(world.getSaveHandler().getWorldDirectory(), "apocalypse");
				if(!dir.exists())
					dir.mkdirs();
				
				//Save per-world file
				File file = new File(dir, "apocalypse.dat");
				NBTTagCompound tags = new NBTTagCompound();
				if(!file.exists())
					file.createNewFile();

				CompressedStreamTools.write(tags, new DataOutputStream(new FileOutputStream(file)));
				
				
				//Save per-player file
				for(Map.Entry<UUID, BlockPos> uuidBlockPosEntry : entryPoints.entrySet())
				{
					UUID uuid = (uuidBlockPosEntry).getKey();
					File playerFile = new File(dir, uuid.toString() + ".dat");
					NBTTagCompound playerTags = new NBTTagCompound();
					if(!playerFile.exists())
						playerFile.createNewFile();
					
					BlockPos pos = entryPoints.get(uuid);
					playerTags.setIntArray("EntryPoint", new int[]{pos.getX(), pos.getY(), pos.getZ()});
					
					CompressedStreamTools.write(playerTags, new DataOutputStream(new FileOutputStream(playerFile)));
				}
			}
			catch(Exception e)
			{
				FlansMod.log.throwing(e);
			}
		}
	}

	private void loadPerWorldData(WorldEvent event, World world)
	{
		if(world.provider.getDimension() == 0)
		{
			try
			{
				//Make directory
				File dir = new File(world.getSaveHandler().getWorldDirectory(), "apocalypse");
				if(!dir.exists())
					return;
				
				//Load per-world file
				File file = new File(world.getSaveHandler().getWorldDirectory(), "apocalypse/apocalypse.dat");
				if(!file.exists())
					file.createNewFile();

				NBTTagCompound tags = CompressedStreamTools.read(new DataInputStream(new FileInputStream(file)));
				
				
				//Load per-player file
				for(File playerFile : dir.listFiles())
				{
					if(playerFile.getName().equals("apocalypse.dat"))
						continue;
					UUID uuid = UUID.fromString(playerFile.getName().split("\\.")[0]);
					NBTTagCompound playerTags = CompressedStreamTools.read(new DataInputStream(new FileInputStream(playerFile)));
					int[] entryPoint = playerTags.getIntArray("EntryPoint");
					entryPoints.put(uuid, new BlockPos(entryPoint[0], entryPoint[1], entryPoint[2]));
				}
			}
			catch(Exception e)
			{
				FlansMod.log.throwing(e);
			}
		}
	}
	
	
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/common/CommonProxyApocalypse.java
================================================
package com.flansmod.apocalypse.common;

import java.util.EnumSet;
import java.util.HashMap;

import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.server.SPacketPlayerPosLook;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.EntityRegistry;

import com.flansmod.apocalypse.common.entity.EntityAIMecha;
import com.flansmod.apocalypse.common.entity.EntityFakePlayer;
import com.flansmod.apocalypse.common.entity.EntityFlyByPlane;
import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntitySurvivor;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;
import com.flansmod.apocalypse.common.network.PacketApocalypseCountdown;
import com.flansmod.apocalypse.common.world.TeleporterApocalypse;
import com.flansmod.apocalypse.common.world.buildings.StructureAbandonedVillagePieces;
import com.flansmod.common.FlansMod;
import com.flansmod.common.driveables.DriveableData;
import com.flansmod.common.driveables.EnumDriveablePart;
import com.flansmod.common.driveables.PlaneType;
import com.flansmod.common.driveables.mechas.EntityMecha;
import com.flansmod.common.parts.PartType;

public class CommonProxyApocalypse
{
	private int apocalypseCountdown = 0;
	/**
	 * The mecha that started all this
	 */
	private EntityMecha apocalypseMecha = null;
	public ApocalypseData data;
	
	private static HashMap<EntityPlayer, BlockPos> deathPoints = new HashMap<>();
	
	public void preInit(FMLPreInitializationEvent event)
	{
		MinecraftForge.EVENT_BUS.register(this);
		MinecraftForge.EVENT_BUS.register(data = new ApocalypseData());
		
		StructureAbandonedVillagePieces.registerVillagePieces();
	}
	
	public void init(FMLInitializationEvent event)
	{
		FlansMod.getPacketHandler().registerPacket(PacketApocalypseCountdown.class);
	}
	
	public void postInit(FMLPostInitializationEvent event)
	{
		
	}
		
	/**
	 * Tick hook for server
	 */
	@SubscribeEvent
	public void tick(TickEvent.ServerTickEvent event)
	{
		if(event.phase == TickEvent.Phase.START)
		{
			//Countdown to 0 and on 0, do apocalypse things
			if(getApocalypseCountdown() > 0)
			{
				if(apocalypseMecha == null || apocalypseMecha.isDead())
				{
					setApocalypseCountdown(0);
				}
				else
				{
					setApocalypseCountdown(getApocalypseCountdown() - 1);
					
					//Wiggle the apocalypse mecha
					apocalypseMecha.getSeat(0).prevLooking = apocalypseMecha.getSeat(0).looking.clone();
					apocalypseMecha.getSeat(0).looking.rotateGlobalYaw(apocalypseMecha.world.rand.nextFloat() * 10F);
					apocalypseMecha.getSeat(0).looking.rotateGlobalPitch((float)apocalypseMecha.world.rand.nextGaussian() * 3F);
					
					//Drop nukes
					if(getApocalypseCountdown() % 20 == 0)
					{
						World world = apocalypseMecha.world;
						float range = 150F;
						world.spawnEntity(new EntityNukeDrop(world, apocalypseMecha.posX + world.rand.nextGaussian() * range, 256, apocalypseMecha.posZ + world.rand.nextGaussian() * range));
					}
					
					//Start the apocalypse
					if(getApocalypseCountdown() == 0)
					{
						FlansMod.log.info("The apocalypse has begun!");
						EntityPlayer placer = apocalypseMecha.placer;
						
						switch(FlansModApocalypse.OPTION)
						{
							case DIM:
								for(int i = 0; i < placer.world.playerEntities.size(); i++)
									if(placer.world.playerEntities.get(i).dimension == 0)
										sendPlayerToApocalypse(placer.world.playerEntities.get(i));
								break;
							case DIM_OPT_IN:
								break;
							case NEARBY:
								for(Object player : placer.world.playerEntities)
									if(((Entity)player).dimension == 0 && ((Entity)player).getDistanceSq(placer) < 50 * 50)
										sendPlayerToApocalypse((EntityPlayer)player);
								break;
							case NEARBY_OPT_IN:
								break;
							case PLACER_ONLY:
								sendPlayerToApocalypse(placer);
								break;
						}
						apocalypseMecha.setDead();
					}
				}
			}
			
			WorldServer world = FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(FlansModApocalypse.dimensionID);
			if(world != null)
			{
				FlansModApocalypse.INSTANCE.UpdateBossFight(world);
				
				for(int i = 0; i < world.playerEntities.size(); i++)
				{
					EntityPlayer player = world.playerEntities.get(i);
					//FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().transferPlayerToDimension((EntityPlayerMP)player, 0, new TeleporterApocalypse(FMLCommonHandler.instance().getMinecraftServerInstance().worldServerForDimension(FlansModApocalypse.dimensionID)));
					
					if(world.rand.nextInt(5000) == 0)
					{
						double dX = world.rand.nextFloat() - 0.5F;
						double dZ = world.rand.nextFloat() - 0.5F;
						double mag = Math.sqrt(dX * dX + dZ * dZ);
						dX /= mag;
						dZ /= mag;
						double dist = 200D;
						dX *= dist;
						dZ *= dist;
						
						PlaneType type = FlansModApocalypse.getLootGenerator().getRandomPlane(world.rand);
						NBTTagCompound tags = new NBTTagCompound();
						tags.setString("Engine", FlansModApocalypse.getLootGenerator().getRandomEngine(type, world.rand).shortName);
						tags.setString("Type", type.shortName);
						for(EnumDriveablePart part : EnumDriveablePart.values())
						{
							tags.setInteger(part.getShortName() + "_Health", type.health.get(part) == null ? 0 : type.health.get(part).health);
							tags.setBoolean(part.getShortName() + "_Fire", false);
						}
						DriveableData data = new DriveableData(tags);
						
						EntityFlyByPlane plane = new EntityFlyByPlane(world, player.posX + dX, 120, player.posZ + dZ, type, data);
						
						plane.throttle = 1F;
						world.spawnEntity(plane);
						
						float yaw = 180F + (float)Math.atan2(dZ, dX) * 180F / 3.14159F;
						plane.getSeat(0).looking.setAngles(yaw, 0F, 0F);
						plane.getSeat(0).prevLooking.setAngles(yaw, 0F, 0F);
						plane.axes.setAngles(yaw, 0F, 0F);
						plane.prevAxes.setAngles(yaw, 0F, 0F);
						
						Entity pilot = new EntitySkeleton(world);
						pilot.setPosition(plane.posX, plane.posY, plane.posZ);
						world.spawnEntity(pilot);
						
						pilot.startRiding(plane.getSeat(0));
					}
					
					if(world.rand.nextInt(FlansModApocalypse.WANDERING_SURVIVOR_RARITY) == 0 && !world.provider.isDaytime())
					{
						double angle = world.rand.nextFloat() * 3.14159F * 2F;
						double dist = 50D;
						double dX = Math.cos(angle) * dist;
						double dZ = Math.sin(angle) * dist;
						
						EntitySurvivor survivor = new EntitySurvivor(world);
						survivor.setPosition(player.posX + dX, world.getTopSolidOrLiquidBlock(new BlockPos(player.posX + dX, 0, player.posZ + dZ)).getY() + 1D, player.posZ + dZ);
						
						world.spawnEntity(survivor);
					}
				}
			}
		}
	}
	
	private void sendPlayerToApocalypse(EntityPlayer player)
	{
		//Make a copy of the player to hold their inventory and hang around until they get back
		EntityFakePlayer fakePlayer = new EntityFakePlayer(player.world, player);
		player.world.spawnEntity(fakePlayer);
		
		player.inventory.clear();
		
		//Teleport them, making note of where they got in
		player.timeUntilPortal = 10;
		data.entryPoints.put(player.getPersistentID(), new BlockPos(apocalypseMecha.posX, apocalypseMecha.posY, apocalypseMecha.posZ));
		BlockPos exitPoint = new BlockPos(apocalypseMecha.posX, 128, apocalypseMecha.posZ);
		for(; FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(FlansModApocalypse.dimensionID).isAirBlock(exitPoint); exitPoint = exitPoint.down())
		{
		}
		FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().transferPlayerToDimension((EntityPlayerMP)player, FlansModApocalypse.dimensionID, new TeleporterApocalypse(FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(FlansModApocalypse.dimensionID), exitPoint.add(0, 1, 0)));
		
		giveStarterKit(player);
	}
	
	private void giveStarterKit(EntityPlayer player)
	{
		player.inventory.addItemStackToInventory(new ItemStack(Items.STONE_PICKAXE));
		player.inventory.addItemStackToInventory(new ItemStack(Items.STONE_SHOVEL));
		player.inventory.addItemStackToInventory(new ItemStack(Blocks.LOG, 8));
		player.inventory.addItemStackToInventory(new ItemStack(Items.COOKED_BEEF, 4));
	}
	
	@SubscribeEvent
	public void itemPlaced(EntityJoinWorldEvent event)
	{
		if(!event.getWorld().isRemote && event.getEntity() instanceof EntityMecha && event.getEntity().dimension == 0)
		{
			EntityMecha mecha = (EntityMecha)event.getEntity();
			PartType engine = mecha.getDriveableData().engine;
			if(engine.isAIChip)
			{
				setApocalypseCountdown(FlansModApocalypse.apocalypseCountdownLength);
				apocalypseMecha = mecha;
				FlansMod.getPacketHandler().sendTo(new PacketApocalypseCountdown(getApocalypseCountdown()), (EntityPlayerMP)mecha.placer);
			}
		}
	}
	
	/**
	 * Take note of where the player died
	 */
	@SubscribeEvent
	public void playerDied(LivingDeathEvent event)
	{
		if(event.getEntityLiving().dimension == FlansModApocalypse.dimensionID && event.getEntityLiving() instanceof EntityPlayer)
		{
			EntityPlayer player = (EntityPlayer)event.getEntityLiving();
			
			deathPoints.put(player, new BlockPos(player.posX, player.posY, player.posZ));
		}
	}
	
	/**
	 * Respawn the player somewhere nearby where they died on the surface
	 */
	@SubscribeEvent
	public void playerRespawned(PlayerRespawnEvent event)
	{
		if(event.player.dimension == FlansModApocalypse.dimensionID)
		{
			BlockPos pos = deathPoints.get(event.player);
			if(pos != null)
			{
				EnumSet enumset = EnumSet.noneOf(SPacketPlayerPosLook.EnumFlags.class);
				float angle = event.player.world.rand.nextFloat() * 2F * 3.14159F;
				pos = pos.add((int)(Math.cos(angle) * FlansModApocalypse.SPAWN_RADIUS), 128 - pos.getY(), (int)(Math.sin(angle) * FlansModApocalypse.SPAWN_RADIUS));
				if(pos.getDistance(0, pos.getY(), 0) < 200d)
				{
					pos.add((pos.getX() > 0 ? 100 : -100) - pos.getX(), 0, (pos.getZ() > 0 ? 100 : -100) - pos.getZ());
				}
				for(; event.player.world.isAirBlock(pos); pos = pos.down())
				{
					
				}
				((EntityPlayerMP)event.player).connection.setPlayerLocation(pos.getX() + 0.5D, pos.getY() + 1.5D, pos.getZ() + 0.5D, 0F, 0F, enumset);
				event.player.posX = event.player.prevPosX = pos.getX() + 0.5D;
				event.player.posY = event.player.prevPosY = pos.getY() + 0.5D;
				event.player.posZ = event.player.prevPosZ = pos.getZ() + 0.5D;
			}
		}
	}
	
	public int getApocalypseCountdown()
	{
		return apocalypseCountdown;
	}
	
	private void setApocalypseCountdown(int apocalypseCountdown)
	{
		this.apocalypseCountdown = apocalypseCountdown;
	}
	
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/common/FlansModApocalypse.java
================================================
package com.flansmod.apocalypse.common;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.DimensionType;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType;
import net.minecraftforge.event.terraingen.PopulateChunkEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;

import com.flansmod.apocalypse.common.blocks.BlockPowerCube;
import com.flansmod.apocalypse.common.blocks.BlockStatic;
import com.flansmod.apocalypse.common.blocks.BlockSulphur;
import com.flansmod.apocalypse.common.blocks.BlockSulphuricAcid;
import com.flansmod.apocalypse.common.blocks.TileEntityPowerCube;
import com.flansmod.apocalypse.common.entity.EntityAIMecha;
import com.flansmod.apocalypse.common.entity.EntitySkullDrone;
import com.flansmod.apocalypse.common.entity.EntityFakePlayer;
import com.flansmod.apocalypse.common.entity.EntityFlyByPlane;
import com.flansmod.apocalypse.common.entity.EntityNukeDrop;
import com.flansmod.apocalypse.common.entity.EntitySkullBoss;
import com.flansmod.apocalypse.common.entity.EntitySurvivor;
import com.flansmod.apocalypse.common.entity.EntityTeleporter;
import com.flansmod.apocalypse.common.world.BiomeApocalypse;
import com.flansmod.apocalypse.common.world.WorldProviderApocalypse;
import com.flansmod.apocalypse.common.world.buildings.WorldGenAbandonedPortal;
import com.flansmod.apocalypse.common.world.buildings.WorldGenBossPillar;
import com.flansmod.common.BlockItemHolder;
import com.flansmod.common.CreativeTabFlan;
import com.flansmod.common.FlansMod;
import com.flansmod.common.IFlansModContentProvider;
import com.flansmod.common.ItemHolderType;
import com.flansmod.common.enchantments.GloveType;
import com.flansmod.common.enchantments.ItemGlove;
import com.flansmod.common.parts.PartType;

@Mod(modid = FlansModApocalypse.MODID, name = "Flan's Mod: Apocalypse", version = FlansModApocalypse.VERSION, acceptableRemoteVersions = "@ALLOWED_VERSIONS_APOCALYPSE@", dependencies = "required-after:" + FlansMod.MODID)
//, guiFactory = "com.flansmod.client.gui.config.ModGuiFactory")
public class FlansModApocalypse implements IFlansModContentProvider
{
	//Core mod stuff
	public static boolean DEBUG = false;
	public static final String MODID = "flansmodapocalypse";
	public static final String VERSION = "@VERSION_APOCALYPSE@";
	
	@Instance(MODID)
	public static FlansModApocalypse INSTANCE;
	@SidedProxy(clientSide = "com.flansmod.apocalypse.client.ClientProxyApocalypse", serverSide = "com.flansmod.apocalypse.common.CommonProxyApocalypse")
	public static CommonProxyApocalypse proxy;
	
	//Config options
	public static Configuration configFile;
	/**
	 * The time it takes between an AI chip being activated and the apocalypse happening (in ticks)
	 */
	public static int apocalypseCountdownLength = 469;
	public static int SURVIVOR_RARITY = 250;
	public static int WANDERING_SURVIVOR_RARITY = 500;
	public static int SKELETON_RARITY = 50;
	public static int DEAD_TREE_RARITY = 100;
	public static int VEHICLE_RARITY = 2000;
	public static int AIRPORT_RARITY = 125;
	public static int DYE_FACTORY_RARITY = 400;
	public static int LAB_RARITY = 100;

	
	// TODO: Configify
	public static int ABANDONED_PORTAL_APOC_RARITY = 4000;
	public static int ABANDONED_PORTAL_OVERWORLD_RARITY = 4000;
	
	/**
	 * The distance between where the player left the overworld, and where they return
	 */
	public static int RETURN_RADIUS = 100;
	/**
	 * How far from their death point does the player respawn?
	 */
	public static int SPAWN_RADIUS = 100;
	public static boolean RESPAWN_IN_APOC = false;
	/**
	 * Who gets teleported to the apocalypse when a player places a mecha?
	 */
	public static TeleportOption OPTION = TeleportOption.PLACER_ONLY;
	
	public static int dimensionID;
	public static DimensionType APOCALYPSE_DIM = null;
	public static FlansModLootGenerator lootGenerator;
	
	//Custom apoclypse defined items and blocks
	public static Item sulphur;
	public static Block blockSulphur;
	public static Fluid sulphuricAcid;
	public static Block blockSulphuricAcid;
	public static ResourceLocation sulphuricAcidStill = new ResourceLocation("flansmodapocalypse", "blocks/sulphuricAcidStill"),
			sulphuricAcidFlowing = new ResourceLocation("flansmodapocalypse", "blocks/sulphuricAcidFlowing");
	public static Block blockLabStone;
	public static Block blockPowerCube;
	
	public static Item itemBlockPowerCube, itemBlockLabStone, itemBlockSulphur;
	
	public static CreativeTabFlan tabApocalypse = new CreativeTabFlan(5);
	
	//References to apocalypse specific items and blocks:
	public static BlockItemHolder skeleton, slumpedSkeleton, gunRack;
	
	public static ItemGlove nukraniumGauntlet;
	
	static
	{
		FluidRegistry.enableUniversalBucket();
	}
	
	@SubscribeEvent
	public void registerItems(RegistryEvent.Register<Item> event)
	{
		event.getRegistry().register(sulphur);
		event.getRegistry().register(itemBlockLabStone);
		event.getRegistry().register(itemBlockSulphur);
		event.getRegistry().register(itemBlockPowerCube);
	}
	
	@SubscribeEvent
	public void registerBlocks(RegistryEvent.Register<Block> event)
	{
		event.getRegistry().register(blockSulphur);
		event.getRegistry().register(blockSulphuricAcid);
		event.getRegistry().register(blockLabStone);
		event.getRegistry().register(blockPowerCube);
	}
	
	@SubscribeEvent
	public void registerBiomes(RegistryEvent.Register<Biome> event)
	{
		BiomeApocalypse.registerBiomes();
		event.getRegistry().register(BiomeApocalypse.deepCanyon);
		event.getRegistry().register(BiomeApocalypse.canyon);
		event.getRegistry().register(BiomeApocalypse.desert);
		event.getRegistry().register(BiomeApocalypse.plateau);
		event.getRegistry().register(BiomeApocalypse.highPlateau);
		event.getRegistry().register(BiomeApocalypse.sulphurPits);
	}
	
	@SubscribeEvent
	public void registerRecipes(RegistryEvent.Register<IRecipe> event)
	{
		NonNullList<Ingredient> ingredients = NonNullList.create();
		ingredients.add(Ingredient.fromItem(ItemBlock.getItemFromBlock(Blocks.SAND)));
		ingredients.add(Ingredient.fromStacks(new ItemStack(sulphur)));
		
		event.getRegistry().register(new ShapelessRecipes("FlansModApocalypse", new ItemStack(Items.GUNPOWDER), ingredients).setRegistryName("GunpowderFromSulphur"));
		
		ingredients = NonNullList.create();
		for(int i = 0; i < 4; i++)
			ingredients.add(Ingredient.fromItem(ItemBlock.getItemFromBlock((Blocks.OBSIDIAN))));
		ingredients.add(Ingredient.fromItem(Items.END_CRYSTAL));
		for(int i = 0; i < 4; i++)
			ingredients.add(Ingredient.fromItem(ItemBlock.getItemFromBlock((Blocks.OBSIDIAN))));

		event.getRegistry().register(new ShapedRecipes(MODID, 3, 3, ingredients, new ItemStack(itemBlockPowerCube)).setRegistryName("PowerCubeCrafting"));
	}
	
	@EventHandler
	public void preInit(FMLPreInitializationEvent event)
	{
		MinecraftForge.EVENT_BUS.register(this);
		
		//Load config
		configFile = new Configuration(event.getSuggestedConfigurationFile());
		syncConfig();
		
		//Custom apoclypse defined items and blocks
		
		//Sulphur block and item
		// TODO: [1.12] .setStepSound(Block.soundTypeSand)
		blockSulphur = new BlockSulphur().setTranslationKey("blocksulphur").setRegistryName("blocksulphur").setCreativeTab(tabApocalypse);
		sulphur = new Item().setTranslationKey("flansulphur").setRegistryName("flansulphur").setCreativeTab(tabApocalypse);
		
		itemBlockSulphur = new ItemBlock(blockSulphur).setTranslationKey("blocksulphur").setRegistryName("blocksulphur").setCreativeTab(tabApocalypse);
		
		//Sulphuric acid
		sulphuricAcid = new Fluid("sulphuricacid", sulphuricAcidStill, sulphuricAcidFlowing).setTemperature(300).setViscosity(800);
		if(FluidRegistry.registerFluid(sulphuricAcid))
		{
			blockSulphuricAcid = new BlockSulphuricAcid(sulphuricAcid, Material.WATER).setTranslationKey("blocksulphuricacid").setRegistryName("blocksulphuricacid").setCreativeTab(tabApocalypse);
			sulphuricAcid.setBlock(blockSulphuricAcid);
			sulphuricAcid.setUnlocalizedName(blockSulphuricAcid.getTranslationKey());
			FluidRegistry.addBucketForFluid(sulphuricAcid);
		}
		else
		{
			sulphuricAcid = FluidRegistry.getFluid("sulphuricacid");
			blockSulphuricAcid = sulphuricAcid.getBlock();
		}
		
		//Laboratory Stone
		blockLabStone = new BlockStatic(Material.ROCK).setHardness(3F).setResistance(5F).setTranslationKey("blocklabstone").setRegistryName("blocklabstone").setCreativeTab(tabApocalypse);
		itemBlockLabStone = new ItemBlock(blockLabStone).setTranslationKey("blocklabstone").setRegistryName("blocklabstone").setCreativeTab(tabApocalypse);
		
		//Power Cube
		blockPowerCube = new BlockPowerCube(Material.CIRCUITS).setTranslationKey("blockpowercube").setRegistryName("blockpowercube").setHardness(3F).setResistance(5F).setCreativeTab(tabApocalypse);
		itemBlockPowerCube = new ItemBlock(blockPowerCube).setTranslationKey("blockpowercube").setRegistryName("blockpowercube").setCreativeTab(tabApocalypse);
		GameRegistry.registerTileEntity(TileEntityPowerCube.class, new ResourceLocation("flansmodapocalypse:powercube"));
		
		proxy.preInit(event);
	}
	
	@EventHandler
	public void init(FMLInitializationEvent event)
	{
		proxy.init(event);
		dimensionID = DimensionManager.getNextFreeDimId();
		APOCALYPSE_DIM = DimensionType.register("Apocalypse", "_apocalypse", dimensionID, WorldProviderApocalypse.class, false);
		DimensionManager.registerDimension(dimensionID, APOCALYPSE_DIM);
		
		//Grab references to apocalypse specific items and blocks here:
		if(ItemHolderType.getItemHolder("flanSkeleton") != null)
		{
			skeleton = ItemHolderType.getItemHolder("flanSkeleton").block;
			skeleton.setCreativeTab(tabApocalypse);
		}
		else
		{
			FlansMod.log.warn("Could not find skeleton item holder!");
		}
		if(ItemHolderType.getItemHolder("flanSkeleton2") != null)
		{
			slumpedSkeleton = ItemHolderType.getItemHolder("flanSkeleton2").block;
			slumpedSkeleton.setCreativeTab(tabApocalypse);
		}
		else
		{
			FlansMod.log.warn("Could not find skeleton2 item holder!");
		}
		if(ItemHolderType.getItemHolder("flanGunRack") != null)
		{
			gunRack = ItemHolderType.getItemHolder("flanGunRack").block;
			gunRack.setCreativeTab(tabApocalypse);
		}
		else
		{
			FlansMod.log.warn("Could not find gun rack item holder!");
		}
		
		//Put ai chip in apocalypse tab
		if(PartType.getPart("aiChip") != null)
			PartType.getPart("aiChip").item.setCreativeTab(tabApocalypse);
		if(PartType.getPart("complicatedCircuit") != null)
			PartType.getPart("complicatedCircuit").item.setCreativeTab(tabApocalypse);
		if(PartType.getPart("nuclearPowerCore") != null)
			PartType.getPart("nuclearPowerCore").item.setCreativeTab(tabApocalypse);
		
		if(GloveType.getGlove("nukranium_gauntlet") != null)
		{
			nukraniumGauntlet = (ItemGlove)GloveType.getGlove("nukranium_gauntlet").item;
		}
		
		lootGenerator = new FlansModLootGenerator();
	}
	
	@EventHandler
	public void postInit(FMLPostInitializationEvent event)
	{
		proxy.postInit(event);
	}
	
	private WorldGenAbandonedPortal portalGen = new WorldGenAbandonedPortal();
	
	
	@SubscribeEvent
	public void populateOverworldChunk(PopulateChunkEvent event)
	{
		if(event.getRand().nextInt(FlansModApocalypse.ABANDONED_PORTAL_OVERWORLD_RARITY) == 0)
		{
			int i = event.getChunkX() * 16 + 8;
			int j = event.getChunkZ() * 16 + 8;
			
			int height = event.getWorld().getHeight(i, j);
			portalGen.generate(event.getWorld(), event.getRand(), new BlockPos(i, height, j));
		}
	}
	
	@SubscribeEvent
	public void registerEntities(RegistryEvent.Register<EntityEntry> event)
	{
		event.getRegistry().register(new EntityEntry(EntitySurvivor.class, "Survivor").setRegistryName("Survivor"));
		event.getRegistry().register(new EntityEntry(EntityTeleporter.class, "Teleporter").setRegistryName("Teleporter"));
		event.getRegistry().register(new EntityEntry(EntityAIMecha.class, "AIMecha").setRegistryName("AIMecha"));
		event.getRegistry().register(new EntityEntry(EntityFakePlayer.class, "FakePlayer").setRegistryName("FakePlayer"));
		event.getRegistry().register(new EntityEntry(EntityNukeDrop.class, "NukeDrop").setRegistryName("NukeDrop"));
		event.getRegistry().register(new EntityEntry(EntityFlyByPlane.class, "FlyByPlane").setRegistryName("FlyByPlane"));
		event.getRegistry().register(new EntityEntry(EntitySkullBoss.class, "SkullBoss").setRegistryName("SkullBoss"));
		event.getRegistry().register(new EntityEntry(EntitySkullDrone.class, "AutoDrone").setRegistryName("AutoDrone"));
		
		//EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:Survivor"), 		EntitySurvivor.class, "Survivor", 112, FlansModApocalypse.INSTANCE, 100, 20, true, 0, 0);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:Teleporter"), EntityTeleporter.class, "Teleporter", 113, FlansModApocalypse.INSTANCE, 100, 20, true);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:AIMecha"), EntityAIMecha.class, "AIMecha", 114, FlansModApocalypse.INSTANCE, 250, 20, false);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:FakePlayer"), EntityFakePlayer.class, "FakePlayer", 115, FlansModApocalypse.INSTANCE, 250, 20, false);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:NukeDrop"), EntityNukeDrop.class, "NukeDrop", 116, FlansModApocalypse.INSTANCE, 250, 20, false);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:FlyByPlane"), EntityFlyByPlane.class, "FlyByPlane", 117, FlansModApocalypse.INSTANCE, 250, 20, false);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:SkullBoss"), EntitySkullBoss.class, "SkullBoss", 118, FlansModApocalypse.INSTANCE, 500, 5, false);
		EntityRegistry.registerModEntity(new ResourceLocation("flansmodapocalypse:AutoDrone"), EntitySkullDrone.class, "AutoDrone", 119, FlansModApocalypse.INSTANCE, 500, 5, true);
	}
	
	public static FlansModLootGenerator getLootGenerator()
	{
		return lootGenerator;
	}
	
	public static void syncConfig()
	{
		apocalypseCountdownLength = configFile.getInt("Apocalypse Countdown Length", Configuration.CATEGORY_GENERAL, apocalypseCountdownLength, 19, Integer.MAX_VALUE, "Time between placing an AI mecha and going to the apocalypse");
		SURVIVOR_RARITY = configFile.getInt("Survivor Rarity", Configuration.CATEGORY_GENERAL, SURVIVOR_RARITY, 1, Integer.MAX_VALUE, "Rarity of survivor entities spawned during world creation");
		WANDERING_SURVIVOR_RARITY = configFile.getInt("Wandering Survivor Rarity", Configuration.CATEGORY_GENERAL, WANDERING_SURVIVOR_RARITY, 1, Integer.MAX_VALUE, "Rarity of survivor entities spawned at night");
		SKELETON_RARITY = configFile.getInt("Skeleton Rarity", Configuration.CATEGORY_GENERAL, SKELETON_RARITY, 1, Integer.MAX_VALUE, "Rarity of buried skeletons");
		DEAD_TREE_RARITY = configFile.getInt("Dead Tree Rarity", Configuration.CATEGORY_GENERAL, DEAD_TREE_RARITY, 1, Integer.MAX_VALUE, "Rarity of dead trees");
		VEHICLE_RARITY = configFile.getInt("Vehicle Rarity", Configuration.CATEGORY_GENERAL, VEHICLE_RARITY, 1, Integer.MAX_VALUE, "Rarity of broken vehicles");
		AIRPORT_RARITY = configFile.getInt("Airport Rarity", Configuration.CATEGORY_GENERAL, AIRPORT_RARITY, 1, Integer.MAX_VALUE, "Rarity of airstrips");
		DYE_FACTORY_RARITY = configFile.getInt("Dye Factory Rarity", Configuration.CATEGORY_GENERAL, DYE_FACTORY_RARITY, 1, Integer.MAX_VALUE, "Rarity of dye factories");
		LAB_RARITY = configFile.getInt("Lab Rarity", Configuration.CATEGORY_GENERAL, LAB_RARITY, 1, Integer.MAX_VALUE, "Rarity of the research lab");
		RETURN_RADIUS = configFile.getInt("Return Radius", Configuration.CATEGORY_GENERAL, RETURN_RADIUS, 1, Integer.MAX_VALUE, "The distance away from your initial AI mecha that your return portal appears");
		SPAWN_RADIUS = configFile.getInt("Spawn Radius", Configuration.CATEGORY_GENERAL, SPAWN_RADIUS, 1, Integer.MAX_VALUE, "The distance from your deathpoint that you respawn in the apocalypse");
		OPTION = TeleportOption.getOption(configFile.getString("Option", Configuration.CATEGORY_GENERAL, OPTION.toString(), "Who gets teleported to the apocalypse with a player (One of PLACER_ONLY, DIM, DIM_OPT_IN, NEARBY, NEARBY_OPT_IN)"));
		
		ABANDONED_PORTAL_APOC_RARITY = configFile.getInt("Abandoned Portal Rarity (Apocalypse)", Configuration.CATEGORY_GENERAL, ABANDONED_PORTAL_APOC_RARITY, 1, Integer.MAX_VALUE, "Rarity of the abandoned portal structures in the apocalypse");
		ABANDONED_PORTAL_OVERWORLD_RARITY = configFile.getInt("Abandoned Portal Rarity (Other Dimensions)", Configuration.CATEGORY_GENERAL, ABANDONED_PORTAL_OVERWORLD_RARITY, 1, Integer.MAX_VALUE, "Rarity of the abandoned portal structures in other dimensions");
		RESPAWN_IN_APOC = configFile.getBoolean("Respawn in Apocalypse", Configuration.CATEGORY_GENERAL, RESPAWN_IN_APOC, "If false, players will return to their overworld spawn point");
		
		if(configFile.hasChanged())
			configFile.save();
	}
	
	public enum TeleportOption
	{
		PLACER_ONLY, DIM, DIM_OPT_IN, NEARBY, NEARBY_OPT_IN;
		
		public static TeleportOption getOption(String s)
		{
			if(s.equals("PLACER_ONLY"))
				return PLACER_ONLY;
			else if(s.equals("DIM"))
				return DIM;
			else if(s.equals("DIM_OPT_IN"))
				return DIM_OPT_IN;
			else if(s.equals("NEARBY"))
				return NEARBY;
			else if(s.equals("NEARBY_OPT_IN"))
				return NEARBY_OPT_IN;
			return PLACER_ONLY;
		}
	}

	@Override
	public String GetContentFolder() 
	{
		return "Apocalypse";
	}

	@Override
	public void RegisterModelRedirects() 
	{
		FlansMod.RegisterModelRedirect("apocalypse", "com.flansmod.apocalypse.client.model");
	}

	// Boss fight server control
	
	private static final int kBossWarmupTicks = 200;
	
	
	private static int sElapsedTicks = 0;
	private static boolean sBossFightInProgress = false;
	private static EntitySkullBoss sTheBoss = null;
	
	public void TriggerBossFight(World world, EntityLivingBase placer) 
	{
		sElapsedTicks = 0;
		
		if(world.isRemote) {
			return;
		}
		
		sTheBoss = new EntitySkullBoss(world);
		sTheBoss.setPosition(0d, WorldGenBossPillar.kBossSpawnHeight, 0d);
		sTheBoss.SetTarget(placer);
		world.spawnEntity(sTheBoss);
		
	}
	
	public void UpdateBossFight(World world)
	{
		sElapsedTicks++;
		
		if(sElapsedTicks >= kBossWarmupTicks)
		{
			
		}
	}
}


================================================
FILE: src/main/java/com/flansmod/apocalypse/common/FlansModLootGenerator.java
================================================
package com.flansmod.apocalypse.common;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagInt;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.potion.PotionType;
import net.minecraft.potion.PotionUtils;
import net.minecraft.tileentity.TileEntityBrewingStand;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;

import com.flansmod.common.TileEntityItemHolder;
import com.flansmod.common.driveables.DriveableType;
import com.flansmod.common.driveables.EnumPlaneMode;
import com.flansmod.common.driveables.PlaneType;
import com.flansmod.common.driveables.VehicleType;
import com.flansmod.common.driveables.mechas.MechaItemType;
import com.flansmod.common.driveables.mechas.MechaType;
import com.flansmod.common.guns.AttachmentType;
import com.flansmod.common.guns.GunType;
import com.flansmod.common.guns.ItemGun;
import com.flansmod.common.guns.ShootableType;
import com.flansmod.common.guns.boxes.GunBoxType;
import com.flansmod.common.parts.EnumPartCategory;
import com.flansmod.common.parts.PartType;
import com.flansmod.common.teams.ArmourBoxType;
import com.flansmod.common.teams.ArmourType;
import com.flansmod.common.teams.PlayerClass;
import com.flansmod.common.teams.Team;
import com.flansmod.common.tools.ToolType;
import com.flansmod.common.types.EnumType;

public class FlansModLootGenerator
{
	private static ArrayList<VehicleType> tanks, cars;
	private static ArrayList<PlaneType> planes, helicopters;
	private static ArrayList<MechaType> mechas, dungeonMechas;
	private static ArrayList<PartType> vehicleEngines, planeEngines, mechaEngines;
	private static ArrayList<GunType> validGuns;
	
	private static int[] potions = new int[]{8193, 8194, 8195, 8197, 8198, 8201, 8203, 8205, 8206};
	
	public FlansModLootGenerator()
	{
		tanks = new ArrayList<>();
		cars = new ArrayList<>();
		planes = new ArrayList<>();
		helicopters = new ArrayList<>();
		mechas = new ArrayList<>();
		dungeonMechas = new ArrayList<>();
		
		
		for(DriveableType type : DriveableType.types)
		{
			if(type instanceof VehicleType)
			{
				if(((VehicleType)type).tank)
					tanks.add((VehicleType)type);
				else if(!type.floatOnWater)
					cars.add((VehicleType)type);
			}
			else if(type instanceof PlaneType)
			{
				if(((PlaneType)type).mode == EnumPlaneMode.PLANE)
					planes.add((PlaneType)type);
				else helicopters.add((PlaneType)type);
			}
			else if(type instanceof MechaType)
			{
				mechas.add((MechaType)type);
				if(((MechaType)type).height <= 3F)
					dungeonMechas.add((MechaType)type);
			}
		}
		
		vehicleEngines = new ArrayList<>();
		mechaEngines = new ArrayList<>();
		planeEngines = new ArrayList<>();
		
		for(PartType type : PartType.partsByCategory.get(EnumPartCategory.ENGINE))
		{
			if(type.isAIChip)
				continue;
			if(type.worksWith.contains(EnumType.plane))
				planeEngines.add(type);
			if(type.worksWith.contains(EnumType.vehicle))
				vehicleEngines.add(type);
			if(type.worksWith.contains(EnumType.mecha))
				mechaEngines.add(type);
		}
		
		validGuns = new ArrayList<>();
		for(GunType type : GunType.gunList)
			if(type.dungeonChance != 0)
				validGuns.add(type);
	}
	
	public ItemStack getRandomLoadedGun(Random rand, boolean explosivesAllowed)
	{
		ItemStack stack = getRandomUnloadedGun(rand);
		
		GunType gunType = ((ItemGun)stack.getItem()).GetType();
		List<ShootableType> ammoList = explosivesAllowed ? gunType.ammo : gunType.nonExplosiveAmmo;
		if(ammoList.size() > 0)
		{
			NBTTagList ammoTagsList = new NBTTagList();
			for(int i = 0; i < gunType.numAmmoItemsInGun; i++)
			{
				NBTTagCompound ammoTag = new NBTTagCompound();
				ShootableType ammoType = ammoList.get(rand.nextInt(ammo
Download .txt
gitextract_nyisj3dr/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── crash_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── gradle.yml
├── .gitignore
├── LICENSE.txt
├── README.md
├── build.bat
├── build.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
└── src/
    └── main/
        ├── java/
        │   └── com/
        │       └── flansmod/
        │           ├── api/
        │           │   ├── IControllable.java
        │           │   └── IExplodeable.java
        │           ├── apocalypse/
        │           │   ├── client/
        │           │   │   ├── ClientProxyApocalypse.java
        │           │   │   └── model/
        │           │   │       ├── ModelBuggy.java
        │           │   │       ├── ModelGroundSkeleton.java
        │           │   │       ├── ModelGunRack.java
        │           │   │       ├── ModelNukeDrop.java
        │           │   │       ├── ModelPowerCube.java
        │           │   │       ├── ModelSkullBoss.java
        │           │   │       ├── ModelSkullDrone.java
        │           │   │       ├── ModelSlumpedSkeleton.java
        │           │   │       ├── ModelTeleporter.java
        │           │   │       ├── RenderFakePlayer.java
        │           │   │       ├── RenderNukeDrop.java
        │           │   │       ├── RenderPowerCube.java
        │           │   │       ├── RenderSkullBoss.java
        │           │   │       ├── RenderSkullDrone.java
        │           │   │       ├── RenderSurvivor.java
        │           │   │       └── RenderTeleporter.java
        │           │   └── common/
        │           │       ├── ApocalypseData.java
        │           │       ├── CommonProxyApocalypse.java
        │           │       ├── FlansModApocalypse.java
        │           │       ├── FlansModLootGenerator.java
        │           │       ├── PropertyFloat.java
        │           │       ├── blocks/
        │           │       │   ├── BlockPowerCube.java
        │           │       │   ├── BlockStatic.java
        │           │       │   ├── BlockSulphur.java
        │           │       │   ├── BlockSulphuricAcid.java
        │           │       │   └── TileEntityPowerCube.java
        │           │       ├── entity/
        │           │       │   ├── EntityAIGoSomewhere.java
        │           │       │   ├── EntityAIMecha.java
        │           │       │   ├── EntityFakePlayer.java
        │           │       │   ├── EntityFlansModShooter.java
        │           │       │   ├── EntityFlyByPlane.java
        │           │       │   ├── EntityNukeDrop.java
        │           │       │   ├── EntitySkullBoss.java
        │           │       │   ├── EntitySkullDrone.java
        │           │       │   ├── EntitySkuller.java
        │           │       │   ├── EntitySurvivor.java
        │           │       │   └── EntityTeleporter.java
        │           │       ├── items/
        │           │       │   └── ItemSulphuricAcidBucket.java
        │           │       ├── network/
        │           │       │   └── PacketApocalypseCountdown.java
        │           │       └── world/
        │           │           ├── BiomeApocalypse.java
        │           │           ├── BiomeDecoratorApocalypse.java
        │           │           ├── BiomeDesertCanyon.java
        │           │           ├── BiomeProviderApocalypse.java
        │           │           ├── BiomeSulphurPits.java
        │           │           ├── ChunkProviderApocalypse.java
        │           │           ├── GenLayerApocalypse.java
        │           │           ├── GenLayerBiomes.java
        │           │           ├── TeleporterApocalypse.java
        │           │           ├── WorldGenSulphurPool.java
        │           │           ├── WorldProviderApocalypse.java
        │           │           └── buildings/
        │           │               ├── MapGenAbandonedVillage.java
        │           │               ├── StructureAbandonedVillagePieces.java
        │           │               ├── WorldGenAbandonedPortal.java
        │           │               ├── WorldGenBossPillar.java
        │           │               ├── WorldGenDeadTree.java
        │           │               ├── WorldGenDyeFactory.java
        │           │               ├── WorldGenFlan.java
        │           │               ├── WorldGenResearchLab.java
        │           │               ├── WorldGenRoads.java
        │           │               ├── WorldGenRunway.java
        │           │               └── WorldGenSkeleton.java
        │           ├── client/
        │           │   ├── ClientProxy.java
        │           │   ├── ClientRenderHooks.java
        │           │   ├── EntityCamera.java
        │           │   ├── FlansModClient.java
        │           │   ├── MovingSoundDriveable.java
        │           │   ├── TileEntitySpawnerRenderer.java
        │           │   ├── debug/
        │           │   │   ├── EntityDebugAABB.java
        │           │   │   ├── EntityDebugColor.java
        │           │   │   ├── EntityDebugDot.java
        │           │   │   ├── EntityDebugVector.java
        │           │   │   ├── RenderDebugAABB.java
        │           │   │   ├── RenderDebugDot.java
        │           │   │   └── RenderDebugVector.java
        │           │   ├── gui/
        │           │   │   ├── GuiArmourBox.java
        │           │   │   ├── GuiDriveableController.java
        │           │   │   ├── GuiDriveableCrafting.java
        │           │   │   ├── GuiDriveableFuel.java
        │           │   │   ├── GuiDriveableInventory.java
        │           │   │   ├── GuiDriveableMenu.java
        │           │   │   ├── GuiDriveableRepair.java
        │           │   │   ├── GuiGunBox.java
        │           │   │   ├── GuiGunModTable.java
        │           │   │   ├── GuiMechaInventory.java
        │           │   │   ├── GuiPaintjobTable.java
        │           │   │   ├── config/
        │           │   │   │   ├── ModGuiConfig.java
        │           │   │   │   └── ModGuiFactory.java
        │           │   │   └── teams/
        │           │   │       ├── EnumLoadoutSlot.java
        │           │   │       ├── GuiBaseEditor.java
        │           │   │       ├── GuiChooseLoadout.java
        │           │   │       ├── GuiEditLoadout.java
        │           │   │       ├── GuiLandingPage.java
        │           │   │       ├── GuiMissionResults.java
        │           │   │       ├── GuiOpenRewardBox.java
        │           │   │       ├── GuiTeamScores.java
        │           │   │       ├── GuiTeamSelect.java
        │           │   │       ├── GuiTeamsBase.java
        │           │   │       └── GuiVoting.java
        │           │   ├── handlers/
        │           │   │   ├── ClientEventHandler.java
        │           │   │   ├── FlansModResourceHandler.java
        │           │   │   ├── KeyInputHandler.java
        │           │   │   └── MouseInputHandler.java
        │           │   ├── model/
        │           │   │   ├── AnimTankTrack.java
        │           │   │   ├── AnimTrackLink.java
        │           │   │   ├── CustomItemRenderType.java
        │           │   │   ├── CustomItemRenderer.java
        │           │   │   ├── EnumAnimationType.java
        │           │   │   ├── EnumMeleeAnimation.java
        │           │   │   ├── GunAnimations.java
        │           │   │   ├── InstantBulletRenderer.java
        │           │   │   ├── ModelAAGun.java
        │           │   │   ├── ModelAttachment.java
        │           │   │   ├── ModelBomb.java
        │           │   │   ├── ModelBullet.java
        │           │   │   ├── ModelCustomArmour.java
        │           │   │   ├── ModelDefaultMuzzleFlash.java
        │           │   │   ├── ModelDriveable.java
        │           │   │   ├── ModelFlagpole.java
        │           │   │   ├── ModelGun.java
        │           │   │   ├── ModelItemHolder.java
        │           │   │   ├── ModelMG.java
        │           │   │   ├── ModelMecha.java
        │           │   │   ├── ModelMechaTool.java
        │           │   │   ├── ModelMuzzleFlash.java
        │           │   │   ├── ModelNull.java
        │           │   │   ├── ModelPlane.java
        │           │   │   ├── ModelVehicle.java
        │           │   │   ├── RenderAAGun.java
        │           │   │   ├── RenderBullet.java
        │           │   │   ├── RenderFlag.java
        │           │   │   ├── RenderFlagpole.java
        │           │   │   ├── RenderGrenade.java
        │           │   │   ├── RenderGun.java
        │           │   │   ├── RenderGunItem.java
        │           │   │   ├── RenderItemHolder.java
        │           │   │   ├── RenderMG.java
        │           │   │   ├── RenderMecha.java
        │           │   │   ├── RenderNull.java
        │           │   │   ├── RenderParachute.java
        │           │   │   ├── RenderPlane.java
        │           │   │   └── RenderVehicle.java
        │           │   ├── teams/
        │           │   │   └── ClientTeamsData.java
        │           │   ├── tmt/
        │           │   │   ├── Angle3D.java
        │           │   │   ├── Bone.java
        │           │   │   ├── Coord2D.java
        │           │   │   ├── ModelPool.java
        │           │   │   ├── ModelPoolEntry.java
        │           │   │   ├── ModelPoolObjEntry.java
        │           │   │   ├── ModelRendererTurbo.java
        │           │   │   ├── PositionTextureVertex.java
        │           │   │   ├── PositionTransformVertex.java
        │           │   │   ├── Shape2D.java
        │           │   │   ├── Shape3D.java
        │           │   │   ├── TextureGroup.java
        │           │   │   ├── TexturedPolygon.java
        │           │   │   ├── TmtTessellator.java
        │           │   │   ├── TransformGroup.java
        │           │   │   └── TransformGroupBone.java
        │           │   └── util/
        │           │       ├── FlansKeyConflictContext.java
        │           │       └── WorldRenderer.java
        │           ├── common/
        │           │   ├── BlockFlansWorkbench.java
        │           │   ├── BlockItemHolder.java
        │           │   ├── CommonGuiHandler.java
        │           │   ├── CommonProxy.java
        │           │   ├── CommonTickHandler.java
        │           │   ├── ContentManager.java
        │           │   ├── CraftingInstance.java
        │           │   ├── CreativeTabFlan.java
        │           │   ├── EntityItemCustomRender.java
        │           │   ├── FlansHooks.java
        │           │   ├── FlansMod.java
        │           │   ├── FlansModExplosion.java
        │           │   ├── IFlansModContentProvider.java
        │           │   ├── ItemBlockManyNames.java
        │           │   ├── ItemHolderType.java
        │           │   ├── ModuloHelper.java
        │           │   ├── PlayerData.java
        │           │   ├── PlayerHandler.java
        │           │   ├── RotatedAxes.java
        │           │   ├── TileEntityItemHolder.java
        │           │   ├── driveables/
        │           │   │   ├── CollisionBox.java
        │           │   │   ├── CollisionSurface.java
        │           │   │   ├── ContainerDriveableInventory.java
        │           │   │   ├── ContainerDriveableMenu.java
        │           │   │   ├── DriveableData.java
        │           │   │   ├── DriveablePart.java
        │           │   │   ├── DriveablePosition.java
        │           │   │   ├── DriveableType.java
        │           │   │   ├── EntityDamageSourceCollision.java
        │           │   │   ├── EntityDriveable.java
        │           │   │   ├── EntityPlane.java
        │           │   │   ├── EntitySeat.java
        │           │   │   ├── EntityVehicle.java
        │           │   │   ├── EntityWheel.java
        │           │   │   ├── EnumDriveablePart.java
        │           │   │   ├── EnumPlaneMode.java
        │           │   │   ├── EnumWeaponType.java
        │           │   │   ├── ItemPlane.java
        │           │   │   ├── ItemVehicle.java
        │           │   │   ├── PilotGun.java
        │           │   │   ├── PlaneType.java
        │           │   │   ├── Propeller.java
        │           │   │   ├── Seat.java
        │           │   │   ├── ShootPoint.java
        │           │   │   ├── VehicleType.java
        │           │   │   ├── collisions/
        │           │   │   │   ├── CollisionPlane.java
        │           │   │   │   ├── CollisionShapeBox.java
        │           │   │   │   ├── CollisionTest.java
        │           │   │   │   └── RidingEntityPosition.java
        │           │   │   └── mechas/
        │           │   │       ├── ContainerMechaInventory.java
        │           │   │       ├── EntityMecha.java
        │           │   │       ├── EnumMechaItemType.java
        │           │   │       ├── EnumMechaSlotType.java
        │           │   │       ├── EnumMechaToolType.java
        │           │   │       ├── ItemMecha.java
        │           │   │       ├── ItemMechaAddon.java
        │           │   │       ├── MechaInventory.java
        │           │   │       ├── MechaItemType.java
        │           │   │       ├── MechaType.java
        │           │   │       └── SlotMecha.java
        │           │   ├── enchantments/
        │           │   │   ├── EnchantmentDuelist.java
        │           │   │   ├── EnchantmentJuggernaut.java
        │           │   │   ├── EnchantmentLumberjack.java
        │           │   │   ├── EnchantmentModule.java
        │           │   │   ├── EnchantmentNimble.java
        │           │   │   ├── EnchantmentSharpshooter.java
        │           │   │   ├── EnchantmentSteady.java
        │           │   │   ├── GloveType.java
        │           │   │   └── ItemGlove.java
        │           │   ├── eventhandlers/
        │           │   │   └── PlayerDeathEventListener.java
        │           │   ├── guns/
        │           │   │   ├── AAGunType.java
        │           │   │   ├── AttachmentType.java
        │           │   │   ├── BulletType.java
        │           │   │   ├── ContainerGunModTable.java
        │           │   │   ├── EntityAAGun.java
        │           │   │   ├── EntityBullet.java
        │           │   │   ├── EntityDamageSourceFlan.java
        │           │   │   ├── EntityGrenade.java
        │           │   │   ├── EntityMG.java
        │           │   │   ├── EntityShootable.java
        │           │   │   ├── EnumAttachmentType.java
        │           │   │   ├── EnumFireMode.java
        │           │   │   ├── EnumSecondaryFunction.java
        │           │   │   ├── EnumSpreadPattern.java
        │           │   │   ├── FireableGun.java
        │           │   │   ├── FiredShot.java
        │           │   │   ├── GrenadeType.java
        │           │   │   ├── GunType.java
        │           │   │   ├── IScope.java
        │           │   │   ├── InventoryGunModTable.java
        │           │   │   ├── InventoryHelper.java
        │           │   │   ├── ItemAAGun.java
        │           │   │   ├── ItemAttachment.java
        │           │   │   ├── ItemBullet.java
        │           │   │   ├── ItemGrenade.java
        │           │   │   ├── ItemGun.java
        │           │   │   ├── ItemShootable.java
        │           │   │   ├── Paintjob.java
        │           │   │   ├── ShootBulletHandler.java
        │           │   │   ├── ShootableType.java
        │           │   │   ├── ShotHandler.java
        │           │   │   ├── SlotGun.java
        │           │   │   ├── boxes/
        │           │   │   │   ├── BlockGunBox.java
        │           │   │   │   ├── BoxType.java
        │           │   │   │   ├── ContainerGunBox.java
        │           │   │   │   └── GunBoxType.java
        │           │   │   └── raytracing/
        │           │   │       ├── EnumHitboxType.java
        │           │   │       ├── FlansModRaytracer.java
        │           │   │       ├── PlayerHitbox.java
        │           │   │       └── PlayerSnapshot.java
        │           │   ├── network/
        │           │   │   ├── PacketAAGunAngles.java
        │           │   │   ├── PacketAddSingleRewardBoxInstance.java
        │           │   │   ├── PacketBase.java
        │           │   │   ├── PacketBaseEdit.java
        │           │   │   ├── PacketBlockHitEffect.java
        │           │   │   ├── PacketBreakSound.java
        │           │   │   ├── PacketBulletTrail.java
        │           │   │   ├── PacketBuyArmour.java
        │           │   │   ├── PacketBuyWeapon.java
        │           │   │   ├── PacketCraftDriveable.java
        │           │   │   ├── PacketDriveableControl.java
        │           │   │   ├── PacketDriveableDamage.java
        │           │   │   ├── PacketDriveableGUI.java
        │           │   │   ├── PacketDriveableKey.java
        │           │   │   ├── PacketDriveableKeyHeld.java
        │           │   │   ├── PacketFlak.java
        │           │   │   ├── PacketGunAnimation.java
        │           │   │   ├── PacketGunFire.java
        │           │   │   ├── PacketGunPaint.java
        │           │   │   ├── PacketHandler.java
        │           │   │   ├── PacketHitMarker.java
        │           │   │   ├── PacketKillMessage.java
        │           │   │   ├── PacketLoadoutData.java
        │           │   │   ├── PacketMGFire.java
        │           │   │   ├── PacketMGMount.java
        │           │   │   ├── PacketMechaControl.java
        │           │   │   ├── PacketOpenRewardBox.java
        │           │   │   ├── PacketPlaneControl.java
        │           │   │   ├── PacketPlaySound.java
        │           │   │   ├── PacketReload.java
        │           │   │   ├── PacketRepairDriveable.java
        │           │   │   ├── PacketRequestDebug.java
        │           │   │   ├── PacketRoundFinished.java
        │           │   │   ├── PacketSeatUpdates.java
        │           │   │   ├── PacketTeamInfo.java
        │           │   │   ├── PacketTeamSelect.java
        │           │   │   ├── PacketVehicleControl.java
        │           │   │   ├── PacketVoteCast.java
        │           │   │   └── PacketVoting.java
        │           │   ├── paintjob/
        │           │   │   ├── BlockPaintjobTable.java
        │           │   │   ├── ContainerPaintjobTable.java
        │           │   │   ├── IPaintableItem.java
        │           │   │   ├── PaintableType.java
        │           │   │   └── TileEntityPaintjobTable.java
        │           │   ├── parts/
        │           │   │   ├── EnumPartCategory.java
        │           │   │   ├── ItemPart.java
        │           │   │   └── PartType.java
        │           │   ├── teams/
        │           │   │   ├── ArmourBoxType.java
        │           │   │   ├── ArmourType.java
        │           │   │   ├── BlockArmourBox.java
        │           │   │   ├── BlockSpawner.java
        │           │   │   ├── CommandTeams.java
        │           │   │   ├── EntityConnectingLine.java
        │           │   │   ├── EntityFlag.java
        │           │   │   ├── EntityFlagpole.java
        │           │   │   ├── EntityGunItem.java
        │           │   │   ├── EntityTeamItem.java
        │           │   │   ├── Gametype.java
        │           │   │   ├── GametypeCTF.java
        │           │   │   ├── GametypeDM.java
        │           │   │   ├── GametypeTDM.java
        │           │   │   ├── GametypeZombies.java
        │           │   │   ├── IPlayerClass.java
        │           │   │   ├── ITeamBase.java
        │           │   │   ├── ITeamObject.java
        │           │   │   ├── ItemFlagpole.java
        │           │   │   ├── ItemOpStick.java
        │           │   │   ├── ItemRewardBox.java
        │           │   │   ├── ItemTeamArmour.java
        │           │   │   ├── LoadoutPool.java
        │           │   │   ├── PermanentBaseData.java
        │           │   │   ├── PlayerClass.java
        │           │   │   ├── PlayerClassCustom.java
        │           │   │   ├── PlayerLoadout.java
        │           │   │   ├── PlayerRankData.java
        │           │   │   ├── RewardBox.java
        │           │   │   ├── RewardBoxInstance.java
        │           │   │   ├── RoundFinishedData.java
        │           │   │   ├── Team.java
        │           │   │   ├── TeamsManager.java
        │           │   │   ├── TeamsManagerClassic.java
        │           │   │   ├── TeamsManagerRanked.java
        │           │   │   ├── TeamsMap.java
        │           │   │   ├── TeamsRound.java
        │           │   │   └── TileEntitySpawner.java
        │           │   ├── tools/
        │           │   │   ├── EntityParachute.java
        │           │   │   ├── ItemTool.java
        │           │   │   └── ToolType.java
        │           │   ├── types/
        │           │   │   ├── EnumPaintjobRarity.java
        │           │   │   ├── EnumType.java
        │           │   │   ├── IFlanItem.java
        │           │   │   ├── InfoType.java
        │           │   │   └── TypeFile.java
        │           │   ├── util/
        │           │   │   └── BlockUtil.java
        │           │   └── vector/
        │           │       ├── Matrix.java
        │           │       ├── Matrix2f.java
        │           │       ├── Matrix3f.java
        │           │       ├── Matrix4f.java
        │           │       ├── ReadableVector.java
        │           │       ├── ReadableVector2f.java
        │           │       ├── ReadableVector3f.java
        │           │       ├── ReadableVector4f.java
        │           │       ├── Vector.java
        │           │       ├── Vector2f.java
        │           │       ├── Vector3f.java
        │           │       ├── Vector3i.java
        │           │       ├── Vector4f.java
        │           │       ├── WritableVector2f.java
        │           │       ├── WritableVector3f.java
        │           │       └── WritableVector4f.java
        │           ├── mechaparts/
        │           │   └── common/
        │           │       └── MechaPartsPackMod.java
        │           ├── modernweapons/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── Model1887.java
        │           │   │       ├── Model2xScope.java
        │           │   │       ├── Model4xScope.java
        │           │   │       ├── Model8xScope.java
        │           │   │       ├── ModelA10.java
        │           │   │       ├── ModelA91.java
        │           │   │       ├── ModelAA12.java
        │           │   │       ├── ModelACOG.java
        │           │   │       ├── ModelACR.java
        │           │   │       ├── ModelADAR15.java
        │           │   │       ├── ModelAK47.java
        │           │   │       ├── ModelAK74.java
        │           │   │       ├── ModelAN94.java
        │           │   │       ├── ModelASH12.java
        │           │   │       ├── ModelAT4.java
        │           │   │       ├── ModelAUG.java
        │           │   │       ├── ModelAbrams.java
        │           │   │       ├── ModelAmmoBag.java
        │           │   │       ├── ModelApacheAH64.java
        │           │   │       ├── ModelB4CrossBow.java
        │           │   │       ├── ModelB52.java
        │           │   │       ├── ModelBarrett.java
        │           │   │       ├── ModelBinoculars.java
        │           │   │       ├── ModelBizon.java
        │           │   │       ├── ModelBlackHawk.java
        │           │   │       ├── ModelBlackHawkUH60.java
        │           │   │       ├── ModelBulletFlash1.java
        │           │   │       ├── ModelC4.java
        │           │   │       ├── ModelChallengerII.java
        │           │   │       ├── ModelCharmBase.java
        │           │   │       ├── ModelCharmBasePanel.java
        │           │   │       ├── ModelCharmBaseSight.java
        │           │   │       ├── ModelChinook.java
        │           │   │       ├── ModelClaymore.java
        │           │   │       ├── ModelCloakerGoggles.java
        │           │   │       ├── ModelCobra.java
        │           │   │       ├── ModelColdWarE2.java
        │           │   │       ├── ModelDeployableBag.java
        │           │   │       ├── ModelDesertEagle.java
        │           │   │       ├── ModelDevotionX55.java
        │           │   │       ├── ModelDragunov.java
        │           │   │       ├── ModelEC665.java
        │           │   │       ├── ModelEMP4.java
        │           │   │       ├── ModelElDiablo.java
        │           │   │       ├── ModelExecutioner.java
        │           │   │       ├── ModelExoskeletonBody.java
        │           │   │       ├── ModelExoskeletonBoots.java
        │           │   │       ├── ModelExoskeletonHelmet.java
        │           │   │       ├── ModelExoskeletonLegs.java
        │           │   │       ├── ModelF22.java
        │           │   │       ├── ModelFAMAS.java
        │           │   │       ├── ModelFMG.java
        │           │   │       ├── ModelFNSCAR.java
        │           │   │       ├── ModelFS10.java
        │           │   │       ├── ModelFlamethrower.java
        │           │   │       ├── ModelFlareGun.java
        │           │   │       ├── ModelFlashlight.java
        │           │   │       ├── ModelForegrip.java
        │           │   │       ├── ModelG3.java
        │           │   │       ├── ModelG36.java
        │           │   │       ├── ModelGAU19.java
        │           │   │       ├── ModelGL1.java
        │           │   │       ├── ModelGL6.java
        │           │   │       ├── ModelGalil.java
        │           │   │       ├── ModelGlock.java
        │           │   │       ├── ModelHCAR.java
        │           │   │       ├── ModelHCOG.java
        │           │   │       ├── ModelHESatchel.java
        │           │   │       ├── ModelHK416.java
        │           │   │       ├── ModelHind.java
        │           │   │       ├── ModelHindMI24.java
        │           │   │       ├── ModelHoneyBadger.java
        │           │   │       ├── ModelHumvee.java
        │           │   │       ├── ModelJudge.java
        │           │   │       ├── ModelJury.java
        │           │   │       ├── ModelKCASmart50.java
        │           │   │       ├── ModelKCASmartcarbine.java
        │           │   │       ├── ModelKCASmartpistol.java
        │           │   │       ├── ModelKCAWolverineIV.java
        │           │   │       ├── ModelKrissVector.java
        │           │   │       ├── ModelL86.java
        │           │   │       ├── ModelL96.java
        │           │   │       ├── ModelLDCIGScope.java
        │           │   │       ├── ModelLeopard2A6.java
        │           │   │       ├── ModelLittleBird.java
        │           │   │       ├── ModelLittleBirdMH6.java
        │           │   │       ├── ModelLongBarrel.java
        │           │   │       ├── ModelM1014.java
        │           │   │       ├── ModelM14.java
        │           │   │       ├── ModelM16A4.java
        │           │   │       ├── ModelM1911.java
        │           │   │       ├── ModelM21.java
        │           │   │       ├── ModelM249.java
        │           │   │       ├── ModelM40A3.java
        │           │   │       ├── ModelM60E4.java
        │           │   │       ├── ModelM72LAW.java
        │           │   │       ├── ModelM9.java
        │           │   │       ├── ModelMIM23.java
        │           │   │       ├── ModelMIM23Rocket.java
        │           │   │       ├── ModelMLRS6.java
        │           │   │       ├── ModelMP5.java
        │           │   │       ├── ModelMP7.java
        │           │   │       ├── ModelMTAR.java
        │           │   │       ├── ModelMWParachute.java
        │           │   │       ├── ModelMakarov.java
        │           │   │       ├── ModelMastiff1218.java
        │           │   │       ├── ModelMedicBag.java
        │           │   │       ├── ModelMiniUzi.java
        │           │   │       ├── ModelMinigun.java
        │           │   │       ├── ModelMolotov.java
        │           │   │       ├── ModelMuzzleBreak.java
        │           │   │       ├── ModelNTW20.java
        │           │   │       ├── ModelP90.java
        │           │   │       ├── ModelPAW20.java
        │           │   │       ├── ModelPanzerfaust3.java
        │           │   │       ├── ModelPeaceKeeper.java
        │           │   │       ├── ModelPistolFlashlight.java
        │           │   │       ├── ModelPr3.java
        │           │   │       ├── ModelPredator37mm.java
        │           │   │       ├── ModelProximityMine.java
        │           │   │       ├── ModelQuickReloadGrip.java
        │           │   │       ├── ModelR700.java
        │           │   │       ├── ModelR870.java
        │           │   │       ├── ModelRPD.java
        │           │   │       ├── ModelRPG.java
        │           │   │       ├── ModelRPGRocket.java
        │           │   │       ├── ModelRPK.java
        │           │   │       ├── ModelRaptorF22.java
        │           │   │       ├── ModelRedDot.java
        │           │   │       ├── ModelRiotShield.java
        │           │   │       ├── ModelRocket.java
        │           │   │       ├── ModelRoundGrenade.java
        │           │   │       ├── ModelSG550.java
        │           │   │       ├── ModelSIGP226.java
        │           │   │       ├── ModelSIGP232.java
        │           │   │       ├── ModelSPAS.java
        │           │   │       ├── ModelSU25.java
        │           │   │       ├── ModelSentryGun.java
        │           │   │       ├── ModelShockAbsorbentStock.java
        │           │   │       ├── ModelSideWinder7.java
        │           │   │       ├── ModelSilencer.java
        │           │   │       ├── ModelSkorpion.java
        │           │   │       ├── ModelStinger.java
        │           │   │       ├── ModelStingerMissile.java
        │           │   │       ├── ModelSuperHeavyBoots.java
        │           │   │       ├── ModelSuperHeavyChest.java
        │           │   │       ├── ModelSuperHeavyHelmet.java
        │           │   │       ├── ModelSuperHeavyLegs.java
        │           │   │       ├── ModelT90.java
        │           │   │       ├── ModelTiger665.java
        │           │   │       ├── ModelTornado.java
        │           │   │       ├── ModelTornadoGR4.java
        │           │   │       ├── ModelTripleTake.java
        │           │   │       ├── ModelUSP.java
        │           │   │       ├── ModelUnderBarrelLaser.java
        │           │   │       ├── ModelVoltV3.java
        │           │   │       └── ModelW1200.java
        │           │   └── common/
        │           │       └── ModernWeaponsPackMod.java
        │           ├── nerf/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelDisc.java
        │           │   │       └── ModelVulcan.java
        │           │   └── common/
        │           │       └── NerfPackMod.java
        │           ├── simple/
        │           │   └── common/
        │           │       └── SimplePartsPackMod.java
        │           ├── steampunk/
        │           │   └── common/
        │           │       └── SteampunkPackMod.java
        │           ├── titan/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelCircularSaw.java
        │           │   │       ├── ModelDrill.java
        │           │   │       ├── ModelExcavator.java
        │           │   │       ├── ModelProtoTitan.java
        │           │   │       ├── ModelRocketPack.java
        │           │   │       └── ModelZeroTitan.java
        │           │   └── common/
        │           │       └── TitanPackMod.java
        │           ├── utility/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       └── ModelTunnelBore.java
        │           │   └── common/
        │           │       └── UtilityPackMod.java
        │           ├── ww2/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── Model105leFH18B2.java
        │           │   │       ├── Model50Cal.java
        │           │   │       ├── ModelAmericanBoots.java
        │           │   │       ├── ModelAmericanChest.java
        │           │   │       ├── ModelAmericanHelmet.java
        │           │   │       ├── ModelAmericanPants.java
        │           │   │       ├── ModelAmmoBag.java
        │           │   │       ├── ModelB1.java
        │           │   │       ├── ModelBAR.java
        │           │   │       ├── ModelBF109.java
        │           │   │       ├── ModelBMWR75.java
        │           │   │       ├── ModelBazooka.java
        │           │   │       ├── ModelBinoculars.java
        │           │   │       ├── ModelBofors.java
        │           │   │       ├── ModelBren.java
        │           │   │       ├── ModelBrowning.java
        │           │   │       ├── ModelC96.java
        │           │   │       ├── ModelCamel.java
        │           │   │       ├── ModelChaffee.java
        │           │   │       ├── ModelChiHa.java
        │           │   │       ├── ModelChiNu.java
        │           │   │       ├── ModelChurchill.java
        │           │   │       ├── ModelColt.java
        │           │   │       ├── ModelCromwell.java
        │           │   │       ├── ModelCrusader.java
        │           │   │       ├── ModelDP28.java
        │           │   │       ├── ModelFg42.java
        │           │   │       ├── ModelFlak88.java
        │           │   │       ├── ModelFlakvierling.java
        │           │   │       ├── ModelFlamethrower.java
        │           │   │       ├── ModelFokker.java
        │           │   │       ├── ModelFragGrenade.java
        │           │   │       ├── ModelFragGrenade2.java
        │           │   │       ├── ModelFury.java
        │           │   │       ├── ModelG43.java
        │           │   │       ├── ModelGermanBoots.java
        │           │   │       ├── ModelGermanChest.java
        │           │   │       ├── ModelGermanHelmet.java
        │           │   │       ├── ModelGermanPants.java
        │           │   │       ├── ModelGothaGV.java
        │           │   │       ├── ModelGreaseGun.java
        │           │   │       ├── ModelGreyhound.java
        │           │   │       ├── ModelHellcat.java
        │           │   │       ├── ModelIS2.java
        │           │   │       ├── ModelJeep.java
        │           │   │       ├── ModelKV1.java
        │           │   │       ├── ModelKar98k.java
        │           │   │       ├── ModelKar98kSniper.java
        │           │   │       ├── ModelKubel.java
        │           │   │       ├── ModelLancaster.java
        │           │   │       ├── ModelLeeenfield.java
        │           │   │       ├── ModelLeeenfieldS.java
        │           │   │       ├── ModelLuchs.java
        │           │   │       ├── ModelLuger.java
        │           │   │       ├── ModelM10.java
        │           │   │       ├── ModelM157MM.java
        │           │   │       ├── ModelM1Carbine.java
        │           │   │       ├── ModelM1Garand.java
        │           │   │       ├── ModelM3A1GreaseGun.java
        │           │   │       ├── ModelM3Halftrack.java
        │           │   │       ├── ModelM45Quad.java
        │           │   │       ├── ModelM8Smoke.java
        │           │   │       ├── ModelMG34.java
        │           │   │       ├── ModelMG42.java
        │           │   │       ├── ModelMaus.java
        │           │   │       ├── ModelMine.java
        │           │   │       ├── ModelMosin.java
        │           │   │       ├── ModelMosinSniper.java
        │           │   │       ├── ModelMp40.java
        │           │   │       ├── ModelMp44.java
        │           │   │       ├── ModelMustang.java
        │           │   │       ├── ModelPIAT.java
        │           │   │       ├── ModelPPSH.java
        │           │   │       ├── ModelPak40.java
        │           │   │       ├── ModelPanzer.java
        │           │   │       ├── ModelPanzerIILuchs.java
        │           │   │       ├── ModelPanzerfaust.java
        │           │   │       ├── ModelPanzerschreck.java
        │           │   │       ├── ModelS100.java
        │           │   │       ├── ModelSASJeep.java
        │           │   │       ├── ModelSTG44.java
        │           │   │       ├── ModelSU112.java
        │           │   │       ├── ModelSdkFz2.java
        │           │   │       ├── ModelSdkFz222.java
        │           │   │       ├── ModelSdkFz251.java
        │           │   │       ├── ModelSherman.java
        │           │   │       ├── ModelSpitfire.java
        │           │   │       ├── ModelSpringfield.java
        │           │   │       ├── ModelSpringfieldSniper.java
        │           │   │       ├── ModelSten.java
        │           │   │       ├── ModelStickGrenade.java
        │           │   │       ├── ModelStickGrenade2.java
        │           │   │       ├── ModelStuG.java
        │           │   │       ├── ModelT34.java
        │           │   │       ├── ModelT3485.java
        │           │   │       ├── ModelTT33.java
        │           │   │       ├── ModelThompson.java
        │           │   │       ├── ModelTiger.java
        │           │   │       ├── ModelTiger131.java
        │           │   │       ├── ModelTigerII.java
        │           │   │       ├── ModelTrenchgun.java
        │           │   │       ├── ModelType100.java
        │           │   │       ├── ModelType14.java
        │           │   │       ├── ModelType38.java
        │           │   │       ├── ModelType38sniper.java
        │           │   │       ├── ModelType4HoRo.java
        │           │   │       ├── ModelType99.java
        │           │   │       ├── ModelUC2Pdr.java
        │           │   │       ├── ModelWW2Parachute.java
        │           │   │       ├── ModelWebley.java
        │           │   │       ├── ModelYak9.java
        │           │   │       ├── ModelZF4Scope.java
        │           │   │       ├── ModelZero.java
        │           │   │       ├── Modelvickersk.java
        │           │   │       └── ModelvickerskGO.java
        │           │   └── common/
        │           │       └── WW2PackMod.java
        │           ├── yeolde/
        │           │   ├── client/
        │           │   │   └── model/
        │           │   │       ├── ModelArrow.java
        │           │   │       ├── ModelBiplane.java
        │           │   │       ├── ModelNetherGrip.java
        │           │   │       ├── ModelRock.java
        │           │   │       └── ModelTwoSeatBiplane.java
        │           │   └── common/
        │           │       └── YeOldePackMod.java
        │           └── zombie/
        │               ├── client/
        │               │   └── model/
        │               │       ├── ModelApron.java
        │               │       ├── ModelBaseballBat.java
        │               │       ├── ModelBearTrap.java
        │               │       ├── ModelCoat.java
        │               │       ├── ModelColtPython.java
        │               │       ├── ModelCombatKnife.java
        │               │       ├── ModelDoubleBarrelledShotgun.java
        │               │       ├── ModelDustbinLidChestplate.java
        │               │       ├── ModelFlareGun.java
        │               │       ├── ModelFleshLump.java
        │               │       ├── ModelGlock17.java
        │               │       ├── ModelM4Carbine.java
        │               │       ├── ModelMP5K.java
        │               │       ├── ModelMachete.java
        │               │       ├── ModelOlympia.java
        │               │       ├── ModelPanHelmet.java
        │               │       ├── ModelPoliceHat.java
        │               │       ├── ModelRiotShield.java
        │               │       ├── ModelSamuraiSword.java
        │               │       ├── ModelScrewdriver.java
        │               │       ├── ModelSledgehammer.java
        │               │       ├── ModelSurgicalAxe.java
        │               │       └── ModelWinchesterModel70.java
        │               └── common/
        │                   └── ZombiePackMod.java
        └── resources/
            ├── LICENSE.txt
            ├── RedstoneFlux API - LICENSE - LGPLv3.txt
            ├── assets/
            │   ├── flansmod/
            │   │   ├── blockstates/
            │   │   │   ├── flansworkbench.json
            │   │   │   ├── gunpowderblock.json
            │   │   │   ├── paintjobtable.json
            │   │   │   └── teamsspawner.json
            │   │   ├── lang/
            │   │   │   ├── de_de.lang
            │   │   │   ├── en_us.lang
            │   │   │   ├── es_es.lang
            │   │   │   ├── fr_fr.lang
            │   │   │   ├── pl_pl.lang
            │   │   │   ├── pt_br.lang
            │   │   │   ├── ru_ru.lang
            │   │   │   ├── zh_TW.lang
            │   │   │   └── zh_cn.lang
            │   │   ├── models/
            │   │   │   ├── block/
            │   │   │   │   ├── flansworkbench_guns.json
            │   │   │   │   ├── flansworkbench_parts.json
            │   │   │   │   ├── flansworkbench_vehicles.json
            │   │   │   │   ├── gunpowderblock.json
            │   │   │   │   ├── paintjobtable.json
            │   │   │   │   ├── teamsspawner_items.json
            │   │   │   │   ├── teamsspawner_players.json
            │   │   │   │   └── teamsspawner_vehicles.json
            │   │   │   └── item/
            │   │   │       ├── crosshairsymbol.json
            │   │   │       ├── custom.json
            │   │   │       ├── flagpole.json
            │   │   │       ├── flansworkbench_guns.json
            │   │   │       ├── flansworkbench_item.json
            │   │   │       ├── flansworkbench_parts.json
            │   │   │       ├── flansworkbench_vehicles.json
            │   │   │       ├── gunpowderblock.json
            │   │   │       ├── opstick.json
            │   │   │       ├── opstick_connecting.json
            │   │   │       ├── opstick_destruction.json
            │   │   │       ├── opstick_mapping.json
            │   │   │       ├── opstick_ownership.json
            │   │   │       ├── paintjobtable.json
            │   │   │       ├── rainbowpaintcan.json
            │   │   │       ├── teamsspawner_items.json
            │   │   │       ├── teamsspawner_players.json
            │   │   │       └── teamsspawner_vehicles.json
            │   │   ├── sounds/
            │   │   │   ├── skullboss_laugh.ogg
            │   │   │   ├── skullboss_spawn.ogg
            │   │   │   └── unlocknotch.ogg
            │   │   └── sounds.json
            │   └── flansmodapocalypse/
            │       ├── blockstates/
            │       │   ├── blocklabstone.json
            │       │   ├── blockpowercube.json
            │       │   ├── blocksulphur.json
            │       │   └── blocksulphuricacid.json
            │       ├── lang/
            │       │   ├── en_us.lang
            │       │   ├── fr_fr.lang
            │       │   └── ru_ru.lang
            │       ├── models/
            │       │   ├── block/
            │       │   │   ├── blocklabstone.json
            │       │   │   ├── blockpowercube.json
            │       │   │   ├── blocksulphur.json
            │       │   │   └── blocksulphuricacid.json
            │       │   └── item/
            │       │       ├── blocklabstone.json
            │       │       ├── blockpowercube.json
            │       │       ├── blocksulphur.json
            │       │       ├── blocksulphuricacid.json
            │       │       └── flansulphur.json
            │       └── textures/
            │           └── blocks/
            │               ├── sulphuricacidflowing.png.mcmeta
            │               └── sulphuricacidstill.png.mcmeta
            ├── mcmod.info
            └── pack.mcmeta
Download .txt
Showing preview only (393K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4670 symbols across 702 files)

FILE: src/main/java/com/flansmod/api/IControllable.java
  type IControllable (line 11) | public interface IControllable
    method onMouseMoved (line 19) | void onMouseMoved(int deltaX, int deltaY);
    method pressKey (line 25) | boolean pressKey(int key, EntityPlayer player, boolean isOnEvent);
    method serverHandleKeyPress (line 27) | boolean serverHandleKeyPress(int key, EntityPlayer player);
    method updateKeyHeldState (line 29) | void updateKeyHeldState(int key, boolean held);
    method getControllingEntity (line 34) | Entity getControllingEntity();
    method isDead (line 36) | boolean isDead();
    method getPlayerRoll (line 41) | float getPlayerRoll();
    method getPrevPlayerRoll (line 43) | float getPrevPlayerRoll();
    method getCameraDistance (line 48) | float getCameraDistance();
    method getCamera (line 50) | @SideOnly(Side.CLIENT)
    method getSeat (line 53) | EntitySeat getSeat(EntityLivingBase living);

FILE: src/main/java/com/flansmod/api/IExplodeable.java
  type IExplodeable (line 9) | public interface IExplodeable
    method explode (line 14) | void explode();

FILE: src/main/java/com/flansmod/apocalypse/client/ClientProxyApocalypse.java
  class ClientProxyApocalypse (line 52) | public class ClientProxyApocalypse extends CommonProxyApocalypse
    method preInit (line 58) | @Override
    method init (line 76) | @Override
    method postInit (line 84) | @Override
    method registerSoundEvents (line 90) | @SubscribeEvent
    method updateApocalypseCountdownTimer (line 98) | public static void updateApocalypseCountdownTimer(int i)
    method registerModels (line 103) | @SubscribeEvent
    method tick (line 122) | @SubscribeEvent
    method tick (line 137) | @SubscribeEvent
    method eventHandler (line 146) | @SubscribeEvent

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelBuggy.java
  class ModelBuggy (line 12) | public class ModelBuggy extends ModelVehicle //Same as Filename
    method ModelBuggy (line 17) | public ModelBuggy() //Same as Filename

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelGroundSkeleton.java
  class ModelGroundSkeleton (line 11) | public class ModelGroundSkeleton extends ModelItemHolder
    method ModelGroundSkeleton (line 16) | public ModelGroundSkeleton()

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelGunRack.java
  class ModelGunRack (line 11) | public class ModelGunRack extends ModelItemHolder
    method ModelGunRack (line 16) | public ModelGunRack()

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelNukeDrop.java
  class ModelNukeDrop (line 7) | public class ModelNukeDrop extends ModelBase
    method ModelNukeDrop (line 13) | public ModelNukeDrop()
    method renderNuke (line 44) | public void renderNuke(float scale)
    method renderMushroomCloud (line 49) | public void renderMushroomCloud(float scale)
    method renderBall (line 54) | public void renderBall(float scale)

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelPowerCube.java
  class ModelPowerCube (line 11) | public class ModelPowerCube extends ModelBase
    method ModelPowerCube (line 18) | public ModelPowerCube()
    method render (line 75) | public void render()
    method renderPower (line 85) | public void renderPower()

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSkullBoss.java
  class ModelSkullBoss (line 7) | public class ModelSkullBoss extends ModelBase
    method ModelSkullBoss (line 12) | public ModelSkullBoss()
    method renderHead (line 23) | public void renderHead(float scale)
    method renderJaw (line 28) | public void renderJaw(float scale)

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSkullDrone.java
  class ModelSkullDrone (line 13) | public class ModelSkullDrone extends ModelBase
    method ModelSkullDrone (line 28) | public ModelSkullDrone()
    method renderBase (line 57) | public void renderBase(float scale)
    method renderPropeller (line 63) | public void renderPropeller(float scale)

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelSlumpedSkeleton.java
  class ModelSlumpedSkeleton (line 11) | public class ModelSlumpedSkeleton extends ModelItemHolder
    method ModelSlumpedSkeleton (line 16) | public ModelSlumpedSkeleton()

FILE: src/main/java/com/flansmod/apocalypse/client/model/ModelTeleporter.java
  class ModelTeleporter (line 7) | public class ModelTeleporter extends ModelBase
    method ModelTeleporter (line 11) | public ModelTeleporter()
    method render (line 19) | public void render(float f)

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderFakePlayer.java
  class RenderFakePlayer (line 14) | public class RenderFakePlayer extends RenderBiped<EntityFakePlayer>
    method RenderFakePlayer (line 18) | public RenderFakePlayer(RenderManager man, ModelBiped model, float f)
    method getEntityTexture (line 25) | protected ResourceLocation getEntityTexture(EntityFakePlayer entity)
    class Factory (line 30) | public static class Factory implements IRenderFactory<EntityFakePlayer>
      method createRenderFor (line 32) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderNukeDrop.java
  class RenderNukeDrop (line 20) | public class RenderNukeDrop extends Render<EntityNukeDrop>
    method RenderNukeDrop (line 25) | public RenderNukeDrop(RenderManager rm)
    method render (line 32) | public void render(EntityNukeDrop entity, double x, double y, double z...
    method getEntityTexture (line 81) | @Override
    method renderWorld (line 87) | @SubscribeEvent
    class Factory (line 146) | public static class Factory implements IRenderFactory<EntityNukeDrop>
      method createRenderFor (line 148) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderPowerCube.java
  class RenderPowerCube (line 9) | public class RenderPowerCube extends TileEntitySpecialRenderer<TileEntit...
    method RenderPowerCube (line 14) | public RenderPowerCube()
    method render (line 19) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSkullBoss.java
  class RenderSkullBoss (line 21) | public class RenderSkullBoss extends Render<EntitySkullBoss>
    method RenderSkullBoss (line 26) | public RenderSkullBoss(RenderManager rm)
    method doRender (line 32) | public void doRender(EntitySkullBoss entity, double x, double y, doubl...
    method getEntityTexture (line 64) | @Override
    class Factory (line 70) | public static class Factory implements IRenderFactory<EntitySkullBoss>
      method createRenderFor (line 72) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSkullDrone.java
  class RenderSkullDrone (line 34) | public class RenderSkullDrone extends Render<EntitySkullDrone>
    method RenderSkullDrone (line 41) | public RenderSkullDrone(RenderManager rm)
    method doRender (line 48) | public void doRender(EntitySkullDrone entity, double x, double y, doub...
    method getEntityTexture (line 108) | @Override
    class Factory (line 114) | public static class Factory implements IRenderFactory<EntitySkullDrone>
      method createRenderFor (line 116) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderSurvivor.java
  class RenderSurvivor (line 14) | public class RenderSurvivor extends RenderBiped<EntitySurvivor>
    method RenderSurvivor (line 18) | public RenderSurvivor(RenderManager man, ModelBiped model, float f)
    method getEntityTexture (line 25) | protected ResourceLocation getEntityTexture(EntitySurvivor entity)
    class Factory (line 30) | public static class Factory implements IRenderFactory<EntitySurvivor>
      method createRenderFor (line 32) | @Override

FILE: src/main/java/com/flansmod/apocalypse/client/model/RenderTeleporter.java
  class RenderTeleporter (line 14) | public class RenderTeleporter extends Render<EntityTeleporter>
    method RenderTeleporter (line 20) | public RenderTeleporter(RenderManager renderManager)
    method doRender (line 26) | public void doRender(EntityTeleporter entity, double x, double y, doub...
    method getEntityTexture (line 66) | @Override
    class Factory (line 72) | public static class Factory implements IRenderFactory<EntityTeleporter>
      method createRenderFor (line 74) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/ApocalypseData.java
  class ApocalypseData (line 22) | public class ApocalypseData
    method worldData (line 29) | @SubscribeEvent
    method savePerWorldData (line 45) | private void savePerWorldData(WorldEvent event, World world)
    method loadPerWorldData (line 87) | private void loadPerWorldData(WorldEvent event, World world)

FILE: src/main/java/com/flansmod/apocalypse/common/CommonProxyApocalypse.java
  class CommonProxyApocalypse (line 49) | public class CommonProxyApocalypse
    method preInit (line 60) | public void preInit(FMLPreInitializationEvent event)
    method init (line 68) | public void init(FMLInitializationEvent event)
    method postInit (line 73) | public void postInit(FMLPostInitializationEvent event)
    method tick (line 81) | @SubscribeEvent
    method sendPlayerToApocalypse (line 208) | private void sendPlayerToApocalypse(EntityPlayer player)
    method giveStarterKit (line 228) | private void giveStarterKit(EntityPlayer player)
    method itemPlaced (line 236) | @SubscribeEvent
    method playerDied (line 255) | @SubscribeEvent
    method playerRespawned (line 269) | @SubscribeEvent
    method getApocalypseCountdown (line 296) | public int getApocalypseCountdown()
    method setApocalypseCountdown (line 301) | private void setApocalypseCountdown(int apocalypseCountdown)

FILE: src/main/java/com/flansmod/apocalypse/common/FlansModApocalypse.java
  class FlansModApocalypse (line 68) | @Mod(modid = FlansModApocalypse.MODID, name = "Flan's Mod: Apocalypse", ...
    method registerItems (line 144) | @SubscribeEvent
    method registerBlocks (line 153) | @SubscribeEvent
    method registerBiomes (line 162) | @SubscribeEvent
    method registerRecipes (line 174) | @SubscribeEvent
    method preInit (line 193) | @EventHandler
    method init (line 238) | @EventHandler
    method postInit (line 291) | @EventHandler
    method populateOverworldChunk (line 300) | @SubscribeEvent
    method registerEntities (line 313) | @SubscribeEvent
    method getLootGenerator (line 335) | public static FlansModLootGenerator getLootGenerator()
    method syncConfig (line 340) | public static void syncConfig()
    type TeleportOption (line 363) | public enum TeleportOption
      method getOption (line 367) | public static TeleportOption getOption(String s)
    method GetContentFolder (line 383) | @Override
    method RegisterModelRedirects (line 389) | @Override
    method TriggerBossFight (line 404) | public void TriggerBossFight(World world, EntityLivingBase placer)
    method UpdateBossFight (line 419) | public void UpdateBossFight(World world)

FILE: src/main/java/com/flansmod/apocalypse/common/FlansModLootGenerator.java
  class FlansModLootGenerator (line 49) | public class FlansModLootGenerator
    method FlansModLootGenerator (line 59) | public FlansModLootGenerator()
    method getRandomLoadedGun (line 114) | public ItemStack getRandomLoadedGun(Random rand, boolean explosivesAll...
    method getRandomUnloadedGun (line 139) | public ItemStack getRandomUnloadedGun(Random rand)
    method addRandomLoot (line 149) | public void addRandomLoot(TileEntityItemHolder holder, Random rand, bo...
    method fillVillageChest (line 160) | public void fillVillageChest(Random rand, TileEntityChest chest)
    method getRandomFuel (line 220) | public PartType getRandomFuel(Random rand)
    method loadAndPaintGun (line 226) | public ItemStack loadAndPaintGun(GunType gun, Random rand)
    method dressMeUp (line 249) | public void dressMeUp(EntityLivingBase entity, Random rand)
    method getRandomWeaponBox (line 286) | public Block getRandomWeaponBox(Random rand)
    method getRandomDriveable (line 308) | public DriveableType getRandomDriveable(Random rand)
    method getRandomEngine (line 321) | public PartType getRandomEngine(DriveableType type, Random rand)
    method getRandomPlane (line 332) | public PlaneType getRandomPlane(Random rand)
    method fillBrewingStand (line 339) | public void fillBrewingStand(Random rand, TileEntityBrewingStand tilee...
    method fillLiquidLabChest (line 346) | public void fillLiquidLabChest(Random rand, TileEntityChest chest)
    method fillWeaponChest (line 384) | public void fillWeaponChest(Random rand, TileEntityChest chest)
    method getRandomAmmo (line 405) | private ItemStack getRandomAmmo(Random rand)
    method getRandomAttachment (line 414) | private ItemStack getRandomAttachment(Random rand)
    method getRandomDungeonMecha (line 420) | public MechaType getRandomDungeonMecha(Random rand)
    method fillDyeFactoryChest (line 427) | public void fillDyeFactoryChest(TileEntityChest chest, Random rand)
    method getScientistJournal (line 453) | public ItemStack getScientistJournal(Random rand)
    method getSurvivorJournal (line 503) | public ItemStack getSurvivorJournal(Random rand)

FILE: src/main/java/com/flansmod/apocalypse/common/PropertyFloat.java
  class PropertyFloat (line 5) | public class PropertyFloat implements IUnlistedProperty<Float>
    method PropertyFloat (line 11) | public PropertyFloat(String name)
    method PropertyFloat (line 16) | public PropertyFloat(String name, float minValue, float maxValue)
    method getName (line 23) | @Override
    method isValid (line 29) | @Override
    method getType (line 35) | @Override
    method valueToString (line 41) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/blocks/BlockPowerCube.java
  class BlockPowerCube (line 23) | public class BlockPowerCube extends Block implements ITileEntityProvider
    method BlockPowerCube (line 25) | public BlockPowerCube(Material material)
    method createNewTileEntity (line 30) | @Override
    method shouldSideBeRendered (line 36) | public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, ...
    method canPlaceBlockAt (line 41) | @Override
    method isOpaqueCube (line 48) | @Override
    method getBoundingBox (line 56) | @Override
    method onBlockPlacedBy (line 62) | @Override
    method isPortal (line 104) | private boolean isPortal(World world, BlockPos pos)

FILE: src/main/java/com/flansmod/apocalypse/common/blocks/BlockStatic.java
  class BlockStatic (line 6) | public class BlockStatic extends Block
    method BlockStatic (line 8) | public BlockStatic(Material material)

FILE: src/main/java/com/flansmod/apocalypse/common/blocks/BlockSulphur.java
  class BlockSulphur (line 12) | public class BlockSulphur extends Block
    method BlockSulphur (line 14) | public BlockSulphur()
    method getItemDropped (line 19) | @Override
    method quantityDropped (line 25) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/blocks/BlockSulphuricAcid.java
  class BlockSulphuricAcid (line 18) | public class BlockSulphuricAcid extends BlockFluidClassic
    method BlockSulphuricAcid (line 22) | public BlockSulphuricAcid(Fluid fluid, Material material)
    method onEntityCollision (line 28) | @Override
    method registerRenderer (line 34) | @SideOnly(Side.CLIENT)

FILE: src/main/java/com/flansmod/apocalypse/common/blocks/TileEntityPowerCube.java
  class TileEntityPowerCube (line 6) | public class TileEntityPowerCube extends TileEntity implements ITickable
    method update (line 10) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityAIGoSomewhere.java
  class EntityAIGoSomewhere (line 8) | public class EntityAIGoSomewhere extends EntityAIBase
    method EntityAIGoSomewhere (line 18) | public EntityAIGoSomewhere(EntityCreature creature, double speed, doub...
    method shouldExecute (line 32) | public boolean shouldExecute()
    method startExecuting (line 54) | public void startExecuting()
    method continueExecuting (line 62) | public boolean continueExecuting()

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityAIMecha.java
  class EntityAIMecha (line 18) | public class EntityAIMecha extends EntityMecha
    method EntityAIMecha (line 26) | public EntityAIMecha(World world)
    method EntityAIMecha (line 31) | public EntityAIMecha(World world, double x, double y, double z, MechaT...
    method onUpdate (line 36) | public void onUpdate()
    method processInitialInteract (line 51) | @Override
    method moveAI (line 57) | @Override
    method creative (line 161) | @Override
    method isBetterTarget (line 167) | private boolean isBetterTarget(Entity currentTarget, double distToCurr...
    method hasFuel (line 174) | @Override
    method hasEnoughFuel (line 180) | @Override
    method attackEntityFrom (line 186) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityFakePlayer.java
  class EntityFakePlayer (line 11) | public class EntityFakePlayer extends EntityFlansModShooter
    method EntityFakePlayer (line 15) | public EntityFakePlayer(World world)
    method EntityFakePlayer (line 20) | public EntityFakePlayer(World world, EntityPlayer player)
    method dropFewItems (line 34) | @Override
    method readEntityFromNBT (line 47) | @Override
    method writeEntityToNBT (line 58) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityFlansModShooter.java
  class EntityFlansModShooter (line 51) | public class EntityFlansModShooter extends AbstractSkeleton
    class EntityAIAttackRangedGun (line 54) | public class EntityAIAttackRangedGun extends EntityAIAttackRangedBow<E...
      method EntityAIAttackRangedGun (line 58) | public EntityAIAttackRangedGun(EntityFlansModShooter mob, double mov...
      method isBowInMainhand (line 63) | @Override
    method EntityFlansModShooter (line 83) | public EntityFlansModShooter(World world)
    method initEntityAI (line 106) | protected void initEntityAI()
    method onUpdate (line 114) | @Override
    method getCreatureAttribute (line 122) | @Override
    method getBrightness (line 129) | @Override
    method applyEntityAttributes (line 135) | @Override
    method onInitialSpawn (line 143) | @Override
    method setCombatTask (line 157) | @Override
    method attackEntityWithRangedAttack (line 191) | @Override
    method reload (line 292) | public boolean reload(ItemStack gunStack, GunType gunType, World world...
    method shoot (line 361) | private void shoot(ItemStack stack, GunType gunType, World world, Item...
    method canDespawn (line 401) | @Override
    method isValidLightLevel (line 407) | @Override
    method getCanSpawnHere (line 413) | @Override
    method setSwingingArms (line 419) | @Override
    method getStepSound (line 424) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityFlyByPlane.java
  class EntityFlyByPlane (line 11) | public class EntityFlyByPlane extends EntityPlane
    method EntityFlyByPlane (line 13) | public EntityFlyByPlane(World world)
    method EntityFlyByPlane (line 18) | public EntityFlyByPlane(World world, double x, double y, double z, Pla...
    method onUpdate (line 23) | public void onUpdate()
    method getBiomeHeight (line 41) | private float getBiomeHeight(Biome biome)
    method canThrust (line 52) | @Override
    method hasFuel (line 58) | @Override
    method hasEnoughFuel (line 64) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityNukeDrop.java
  class EntityNukeDrop (line 12) | public class EntityNukeDrop extends Entity
    method EntityNukeDrop (line 17) | public EntityNukeDrop(World world)
    method EntityNukeDrop (line 30) | public EntityNukeDrop(World world, double x, double y, double z)
    method clientInit (line 36) | @SideOnly(Side.CLIENT)
    method entityInit (line 42) | @Override
    method readEntityFromNBT (line 48) | @Override
    method writeEntityToNBT (line 53) | @Override
    method onUpdate (line 59) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntitySkullBoss.java
  class EntitySkullBoss (line 35) | public class EntitySkullBoss extends EntityLiving
    type EnumAction (line 43) | public enum EnumAction
    method GetSpawnSpin (line 57) | public float GetSpawnSpin(float partialTicks)
    method GetLaughFactor (line 69) | public float GetLaughFactor(float partialTicks)
    method EntitySkullBoss (line 88) | public EntitySkullBoss(World worldIn)
    method applyEntityAttributes (line 99) | @Override
    method addTrackingPlayer (line 112) | @Override
    method removeTrackingPlayer (line 123) | @Override
    method SwitchAction (line 130) | private void SwitchAction(EnumAction action)
    method GetCurrentAction (line 136) | public EnumAction GetCurrentAction()
    method onUpdate (line 141) | @Override
    method SetTarget (line 308) | public void SetTarget(Entity target)
    method attackEntityFrom (line 313) | @Override
    method entityInit (line 351) | @Override
    method readEntityFromNBT (line 362) | @Override
    method writeEntityToNBT (line 370) | @Override
    method setDead (line 378) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntitySkullDrone.java
  class EntitySkullDrone (line 46) | public class EntitySkullDrone extends EntityLiving implements IInventory
    method EntitySkullDrone (line 58) | public EntitySkullDrone(World worldIn)
    method initAnimations (line 70) | @SideOnly(Side.CLIENT)
    method applyEntityAttributes (line 76) | @Override
    method updateClient (line 83) | @SideOnly(Side.CLIENT)
    method onUpdate (line 89) | @Override
    method UseGun (line 167) | private void UseGun()
    method DoShoot (line 222) | private void DoShoot(ItemStack stack, GunType gunType, ItemStack bulle...
    method SetTarget (line 261) | public void SetTarget(Entity entity)
    method attackEntityFrom (line 270) | @Override
    method entityInit (line 289) | @Override
    method readEntityFromNBT (line 296) | @Override
    method writeEntityToNBT (line 304) | @Override
    method getSizeInventory (line 315) | @Override
    method isEmpty (line 317) | @Override
    method getStackInSlot (line 319) | @Override
    method decrStackSize (line 321) | @Override
    method removeStackFromSlot (line 323) | @Override
    method setInventorySlotContents (line 325) | @Override
    method getInventoryStackLimit (line 327) | @Override
    method markDirty (line 329) | @Override
    method isUsableByPlayer (line 331) | @Override
    method openInventory (line 333) | @Override
    method closeInventory (line 335) | @Override
    method isItemValidForSlot (line 337) | @Override
    method getField (line 339) | @Override
    method setField (line 341) | @Override
    method getFieldCount (line 343) | @Override
    method clear (line 345) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntitySkuller.java
  class EntitySkuller (line 27) | public class EntitySkuller extends EntityShulker
    method EntitySkuller (line 32) | public EntitySkuller(World worldIn)
    method AssignRandomGun (line 37) | public void AssignRandomGun()
    method initEntityAI (line 43) | protected void initEntityAI()
    class AIAttack (line 54) | class AIAttack extends EntityAIBase
      method AIAttack (line 58) | public AIAttack()
      method shouldExecute (line 66) | public boolean shouldExecute()
      method startExecuting (line 83) | public void startExecuting()
      method resetTask (line 92) | public void resetTask()
      method updateTask (line 100) | public void updateTask()
    class AIAttackNearest (line 129) | class AIAttackNearest extends EntityAINearestAttackableTarget<EntityPl...
      method AIAttackNearest (line 131) | public AIAttackNearest(EntityShulker shulker)
      method shouldExecute (line 139) | public boolean shouldExecute()
      method getTargetableArea (line 144) | protected AxisAlignedBB getTargetableArea(double targetDistance)
    class AIDefenseAttack (line 159) | static class AIDefenseAttack extends EntityAINearestAttackableTarget<E...
      method AIDefenseAttack (line 161) | public AIDefenseAttack(EntityShulker shulker)
      method shouldExecute (line 175) | public boolean shouldExecute()
      method getTargetableArea (line 180) | protected AxisAlignedBB getTargetableArea(double targetDistance)
    class AIPeek (line 195) | class AIPeek extends EntityAIBase
      method AIPeek (line 199) | private AIPeek()
      method shouldExecute (line 206) | public boolean shouldExecute()
      method shouldContinueExecuting (line 214) | public boolean shouldContinueExecuting()
      method startExecuting (line 222) | public void startExecuting()
      method resetTask (line 231) | public void resetTask()
      method updateTask (line 242) | public void updateTask()
    class BodyHelper (line 248) | class BodyHelper extends EntityBodyHelper
      method BodyHelper (line 250) | public BodyHelper(EntityLivingBase theEntity)
      method updateRenderAngles (line 258) | public void updateRenderAngles()

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntitySurvivor.java
  class EntitySurvivor (line 19) | public class EntitySurvivor extends EntityFlansModShooter
    method EntitySurvivor (line 23) | public EntitySurvivor(World world)
    method initGunList (line 63) | private void initGunList()
    method dropFewItems (line 73) | protected void dropFewItems(boolean p_70628_1_, int p_70628_2_)

FILE: src/main/java/com/flansmod/apocalypse/common/entity/EntityTeleporter.java
  class EntityTeleporter (line 18) | public class EntityTeleporter extends Entity
    method EntityTeleporter (line 29) | public EntityTeleporter(World world)
    method EntityTeleporter (line 35) | public EntityTeleporter(World world, BlockPos pos)
    method onUpdate (line 42) | @Override
    method otherDimension (line 71) | private int otherDimension(int i)
    method onCollideWithPlayer (line 78) | @Override
    method findPortal (line 115) | private void findPortal(EntityPlayer player)
    method createPortal (line 182) | private boolean createPortal(World otherWorld, BlockPos pos)
    method entityInit (line 224) | @Override
    method readEntityFromNBT (line 230) | @Override
    method writeEntityToNBT (line 239) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/items/ItemSulphuricAcidBucket.java
  class ItemSulphuricAcidBucket (line 6) | public class ItemSulphuricAcidBucket extends ItemBucket
    method ItemSulphuricAcidBucket (line 8) | public ItemSulphuricAcidBucket(Block containedBlock)

FILE: src/main/java/com/flansmod/apocalypse/common/network/PacketApocalypseCountdown.java
  class PacketApocalypseCountdown (line 11) | public class PacketApocalypseCountdown extends PacketBase
    method PacketApocalypseCountdown (line 15) | public PacketApocalypseCountdown()
    method PacketApocalypseCountdown (line 20) | public PacketApocalypseCountdown(int timeRemaining)
    method encodeInto (line 25) | @Override
    method decodeInto (line 31) | @Override
    method handleServerSide (line 37) | @Override
    method handleClientSide (line 43) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/BiomeApocalypse.java
  class BiomeApocalypse (line 15) | public class BiomeApocalypse extends Biome
    method registerBiomes (line 20) | public static void registerBiomes()
    method addBiomes (line 41) | private static void addBiomes(Biome... biomes)
    method BiomeApocalypse (line 50) | public BiomeApocalypse(Biome.BiomeProperties properties)
    method genTerrainBlocks (line 65) | @Override
    method generateBiomeTerrainSandy (line 71) | public final void generateBiomeTerrainSandy(World world, Random rand, ...

FILE: src/main/java/com/flansmod/apocalypse/common/world/BiomeDecoratorApocalypse.java
  class BiomeDecoratorApocalypse (line 22) | public class BiomeDecoratorApocalypse extends BiomeDecorator
    method decorate (line 26) | public void decorate(World worldIn, Random random, Biome biome, BlockP...
    method genDecorations (line 53) | @Override
    method nextInt (line 306) | private int nextInt(Random randomGenerator, int i)

FILE: src/main/java/com/flansmod/apocalypse/common/world/BiomeDesertCanyon.java
  class BiomeDesertCanyon (line 6) | public class BiomeDesertCanyon extends BiomeApocalypse
    method BiomeDesertCanyon (line 10) | public BiomeDesertCanyon(Biome.BiomeProperties properties)
    method getSpawningChance (line 21) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/BiomeProviderApocalypse.java
  class BiomeProviderApocalypse (line 16) | public class BiomeProviderApocalypse extends BiomeProvider
    method BiomeProviderApocalypse (line 27) | public BiomeProviderApocalypse()
    method BiomeProviderApocalypse (line 38) | public BiomeProviderApocalypse(long par1, WorldType worldType)
    method BiomeProviderApocalypse (line 58) | public BiomeProviderApocalypse(World world)
    method getBiomesToSpawnIn (line 63) | @Override
    method getBiome (line 69) | @Override
    method getTemperatureAtHeight (line 113) | @Override
    method getBiomesForGeneration (line 119) | @Override
    method getBiomes (line 146) | @Override
    method areBiomesViable (line 180) | @Override
    method findBiomePosition (line 204) | @Override
    method cleanupCache (line 233) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/BiomeSulphurPits.java
  class BiomeSulphurPits (line 6) | public class BiomeSulphurPits extends BiomeApocalypse
    method BiomeSulphurPits (line 8) | public BiomeSulphurPits(Biome.BiomeProperties properties)

FILE: src/main/java/com/flansmod/apocalypse/common/world/ChunkProviderApocalypse.java
  class ChunkProviderApocalypse (line 41) | public class ChunkProviderApocalypse implements IChunkGenerator
    method ChunkProviderApocalypse (line 90) | public ChunkProviderApocalypse(World worldIn, long seed, boolean mapFe...
    method setBlocksInChunk (line 133) | public void setBlocksInChunk(int x, int z, ChunkPrimer primer)
    method replaceBiomeBlocks (line 198) | public void replaceBiomeBlocks(int x, int z, ChunkPrimer primer, Biome...
    method generateChunk (line 217) | public Chunk generateChunk(int x, int z)
    method generateHeightmap (line 242) | private void generateHeightmap(int p_185978_1_, int p_185978_2_, int p...
    method populate (line 362) | public void populate(int x, int z)
    method generateStructures (line 498) | public boolean generateStructures(Chunk chunkIn, int x, int z)
    method getPossibleCreatures (line 504) | public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureTyp...
    method isInsideStructure (line 511) | public boolean isInsideStructure(World worldIn, String structureName, ...
    method getNearestStructurePos (line 531) | @Nullable
    method recreateStructures (line 557) | public void recreateStructures(Chunk chunkIn, int x, int z)

FILE: src/main/java/com/flansmod/apocalypse/common/world/GenLayerApocalypse.java
  class GenLayerApocalypse (line 7) | public abstract class GenLayerApocalypse extends GenLayer
    method GenLayerApocalypse (line 9) | public GenLayerApocalypse(long l)
    method makeTheWorld (line 14) | public static GenLayer[] makeTheWorld(long l)

FILE: src/main/java/com/flansmod/apocalypse/common/world/GenLayerBiomes.java
  class GenLayerBiomes (line 7) | public class GenLayerBiomes extends GenLayer
    method GenLayerBiomes (line 14) | public GenLayerBiomes(long l, GenLayer genlayer)
    method GenLayerBiomes (line 20) | public GenLayerBiomes(long l)
    method getInts (line 25) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/TeleporterApocalypse.java
  class TeleporterApocalypse (line 8) | public class TeleporterApocalypse extends Teleporter
    method TeleporterApocalypse (line 13) | public TeleporterApocalypse(WorldServer world, BlockPos targetTeleporter)
    method makePortal (line 20) | @Override
    method placeInExistingPortal (line 26) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/WorldGenSulphurPool.java
  class WorldGenSulphurPool (line 14) | public class WorldGenSulphurPool extends WorldGenerator
    method WorldGenSulphurPool (line 18) | public WorldGenSulphurPool(Block block)
    method generate (line 23) | public boolean generate(World world, Random rand, BlockPos pos)

FILE: src/main/java/com/flansmod/apocalypse/common/world/WorldProviderApocalypse.java
  class WorldProviderApocalypse (line 15) | public class WorldProviderApocalypse extends WorldProvider
    method init (line 17) | @Override
    method createChunkGenerator (line 26) | @Override
    method canRespawnHere (line 32) | @Override
    method canCoordinateBeSpawn (line 38) | @Override
    method getFogColor (line 47) | @Override
    method getSkyColor (line 63) | @SideOnly(Side.CLIENT)
    method canDoLightning (line 69) | @Override
    method canDoRainSnowIce (line 75) | @Override
    method getDimensionType (line 81) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/MapGenAbandonedVillage.java
  class MapGenAbandonedVillage (line 19) | public class MapGenAbandonedVillage extends MapGenStructure
    method MapGenAbandonedVillage (line 30) | public MapGenAbandonedVillage()
    method getStructureName (line 36) | @Override
    method canSpawnStructureAtCoords (line 42) | @Override
    method getStructureStart (line 72) | @Override
    class Start (line 78) | public static class Start extends StructureStart
      method Start (line 82) | public Start()
      method Start (line 86) | public Start(World world, Random rand, int x, int z, int size)
      method generateStructure (line 125) | @Override
      method isSizeableStructure (line 171) | @Override
      method writeToNBT (line 177) | @Override
      method readFromNBT (line 184) | @Override
    method getNearestStructurePos (line 192) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/StructureAbandonedVillagePieces.java
  class StructureAbandonedVillagePieces (line 40) | public class StructureAbandonedVillagePieces
    method registerVillagePieces (line 44) | public static void registerVillagePieces()
    method getStructureVillageWeightedPieceList (line 62) | public static List getStructureVillageWeightedPieceList(Random p_75084...
    method func_75079_a (line 88) | private static int func_75079_a(List p_75079_0_)
    method func_176065_a (line 107) | private static StructureAbandonedVillagePieces.Village func_176065_a(S...
    method func_176067_c (line 152) | private static StructureAbandonedVillagePieces.Village func_176067_c(S...
    method func_176066_d (line 212) | private static StructureComponent func_176066_d(StructureAbandonedVill...
    method func_176069_e (line 246) | private static StructureComponent func_176069_e(StructureAbandonedVill...
    class Church (line 281) | public static class Church extends StructureAbandonedVillagePieces.Vil...
      method Church (line 285) | public Church()
      method Church (line 289) | public Church(StructureAbandonedVillagePieces.Start p_i45564_1_, int...
      method func_175854_a (line 296) | public static StructureAbandonedVillagePieces.Church func_175854_a(S...
      method addComponentParts (line 306) | public boolean addComponentParts(World worldIn, Random rand, Structu...
      method func_180779_c (line 397) | protected int func_180779_c(int p_180779_1_, int p_180779_2_)
    class Field1 (line 403) | public static class Field1 extends StructureAbandonedVillagePieces.Vil...
      method Field1 (line 423) | public Field1()
      method Field1 (line 427) | public Field1(StructureAbandonedVillagePieces.Start p_i45570_1_, int...
      method writeStructureToNBT (line 441) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 453) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method func_151559_a (line 462) | private Block func_151559_a(Random p_151559_1_)
      method func_175851_a (line 475) | public static StructureAbandonedVillagePieces.Field1 func_175851_a(S...
      method addComponentParts (line 485) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class Field2 (line 536) | public static class Field2 extends StructureAbandonedVillagePieces.Vil...
      method Field2 (line 548) | public Field2()
      method Field2 (line 552) | public Field2(StructureAbandonedVillagePieces.Start p_i45569_1_, int...
      method writeStructureToNBT (line 564) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 574) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method func_151560_a (line 581) | private Block func_151560_a(Random p_151560_1_)
      method func_175852_a (line 594) | public static StructureAbandonedVillagePieces.Field2 func_175852_a(S...
      method addComponentParts (line 604) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class Hall (line 651) | public static class Hall extends StructureAbandonedVillagePieces.Village
      method Hall (line 655) | public Hall()
      method Hall (line 659) | public Hall(StructureAbandonedVillagePieces.Start p_i45567_1_, int p...
      method func_175857_a (line 666) | public static StructureAbandonedVillagePieces.Hall func_175857_a(Str...
      method addComponentParts (line 676) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
      method func_180779_c (line 769) | protected int func_180779_c(int p_180779_1_, int p_180779_2_)
    class Library (line 775) | public static class Library extends StructureAbandonedVillagePieces.Vi...
      method Library (line 780) | public Library()
      method Library (line 784) | public Library(StructureAbandonedVillagePieces.Start p_i45571_1_, in...
      method func_175850_a (line 791) | public static StructureAbandonedVillagePieces.Library func_175850_a(...
      method writeStructureToNBT (line 797) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 803) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method addComponentParts (line 813) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
      method func_180779_c (line 928) | protected int func_180779_c(int p_180779_1_, int p_180779_2_)
    class Blacksmith (line 934) | public static class Blacksmith extends StructureAbandonedVillagePieces...
      method Blacksmith (line 943) | public Blacksmith()
      method Blacksmith (line 947) | public Blacksmith(StructureAbandonedVillagePieces.Start p_i45563_1_,...
      method func_175855_a (line 954) | public static StructureAbandonedVillagePieces.Blacksmith func_175855...
      method writeStructureToNBT (line 963) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 972) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method addComponentParts (line 982) | public boolean addComponentParts(World worldIn, Random rand, Structu...
      method func_180779_c (line 1096) | protected int func_180779_c(int p_180779_1_, int p_180779_2_)
    class House3 (line 1102) | public static class House3 extends StructureAbandonedVillagePieces.Vil...
      method House3 (line 1106) | public House3()
      method House3 (line 1110) | public House3(StructureAbandonedVillagePieces.Start p_i45561_1_, int...
      method func_175849_a (line 1117) | public static StructureAbandonedVillagePieces.House3 func_175849_a(S...
      method addComponentParts (line 1127) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class House4Garden (line 1265) | public static class House4Garden extends StructureAbandonedVillagePiec...
      method House4Garden (line 1270) | public House4Garden()
      method House4Garden (line 1274) | public House4Garden(StructureAbandonedVillagePieces.Start p_i45566_1...
      method writeStructureToNBT (line 1285) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 1294) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method func_175858_a (line 1300) | public static StructureAbandonedVillagePieces.House4Garden func_1758...
      method addComponentParts (line 1310) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class Path (line 1358) | public static class Path extends StructureAbandonedVillagePieces.Road
      method Path (line 1363) | public Path()
      method Path (line 1367) | public Path(StructureAbandonedVillagePieces.Start p_i45562_1_, int p...
      method writeStructureToNBT (line 1378) | protected void writeStructureToNBT(NBTTagCompound p_143012_1_)
      method readStructureFromNBT (line 1387) | protected void readStructureFromNBT(NBTTagCompound p_143011_1_, Temp...
      method buildComponent (line 1396) | public void buildComponent(StructureComponent p_74861_1_, List p_748...
      method func_175848_a (line 1461) | public static StructureBoundingBox func_175848_a(StructureAbandonedV...
      method addComponentParts (line 1480) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class PieceWeight (line 1504) | public static class PieceWeight
      method PieceWeight (line 1515) | public PieceWeight(Class p_i2098_1_, int p_i2098_2_, int p_i2098_3_)
      method canSpawnMoreVillagePiecesOfType (line 1522) | public boolean canSpawnMoreVillagePiecesOfType(int p_75085_1_)
      method canSpawnMoreVillagePieces (line 1527) | public boolean canSpawnMoreVillagePieces()
    class Road (line 1533) | public abstract static class Road extends StructureAbandonedVillagePie...
      method Road (line 1537) | public Road()
      method Road (line 1541) | protected Road(StructureAbandonedVillagePieces.Start p_i2108_1_, int...
    class Start (line 1547) | public static class Start extends StructureAbandonedVillagePieces.Well
      method Start (line 1571) | public Start()
      method Start (line 1575) | public Start(BiomeProvider p_i2104_1_, int p_i2104_2_, Random p_i210...
      method getBiomeProvider (line 1587) | public BiomeProvider getBiomeProvider()
    class SwitchEnumFacing (line 1593) | static final class SwitchEnumFacing
    class Torch (line 1634) | public static class Torch extends StructureAbandonedVillagePieces.Village
      method Torch (line 1638) | public Torch()
      method Torch (line 1642) | public Torch(StructureAbandonedVillagePieces.Start p_i45568_1_, int ...
      method func_175856_a (line 1649) | public static StructureBoundingBox func_175856_a(StructureAbandonedV...
      method addComponentParts (line 1659) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class Village (line 1687) | public abstract static class Village extends StructureComponent
      method Village (line 1698) | public Village()
      method Village (line 1702) | protected Village(StructureAbandonedVillagePieces.Start p_i2107_1_, ...
      method writeStructureToNBT (line 1716) | @Override
      method readStructureFromNBT (line 1727) | @Override
      method getNextComponentNN (line 1738) | protected StructureComponent getNextComponentNN(StructureAbandonedVi...
      method getNextComponentPP (line 1761) | protected StructureComponent getNextComponentPP(StructureAbandonedVi...
      method getAverageGroundLevel (line 1785) | protected int getAverageGroundLevel(World worldIn, StructureBounding...
      method canVillageGoDeeper (line 1814) | protected static boolean canVillageGoDeeper(StructureBoundingBox p_7...
      method spawnVillagers (line 1823) | protected void spawnVillagers(World worldIn, StructureBoundingBox p_...
      method func_180779_c (line 1828) | protected int func_180779_c(int p_180779_1_, int p_180779_2_)
      method func_175847_a (line 1833) | protected IBlockState func_175847_a(IBlockState p_175847_1_)
      method setBlockState (line 1874) | protected void setBlockState(World worldIn, IBlockState p_175811_2_,...
      method fillWithBlocks (line 1880) | protected void fillWithBlocks(World worldIn, StructureBoundingBox bo...
      method replaceAirAndLiquidDownwards (line 1887) | protected void replaceAirAndLiquidDownwards(World worldIn, IBlockSta...
      method func_175846_a (line 1893) | protected void func_175846_a(boolean p_175846_1_)
      method destroyBuilding (line 1898) | protected void destroyBuilding(World world, int x, int z, int blocks...
      method destroyBuilding (line 1909) | protected void destroyBuilding(World world, int[][] blocksToDestroy,...
    class Well (line 1918) | public static class Well extends StructureAbandonedVillagePieces.Village
      method Well (line 1922) | public Well()
      method Well (line 1926) | public Well(StructureAbandonedVillagePieces.Start p_i2109_1_, int p_...
      method buildComponent (line 1945) | public void buildComponent(StructureComponent p_74861_1_, List p_748...
      method addComponentParts (line 1957) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...
    class WoodHut (line 1998) | public static class WoodHut extends StructureAbandonedVillagePieces.Vi...
      method WoodHut (line 2004) | public WoodHut()
      method WoodHut (line 2008) | public WoodHut(StructureAbandonedVillagePieces.Start p_i45565_1_, in...
      method writeStructureToNBT (line 2020) | @Override
      method readStructureFromNBT (line 2031) | @Override
      method func_175853_a (line 2039) | public static StructureAbandonedVillagePieces.WoodHut func_175853_a(...
      method addComponentParts (line 2049) | public boolean addComponentParts(World worldIn, Random p_74875_2_, S...

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenAbandonedPortal.java
  class WorldGenAbandonedPortal (line 33) | public class WorldGenAbandonedPortal extends WorldGenFlan
    method generate (line 35) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenBossPillar.java
  class WorldGenBossPillar (line 14) | public class WorldGenBossPillar extends WorldGenerator
    method generate (line 26) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenDeadTree.java
  class WorldGenDeadTree (line 10) | public class WorldGenDeadTree extends WorldGenFlan
    method generate (line 12) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenDyeFactory.java
  class WorldGenDyeFactory (line 16) | public class WorldGenDyeFactory extends WorldGenFlan
    method generate (line 18) | @Override
    method fillChest (line 117) | private void fillChest(World world, Random rand, int i, int j, int k)
    method buildVat (line 123) | private void buildVat(World world, Random rand, int x, int y, int z)

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenFlan.java
  class WorldGenFlan (line 8) | public abstract class WorldGenFlan extends WorldGenerator
    method fillArea (line 10) | protected void fillArea(World world, int x1, int y1, int z1, int x2, i...
    method fillArea (line 15) | protected void fillArea(World world, int x1, int y1, int z1, int x2, i...
    method replaceEmpty (line 31) | protected void replaceEmpty(World world, int x1, int y1, int z1, int x...

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenResearchLab.java
  class WorldGenResearchLab (line 35) | public class WorldGenResearchLab extends WorldGenFlan
    method generate (line 37) | @Override
    method spawnMecha (line 271) | private void spawnMecha(World world, Random rand, int x, int y, int z)
    method generateServerPower (line 308) | private void generateServerPower(World world, Random rand, int x, int ...
    method generateServerRack (line 319) | private void generateServerRack(World world, Random rand, int x, int y...
    method generateWeapons (line 330) | private void generateWeapons(World world, Random rand, int x, int y, i...
    method generateFurnace (line 351) | private void generateFurnace(World world, Random rand, int x, int y, i...
    method generatePlantPots (line 361) | private void generatePlantPots(World world, Random rand, int x, int y,...
    method generateFarm (line 375) | private void generateFarm(World world, Random rand, int x, int y, int z)
    method generateGunRack (line 408) | private void generateGunRack(World world, Random rand, int x, int y, i...
    method generateTarget (line 419) | private void generateTarget(World world, Random rand, int x, int y, in...
    method generateLiquidsLab (line 432) | private void generateLiquidsLab(World world, Random rand, int x, int y...
    method generateLiquidContainer (line 476) | private void generateLiquidContainer(World world, Random rand, int x, ...
    method getRandomLiquid (line 490) | private IBlockState getRandomLiquid(Random rand)
    method generateRoom (line 502) | private void generateRoom(World world, Random rand, int chunkX, int la...

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenRoads.java
  class WorldGenRoads (line 18) | public class WorldGenRoads extends WorldGenerator
    method generate (line 31) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenRunway.java
  class WorldGenRunway (line 22) | public class WorldGenRunway extends WorldGenFlan
    method generate (line 24) | @Override

FILE: src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenSkeleton.java
  class WorldGenSkeleton (line 14) | public class WorldGenSkeleton extends WorldGenerator
    method generate (line 16) | @Override

FILE: src/main/java/com/flansmod/client/ClientProxy.java
  class ClientProxy (line 116) | @SideOnly(Side.CLIENT)
    method preInit (line 128) | @Override
    method init (line 134) | @Override
    method registerSoundEvents (line 147) | @SubscribeEvent
    method registerModels (line 161) | @SubscribeEvent
    method forceReload (line 227) | @Override
    method LoadAssetsFromFlanFolder (line 237) | @Override
    method registerRenderers (line 287) | @Override
    method doTutorialStuff (line 315) | @Override
    method changeControlMode (line 341) | @Override
    method mouseControlEnabled (line 351) | @Override
    method getClientGui (line 360) | @Override
    method openDriveableMenu (line 387) | @Override
    method getModelName (line 398) | private String getModelName(String in)
    method loadModel (line 428) | @Override
    method loadSound (line 448) | @Override
    method isThePlayer (line 466) | @Override
    method buyGun (line 473) | @Override
    method buyArmour (line 481) | @Override
    method craftDriveable (line 489) | @Override
    method repairDriveable (line 498) | @Override
    method isScreenOpen (line 510) | @Override
    method isKeyDown (line 519) | @Override
    method keyDown (line 545) | @Override
    method playerClick (line 551) | @SubscribeEvent
    method addMissingJSONs (line 605) | @Override
    method createJSONFile (line 680) | private void createJSONFile(File file, String contents) throws Exception

FILE: src/main/java/com/flansmod/client/ClientRenderHooks.java
  class ClientRenderHooks (line 80) | @SideOnly(Side.CLIENT)
    method mouseXYChange (line 92) | @Override
    method ClientRenderHooks (line 105) | public ClientRenderHooks()
    method renderItemFrame (line 121) | public void renderItemFrame(RenderItemInFrameEvent event)
    method renderHeldItem (line 148) | public void renderHeldItem(RenderSpecificHandEvent event)
    method hurtCameraEffect (line 265) | private void hurtCameraEffect(float partialTicks)
    method setupViewBobbing (line 293) | private void setupViewBobbing(float partialTicks)
    method getFOVModifier (line 312) | private float getFOVModifier(float partialTicks)
    method update (line 331) | public void update()
    method setPartialTick (line 407) | public void setPartialTick(float partialTick)
    method renderThirdPersonWeapons (line 412) | public void renderThirdPersonWeapons(RenderLivingEvent.Pre event)
    method interpolateRotation (line 534) | private float interpolateRotation(float prevYawOffset, float yawOffset...
    method renderPlayer (line 553) | public void renderPlayer(RenderPlayerEvent.Pre event)
    method updatePlayerView (line 598) | public void updatePlayerView()
    method cameraSetup (line 620) | public void cameraSetup(CameraSetup event)
    method modifyHUD (line 640) | public void modifyHUD(RenderGameOverlayEvent event)
    method renderScopeOverlay (line 675) | private void renderScopeOverlay(int i, int j)
    method renderHitMarker (line 717) | private void renderHitMarker(Tessellator tessellator, int i, int j)
    method renderPlayerAmmo (line 747) | private void renderPlayerAmmo(int i, int j)
    method renderTeamInfo (line 813) | private void renderTeamInfo(Tessellator tessellator, int i, int j)
    method renderKillMessages (line 922) | private void renderKillMessages(int i, int j)
    method renderVehicleDebug (line 952) | private void renderVehicleDebug()
    method drawSlotInventory (line 980) | private void drawSlotInventory(FontRenderer fontRenderer, ItemStack it...
    method addKillMessage (line 988) | public static void addKillMessage(boolean headshot, InfoType infoType,...
    class KillMessage (line 999) | private static class KillMessage
      method KillMessage (line 1001) | public KillMessage(boolean head, InfoType infoType, String killer, S...

FILE: src/main/java/com/flansmod/client/EntityCamera.java
  class EntityCamera (line 12) | public class EntityCamera extends EntityLivingBase
    method EntityCamera (line 16) | public EntityCamera(World world)
    method EntityCamera (line 22) | public EntityCamera(World world, EntityDriveable d)
    method onUpdate (line 29) | @Override
    method getArmorInventoryList (line 61) | @Override
    method getItemStackFromSlot (line 67) | @Override
    method setItemStackToSlot (line 73) | @Override
    method getPrimaryHand (line 79) | @Override

FILE: src/main/java/com/flansmod/client/FlansModClient.java
  class FlansModClient (line 55) | @SideOnly(Side.CLIENT)
    method getWorldRenderer (line 139) | public static WorldRenderer getWorldRenderer()
    method load (line 144) | public void load()
    method DoTextureTrim (line 150) | private static void DoTextureTrim()
    method tick (line 259) | public static void tick()
    method setScope (line 342) | public static void setScope(IScope scope)
    method updateCameraZoom (line 370) | public static void updateCameraZoom(float smoothing)
    method flipControlMode (line 387) | public static boolean flipControlMode()
    method reloadModels (line 396) | public static void reloadModels(boolean reloadSkins)
    method getTeam (line 411) | public static Team getTeam(int spawnerTeamID)
    method isCurrentMap (line 418) | public static boolean isCurrentMap(String map)
    method getParticle (line 423) | @SideOnly(Side.CLIENT)
    method getGunAnimations (line 497) | public static GunAnimations getGunAnimations(EntityLivingBase living, ...
    method addHitMarker (line 523) | public static void addHitMarker()
    method updateFlashlights (line 531) | public static void updateFlashlights(Minecraft mc)
    method lightBlock (line 646) | private static void lightBlock(Minecraft mc, BlockPos blockPos, int li...

FILE: src/main/java/com/flansmod/client/MovingSoundDriveable.java
  class MovingSoundDriveable (line 4) | public class MovingSoundDriveable // extends MovingSound

FILE: src/main/java/com/flansmod/client/TileEntitySpawnerRenderer.java
  class TileEntitySpawnerRenderer (line 11) | public class TileEntitySpawnerRenderer extends TileEntitySpecialRenderer...
    method render (line 13) | @Override
    method RenderBox (line 66) | private void RenderBox(WorldRenderer wr, double x0, double x1, double ...

FILE: src/main/java/com/flansmod/client/debug/EntityDebugAABB.java
  class EntityDebugAABB (line 10) | public class EntityDebugAABB extends Entity
    method EntityDebugAABB (line 21) | public EntityDebugAABB(World w, Vector3f u, Vector3f v, int i, float r...
    method EntityDebugAABB (line 36) | public EntityDebugAABB(World w, Vector3f u, Vector3f v, int i, float r...
    method EntityDebugAABB (line 41) | public EntityDebugAABB(World w, Vector3f u, Vector3f v, int i, float r...
    method EntityDebugAABB (line 46) | public EntityDebugAABB(World w, Vector3f u, Vector3f v, int i)
    method onUpdate (line 51) | @Override
    method getCollisionBoundingBox (line 59) | @Override
    method entityInit (line 66) | @Override
    method readEntityFromNBT (line 72) | @Override
    method writeEntityToNBT (line 78) | @Override

FILE: src/main/java/com/flansmod/client/debug/EntityDebugColor.java
  class EntityDebugColor (line 13) | public abstract class EntityDebugColor extends Entity
    method EntityDebugColor (line 23) | public EntityDebugColor(World w)
    method entityInit (line 28) | @Override
    method readEntityFromNBT (line 36) | @Override
    method writeEntityToNBT (line 44) | @Override
    method setColorRed (line 57) | public void setColorRed(Float red)
    method getColorRed (line 67) | public Float getColorRed()
    method setColorGreen (line 77) | public void setColorGreen(Float green)
    method getColorGreen (line 87) | public Float getColorGreen()
    method setColorBlue (line 97) | public void setColorBlue(Float blue)
    method getColorBlue (line 107) | public Float getColorBlue()
    method setColor (line 120) | public void setColor(Float red, Float green, Float blue)

FILE: src/main/java/com/flansmod/client/debug/EntityDebugDot.java
  class EntityDebugDot (line 11) | public class EntityDebugDot extends EntityDebugColor
    method EntityDebugDot (line 18) | public EntityDebugDot(World w)
    method EntityDebugDot (line 31) | public EntityDebugDot(World w, Vector3f pos, int l)
    method EntityDebugDot (line 47) | public EntityDebugDot(World w, Vector3f pos, int l, float r, float g, ...
    method onUpdate (line 55) | @Override

FILE: src/main/java/com/flansmod/client/debug/EntityDebugVector.java
  class EntityDebugVector (line 15) | public class EntityDebugVector extends EntityDebugColor
    method EntityDebugVector (line 27) | public EntityDebugVector(World w)
    method EntityDebugVector (line 44) | public EntityDebugVector(World w, Vector3f u, Vector3f v, int i, float...
    method EntityDebugVector (line 59) | public EntityDebugVector(World w, Vector3f u, Vector3f v, int i)
    method onUpdate (line 64) | @Override
    method entityInit (line 73) | @Override
    method readEntityFromNBT (line 82) | @Override
    method writeEntityToNBT (line 91) | @Override
    method setPointingX (line 103) | public void setPointingX(Float x)
    method getPointingX (line 111) | public Float getPointingX()
    method setPointingY (line 119) | public void setPointingY(Float y)
    method getPointingY (line 127) | public Float getPointingY()
    method setPointingZ (line 135) | public void setPointingZ(Float z)
    method getPointingZ (line 143) | public Float getPointingZ()
    method setPointing (line 156) | public void setPointing(Float x, Float y, Float z)

FILE: src/main/java/com/flansmod/client/debug/RenderDebugAABB.java
  class RenderDebugAABB (line 12) | public class RenderDebugAABB extends Render<EntityDebugAABB>
    method RenderDebugAABB (line 14) | public RenderDebugAABB(RenderManager renderManager)
    method doRender (line 19) | @Override
    method getEntityTexture (line 40) | @Override
    class Factory (line 46) | public static class Factory implements IRenderFactory<EntityDebugAABB>
      method createRenderFor (line 48) | @Override

FILE: src/main/java/com/flansmod/client/debug/RenderDebugDot.java
  class RenderDebugDot (line 13) | public class RenderDebugDot extends Render<EntityDebugDot>
    method RenderDebugDot (line 16) | public RenderDebugDot(RenderManager renderManager)
    method doRender (line 21) | @Override
    method getEntityTexture (line 41) | @Override
    class Factory (line 47) | public static class Factory implements IRenderFactory<EntityDebugDot>
      method createRenderFor (line 49) | @Override

FILE: src/main/java/com/flansmod/client/debug/RenderDebugVector.java
  class RenderDebugVector (line 13) | public class RenderDebugVector extends Render<EntityDebugVector>
    method RenderDebugVector (line 16) | public RenderDebugVector(RenderManager renderManager)
    method doRender (line 21) | @Override
    method getEntityTexture (line 42) | @Override
    class Factory (line 48) | public static class Factory implements IRenderFactory<EntityDebugVector>
      method createRenderFor (line 50) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiArmourBox.java
  class GuiArmourBox (line 24) | public class GuiArmourBox extends GuiScreen
    method GuiArmourBox (line 36) | public GuiArmourBox(InventoryPlayer playerinventory, ArmourBoxType type)
    method updateScreen (line 45) | @Override
    method drawScreen (line 52) | @Override
    method drawRecipe (line 109) | private void drawRecipe(FontRenderer fontrenderer, int m, int n, int q)
    method drawSlotInventory (line 149) | private void drawSlotInventory(ItemStack itemstack, int i, int j)
    method mouseClicked (line 158) | @Override
    method keyTyped (line 203) | @Override
    method doesGuiPauseGame (line 212) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableController.java
  class GuiDriveableController (line 18) | public class GuiDriveableController extends GuiScreen
    method GuiDriveableController (line 24) | public GuiDriveableController(IControllable thePlane)
    method initGui (line 30) | @Override
    method onGuiClosed (line 37) | @Override
    method handleMouseInput (line 44) | @Override
    method keyTyped (line 88) | @Override
    method updateScreen (line 112) | @Override
    method handleInput (line 120) | @Override
    method doesGuiPauseGame (line 225) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableCrafting.java
  class GuiDriveableCrafting (line 29) | public class GuiDriveableCrafting extends GuiScreen
    method GuiDriveableCrafting (line 104) | public GuiDriveableCrafting(InventoryPlayer playerInventory)
    method initGui (line 110) | @Override
    method actionPerformed (line 165) | @Override
    method drawScreen (line 197) | @Override
    method getEngineItemToRender (line 242) | private List<ItemToRender> getEngineItemToRender(ItemStack engineStack)
    method getBestEngineStackForType (line 258) | private ItemStack getBestEngineStackForType(DriveableType selectedType)
    method getPlayersEnginesForType (line 277) | private HashMap<PartType, ItemStack> getPlayersEnginesForType(Driveabl...
    method getRecipeItemsToRender (line 304) | private List<ItemToRender> getRecipeItemsToRender(DriveableType select...
    method drawStats (line 353) | private void drawStats(DriveableType selectedType)
    method drawPreview (line 383) | private void drawPreview(DriveableType selectedType)
    method getBlueprintItemsToRender (line 422) | private List<ItemToRender> getBlueprintItemsToRender()
    method drawSlotInventory (line 463) | private void drawSlotInventory(ItemStack itemstack, int x, int y, int ...
    method drawTooltip (line 472) | private void drawTooltip(String text, int x, int y, int mouseX, int mo...
    method keyTyped (line 480) | @Override
    method mouseClicked (line 489) | @Override
    method doesGuiPauseGame (line 520) | @Override
    method updateButtons (line 526) | private void updateButtons()
    class ArrowButton (line 544) | private static class ArrowButton extends GuiButton
      method ArrowButton (line 555) | public ArrowButton(int buttonId, int x, int y, Direction direction)
      method drawButton (line 575) | @Override
    class ItemToRender (line 594) | private static class ItemToRender
      method ItemToRender (line 600) | public ItemToRender(ItemStack itemStack, int x, int y)
    type Direction (line 608) | private enum Direction

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableFuel.java
  class GuiDriveableFuel (line 15) | public class GuiDriveableFuel extends GuiContainer
    method GuiDriveableFuel (line 25) | public GuiDriveableFuel(InventoryPlayer inventoryplayer, World world1,...
    method drawGuiContainerForegroundLayer (line 34) | @Override
    method drawGuiContainerBackgroundLayer (line 41) | @Override
    method drawScreen (line 68) | @Override
    method mouseClicked (line 75) | @Override
    method doesGuiPauseGame (line 87) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableInventory.java
  class GuiDriveableInventory (line 22) | public class GuiDriveableInventory extends GuiContainer
    method GuiDriveableInventory (line 35) | public GuiDriveableInventory(InventoryPlayer inventoryplayer, World wo...
    method drawGuiContainerForegroundLayer (line 48) | @Override
    method drawScreen (line 98) | @Override
    method drawStack (line 105) | private void drawStack(ItemStack itemstack, int x, int y)
    method getGunSlotName (line 112) | private static String getGunSlotName(int i)
    method drawGuiContainerBackgroundLayer (line 128) | @Override
    method mouseClicked (line 166) | @Override
    method doesGuiPauseGame (line 194) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableMenu.java
  class GuiDriveableMenu (line 16) | public class GuiDriveableMenu extends GuiContainer
    method GuiDriveableMenu (line 24) | public GuiDriveableMenu(InventoryPlayer inventoryplayer, World world1,...
    method initGui (line 33) | @Override
    method actionPerformed (line 67) | @Override
    method drawGuiContainerForegroundLayer (line 104) | @Override
    method drawGuiContainerBackgroundLayer (line 111) | @Override
    method drawScreen (line 121) | @Override
    method doesGuiPauseGame (line 128) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiDriveableRepair.java
  class GuiDriveableRepair (line 23) | public class GuiDriveableRepair extends GuiScreen
    method GuiDriveableRepair (line 49) | public GuiDriveableRepair(EntityPlayer player)
    method initGui (line 65) | @Override
    method actionPerformed (line 76) | @Override
    method updateButtons (line 82) | private void updateButtons()
    method drawScreen (line 96) | @Override
    method mouseClicked (line 211) | @Override
    method drawSlotInventory (line 230) | private void drawSlotInventory(ItemStack itemstack, int i, int j)
    method doesGuiPauseGame (line 238) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiGunBox.java
  class GuiGunBox (line 26) | public class GuiGunBox extends GuiContainer
    method GuiGunBox (line 50) | public GuiGunBox(InventoryPlayer inventory, GunBoxType type)
    method updateScreen (line 62) | @Override
    method initGui (line 89) | @Override
    method actionPerformed (line 128) | @Override
    method drawGuiContainerBackgroundLayer (line 172) | @Override
    method drawScreen (line 250) | @Override
    method renderInfoType (line 257) | private void renderInfoType(InfoType type, int x, int y)
    method renderPanelBackground (line 267) | private void renderPanelBackground(GunBoxEntry entry, int x, int y)
    method renderPanelForeground (line 288) | private void renderPanelForeground(GunBoxEntry entry, int x, int y)
    method drawSlotInventory (line 386) | private void drawSlotInventory(ItemStack itemstack, int i, int j)
    method mouseClicked (line 396) | @Override
    method keyTyped (line 430) | @Override
    method doesGuiPauseGame (line 439) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiGunModTable.java
  class GuiGunModTable (line 28) | public class GuiGunModTable extends GuiContainer
    method GuiGunModTable (line 36) | public GuiGunModTable(InventoryPlayer inv, World w)
    method drawGuiContainerForegroundLayer (line 43) | @Override
    method drawGuiContainerBackgroundLayer (line 81) | @Override
    method drawScreen (line 229) | @Override
    method handleMouseInput (line 236) | @Override
    method mouseClicked (line 275) | @Override
    method doesGuiPauseGame (line 288) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiMechaInventory.java
  class GuiMechaInventory (line 24) | public class GuiMechaInventory extends GuiContainer
    method GuiMechaInventory (line 44) | public GuiMechaInventory(InventoryPlayer inventoryplayer, World world1...
    method drawScreen (line 57) | @Override
    method drawGuiContainerForegroundLayer (line 64) | @Override
    method drawGuiContainerBackgroundLayer (line 71) | @Override
    method drawTexturedModalRect (line 124) | @Override
    method initGui (line 138) | @Override
    method actionPerformed (line 146) | @Override
    method mouseClicked (line 159) | @Override
    method doesGuiPauseGame (line 177) | @Override

FILE: src/main/java/com/flansmod/client/gui/GuiPaintjobTable.java
  class GuiPaintjobTable (line 41) | public class GuiPaintjobTable extends GuiContainer
    method ResetPalette (line 82) | private static void ResetPalette()
    method GuiPaintjobTable (line 127) | public GuiPaintjobTable(InventoryPlayer inv, World w, TileEntityPaintj...
    method updateScreen (line 137) | @Override
    method GetMainPageX (line 171) | private int GetMainPageX()
    method GetMainPageY (line 176) | private int GetMainPageY()
    method GetCustomPageX (line 181) | private int GetCustomPageX()
    method GetCustomPageY (line 186) | private int GetCustomPageY()
    method GetFlatTextureWindowX (line 191) | private int GetFlatTextureWindowX()
    method GetFlatTextureWindowY (line 196) | private int GetFlatTextureWindowY()
    method GetRenderOrigin (line 201) | private Vector3f GetRenderOrigin()
    method drawGuiContainerForegroundLayer (line 207) | @Override
    method drawGuiContainerBackgroundLayer (line 313) | @Override
    method drawScreen (line 509) | @Override
    method copyImageToTexture (line 516) | public static void copyImageToTexture()
    method bindWorkingTexture (line 521) | public void bindWorkingTexture()
    method SetCustomMode (line 526) | private void SetCustomMode(boolean active)
    method copyTextureFromGunToCustomTexture (line 542) | private void copyTextureFromGunToCustomTexture()
    method handleInput (line 568) | @Override
    method handleMouseInput (line 616) | @Override
    method mouseClicked (line 713) | @Override
    method doesGuiPauseGame (line 726) | @Override

FILE: src/main/java/com/flansmod/client/gui/config/ModGuiConfig.java
  class ModGuiConfig (line 10) | public class ModGuiConfig extends GuiConfig
    method ModGuiConfig (line 12) | public ModGuiConfig(GuiScreen parent)

FILE: src/main/java/com/flansmod/client/gui/config/ModGuiFactory.java
  class ModGuiFactory (line 9) | public class ModGuiFactory implements IModGuiFactory
    method initialize (line 11) | @Override
    method runtimeGuiCategories (line 17) | @Override
    method hasConfigGui (line 23) | @Override
    method createConfigGui (line 29) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/EnumLoadoutSlot.java
  type EnumLoadoutSlot (line 3) | public enum EnumLoadoutSlot
    method EnumLoadoutSlot (line 11) | EnumLoadoutSlot(String s, boolean b)

FILE: src/main/java/com/flansmod/client/gui/teams/GuiBaseEditor.java
  class GuiBaseEditor (line 18) | public class GuiBaseEditor extends GuiScreen
    method GuiBaseEditor (line 35) | public GuiBaseEditor(PacketBaseEdit packet)
    method initGui (line 40) | public void initGui()
    method drawScreen (line 76) | @Override
    method actionPerformed (line 101) | @Override
    method updateScreen (line 120) | @Override
    method mouseClicked (line 142) | @Override
    method keyTyped (line 156) | @Override
    method onGuiClosed (line 169) | @Override
    method doesGuiPauseGame (line 178) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiChooseLoadout.java
  class GuiChooseLoadout (line 17) | public class GuiChooseLoadout extends GuiTeamsBase
    method GuiChooseLoadout (line 24) | public GuiChooseLoadout()
    method initGui (line 29) | @Override
    method actionPerformed (line 61) | @Override
    method drawScreen (line 77) | @Override
    method doesGuiPauseGame (line 120) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiEditLoadout.java
  class GuiEditLoadout (line 38) | public class GuiEditLoadout extends GuiTeamsBase
    method GuiEditLoadout (line 61) | public GuiEditLoadout(int i)
    method initGui (line 69) | @Override
    method actionPerformed (line 84) | @Override
    method drawScreen (line 100) | @Override
    method IsInSquare (line 347) | private boolean IsInSquare(int clickX, int clickY, int x, int y, int w...
    method mouseClicked (line 353) | @Override
    method SelectItem (line 423) | public void SelectItem(LoadoutEntry entry)
    class LoadoutComparator (line 506) | public class LoadoutComparator implements Comparator<LoadoutEntry>
      method compare (line 508) | @Override
    method RecalculateAvailableEntries (line 526) | public void RecalculateAvailableEntries()
    method doesGuiPauseGame (line 622) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiLandingPage.java
  class GuiLandingPage (line 15) | public class GuiLandingPage extends GuiTeamsBase
    method GuiLandingPage (line 24) | public GuiLandingPage()
    method initGui (line 29) | @Override
    method actionPerformed (line 71) | @Override
    method drawScreen (line 91) | @Override
    method DrawRewardBoxPanel (line 159) | private void DrawRewardBoxPanel(LoadoutPool pool, PlayerRankData data,...
    method doesGuiPauseGame (line 166) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiMissionResults.java
  class GuiMissionResults (line 25) | public class GuiMissionResults extends GuiTeamsBase
    type EnumResultsState (line 34) | private enum EnumResultsState
    class MissionResultsUnlock (line 73) | private static class MissionResultsUnlock
    method GuiMissionResults (line 93) | public GuiMissionResults()
    method initGui (line 129) | @Override
    method actionPerformed (line 143) | @Override
    method updateScreen (line 153) | @Override
    method EnterState (line 233) | private void EnterState(EnumResultsState newState)
    method drawScreen (line 317) | @Override
    method DrawUnlock (line 443) | private void DrawUnlock(MissionResultsUnlock entry, int i, int j)
    method doesGuiPauseGame (line 469) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiOpenRewardBox.java
  class GuiOpenRewardBox (line 28) | public class GuiOpenRewardBox extends GuiTeamsBase
    type EnumPageState (line 30) | private enum EnumPageState
    method SetTarget (line 56) | public void SetTarget(Paintjob paint)
    method initGui (line 69) | @Override
    method actionPerformed (line 85) | @Override
    method GuiOpenRewardBox (line 94) | public GuiOpenRewardBox(RewardBox rewardBox)
    method updateScreen (line 114) | @Override
    method SimulateSpinner (line 179) | private void SimulateSpinner()
    method InitialVelocity (line 191) | private float InitialVelocity()
    method Acceleration (line 196) | private float Acceleration()
    method SwitchToState (line 201) | private void SwitchToState(EnumPageState newState)
    method drawScreen (line 206) | @Override
    method doesGuiPauseGame (line 291) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiTeamScores.java
  class GuiTeamScores (line 15) | public class GuiTeamScores extends GuiTeamsBase
    method drawScreen (line 20) | @Override
    method renderTwoTeamGUI (line 39) | public void renderTwoTeamGUI(PacketTeamInfo teamInfo)
    method renderDMGUI (line 158) | public void renderDMGUI(PacketTeamInfo teamInfo)
    method doesGuiPauseGame (line 222) | @Override
    method AllowEscape (line 228) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiTeamSelect.java
  class GuiTeamSelect (line 18) | public class GuiTeamSelect extends GuiScreen
    method GuiTeamSelect (line 33) | public GuiTeamSelect()
    method GuiTeamSelect (line 44) | public GuiTeamSelect(Team[] teams)
    method GuiTeamSelect (line 51) | public GuiTeamSelect(PlayerClass[] classes)
    method initGui (line 58) | @Override
    method drawScreen (line 88) | @Override
    method actionPerformed (line 126) | @Override
    method drawSlotInventory (line 141) | private void drawSlotInventory(ItemStack itemstack, int i, int j)
    method doesGuiPauseGame (line 147) | @Override
    method keyTyped (line 153) | @Override
    method onGuiClosed (line 168) | @Override

FILE: src/main/java/com/flansmod/client/gui/teams/GuiTeamsBase.java
  class GuiTeamsBase (line 26) | public class GuiTeamsBase extends GuiScreen
    method GuiTeamsBase (line 40) | public GuiTeamsBase()
    method initGui (line 48) | @Override
    method drawScreen (line 54) | @Override
    method DrawLoadoutPanel (line 64) | protected void DrawLoadoutPanel(LoadoutPool pool, PlayerRankData data,...
    method DrawRarityBackground (line 98) | protected void DrawRarityBackground(EnumPaintjobRarity rarity, int i, ...
    method DrawGun (line 129) | protected void DrawGun(ItemStack stack, int x, int y, float scale)
    method DrawRankIcon (line 162) | protected void DrawRankIcon(int rank, int prestige, int x, int y, bool...
    method drawSlotInventory (line 177) | protected void drawSlotInventory(ItemStack itemstack, int i, int j)
    method doesGuiPauseGame (line 185) | @Override
    method keyTyped (line 191) | @Override
    method AllowEscape (line 200) | protected boolean AllowEscape()

FILE: src/main/java/com/flansmod/client/gui/teams/GuiVoting.java
  class GuiVoting (line 14) | public class GuiVoting extends GuiScreen
    method GuiVoting (line 20) | public GuiVoting()
    method initGui (line 25) | @Override
    method actionPerformed (line 41) | @Override
    method drawScreen (line 48) | @Override
    method doesGuiPauseGame (line 85) | @Override

FILE: src/main/java/com/flansmod/client/handlers/ClientEventHandler.java
  class ClientEventHandler (line 32) | @SideOnly(Side.CLIENT)
    method renderTick (line 39) | @SubscribeEvent
    method clientTick (line 59) | @SubscribeEvent
    method chatMessage (line 84) | @SubscribeEvent
    method checkMouseInput (line 93) | @SideOnly(Side.CLIENT)
    method onKeyInput (line 109) | @SideOnly(Side.CLIENT)
    method renderWorld (line 116) | @SubscribeEvent
    method renderItemFrame (line 125) | @SubscribeEvent
    method renderHeldItem (line 131) | @SubscribeEvent
    method renderThirdPersonWeapons (line 137) | @SubscribeEvent
    method renderPlayer (line 143) | @SubscribeEvent
    method cameraSetup (line 149) | @SubscribeEvent
    method ModifyHUD (line 155) | @SubscribeEvent

FILE: src/main/java/com/flansmod/client/handlers/FlansModResourceHandler.java
  class FlansModResourceHandler (line 25) | public class FlansModResourceHandler
    method getIcon (line 41) | public static ResourceLocation getIcon(InfoType infoType)
    method getTexture (line 52) | public static ResourceLocation getTexture(InfoType infoType)
    method getDeployableTexture (line 67) | public static ResourceLocation getDeployableTexture(GunType gunType)
    method getScope (line 78) | public static ResourceLocation getScope(String scopeTexture)
    method getSoundEvent (line 89) | public static SoundEvent getSoundEvent(String sound)
    method getPaintjobTexture (line 102) | public static ResourceLocation getPaintjobTexture(Paintjob paintjob)
    method getBlockTexture (line 113) | public static ResourceLocation getBlockTexture(String texturePath)
    method getIcon (line 124) | public static ResourceLocation getIcon(PaintableType paintableType, Pa...
    method getTrailTexture (line 135) | public static ResourceLocation getTrailTexture(String trailTexture)
    method HasResourceForHash (line 150) | public static boolean HasResourceForHash(int customPaintHash)
    method CreateSkinResourceFromByteArray (line 155) | public static void CreateSkinResourceFromByteArray(byte[] byteArray, i...
    method CreateIconResourceFromByteArray (line 185) | public static void CreateIconResourceFromByteArray(byte[] byteArray, i...
    method GetSkinResourceFromHash (line 208) | public static ResourceLocation GetSkinResourceFromHash(int customPaint...
    method GetIconResourceFromHash (line 213) | public static ResourceLocation GetIconResourceFromHash(int customPaint...

FILE: src/main/java/com/flansmod/client/handlers/KeyInputHandler.java
  class KeyInputHandler (line 34) | @SideOnly(value = Side.CLIENT)
    method KeyInputHandler (line 116) | KeyInputHandler()
    method checkTickKeys (line 140) | void checkTickKeys()
    method checkEventKeys (line 175) | void checkEventKeys()

FILE: src/main/java/com/flansmod/client/handlers/MouseInputHandler.java
  class MouseInputHandler (line 12) | @SideOnly(Side.CLIENT)
    method MouseInputHandler (line 17) | public MouseInputHandler()
    method checkMouseInput (line 22) | public void checkMouseInput(MouseEvent event)

FILE: src/main/java/com/flansmod/client/model/AnimTankTrack.java
  class AnimTankTrack (line 8) | public class AnimTankTrack
    method AnimTankTrack (line 14) | public AnimTankTrack(ArrayList<Vector3f> trackPoints, float linkLength)
    method setLinkLength (line 20) | public void setLinkLength(float length)
    method distBetweenPoints (line 25) | public float distBetweenPoints(Vector3f p1, Vector3f p2)
    method getTrackLength (line 36) | public float getTrackLength()
    method getTrackPart (line 46) | public int getTrackPart(float distance)
    method getProgressAlongTrackPart (line 64) | public float getProgressAlongTrackPart(float distance, int trackPart)
    method getPositionOnTrack (line 77) | public Vector3f getPositionOnTrack(float distance)
    method lerp (line 92) | public float lerp(float a, float b, float f)

FILE: src/main/java/com/flansmod/client/model/AnimTrackLink.java
  class AnimTrackLink (line 6) | public class AnimTrackLink
    method AnimTrackLink (line 16) | public AnimTrackLink(float prog)

FILE: src/main/java/com/flansmod/client/model/CustomItemRenderType.java
  type CustomItemRenderType (line 3) | public enum CustomItemRenderType

FILE: src/main/java/com/flansmod/client/model/CustomItemRenderer.java
  type CustomItemRenderer (line 6) | public interface CustomItemRenderer
    method renderItem (line 8) | void renderItem(CustomItemRenderType type, EnumHand hand, ItemStack it...

FILE: src/main/java/com/flansmod/client/model/EnumAnimationType.java
  type EnumAnimationType (line 3) | public enum EnumAnimationType

FILE: src/main/java/com/flansmod/client/model/EnumMeleeAnimation.java
  type EnumMeleeAnimation (line 3) | public enum EnumMeleeAnimation

FILE: src/main/java/com/flansmod/client/model/GunAnimations.java
  class GunAnimations (line 7) | public class GunAnimations
    type LookAtState (line 54) | public enum LookAtState
    method GunAnimations (line 64) | public GunAnimations()
    method update (line 69) | public void update()
    method addMinigunBarrelRotationSpeed (line 160) | public void addMinigunBarrelRotationSpeed(Float speed)
    method doShoot (line 165) | public void doShoot(int pumpDelay, int pumpTime)
    method doReload (line 173) | public void doReload(int reloadTime, int pumpDelay, int pumpTime)
    method doMelee (line 182) | public void doMelee(int meleeTime)

FILE: src/main/java/com/flansmod/client/model/InstantBulletRenderer.java
  class InstantBulletRenderer (line 19) | public class InstantBulletRenderer
    method AddTrail (line 24) | public static void AddTrail(InstantShotTrail trail)
    method RenderAllTrails (line 29) | public static void RenderAllTrails(float partialTicks)
    method UpdateAllTrails (line 37) | public static void UpdateAllTrails()
    class InstantShotTrail (line 48) | public static class InstantShotTrail
      method InstantShotTrail (line 60) | public InstantShotTrail(Vector3f origin, Vector3f hitPos, float widt...
      method Update (line 81) | public boolean Update()
      method Render (line 87) | public void Render(float partialTicks)

FILE: src/main/java/com/flansmod/client/model/ModelAAGun.java
  class ModelAAGun (line 8) | public class ModelAAGun extends ModelBase
    method renderBase (line 12) | public void renderBase(float f, float f1, float f2, float f3, float f4...
    method renderGun (line 20) | public void renderGun(float f, float f1, float f2, float f3, float f4,...
    method setRotationAngles (line 64) | public void setRotationAngles(float f, float f1, float f2, float f3, f...
    method flipAll (line 68) | public void flipAll()

FILE: src/main/java/com/flansmod/client/model/ModelAttachment.java
  class ModelAttachment (line 8) | public class ModelAttachment extends ModelBase
    method renderAttachment (line 18) | public void renderAttachment(float f)
    method flipAll (line 25) | public void flipAll()
    method translate (line 34) | protected void translate(ModelRendererTurbo[] model, float x, float y,...
    method translateAll (line 44) | public void translateAll(float x, float y, float z)

FILE: src/main/java/com/flansmod/client/model/ModelBomb.java
  class ModelBomb (line 8) | public class ModelBomb extends ModelBase
    method ModelBomb (line 10) | public ModelBomb()
    method render (line 26) | @Override
    method setRotationAngles (line 35) | public void setRotationAngles(float f, float f1, float f2, float f3, f...

FILE: src/main/java/com/flansmod/client/model/ModelBullet.java
  class ModelBullet (line 10) | public class ModelBullet extends ModelBase
    method ModelBullet (line 14) | public ModelBullet()
    method render (line 20) | @Override

FILE: src/main/java/com/flansmod/client/model/ModelCustomArmour.java
  class ModelCustomArmour (line 17) | public class ModelCustomArmour extends ModelBiped
    method render (line 30) | public void render(Entity entity, float f, float f1, float f2, float f...
    method render (line 90) | public void render(ModelRendererTurbo[] models, ModelRenderer bodyPart...
    method setBodyPart (line 102) | public void setBodyPart(ModelRendererTurbo[] models, ModelRenderer bod...

FILE: src/main/java/com/flansmod/client/model/ModelDefaultMuzzleFlash.java
  class ModelDefaultMuzzleFlash (line 9) | public class ModelDefaultMuzzleFlash extends ModelMuzzleFlash
    method ModelDefaultMuzzleFlash (line 13) | public ModelDefaultMuzzleFlash()
    method renderMuzzleFlash (line 27) | @Override
    method GetTexture (line 36) | @Override
    method setRotationAngles (line 42) | public void setRotationAngles(float f, float f1, float f2, float f3, f...

FILE: src/main/java/com/flansmod/client/model/ModelDriveable.java
  class ModelDriveable (line 16) | public class ModelDriveable extends ModelBase
    method render (line 34) | public void render(EntityDriveable driveable, float f1)
    method render (line 41) | public void render(DriveableType type)
    method renderPart (line 53) | public void renderPart(ModelRendererTurbo[] part)
    method registerGunModel (line 61) | public void registerGunModel(String name, ModelRendererTurbo[][] gunMo...
    method flip (line 66) | protected void flip(ModelRendererTurbo[] model)
    method flipAll (line 75) | public void flipAll()
    method translate (line 89) | protected void translate(ModelRendererTurbo[] model, float x, float y,...
    method translateAll (line 99) | public void translateAll(float x, float y, float z)
    method translateAll (line 113) | public void translateAll(int x, int y, int z)
    method renderOffsetAABB (line 122) | public static void renderOffsetAABB(AxisAlignedBB boundingBox, double ...

FILE: src/main/java/com/flansmod/client/model/ModelFlagpole.java
  class ModelFlagpole (line 9) | public class ModelFlagpole extends ModelBase
    method ModelFlagpole (line 11) | public ModelFlagpole()
    method renderPole (line 33) | public void renderPole(float f, float f1, float f2, float f3, float f4...
    method renderFlag (line 41) | public void renderFlag(float f, float f1, float f2, float f3, float f4...
    method setRotationAngles (line 49) | public void setRotationAngles(float f, float f1, float f2, float f3, f...

FILE: src/main/java/com/flansmod/client/model/ModelGun.java
  class ModelGun (line 8) | public class ModelGun extends ModelBase
    method renderGun (line 127) | public void renderGun(float f)
    method renderCustom (line 132) | public void renderCustom(float f, GunAnimations anims)
    method renderSlide (line 137) | public void renderSlide(float f)
    method renderPump (line 142) | public void renderPump(float f)
    method renderDefaultScope (line 147) | public void renderDefaultScope(float f)
    method renderDefaultBarrel (line 152) | public void renderDefaultBarrel(float f)
    method renderDefaultStock (line 157) | public void renderDefaultStock(float f)
    method renderDefaultGrip (line 162) | public void renderDefaultGrip(float f)
    method renderAmmo (line 167) | public void renderAmmo(float f)
    method renderMinigunBarrel (line 172) | public void renderMinigunBarrel(float f)
    method renderRevolverBarrel (line 177) | public void renderRevolverBarrel(float f)
    method renderBreakAction (line 182) | public void renderBreakAction(float f)
    method render (line 191) | protected void render(ModelRendererTurbo[] models, float f)
    method flipAll (line 201) | public void flipAll()
    method flip (line 216) | protected void flip(ModelRendererTurbo[] model)
    method translateAll (line 228) | public void translateAll(float x, float y, float z)
    method translate (line 247) | protected void translate(ModelRendererTurbo[] model, float x, float y,...
    method translateAttachment (line 257) | protected void translateAttachment(Vector3f vector, float x, float y, ...

FILE: src/main/java/com/flansmod/client/model/ModelItemHolder.java
  class ModelItemHolder (line 8) | public class ModelItemHolder extends ModelBase
    method render (line 14) | public void render()
    method flipAll (line 25) | public void flipAll()
    method flip (line 30) | protected void flip(ModelRendererTurbo[] model)
    method translateAll (line 42) | public void translateAll(float x, float y, float z)
    method translate (line 47) | protected void translate(ModelRendererTurbo[] model, float x, float y,...

FILE: src/main/java/com/flansmod/client/model/ModelMG.java
  class ModelMG (line 8) | public class ModelMG extends ModelBase
    method renderBipod (line 15) | public void renderBipod(float f, float f1, float f2, float f3, float f...
    method renderGun (line 30) | public void renderGun(float f, float f1, float f2, float f3, float f4,...
    method flipAll (line 48) | public void flipAll()

FILE: src/main/java/com/flansmod/client/model/ModelMecha.java
  class ModelMecha (line 13) | public class ModelMecha extends ModelDriveable
    method render (line 40) | @Override
    method render (line 46) | @Override
    method render (line 79) | public void render(float f5, EntityMecha mecha, float f)
    method renderLeftArm (line 101) | public void renderLeftArm(float f5, EntityMecha mecha, float f)
    method renderLeftHand (line 107) | public void renderLeftHand(float f5, EntityMecha mecha, float f)
    method renderRightArm (line 113) | public void renderRightArm(float f5, EntityMecha mecha, float f)
    method renderRightHand (line 119) | public void renderRightHand(float f5, EntityMecha mecha, float f)
    method renderRightFoot (line 125) | public void renderRightFoot(float f5, EntityMecha mecha, float f)
    method renderLeftFoot (line 131) | public void renderLeftFoot(float f5, EntityMecha mecha, float f)
    method renderRightLeg (line 137) | public void renderRightLeg(float f5, EntityMecha mecha, float f)
    method renderLeftLeg (line 143) | public void renderLeftLeg(float f5, EntityMecha mecha, float f)
    method renderRightRearFoot (line 149) | public void renderRightRearFoot(float f5, EntityMecha mecha, float f)
    method renderLeftRearFoot (line 155) | public void renderLeftRearFoot(float f5, EntityMecha mecha, float f)
    method renderRightRearLeg (line 161) | public void renderRightRearLeg(float f5, EntityMecha mecha, float f)
    method renderLeftRearLeg (line 167) | public void renderLeftRearLeg(float f5, EntityMecha mecha, float f)
    method renderRightFrontFoot (line 173) | public void renderRightFrontFoot(float f5, EntityMecha mecha, float f)
    method renderLeftFrontFoot (line 179) | public void renderLeftFrontFoot(float f5, EntityMecha mecha, float f)
    method renderRightFrontLeg (line 185) | public void renderRightFrontLeg(float f5, EntityMecha mecha, float f)
    method renderLeftFrontLeg (line 191) | public void renderLeftFrontLeg(float f5, EntityMecha mecha, float f)
    method renderHips (line 197) | public void renderHips(float f5, EntityMecha mecha, float f)
    method flipAll (line 203) | @Override
    method translateAll (line 228) | @Override

FILE: src/main/java/com/flansmod/client/model/ModelMechaTool.java
  class ModelMechaTool (line 9) | public class ModelMechaTool extends ModelBase
    method render (line 24) | public void render(EntityMecha mecha, float f1)
    method renderDrill (line 32) | public void renderDrill(EntityMecha mecha, float f1)
    method renderSaw (line 40) | public void renderSaw(EntityMecha mecha, float f1, boolean spin)

FILE: src/main/java/com/flansmod/client/model/ModelMuzzleFlash.java
  class ModelMuzzleFlash (line 9) | public abstract class ModelMuzzleFlash extends ModelBase
    method ModelMuzzleFlash (line 11) | public ModelMuzzleFlash()
    method render (line 15) | @Override
    method GetTexture (line 21) | public abstract ResourceLocation GetTexture();
    method renderMuzzleFlash (line 23) | public abstract void renderMuzzleFlash(float f5);
    method setRotationAngles (line 25) | public void setRotationAngles(float f, float f1, float f2, float f3, f...

FILE: src/main/java/com/flansmod/client/model/ModelNull.java
  class ModelNull (line 5) | public class ModelNull extends ModelBase

FILE: src/main/java/com/flansmod/client/model/ModelPlane.java
  class ModelPlane (line 17) | public class ModelPlane extends ModelDriveable
    method render (line 61) | @Override
    method render (line 67) | @Override
    method render (line 105) | public void render(float f5, EntityPlane plane, float f)
    method renderRotor (line 364) | public void renderRotor(EntityPlane plane, float f5, int i)
    method renderTailRotor (line 380) | public void renderTailRotor(EntityPlane plane, float f5, int i)
    method flipAll (line 393) | @Override
    method translateAll (line 437) | @Override

FILE: src/main/java/com/flansmod/client/model/ModelVehicle.java
  class ModelVehicle (line 13) | public class ModelVehicle extends ModelDriveable
    method render (line 51) | @Override
    method render (line 57) | @Override
    method render (line 85) | public void render(float f5, EntityVehicle vehicle, float f)
    method renderTurret (line 269) | public void renderTurret(float f, float f1, float f2, float f3, float ...
    method renderAnimBarrel (line 347) | public void renderAnimBarrel(float f, float f1, float f2, float f3, fl...
    method renderDrillBit (line 359) | public void renderDrillBit(EntityVehicle vehicle, float f)
    method renderFancyTracks (line 370) | public void renderFancyTracks(EntityVehicle vehicle, float f)
    method flipAll (line 378) | @Override
    method translateAll (line 407) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderAAGun.java
  class RenderAAGun (line 13) | public class RenderAAGun extends Render<EntityAAGun>
    method RenderAAGun (line 15) | public RenderAAGun(RenderManager renderManager)
    method render (line 21) | public void render(EntityAAGun aa, double d, double d1, double d2, flo...
    method doRender (line 46) | @Override
    method getEntityTexture (line 52) | @Override
    class Factory (line 58) | public static class Factory implements IRenderFactory<EntityAAGun>
      method createRenderFor (line 60) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderBullet.java
  class RenderBullet (line 13) | public class RenderBullet extends Render<EntityBullet>
    method RenderBullet (line 15) | public RenderBullet(RenderManager renderManager)
    method render (line 21) | public void render(EntityBullet bullet, double d, double d1, double d2...
    method doRender (line 37) | @Override
    method getEntityTexture (line 43) | @Override
    class Factory (line 49) | public static class Factory implements IRenderFactory<EntityBullet>
      method createRenderFor (line 51) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderFlag.java
  class RenderFlag (line 14) | public class RenderFlag extends Render<EntityFlag>
    method RenderFlag (line 21) | public RenderFlag(RenderManager renderManager)
    method doRender (line 27) | @Override
    method getEntityTexture (line 74) | @Override
    class Factory (line 80) | public static class Factory implements IRenderFactory<EntityFlag>
      method createRenderFor (line 82) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderFlagpole.java
  class RenderFlagpole (line 11) | public class RenderFlagpole extends Render<EntityFlagpole>
    method RenderFlagpole (line 17) | public RenderFlagpole(RenderManager renderManager)
    method doRender (line 23) | @Override
    method getEntityTexture (line 38) | @Override
    class Factory (line 44) | public static class Factory implements IRenderFactory<EntityFlagpole>
      method createRenderFor (line 46) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderGrenade.java
  class RenderGrenade (line 18) | public class RenderGrenade extends Render<EntityGrenade> implements Cust...
    method RenderGrenade (line 20) | public RenderGrenade(RenderManager renderManager)
    method doRender (line 26) | @Override
    method getEntityTexture (line 71) | @Override
    method handleRenderType (line 80) | public boolean handleRenderType(ItemStack item, CustomItemRenderType t...
    method renderItem (line 91) | @Override
    class Factory (line 135) | public static class Factory implements IRenderFactory<EntityGrenade>
      method createRenderFor (line 137) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderGun.java
  class RenderGun (line 26) | public class RenderGun implements CustomItemRenderer
    method renderItem (line 33) | @Override
    method renderOffHandGun (line 57) | public void renderOffHandGun(EntityPlayer player, ItemStack offHandIte...
    method renderGun (line 69) | private void renderGun(CustomItemRenderType type, ItemStack item, GunT...
    method renderGun (line 327) | public void renderGun(ItemStack item, GunType type, float f, ModelGun ...

FILE: src/main/java/com/flansmod/client/model/RenderGunItem.java
  class RenderGunItem (line 16) | public class RenderGunItem extends RenderEntityItem
    method RenderGunItem (line 20) | public RenderGunItem(RenderManager renderManager, RenderItem renderItem)
    method doRender (line 26) | @Override
    class Factory (line 46) | public static class Factory implements IRenderFactory<EntityItem>
      method createRenderFor (line 48) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderItemHolder.java
  class RenderItemHolder (line 19) | public class RenderItemHolder extends TileEntitySpecialRenderer<TileEnti...
    method RenderItemHolder (line 21) | public RenderItemHolder()
    method render (line 25) | @Override
    method getTexture (line 90) | protected ResourceLocation getTexture(ItemHolderType type)

FILE: src/main/java/com/flansmod/client/model/RenderMG.java
  class RenderMG (line 12) | public class RenderMG extends Render<EntityMG>
    method RenderMG (line 14) | public RenderMG(RenderManager renderManager)
    method doRender (line 20) | @Override
    method getEntityTexture (line 38) | @Override
    class Factory (line 44) | public static class Factory implements IRenderFactory<EntityMG>
      method createRenderFor (line 46) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderMecha.java
  class RenderMecha (line 39) | public class RenderMecha extends Render<EntityMecha> implements CustomIt...
    method RenderMecha (line 45) | public RenderMecha(RenderManager manager)
    method doRender (line 52) | public void doRender(EntityMecha mecha, double d, double d1, double d2...
    method getEntityTexture (line 386) | @Override
    method renderItem (line 394) | private void renderItem(EntityMecha mecha, ItemStack stack, int par3, ...
    method renderItem (line 444) | @Override
    class Factory (line 497) | public static class Factory implements IRenderFactory<EntityMecha>
      method createRenderFor (line 499) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderNull.java
  class RenderNull (line 17) | public class RenderNull<E extends Entity> extends Render<E>
    method RenderNull (line 21) | public RenderNull(RenderManager renderManager)
    method func_157_a (line 27) | public void func_157_a(Entity entity, double d, double d1, double d2, ...
    method doRender (line 31) | @Override
    method getEntityTexture (line 57) | @Override
    class Factory (line 65) | public static class Factory<E extends Entity> implements IRenderFactor...
      method createRenderFor (line 67) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderParachute.java
  class RenderParachute (line 13) | public class RenderParachute extends Render<EntityParachute>
    method RenderParachute (line 15) | public RenderParachute(RenderManager renderManager)
    method doRender (line 21) | @Override
    method getEntityTexture (line 34) | @Override
    class Factory (line 40) | public static class Factory implements IRenderFactory<EntityParachute>
      method createRenderFor (line 42) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderPlane.java
  class RenderPlane (line 37) | public class RenderPlane extends Render<EntityPlane> implements CustomIt...
    method RenderPlane (line 39) | public RenderPlane(RenderManager renderManager)
    method render (line 46) | public void render(EntityPlane entityPlane, double d, double d1, doubl...
    method shouldRender (line 175) | @Override
    method doRender (line 181) | @Override
    method getEntityTexture (line 187) | @Override
    method renderWorld (line 195) | @SubscribeEvent(priority = EventPriority.HIGHEST)
    method renderItem (line 256) | @Override
    class Factory (line 319) | public static class Factory implements IRenderFactory<EntityPlane>
      method createRenderFor (line 321) | @Override

FILE: src/main/java/com/flansmod/client/model/RenderVehicle.java
  class RenderVehicle (line 36) | public class RenderVehicle extends Render<EntityVehicle> implements Cust...
    method RenderVehicle (line 38) | public RenderVehicle(RenderManager renderManager)
    method render (line 45) | public void render(EntityVehicle vehicle, double d, double d1, double ...
    method doRender (line 282) | @Override
    method getEntityTexture (line 289) | @Override
    method renderItem (line 297) | @Override
    method renderWorld (line 358) | @SubscribeEvent(priority = EventPriority.HIGHEST)
    class Factory (line 420) | public static class Factory implements IRenderFactory<EntityVehicle>
      method createRenderFor (line 422) | @Override

FILE: src/main/java/com/flansmod/client/teams/ClientTeamsData.java
  class ClientTeamsData (line 21) | public class ClientTeamsData
    type RoundFinishedStage (line 23) | public enum RoundFinishedStage
    method Tick (line 42) | public static void Tick()
    method StageFinished (line 94) | private static boolean StageFinished()
    method SwitchTo (line 99) | private static void SwitchTo(RoundFinishedStage s)
    method OpenMenu (line 105) | private static void OpenMenu()
    method SetRoundFinishedData (line 132) | public static void SetRoundFinishedData(RoundFinishedData data)
    method StartTimers (line 145) | public static void StartTimers()
    method UpdateNumVotes (line 156) | public static void UpdateNumVotes(RoundFinishedData data)
    method UnlockReward (line 176) | public static void UnlockReward(int boxHash, int unlockHash)
    method OpenLandingPage (line 211) | public static void OpenLandingPage()
    method OpenEditLoadoutPage (line 216) | public static void OpenEditLoadoutPage(int loadout)
    method OpenTeamSelectPage (line 221) | public static void OpenTeamSelectPage()
    method OpenRewardBox (line 226) | public static void OpenRewardBox(int i)
    method AddRewardBox (line 232) | public static void AddRewardBox(int boxHash)

FILE: src/main/java/com/flansmod/client/tmt/Angle3D.java
  class Angle3D (line 9) | public class Angle3D
    method Angle3D (line 18) | public Angle3D(float x, float y, float z)
    method addAngles (line 32) | public void addAngles(float x, float y, float z)
    method addAngles (line 44) | public void addAngles(Angle3D angles)
    method multiplyAngles (line 58) | public void multiplyAngles(float x, float y, float z)
    method multiplyAngles (line 70) | public void multiplyAngles(Angle3D angles)
    method getCenter (line 84) | public static Angle3D getCenter(Angle3D angles1, Angle3D angles2)
    method copy (line 98) | public Angle3D copy()

FILE: src/main/java/com/flansmod/client/tmt/Bone.java
  class Bone (line 100) | public class Bone
    method Bone (line 110) | public Bone(float x, float y, float z, float l)
    method Bone (line 138) | public Bone(float xOrig, float yOrig, float zOrig, float xRot, float y...
    method Bone (line 154) | public Bone(float x, float y, float z, float l, Bone parent)
    method detachBone (line 163) | public void detachBone()
    method attachBone (line 175) | public void attachBone(Bone parent)
    method setOffset (line 197) | public Vec3d setOffset(float x, float y, float z)
    method resetOffset (line 217) | public void resetOffset()
    method resetOffset (line 227) | public void resetOffset(boolean doRecursive)
    method setNeutralRotation (line 252) | public void setNeutralRotation(float x, float y, float z)
    method getRootParent (line 264) | public Bone getRootParent()
    method addModel (line 278) | public void addModel(ModelRenderer model)
    method addModel (line 291) | public void addModel(ModelRenderer model, boolean inherit)
    method addModel (line 306) | public void addModel(ModelRenderer model, boolean inherit, boolean isU...
    method addModel (line 319) | public void addModel(ModelRenderer model, float x, float y, float z)
    method addModel (line 334) | public void addModel(ModelRenderer model, float x, float y, float z, b...
    method addModel (line 351) | public void addModel(ModelRenderer model, float x, float y, float z, b...
    method removeModel (line 370) | public void removeModel(ModelRenderer model)
    method getAbsoluteAngle (line 383) | public Angle3D getAbsoluteAngle()
    method getPosition (line 394) | public Vec3d getPosition()
    method addChildBone (line 399) | protected void addChildBone(Bone bone)
    method prepareDraw (line 408) | public void prepareDraw()
    method setRotations (line 426) | public void setRotations(float x, float y, float z)
    method setAbsoluteRotations (line 433) | protected void setAbsoluteRotations()
    method setAbsoluteRotations (line 444) | protected void setAbsoluteRotations(float x, float y, float z)
    method setVectorRotations (line 456) | protected void setVectorRotations(Vec3d vector)
    method setVectorRotations (line 464) | protected void setVectorRotations(Vec3d vector, float xRot, float yRot...
    method add (line 494) | protected void add(Vec3d destVec, Vec3d srcVec)
    method setVectors (line 499) | protected void setVectors()
    method setVectors (line 511) | protected void setVectors(Vec3d vector)
    method setAnglesToModels (line 527) | public void setAnglesToModels()

FILE: src/main/java/com/flansmod/client/tmt/Coord2D.java
  class Coord2D (line 9) | public class Coord2D
    method Coord2D (line 11) | public Coord2D(double x, double y)
    method Coord2D (line 20) | public Coord2D(double x, double y, int u, int v)

FILE: src/main/java/com/flansmod/client/tmt/ModelPool.java
  class ModelPool (line 11) | public class ModelPool
    method addFile (line 13) | public static ModelPoolEntry addFile(String file, Class modelClass, Ma...

FILE: src/main/java/com/flansmod/client/tmt/ModelPoolEntry.java
  class ModelPoolEntry (line 9) | public abstract class ModelPoolEntry
    method checkValidPath (line 11) | public File checkValidPath(String path)
    method getModel (line 29) | public abstract void getModel(File file);
    method setGroup (line 38) | protected void setGroup(String groupName)
    method setGroup (line 52) | protected void setGroup(String groupName, Bone bone, double weight)
    method setTextureGroup (line 69) | protected void setTextureGroup(String groupName)
    method applyGroups (line 78) | protected void applyGroups(Map<String, TransformGroup> groupsMap, Map<...

FILE: src/main/java/com/flansmod/client/tmt/ModelPoolObjEntry.java
  class ModelPoolObjEntry (line 11) | public class ModelPoolObjEntry extends ModelPoolEntry
    method ModelPoolObjEntry (line 13) | public ModelPoolObjEntry()
    method getModel (line 18) | @Override

FILE: src/main/java/com/flansmod/client/tmt/ModelRendererTurbo.java
  class ModelRendererTurbo (line 35) | public class ModelRendererTurbo extends ModelRenderer
    method ModelRendererTurbo (line 37) | public ModelRendererTurbo(ModelBase modelbase, String s)
    method ModelRendererTurbo (line 61) | public ModelRendererTurbo(ModelBase modelbase)
    method ModelRendererTurbo (line 74) | public ModelRendererTurbo(ModelBase modelbase, int textureX, int textu...
    method ModelRendererTurbo (line 90) | public ModelRendererTurbo(ModelBase modelbase, int textureX, int textu...
    method addPolygon (line 104) | public void addPolygon(PositionTextureVertex[] verts)
    method addPolygon (line 115) | public void addPolygon(PositionTextureVertex[] verts, int[][] uv)
    method addPolygon (line 139) | public void addPolygon(PositionTextureVertex[] verts, int u1, int v1, ...
    method addPolygonReturn (line 144) | private TexturedPolygon addPolygonReturn(PositionTextureVertex[] verts...
    method addPolygonReturn (line 192) | private TexturedPolygon addPolygonReturn(PositionTextureVertex[] verts...
    method addRectShape (line 256) | public void addRectShape(float[] v, float[] v1, float[] v2, float[] v3...
    method addRectShape (line 279) | public void addRectShape(float[] v, float[] v1, float[] v2, float[] v3...
    method addBox (line 345) | @Override
    method addBox (line 363) | @Override
    method addBox (line 381) | public void addBox(float x, float y, float z, int w, int h, int d, flo...
    method addTrapezoid (line 435) | public void addTrapezoid(float x, float y, float z, int w, int h, int ...
    method addFlexBox (line 567) | public void addFlexBox(float x, float y, float z, int w, int h, int d,...
    method addFlexTrapezoid (line 701) | public void addFlexTrapezoid(float x, float y, float z, int w, int h, ...
    method addBox (line 855) | public void addBox(float x, float y, float z, float w, float h, float d)
    method addShapeBox (line 889) | public void addShapeBox(float x, float y, float z, int w, int h, int d...
    method addShape3D (line 953) | public void addShape3D(float x, float y, float z, Coord2D[] coordinate...
    method addShape3D (line 974) | public void addShape3D(float x, float y, float z, Coord2D[] coordinate...
    method addShape3D (line 993) | public void addShape3D(float x, float y, float z, ArrayList<Coord2D> c...
    method addShape3D (line 1014) | public void addShape3D(float x, float y, float z, ArrayList<Coord2D> c...
    method addShape3D (line 1033) | public void addShape3D(float x, float y, float z, Shape2D shape, float...
    method addShape3D (line 1054) | public void addShape3D(float x, float y, float z, Shape2D shape, float...
    method addShape3D (line 1098) | public void addShape3D(float x, float y, float z, Shape2D shape, float...
    method addShape3D (line 1103) | public void addShape3D(float x, float y, float z, Shape2D shape, float...
    method addPixel (line 1131) | public void addPixel(float x, float y, float z, float width, float hei...
    method addPixel (line 1149) | public void addPixel(float x, float y, float z, float[] scale, int w, ...
    method addSprite (line 1219) | public void addSprite(float x, float y, float z, int w, int h, float e...
    method addSprite (line 1242) | public void addSprite(float x, float y, float z, int w, int h, boolean...
    method addSprite (line 1266) | public void addSprite(float x, float y, float z, int w, int h, int d, ...
    method addSprite (line 1291) | public void addSprite(float x, float y, float z, int w, int h, int d, ...
    method addSprite (line 1324) | public void addSprite(float x, float y, float z, String[] mask, int d,...
    method getPixelSize (line 1431) | private float getPixelSize(float wScale, float hScale, float dScale, i...
    method addSphere (line 1448) | public void addSphere(float x, float y, float z, float r, int segs, in...
    method addCone (line 1547) | public void addCone(float x, float y, float z, float radius, float len...
    method addCone (line 1565) | public void addCone(float x, float y, float z, float radius, float len...
    method addCone (line 1587) | public void addCone(float x, float y, float z, float radius, float len...
    method addCone (line 1613) | public void addCone(float x, float y, float z, float radius, float len...
    method addCylinder (line 1628) | public void addCylinder(float x, float y, float z, float radius, float...
    method addCylinder (line 1648) | public void addCylinder(float x, float y, float z, float radius, float...
    method addCylinder (line 1672) | public void addCylinder(float x, float y, float z, float radius, float...
    method addCylinder (line 1702) | public void addCylinder(float x, float y, float z, float radius, float...
    method addObj (line 1819) | public void addObj(String file)
    method addModel (line 1831) | public void addModel(String file, Class modelFormat)
    method setTextureOffset (line 1855) | @Override
    method setPosition (line 1871) | public void setPosition(float x, float y, float z)
    method doMirror (line 1885) | public void doMirror(boolean x, boolean y, boolean z)
    method setMirrored (line 1906) | public void setMirrored(boolean isMirrored)
    method setFlipped (line 1918) | public void setFlipped(boolean isFlipped)
    method clear (line 1928) | public void clear()
    method copyTo (line 1945) | public void copyTo(PositionTextureVertex[] verts, TexturedPolygon[] poly)
    method copyTo (line 1950) | public void copyTo(PositionTextureVertex[] verts, TexturedPolygon[] po...
    method copyTo (line 1977) | public void copyTo(PositionTextureVertex[] verts, TexturedQuad[] quad)
    method setGroup (line 1995) | public void setGroup(String groupName)
    method setGroup (line 2009) | public void setGroup(String groupName, Bone bone, double weight)
    method getGroup (line 2021) | public TransformGroup getGroup()
    method getGroup (line 2031) | public TransformGroup getGroup(String groupName)
    method setTextureGroup (line 2048) | public void setTextureGroup(String groupName)
    method getTextureGroup (line 2062) | public TextureGroup getTextureGroup()
    method getTextureGroup (line 2073) | public TextureGroup getTextureGroup(String groupName)
    method setGroupTexture (line 2085) | public void setGroupTexture(String s)
    method setDefaultTexture (line 2098) | public void setDefaultTexture(String s)
    method render (line 2108) | @Override
    method render (line 2121) | public void render(float worldScale, boolean oldRotateOrder)
    method renderWithRotation (line 2195) | @Override
    method postRender (line 2228) | @Override
    method callDisplayList (line 2265) | private void callDisplayList()
    method compileDisplayList (line 2287) | private void compileDisplayList(float worldScale)
    method compileLegacyDisplayList (line 2316) | private void compileLegacyDisplayList(float worldScale)

FILE: src/main/java/com/flansmod/client/tmt/PositionTextureVertex.java
  class PositionTextureVertex (line 5) | public class PositionTextureVertex extends net.minecraft.client.model.Po...
    method PositionTextureVertex (line 9) | public PositionTextureVertex(float par1, float par2, float par3, float...
    method PositionTextureVertex (line 14) | public PositionTextureVertex(float par1, float par2, float par3, float...
    method setTexturePosition (line 19) | @Override
    method setTexturePosition (line 25) | public PositionTextureVertex setTexturePosition(float par1, float par2...
    method PositionTextureVertex (line 30) | public PositionTextureVertex(PositionTextureVertex par1PositionTexture...
    method PositionTextureVertex (line 35) | public PositionTextureVertex(PositionTextureVertex par1PositionTexture...
    method PositionTextureVertex (line 41) | public PositionTextureVertex(Vec3d par1Vec3, float par2, float par3)
    method PositionTextureVertex (line 46) | public PositionTextureVertex(Vec3d par1Vec3, float par2, float par3, f...

FILE: src/main/java/com/flansmod/client/tmt/PositionTransformVertex.java
  class PositionTransformVertex (line 7) | public class PositionTransformVertex extends PositionTextureVertex
    method PositionTransformVertex (line 9) | public PositionTransformVertex(float x, float y, float z, float u, flo...
    method PositionTransformVertex (line 14) | public PositionTransformVertex(PositionTextureVertex vertex, float u, ...
    method PositionTransformVertex (line 23) | public PositionTransformVertex(PositionTextureVertex vertex)
    method PositionTransformVertex (line 28) | public PositionTransformVertex(Vec3d vector, float u, float v)
    method setTransformation (line 34) | public void setTransformation()
    method addGroup (line 57) | public void addGroup(TransformGroup group)
    method removeGroup (line 62) | public void removeGroup(TransformGroup group)

FILE: src/main/java/com/flansmod/client/tmt/Shape2D.java
  class Shape2D (line 9) | public class Shape2D
    method Shape2D (line 11) | public Shape2D()
    method Shape2D (line 16) | public Shape2D(Coord2D[] coordArray)
    method Shape2D (line 23) | public Shape2D(ArrayList<Coord2D> coordList)
    method getCoordArray (line 28) | public Coord2D[] getCoordArray()
    method extrude (line 33) | public Shape3D extrude(float x, float y, float z, float rotX, float ro...
    method setVectorRotations (line 119) | protected Vec3d setVectorRotations(Vec3d vector, float xRot, float yRo...

FILE: src/main/java/com/flansmod/client/tmt/Shape3D.java
  class Shape3D (line 3) | public class Shape3D
    method Shape3D (line 5) | public Shape3D(PositionTransformVertex[] verts, TexturedPolygon[] poly)

FILE: src/main/java/com/flansmod/client/tmt/TextureGroup.java
  class TextureGroup (line 9) | public class TextureGroup
    method TextureGroup (line 11) | public TextureGroup()
    method addPoly (line 17) | public void addPoly(TexturedPolygon polygon)
    method loadTexture (line 22) | public void loadTexture()
    method loadTexture (line 27) | public void loadTexture(int defaultTexture)

FILE: src/main/java/com/flansmod/client/tmt/TexturedPolygon.java
  class TexturedPolygon (line 9) | public class TexturedPolygon
    method TexturedPolygon (line 11) | public TexturedPolygon(PositionTextureVertex[] apositionTexturevertex)
    method TexturedPolygon (line 20) | public TexturedPolygon(PositionTextureVertex[] apositionTexturevertex,...
    method setInvertNormal (line 31) | public void setInvertNormal(boolean isSet)
    method setNormals (line 36) | public void setNormals(float x, float y, float z)
    method flipFace (line 41) | public void flipFace()
    method setNormals (line 53) | public void setNormals(ArrayList<Vec3d> vec)
    method draw (line 58) | public void draw(TmtTessellator tessellator, float f)

FILE: src/main/java/com/flansmod/client/tmt/TmtTessellator.java
  class TmtTessellator (line 22) | @SideOnly(Side.CLIENT)
    method TmtTessellator (line 185) | private TmtTessellator(int par1)
    method TmtTessellator (line 190) | public TmtTessellator()
    method draw (line 210) | @Override
    method reset (line 370) | private void reset()
    method startDrawingQuads (line 381) | public void startDrawingQuads()
    method startDrawing (line 389) | public void startDrawing(int par1)
    method setTextureUV (line 411) | public void setTextureUV(double par1, double par3)
    method setTextureUVW (line 422) | public void setTextureUVW(double par1, double par3, double par4)
    method setBrightness (line 430) | public void setBrightness(int par1)
    method setColorOpaque_F (line 440) | public void setColorOpaque_F(float par1, float par2, float par3)
    method setColorRGBA_F (line 448) | public void setColorRGBA_F(float par1, float par2, float par3, float p...
    method setColorOpaque (line 456) | public void setColorOpaque(int par1, int par2, int par3)
    method setColorRGBA (line 464) | public void setColorRGBA(int par1, int par2, int par3, int par4)
    method addVertexWithUV (line 524) | public void addVertexWithUV(double par1, double par3, double par5, dou...
    method addVertexWithUVW (line 530) | public void addVertexWithUVW(double par1, double par3, double par5, do...
    method addVertex (line 540) | public void addVertex(double par1, double par3, double par5)
    method setColorOpaque_I (line 622) | public void setColorOpaque_I(int par1)
    method setColorRGBA_I (line 633) | public void setColorRGBA_I(int par1, int par2)
    method disableColor (line 644) | public void disableColor()
    method setNormal (line 652) | public void setNormal(float par1, float par2, float par3)
    method setTranslation (line 664) | public void setTranslation(double par1, double par3, double par5)
    method addTranslation (line 674) | public void addTranslation(float par1, float par2, float par3)

FILE: src/main/java/com/flansmod/client/tmt/TransformGroup.java
  class TransformGroup (line 5) | public abstract class TransformGroup
    method getWeight (line 7) | public abstract double getWeight();
    method doTransformation (line 9) | public abstract Vec3d doTransformation(PositionTransformVertex vertex);

FILE: src/main/java/com/flansmod/client/tmt/TransformGroupBone.java
  class TransformGroupBone (line 11) | public class TransformGroupBone extends TransformGroup
    method TransformGroupBone (line 13) | public TransformGroupBone(Bone bone, double wght)
    method getBaseAngles (line 21) | public Angle3D getBaseAngles()
    method getTransformAngle (line 26) | public Angle3D getTransformAngle()
    method getBaseVector (line 35) | public Vec3d getBaseVector()
    method getTransformVector (line 40) | public Vec3d getTransformVector()
    method getCurrentVector (line 45) | public Vec3d getCurrentVector()
    method getWeight (line 50) | @Override
    method attachBone (line 56) | public void attachBone(Bone bone)
    method doTransformation (line 63) | @Override
    method setVectorRotations (line 74) | protected void setVectorRotations(Vec3d vector, float xRot, float yRot...

FILE: src/main/java/com/flansmod/client/util/FlansKeyConflictContext.java
  type FlansKeyConflictContext (line 11) | @SideOnly(Side.CLIENT)
    method isActive (line 16) | @Override
    method conflicts (line 24) | @Override
    method isActive (line 33) | @Override
    method conflicts (line 40) | @Override

FILE: src/main/java/com/flansmod/client/util/WorldRenderer.java
  class WorldRenderer (line 6) | public class WorldRenderer
    method WorldRenderer (line 10) | public WorldRenderer()
    method startDrawingQuads (line 15) | public void startDrawingQuads()
    method addVertexWithUV (line 21) | public void addVertexWithUV(double x, double y, double z, double u, do...
    method draw (line 26) | public void draw()

FILE: src/main/java/com/flansmod/common/BlockFlansWorkbench.java
  class BlockFlansWorkbench (line 17) | public class BlockFlansWorkbench extends Block
    method BlockFlansWorkbench (line 21) | public BlockFlansWorkbench(int j, int k)
    method getSubBlocks (line 31) | @Override
    method onBlockActivated (line 42) | @Override
    method createBlockState (line 58) | @Override
    method getStateFromMeta (line 64) | @Override
    method getMetaFromState (line 70) | @Override
    method damageDropped (line 76) | @Override

FILE: src/main/java/com/flansmod/common/BlockItemHolder.java
  class BlockItemHolder (line 23) | public class BlockItemHolder extends BlockContainer
    method BlockItemHolder (line 28) | public BlockItemHolder(ItemHolderType type)
    method doesSideBlockRendering (line 44) | @Override
    method onBlockPlacedBy (line 50) | @Override
    method getStateFromMeta (line 57) | @Override
    method getMetaFromState (line 63) | @Override
    method createBlockState (line 70) | @Override
    method canPlaceBlockAt (line 77) | @Override
    method getBoundingBox (line 85) | @Override
    method isOpaqueCube (line 91) | @Override
    method isFullCube (line 97) | @Override
    method createNewTileEntity (line 103) | @Override
    method onBlockActivated (line 109) | @Override
    method breakBlock (line 138) | @Override

FILE: src/main/java/com/flansmod/common/CommonGuiHandler.java
  class CommonGuiHandler (line 14) | public class CommonGuiHandler implements IGuiHandler
    method getServerGuiElement (line 16) | @Override
    method getClientGuiElement (line 22) | @Override
    method openGunBoxGui (line 28) | @SideOnly(Side.CLIENT)

FILE: src/main/java/com/flansmod/common/CommonProxy.java
  class CommonProxy (line 42) | public class CommonProxy
    method LoadAssetsFromFlanFolder (line 46) | public void LoadAssetsFromFlanFolder()
    method addMissingJSONs (line 51) | public void addMissingJSONs(HashMap<Integer, InfoType> types)
    method preInit (line 59) | public void preInit()
    method init (line 63) | public void init()
    method forceReload (line 67) | public void forceReload()
    method registerRenderers (line 71) | public void registerRenderers()
    method doTutorialStuff (line 75) | public void doTutorialStuff(EntityPlayer player, EntityDriveable entit...
    method changeControlMode (line 79) | public void changeControlMode(EntityPlayer player)
    method mouseControlEnabled (line 83) | public boolean mouseControlEnabled()
    method openDriveableMenu (line 88) | public void openDriveableMenu(EntityPlayer player, World world, Entity...
    method loadModel (line 92) | public <T> T loadModel(String s, String shortName, Class<T> typeClass)
    method loadSound (line 97) | public void loadSound(String contentPack, String type, String sound)
    method isThePlayer (line 101) | public boolean isThePlayer(EntityPlayer player)
    method buyGun (line 106) | public void buyGun(GunBoxType type, InfoType gun)
    method getClientGui (line 113) | public Object getClientGui(int ID, EntityPlayer player, World world, i...
    method getServerGui (line 121) | public Container getServerGui(int ID, EntityPlayer player, World world...
    method playBlockBreakSound (line 147) | public void playBlockBreakSound(int x, int y, int z, Block blockHit)
    method craftDriveable (line 152) | public void craftDriveable(EntityPlayer player, DriveableType type)
    method repairDriveable (line 293) | public void repairDriveable(EntityPlayer driver, EntityDriveable drivi...
    method isScreenOpen (line 354) | public boolean isScreenOpen()
    method isKeyDown (line 359) | public boolean isKeyDown(int key)
    method keyDown (line 364) | public boolean keyDown(int keycode)
    method buyArmour (line 369) | public void buyArmour(String shortName, int piece, ArmourBoxType type)

FILE: src/main/java/com/flansmod/common/CommonTickHandler.java
  class CommonTickHandler (line 9) | public class CommonTickHandler
    method CommonTickHandler (line 11) | public CommonTickHandler()
    method tick (line 16) | @SubscribeEvent
    method tick (line 33) | @SubscribeEvent

FILE: src/main/java/com/flansmod/common/ContentManager.java
  class ContentManager (line 62) | public class ContentManager
    class ContentPackMod (line 64) | public class ContentPackMod implements IFlansModContentProvider
      method ContentPackMod (line 66) | public ContentPackMod(ModContainer c, IFlansModContentProvider p)
      method GetContentFolder (line 74) | @Override
      method RegisterModelRedirects (line 80) | @Override
    class ContentPackFlanFolder (line 87) | public class ContentPackFlanFolder implements IFlansModContentProvider
      method ContentPackFlanFolder (line 89) | public ContentPackFlanFolder(String n, File f) { folder = f; name = ...
      method GetContentFolder (line 93) | @Override
      method RegisterModelRedirects (line 99) | @Override
    method LoadedAnyContentFromFlanFolder (line 156) | public boolean LoadedAnyContentFromFlanFolder()
    method FindContentInFlanFolder (line 161) | public void FindContentInFlanFolder()
    method LoadAssetsFromFlanFolder (line 185) | public void LoadAssetsFromFlanFolder()
    method RegisterModelRedirects (line 190) | public void RegisterModelRedirects()
    method FindContentInModsFolder (line 196) | public void FindContentInModsFolder()
    method LoadTypesFromDirectory (line 232) | private void LoadTypesFromDirectory(String contentPackName, File conte...
    method LoadTypesFromArchive (line 274) | private void LoadTypesFromArchive(String contentPackName, File content...
    method LoadTypes (line 329) | public void LoadTypes()
    method CreateItems (line 366) | public void CreateItems()
    method GetFolderContentPacks (line 431) | public List<File> GetFolderContentPacks()

FILE: src/main/java/com/flansmod/common/CraftingInstance.java
  class CraftingInstance (line 11) | public class CraftingInstance
    method CraftingInstance (line 24) | public CraftingInstance(IInventory i, List<ItemStack> in, List<ItemSta...
    method CraftingInstance (line 31) | public CraftingInstance(IInventory i, ArrayList<ItemStack> in, ItemSta...
    method canCraft (line 36) | public boolean canCraft()
    method craft (line 58) | public void craft(EntityPlayer player)

FILE: src/main/java/com/flansmod/common/CreativeTabFlan.java
  class CreativeTabFlan (line 18) | public class CreativeTabFlan extends CreativeTabs
    method CreativeTabFlan (line 24) | public CreativeTabFlan(int i)
    method createIcon (line 30) | @Override
    method displayAllRelevantItems (line 46) | @Override
    class ItemSorter (line 55) | private static class ItemSorter implements Comparator<ItemStack>
      method compare (line 57) | @Override

FILE: src/main/java/com/flansmod/common/EntityItemCustomRender.java
  class EntityItemCustomRender (line 8) | public class EntityItemCustomRender extends EntityItem
    method EntityItemCustomRender (line 10) | public EntityItemCustomRender(Entity entity, ItemStack itemStack)
    method EntityItemCustomRender (line 19) | public EntityItemCustomRender(World world, double posX, double posY, d...
    method EntityItemCustomRender (line 24) | public EntityItemCustomRender(World world)
    method EntityItemCustomRender (line 29) | public EntityItemCustomRender(World w, double x, double y, double z)

FILE: src/main/java/com/flansmod/common/FlansHooks.java
  class FlansHooks (line 7) | public class FlansHooks
    method hook (line 16) | public void hook()
    method getBuildCraftItem (line 27) | public ItemStack getBuildCraftItem(String name)

FILE: src/main/java/com/flansmod/common/FlansMod.java
  class FlansMod (line 143) | @Mod(modid = FlansMod.MODID, name = "Flan's Mod", version = FlansMod.VER...
    method Pick (line 215) | public static float Pick(float totalWeight)
    method RegisterModelRedirect (line 226) | public static void RegisterModelRedirect(String key, String redirect)
    method preInit (line 234) | @EventHandler
    method init (line 314) | @EventHandler
    method registerRecipes (line 346) | @SubscribeEvent
    method registerItems (line 409) | @SubscribeEvent
    method registerBlocks (line 429) | @SubscribeEvent
    method registerEntities (line 445) | @SubscribeEvent
    method registerLoot (line 490) | @SubscribeEvent
    class FMLootFunction (line 542) | private class FMLootFunction extends LootFunction
      method FMLootFunction (line 546) | protected FMLootFunction(LootCondition[] conditionsIn)
      method apply (line 551) | @Override
    method postInit (line 563) | @EventHandler
    method playerDrops (line 574) | @SubscribeEvent
    method playerDrops (line 586) | @SubscribeEvent
    method registerCommand (line 597) | @EventHandler
    method onConfigChanged (line 604) | @SubscribeEvent
    method onLivingSpecialSpawn (line 611) | @SubscribeEvent
    method onAttackEntity (line 654) | @SubscribeEvent
    method getTypeFiles (line 666) | private void getTypeFiles(List<File> contentPacks)
    method getPacketHandler (line 764) | public static PacketHandler getPacketHandler()
    method syncConfig (line 769) | public static void syncConfig()
    method Assert (line 781) | public static void Assert(boolean b, String string)
    method getParticleType (line 789) | public static EnumParticleTypes getParticleType(String s)

FILE: src/main/java/com/flansmod/common/FlansModExplosion.java
  class FlansModExplosion (line 38) | public class FlansModExplosion extends Explosion
    method FlansModExplosion (line 54) | public FlansModExplosion(World world, Entity entity, Optional<? extend...
    method doExplosionA (line 87) | @Override
    method doExplosionB (line 208) | public void doExplosionB(boolean spawnParticles)
    method getPlayerKnockbackMap (line 273) | @Override
    method clearAffectedBlockPositions (line 279) | @Override
    method getAffectedBlockPositions (line 285) | @Override
    method getPosition (line 291) | @Override

FILE: src/main/java/com/flansmod/common/IFlansModContentProvider.java
  type IFlansModContentProvider (line 3) | public interface IFlansModContentProvider
    method GetContentFolder (line 6) | public String GetContentFolder();
    method RegisterModelRedirects (line 7) | public void RegisterModelRedirects();

FILE: src/main/java/com/flansmod/common/ItemBlockManyNames.java
  class ItemBlockManyNames (line 8) | public class ItemBlockManyNames extends ItemBlock
    method ItemBlockManyNames (line 11) | public ItemBlockManyNames(Block b)
    method getTranslationKey (line 18) | @Override
    method getMetadata (line 24) | @Override
    method getCreativeTabs (line 30) | @Override

FILE: src/main/java/com/flansmod/common/ItemHolderType.java
  class ItemHolderType (line 18) | public class ItemHolderType extends InfoType
    method ItemHolderType (line 27) | public ItemHolderType(TypeFile file)
    method preRead (line 32) | @Override
    method postRead (line 37) | @Override
    method read (line 43) | @Override
    method registerItem (line 59) | @Override
    method registerBlock (line 66) | @Override
    method getItemHolder (line 72) | public static ItemHolderType getItemHolder(String string)
    method reloadModel (line 80) | @Override
    method GetModel (line 86) | @Override

FILE: src/main/java/com/flansmod/common/ModuloHelper.java
  class ModuloHelper (line 3) | public class ModuloHelper
    method divide (line 5) | public static int divide(int x, int y)
    method modulo (line 11) | public static int modulo(int x, int y)
    method modulo (line 17) | public static double modulo(double x, double y)

FILE: src/main/java/com/flansmod/common/PlayerData.java
  class PlayerData (line 25) | public class PlayerData
    method GetShootTime (line 91) | public float GetShootTime(EnumHand hand)
    method SetShootTime (line 96) | public void SetShootTime(EnumHand hand, float set)
    method GetBurstRoundsRemaining (line 102) | public int GetBurstRoundsRemaining(EnumHand hand)
    method SetBurstRoundsRemaining (line 107) | public void SetBurstRoundsRemaining(EnumHand hand, int set)
    method PlayerData (line 158) | public PlayerData(String name)
    method tick (line 164) | public void tick(EntityPlayer player)
    method clientTick (line 194) | public void clientTick(EntityPlayer player)
    method getPlayerClass (line 198) | public IPlayerClass getPlayerClass()
    method resetScore (line 205) | public void resetScore()
    method playerKilled (line 212) | public void playerKilled()
    method isValidOffHandWeapon (line 219) | public boolean isValidOffHandWeapon(EntityPlayer player, int slot)
    method doMelee (line 237) | public void doMelee(EntityPlayer player, int meleeTime, GunType type)
    method WriteToFile (line 260) | public void WriteToFile()
    method ReadFromFile (line 265) | public void ReadFromFile()

FILE: src/main/java/com/flansmod/common/PlayerHandler.java
  class PlayerHandler (line 29) | public class PlayerHandler
    method PlayerHandler (line 36) | public PlayerHandler()
    method onEntityHurt (line 50) | @SubscribeEvent
    method onEntityKilled (line 61) | @SubscribeEvent
    method serverTick (line 71) | public void serverTick()
    method clientTick (line 87) | public void clientTick()
    method getPlayerData (line 98) | public static PlayerData getPlayerData(EntityPlayer player)
    method getPlayerData (line 105) | public static PlayerData getPlayerData(String username)
    method getPlayerData (line 110) | public static PlayerData getPlayerData(EntityPlayer player, Side side)
    method getPlayerData (line 117) | public static PlayerData getPlayerData(String username, Side side)
    method onPlayerEvent (line 132) | @SubscribeEvent
    method roundEnded (line 171) | public static void roundEnded()

FILE: src/main/java/com/flansmod/common/RotatedAxes.java
  class RotatedAxes (line 6) | public class RotatedAxes
    method RotatedAxes (line 8) | public RotatedAxes()
    method RotatedAxes (line 14) | public RotatedAxes(Matrix4f mat)
    method RotatedAxes (line 20) | public RotatedAxes(float yaw, float pitch, float roll)
    method clone (line 25) | @Override
    method isValid (line 34) | public boolean isValid()
    method setAngles (line 45) | public void setAngles(float yaw, float pitch, float roll)
    method getYaw (line 53) | public float getYaw()
    method getPitch (line 58) | public float getPitch()
    method getRoll (line 63) | public float getRoll()
    method getXAxis (line 68) | public Vector3f getXAxis()
    method getYAxis (line 73) | public Vector3f getYAxis()
    method getZAxis (line 78) | public Vector3f getZAxis()
    method getMatrix (line 83) | public Matrix4f getMatrix()
    method rotateLocalYaw (line 89) | public void rotateLocalYaw(float rotateBy)
    method rotateLocalPitch (line 96) | public void rotateLocalPitch(float rotateBy)
    method rotateLocalRoll (line 103) | public void rotateLocalRoll(float rotateBy)
    method rotateGlobalYaw (line 110) | public RotatedAxes rotateGlobalYaw(float rotateBy)
    method rotateGlobalPitch (line 118) | public RotatedAxes rotateGlobalPitch(float rotateBy)
    method rotateGlobalRoll (line 126) | public RotatedAxes rotateGlobalRoll(float rotateBy)
    method rotateGlobalYawInRads (line 134) | public RotatedAxes rotateGlobalYawInRads(float rotateBy)
    method rotateGlobalPitchInRads (line 142) | public RotatedAxes rotateGlobalPitchInRads(float rotateBy)
    method rotateGlobalRollInRads (line 150) | public RotatedAxes rotateGlobalRollInRads(float rotateBy)
    method rotateLocal (line 158) | public void rotateLocal(float rotateBy, Vector3f rotateAround)
    method rotateGlobal (line 165) | public void rotateGlobal(float rotateBy, Vector3f rotateAround)
    method findGlobalVectorLocally (line 172) | public Vector3f findGlobalVectorLocally(Vector3f in)
    method findLocalVectorGlobally (line 187) | public Vector3f findLocalVectorGlobally(Vector3f in)
    method convertAnglesToMatrix (line 201) | private void convertAnglesToMatrix()
    method convertMatrixToAngles (line 211) | private void convertMatrixToAngles()
    method findLocalAxesGlobally (line 251) | public RotatedAxes findLocalAxesGlobally(RotatedAxes in)
    method toString (line 264) | @Override

FILE: src/main/java/com/flansmod/common/TileEntityItemHolder.java
  class TileEntityItemHolder (line 11) | public class TileEntityItemHolder extends TileEntity implements IInventory
    method TileEntityItemHolder (line 16) | public TileEntityItemHolder()
    method TileEntityItemHolder (line 21) | public TileEntityItemHolder(ItemHolderType type)
    method getName (line 26) | @Override
    method hasCustomName (line 32) | @Override
    method getDisplayName (line 38) | @Override
    method getSizeInventory (line 44) | @Override
    method getStackInSlot (line 50) | @Override
    method decrStackSize (line 56) | @Override
    method setInventorySlotContents (line 69) | @Override
    method getInventoryStackLimit (line 75) | @Override
    method isUsableByPlayer (line 81) | @Override
    method openInventory (line 87) | @Override
    method closeInventory (line 92) | @Override
    method isItemValidForSlot (line 97) | @Override
    method getField (line 103) | @Override
    method setField (line 109) | @Override
    method getFieldCount (line 114) | @Override
    method clear (line 120) | @Override
    method writeToNBT (line 125) | @Override
    method readFromNBT (line 138) | @Override
    method getUpdatePacket (line 148) | @Override
    method onDataPacket (line 156) | @Override
    method getUpdateTag (line 162) | @Override
    method getStack (line 168) | public ItemStack getStack()
    method setStack (line 173) | public void setStack(ItemStack stack)
    method isEmpty (line 179) | @Override
    method removeStackFromSlot (line 185) | @Override
    method updateToClients (line 194) | private void updateToClients()

FILE: src/main/java/com/flansmod/common/driveables/CollisionBox.java
  class CollisionBox (line 5) | public class CollisionBox
    method CollisionBox (line 24) | public CollisionBox(int health, int x, int y, int z, int w, int h, int d)
    method Max (line 35) | public double Max()
    method getCentre (line 46) | public Vector3f getCentre()

FILE: src/main/java/com/flansmod/common/driveables/CollisionSurface.java
  class CollisionSurface (line 5) | public class CollisionSurface
    method CollisionSurface (line 16) | public CollisionSurface(Vector3f o, Vector3f u1, Vector3f v1)

FILE: src/main/java/com/flansmod/common/driveables/ContainerDriveableInventory.java
  class ContainerDriveableInventory (line 10) | public class ContainerDriveableInventory extends Container
    method ContainerDriveableInventory (line 20) | public ContainerDriveableInventory(InventoryPlayer inventoryplayer, Wo...
    method updateScroll (line 112) | public void updateScroll(int scrololol)
    method canInteractWith (line 150) | @Override
    method transferStackInSlot (line 156) | @Override

FILE: src/main/java/com/flansmod/common/driveables/ContainerDriveableMenu.java
  class ContainerDriveableMenu (line 10) | public class ContainerDriveableMenu extends Container
    method ContainerDriveableMenu (line 13) | public ContainerDriveableMenu(InventoryPlayer inventoryplayer, World w...
    method ContainerDriveableMenu (line 18) | public ContainerDriveableMenu(InventoryPlayer inventoryplayer, World w...
    method transferStackInSlot (line 47) | @Override
    method canInteractWith (line 93) | @Override

FILE: src/main/java/com/flansmod/common/driveables/DriveableData.java
  class DriveableData (line 16) | public class DriveableData implements IInventory
    method DriveableData (line 51) | public DriveableData(NBTTagCompound tags, int paintjobID)
    method DriveableData (line 57) | public DriveableData(NBTTagCompound tags)
    method readFromNBT (line 63) | public void readFromNBT(NBTTagCompound tag)
    method writeToNBT (line 106) | public void writeToNBT(NBTTagCompound tag)
    method getSizeInventory (line 140) | @Override
    method getStackInSlot (line 146) | @Override
    method decrStackSize (line 174) | @Override
    method setInventorySlotContents (line 226) | @Override
    method getInventoryStackLimit (line 255) | @Override
    method markDirty (line 261) | @Override
    method isUsableByPlayer (line 266) | @Override
    method getAmmoInventoryStart (line 272) | public int getAmmoInventoryStart()
    method getBombInventoryStart (line 277) | public int getBombInventoryStart()
    method getMissileInventoryStart (line 282) | public int getMissileInventoryStart()
    method getCargoInventoryStart (line 287) | public int getCargoInventoryStart()
    method getFuelSlot (line 292) | public int getFuelSlot()
    method isItemValidForSlot (line 297) | @Override
    method getName (line 324) | @Override
    method hasCustomName (line 330) | @Override
    method getDisplayName (line 336) | @Override
    method openInventory (line 342) | @Override
    method closeInventory (line 347) | @Override
    method getField (line 352) | @Override
    method setField (line 358) | @Override
    method getFieldCount (line 364) | @Override
    method clear (line 370) | @Override
    method isEmpty (line 376) | @Override
    method removeStackFromSlot (line 382) | @Override

FILE: src/main/java/com/flansmod/common/driveables/DriveablePart.java
  class DriveablePart (line 9) | public class DriveablePart
    method DriveablePart (line 22) | public DriveablePart(EnumDriveablePart e, CollisionBox b)
    method update (line 29) | public void update(EntityDriveable driveable)
    method writeToNBT (line 44) | public void writeToNBT(NBTTagCompound tags)
    method readFromNBT (line 50) | public void readFromNBT(NBTTagCompound tags)
    method smashIntoGround (line 67) | public float smashIntoGround(EntityDriveable driveable, float damage)
    method rayTrace (line 87) | public DriveableHit rayTrace(EntityDriveable driveable, Vector3f origi...
    method hitByBullet (line 177) | public void hitByBullet(BulletType type, float damage)
    method coordIsEntering (line 198) | private boolean coordIsEntering(float start, float end, float min, flo...
    method coordIsIn (line 219) | private boolean coordIsIn(float start, float end, float min, float max)
    method attack (line 235) | public boolean attack(float damage, boolean fireDamage)

FILE: src/main/java/com/flansmod/common/driveables/DriveablePosition.java
  class DriveablePosition (line 8) | public class DriveablePosition
    method DriveablePosition (line 19) | public DriveablePosition(Vector3f v, EnumDriveablePart p)
    method DriveablePosition (line 25) | public DriveablePosition(String[] split)

FILE: src/main/java/com/flansmod/common/driveables/DriveableType.java
  class DriveableType (line 29) | public abstract class DriveableType extends PaintableType
    class ShootParticle (line 114) | public static class ShootParticle
      method ShootParticle (line 116) | public ShootParticle(String s, float x1, float y1, float z1)
    method DriveableType (line 879) | public DriveableType(TypeFile file)
    method preRead (line 884) | @Override
    method postRead (line 926) | @Override
    method read (line 932) | @Override
    method createDriveable (line 961) | public abstract EntityDriveable createDriveable(World world, double x,...
    method getShootPoint (line 963) | private DriveablePosition getShootPoint(String[] split)
    method shootPoints (line 977) | public List<ShootPoint> shootPoints(boolean s)
    method alternate (line 982) | public boolean alternate(boolean s)
    method weaponType (line 987) | public EnumWeaponType weaponType(boolean s)
    method shootDelay (line 992) | public int shootDelay(boolean s)
    method shootSound (line 997) | public String shootSound(boolean s)
    method numEngines (line 1002) | public int numEngines()
    method ammoSlots (line 1007) | public int ammoSlots()
    method isValidAmmo (line 1012) | public boolean isValidAmmo(BulletType bulletType, EnumWeaponType weapo...
    method getItemsRequired (line 1021) | public ArrayList<ItemStack> getItemsRequired(DriveablePart part, PartT...
    method getDriveable (line 1050) | public static DriveableType getDriveable(String find)
    method addLoot (line 1060) | @Override
    class ParticleEmitter (line 1066) | public class ParticleEmitter
    method GetModel (line 1110) | @Override
    method GetRecommendedScale (line 1117) | @Override

FILE: src/main/java/com/flansmod/common/driveables/EntityDamageSourceCollision.java
  class EntityDamageSourceCollision (line 5) | public class EntityDamageSourceCollision extends EntityDamageSource
    method EntityDamageSourceCollision (line 9) | public EntityDamageSourceCollision(EntityDriveable driveable)

FILE: src/main/java/com/flansmod/common/driveables/EntityDriveable.java
  class EntityDriveable (line 73) | public abstract class EntityDriveable extends Entity implements IControl...
    method EntityDriveable (line 147) | public EntityDriveable(World world)
    method EntityDriveable (line 158) | public EntityDriveable(World world, DriveableType t, DriveableData d)
    method initType (line 166) | protected void initType(DriveableType type, boolean firstSpawn, boolea...
    method isInRangeToRender3d (line 196) | @SideOnly(Side.CLIENT)
    method writeEntityToNBT (line 208) | @Override
    method readEntityFromNBT (line 218) | @Override
    method writeSpawnData (line 231) | @Override
    method readSpawnData (line 253) | @Override
    method onMouseMoved (line 294) | @Override
    method getCamera (line 297) | @Override
    method canSit (line 304) | protected boolean canSit(int seat)
    method canTriggerWalking (line 309) | @Override
    method entityInit (line 315) | @Override
    method getCollisionBox (line 320) | @Override
    method canBePushed (line 326) | @Override
    method getMountedYOffset (line 332) | @Override
    method getYOffset (line 338) | @Override
    method attackEntityFrom (line 347) | @Override
    method setDead (line 353) | @Override
    method reportVehicleError (line 373) | @SideOnly(Side.CLIENT)
    method canBeCollidedWith (line 380) | @Override
    method applyEntityCollision (line 386) | @Override
    method setPositionAndRotationDirect (line 393) | @Override
    method setPositionRotationAndMotion (line 427) | public void setPositionRotationAndMotion(double x, double y, double z,...
    method setVelocity (line 458) | @Override
    method serverHandleKeyPress (line 466) | @Override
    method pressKey (line 491) | @Override
    method updateKeyHeldState (line 540) | @Override
    method shoot (line 561) | public void shoot(boolean secondary)
    method driverIsCreative (line 590) | public boolean driverIsCreative()
    method getDriver (line 596) | public EntityPlayer getDriver()
    method shootFromPoint (line 608) | private void shootFromPoint(
    method fireGun (line 639) | private void fireGun(DriveableType type, ShootPoint shootPoint, int sh...
    method fireShell (line 697) | private void fireShell(DriveableType type, boolean secondary, EnumWeap...
    method dropBomb (line 716) | private void dropBomb(DriveableType type, boolean secondary, EnumWeapo...
    method getSpeed (line 735) | public double getSpeed()
    method getOrigin (line 740) | public Vector3f getOrigin(ShootPoint shootPoint)
    method getLookVector (line 759) | public Vector3f getLookVector(ShootPoint shootPoint)
    method shootProjectile (line 764) | private void shootProjectile(final Integer slot, Vector3f gunVec, Vect...
    method onUpdate (line 815) | @Override
    method PostUpdate (line 1229) | public void PostUpdate()
    method tryRecoil (line 1249) | public void tryRecoil()
    method setRecoilTimer (line 1268) | public void setRecoilTimer()
    method getRandPosInBoundingBox (line 1287) | private Vector3f getRandPosInBoundingBox(DriveablePart part)
    method moveTowardServerPosition (line 1296) | protected void moveTowardServerPosition()
    method checkForCollisions (line 1312) | public void checkForCollisions()
    method fall (line 1375) | @Override
    method attackPart (line 1389) | public boolean attackPart(EnumDriveablePart ep, DamageSource source, f...
    method rotate (line 1399) | public Vector3f rotate(Vector3f inVec)
    method rotate (line 1408) | public Vector3f rotate(Vec3d inVec)
    method rotate (line 1417) | public Vector3f rotate(double x, double y, double z)
    method rotateYaw (line 1425) | public void rotateYaw(float rotateBy)
    method rotatePitch (line 1436) | public void rotatePitch(float rotateBy)
    method rotateRoll (line 1447) | public void rotateRoll(float rotateBy)
    method updatePrevAngles (line 1455) | public void updatePrevAngles()
    method setRotation (line 1477) | public void setRotation(float rotYaw, float rotPitch, float rotRoll)
    method isPartOfThis (line 1483) | public boolean isPartOfThis(Entity entity)
    method getDriveableType (line 1502) | public DriveableType getDriveableType()
    method getDriveableData (line 1507) | public DriveableData getDriveableData()
    method isDead (line 1512) | @Override
    method getControllingEntity (line 1518) | @Override
    method getPickedResult (line 1524) | @Override
    method hasFuel (line 1535) | public boolean hasFuel()
    method hasEnoughFuel (line 1542) | public boolean hasEnoughFuel()
    method getSpeedXYZ (line 1550) | public double getSpeedXYZ()
    method getSpeedXZ (line 1555) | public double getSpeedXZ()
    method landVehicle (line 1563) | public boolean landVehicle()
    method gearDown (line 1571) | public boolean gearDown()
    method onGround (line 1579) | public boolean onGround()
    method attackFromBullet (line 1589) | public ArrayList<BulletHit> attackFromBullet(Vector3f origin, Vector3f...
    method bulletHit (line 1613) | public float bulletHit(BulletType bulletType, float damage, DriveableH...
    method raytraceParts (line 1633) | public DriveablePart raytraceParts(Vector3f origin, Vector3f motion)
    method canHitPart (line 1654) | public boolean canHitPart(EnumDriveablePart part)
    method checkParts (line 1663) | public void checkParts()
    method killPart (line 1692) | private void killPart(DriveablePart part)
    method getPartLocalVectorGlobally (line 1762) | private Vector3f getPartLocalVectorGlobally(DriveablePart part)
    method dropItemsOnPartDeath (line 1773) | protected abstract void dropItemsOnPartDeath(Vector3f midpoint, Drivea...
    method getPlayerRoll (line 1775) | @Override
    method getPrevPlayerRoll (line 1781) | @Override
    method explode (line 1787) | @Override
    method getCameraDistance (line 1793) | @Override
    method isPartIntact (line 1799) | public boolean isPartIntact(EnumDriveablePart part)
    method hasMouseControlMode (line 1805) | public abstract boolean hasMouseControlMode();
    method getBombInventoryName (line 1807) | public abstract String getBombInventoryName();
    method getMissileInventoryName (line 1809) | public abstract String getMissileInventoryName();
    method rotateWithTurret (line 1811) | public boolean rotateWithTurret(Seat seat)
    method getName (line 1816) | @Override
    method showInventory (line 1822) | @SideOnly(Side.CLIENT)
    method getShootDelay (line 1828) | public float getShootDelay(boolean secondary)
    method getMinigunSpeed (line 1833) | public float getMinigunSpeed(boolean secondary)
    method getCurrentShootPointIndex (line 1838) | public int getCurrentShootPointIndex(boolean secondary)
    method setShootDelay (line 1843) | public void setShootDelay(float f, boolean secondary)
    method setMinigunSpeed (line 1850) | public void setMinigunSpeed(float f, boolean secondary)
    method setCurrentShootPointIndex (line 1857) | public void setCurrentShootPointIndex(int i, boolean secondary)
    method canFitPassenger (line 1865) | @Override
    method updatePassenger (line 1876) | @Override
    method removePassenger (line 1882) | @Override
    method getSeat (line 1888) | public EntitySeat getSeat(EntityLivingBase passenger)
    method addPassenger (line 1900) | @Override
    method registerSeat (line 1910) | public void registerSeat(EntitySeat seat)
    method registerWheel (line 1915) | public void registerWheel(EntityWheel wheel)
    method getSeats (line 1920) | public EntitySeat[] getSeats()
    method getSeat (line 1925) | public EntitySeat getSeat(int id)
    method getWheel (line 1947) | public EntityWheel getWheel(int id)
    method togglePerspective (line 1968) | @SideOnly(Side.CLIENT)

FILE: src/main/java/com/flansmod/common/driveables/EntityPlane.java
  class EntityPlane (line 25) | public class EntityPlane extends EntityDriveable
    method EntityPlane (line 60) | public EntityPlane(World world)
    method EntityPlane (line 65) | public EntityPlane(World world, double x, double y, double z, PlaneTyp...
    method EntityPlane (line 75) | public EntityPlane(World world, double x, double y, double z, EntityPl...
    method initType (line 83) | @Override
    method writeEntityToNBT (line 90) | @Override
    method readEntityFromNBT (line 100) | @Override
    method onMouseMoved (line 115) | @Override
    method setPositionRotationAndMotion (line 132) | @Override
    method processInitialInteract (line 142) | @Override
    method serverHandleKeyPress (line 172) | public boolean serverHandleKeyPress(int key, EntityPlayer player)
    method pressKey (line 177) | @Override
    method updateKeyHeldState (line 314) | @Override
    method onUpdate (line 320) | @Override
    method canThrust (line 745) | public boolean canThrust()
    method setDead (line 752) | @Override
    method gearDown (line 758) | @Override
    method hasWorkingProp (line 764) | private boolean hasWorkingProp()
    method attackEntityFrom (line 778) | public boolean attackEntityFrom(DamageSource damagesource, float i, bo...
    method canHitPart (line 798) | @Override
    method attackEntityFrom (line 805) | @Override
    method getPlaneType (line 811) | public PlaneType getPlaneType()
    method dropItemsOnPartDeath (line 816) | @Override
    method getBombInventoryName (line 821) | @Override
    method getMissileInventoryName (line 827) | @Override
    method hasMouseControlMode (line 833) | @Override

FILE: src/main/java/com/flansmod/common/driveables/EntitySeat.java
  class EntitySeat (line 47) | public class EntitySeat extends Entity implements IControllable, IEntity...
    method EntitySeat (line 102) | public EntitySeat(World world)
    method EntitySeat (line 115) | public EntitySeat(World world, EntityDriveable d, int id)
    method onUpdate (line 130) | @Override
    method updateSeatRotation (line 215) | @SideOnly(Side.CLIENT)
    method updatePosition (line 394) | public void updatePosition()
    method getCamera (line 514) | @Override
    method canBeCollidedWith (line 521) | @Override
    method entityInit (line 527) | @Override
    method readEntityFromNBT (line 532) | @Override
    method writeEntityToNBT (line 554) | @Override
    method writeToNBTOptional (line 561) | @Override
    method onMouseMoved (line 567) | @Override
    method updateKeyHeldState (line 641) | @Override
    method pressKey (line 659) | @Override
    method serverHandleKeyPress (line 687) | @Override
    method processInitialInteract (line 758) | @Override
    method getControllingEntity (line 822) | @Override
    method getControllingPassenger (line 828) | @Override
    method isDead (line 834) | @Override
    method setDead (line 840) | @Override
    method reallySetDead (line 846) | public void reallySetDead()
    method getSeat (line 851) | public EntitySeat getSeat(EntityLivingBase living)
    method isDriverSeat (line 856) | public boolean isDriverSeat()
    method startRiding (line 861) | @Override
    method updatePassenger (line 877) | @Override
    method getPickedResult (line 894) | @Override
    method getPlayerRoll (line 902) | @Override
    method getPrevPlayerRoll (line 908) | @Override
    method getCameraDistance (line 914) | @Override
    method attackEntityFrom (line 920) | @Override
    method writeSpawnData (line 928) | @Override
    method readSpawnData (line 943) | @Override
    method getExpectedSeatID (line 962) | public int getExpectedSeatID()
    method getMinigunSpeed (line 967) | public float getMinigunSpeed()
    method updateRidden (line 972) | @Override

FILE: src/main/java/com/flansmod/common/driveables/EntityVehicle.java
  class EntityVehicle (line 29) | public class EntityVehicle extends EntityDriveable implements IExplodeable
    method EntityVehicle (line 66) | public EntityVehicle(World world)
    method EntityVehicle (line 73) | public EntityVehicle(World world, double x, double y, double z, Vehicl...
    method EntityVehicle (line 82) | public EntityVehicle(World world, double x, double y, double z, Entity...
    method setupTracks (line 92) | public void setupTracks(DriveableType type)
    method initType (line 122) | @Override
    method readSpawnData (line 129) | @Override
    method writeEntityToNBT (line 135) | @Override
    method readEntityFromNBT (line 142) | @Override
    method onMouseMoved (line 155) | @Override
    method setPositionRotationAndMotion (line 160) | @Override
    method processInitialInteract (line 170) | @Override
    method pressKey (line 200) | @Override
    method getLookVector (line 270) | @Override
    method onUpdate (line 276) | @Override
    method canThrust (line 607) | private boolean canThrust(DriveableData data, EntityPlayer driver) {
    method animateFancyTracks (line 613) | public void animateFancyTracks()
    method rotateTowards (line 662) | public float rotateTowards(Vector3f point, Vector3f original)
    method Lerp (line 669) | public float Lerp(float start, float end, float percent)
    method Clamp (line 676) | public static float Clamp(float val, float min, float max)
    method averageAngles (line 681) | private float averageAngles(float a, float b)
    method subtract (line 699) | private Vec3d subtract(Vec3d a, Vec3d b)
    method crossProduct (line 704) | private Vec3d crossProduct(Vec3d a, Vec3d b)
    method landVehicle (line 709) | @Override
    method attackEntityFrom (line 715) | @Override
    method getVehicleType (line 736) | public VehicleType getVehicleType()
    method getPlayerRoll (line 741) | @Override
    method dropItemsOnPartDeath (line 747) | @Override
    method getBombInventoryName (line 752) | @Override
    method getMissileInventoryName (line 758) | @Override
    method hasMouseControlMode (line 764) | @Override
    method getCamera (line 770) | @Override
    method setDead (line 777) | @Override

FILE: src/main/java/com/flansmod/common/driveables/EntityWheel.java
  class EntityWheel (line 14) | public class EntityWheel extends Entity implements IEntityAdditionalSpaw...
    method EntityWheel (line 30) | public EntityWheel(World world)
    method EntityWheel (line 37) | public EntityWheel(World world, EntityDriveable entity, int i)
    method initPosition (line 47) | public void initPosition()
    method fall (line 59) | @Override
    method entityInit (line 69) | @Override
    method readEntityFromNBT (line 74) | @Override
    method writeEntityToNBT (line 94) | @Override
    method onUpdate (line 104) | @Override
    method setDead (line 123) | @Override
    method canBeCollidedWith (line 129) | @Override
    method reallySetDead (line 136) | public void reallySetDead()
    method getSpeedXZ (line 141) | public double getSpeedXZ()
    method setPositionAndRotationDirect (line 146) | @Override
    method writeSpawnData (line 151) | @Override
    method readSpawnData (line 158) | @Override
    method getExpectedWheelID (line 169) | public int getExpectedWheelID()
    method updateRidden (line 174) | @Override

FILE: src/main/java/com/flansmod/common/driveables/EnumDriveablePart.java
  type EnumDriveablePart (line 5) | public enum EnumDriveablePart
    method EnumDriveablePart (line 50) | EnumDriveablePart(EnumDriveablePart[] parts, String s, String s2)
    method getChildren (line 60) | public EnumDriveablePart[] getChildren()
    method getParents (line 68) | public EnumDriveablePart[] getParents()
    method getShortName (line 82) | public String getShortName()
    method getName (line 87) | public String getName()
    method getPart (line 95) | public static EnumDriveablePart getPart(String s)
    method isWheel (line 103) | public static boolean isWheel(EnumDriveablePart part)

FILE: src/main/java/com/flansmod/common/driveables/EnumPlaneMode.java
  type EnumPlaneMode (line 3) | public enum EnumPlaneMode
    method getMode (line 7) | public static EnumPlaneMode getMode(String s)

FILE: src/main/java/com/flansmod/common/driveables/EnumWeaponType.java
  type EnumWeaponType (line 3) | public enum EnumWeaponType

FILE: src/main/java/com/flansmod/common/driveables/ItemPlane.java
  class ItemPlane (line 36) | public class ItemPlane extends Item implements IPaintableItem
    method ItemPlane (line 40) | public ItemPlane(PlaneType type1)
    method getShareTag (line 49) | @Override
    method getTagCompound (line 56) | private NBTTagCompound getTagCompound(ItemStack stack, World world)
    method getOldTagCompound (line 73) | private NBTTagCompound getOldTagCompound(ItemStack stack, World world)
    method addInformation (line 100) | @Override
    method onItemRightClick (line 110) | @Override
    method spawnPlane (line 153) | public Entity spawnPlane(World world, double x, double y, double z, It...
    method getPlaneData (line 168) | public DriveableData getPlaneData(ItemStack itemstack, World world)
    method getSubItems (line 176) | @Override
    method getInfoType (line 196) | @Override
    method GetPaintableType (line 202) | @Override

FILE: src/main/java/com/flansmod/common/driveables/ItemVehicle.java
  class ItemVehicle (line 37) | public class ItemVehicle extends ItemMapBase implements IPaintableItem
    method ItemVehicle (line 41) | public ItemVehicle(VehicleType type1)
    method getShareTag (line 50) | @Override
    method getTagCompound (line 57) | private NBTTagCompound getTagCompound(ItemStack stack, World world)
    method getOldTagCompound (line 74) | private NBTTagCompound getOldTagCompound(ItemStack stack, World world)
    method addInformation (line 97) | @Override
    method onItemRightClick (line 111) | @Override
    method spawnVehicle (line 151) | public Entity spawnVehicle(World world, double x, double y, double z, ...
    method getData (line 161) | public DriveableData getData(ItemStack itemstack, World world)
    method getSubItems (line 169) | @Override
    method getInfoType (line 189) | @Override
    method GetPaintableType (line 195) | @Override

FILE: src/main/java/com/flansmod/common/driveables/PilotGun.java
  class PilotGun (line 6) | public class PilotGun extends DriveablePosition
    method PilotGun (line 13) | public PilotGun(String[] split)

FILE: src/main/java/com/flansmod/common/driveables/PlaneType.java
  class PlaneType (line 16) | public class PlaneType extends DriveableType
    method read (line 148) | @Override
    method PlaneType (line 168) | public PlaneType(TypeFile file)
    method preRead (line 174) | @Override
    method numEngines (line 180) | @Override
    method getItemsRequired (line 195) | @Override
    method getPlane (line 212) | public static PlaneType getPlane(String find)
    method reloadModel (line 225) | public void reloadModel()
    method createDriveable (line 230) | @Override

FILE: src/main/java/com/flansmod/common/driveables/Propeller.java
  class Propeller (line 6) | public class Propeller
    method Propeller (line 25) | public Propeller(int i, int x, int y, int z, EnumDriveablePart part, P...
    method getPosition (line 35) | public Vector3f getPosition()

FILE: src/main/java/com/flansmod/common/driveables/Seat.java
  class Seat (line 6) | public class Seat
    method Seat (line 82) | public Seat(String[] split)
    method Seat (line 109) | public Seat(int dx, int dy, int dz)
    method Seat (line 121) | public Seat(int dx, int dy, int dz, float y1, float y2, float p1, floa...

FILE: src/main/java/com/flansmod/common/driveables/ShootPoint.java
  class ShootPoint (line 4) | public class ShootPoint
    method ShootPoint (line 10) | public ShootPoint(DriveablePosition driverPos, Vector3f offsetPos)

FILE: src/main/java/com/flansmod/common/driveables/VehicleType.java
  class VehicleType (line 15) | public class VehicleType extends DriveableType
    method VehicleType (line 75) | public VehicleType(TypeFile file)
    method preRead (line 81) | @Override
    method read (line 88) | @Override
    method getItemsRequired (line 112) | @Override
    method getVehicle (line 125) | public static VehicleType getVehicle(String find)
    method reloadModel (line 138) | public void reloadModel()
    method createDriveable (line 143) | @Override

FILE: src/main/java/com/flansmod/common/driveables/collisions/CollisionPlane.java
  class CollisionPlane (line 5) | public class CollisionPlane {
    method CollisionPlane (line 12) | public CollisionPlane(Vector3f origin, Vector3f normal)
    method CollisionPlane (line 26) | public CollisionPlane(Vector3f p1, Vector3f p2, Vector3f p3)
    method isFrontFacingTo (line 43) | public boolean isFrontFacingTo(Vector3f direction)
    method signedDistanceTo (line 51) | public double signedDistanceTo(Vector3f point)

FILE: src/main/java/com/flansmod/common/driveables/collisions/CollisionShapeBox.java
  class CollisionShapeBox (line 5) | public class CollisionShapeBox {
    method CollisionShapeBox (line 11) | public CollisionShapeBox(Vector3f position, Vector3f boxsize, Vector3f...

FILE: src/main/java/com/flansmod/common/driveables/collisions/CollisionTest.java
  class CollisionTest (line 7) | public class CollisionTest {
    method CollisionTest (line 37) | public CollisionTest(Vector3f ellipsoid, Vector3f origin, Vector3f mot...
    method checkTriangle (line 50) | public void checkTriangle(CollisionTest test, Vector3f p1, Vector3f p2...
    method getLowestRoot (line 282) | public float getLowestRoot(float a, float b, float c, float maxR)
    method checkPointInTriangle (line 312) | public boolean checkPointInTriangle(Vector3f point, Vector3f p1, Vecto...
    method ConvertR3ToESpace (line 333) | public Vector3f ConvertR3ToESpace(Vector3f r3)
    method ConvertESpaceToR3 (line 338) | public Vector3f ConvertESpaceToR3(Vector3f esp)

FILE: src/main/java/com/flansmod/common/driveables/collisions/RidingEntityPosition.java
  class RidingEntityPosition (line 6) | public class RidingEntityPosition {
    method RidingEntityPosition (line 14) | public RidingEntityPosition(float hitX, float hitY, float hitZ, int su...
    method length (line 22) | public float length(Vector3f pos1, Vector3f pos2)

FILE: src/main/java/com/flansmod/common/driveables/mechas/ContainerMechaInventory.java
  class ContainerMechaInventory (line 10) | public class ContainerMechaInventory extends Container
    method ContainerMechaInventory (line 19) | public ContainerMechaInventory(InventoryPlayer inv, World w, EntityMec...
    method onContainerClosed (line 78) | @Override
    method updateScroll (line 85) | public void updateScroll(int scrololol)
    method canInteractWith (line 101) | @Override
    method transferStackInSlot (line 107) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/EntityMecha.java
  class EntityMecha (line 76) | public class EntityMecha extends EntityDriveable
    method EntityMecha (line 119) | public EntityMecha(World world)
    method EntityMecha (line 128) | public EntityMecha(World world, double x, double y, double z, MechaTyp...
    method EntityMecha (line 139) | public EntityMecha(World world, double x, double y, double z, EntityPl...
    method initType (line 148) | @Override
    method writeEntityToNBT (line 156) | @Override
    method readEntityFromNBT (line 164) | @Override
    method writeSpawnData (line 172) | @Override
    method readSpawnData (line 179) | @Override
    method getYOffset (line 189) | @Override
    method onMouseMoved (line 195) | @Override
    method processInitialInteract (line 200) | @Override
    method getMechaType (line 223) | public MechaType getMechaType()
    method pressKey (line 228) | @Override
    method creative (line 263) | protected boolean creative()
    method useItem (line 268) | protected boolean useItem(boolean left)
    method shoot (line 374) | private void shoot(ItemStack stack, GunType gunType, ItemStack bulletS...
    method fall (line 438) | @Override
    method attackEntityFrom (line 444) | @Override
    method onUpdate (line 496) | @Override
    method mineBlock (line 690) | private void mineBlock(Entity driver, EntityPlayer playerDriver, boole...
    method vacuumItems (line 783) | private void vacuumItems(boolean isCreative, MechaType type, Driveable...
    method updateHeadPosition (line 853) | private void updateHeadPosition(
    method updateDespawn (line 893) | private void updateDespawn(Entity driver) {
    method updateHeight (line 903) | private void updateHeight(MechaType type) {
    method detectDiamonds (line 917) | private void detectDiamonds(EntityPlayer playerDriver) {
    method autoRepair (line 946) | private void autoRepair(EntityPlayer playerDriver, boolean isCreative,...
    method updateDelays (line 964) | private void updateDelays() {
    method moveAI (line 975) | protected void moveAI(Vector3f actualMotion)
    method tailFloat (line 980) | private float tailFloat(float f)
    method stopFallDamage (line 991) | public boolean stopFallDamage()
    method breakBlocksUponFalling (line 1004) | public boolean breakBlocksUponFalling()
    method canVacuumItems (line 1017) | public boolean canVacuumItems()
    method refineIron (line 1030) | public boolean refineIron()
    method canDetectDiamonds (line 1043) | public boolean canDetectDiamonds()
    method getDiamondDetectingUpgrade (line 1053) | public Option<MechaItemType> getDiamondDetectingUpgrade()
    method wasteCompact (line 1066) | public Boolean wasteCompact()
    method diamondMultiplier (line 1079) | public float diamondMultiplier()
    method speedMultiplier (line 1092) | public float speedMultiplier()
    method coalMultiplier (line 1105) | public float coalMultiplier()
    method redstoneMultiplier (line 1118) | public float redstoneMultiplier()
    method vulnerability (line 1131) | public float vulnerability()
    method emeraldMultiplier (line 1144) | public float emeraldMultiplier()
    method ironMultiplier (line 1157) | public float ironMultiplier()
    method lightLevel (line 1170) | public int lightLevel()
    method forceDark (line 1183) | public boolean forceDark()
    method autoCoal (line 1196) | public boolean autoCoal()
    method canAutoRepair (line 1209) | public boolean canAutoRepair()
    method shouldFloat (line 1222) | public boolean shouldFloat()
    method infiniteAmmo (line 1235) | public boolean infiniteAmmo()
    method rocketPack (line 1248) | public MechaItemType rocketPack()
    method shouldFly (line 1258) | public boolean shouldFly()
    method jetPackPower (line 1266) | public float jetPackPower()
    method getUpgradeTypes (line 1276) | public ArrayList<MechaItemType> getUpgradeTypes()
    method showInventory (line 1289) | @SideOnly(Side.CLIENT)
    method dropItemsOnPartDeath (line 1296) | @Override
    method hasMouseControlMode (line 1309) | @Override
    method getBombInventoryName (line 1315) | @Override
    method getMissileInventoryName (line 1321) | @Override
    method getCamera (line 1327) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/EnumMechaItemType.java
  type EnumMechaItemType (line 3) | public enum EnumMechaItemType
    method getToolType (line 7) | public static EnumMechaItemType getToolType(String s)
    method getValidSlots (line 17) | public EnumMechaSlotType[] getValidSlots()

FILE: src/main/java/com/flansmod/common/driveables/mechas/EnumMechaSlotType.java
  type EnumMechaSlotType (line 3) | public enum EnumMechaSlotType
    method accepts (line 7) | public boolean accepts(EnumMechaItemType type)

FILE: src/main/java/com/flansmod/common/driveables/mechas/EnumMechaToolType.java
  type EnumMechaToolType (line 5) | public enum EnumMechaToolType
    method getToolType (line 9) | public static EnumMechaToolType getToolType(String s)
    method effectiveAgainst (line 19) | public boolean effectiveAgainst(Material material)

FILE: src/main/java/com/flansmod/common/driveables/mechas/ItemMecha.java
  class ItemMecha (line 32) | public class ItemMecha extends Item implements IPaintableItem
    method ItemMecha (line 36) | public ItemMecha(MechaType type1)
    method addInformation (line 45) | @Override
    method getShareTag (line 59) | @Override
    method getTagCompound (line 66) | private NBTTagCompound getTagCompound(ItemStack stack, World world)
    method onItemRightClick (line 81) | @Override
    method getData (line 117) | public DriveableData getData(ItemStack itemstack, World world)
    method getSubItems (line 122) | @Override
    method getInfoType (line 142) | @Override
    method GetPaintableType (line 148) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/ItemMechaAddon.java
  class ItemMechaAddon (line 15) | public class ItemMechaAddon extends Item implements IFlanItem
    method ItemMechaAddon (line 19) | public ItemMechaAddon(MechaItemType type1)
    method addInformation (line 28) | @Override
    method getInfoType (line 37) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/MechaInventory.java
  class MechaInventory (line 15) | public class MechaInventory implements IInventory
    method MechaInventory (line 20) | public MechaInventory(EntityMecha m)
    method MechaInventory (line 30) | public MechaInventory(EntityMecha m, NBTTagCompound tags)
    method readFromNBT (line 36) | public void readFromNBT(NBTTagCompound tags)
    method writeToNBT (line 46) | public NBTTagCompound writeToNBT(NBTTagCompound tags)
    method getSizeInventory (line 58) | @Override
    method getStackInSlot (line 64) | @Override
    method getStackInSlot (line 70) | public ItemStack getStackInSlot(EnumMechaSlotType e)
    method decrStackSize (line 75) | @Override
    method setInventorySlotContents (line 95) | @Override
    method setInventorySlotContents (line 101) | public void setInventorySlotContents(EnumMechaSlotType e, ItemStack it...
    method getInventoryStackLimit (line 107) | @Override
    method markDirty (line 113) | @Override
    method isItemValidForSlot (line 120) | @Override
    method getName (line 134) | @Override
    method hasCustomName (line 140) | @Override
    method getDisplayName (line 146) | @Override
    method openInventory (line 152) | @Override
    method closeInventory (line 158) | @Override
    method getField (line 164) | @Override
    method setField (line 170) | @Override
    method getFieldCount (line 176) | @Override
    method clear (line 182) | @Override
    method isEmpty (line 188) | @Override
    method removeStackFromSlot (line 194) | @Override
    method isUsableByPlayer (line 200) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/MechaItemType.java
  class MechaItemType (line 15) | public class MechaItemType extends InfoType
    method MechaItemType (line 84) | public MechaItemType(TypeFile file)
    method read (line 90) | @Override
    method getTool (line 171) | public static MechaItemType getTool(String find)
    method reloadModel (line 181) | public void reloadModel()
    method preRead (line 187) | @Override
    method postRead (line 192) | @Override
    method GetModel (line 197) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/MechaType.java
  class MechaType (line 20) | public class MechaType extends DriveableType
    method MechaType (line 114) | public MechaType(TypeFile file)
    method read (line 120) | @Override
    method getItemsRequired (line 215) | @Override
    method reloadModel (line 231) | public void reloadModel()
    method getMecha (line 236) | public static MechaType getMecha(String find)
    method createDriveable (line 246) | @Override

FILE: src/main/java/com/flansmod/common/driveables/mechas/SlotMecha.java
  class SlotMecha (line 10) | public class SlotMecha extends Slot
    method SlotMecha (line 14) | public SlotMecha(IInventory inv, EnumMechaSlotType e, int x, int y)
    method isItemValid (line 20) | @Override
    method putStack (line 37) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentDuelist.java
  class EnchantmentDuelist (line 7) | public class EnchantmentDuelist extends Enchantment
    method EnchantmentDuelist (line 9) | protected EnchantmentDuelist()
    method getMaxLevel (line 14) | @Override
    method canApplyTogether (line 20) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentJuggernaut.java
  class EnchantmentJuggernaut (line 9) | public class EnchantmentJuggernaut extends Enchantment
    method EnchantmentJuggernaut (line 11) | protected EnchantmentJuggernaut()
    method getMaxLevel (line 23) | @Override
    method isTreasureEnchantment (line 29) | @Override
    method getMinEnchantability (line 35) | @Override
    method getMaxEnchantability (line 41) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentLumberjack.java
  class EnchantmentLumberjack (line 8) | public class EnchantmentLumberjack extends Enchantment
    method EnchantmentLumberjack (line 10) | protected EnchantmentLumberjack()
    method getMaxLevel (line 15) | @Override
    method canApplyTogether (line 21) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentModule.java
  class EnchantmentModule (line 24) | public class EnchantmentModule
    method EnchantmentModule (line 37) | public EnchantmentModule()
    method PreInit (line 42) | public void PreInit()
    method Init (line 53) | public void Init()
    method PostInit (line 58) | public void PostInit()
    method RegisterEnchants (line 63) | @SubscribeEvent
    method AttackEvent (line 74) | @SubscribeEvent
    method ModifyGun (line 147) | public static void ModifyGun(FireableGun fireableGun, EntityLivingBase...
    method ModifyReloadTime (line 167) | public static float ModifyReloadTime(float reloadTime, EntityLivingBas...

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentNimble.java
  class EnchantmentNimble (line 7) | public class EnchantmentNimble extends Enchantment
    method EnchantmentNimble (line 9) | protected EnchantmentNimble()
    method getMaxLevel (line 14) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentSharpshooter.java
  class EnchantmentSharpshooter (line 8) | public class EnchantmentSharpshooter extends Enchantment
    method EnchantmentSharpshooter (line 10) | protected EnchantmentSharpshooter()
    method getMaxLevel (line 15) | @Override
    method canApplyTogether (line 21) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/EnchantmentSteady.java
  class EnchantmentSteady (line 7) | public class EnchantmentSteady extends Enchantment
    method EnchantmentSteady (line 9) | protected EnchantmentSteady()
    method getMaxLevel (line 14) | @Override

FILE: src/main/java/com/flansmod/common/enchantments/GloveType.java
  class GloveType (line 18) | public class GloveType extends InfoType
    method GloveType (line 32) | public GloveType(TypeFile file)
    method preRead (line 37) | @Override
    method read (line 44) | @Override
    method postRead (line 66) | @Override
    method getGlove (line 72) | public static GloveType getGlove(String s)

FILE: src/main/java/com/flansmod/common/enchantments/ItemGlove.java
  class ItemGlove (line 18) | public class ItemGlove extends Item implements IFlanItem
    method ItemGlove (line 23) | public ItemGlove(GloveType glove)
    method getInfoType (line 34) | @Override
    method getItemEnchantability (line 40) | @Override
    method addInformation (line 46) | @SideOnly(Side.CLIENT)

FILE: src/main/java/com/flansmod/common/eventhandlers/PlayerDeathEventListener.java
  class PlayerDeathEventListener (line 15) | public class PlayerDeathEventListener
    method PlayerDeathEventListener (line 17) | public PlayerDeathEventListener()
    method PlayerDied (line 22) | @EventHandler

FILE: src/main/java/com/flansmod/common/guns/AAGunType.java
  class AAGunType (line 18) | public class AAGunType extends InfoType
    method AAGunType (line 54) | public AAGunType(TypeFile file)
    method read (line 60) | @Override
    method isAmmo (line 141) | public boolean isAmmo(BulletType type)
    method isAmmo (line 146) | public boolean isAmmo(ItemStack stack)
    method getAAGun (line 153) | public static AAGunType getAAGun(String s)
    method reloadModel (line 166) | public void reloadModel()
    method addLoot (line 171) | @Override
    method preRead (line 177) | @Override
    method postRead (line 182) | @Override
    method GetModel (line 192) | @Override

FILE: src/main/java/com/flansmod/common/guns/AttachmentType.java
  class AttachmentType (line 17) | public class AttachmentType extends PaintableType implements IScope
    method AttachmentType (line 110) | public AttachmentType(TypeFile file)
    method read (line 116) | @Override
    method reloadModel (line 186) | public void reloadModel()
    method getFromNBT (line 192) | public static AttachmentType getFromNBT(NBTTagCompound tags)
    method getZoomFactor (line 200) | @Override
    method hasZoomOverlay (line 206) | @Override
    method getZoomOverlay (line 212) | @Override
    method getFOVFactor (line 218) | @Override
    method getAttachment (line 224) | public static AttachmentType getAttachment(String s)
    method preRead (line 234) | @Override
    method postRead (line 240) | @Override
    method GetModel (line 246) | @Override
    method GetRecommendedScale (line 253) | @Override

FILE: src/main/java/com/flansmod/common/guns/BulletType.java
  class BulletType (line 14) | public class BulletType extends ShootableType
    method BulletType (line 62) | public BulletType(TypeFile file)
    method read (line 69) | @Override
    method getBullet (line 134) | public static BulletType getBullet(String s)
    method getBullet (line 144) | public static BulletType getBullet(Item item)
    method reloadModel (line 157) | public void reloadModel()

FILE: src/main/java/com/flansmod/common/guns/ContainerGunModTable.java
  class ContainerGunModTable (line 14) | public class ContainerGunModTable extends Container
    method ContainerGunModTable (line 20) | public ContainerGunModTable(InventoryPlayer i, World w)
    method onContainerClosed (line 60) | @Override
    method canInteractWith (line 67) | @Override
    method transferStackInSlot (line 73) | @Override
    method pressButton (line 137) | public void pressButton(boolean paint, boolean left)
    method clickPaintjob (line 142) | public void clickPaintjob(int i)
    method clickPaintjob (line 152) | public void clickPaintjob(Paintjob paintjob)

FILE: src/main/java/com/flansmod/common/guns/EntityAAGun.java
  class EntityAAGun (line 37) | public class EntityAAGun extends Entity implements IEntityAdditionalSpaw...
    method EntityAAGun (line 90) | public EntityAAGun(World world)
    method EntityAAGun (line 101) | public EntityAAGun(World world, AAGunType type1, double d, double d1, ...
    method setPosition (line 111) | @Override
    method setPositionAndRotationDirect (line 122) | @Override
    method initType (line 133) | public void initType()
    method entityInit (line 144) | @Override
    method onCollideWithPlayer (line 149) | @Override
    method applyEntityCollision (line 155) | @Override
    method getCollisionBox (line 162) | @Override
    method canBePushed (line 168) | @Override
    method getMountedYOffset (line 174) | @Override
    method setMouseHeld (line 180) | public void setMouseHeld(boolean held)
    method attackEntityFrom (line 185) | @Override
    method rotate (line 213) | public Vec3d rotate(double x, double y, double z)
    method canBeCollidedWith (line 227) | @Override
    method onUpdate (line 233) | @Override
    method isSentry (line 422) | public boolean isSentry()
    method getValidTarget (line 427) | public Entity getValidTarget()
    method checkForShooting (line 463) | @SideOnly(Side.CLIENT)
    method setDead (line 479) | @Override
    method updatePassenger (line 495) | @Override
    method writeEntityToNBT (line 513) | @Override
    method readEntityFromNBT (line 532) | @Override
    method processInitialInteract (line 547) | @Override
    method findAmmo (line 586) | public int findAmmo(EntityPlayer player)
    method writeSpawnData (line 599) | @Override
    method readSpawnData (line 605) | @Override
    method canRiderInteract (line 621) | @Override
    method getPickedResult (line 627) | @Override

FILE: src/main/java/com/flansmod/common/guns/EntityBullet.java
  class EntityBullet (line 41) | public class EntityBullet extends EntityShootable implements IEntityAddi...
    method EntityBullet (line 66) | public EntityBullet(World world)
    method EntityBullet (line 72) | public EntityBullet(World world, FiredShot shot, Vec3d origin, Vec3d d...
    method entityInit (line 88) | @Override
    method setArrowHeading (line 94) | public void setArrowHeading(double d, double d1, double d2, float spre...
    method getLockOnTarget (line 120) | private void getLockOnTarget()
    method setVelocity (line 154) | @Override
    method onUpdate (line 169) | @Override
    method onUpdateClient (line 362) | @SideOnly(Side.CLIENT)
    method spawnParticles (line 380) | @SideOnly(Side.CLIENT)
    method setDead (line 401) | @Override
    method writeEntityToNBT (line 409) | @Override
    method readEntityFromNBT (line 441) | @Override
    method writeSpawnData (line 470) | @Override
    method readSpawnData (line 478) | @Override
    method isBurning (line 495) | @Override
    method canBePushed (line 501) | @Override
    method getFiredShot (line 507) | public FiredShot getFiredShot()

FILE: src/main/java/com/flansmod/common/guns/EntityDamageSourceFlan.java
  class EntityDamageSourceFlan (line 16) | public class EntityDamageSourceFlan extends EntityDamageSourceIndirect{
    method EntityDamageSourceFlan (line 27) | public EntityDamageSourceFlan(String s, Entity entity, EntityPlayer pl...
    method EntityDamageSourceFlan (line 39) | public EntityDamageSourceFlan(String s, Entity entity, EntityPlayer pl...
    method getDeathMessage (line 47) | @Override
    method getWeapon (line 65) | public InfoType getWeapon()
    method getCausedPlayer (line 73) | public EntityPlayer getCausedPlayer()
    method isHeadshot (line 81) | public boolean isHeadshot()
    method getDamageLocation (line 86) | @Override

FILE: src/main/java/com/flansmod/common/guns/EntityGrenade.java
  class EntityGrenade (line 47) | public class EntityGrenade extends EntityShootable implements IEntityAdd...
    method EntityGrenade (line 96) | public EntityGrenade(World w)
    method EntityGrenade (line 110) | public EntityGrenade(World w, Vector3f pos, GrenadeType g, float rotat...
    method EntityGrenade (line 138) | public EntityGrenade(EntityLivingBase entity, GrenadeType g)
    method EntityGrenade (line 150) | public EntityGrenade(EntityPlayer player, GrenadeType g)
    method EntityGrenade (line 168) | public EntityGrenade(World w, Vector3f pos, GrenadeType g, float rotat...
    method onUpdate (line 175) | @Override
    method attackEntityFrom (line 474) | @Override
    method detonate (line 482) | public void detonate()
    method setPositionAndRotationDirect (line 560) | @Override
    method getGrenadeDamage (line 566) | private DamageSource getGrenadeDamage()
    method entityInit (line 575) | @Override
    method readEntityFromNBT (line 581) | @Override
    method writeEntityToNBT (line 591) | @Override
    method writeSpawnData (line 606) | @Override
    method readSpawnData (line 616) | @Override
    method isBurning (line 633) | @Override
    method canBeCollidedWith (line 639) | @Override
    method processInitialInteract (line 645) | @Override

FILE: src/main/java/com/flansmod/common/guns/EntityMG.java
  class EntityMG (line 38) | public class EntityMG extends Entity implements IEntityAdditionalSpawnData
    method EntityMG (line 56) | public EntityMG(World world)
    method EntityMG (line 63) | public EntityMG(World world, int x, int y, int z, int dir, GunType gun...
    method canBeCollidedWith (line 82) | @Override
    method onUpdate (line 88) | @Override
    method checkForShooting (line 184) | @SideOnly(Side.CLIENT)
    method mouseHeld (line 200) | public void mouseHeld(boolean held)
    method fire (line 205) | private void fire()
    method attackEntityFrom (line 241) | @Override
    method processInitialInteract (line 267) | @Override
    method mountGun (line 315) | public void mountGun(EntityPlayer player, boolean mounting)
    method findAmmo (line 334) | public int findAmmo(EntityPlayer player)
    method setDead (line 347) | @Override
    method writeEntityToNBT (line 372) | @Override
    method readEntityFromNBT (line 383) | @Override
    method entityInit (line 394) | @Override
    method writeSpawnData (line 399) | @Override
    method readSpawnData (line 410) | @Override
    method getPickedResult (line 430) | @Override

FILE: src/main/java/com/flansmod/common/guns/EntityShootable.java
  class EntityShootable (line 6) | public abstract class EntityShootable extends Entity
    method EntityShootable (line 8) | public EntityShootable(World w)

FILE: src/main/java/com/flansmod/common/guns/EnumAttachmentType.java
  type EnumAttachmentType (line 3) | public enum EnumAttachmentType
    method get (line 7) | public static EnumAttachmentType get(String s)

FILE: src/main/java/com/flansmod/common/guns/EnumFireMode.java
  type EnumFireMode (line 3) | public enum EnumFireMode
    method getFireMode (line 7) | public static EnumFireMode getFireMode(String s)

FILE: src/main/java/com/flansmod/common/guns/EnumSecondaryFunction.java
  type EnumSecondaryFunction (line 3) | public enum EnumSecondaryFunction
    method get (line 7) | public static EnumSecondaryFunction get(String s)

FILE: src/main/java/com/flansmod/common/guns/EnumSpreadPattern.java
  type EnumSpreadPattern (line 3) | public enum EnumSpreadPattern
    method get (line 11) | public static EnumSpreadPattern get(String s)

FILE: src/main/java/com/flansmod/common/guns/FireableGun.java
  class FireableGun (line 8) | public class FireableGun
    method FireableGun (line 28) | public FireableGun(InfoType type, float damage, float spread, float bu...
    method FireableGun (line 40) | public FireableGun(InfoType type, float damage, float vehicledamage, f...
    method getGunSpread (line 53) | public float getGunSpread()
    method getSpreadPattern (line 58) | public EnumSpreadPattern getSpreadPattern()
    method getShortName (line 66) | public String getShortName()
    method getInfoType (line 74) | public InfoType getInfoType()
    method getDamage (line 82) | public float getDamage()
    method getBulletSpeed (line 90) | public float getBulletSpeed()
    method getDamageAgainstVehicles (line 98) | public float getDamageAgainstVehicles()
    method MultiplySpread (line 103) | public void MultiplySpread(float multiplier) { spread *= multiplier; }
    method MultiplyDamage (line 104) | public void MultiplyDamage(float multiplier) { damage *= multiplier; }

FILE: src/main/java/com/flansmod/common/guns/FiredShot.java
  class FiredShot (line 15) | public class FiredShot {
    method FiredShot (line 38) | public FiredShot(FireableGun weapon, BulletType bullet)
    method FiredShot (line 51) | public FiredShot(FireableGun weapon, BulletType bullet, EntityPlayerMP...
    method FiredShot (line 64) | public FiredShot(FireableGun weapon, BulletType bullet, Entity shooter)
    method FiredShot (line 78) | public FiredShot(FireableGun weapon, BulletType bullet, Entity shooter...
    method getFireableGun (line 89) | public FireableGun getFireableGun()
    method getBulletType (line 97) | public BulletType getBulletType()
    method getDamageSource (line 105) | public DamageSource getDamageSource()
    method getDamageSource (line 113) | public DamageSource getDamageSource(Boolean headshot)
    method getPlayerOptional (line 128) | public Optional<EntityPlayerMP> getPlayerOptional()
    method getShooterOptional (line 136) | public Optional<? extends Entity> getShooterOptional()

FILE: src/main/java/com/flansmod/common/guns/GrenadeType.java
  class GrenadeType (line 11) | public class GrenadeType extends ShootableType
    method GrenadeType (line 148) | public GrenadeType(TypeFile file)
    method postRead (line 154) | @Override
    method read (line 160) | @Override
    method getGrenade (line 253) | public static GrenadeType getGrenade(String s)
    method reloadModel (line 266) | public void reloadModel()

FILE: src/main/java/com/flansmod/common/guns/GunType.java
  class GunType (line 24) | public class GunType extends PaintableType implements IScope
    method GunType (line 301) | public GunType(TypeFile file)
    method postRead (line 306) | @Override
    method checkMF (line 320) | @SideOnly(Side.CLIENT)
    method read (line 329) | @Override
    method isCorrectAmmo (line 543) | public boolean isCorrectAmmo(ShootableType type)
    method isCorrectAmmo (line 548) | public boolean isCorrectAmmo(ItemStack stack)
    method reloadModel (line 566) | public void reloadModel()
    method getZoomFactor (line 571) | @Override
    method hasZoomOverlay (line 577) | @Override
    method getZoomOverlay (line 583) | @Override
    method getFOVFactor (line 589) | @Override
    method getCurrentScope (line 600) | public IScope getCurrentScope(ItemStack gunStack)
    method getCurrentAttachments (line 609) | public ArrayList<AttachmentType> getCurrentAttachments(ItemStack gun)
    method appendToList (line 629) | private void appendToList(ItemStack gun, String name, ArrayList<Attach...
    method getBarrel (line 636) | public AttachmentType getBarrel(ItemStack gun)
    method getScope (line 641) | public AttachmentType getScope(ItemStack gun)
    method getStock (line 646) | public AttachmentType getStock(ItemStack gun)
    method getGrip (line 651) | public AttachmentType getGrip(ItemStack gun)
    method getGeneric (line 656) | public AttachmentType getGeneric(ItemStack gun, int i)
    method getBarrelItemStack (line 662) | public ItemStack getBarrelItemStack(ItemStack gun)
    method getScopeItemStack (line 667) | public ItemStack getScopeItemStack(ItemStack gun)
    method getStockItemStack (line 672) | public ItemStack getStockItemStack(ItemStack gun)
    method getGripItemStack (line 677) | public ItemStack getGripItemStack(ItemStack gun)
    method getGenericItemStack (line 682) | public ItemStack getGenericItemStack(ItemStack gun, int i)
    method getAttachment (line 690) | public AttachmentType getAttachment(ItemStack gun, String name)
    method getAttachmentItemStack (line 699) | public ItemStack getAttachmentItemStack(ItemStack gun, String name)
    method checkForTags (line 708) | private void checkForTags(ItemStack gun)
    method getMeleeDamage (line 733) | public float getMeleeDamage(ItemStack stack)
    method getDamage (line 746) | public float getDamage(ItemStack stack)
    method getSpread (line 759) | public float getSpread(ItemStack stack)
    method getSpreadPattern (line 769) | public EnumSpreadPattern getSpreadPattern(ItemStack stack)
    method getRecoil (line 782) | public float getRecoil(ItemStack stack)
    method getBulletSpeed (line 795) | public float getBulletSpeed(
Copy disabled (too large) Download .json
Condensed preview — 783 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,739K chars).
[
  {
    "path": ".editorconfig",
    "chars": 233,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nindent_style = tab\ntrim_trailing_whitespace = false\n\n[*.java]\ninsert_final_newline = tr"
  },
  {
    "path": ".gitattributes",
    "chars": 255,
    "preview": "# Text\n*       text    eol=lf\n*.java  text    eol=lf\n*.json  text    eol=lf\n*.md    text    eol=lf\n*.txt   text    eol=l"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 889,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n<!-- BEFORE POST"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/crash_report.md",
    "chars": 732,
    "preview": "---\nname: Crash report\nabout: Create a report to help us improve\ntitle: ''\nlabels: crash\nassignees: ''\n\n---\n<!-- BEFORE "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 691,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n<!-- "
  },
  {
    "path": ".github/workflows/gradle.yml",
    "chars": 521,
    "preview": "name: Java CI with Gradle\n\non: [ push, pull_request ]\n\njobs:\n  build:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses"
  },
  {
    "path": ".gitignore",
    "chars": 257,
    "preview": "# Build and Bins\n.gradle/\nbuild/\nbin/\nout/\nrun/*\nsrc/main/java/com/flansmod/leaderboards/*\n\n# IDEs\n.classpath\n.project\n."
  },
  {
    "path": "LICENSE.txt",
    "chars": 19406,
    "preview": "THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (\"CCPL\" OR \"LICENSE\"). T"
  },
  {
    "path": "README.md",
    "chars": 1843,
    "preview": "[![GitHub release](https://img.shields.io/github/v/tag/FlansMods/FlansMod.svg?include_prereleases&sort=semver&color=brig"
  },
  {
    "path": "build.bat",
    "chars": 20,
    "preview": "gradlew build\r\npause"
  },
  {
    "path": "build.gradle",
    "chars": 6107,
    "preview": "buildscript\n{\n    dependencies\n\t{\n        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'\n        classpa"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 230,
    "preview": "#Wed Jun 03 12:06:43 BST 2020\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_"
  },
  {
    "path": "gradle.properties",
    "chars": 394,
    "preview": "# Sets default memory used for gradle commands. Can be overridden by user or command line properties.\n# This is required"
  },
  {
    "path": "gradlew",
    "chars": 5296,
    "preview": "#!/usr/bin/env sh\n\n##############################################################################\n##\n##  Gradle start up"
  },
  {
    "path": "gradlew.bat",
    "chars": 2260,
    "preview": "@if \"%DEBUG%\" == \"\" @echo off\r\n@rem ##########################################################################\r\n@rem\r\n@r"
  },
  {
    "path": "src/main/java/com/flansmod/api/IControllable.java",
    "chars": 1223,
    "preview": "package com.flansmod.api;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.EntityLivingBase;\nimport net."
  },
  {
    "path": "src/main/java/com/flansmod/api/IExplodeable.java",
    "chars": 324,
    "preview": "package com.flansmod.api;\n\n/**\n * Implement this interface if an entity is able to explode. Other modders will be able t"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/ClientProxyApocalypse.java",
    "chars": 7910,
    "preview": "package com.flansmod.apocalypse.client;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.Minecraft;\nimport ne"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelBuggy.java",
    "chars": 71707,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.4.2\n// Copyright (C) 2015 Minecraft-SMP.de\n// This "
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelGroundSkeleton.java",
    "chars": 1411,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13\n// Copyright (C) 2015 Minecraft-SMP.de\n// This"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelGunRack.java",
    "chars": 2547,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13\n// Copyright (C) 2015 Minecraft-SMP.de\n// This"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelNukeDrop.java",
    "chars": 1800,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client."
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelPowerCube.java",
    "chars": 3220,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13\n// Copyright (C) 2015 Minecraft-SMP.de\n// This"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelSkullBoss.java",
    "chars": 670,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\n\nimport net.minecraft."
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelSkullDrone.java",
    "chars": 2450,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13\n// Copyright (C) 2015 Minecraft-SMP.de\n// This"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelSlumpedSkeleton.java",
    "chars": 2187,
    "preview": "//This File was created with the Minecraft-SMP Modelling Toolbox 2.1.1.13\n// Copyright (C) 2015 Minecraft-SMP.de\n// This"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/ModelTeleporter.java",
    "chars": 474,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client."
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderFakePlayer.java",
    "chars": 1254,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport com.flansmod.apocalypse.common.entity.EntityFakePlayer;\nimport com"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderNukeDrop.java",
    "chars": 4659,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.render"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderPowerCube.java",
    "chars": 2940,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderSkullBoss.java",
    "chars": 2359,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.render"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderSkullDrone.java",
    "chars": 4261,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.render"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderSurvivor.java",
    "chars": 1238,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport com.flansmod.apocalypse.common.entity.EntitySurvivor;\nimport com.f"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/client/model/RenderTeleporter.java",
    "chars": 3016,
    "preview": "package com.flansmod.apocalypse.client.model;\n\nimport com.flansmod.apocalypse.common.entity.EntityTeleporter;\nimport com"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/ApocalypseData.java",
    "chars": 3491,
    "preview": "package com.flansmod.apocalypse.common;\n\nimport java.io.DataInputStream;\nimport java.io.DataOutputStream;\nimport java.io"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/CommonProxyApocalypse.java",
    "chars": 11731,
    "preview": "package com.flansmod.apocalypse.common;\n\nimport java.util.EnumSet;\nimport java.util.HashMap;\n\nimport net.minecraft.entit"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/FlansModApocalypse.java",
    "chars": 19784,
    "preview": "package com.flansmod.apocalypse.common;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.block.material.Material;"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/FlansModLootGenerator.java",
    "chars": 22367,
    "preview": "package com.flansmod.apocalypse.common;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Random;\n\nim"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/PropertyFloat.java",
    "chars": 843,
    "preview": "package com.flansmod.apocalypse.common;\n\nimport net.minecraftforge.common.property.IUnlistedProperty;\n\npublic class Prop"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/blocks/BlockPowerCube.java",
    "chars": 3858,
    "preview": "package com.flansmod.apocalypse.common.blocks;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.block.ITileEntity"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/blocks/BlockStatic.java",
    "chars": 238,
    "preview": "package com.flansmod.apocalypse.common.blocks;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.block.material.Ma"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/blocks/BlockSulphur.java",
    "chars": 610,
    "preview": "package com.flansmod.apocalypse.common.blocks;\n\nimport java.util.Random;\n\nimport net.minecraft.block.Block;\nimport net.m"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/blocks/BlockSulphuricAcid.java",
    "chars": 1220,
    "preview": "package com.flansmod.apocalypse.common.blocks;\n\nimport net.minecraft.block.material.Material;\nimport net.minecraft.block"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/blocks/TileEntityPowerCube.java",
    "chars": 274,
    "preview": "package com.flansmod.apocalypse.common.blocks;\n\nimport net.minecraft.tileentity.TileEntity;\nimport net.minecraft.util.IT"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityAIGoSomewhere.java",
    "chars": 1675,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.EntityCreature;\nimport net.minecraft.entity."
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityAIMecha.java",
    "chars": 6406,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.player.E"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityFakePlayer.java",
    "chars": 1841,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.item.EntityItem;\nimport net.minecraft.entity"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityFlansModShooter.java",
    "chars": 14753,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.EntityLi"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityFlyByPlane.java",
    "chars": 1629,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.world.World;\nimport net.minecraft.world.biome.Biome"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityNukeDrop.java",
    "chars": 1419,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.MoverTyp"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntitySkullBoss.java",
    "chars": 12147,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport com.flansmod.apocalypse.common.FlansModApocalypse;\nimport com.fla"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntitySkullDrone.java",
    "chars": 11335,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport java.util.Optional;\n\nimport com.flansmod.client.model.GunAnimatio"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntitySkuller.java",
    "chars": 8983,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport javax.annotation.Nullable;\n\nimport com.flansmod.apocalypse.common"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntitySurvivor.java",
    "chars": 3545,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport java.util.ArrayList;\n\nimport net.minecraft.entity.ai.EntityAINear"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/entity/EntityTeleporter.java",
    "chars": 7995,
    "preview": "package com.flansmod.apocalypse.common.entity;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.player.E"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/items/ItemSulphuricAcidBucket.java",
    "chars": 267,
    "preview": "package com.flansmod.apocalypse.common.items;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.item.ItemBucket;\n\n"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/network/PacketApocalypseCountdown.java",
    "chars": 1067,
    "preview": "package com.flansmod.apocalypse.common.network;\n\nimport io.netty.buffer.ByteBuf;\nimport io.netty.channel.ChannelHandlerC"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/BiomeApocalypse.java",
    "chars": 5162,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport java.util.Random;\n\nimport net.minecraft.block.material.Material;\ni"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/BiomeDecoratorApocalypse.java",
    "chars": 14127,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport java.util.Random;\n\nimport net.minecraft.block.BlockStone;\nimport n"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/BiomeDesertCanyon.java",
    "chars": 668,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.init.Blocks;\nimport net.minecraft.world.biome.Biome;"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/BiomeProviderApocalypse.java",
    "chars": 5507,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Rando"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/BiomeSulphurPits.java",
    "chars": 532,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.init.Blocks;\nimport net.minecraft.world.biome.Biome;"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/ChunkProviderApocalypse.java",
    "chars": 19650,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport javax.annotation.Nullable;\nimport java.util.Arrays;\nimport java.ut"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/GenLayerApocalypse.java",
    "chars": 1367,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.world.gen.layer.GenLayer;\nimport net.minecraft.world"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/GenLayerBiomes.java",
    "chars": 1226,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.world.biome.Biome;\nimport net.minecraft.world.gen.la"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/TeleporterApocalypse.java",
    "chars": 776,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.util.math.BlockP"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/WorldGenSulphurPool.java",
    "chars": 3730,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport java.util.Random;\n\nimport net.minecraft.block.Block;\nimport net.mi"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/WorldProviderApocalypse.java",
    "chars": 2070,
    "preview": "package com.flansmod.apocalypse.common.world;\n\nimport net.minecraft.init.Blocks;\nimport net.minecraft.util.math.BlockPos"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/MapGenAbandonedVillage.java",
    "chars": 6068,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Arrays;\nimport java.util.Iterator;\nimport java"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/StructureAbandonedVillagePieces.java",
    "chars": 101850,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport j"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenAbandonedPortal.java",
    "chars": 3065,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport com.flansmod.apocalypse.common"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenBossPillar.java",
    "chars": 2110,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport com.flansmod.common.ModuloHelp"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenDeadTree.java",
    "chars": 1212,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport net.minecraft.init.Blocks;\nimp"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenDyeFactory.java",
    "chars": 5561,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport net.minecraft.block.BlockLog;\n"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenFlan.java",
    "chars": 1299,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport net.minecraft.block.state.IBlockState;\nimport net.minecr"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenResearchLab.java",
    "chars": 28585,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport net.minecraft.block.BlockChest"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenRoads.java",
    "chars": 4023,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport com.flansmod.apocalypse.common"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenRunway.java",
    "chars": 5760,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport net.minecraft.block.BlockChest"
  },
  {
    "path": "src/main/java/com/flansmod/apocalypse/common/world/buildings/WorldGenSkeleton.java",
    "chars": 983,
    "preview": "package com.flansmod.apocalypse.common.world.buildings;\n\nimport java.util.Random;\n\nimport net.minecraft.util.EnumFacing;"
  },
  {
    "path": "src/main/java/com/flansmod/client/ClientProxy.java",
    "chars": 32120,
    "preview": "package com.flansmod.client;\n\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileWriter;\nimport java"
  },
  {
    "path": "src/main/java/com/flansmod/client/ClientRenderHooks.java",
    "chars": 36785,
    "preview": "package com.flansmod.client;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\n\nimport org."
  },
  {
    "path": "src/main/java/com/flansmod/client/EntityCamera.java",
    "chars": 1811,
    "preview": "package com.flansmod.client;\n\nimport net.minecraft.entity.EntityLivingBase;\nimport net.minecraft.inventory.EntityEquipme"
  },
  {
    "path": "src/main/java/com/flansmod/client/FlansModClient.java",
    "chars": 20900,
    "preview": "package com.flansmod.client;\n\nimport java.awt.Rectangle;\nimport java.awt.image.BufferedImage;\nimport java.awt.image.Rast"
  },
  {
    "path": "src/main/java/com/flansmod/client/MovingSoundDriveable.java",
    "chars": 949,
    "preview": "package com.flansmod.client;\n\n//TODO : Implement this!\npublic class MovingSoundDriveable // extends MovingSound \n{\n\t/*\n\t"
  },
  {
    "path": "src/main/java/com/flansmod/client/TileEntitySpawnerRenderer.java",
    "chars": 3397,
    "preview": "package com.flansmod.client;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.renderer."
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/EntityDebugAABB.java",
    "chars": 1661,
    "preview": "package com.flansmod.client.debug;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.nbt.NBTTagCompound;\nimport "
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/EntityDebugColor.java",
    "chars": 3150,
    "preview": "package com.flansmod.client.debug;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.nbt.NBTTagCompound;\nimport "
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/EntityDebugDot.java",
    "chars": 1291,
    "preview": "package com.flansmod.client.debug;\n\nimport net.minecraft.world.World;\n\nimport com.flansmod.common.vector.Vector3f;\n\n/**\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/EntityDebugVector.java",
    "chars": 4261,
    "preview": "package com.flansmod.client.debug;\n\nimport net.minecraft.nbt.NBTTagCompound;\nimport net.minecraft.network.datasync.DataP"
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/RenderDebugAABB.java",
    "chars": 1702,
    "preview": "package com.flansmod.client.debug;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.ren"
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/RenderDebugDot.java",
    "chars": 1473,
    "preview": "package com.flansmod.client.debug;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.renderer.GlStateManager;\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/debug/RenderDebugVector.java",
    "chars": 1608,
    "preview": "package com.flansmod.client.debug;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.renderer.GlStateManager;\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiArmourBox.java",
    "chars": 5930,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport org.lwjgl.opengl.GL11;\nimport org.lwjgl.opengl.GL1"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableController.java",
    "chars": 5807,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport org.lwjgl.input.Keyboard;\nimport org.lwjgl.input.M"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableCrafting.java",
    "chars": 18190,
    "preview": "package com.flansmod.client.gui;\n\nimport java.awt.*;\nimport java.io.IOException;\nimport java.util.HashMap;\n\nimport org.a"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableFuel.java",
    "chars": 2663,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport net.minecraft.client.gui.inventory.GuiContainer;\ni"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableInventory.java",
    "chars": 5903,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport org.lwjgl.opengl.GL11;\nimport org.lwjgl.opengl.GL1"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableMenu.java",
    "chars": 4576,
    "preview": "package com.flansmod.client.gui;\n\nimport net.minecraft.client.gui.GuiButton;\nimport net.minecraft.client.gui.inventory.G"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiDriveableRepair.java",
    "chars": 8016,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\n\nimport net.minecraft.client.g"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiGunBox.java",
    "chars": 13564,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport net.minecraft.client.gui.FontRenderer;\nimport net."
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiGunModTable.java",
    "chars": 9053,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\nimport java.util.Random;\n\nimport org.lwjgl.input.Mouse;\nim"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiMechaInventory.java",
    "chars": 6238,
    "preview": "package com.flansmod.client.gui;\n\nimport java.io.IOException;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.clien"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/GuiPaintjobTable.java",
    "chars": 22302,
    "preview": "package com.flansmod.client.gui;\n\nimport javax.imageio.ImageIO;\nimport java.awt.image.BufferedImage;\nimport java.io.File"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/config/ModGuiConfig.java",
    "chars": 604,
    "preview": "package com.flansmod.client.gui.config;\n\nimport net.minecraft.client.gui.GuiScreen;\nimport net.minecraftforge.common.con"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/config/ModGuiFactory.java",
    "chars": 582,
    "preview": "package com.flansmod.client.gui.config;\n\nimport java.util.Set;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecr"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/EnumLoadoutSlot.java",
    "chars": 331,
    "preview": "package com.flansmod.client.gui.teams;\n\npublic enum EnumLoadoutSlot\n{\n\tprimary(\"Primary\", true),\n\tsecondary(\"Secondary\","
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiBaseEditor.java",
    "chars": 5054,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport java.io.IOException;\nimport java.util.Arrays;\n\nimport org.lwjgl.input.Key"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiChooseLoadout.java",
    "chars": 3272,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.gui.GuiButton;\nimport"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiEditLoadout.java",
    "chars": 19573,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.Compara"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiLandingPage.java",
    "chars": 4713,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport net.minecraft.client.gui.GuiButton;\nimport net.minecraft.client.gui.Scale"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiMissionResults.java",
    "chars": 12289,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport java.util.ArrayList;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiOpenRewardBox.java",
    "chars": 8650,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport java.util.ArrayList;\nimport java.util.Random;\n\nimport org.lwjgl.opengl.GL"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiTeamScores.java",
    "chars": 9631,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.gui.FontRenderer;\nimp"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiTeamSelect.java",
    "chars": 4905,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.gui.GuiButton"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiTeamsBase.java",
    "chars": 5414,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport java.io.IOException;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft"
  },
  {
    "path": "src/main/java/com/flansmod/client/gui/teams/GuiVoting.java",
    "chars": 2973,
    "preview": "package com.flansmod.client.gui.teams;\n\nimport net.minecraft.client.gui.FontRenderer;\nimport net.minecraft.client.gui.Gu"
  },
  {
    "path": "src/main/java/com/flansmod/client/handlers/ClientEventHandler.java",
    "chars": 4419,
    "preview": "package com.flansmod.client.handlers;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.entity.player.EntityP"
  },
  {
    "path": "src/main/java/com/flansmod/client/handlers/FlansModResourceHandler.java",
    "chars": 7542,
    "preview": "package com.flansmod.client.handlers;\n\nimport javax.imageio.ImageIO;\nimport java.awt.*;\nimport java.awt.image.BufferedIm"
  },
  {
    "path": "src/main/java/com/flansmod/client/handlers/KeyInputHandler.java",
    "chars": 9899,
    "preview": "package com.flansmod.client.handlers;\n\nimport org.lwjgl.input.Keyboard;\n\nimport net.minecraft.client.Minecraft;\nimport n"
  },
  {
    "path": "src/main/java/com/flansmod/client/handlers/MouseInputHandler.java",
    "chars": 885,
    "preview": "package com.flansmod.client.handlers;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.entity.Entity;\nimport"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/AnimTankTrack.java",
    "chars": 2043,
    "preview": "package com.flansmod.client.model;\n\nimport java.util.ArrayList;\n\nimport com.flansmod.common.vector.Vector3f;\n\n\npublic cl"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/AnimTrackLink.java",
    "chars": 370,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.common.RotatedAxes;\nimport com.flansmod.common.vector.Vector3f;\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/CustomItemRenderType.java",
    "chars": 129,
    "preview": "package com.flansmod.client.model;\n\npublic enum CustomItemRenderType\n{\n\tENTITY,\n\tEQUIPPED,\n\tEQUIPPED_FIRST_PERSON,\n\tINVE"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/CustomItemRenderer.java",
    "chars": 242,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.item.ItemStack;\nimport net.minecraft.util.EnumHand;\n\npublic int"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/EnumAnimationType.java",
    "chars": 256,
    "preview": "package com.flansmod.client.model;\n\npublic enum EnumAnimationType\n{\n\tNONE, BOTTOM_CLIP, PISTOL_CLIP, TOP_CLIP, SIDE_CLIP"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/EnumMeleeAnimation.java",
    "chars": 140,
    "preview": "package com.flansmod.client.model;\n\npublic enum EnumMeleeAnimation\n{\n\tDEFAULT, NONE, BLUNT_SWING, BLUNT_BASH, STAB_UNDER"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/GunAnimations.java",
    "chars": 3996,
    "preview": "package com.flansmod.client.model;\n\nimport java.util.Random;\n\nimport com.flansmod.common.vector.Vector3f;\n\npublic class "
  },
  {
    "path": "src/main/java/com/flansmod/client/model/InstantBulletRenderer.java",
    "chars": 4911,
    "preview": "package com.flansmod.client.model;\n\nimport java.util.ArrayList;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.cli"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelAAGun.java",
    "chars": 4312,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client.tmt.ModelRe"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelAttachment.java",
    "chars": 1294,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client.tmt.ModelRe"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelBomb.java",
    "chars": 1147,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.minecraft.entity.Entity;\n\nim"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelBullet.java",
    "chars": 643,
    "preview": "package com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.model.ModelBase;\nimport n"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelCustomArmour.java",
    "chars": 4408,
    "preview": "package com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.model.ModelBiped;\nimport "
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelDefaultMuzzleFlash.java",
    "chars": 1119,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\n\nimport net.minecraft.client.mode"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelDriveable.java",
    "chars": 6429,
    "preview": "package com.flansmod.client.model;\n\nimport java.util.HashMap;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.m"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelFlagpole.java",
    "chars": 1470,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.minecraft.client.model.Model"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelGun.java",
    "chars": 7533,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client.tmt.ModelRe"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelItemHolder.java",
    "chars": 1173,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client.tmt.ModelRe"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelMG.java",
    "chars": 2309,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\nimport com.flansmod.client.tmt.ModelRe"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelMecha.java",
    "chars": 7921,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\nimport com.flansmod.common.drivea"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelMechaTool.java",
    "chars": 1504,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.minecraft.client.renderer.Gl"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelMuzzleFlash.java",
    "chars": 661,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\n\nimport net.minecraft.client.mode"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelNull.java",
    "chars": 128,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\n\npublic class ModelNull extends ModelBa"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelPlane.java",
    "chars": 15707,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\nimport com.flansmod.common.drivea"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/ModelVehicle.java",
    "chars": 15053,
    "preview": "package com.flansmod.client.model;\n\nimport com.flansmod.client.tmt.ModelRendererTurbo;\nimport com.flansmod.common.drivea"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderAAGun.java",
    "chars": 1770,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.ren"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderBullet.java",
    "chars": 1844,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.minecraft.client.renderer.Gl"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderFlag.java",
    "chars": 2521,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.ren"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderFlagpole.java",
    "chars": 1477,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.ren"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderGrenade.java",
    "chars": 4230,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.model.ModelBase;\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderGun.java",
    "chars": 30205,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.model.ModelBase;\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderGunItem.java",
    "chars": 1679,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.renderer.GlStateM"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderItemHolder.java",
    "chars": 3041,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraft.client.renderer.GlStateM"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderMG.java",
    "chars": 1582,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.renderer.GlStateManager;\nimport net.minecraft.client.ren"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderMecha.java",
    "chars": 17579,
    "preview": "package com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\nimport org.lwjgl.opengl.GL12;\n\nimport net.minecraft.cl"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderNull.java",
    "chars": 2058,
    "preview": "package com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.model.ModelBase;\nimport n"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderParachute.java",
    "chars": 1536,
    "preview": "package com.flansmod.client.model;\n\nimport net.minecraft.client.model.ModelBase;\nimport net.minecraft.client.renderer.Gl"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderPlane.java",
    "chars": 10866,
    "preview": "\npackage com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.Minecraft;\nimport net.mi"
  },
  {
    "path": "src/main/java/com/flansmod/client/model/RenderVehicle.java",
    "chars": 14303,
    "preview": "package com.flansmod.client.model;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.client.Minecraft;\nimport net.min"
  },
  {
    "path": "src/main/java/com/flansmod/client/teams/ClientTeamsData.java",
    "chars": 5782,
    "preview": "package com.flansmod.client.teams;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraftforge.fml.client.FMLClien"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/Angle3D.java",
    "chars": 2060,
    "preview": "package com.flansmod.client.tmt;\n\n/**\n * This class handles angles. Basically all it does it store angles. You can\n * di"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/Bone.java",
    "chars": 17404,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.Map;\n\nimport ne"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/Coord2D.java",
    "chars": 527,
    "preview": "package com.flansmod.client.tmt;\n\n/**\n * This class represents a coordinate space and its UV coordinates. This allows fo"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/ModelPool.java",
    "chars": 1801,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.io.File;\nimport java.util.HashMap;\nimport java.util.Map;\n\nimport net.minec"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/ModelPoolEntry.java",
    "chars": 3688,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.io.File;\nimport java.util.Collection;\nimport java.util.Iterator;\nimport ja"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/ModelPoolObjEntry.java",
    "chars": 5365,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.io.BufferedReader;\nimport java.io.File;\nimport java.io.FileReader;\nimport "
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/ModelRendererTurbo.java",
    "chars": 83988,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.Collection;\nimpo"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/PositionTextureVertex.java",
    "chars": 1426,
    "preview": "package com.flansmod.client.tmt;\n\nimport net.minecraft.util.math.Vec3d;\n\npublic class PositionTextureVertex extends net."
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/PositionTransformVertex.java",
    "chars": 1783,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\n\nimport net.minecraft.util.math.Vec3d;\n\npublic class Posit"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/Shape2D.java",
    "chars": 5109,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\n\nimport net.minecraft.util.m"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/Shape3D.java",
    "chars": 253,
    "preview": "package com.flansmod.client.tmt;\n\npublic class Shape3D\n{\n\tpublic Shape3D(PositionTransformVertex[] verts, TexturedPolygo"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/TextureGroup.java",
    "chars": 893,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecra"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/TexturedPolygon.java",
    "chars": 3752,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.util.ArrayList;\n\nimport org.lwjgl.opengl.GL11;\n\nimport net.minecraft.util."
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/TmtTessellator.java",
    "chars": 16608,
    "preview": "package com.flansmod.client.tmt;\n\nimport java.nio.ByteBuffer;\nimport java.nio.ByteOrder;\nimport java.nio.FloatBuffer;\nim"
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/TransformGroup.java",
    "chars": 226,
    "preview": "package com.flansmod.client.tmt;\n\nimport net.minecraft.util.math.Vec3d;\n\npublic abstract class TransformGroup\n{\n\tpublic "
  },
  {
    "path": "src/main/java/com/flansmod/client/tmt/TransformGroupBone.java",
    "chars": 2505,
    "preview": "package com.flansmod.client.tmt;\n\nimport net.minecraft.util.math.MathHelper;\nimport net.minecraft.util.math.Vec3d;\n\n/**\n"
  },
  {
    "path": "src/main/java/com/flansmod/client/util/FlansKeyConflictContext.java",
    "chars": 1134,
    "preview": "package com.flansmod.client.util;\n\nimport net.minecraft.client.Minecraft;\nimport net.minecraftforge.client.settings.IKey"
  },
  {
    "path": "src/main/java/com/flansmod/client/util/WorldRenderer.java",
    "chars": 605,
    "preview": "package com.flansmod.client.util;\n\nimport net.minecraft.client.renderer.Tessellator;\nimport net.minecraft.client.rendere"
  },
  {
    "path": "src/main/java/com/flansmod/common/BlockFlansWorkbench.java",
    "chars": 2287,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.block.material.Material;\nimport net"
  },
  {
    "path": "src/main/java/com/flansmod/common/BlockItemHolder.java",
    "chars": 4569,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.block.BlockContainer;\nimport net.minecraft.block.material.Material;\ni"
  },
  {
    "path": "src/main/java/com/flansmod/common/CommonGuiHandler.java",
    "chars": 1143,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.entity.player.EntityPlayer;\nimport net.minecraft.entity.player.Entity"
  },
  {
    "path": "src/main/java/com/flansmod/common/CommonProxy.java",
    "chars": 12818,
    "preview": "package com.flansmod.common;\n\nimport java.io.File;\nimport java.lang.reflect.Method;\nimport java.util.ArrayList;\nimport j"
  },
  {
    "path": "src/main/java/com/flansmod/common/CommonTickHandler.java",
    "chars": 1021,
    "preview": "package com.flansmod.common;\n\nimport net.minecraftforge.common.MinecraftForge;\nimport net.minecraftforge.fml.common.even"
  },
  {
    "path": "src/main/java/com/flansmod/common/ContentManager.java",
    "chars": 14240,
    "preview": "package com.flansmod.common;\n\nimport java.io.BufferedReader;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport"
  },
  {
    "path": "src/main/java/com/flansmod/common/CraftingInstance.java",
    "chars": 2003,
    "preview": "package com.flansmod.common;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.List;\n\nimport net.mi"
  },
  {
    "path": "src/main/java/com/flansmod/common/CreativeTabFlan.java",
    "chars": 2998,
    "preview": "package com.flansmod.common;\n\nimport java.util.Comparator;\n\nimport net.minecraft.creativetab.CreativeTabs;\nimport net.mi"
  },
  {
    "path": "src/main/java/com/flansmod/common/EntityItemCustomRender.java",
    "chars": 830,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.entity.Entity;\nimport net.minecraft.entity.item.EntityItem;\nimport ne"
  },
  {
    "path": "src/main/java/com/flansmod/common/FlansHooks.java",
    "chars": 1211,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.item.Item;\nimport net.minecraft.item.ItemStack;\nimport net.minecraftf"
  },
  {
    "path": "src/main/java/com/flansmod/common/FlansMod.java",
    "chars": 35292,
    "preview": "package com.flansmod.common;\n\nimport java.io.BufferedReader;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport"
  },
  {
    "path": "src/main/java/com/flansmod/common/FlansModExplosion.java",
    "chars": 9837,
    "preview": "package com.flansmod.common;\n\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Optional;\nimport java.util.R"
  },
  {
    "path": "src/main/java/com/flansmod/common/IFlansModContentProvider.java",
    "chars": 204,
    "preview": "package com.flansmod.common;\n\npublic interface IFlansModContentProvider \n{\n\t// This is generally just used for running f"
  },
  {
    "path": "src/main/java/com/flansmod/common/ItemBlockManyNames.java",
    "chars": 758,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.creativetab.CreativeTabs;\nimport ne"
  },
  {
    "path": "src/main/java/com/flansmod/common/ItemHolderType.java",
    "chars": 2049,
    "preview": "package com.flansmod.common;\n\nimport java.util.HashMap;\n\nimport net.minecraft.block.Block;\nimport net.minecraft.client.m"
  },
  {
    "path": "src/main/java/com/flansmod/common/ModuloHelper.java",
    "chars": 349,
    "preview": "package com.flansmod.common;\n\npublic class ModuloHelper\n{\n\tpublic static int divide(int x, int y)\n\t{\n\t\tint z = x / y;\n\t\t"
  },
  {
    "path": "src/main/java/com/flansmod/common/PlayerData.java",
    "chars": 7006,
    "preview": "package com.flansmod.common;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.Map;\n\nimport net.mi"
  },
  {
    "path": "src/main/java/com/flansmod/common/PlayerHandler.java",
    "chars": 5197,
    "preview": "package com.flansmod.common;\n\nimport java.lang.reflect.Field;\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimpo"
  },
  {
    "path": "src/main/java/com/flansmod/common/RotatedAxes.java",
    "chars": 8057,
    "preview": "package com.flansmod.common;\n\nimport com.flansmod.common.vector.Matrix4f;\nimport com.flansmod.common.vector.Vector3f;\n\np"
  },
  {
    "path": "src/main/java/com/flansmod/common/TileEntityItemHolder.java",
    "chars": 3626,
    "preview": "package com.flansmod.common;\n\nimport net.minecraft.entity.player.EntityPlayer;\nimport net.minecraft.inventory.IInventory"
  },
  {
    "path": "src/main/java/com/flansmod/common/driveables/CollisionBox.java",
    "chars": 999,
    "preview": "package com.flansmod.common.driveables;\n\nimport com.flansmod.common.vector.Vector3f;\n\npublic class CollisionBox\n{\n\t/**\n\t"
  },
  {
    "path": "src/main/java/com/flansmod/common/driveables/CollisionSurface.java",
    "chars": 515,
    "preview": "package com.flansmod.common.driveables;\n\nimport com.flansmod.common.vector.Vector3f;\n\npublic class CollisionSurface\n{\n\t/"
  }
]

// ... and 583 more files (download for full content)

About this extraction

This page contains the full source code of the FlansMods/FlansMod GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 783 files (10.6 MB), approximately 2.8M tokens, and a symbol index with 4670 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!