feat: add new glyph
This commit is contained in:
parent
ea16e739d8
commit
843cc0bdd3
@ -7,7 +7,7 @@ public class Configuration : IPluginConfiguration {
|
|||||||
public int Version { get; set; } = 1;
|
public int Version { get; set; } = 1;
|
||||||
|
|
||||||
public string ApiKey { get; set; } = string.Empty;
|
public string ApiKey { get; set; } = string.Empty;
|
||||||
public HashSet<uint> BannedTerritories { get; set; } = new();
|
public HashSet<uint> BannedTerritories { get; set; } = [];
|
||||||
public bool DisableTrials = true;
|
public bool DisableTrials = true;
|
||||||
public bool DisableDeepDungeon = true;
|
public bool DisableDeepDungeon = true;
|
||||||
public bool DisableInCutscene = true;
|
public bool DisableInCutscene = true;
|
||||||
|
@ -11,14 +11,15 @@ namespace OrangeGuidanceTomestone;
|
|||||||
internal class Messages : IDisposable {
|
internal class Messages : IDisposable {
|
||||||
internal const uint MaxAmount = 20;
|
internal const uint MaxAmount = 20;
|
||||||
|
|
||||||
internal static readonly string[] VfxPaths = {
|
internal static readonly string[] VfxPaths = [
|
||||||
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1a_o.avfx",
|
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1a_o.avfx",
|
||||||
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1b_o.avfx",
|
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1b_o.avfx",
|
||||||
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1c_o.avfx",
|
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1c_o.avfx",
|
||||||
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1d_o.avfx",
|
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1d_o.avfx",
|
||||||
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1e_o.avfx",
|
"bg/ffxiv/fst_f1/common/vfx/eff/b0941trp1e_o.avfx",
|
||||||
"bg/ex2/02_est_e3/common/vfx/eff/b0941trp1f_o.avfx",
|
"bg/ex2/02_est_e3/common/vfx/eff/b0941trp1f_o.avfx",
|
||||||
};
|
"bg/ex4/07_lak_l5/common/vfx/eff/b2640trp1g_o.avfx",
|
||||||
|
];
|
||||||
|
|
||||||
private static string GetPath(IDataManager data, Message message) {
|
private static string GetPath(IDataManager data, Message message) {
|
||||||
var glyph = message.Glyph;
|
var glyph = message.Glyph;
|
||||||
@ -40,8 +41,8 @@ internal class Messages : IDisposable {
|
|||||||
private Dictionary<Guid, Message> Current { get; } = new();
|
private Dictionary<Guid, Message> Current { get; } = new();
|
||||||
private Queue<Message> SpawnQueue { get; } = new();
|
private Queue<Message> SpawnQueue { get; } = new();
|
||||||
|
|
||||||
private HashSet<uint> Trials { get; } = new();
|
private HashSet<uint> Trials { get; } = [];
|
||||||
private HashSet<uint> DeepDungeons { get; } = new();
|
private HashSet<uint> DeepDungeons { get; } = [];
|
||||||
|
|
||||||
private bool CutsceneActive {
|
private bool CutsceneActive {
|
||||||
get {
|
get {
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="vfx/b0941trp1*_o.avfx"/>
|
<EmbeddedResource Include="vfx/sign_*.avfx"/>
|
||||||
<EmbeddedResource Include="img/sign_*.jpg"/>
|
<EmbeddedResource Include="img/sign_*.jpg"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ namespace OrangeGuidanceTomestone;
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class Pack {
|
public class Pack {
|
||||||
internal static SemaphoreSlim AllMutex { get; } = new(1, 1);
|
internal static SemaphoreSlim AllMutex { get; } = new(1, 1);
|
||||||
internal static Pack[] All { get; set; } = Array.Empty<Pack>();
|
internal static Pack[] All { get; set; } = [];
|
||||||
|
|
||||||
public string Name { get; init; }
|
public string Name { get; init; }
|
||||||
public Guid Id { get; init; }
|
public Guid Id { get; init; }
|
||||||
|
@ -86,7 +86,7 @@ public class Plugin : IDalamudPlugin {
|
|||||||
Directory.CreateDirectory(configDir);
|
Directory.CreateDirectory(configDir);
|
||||||
for (var i = 0; i < Messages.VfxPaths.Length; i++) {
|
for (var i = 0; i < Messages.VfxPaths.Length; i++) {
|
||||||
var letter = (char) ('a' + i);
|
var letter = (char) ('a' + i);
|
||||||
var stream = Resourcer.Resource.AsStreamUnChecked($"OrangeGuidanceTomestone.vfx.b0941trp1{letter}_o.avfx");
|
var stream = Resourcer.Resource.AsStreamUnChecked($"OrangeGuidanceTomestone.vfx.sign_{letter}.avfx");
|
||||||
var path = Path.Join(configDir, $"sign_{letter}.avfx");
|
var path = Path.Join(configDir, $"sign_{letter}.avfx");
|
||||||
stream.CopyTo(File.Create(path));
|
stream.CopyTo(File.Create(path));
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ public class PluginUi : IDisposable {
|
|||||||
internal Viewer Viewer { get; }
|
internal Viewer Viewer { get; }
|
||||||
internal ViewerButton ViewerButton { get; }
|
internal ViewerButton ViewerButton { get; }
|
||||||
|
|
||||||
private List<(string, string)> Modals { get; } = new();
|
private List<(string, string)> Modals { get; } = [];
|
||||||
private Queue<string> ToShow { get; } = new();
|
private Queue<string> ToShow { get; } = new();
|
||||||
|
|
||||||
internal PluginUi(Plugin plugin) {
|
internal PluginUi(Plugin plugin) {
|
||||||
|
@ -13,11 +13,11 @@ internal class MainWindow {
|
|||||||
|
|
||||||
internal MainWindow(Plugin plugin) {
|
internal MainWindow(Plugin plugin) {
|
||||||
this.Plugin = plugin;
|
this.Plugin = plugin;
|
||||||
this.Tabs = new List<ITab> {
|
this.Tabs = [
|
||||||
new Write(this.Plugin),
|
new Write(this.Plugin),
|
||||||
new MessageList(this.Plugin),
|
new MessageList(this.Plugin),
|
||||||
new Settings(this.Plugin),
|
new Settings(this.Plugin),
|
||||||
};
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Draw() {
|
internal void Draw() {
|
||||||
|
@ -14,7 +14,7 @@ internal class MessageList : ITab {
|
|||||||
private SortMode Sort { get; set; }
|
private SortMode Sort { get; set; }
|
||||||
|
|
||||||
private SemaphoreSlim MessagesMutex { get; } = new(1, 1);
|
private SemaphoreSlim MessagesMutex { get; } = new(1, 1);
|
||||||
private List<MessageWithTerritory> Messages { get; } = new();
|
private List<MessageWithTerritory> Messages { get; } = [];
|
||||||
|
|
||||||
internal MessageList(Plugin plugin) {
|
internal MessageList(Plugin plugin) {
|
||||||
this.Plugin = plugin;
|
this.Plugin = plugin;
|
||||||
@ -49,7 +49,7 @@ internal class MessageList : ITab {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ShowList() {
|
private void ShowList() {
|
||||||
ImGui.TextUnformatted($"Messages: {this.Messages.Count:N0} / {Messages.MaxAmount + this.Plugin.Ui.MainWindow.ExtraMessages:N0}");
|
ImGui.TextUnformatted($"Messages: {this.Messages.Count:N0} / {OrangeGuidanceTomestone.Messages.MaxAmount + this.Plugin.Ui.MainWindow.ExtraMessages:N0}");
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ internal class Write : ITab {
|
|||||||
private (int, int) _word2 = (-1, -1);
|
private (int, int) _word2 = (-1, -1);
|
||||||
private int _glyph;
|
private int _glyph;
|
||||||
|
|
||||||
private List<IDalamudTextureWrap> GlyphImages { get; } = new();
|
private List<IDalamudTextureWrap> GlyphImages { get; } = [];
|
||||||
|
|
||||||
private void LoadSignImages() {
|
private void LoadSignImages() {
|
||||||
for (var i = 0; i < Messages.VfxPaths.Length; i++) {
|
for (var i = 0; i < Messages.VfxPaths.Length; i++) {
|
||||||
|
BIN
client/vfx/sign_g.avfx
Executable file
BIN
client/vfx/sign_g.avfx
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user