using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Numerics; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; using Questionable.Model.Common; namespace Questionable.Data; internal sealed class AetheryteData { public ReadOnlyDictionary Locations { get; } = new Dictionary { { EAetheryteLocation.Gridania, new Vector3(32.913696f, 2.670288f, 30.014404f) }, { EAetheryteLocation.GridaniaArcher, new Vector3(166.58276f, -1.7243042f, 86.13721f) }, { EAetheryteLocation.GridaniaLeatherworker, new Vector3(101.27405f, 9.018005f, -111.31464f) }, { EAetheryteLocation.GridaniaLancer, new Vector3(121.23291f, 12.649658f, -229.63306f) }, { EAetheryteLocation.GridaniaConjurer, new Vector3(-145.15906f, 4.9591064f, -11.7647705f) }, { EAetheryteLocation.GridaniaBotanist, new Vector3(-311.0857f, 7.94989f, -177.05048f) }, { EAetheryteLocation.GridaniaAmphitheatre, new Vector3(-73.92999f, 7.9804688f, -140.15417f) }, { EAetheryteLocation.CentralShroudBentbranchMeadows, new Vector3(13.076904f, 0.56451416f, 35.90442f) }, { EAetheryteLocation.EastShroudHawthorneHut, new Vector3(-186.54156f, 3.7994385f, 297.56616f) }, { EAetheryteLocation.SouthShroudQuarrymill, new Vector3(178.60681f, 10.543945f, -68.19263f) }, { EAetheryteLocation.SouthShroudCampTranquil, new Vector3(-230.0603f, 22.62909f, 355.45886f) }, { EAetheryteLocation.NorthShroudFallgourdFloat, new Vector3(-41.58087f, -38.55963f, 233.7528f) }, { EAetheryteLocation.Uldah, new Vector3(-144.51825f, -1.3580933f, -169.6651f) }, { EAetheryteLocation.UldahAdventurers, new Vector3(64.22522f, 4.5318604f, -115.31244f) }, { EAetheryteLocation.UldahThaumaturge, new Vector3(-154.83331f, 14.633362f, 73.07532f) }, { EAetheryteLocation.UldahGladiator, new Vector3(-53.849182f, 10.696533f, 12.222412f) }, { EAetheryteLocation.UldahMiner, new Vector3(33.49353f, 13.229492f, 113.206665f) }, { EAetheryteLocation.UldahAlchemist, new Vector3(-98.25293f, 42.34375f, 88.45642f) }, { EAetheryteLocation.UldahWeaver, new Vector3(89.64673f, 12.924377f, 58.27417f) }, { EAetheryteLocation.UldahGoldsmith, new Vector3(-19.333252f, 14.602844f, 72.03784f) }, { EAetheryteLocation.UldahSapphireAvenue, new Vector3(131.9447f, 4.714966f, -29.800903f) }, { EAetheryteLocation.UldahChamberOfRule, new Vector3(6.6376343f, 30.655273f, -24.826477f) }, { EAetheryteLocation.WesternThanalanHorizon, new Vector3(68.0094f, 48.203125f, -227.039f) }, { EAetheryteLocation.CentralThanalanBlackBrushStation, new Vector3(-16.159302f, 0.32037354f, -166.58276f) }, { EAetheryteLocation.EasternThanalanCampDrybone, new Vector3(-386.3432f, -57.1756f, 142.59558f) }, { EAetheryteLocation.SouthernThanalanLittleAlaMhigo, new Vector3(-159.3805f, 30.105957f, -415.45746f) }, { EAetheryteLocation.SouthernThanalanForgottenSprings, new Vector3(-326.6194f, 10.696533f, 406.63757f) }, { EAetheryteLocation.NorthernThanalanCampBluefog, new Vector3(20.98108f, 8.8349f, 454.0321f) }, { EAetheryteLocation.NorthernThanalanCeruleumProcessingPlant, new Vector3(-26.596497f, 49.881714f, -30.838562f) }, { EAetheryteLocation.Limsa, new Vector3(-84.031494f, 20.767456f, 0.015197754f) }, { EAetheryteLocation.LimsaAftcastle, new Vector3(16.067688f, 40.787354f, 68.80286f) }, { EAetheryteLocation.LimsaCulinarian, new Vector3(-56.50421f, 44.47998f, -131.45648f) }, { EAetheryteLocation.LimsaArcanist, new Vector3(-335.1645f, 12.619202f, 56.381958f) }, { EAetheryteLocation.LimsaFisher, new Vector3(-179.40033f, 4.8065186f, 182.97095f) }, { EAetheryteLocation.LimsaMarauder, new Vector3(-5.1728516f, 44.63257f, -218.06671f) }, { EAetheryteLocation.LimsaHawkersAlley, new Vector3(-213.61108f, 16.739136f, 51.80432f) }, { EAetheryteLocation.LowerLaNosceaMorabyDrydocks, new Vector3(156.11499f, 15.518433f, 673.21277f) }, { EAetheryteLocation.MiddleLaNosceaSummerfordFarms, new Vector3(227.98499f, 115.526f, -257.0382f) }, { EAetheryteLocation.EasternLaNosceaCostaDelSol, new Vector3(489.15845f, 20.828491f, 468.80298f) }, { EAetheryteLocation.EasternLaNosceaWineport, new Vector3(-18.387146f, 72.67859f, 3.829956f) }, { EAetheryteLocation.WesternLaNosceaSwiftperch, new Vector3(651.5449f, 11.734131f, 513.35913f) }, { EAetheryteLocation.WesternLaNosceaAleport, new Vector3(260.94446f, -19.60791f, 218.52441f) }, { EAetheryteLocation.UpperLaNosceaCampBronzeLake, new Vector3(437.4303f, 5.508484f, 94.590576f) }, { EAetheryteLocation.OuterLaNosceaCampOverlook, new Vector3(-117.54028f, 66.02576f, -212.66504f) }, { EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead, new Vector3(223.98718f, 315.7854f, -234.85168f) }, { EAetheryteLocation.MorDhona, new Vector3(40.024292f, 24.002441f, -668.0247f) }, { EAetheryteLocation.WolvesDenPier, new Vector3(40.93994f, 5.4779663f, -14.816589f) }, { EAetheryteLocation.GoldSaucer, new Vector3(-0.015319824f, 3.4942627f, -0.015319824f) }, { EAetheryteLocation.GoldSaucerEntranceCardSquares, new Vector3(-64.74408f, 2.8839111f, 54.33728f) }, { EAetheryteLocation.GoldSaucerWonderSquareEast, new Vector3(59.067627f, 23.88031f, 63.035034f) }, { EAetheryteLocation.GoldSaucerWonderSquareWest, new Vector3(-0.38153076f, 23.88031f, 58.609863f) }, { EAetheryteLocation.GoldSaucerEventSquare, new Vector3(95.47571f, -2.1210327f, -72.3125f) }, { EAetheryteLocation.GoldSaucerCactpotBoard, new Vector3(114.42737f, 13.595764f, -38.864807f) }, { EAetheryteLocation.GoldSaucerRoundSquare, new Vector3(-24.765442f, 6.1798096f, -85.67944f) }, { EAetheryteLocation.GoldSaucerChocoboSquare, new Vector3(-16.037292f, 2.8839111f, -33.432617f) }, { EAetheryteLocation.GoldSaucerMinionSquare, new Vector3(50.736206f, 2.8839111f, 19.912964f) }, { EAetheryteLocation.Ishgard, new Vector3(-63.98114f, 11.154297f, 43.9917f) }, { EAetheryteLocation.IshgardForgottenKnight, new Vector3(45.792236f, 24.551636f, 0.99176025f) }, { EAetheryteLocation.IshgardSkysteelManufactory, new Vector3(-111.436646f, 16.128723f, -27.054321f) }, { EAetheryteLocation.IshgardBrume, new Vector3(49.42395f, -11.154419f, 66.69714f) }, { EAetheryteLocation.IshgardAthenaeumAstrologicum, new Vector3(133.37903f, -8.86554f, -64.77466f) }, { EAetheryteLocation.IshgardJeweledCrozier, new Vector3(-134.6914f, -11.795227f, -15.396423f) }, { EAetheryteLocation.IshgardSaintReymanaudsCathedral, new Vector3(-77.958374f, 10.60498f, -126.54315f) }, { EAetheryteLocation.IshgardTribunal, new Vector3(78.01941f, 11.001709f, -126.51257f) }, { EAetheryteLocation.IshgardLastVigil, new Vector3(0.015197754f, 16.525452f, -32.51703f) }, { EAetheryteLocation.Idyllshire, new Vector3(71.94617f, 211.26111f, -18.905945f) }, { EAetheryteLocation.IdyllshireWest, new Vector3(-75.48645f, 210.22351f, -21.347473f) }, { EAetheryteLocation.RhalgrsReach, new Vector3(78.23291f, 1.9683228f, 97.45935f) }, { EAetheryteLocation.RhalgrsReachWest, new Vector3(-84.275635f, 0.503479f, 9.323181f) }, { EAetheryteLocation.RhalgrsReachNorthEast, new Vector3(101.24353f, 3.463745f, -115.46509f) }, { EAetheryteLocation.CoerthasWesternHighlandsFalconsNest, new Vector3(474.87585f, 217.94458f, 708.5221f) }, { EAetheryteLocation.SeaOfCloudsCampCloudtop, new Vector3(-615.7473f, -118.36426f, 546.5934f) }, { EAetheryteLocation.SeaOfCloudsOkZundu, new Vector3(-613.1533f, -49.485046f, -415.03015f) }, { EAetheryteLocation.AzysLlaHelix, new Vector3(-722.8046f, -182.29956f, -593.40814f) }, { EAetheryteLocation.DravanianForelandsTailfeather, new Vector3(532.6771f, -48.722107f, 30.166992f) }, { EAetheryteLocation.DravanianForelandsAnyxTrine, new Vector3(-304.12756f, -16.70868f, 32.059082f) }, { EAetheryteLocation.ChurningMistsMoghome, new Vector3(259.20496f, -37.70508f, 596.85657f) }, { EAetheryteLocation.ChurningMistsZenith, new Vector3(-584.9546f, 52.84192f, 313.43542f) }, { EAetheryteLocation.Kugane, new Vector3(47.501343f, 8.438171f, -37.30841f) }, { EAetheryteLocation.KuganeShiokazeHostelry, new Vector3(-73.16705f, -6.088379f, -77.77527f) }, { EAetheryteLocation.KuganePier1, new Vector3(-113.57294f, -3.8911133f, 155.41309f) }, { EAetheryteLocation.KuganeThavnairianConsulate, new Vector3(27.17627f, 9.048584f, 141.58838f) }, { EAetheryteLocation.KuganeMarkets, new Vector3(26.687988f, 4.92865f, 73.3501f) }, { EAetheryteLocation.KuganeBokairoInn, new Vector3(-76.00525f, 19.058472f, -161.18109f) }, { EAetheryteLocation.KuganeRubyBazaar, new Vector3(132.40247f, 12.954895f, 83.02429f) }, { EAetheryteLocation.KuganeSekiseigumiBarracks, new Vector3(119.09656f, 13.01593f, -92.881714f) }, { EAetheryteLocation.KuganeRakuzaDistrict, new Vector3(24.64331f, 7.003784f, -152.97174f) }, { EAetheryteLocation.FringesCastrumOriens, new Vector3(-629.11426f, 132.89075f, -509.14783f) }, { EAetheryteLocation.FringesPeeringStones, new Vector3(415.3047f, 117.357056f, 246.75354f) }, { EAetheryteLocation.PeaksAlaGannha, new Vector3(114.579956f, 120.10376f, -747.06647f) }, { EAetheryteLocation.PeaksAlaGhiri, new Vector3(-271.3817f, 259.87634f, 748.86694f) }, { EAetheryteLocation.LochsPortaPraetoria, new Vector3(-652.0333f, 53.391357f, -16.006714f) }, { EAetheryteLocation.LochsAlaMhiganQuarter, new Vector3(612.4512f, 84.45862f, 656.82446f) }, { EAetheryteLocation.RubySeaTamamizu, new Vector3(358.72437f, -118.05908f, -263.4165f) }, { EAetheryteLocation.RubySeaOnokoro, new Vector3(88.181885f, 4.135132f, -583.3677f) }, { EAetheryteLocation.YanxiaNamai, new Vector3(432.66956f, 73.07532f, -90.74542f) }, { EAetheryteLocation.YanxiaHouseOfTheFierce, new Vector3(246.02112f, 9.079041f, -401.3581f) }, { EAetheryteLocation.AzimSteppeReunion, new Vector3(556.1454f, -16.800232f, 340.10828f) }, { EAetheryteLocation.AzimSteppeDawnThrone, new Vector3(78.26355f, 119.37134f, 36.301147f) }, { EAetheryteLocation.AzimSteppeDhoroIloh, new Vector3(-754.63495f, 131.2428f, 116.5636f) }, { EAetheryteLocation.DomanEnclave, new Vector3(42.648926f, 1.4190674f, -14.8776245f) }, { EAetheryteLocation.DomanEnclaveNorthern, new Vector3(8.987488f, 0.8086548f, -105.85187f) }, { EAetheryteLocation.DomanEnclaveSouthern, new Vector3(-61.57019f, 0.77819824f, 90.684326f) }, { EAetheryteLocation.DomanEnclaveDocks, new Vector3(96.269165f, -3.4332886f, 81.01013f) }, { EAetheryteLocation.Crystarium, new Vector3(-65.0188f, 4.5318604f, 0.015197754f) }, { EAetheryteLocation.CrystariumMarkets, new Vector3(-6.149414f, -7.736328f, 148.72961f) }, { EAetheryteLocation.CrystariumTemenosRookery, new Vector3(-107.37775f, -0.015319824f, -58.762512f) }, { EAetheryteLocation.CrystariumDossalGate, new Vector3(64.86609f, -0.015319824f, -18.173523f) }, { EAetheryteLocation.CrystariumPendants, new Vector3(35.477173f, -0.015319824f, 222.58337f) }, { EAetheryteLocation.CrystariumAmaroLaunch, new Vector3(66.60559f, 35.99597f, -131.09033f) }, { EAetheryteLocation.CrystariumCrystallineMean, new Vector3(-52.506348f, 19.97406f, -173.35773f) }, { EAetheryteLocation.CrystariumCabinetOfCuriosity, new Vector3(-54.398438f, -37.70508f, -241.07733f) }, { EAetheryteLocation.Eulmore, new Vector3(0.015197754f, 81.986694f, 0.93078613f) }, { EAetheryteLocation.EulmoreMainstay, new Vector3(10.940674f, 36.087524f, -4.196289f) }, { EAetheryteLocation.EulmoreNightsoilPots, new Vector3(-54.093323f, -0.83929443f, 52.140015f) }, { EAetheryteLocation.EulmoreGloryGate, new Vector3(6.9122925f, 6.240906f, -56.351562f) }, { EAetheryteLocation.EulmoreSoutheastDerelict, new Vector3(71.82422f, -10.391418f, 65.32385f) }, { EAetheryteLocation.LakelandFortJobb, new Vector3(753.7803f, 24.338135f, -28.82434f) }, { EAetheryteLocation.LakelandOstallImperative, new Vector3(-735.01184f, 53.391357f, -230.02979f) }, { EAetheryteLocation.KholusiaStilltide, new Vector3(668.32983f, 29.465088f, 289.17358f) }, { EAetheryteLocation.KholusiaWright, new Vector3(-244.00702f, 20.736938f, 385.45813f) }, { EAetheryteLocation.KholusiaTomra, new Vector3(-426.38287f, 419.27222f, -623.5294f) }, { EAetheryteLocation.AmhAraengMordSouq, new Vector3(246.38745f, 12.985352f, -220.29456f) }, { EAetheryteLocation.AmhAraengInnAtJourneysHead, new Vector3(399.0996f, -24.521301f, 307.97278f) }, { EAetheryteLocation.AmhAraengTwine, new Vector3(-511.3451f, 47.989624f, -212.604f) }, { EAetheryteLocation.RaktikaSlitherbough, new Vector3(-103.4104f, -19.333252f, 297.23047f) }, { EAetheryteLocation.RaktikaFanow, new Vector3(382.77246f, 21.042175f, -194.11005f) }, { EAetheryteLocation.IlMhegLydhaLran, new Vector3(-344.71655f, 48.722046f, 512.2606f) }, { EAetheryteLocation.IlMhegPlaEnni, new Vector3(-72.55664f, 103.95972f, -857.35864f) }, { EAetheryteLocation.IlMhegWolekdorf, new Vector3(380.51416f, 87.20532f, -687.2511f) }, { EAetheryteLocation.TempestOndoCups, new Vector3(561.76074f, 352.62073f, -199.17603f) }, { EAetheryteLocation.TempestMacarensesAngle, new Vector3(-141.74109f, -280.5371f, 218.00562f) }, { EAetheryteLocation.OldSharlayan, new Vector3(0.07623291f, 4.8065186f, -0.10687256f) }, { EAetheryteLocation.OldSharlayanStudium, new Vector3(-291.1574f, 20.004517f, -74.143616f) }, { EAetheryteLocation.OldSharlayanBaldesionAnnex, new Vector3(-92.21033f, 2.304016f, 29.709229f) }, { EAetheryteLocation.OldSharlayanRostra, new Vector3(-36.94214f, 41.367188f, -156.6034f) }, { EAetheryteLocation.OldSharlayanLeveilleurEstate, new Vector3(204.79126f, 21.774597f, -118.73047f) }, { EAetheryteLocation.OldSharlayanJourneysEnd, new Vector3(206.22559f, 1.8463135f, 13.77887f) }, { EAetheryteLocation.OldSharlayanScholarsHarbor, new Vector3(16.494995f, -16.250854f, 127.73328f) }, { EAetheryteLocation.RadzAtHan, new Vector3(25.986084f, 3.250122f, -27.023743f) }, { EAetheryteLocation.RadzAtHanMeghaduta, new Vector3(-365.95715f, 44.99878f, -31.815125f) }, { EAetheryteLocation.RadzAtHanRuveydahFibers, new Vector3(-156.14563f, 35.99597f, 27.725586f) }, { EAetheryteLocation.RadzAtHanAirship, new Vector3(-144.33508f, 27.969727f, 202.2583f) }, { EAetheryteLocation.RadzAtHanAlzadaalsPeace, new Vector3(6.6071167f, -2.02948f, 110.55151f) }, { EAetheryteLocation.RadzAtHanHallOfTheRadiantHost, new Vector3(-141.37488f, 3.982544f, -98.435974f) }, { EAetheryteLocation.RadzAtHanMehrydesMeyhane, new Vector3(-42.61847f, -0.015319824f, -197.61963f) }, { EAetheryteLocation.RadzAtHanKama, new Vector3(129.59485f, 26.993164f, 13.473633f) }, { EAetheryteLocation.RadzAtHanHighCrucible, new Vector3(57.90796f, -24.704407f, -210.6203f) }, { EAetheryteLocation.FirmamentMendicantsCourt, new Vector3(23.941406f, -16.006714f, 169.35986f) }, { EAetheryteLocation.FirmamentMattock, new Vector3(76.035645f, -18.509216f, 10.299805f) }, { EAetheryteLocation.FirmamentNewNest, new Vector3(149.49255f, -50.003845f, 98.55798f) }, { EAetheryteLocation.FirmanentSaintRoellesDais, new Vector3(207.75159f, -40.024475f, -25.589417f) }, { EAetheryteLocation.FirmamentFeatherfall, new Vector3(-78.78235f, -0.015319824f, 75.97461f) }, { EAetheryteLocation.FirmamentHoarfrostHall, new Vector3(-132.55518f, 9.964111f, -14.66394f) }, { EAetheryteLocation.FirmamentWesternRisensongQuarter, new Vector3(-91.722046f, -0.015319824f, -115.19043f) }, { EAetheryteLocation.FIrmamentEasternRisensongQuarter, new Vector3(114.3053f, -20.004639f, -107.43884f) }, { EAetheryteLocation.LabyrinthosArcheion, new Vector3(443.5338f, 170.6416f, -476.18835f) }, { EAetheryteLocation.LabyrinthosSharlayanHamlet, new Vector3(8.377136f, -27.542603f, -46.67737f) }, { EAetheryteLocation.LabyrinthosAporia, new Vector3(-729.18286f, -27.634155f, 302.1438f) }, { EAetheryteLocation.ThavnairYedlihmad, new Vector3(193.49963f, 6.9733276f, 629.2362f) }, { EAetheryteLocation.ThavnairGreatWork, new Vector3(-527.48914f, 4.776001f, 36.75891f) }, { EAetheryteLocation.ThavnairPalakasStand, new Vector3(405.1422f, 5.2643433f, -244.4953f) }, { EAetheryteLocation.GarlemaldCampBrokenGlass, new Vector3(-408.10254f, 24.15503f, 479.9724f) }, { EAetheryteLocation.GarlemaldTertium, new Vector3(518.9136f, -35.324707f, -178.36273f) }, { EAetheryteLocation.MareLamentorumSinusLacrimarum, new Vector3(-566.2471f, 134.66089f, 650.6294f) }, { EAetheryteLocation.MareLamentorumBestwaysBurrow, new Vector3(-0.015319824f, -128.83197f, -512.0165f) }, { EAetheryteLocation.ElpisAnagnorisis, new Vector3(159.96033f, 11.703674f, 126.878784f) }, { EAetheryteLocation.ElpisTwelveWonders, new Vector3(-633.7225f, -19.821533f, 542.56494f) }, { EAetheryteLocation.ElpisPoietenOikos, new Vector3(-529.9001f, 161.24207f, -222.2782f) }, { EAetheryteLocation.UltimaThuleReahTahra, new Vector3(-544.152f, 74.32666f, 269.6421f) }, { EAetheryteLocation.UltimaThuleAbodeOfTheEa, new Vector3(64.286255f, 272.48022f, -657.49603f) }, { EAetheryteLocation.UltimaThuleBaseOmicron, new Vector3(489.2804f, 437.5829f, 333.63843f) }, { EAetheryteLocation.Tuliyollal, new Vector3(-24.093994f, 0.77819824f, 7.583679f) }, { EAetheryteLocation.TuliyollalDirigibleLanding, new Vector3(-413.68738f, 2.9754639f, -45.975464f) }, { EAetheryteLocation.TuliyollalTheResplendentQuarter, new Vector3(-187.1214f, 39.93274f, 6.088318f) }, { EAetheryteLocation.TuliyollalTheForardCabins, new Vector3(-149.73682f, -15.030151f, 198.90125f) }, { EAetheryteLocation.TuliyollalBaysideBevyMarketplace, new Vector3(-14.999634f, -10.025269f, 135.57642f) }, { EAetheryteLocation.TuliyollalVollokShoonsa, new Vector3(-99.13794f, 100.72473f, -222.03406f) }, { EAetheryteLocation.TuliyollalWachumeqimeqi, new Vector3(166.27747f, -17.990417f, 38.742676f) }, { EAetheryteLocation.TuliyollalBrightploomPost, new Vector3(71.7937f, 47.074097f, -333.21124f) }, { EAetheryteLocation.SolutionNine, new Vector3(-0.015319824f, 8.987488f, -0.015319824f) }, { EAetheryteLocation.SolutionNineInformationCenter, new Vector3(-30.441833f, -6.0579224f, 209.3385f) }, { EAetheryteLocation.SolutionNineTrueVue, new Vector3(382.6809f, 59.983154f, 76.67651f) }, { EAetheryteLocation.SolutionNineNeonStein, new Vector3(258.28943f, 50.736206f, 148.72961f) }, { EAetheryteLocation.SolutionNineTheArcadion, new Vector3(374.77686f, 60.01367f, 325.67322f) }, { EAetheryteLocation.SolutionNineResolution, new Vector3(-32.059265f, 38.04065f, -345.2354f) }, { EAetheryteLocation.SolutionNineNexusArcade, new Vector3(-160.05188f, -0.015319824f, 21.591492f) }, { EAetheryteLocation.SolutionNineResidentialSector, new Vector3(-378.13385f, 13.992493f, 136.49194f) }, { EAetheryteLocation.UrqopachaWachunpelo, new Vector3(332.96704f, -160.11298f, -416.22034f) }, { EAetheryteLocation.UrqopachaWorlarsEcho, new Vector3(465.62903f, 114.94617f, 634.9126f) }, { EAetheryteLocation.KozamaukaOkHanu, new Vector3(-169.51251f, 6.576599f, -479.42322f) }, { EAetheryteLocation.KozamaukaManyFires, new Vector3(541.16125f, 117.41809f, 203.60107f) }, { EAetheryteLocation.KozamaukaEarthenshire, new Vector3(-477.53113f, 124.04053f, 311.32983f) }, { EAetheryteLocation.KozamaukaDockPoga, new Vector3(787.59436f, 14.175598f, -236.22491f) }, { EAetheryteLocation.YakTelIqBraax, new Vector3(-397.05505f, 23.5141f, -431.93713f) }, { EAetheryteLocation.YakTelMamook, new Vector3(721.40076f, -132.31104f, 526.1769f) }, { EAetheryteLocation.ShaaloaniHhusatahwi, new Vector3(386.40417f, -0.19836426f, 467.61267f) }, { EAetheryteLocation.ShaaloaniShesheneweziSprings, new Vector3(-291.70673f, 19.08899f, -114.54956f) }, { EAetheryteLocation.ShaaloaniMehwahhetsoan, new Vector3(311.36023f, -14.175659f, -567.74243f) }, { EAetheryteLocation.HeritageFoundYyasulaniStation, new Vector3(514.6105f, 145.86096f, 207.56836f) }, { EAetheryteLocation.HeritageFoundTheOutskirts, new Vector3(-223.0412f, 31.937134f, -584.03906f) }, { EAetheryteLocation.HeritageFoundElectropeStrike, new Vector3(-219.53156f, 32.913696f, 120.77515f) }, { EAetheryteLocation.LivingMemoryLeynodeMnemo, new Vector3(-0.22894287f, 57.175537f, 796.9634f) }, { EAetheryteLocation.LivingMemoryLeynodePyro, new Vector3(657.98413f, 28.976807f, -284.01617f) }, { EAetheryteLocation.LivingMemoryLeynodeAero, new Vector3(-255.26825f, 59.433838f, -397.6654f) } }.AsReadOnly(); private ReadOnlyDictionary AirshipLandingLocations { get; } = new Dictionary { { EAetheryteLocation.LimsaAirship, new Vector3(-19.44352f, 91.99999f, -9.892939f) }, { EAetheryteLocation.GridaniaAirship, new Vector3(24.86354f, -19.000002f, 96f) }, { EAetheryteLocation.UldahAirship, new Vector3(-16.954851f, 82.999985f, -9.421141f) }, { EAetheryteLocation.KuganeAirship, new Vector3(-55.72525f, 79.10602f, 46.23109f) }, { EAetheryteLocation.IshgardFirmament, new Vector3(9.92315f, -15.2f, 173.5059f) } }.AsReadOnly(); public ReadOnlyDictionary TerritoryIds { get; } public ReadOnlyDictionary AethernetGroups { get; } private IReadOnlyList TownTerritoryIds { get; set; } public AetheryteData(IDataManager dataManager) { Dictionary territoryIds = new Dictionary(); Dictionary aethernetGroups = new Dictionary(); foreach (Aetheryte item in from x in dataManager.GetExcelSheet() where x.RowId != 0 select x) { if (item.Territory.RowId != 0) { territoryIds[(EAetheryteLocation)item.RowId] = (ushort)item.Territory.RowId; } if (item.AethernetGroup > 0) { aethernetGroups[(EAetheryteLocation)item.RowId] = item.AethernetGroup; } } ConfigureAetheryte(EAetheryteLocation.IshgardFirmament, 886, aethernetGroups[EAetheryteLocation.Ishgard]); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentMendicantsCourt, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentMattock, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentNewNest, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmanentSaintRoellesDais, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentFeatherfall, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentHoarfrostHall, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentWesternRisensongQuarter, 886); ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FIrmamentEasternRisensongQuarter, 886); TerritoryIds = territoryIds.AsReadOnly(); AethernetGroups = aethernetGroups.AsReadOnly(); TownTerritoryIds = (from x in dataManager.GetExcelSheet() where x.RowId != 0 && !string.IsNullOrEmpty(x.Name.ToString()) && x.TerritoryIntendedUse.RowId == 0 select (ushort)x.RowId).ToList(); void ConfigureAetheryte(EAetheryteLocation aetheryteLocation, ushort territoryId, ushort aethernetGroup) { territoryIds[aetheryteLocation] = territoryId; aethernetGroups[aetheryteLocation] = aethernetGroup; } void ConfigureAetheryteWithAutoGroup(EAetheryteLocation aetheryteLocation, ushort territoryId) { ConfigureAetheryte(aetheryteLocation, territoryId, (ushort)((int)aetheryteLocation / 100)); } } public float CalculateDistance(Vector3 fromPosition, ushort fromTerritoryType, EAetheryteLocation to) { if (!TerritoryIds.TryGetValue(to, out var value) || fromTerritoryType != value) { return float.MaxValue; } if (!Locations.TryGetValue(to, out var value2)) { return float.MaxValue; } return (fromPosition - value2).Length(); } public float CalculateAirshipLandingDistance(Vector3 fromPosition, ushort fromTerritoryType, EAetheryteLocation to) { if (!TerritoryIds.TryGetValue(to, out var value) || fromTerritoryType != value) { return float.MaxValue; } if (!AirshipLandingLocations.TryGetValue(to, out var value2)) { return float.MaxValue; } return (fromPosition - value2).Length(); } public bool IsCityAetheryte(EAetheryteLocation aetheryte) { if (aetheryte == EAetheryteLocation.IshgardFirmament) { return true; } ushort value = TerritoryIds[aetheryte]; return TownTerritoryIds.Contains(value); } public bool IsAirshipLanding(EAetheryteLocation aetheryte) { return AirshipLandingLocations.ContainsKey(aetheryte); } public bool IsGoldSaucerAetheryte(EAetheryteLocation aetheryte) { ushort num = TerritoryIds[aetheryte]; if (num == 144 || num == 388) { return true; } return false; } }