First I'd like to point out that I have never programmed in Lua before attempting this!
Also I'd like to thank Byrth and SnickySnacks for their work on BattleMod, and PointWatch respectively. I borrowed some of their code including the menu, and incoming chunk analysis code for use in this addon. With all that out of the way, I'd like to introduce to you all the Windower addon, BarFiller!
Copy addons\barfiller to your local Windower4\addons folder
Copy addons\libs\images.lua to your local Windower4\addons\libs folder
I recommend installing Montserrat, and/or Ubuntu Mono fonts, otherwise the Addon will use your PCs default "sans-serif" font
What does it do? Simply put, it displays an experience bar above the Help Window. It will display at the top-center of the screen no matter what resolution you're using, and display your current level progress below. Includes XP needed to reach the next level, overall %, and XP/hr.
If you have any requests, and/or feedback please let me know. I'll be monitoring this thread often.
Available commands
Spoiler
barfiller help - Shows the following information below
barfiller clear - Resets exp counter to 0
barfiller reload - Turns itself off, and on again
barfiller unload - Disables addon completely
Shortcuts for Console and //Chat Window:
bf h | //bf h
bf c | //bf c
bf r | //bf r
bf u | //bf u
Since it shares much of the code from PointWatch, you can quickly update the experience counter by opening your Status menu, and/or waiting for any experience to be gained, or lost.
Future Features & Screenshots
Spoiler
Goals I'd like to reach in future updates:
Display details below exp bar: Job, Level, current/total, to next level, and % Added in v0.1.9 - May 5, 2015
Display below the experience bar: XP/hr Added in v0.2.0 - May 10, 2015
Allow toggling the above details to users preference
Positioning the bars through the console commands
Animate the progress bar changes Added in v0.2.2 - May 23, 2015
Option to toggle Experience Points with Limit Points
Limit Break Bars (for your own TP) - not intended for parties, but maybe each segment could represent that when all members have reached 1000, 2000, 3000?
When BarFiller is first loaded or after running the clear command, the EXP is 0
After opening the Status menu, or gaining/losing some experience the Experience Bar will fill up:
Here's a closer look:
Version History
Spoiler
v0.1.5 - April 30, 2015
Initial release
v0.1.6 - May 1, 2015
Removed Settings file, now auto generated
Removed Hard-coded paths, now using "windower.windower_path"
Converted tabbed indentation to 4 space indentation
Removed err message, just calls the help() function now that shows available commands
Corrected naming conventions to PascalCase and snake_case
Files end in new lines
v0.1.7 - May 2, 2015
Thanks to user smd111, now parses packets of incoming chunks
Changed console output to chat window output
v0.1.8 - May 2, 2015
No longer declaring 'data\settings.xml' when generating settings_table
Really fixed PascalCase
Adds 'help' to command if no argument is given
v0.1.9 - May 5, 2015
Added text labels for Main Job, Main Job Level, Current XP, Total XP, To Next Level, and %
Font pictured above is "Montserrat", if you do not have that font available it will attempt to use "Ubuntu Mono", and if all else fails it will default to the system font "Arial"
v0.2.0 - May 10, 2015
Added EXP/hr text label, only updates on chunk updates, not every second like PointWatch
Addon now loads properly with Auto Executed Script (at character selection screen)
There is a 10 second delay AFTER character login to make sure game is fully loaded. I have a slow 3Mb connection and this was enough time to avoid parsing errors
If you choose to manually load the addon, without the Auto Executed script, then there is no delay to load (lua l barfiller)
Mini Update - May 12, 2015
Moved images to root folder, now using "windower.addon_path"
Cleaned up 'login' and 'logout' events:
initialize:schedule(10) on Login event delays addon for 10 seconds to make sure all chunks are downloaded for player details
Hide Images and Text objects on Logout event instead of reloading addon (shame on me for cheating)
v0.2.1 - May 23, 2015
Added new Image Library (...addons/libs/images.lua)
Converted prims to Image Objects
Additional getters and setters used
v0.2.2 - May 23, 2015
Added smooth animations, thanks to Iryoku for the logic
1. Where is the official pull request?
2. I sure hope it fills smoothly and doesn't just jump to the next value! This is 2015 after all, everything needs to be smooth~
Edit:
Also, I vote changing colors depending on fill status! Greener or bluer the higher it gets
v0.2.0 was just pushed with added EXP/hr counter, and now loads properly at character selection screen:
EXP/hr only updates on chunk updates, instead of every second like in PointWatch. This was to limit the amount of wasted calculations, and keep the memory usage down.
Looks awesome!! Pardon me for my ignorance but how can I start using this addon?
Thank you! However, I would wait until it's merged with the official Windower repo before using it. Arcon and some others are helping me to clean up the code to make it safe and ready for public use. My first few updates were pretty ugly and using very bad coding practices to get it to work.
EDIT: Once it's merged with the Windower repo you'll be able to download the addon properly in the Launcher > Addons tab.
v0.2.3 removed the need for 10 second delay on startup, I was forgetting to update windower.ffxi.get_player(), and re-added frame_count to prevent Text flicker.
Hey, made an account here to tell you this, but in the current version there is a bug for new players who don't have a subjob on line 337 of static.lua.
EDIT: I don't have another mule to test this on, but it should simplify things, basically: IF variable == true THEN true ELSE false END
player.sub = (info.sub_job and '('..string.lower(info.sub_job)..') ' or '(---) ')
Hey, made an account here to tell you this, but in the current version there is a bug for new players who don't have a subjob on line 337 of static.lua.
Hey I've installed this to test it aswell and see the bar, but no job or exp is shown.
Thanks for downloading it to test, but make sure you copy all the contents of addons\barfiller, as well as the addons\libs\images.lua file in order for the addon to work.
v0.2.4 Fixed memory leak when calculating new width, renamed functions to be read easier, strings are now updated by a factor of time instead of frames for a more consistent experience at any frame rate.
Image library also updated to include drag support, and some functions were added: width, height, get_extents, draggable
NOTE: BarFiller does not have dragging enabled by default!