From d4a2f989cd606efc687b128e294fbd99b18cd471 Mon Sep 17 00:00:00 2001 From: Gordon Watt Date: Thu, 11 Nov 2021 17:02:58 -0600 Subject: [PATCH 1/3] Intall NuGet Package ImGui.NET for UIDev --- UIDev/UIDev.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/UIDev/UIDev.csproj b/UIDev/UIDev.csproj index 260030e..3e7fff3 100644 --- a/UIDev/UIDev.csproj +++ b/UIDev/UIDev.csproj @@ -42,4 +42,8 @@ false + + + + From 1889d4d134698e474f4adb876c71ae9e4166edcc Mon Sep 17 00:00:00 2001 From: Gordon Watt Date: Thu, 11 Nov 2021 19:53:34 -0600 Subject: [PATCH 2/3] Update readme --- README.md | 52 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 04a854b..c87d05b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,18 @@ # SamplePlugin -Simple example plugin for XivLauncher/Dalamud, that shows both a working plugin and an associated UI test project, to allow for building and tweaking the UI without having to run the game. +Simple example plugin for XIVLauncher/Dalamud, that shows both a working plugin and an associated UI test project, to allow for building and tweaking the UI without having to run the game. This is not designed to be the simplest possible example, but neither is it designed to cover everything you might want to do. I'm mostly hoping this helps some people to build out their UIs without having to constantly jump in and out of game. +**Sample Plugin is structured as Visual Studio Solution/Projects and will need to be adapted by anyone wishing to use something else.** ### Main Points +* The intention is less that any of this is used directly in other projects, and more to show how similar things can be done. +* Hides data files from visual studio to reduce clutter + * Also allows having data files in different paths than VS would usually allow if done in the IDE directly + +###### SamplePlugin * Simple functional plugin * Slash command * Main UI @@ -14,27 +20,37 @@ I'm mostly hoping this helps some people to build out their UIs without having t * Image loading * Plugin json * Simple, slightly-improved plugin configuration handling +* Copies all necessary plugin files to the output directory + * Does not copy dependencies that are provided by dalamud + * Output directory can be zipped directly and have exactly what is required + +By default, building should out directly into the XIVLauncher's DevPlugins and be automatically loaded upon game launch. + +###### UIDev * Basic ImGui testbed application project * Allows testing UI changes without needing to run the game * UI environment provided should match what is seen in game * Defaults to an invisible fullscreen overlay; can easily be changed to use an opaque window etc * Currently relies more on copy/paste of your UI code than fully generic objects (though this could be done) -* Project organization - * Copies all necessary plugin files to the output directory - * Does not copy dependencies that are provided by dalamud - * Output directory can be zipped directly and have exactly what is required - * Hides data files from visual studio to reduce clutter - * Also allows having data files in different paths than VS would usually allow if done in the IDE directly - - - The intention is less that any of this is used directly in other projects, and more to show how similar things can be done. - - The UIDev project could be used as-is, with just the UITest.cs file needing to be redone for your specific project UI. - - ### To Use - You'll need to fixup the library dependencies (for both projects), to point at your local dalamud binary directory. - - This will either be a custom dalamud build, or `%APPDATA%\XivLauncher\addon\Hooks\` for the current live release. + +Can be built as-us and run stand-alone directly resulting in a "pop-up" of the UI. - After that, clear out what you don't need in UITest.cs, and implement your own local UI under Draw() +### First time setup + +If you have not already done so, install the [latest version of the XIVLauncher](https://github.com/goatcorp/FFXIVQuickLauncher). +* The dalamud binaries come bundled with it and will get setup automatically and is the **highly preferred + +You may need to fixup the library dependencies (for both projects), to point at your local dalamud binary directory. + +Both projects are preconfigured to target the current live release's binaries in `%APPDATA%\XivLauncher\addon\Hooks\`. That said, updates, non-standard launcher installations, or, custom dalamud builds may result in the binaries being located elsewhere. + +The simplest way to do this is to find this section in the .csproj files: +``` + + $(appdata)\XIVLauncher\addon\Hooks\dev\ + +``` +and simply update the path as required. +Once you've got it working, clear out what you don't need in UITest.cs and implement your own local UI under Draw() + \ No newline at end of file From b94d9f057f2642521b86f6434717e44dc71762e0 Mon Sep 17 00:00:00 2001 From: Gordon Watt Date: Thu, 11 Nov 2021 20:48:29 -0600 Subject: [PATCH 3/3] github md slightly different from local previewer --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c87d05b..f72588a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ I'm mostly hoping this helps some people to build out their UIs without having t * Hides data files from visual studio to reduce clutter * Also allows having data files in different paths than VS would usually allow if done in the IDE directly -###### SamplePlugin +#### SamplePlugin * Simple functional plugin * Slash command * Main UI @@ -26,7 +26,7 @@ I'm mostly hoping this helps some people to build out their UIs without having t By default, building should out directly into the XIVLauncher's DevPlugins and be automatically loaded upon game launch. -###### UIDev +#### UIDev * Basic ImGui testbed application project * Allows testing UI changes without needing to run the game * UI environment provided should match what is seen in game @@ -53,4 +53,4 @@ The simplest way to do this is to find this section in the .csproj files: and simply update the path as required. Once you've got it working, clear out what you don't need in UITest.cs and implement your own local UI under Draw() - \ No newline at end of file +