Diameter

A simple damage meter for the Midnight API. Features navigation through right and left clicks.

File Details

v2.0.0

  • R
  • Feb 23, 2026
  • 40.15 KB
  • 14
  • 12.0.1
  • Retail

File Name

Diameter-v2.0.0.zip

Supported Versions

  • 12.0.1

Diameter

v2.0.0 (2026-02-23)

Full Changelog

  • Added a report concerning memory usage.
  • IDs replaced from GetTime() to increment.
  • EventBus now can clear listeners of a closed window passing owner param.
    Removed a dead event nobody was firing: EVT.ADDON_BOOTED
  • Even more stuff to do. I might add "Cleaning bathroom" to TODO.md, too.
  • Fixed: can't close window if there's only one.
    A small fix on Util.count so it can count with or without a predicate.
  • New module: Database (singleton). Abstracts all DB operations :3.
    Presenter now just use an in-memory/in-DB reference to currentState.
    Fixed: a bad reference in Presenter:New; "self" instead of "obj".
    Fixed: a NASTY bug due to a shared dataArray in Data.lua.
    Reduced UI.MaxBars to 50 because I think Blizz caps at 40. Idk tho, I am just a dog.
  • Adding/sorting priorities.
  • Multiple window feature with another massive singleton -> OO refactor.
    I could write a frikkin essay here; there's still A LOT to be done, but the raw functionality is here.
    It persists new windows into DiameterDB and restores them too.
    Fixed: upon creating a new window, it'd be black until a /reload come in. Reason was, ScrollChild would never get a Width. It's inheriting ScrollFrame's width now.
    Added a Diameter.Debug:Frame before I went nuts.
    EventBus is now instanced AND has a singleton for global events. Now we have Diameter.EventBus and Diameter.EventBusClass. I don't love this, but it works.
    Menu is now OO instead of singleton.
    Presenter is working with instances of EventBus and UI now.
    UI starts new windows in a much cuter size.
    Removed space for a scroll bar in UI.
    Added a big TODO.md file to keep track of important stuff that still required attention.
  • Diameter now handles a dynamic amount of windows/presenters.
    Diameter.lua now it MUCH lighter, it doesn't hold state anymore.
    Diameter.Current is gone. It should be merged with viewState, IMO.
    EVT.MAINFRAME_BOOTED renamed to ADDON_BOOTED.
    Presenter.lua now can be put in an array, loads from DB and holds the state Diameter.lua used to hold.
  • Loop refactored to OO and became Presenter.lua. Beautiful, I know.
    Cleared some method calls to show data after boot.
    Version bumped to 2.0.0. Because I can.
  • Navigation module migrated to OO approach.
    Code smell Diameter:RefreshUI() was removed in favor of events. Even then, less events are needed.
  • Saved a reference to created Header.
  • UIHeader refactored into OO design.
    UI assembling is much cleaner now, with "Create" returning components instead of assembling them.
    Added abstraction for the SegmentBtn text (no abstraction leak).
    fixed: jittery segment button jumping around. Fixed width now.
  • Fixed: bug on /reload mid combat. The reloading was triggering stuff before CurrentState was fetched from DiameterDB.
  • Moving architecture to OO, starting with UI.
    Found a bug: /reload while in combat throws a lua error.
  • I forgot to bump the version up, as always. I need to automate this.