Skip to content

Commit

Permalink
1.11.0.9
Browse files Browse the repository at this point in the history
  • Loading branch information
Critical-Impact committed Dec 19, 2024
1 parent 9e68e4d commit 6ba0539
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 8 deletions.
2 changes: 1 addition & 1 deletion CriticalCommonLib
7 changes: 7 additions & 0 deletions InventoryTools/Commands/PluginCommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,13 @@ public void ClearAll(string command, string args)
CloseFilterWindows(command,args);
}

[Command("/craftoverlay")]
[HelpMessage("Toggles the crafting overlay window.")]
public void CraftOverlay(string command, string args)
{
_mediatorService.Publish(new ToggleGenericWindowMessage(typeof(CraftOverlayWindow)));
}

[Command("/moreinfo")]
[Aliases("/itemwindow")]
[HelpMessage("Opens the more information window for a specific item. Provide the name of the item or the ID of the item.")]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System;
using AllaganLib.GameSheets.Caches;
using AllaganLib.GameSheets.ItemSources;
using AllaganLib.GameSheets.Sheets;
using CriticalCommonLib.Models;
using ImGuiNET;
using OtterGui.Raii;

namespace InventoryTools.Logic.ItemRenderers;

public class ItemCompanyCraftDraftSourceRenderer : ItemInfoRenderer<ItemCompanyCraftDraftSource>
{
private readonly ItemSheet _itemSheet;

public ItemCompanyCraftDraftSourceRenderer(ItemSheet itemSheet)
{
_itemSheet = itemSheet;
}
public override RendererType RendererType => RendererType.Use;
public override ItemInfoType Type => ItemInfoType.CompanyCraftDraft;
public override string SingularName => "Company Craft Prototype";
public override string HelpText => "Is this item used in the creation of a company craft prototype?";
public override bool ShouldGroup => true;
public override Action<ItemSource> DrawTooltip => source =>
{
var asSource = AsSource(source);
ImGui.Text($"Name: {asSource.CompanyCraftDraft.Value.Name.ExtractText()}");
ImGui.Text("Ingredients:");
using (ImRaii.PushIndent())
{
for (var index = 0; index < asSource.CompanyCraftDraft.Value.RequiredItem.Count; index++)
{
var ingredient = asSource.CompanyCraftDraft.Value.RequiredItem[index];
var quantity = asSource.CompanyCraftDraft.Value.RequiredItemCount[index];
if (ingredient.RowId == 0)
{
continue;
}
var item = _itemSheet.GetRow(ingredient.RowId);

ImGui.Text($"{item.NameString} x {quantity}");
}
}
};

public override Func<ItemSource, string> GetName => source =>
{
var asSource = AsSource(source);
return asSource.CompanyCraftDraft.Value.Name.ExtractText();
};

public override Func<ItemSource, int> GetIcon => source =>
{
return Icons.DraftBook;
};
}
46 changes: 46 additions & 0 deletions InventoryTools/Logic/Settings/CraftOverlayHideSetting.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System.Collections.Generic;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Plugin.Services;
using InventoryTools.Logic.Settings.Abstract;
using InventoryTools.Logic.Settings.Abstract.Generic;
using InventoryTools.Services;
using Microsoft.Extensions.Logging;

namespace InventoryTools.Logic.Settings;

public enum CraftOverlayHide
{
AlwaysShow,
HideDuringDuties
}

public class CraftOverlayHideSetting : GenericEnumChoiceSetting<CraftOverlayHide>
{
private readonly IClientState _clientState;
private readonly ICondition _condition;

public CraftOverlayHideSetting(ILogger<CraftOverlayHideSetting> logger, ImGuiService imGuiService, IClientState clientState, ICondition condition) : base("CraftOverlayHide", "Hide during duties?", "Should the craft overlay be hidden during duties/cutscenes/chocobo racing/etc?", CraftOverlayHide.HideDuringDuties, new Dictionary<CraftOverlayHide, string>()
{
{ CraftOverlayHide.AlwaysShow, "Always show" },
{ CraftOverlayHide.HideDuringDuties, "Hide during duties" },
}, SettingCategory.CraftOverlay, SettingSubCategory.General, "1.11.0.9", logger, imGuiService)
{
_clientState = clientState;
_condition = condition;
}

public bool ShouldShow()
{
return !_clientState.IsPvPExcludingDen
&& !_condition[ConditionFlag.BoundByDuty]
&& !_condition[ConditionFlag.WatchingCutscene]
&& !_condition[ConditionFlag.WatchingCutscene78]
&& !_condition[ConditionFlag.BoundByDuty95]
&& !_condition[ConditionFlag.BoundByDuty56]
&& !_condition[ConditionFlag.InDeepDungeon]
&& !_condition[ConditionFlag.PlayingLordOfVerminion]
&& !_condition[ConditionFlag.ChocoboRacing];
}


}
15 changes: 14 additions & 1 deletion InventoryTools/Ui/Windows/CraftOverlayWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public class CraftOverlayWindow : OverlayWindow
private readonly CraftOverlayMaxExpandedItemsSetting _maxExpandedItemsSetting;
private readonly CraftOverlayRememberStateSetting _rememberStateSetting;
private readonly CraftOverlayWindowStateSetting _windowStateSetting;
private readonly CraftOverlayHideSetting _overlayHideSetting;
private readonly MapSheet _mapSheet;

public CraftOverlayWindow(ILogger<CraftOverlayWindow> logger,
Expand All @@ -62,7 +63,8 @@ public CraftOverlayWindow(ILogger<CraftOverlayWindow> logger,
ImGuiService imGuiService,
CraftOverlayMaxExpandedItemsSetting maxExpandedItemsSetting,
CraftOverlayRememberStateSetting rememberStateSetting,
CraftOverlayWindowStateSetting windowStateSetting) : base(logger,
CraftOverlayWindowStateSetting windowStateSetting,
CraftOverlayHideSetting overlayHideSetting) : base(logger,
configuration,
addonLifecycle,
gameGui,
Expand All @@ -82,6 +84,7 @@ public CraftOverlayWindow(ILogger<CraftOverlayWindow> logger,
_maxExpandedItemsSetting = maxExpandedItemsSetting;
_rememberStateSetting = rememberStateSetting;
_windowStateSetting = windowStateSetting;
_overlayHideSetting = overlayHideSetting;
}

public override void Initialize()
Expand All @@ -95,6 +98,16 @@ public CraftOverlayWindowState WindowState
set => _windowStateSetting.UpdateFilterConfiguration(Configuration, value);
}

public override bool DrawConditions()
{
if (this._overlayHideSetting.CurrentValue(Configuration) == CraftOverlayHide.AlwaysShow)
{
return true;
}

return this._overlayHideSetting.ShouldShow();
}

public override void Draw()
{
var collapsed = this.WindowState;
Expand Down
6 changes: 3 additions & 3 deletions InventoryTools/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,8 @@
},
"AllaganLib.GameSheets": {
"type": "Transitive",
"resolved": "1.1.14",
"contentHash": "v94Vp6KZvhmj2Dh0F6nhidJQnl+mwKi0VqQYsImJQJIvAGfBKnI+czXvfXiFpW7nHHdw1+YUund/Ln5fq6Vp1w==",
"resolved": "1.1.15",
"contentHash": "pis0YWRcG5OjhIxsAc712TpavdQerjjnN9Ii9ASm71ldqju8cOgHTTZ18f9EtrEv06xHvA1EdG3NLKvi4Z93QA==",
"dependencies": {
"AllaganLib.Shared": "1.1.12",
"Autofac.Extensions.DependencyInjection": "9.0.0",
Expand Down Expand Up @@ -564,7 +564,7 @@
"criticalcommonlib": {
"type": "Project",
"dependencies": {
"AllaganLib.GameSheets": "[1.1.14, )",
"AllaganLib.GameSheets": "[1.1.15, )",
"Humanizer.Core": "[3.0.0-beta.54, )",
"Microsoft.Extensions.Hosting": "[8.0.1, )",
"NaturalSort.Extension": "[3.2.0, )",
Expand Down
6 changes: 3 additions & 3 deletions InventoryToolsMock/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,8 @@
},
"AllaganLib.GameSheets": {
"type": "Transitive",
"resolved": "1.1.14",
"contentHash": "v94Vp6KZvhmj2Dh0F6nhidJQnl+mwKi0VqQYsImJQJIvAGfBKnI+czXvfXiFpW7nHHdw1+YUund/Ln5fq6Vp1w==",
"resolved": "1.1.15",
"contentHash": "pis0YWRcG5OjhIxsAc712TpavdQerjjnN9Ii9ASm71ldqju8cOgHTTZ18f9EtrEv06xHvA1EdG3NLKvi4Z93QA==",
"dependencies": {
"AllaganLib.Shared": "1.1.12",
"Autofac.Extensions.DependencyInjection": "9.0.0",
Expand Down Expand Up @@ -827,7 +827,7 @@
"criticalcommonlib": {
"type": "Project",
"dependencies": {
"AllaganLib.GameSheets": "[1.1.14, )",
"AllaganLib.GameSheets": "[1.1.15, )",
"Humanizer.Core": "[3.0.0-beta.54, )",
"Microsoft.Extensions.Hosting": "[8.0.1, )",
"NaturalSort.Extension": "[3.2.0, )",
Expand Down

0 comments on commit 6ba0539

Please sign in to comment.