Important
Due to the XIVPainter
is already taken in Nuget, I have to change its name to XIVDrawer
!
XIVDrawer is a drawing library in Imgui designed to work within Dalamud Plugins. It can draw polygons, images, text, and so on to your world.
Add XIVPainter as a submodule to your project:
git submodule add https://github.com/ArchiDog1998/XIVDrawer
Add it to your plugin's CSProj file:
<ItemGroup>
<ProjectReference Include="..\XIVDrawer\XIVDrawer\XIVDrawer.csproj" />
</ItemGroup>
Then, in the entry point of your plugin:
XIVDrawerMain.Init(pluginInterface, "%NAME%");
where pluginInterface is a DalamudPluginInterface.
And there is a good example of it in Rotation Solver.
Don't forget to dispose it!
All things need to be disposed to close it.
<iframe width="560" height="315" src="https://www.youtube.com/embed/wE8VVTmQyxQ?si=Lnjw9O4yCyY-I9kO" title="YouTube video player" frameborder="0"</iframe>Use this code to show the Vfx stuff.
_ = XIVDrawerMain.ShowOff();
There are two things called ActorVfx
and StaticVfx
for you to use in your own project.
new DrawingHighlightHotbar(new(0f, 1f, 0.8f, 1f), 7411);
new Drawing3DCircularSectorO(Player.Object, 5, ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 0.5f, 0.4f, 0.15f)), 5);
var deadTime = DateTime.Now.AddSeconds(10);
var r = new Random();
var col = ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 0.5f, 0.2f, 0.15f));
var colIn = ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 0.5f, 0.2f, 0.5f));
new Drawing3DAnnulus(Player.Object.Position + new Vector3((float)r.NextDouble() * 3, 0, (float)r.NextDouble() * 3), 3, 5, col, 2)
{
DeadTime = deadTime,
InsideColor = colIn,
};
new Drawing3DCircularSector(Player.Object.Position + new Vector3((float)r.NextDouble() * 3, 0, (float)r.NextDouble() * 3), 3, col, 2)
{
DeadTime = deadTime,
InsideColor = colIn,
};
DeadTime
will make an animation about disappear.
PolylineType
will show the moving suggestion for you.