Commit graph

1809 commits

Author SHA1 Message Date
goat
9d8bcb7a24 add "disable for this session" button to ImGui asserts 2024-12-25 17:03:22 +01:00
goat
12bf2f4478 replace nonfunctional managed asserts with proper imgui-handled assert mechanism 2024-12-25 12:47:38 +01:00
goat
c31fe0920f remove hackfix hooks 2024-12-24 03:44:31 +01:00
goat
371f1bfa18 comment out kizer hack for now, need to move to natives 2024-12-23 23:17:33 +01:00
goat
8276c19c6f add plugin enable/disable/toggle commands 2024-12-23 21:00:02 +01:00
goat
8572ed8b1e ProfileCommandHandler -> PluginManagementCommandHandler 2024-12-23 17:05:35 +01:00
Infi
2e6cb6ef00
- Add chat notification back to AutoUpdate (#2146)
- ImRaii UI elements in AutoUpdate tab
- Fix scoping in IconButton
2024-12-19 22:19:50 +01:00
srkizer
70af62885b
chore: remove [Experimental] from SeStringRenderer (#2144)
It hasn't caused problem for a while (though performance probably can be
better), and looks good enough to remove this attribute.
2024-12-17 07:31:44 -08:00
Haselnussbomber
da718b64c1
Use MiniGame BGM scene for About tab 2024-11-30 19:59:42 +01:00
srkizer
db4b6cea2c
Avoid re-creating title version string every frame (#2117)
* Avoid re-creating title version string every frame

* Marked title version string that it has been changed by Dalamud by
  appending a newline payload with a string expression embedded within,
  which the game will ignore (effectively `<br(!Dalamud!)>`.)
* Added `PluginManager.LoadedPluginCount` which will count the number of
  loaded plugin without making a copy of the plugin list.
* Made TitleScreenMenuWindow.OnVersionStringDraw` update the title
  version text addon only if number of loaded plugin changes or the text
  is missing the custom suffix from the first point.

* Use OriginalTextPointer to determine if SetText(ROS) has been called
2024-11-25 17:09:43 -08:00
KazWolfe
903a5ad5da
fix: Properly handle UTF-8 characters in ImGUI paths (#2122)
- Fixes a bug where users with special characters in their filenames would not be able to save `dalamudUI.ini`.
- Throw a special warning if `dalamudUI.ini` doesn't exist, as it's not an error case.
2024-11-24 23:01:01 +01:00
ItsBexy
c950b15a22
Minor interface adjustments (#2121)
- Further ImRaii safety in UiDebug2
- Set some mistakenly internal methods in ImGuiComponents to public
- Added SpanFullWidth flag to trees in Util.ShowStruct
2024-11-24 21:37:39 +01:00
srkizer
d19b7d70d5
Move UtfEnumerator from Dalamud to Lumina (#2111)
* Move UtfEnumerator from Dalamud to Lumina

Comes with some trivial cleanups.

* Update Lumina to 5.5.0
2024-11-20 09:32:49 -08:00
Haselnussbomber
52e8fca7f1
Add InventoryWidget (#2097)
* Add InventoryWidget

* Update InventoryWidget

- Use GameInventoryItem.GetReadOnlySpanOfInventory
- Display Stains
- Display Materia

* Display CrafterContentId in InventoryWidget

* Fix display of HQ items in InventoryWidget

Also removes the Base ItemId, because Dalamud doesn't apply flags.

* Make columns Itemid and Quantity copyable
2024-11-16 17:50:58 -08:00
nebel
abcb99d4ec
Add support for boxed outlined numbers in SeIconChar (#2088) 2024-11-16 00:34:49 +00:00
Kaz Wolfe
d7abf9fe0d
Fix Fate aging step; report Tuliyollal taxes
- FATE table test needs a zone with FATEs in it.
- Use a `byte` rather than an `int` so we don't overflow like crazy.
2024-11-14 23:27:46 -08:00
ItsBexy
ee63f60877
Update UIDebug2, ImGuiComponents, ImGuiHelpers (#2081)
* Update ImGuiComponents & ImGuiHelpers
Took some helper functions created for `UiDebug2`, and incorporated them into `ImGuiComponents` / `ImGuiHelpers` instead

- `IconButton()` (and its various overloads) now includes an optional size parameter
- `IconButtonSelect()` has been added, allowing a row or grid of IconButtons to serve as a radio-like input
- `HelpMarker()` now includes an optional color parameter
- `ClickToCopyText()` now includes an optional color parameter, and includes the `FontAwesome.Copy` icon in the tooltip.
- Implemented ImRaii in these files

These changes are intended not to break any existing calls in plugins or within Dalamud itself.

* Fix ambiguous overloads

* UiDebug2 Updates
- Fixed XY coordinate display
- Added AtkValue table to AddonTree display
- Restored old behaviour wherein the Addon display initially only shows the Root node and a collapsed node list
- The above should also fix the Element Selector / Search behaviour, allowing it to scroll correctly to the searched node
- Now displays field offsets for any node/component whose pointer exists in the addon struct
- Tidied up node tree headers by removing memory addresses (they're still readable in the opened tree, of course)
2024-11-14 15:36:27 -08:00
Kaz Wolfe
fd6d52d33b
Extend IconBrowserWidget range
Resolves #2074.

Co-authored-by: ItsBexy <103910869+itsbexy@users.noreply.github.com>
2024-11-12 20:24:20 -08:00
Kaz Wolfe
10fc7656d3
bump cs, ts name fix 2024-11-12 10:26:21 -08:00
Julian
57cc2f36f9
feat: Encourage developers to use DLLs for devPlugins (#1958)
* Add file dialog to add a dev plugin
* Require dev plugins to be paths to the DLL
* Only allow .dlls in the dev plugin setting entry
* Update dev plugin location hint
* update wording

---------

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2024-11-12 08:27:23 -08:00
Haselnussbomber
c0f05614c6
[api11] Some code cleanup and signature replacements (#2066)
* Remove unused code from ChatHandlers

* Replace sigs in DalamudAtkTweaks

* Resolve LocalContentId by using PlayerState.ContentId

* Resolve BuddyList address via UIState.Buddy

* Resolve ObjectTable address via GameObjectManager

* Resolve FateTable address via FateManager

* Resolve GroupManager address via GroupManager

* Resolve JobGauges address via JobGaugeManager.CurrentGauge

* Simplify ItemHover/Out event

* Resolve ToggleUiHide address via RaptureAtkModule.SetUiVisibility

* Resolve PopulateItemLinkObject via InventoryItem.Copy

* Add byte[].AsPointer extension

* Resolve addresses used by ToastGui via UIModule functions

* Use Length from Span as ObjectTableLength

* Replace OpenMapWithMapLink with CS call

* Resolve FrameworkAddressResolver with CS vtable

* Drop unnecessary ToArray in HandlePrintMessage

* Clean up event calls in HandlePrintMessageDetour

* Simplify LocalContentId further

This pointer can't be null, because it's part of the .data section.

* Compare SeStrings in FlyTextGui with SequenceEqual

* Use CS types in FlyTextGuis internal code

* Simplify reading SeStrings internally

* Remove AsPointer again

* Resolve Number/StringArray by type in NamePlateGui

* Fix crashes in HandlePrintMessageDetour

* Resolve InteractableLinkClicked with LogViewer.HandleLinkClick
2024-11-12 08:20:29 -08:00
Kaz Wolfe
084f8b55e7
fix cs breaks 2024-11-11 08:54:57 -08:00
Kaz Wolfe
720b1676e5
Merge branch 'master' into api11
# Conflicts:
#	Dalamud/Game/ClientState/Fates/Fate.cs
#	Dalamud/Game/Gui/NamePlate/NamePlateUpdateContext.cs
#	Dalamud/Interface/Internal/DalamudInterface.cs
#	Dalamud/Interface/Windowing/Window.cs
#	Dalamud/Utility/StringExtensions.cs
#	lib/FFXIVClientStructs
2024-11-11 08:38:20 -08:00
Haselnussbomber
c7facaf072
Rewrite parts of ClientState (#2065)
- Completely relies on hooks now, instead of the Framework.Update loop
- Support for Logout codes
2024-11-11 08:28:40 -08:00
wolfcomp
30d56e4d11
fix all warnings and breaking changes for CS (#2061) 2024-11-04 21:14:51 -08:00
goat
fcbad5000a add hint about disabling version text to TSM setting 2024-11-04 23:14:10 +01:00
goat
66c24b630a dark uiglow looks better 2024-11-04 22:59:24 +01:00
goat
d08520b245 make version text not-red, since that feels like it should indicate errors 2024-11-04 17:48:34 +01:00
KazWolfe
3435c346b6
feat: Add Dalamud Version to the Title Screen (#1939) 2024-11-04 17:18:31 +01:00
Xpahtalo
620a802755
Add additional warning to plugin config reset modal (#2005)
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-11-04 15:13:46 +00:00
srkizer
74ab9191d3
Add ITextureProvider.ConvertToKernelTexture (#2003)
* Add ITextureProvider.ConvertToKernelTexture

Lets you obtain an instance of Kernel::Texture from IDalamudTextureWrap.

* Docs wip
2024-11-04 16:06:42 +01:00
goat
8956bd54a9 fix some warnings 2024-11-04 15:01:09 +01:00
goat
f39abd9dd2 fix: don't refer to CS assembly by name 2024-11-04 14:39:26 +01:00
goat
422463f9cf
Merge pull request #2038 from ItsBexy/UiDebug2
Update Addon Inspector
2024-11-04 14:37:00 +01:00
Kaz Wolfe
82fe5a387b
fix: Register DataManager as a service 2024-11-01 08:54:42 -07:00
ItsBexy
8fc93c4c52 Switch to TextUnformatted()
Plus other noodling with GUI business.

I considered adding some of the helper features I use here to `ImGuiComponents`, but it would have quickly started expanding into a separate project of its own, and I didn't really want to entangle that with this PR right now.
2024-10-24 16:37:04 -06:00
Blooym
a8244a9114
chore: fix a very small typo (#2058) 2024-10-20 20:38:15 -07:00
Asriel Camora
0b9af0e3f4
Update to Lumina 5 (new Excel parsing) (#2022)
* Refactor and upgrade to new excel design

* Obsolete ExcelResolver<T> and use only RowRef<T>

* Better benchmarking for Lumina

* Add custom game-supported RSV provider

* Refactor and move Lazy<T> and nullable/cached row objects to RowRefs

* Convert IRSVProvider to delegate, resolve strings by default

* Split IExcelRow into IExcelSubrow

* Extra lumina documentation

* Minor RSV CS fixes

* Fix UIGlowPayload warning

* Fix rebase

* Update to Lumina 5
2024-10-20 19:59:03 -07:00
ItsBexy
552aafd70d Misc UiDebug2 Fixes
- The widget will now only check the `FFXIVClientStructs` assembly for addon type information.
- Updated ImRaii usage
- Clarified suppression in `NodeTree.Text.cs`
- Restored the original Addon Inspector in the Data window, so that both versions can coexist for the time being
2024-10-17 10:52:22 -06:00
srkizer
1f74293de4
Update Lumina and use MacroStringParser (#2033)
No longer requires hook and main thread requirements on compiling macro
strings.

Needs lookup table fixing on Lumina; using reflection to fix for the
time being.
2024-09-14 10:23:24 -07:00
ItsBexy
e19f9284e5 Implement ImRaii 2024-09-03 21:28:22 -06:00
ItsBexy
bf8690fc60 Update Addon Inspector
This updates the Addon Inspector with lots of new features and functionality.

- Features from Caraxi's fork of UiDebug have been incorporated, such as the Element Selector UI and address search.
- Any addon or node can now pop out into its own window.
- Revised the visual style of node field/property information.
- Color values are now visually displayed.
- Any nodes or components that are referenced by fields within the addon will now show that field name in the inspector.
- Added editors for nodes, allowing complete control over most of their properties.
- Improved texture display for Image nodes (and Image node variant types). The active part of the texture is now highlighted, and the boundaries of other parts can be shown via mouseover.
- Highlighting of node bounds onscreen is now more accurate, factoring in rotation (including when using the Element Selector).
- Display of animation timelines has been revamped, showing a table of keyframes for each animation.

A standalone SamplePlugin-based version is available here: https://github.com/ItsBexy/UiDebug2
2024-09-02 21:01:49 -06:00
srkizer
42a10a1215
Fix SestringRenderer sig (#2030) 2024-08-27 08:48:28 +00:00
goat
ec77f2cc90
Added two new helpers, for PushItemWidth and PushTextWrapPos (#2017)
Added two new helpers, for PushItemWidth and PushTextWrapPos
2024-08-25 16:30:27 +02:00
Infi
84fd82aa80
Add .Pop() to the doc about fontHandle examples (#2021) 2024-08-25 15:06:39 +02:00
srkizer
8822810229
DalamudAssetManager: avoid locks and lookups (#2015)
* Made DalamudAsset-to-something tables into arrays from dictionaries.
  Number of items in the DalamudAsset enum aren't many, and the numbers
  are small enough that implementing lookup tables as arrays aren't
  wasting much memory space.
* Removed locking from asset accessors, while still guaranteeing that
  the load operation happens only once per asset.
* ISharedImmediateTexture: made it not even access assets if textures
  are available.
2024-08-25 15:06:21 +02:00
nebel
981387504b
Avoid capturing local variables in TitleBarButton.Click closure (#2019) 2024-08-25 14:57:36 +02:00
James Keesey
0acab6935a Added two new helpers, one for PushItemWidth and the other for PushTextWrapPos. 2024-08-17 18:03:42 -07:00
nebel
7a45fb05e3
Cache DalamudAssetAttribute lookups (#2014) 2024-08-17 11:05:15 +02:00
srkizer
ecf8e323c4
Misc fixes (#2013) 2024-08-15 15:22:33 +02:00