1.1.1
Curse Maven Snippet
What's new
ModernStatistic - 1.1.1
What is changed?
Change version number from previous to 1.1.1
➕Add:
- Refactor TPanelElement scroll model from GL translate to physical child-move (TCDCommons/CatFrame ScrollContainer style). TElement.addChild reposition now converts relative coords to absolute via move(); added TElement.move() and TPanelElement.moveChildren() with panel-move chaining; removed getScreenRect/getScreenY/toScreenY coordinate patches in BSStatPanel_Items/Mobs; BSStatPanel.setPosition now syncs its scrollbar. Compile verified.
- Add CurseForge and Modrinth download items to the About drop-down menu, each with its own icon (curse.png / modrinth.png) and opening via the wiki-style link confirmation flow. A separator now divides info links (source code / credits) from the download links. Track both icon textures and add their lang keys.
- Track the vanilla_statics.png texture required by the new View drop-down menu item icon.
- Add View drop-down menu in Paneled mode: clicking the View button now opens a DropDownPanel with a 'View vanilla stats screen' item (vanilla_statics.png icon). The jump target honors the defaultUILayout config (betterstats category): TABBED opens GuiStatics, VANILLA opens GuiStats via the new TBetterStatsScreen.switchToDefaultStats(). Updated en_US/zh_CN lang entries for the menu item name.
- Add Blocks option to defaultTab config
- Add 'Blocks' to defaultTab config description and valid options array
- Add two blank lines in tooltip between entity name and stats for visual spacing
- Add localization keys: stat.entityKills (en: Kills, zh: 击杀数), stat.entityKilledBy (en: Killed By, zh: 被击杀数)
- Add dedicated Blocks tab panel with mined count tooltip
- Create BSStatPanel_Blocks that filters to blocks only (isBlock == true)
- Add 'Blocks' to CurrentTab enum between General and Items
- Add Blocks case in BSPanel_Statistics.refreshStatsPanel()
- Add localization keys: stat.blocksButton (en_US: Blocks, zh_CN: 方块)
- TBetterStatsScreen: Add resetForNewFrame() and extractDeferredElements() calls to flush CatFrame deferred rendering pipeline
- BSStatPanel_Items: Replace custom drawHoverTooltip with WidgetTooltipHolder + Tooltip.create() for deferred tooltip rendering
- Add mobModelFollowCursor config option (default true) controlling whether mob models in the stats grid turn to follow the cursor
- Add EntityModelRenderer utility for rendering living entity (animal & monster) 3D models onto the GUI, mirroring vanilla GuiInventory.drawEntityOnScreen with entity instance caching and rotation state backup/restore
- Replace the About screen with a drop-down menu in BSPanel_StatisticsMenuBar: Source Code and Credits items open their repos through the existing wiki-style link confirmation; remove GuiAboutModernStatistic and TBetterStatsScreen.showAboutScreen; add credits lang keys.
- Remove all wiki-link related content from GuiStatics: drop GuiYesNoCallback implementation, confirmClicked handler, pendingWikiUrl field and its imports
🔧Fix:
- Fix tooltip position drift on scroll: add TElement.getScreenY()/getScreenRect() that walks up the parent chain accumulating TPanelElement scroll offsets, use screen-space rect for tooltip positioning in BSStatPanel_Items and BSStatPanel_Mobs
- Fix hover/tooltip drift on scroll: convert TPanelElement children to relative coordinates, align GL transform (translate by panel.y + scrollOffset), hover detection, and content height calculations to consistent relative coordinate space
- Fix tooltip not showing in Panel mode: add missing updateHover() call in TElement.render() and override TPanelElement.render()/postRender() to adjust mouse Y for scroll offset
- gradle-wrapper.jar Fix
- fix localization
- Fix item popup rendering below item icons: RenderItem leaves GL_DEPTH_TEST/GL_CULL_FACE enabled and 3D depth values, occluding the z=0 popup; reset GL state in ItemPopupOverlay.extractRenderState so the popup always draws on top
- Fix item popup overlay clamped to bottom-left in PANELED mode: convert content-space mouse Y (scroll-offset adjusted by TPanelElement.mouseClicked) back to screen coordinates before creating ItemPopupOverlay
- Fix overly dark mob model previews: reset glColor to white before rendering (as RenderBiped.doRender does) and disable the lightmap texture unit during GUI rendering, since lightmap coords are invalid under the GUI matrix
- Fix mob model rendering too dark by forcing full-bright lightmap (240,240) before render; add cursor-follow rotation by passing mouse-to-cell-center offsets to renderEntity
- Add HUD stats overlay with /hudstats command and right-click item popup; rework TBetterStatsScreen to extend CatFrame Screen; converge wiki-link action to PANELED mode only; fix HUD stat label templates for zh/en locales
❗❗❗Deprecated:
- Remove text overlay from mob cells, show stats only in tooltip
- Remove entity name and kills/deaths text from mob cell rendering
- Remove obsolete drawHoverTooltip() static method from BSStatPanel_Items
- Show the code.png icon on the Source Code item of the About drop-down menu in BSPanel_StatisticsMenuBar.
- Refactor DropDownPanel into a full drop-down menu overlay: Action enum callbacks mirroring Style.ClickEvent.Action, background-free items with Text/Style hover feedback, ItemStack/ResourceLocation icon support, horizontal separators, and screen-clamped positioning below the trigger button.
Notes
Full Changelog: https://github.com/song682/modern-statistic/commits/v1.1.1
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

