Enhanced Flight Map

Enhanced Flight Map

67.5k Downloads

Flight times

beren12 opened this issue · 15 comments

commented

These are from the inflight add-on which I have been using before now, i believe it should be pretty easy to use to update the add-on's flight times.
InFlight.lua.txt

commented

Hmmm.... Let me think on this one. I have historically never wanted to import data from another addon authors work into EFM, as I did not want to "steal" users from another addon. I consider it rather impolite and sort of stifling of creativity. This is even more important considering I've been on hiatus from WoW for almost a decade, and given the times I've heard people talk about EFM offline since then I feel like the "big fish" coming back into the pond.

I won't rule this out at the moment, but I want to not only think about this, but I would not want to do this without talking to the InFlight authors (which I have reached out to them privately, though they are welcome to comment publicly here if they desire).

commented

It's Ok i'm working on flying around getting new timers. They seem to be the same it's just a slow process. The data I posted is from me, not the add-on's authors as I did the flying and spent the silver :-) Anyway I'll post an EFM file soon with a good portion of the times on it anyway.

commented

I heard back from one of the InFlight devs (Hi @WildCard-25), and there's no concern from them about utilizing their mod data, especially as it's user-collected.

However, I'd want to set it up in such a way that people could use both addons or migrate from one to the other (or even use both if InFlight does something in a way that EFM isn't so great at). That will take a bit of work, so I'm going to flag this low-priority and think of this as an enhancement.

Direct import of the data file from InFlight-> EFM is difficult due to the EFM dataset complexity, however from EFM->InFlight is simpler as it could just be a simple "export" routine. Much of EFM's functionality relies on the map locations for the flight nodes, which is why it's frequently been easier to just recollect the flight data when there's a major change to WoW, and why I haven't wanted to remove stuff from the dataset either...

commented

Good to know, but I've got a jump on Alliance data! I got all the FP and made sure I stood on top of the flight master so the loc is correct. Maybe you could add this into the mod with whatever you have for horde to start people off?

EnhancedFlightMap.lua.txt

commented

Going back to the conversion, you might be able to have a script that can be run in bash to do the conversion or something? even windows can have bash now :-)

commented

As mentioned, going from EFM to InFlight is easy, yeah I could slap together a script to convert from EFM easily. The concern is going the other way. EFM utilizes a list of additional information that isn't in the InFlight data. Starting at the top of the datafile, there is the Continent, the Zone, and then the full (not short) name of the flight node.

If you compare the two sets of data you supplied herein (One from InFlight and the "starter" for EFM), look at the data for Stormwind. The data is incomplete as far as just getting to where the flight time is placed. I could hack together something that would allow for import of the flight times inside WoW... maybe... I think I might be able to at least given the new mapping API. This would need the user to copy the InFlight data into a file that EFM can read the data from, and then run a manual command. Doable, and that's how the current preload stuff actually does things (though less convoluted as the data is already intact).

If Blizzard exposed a more relational-db like interface for lua, so I could do some database magic, this would be a few minute thing to get going, but they don't so I'd rather write something that is more robust. Given my university schedule, I don't know when I'll get to this, but I have put a bit of thought into it, and we'll see what happens as I get time/etc.

In terms of the EFM data you supplied, I'll put that into the preload location shortly.

commented

InFlight is load on demand, so after a 'LoadAddOn("InFlight")' then the default data can be accessed through the global InFlight.default.global (.Horde/.Alliance). The users flight data can be accessed through InFlightDB.global (.Horde/.Alliance), however this is a mixin with the default. In the next release, when I include some default data, then the users variables file will only contain the differences from the default data.
Basically, no need to copy/paste data to another file, and after the next release, they'd only be copy/pasting the differences.

commented

ps. I already have all of the flight times in beren12's file. I just haven't released a new version that includes them yet 😄

commented

Nearly forgot, don't forget to hook the early landing function, it didn't exist in vanilla.
'hooksecurefunc("TaxiRequestEarlyLanding", function())', otherwise you get bad times when players land early. Like barren12's flight from Ratchet to Gadgetzan, where he landed early at Theramore. This saved the time from Ratchet -> Theramore as the time for Ratchet -> Gadgetzan.
Up to you as to whether you work out where they really landed or just disregard the time.

commented

Continuing my monologue 😄
I didn't notice before, but the flight times in barren12's file for Ratchet -> Theremore and Ratchet -> Gadgetzan actually look like they are swapped... that might point to a bug elsewhere.

commented

That bug would be me, I did some preloading of data… I fixed it and somehow didn't have the location of Menethil Harbor tagged! @illiath What is the best/easiest way to merge flight data into the add-on file? Is it done by hand? @WildCard-25 is right I had those times reversed and have a couple more I've since recorded. I sometimes lose data cause I play on 3 machines and it's hard to keep everything in sync :-)

commented

In terms of syncing data between machines when you are using them all to play at different times and not copying the game's savedvariables between systems, there is a thoroughly not-at-all-supported but feel free to try it as it should work, method for doing so:

I actually have a function in EFM that's specifically designed to merge data tables. It's used in a few places in the addon, specifically for "preloading" flight data, as the preload doesn't overwrite saved data.

If you look in FlightMapData.lua, at the end of the file there are these lines:

--
-- /script EFM_SF_mergeTable(EFM_ImportData, EFM_Data);
EFM_ImportData = {
};

Copy the data from your EFM savedvariables file by copying the bits between EFM_DATA = { and the } for that variable, and put that chunk in between the {}'s in the code above, and run the command in the comment listed /script EFM_SF_mergeTable(EFM_ImportData, EFM_Data);, and that should merge the data into that systems EFM Data.

Again, this method is entirely unsupported, though I use it for this myself, but it could make EFM explode horribly, or do something thoroughly impossible (Heck, I wrote this spaghetti-fest of code and even I worry about some the kludges I have in here that seem to work, so this bit is even more user-beware than usual).

commented

Ok, well if you didn't add anything to my data I uploaded when you put it in the add-on file it can just be replaced with my new data. I'm just trying to get a guildie to install it and mark the druid-only fp in moonglade.

commented

Here's today's flight data, starting to get some global world map coords as well:

EnhancedFlightMap.lua.2.txt

commented

Copy the data from your EFM savedvariables file by copying the bits between EFM_DATA = { and the } for that variable, and put that chunk in between the {}'s in the code above, and run the command in the comment listed /script EFM_SF_mergeTable(EFM_ImportData, EFM_Data);, and that should merge the data into that systems EFM Data.

The account Data file, not system :) if you used it often you could make a small popup window you can paste data into for importing :-)