mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
Some Tutorial updates.
This commit is contained in:
parent
b3ee622396
commit
57b9f60ba3
10 changed files with 101 additions and 53 deletions
2
OtterGui
2
OtterGui
|
|
@ -1 +1 @@
|
||||||
Subproject commit 70d9f81436c82cc51734f0661d10f461da4f1840
|
Subproject commit b6c4877cc586f47931e71f284f865833846d9baa
|
||||||
|
|
@ -246,22 +246,10 @@ public partial class ModFileSystemSelector
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the state filter combo-button to the right of the filter box.
|
private void DrawFilterCombo( ref bool everything )
|
||||||
protected override float CustomFilters( float width )
|
|
||||||
{
|
{
|
||||||
var pos = ImGui.GetCursorPos();
|
|
||||||
var remainingWidth = width - ImGui.GetFrameHeight();
|
|
||||||
var comboPos = new Vector2( pos.X + remainingWidth, pos.Y );
|
|
||||||
|
|
||||||
var everything = _stateFilter == ModFilterExtensions.UnfilteredStateMods;
|
|
||||||
|
|
||||||
ImGui.SetCursorPos( comboPos );
|
|
||||||
// Draw combo button
|
|
||||||
using var color = ImRaii.PushColor( ImGuiCol.Button, Colors.FilterActive, !everything );
|
|
||||||
using var combo = ImRaii.Combo( "##filterCombo", string.Empty,
|
using var combo = ImRaii.Combo( "##filterCombo", string.Empty,
|
||||||
ImGuiComboFlags.NoPreview | ImGuiComboFlags.PopupAlignLeft | ImGuiComboFlags.HeightLargest );
|
ImGuiComboFlags.NoPreview | ImGuiComboFlags.PopupAlignLeft | ImGuiComboFlags.HeightLargest );
|
||||||
color.Pop();
|
|
||||||
|
|
||||||
if( combo )
|
if( combo )
|
||||||
{
|
{
|
||||||
using var style = ImRaii.PushStyle( ImGuiStyleVar.ItemSpacing,
|
using var style = ImRaii.PushStyle( ImGuiStyleVar.ItemSpacing,
|
||||||
|
|
@ -285,8 +273,22 @@ public partial class ModFileSystemSelector
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
combo.Dispose();
|
// Add the state filter combo-button to the right of the filter box.
|
||||||
|
protected override float CustomFilters( float width )
|
||||||
|
{
|
||||||
|
var pos = ImGui.GetCursorPos();
|
||||||
|
var remainingWidth = width - ImGui.GetFrameHeight();
|
||||||
|
var comboPos = new Vector2( pos.X + remainingWidth, pos.Y );
|
||||||
|
|
||||||
|
var everything = _stateFilter == ModFilterExtensions.UnfilteredStateMods;
|
||||||
|
|
||||||
|
ImGui.SetCursorPos( comboPos );
|
||||||
|
// Draw combo button
|
||||||
|
using var color = ImRaii.PushColor( ImGuiCol.Button, Colors.FilterActive, !everything );
|
||||||
|
DrawFilterCombo( ref everything );
|
||||||
|
ConfigWindow.OpenTutorial( ConfigWindow.BasicTutorialSteps.ModFilters );
|
||||||
if( ImGui.IsItemClicked( ImGuiMouseButton.Right ) )
|
if( ImGui.IsItemClicked( ImGuiMouseButton.Right ) )
|
||||||
{
|
{
|
||||||
_stateFilter = ModFilterExtensions.UnfilteredStateMods;
|
_stateFilter = ModFilterExtensions.UnfilteredStateMods;
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ public sealed partial class ModFileSystemSelector : FileSystemSelector< Mod, Mod
|
||||||
{
|
{
|
||||||
var button = ImGuiUtil.DrawDisabledButton( FontAwesomeIcon.FileImport.ToIconString(), size,
|
var button = ImGuiUtil.DrawDisabledButton( FontAwesomeIcon.FileImport.ToIconString(), size,
|
||||||
"Import one or multiple mods from Tex Tools Mod Pack Files.", !Penumbra.ModManager.Valid, true );
|
"Import one or multiple mods from Tex Tools Mod Pack Files.", !Penumbra.ModManager.Valid, true );
|
||||||
ConfigWindow.OpenTutorial( 13 );
|
ConfigWindow.OpenTutorial( ConfigWindow.BasicTutorialSteps.ModImport );
|
||||||
if (!button)
|
if (!button)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -312,7 +312,7 @@ public sealed partial class ModFileSystemSelector : FileSystemSelector< Mod, Mod
|
||||||
{
|
{
|
||||||
ImGui.OpenPopup( "ExtendedHelp" );
|
ImGui.OpenPopup( "ExtendedHelp" );
|
||||||
}
|
}
|
||||||
ConfigWindow.OpenTutorial( 14 );
|
ConfigWindow.OpenTutorial( ConfigWindow.BasicTutorialSteps.AdvancedHelp );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helpers.
|
// Helpers.
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ public partial class ConfigWindow
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem( "Collections" );
|
using var tab = ImRaii.TabItem( "Collections" );
|
||||||
OpenTutorial( 5 );
|
OpenTutorial( BasicTutorialSteps.Collections );
|
||||||
if( !tab )
|
if( !tab )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -194,7 +194,7 @@ public partial class ConfigWindow
|
||||||
{
|
{
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
var open = ImGui.CollapsingHeader( "Active Collections" );
|
var open = ImGui.CollapsingHeader( "Active Collections" );
|
||||||
OpenTutorial( 9 );
|
OpenTutorial( BasicTutorialSteps.ActiveCollections );
|
||||||
if( !open )
|
if( !open )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -202,7 +202,7 @@ public partial class ConfigWindow
|
||||||
|
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
DrawDefaultCollectionSelector();
|
DrawDefaultCollectionSelector();
|
||||||
OpenTutorial( 10 );
|
OpenTutorial( BasicTutorialSteps.DefaultCollection );
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
foreach( var type in CollectionTypeExtensions.Special )
|
foreach( var type in CollectionTypeExtensions.Special )
|
||||||
{
|
{
|
||||||
|
|
@ -248,7 +248,7 @@ public partial class ConfigWindow
|
||||||
DrawNewCharacterCollection();
|
DrawNewCharacterCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenTutorial( 11 );
|
OpenTutorial( BasicTutorialSteps.SpecialCollections );
|
||||||
|
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
}
|
}
|
||||||
|
|
@ -257,7 +257,7 @@ public partial class ConfigWindow
|
||||||
{
|
{
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
var open = ImGui.CollapsingHeader( "Collection Settings", ImGuiTreeNodeFlags.DefaultOpen );
|
var open = ImGui.CollapsingHeader( "Collection Settings", ImGuiTreeNodeFlags.DefaultOpen );
|
||||||
OpenTutorial( 6 );
|
OpenTutorial( BasicTutorialSteps.EditingCollections );
|
||||||
if( !open )
|
if( !open )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -265,12 +265,12 @@ public partial class ConfigWindow
|
||||||
|
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
DrawCurrentCollectionSelector();
|
DrawCurrentCollectionSelector();
|
||||||
OpenTutorial( 7 );
|
OpenTutorial( BasicTutorialSteps.CurrentCollection );
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
DrawNewCollectionInput();
|
DrawNewCollectionInput();
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
DrawInheritanceBlock();
|
DrawInheritanceBlock();
|
||||||
OpenTutorial( 8 );
|
OpenTutorial( BasicTutorialSteps.Inheritance );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -36,7 +36,7 @@ public partial class ConfigWindow
|
||||||
private void DrawSettingsTab()
|
private void DrawSettingsTab()
|
||||||
{
|
{
|
||||||
using var tab = DrawTab( SettingsTabHeader, Tabs.Settings );
|
using var tab = DrawTab( SettingsTabHeader, Tabs.Settings );
|
||||||
OpenTutorial( 17 );
|
OpenTutorial( BasicTutorialSteps.ModOptions );
|
||||||
if( !tab )
|
if( !tab )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -52,10 +52,10 @@ public partial class ConfigWindow
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
_window._penumbra.Api.InvokePreSettingsPanel( _mod.ModPath.Name );
|
_window._penumbra.Api.InvokePreSettingsPanel( _mod.ModPath.Name );
|
||||||
DrawEnabledInput();
|
DrawEnabledInput();
|
||||||
OpenTutorial( 15 );
|
OpenTutorial( BasicTutorialSteps.EnablingMods );
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
DrawPriorityInput();
|
DrawPriorityInput();
|
||||||
OpenTutorial( 16 );
|
OpenTutorial( BasicTutorialSteps.Priority );
|
||||||
DrawRemoveSettings();
|
DrawRemoveSettings();
|
||||||
ImGui.Dummy( _window._defaultSpace );
|
ImGui.Dummy( _window._defaultSpace );
|
||||||
for( var idx = 0; idx < _mod.Groups.Count; ++idx )
|
for( var idx = 0; idx < _mod.Groups.Count; ++idx )
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ public partial class ConfigWindow
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem( "Mods" );
|
using var tab = ImRaii.TabItem( "Mods" );
|
||||||
OpenTutorial( 12 );
|
OpenTutorial( BasicTutorialSteps.Mods );
|
||||||
if( !tab )
|
if( !tab )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -59,11 +59,17 @@ public partial class ConfigWindow
|
||||||
using var style = ImRaii.PushStyle( ImGuiStyleVar.FrameRounding, 0 ).Push( ImGuiStyleVar.ItemSpacing, Vector2.Zero );
|
using var style = ImRaii.PushStyle( ImGuiStyleVar.FrameRounding, 0 ).Push( ImGuiStyleVar.ItemSpacing, Vector2.Zero );
|
||||||
var buttonSize = new Vector2( ImGui.GetContentRegionAvail().X / 8f, 0 );
|
var buttonSize = new Vector2( ImGui.GetContentRegionAvail().X / 8f, 0 );
|
||||||
|
|
||||||
DrawDefaultCollectionButton( 3 * buttonSize );
|
using( var group = ImRaii.Group() )
|
||||||
ImGui.SameLine();
|
{
|
||||||
DrawInheritedCollectionButton( 3 * buttonSize );
|
DrawDefaultCollectionButton( 3 * buttonSize );
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
DrawCollectionSelector( "##collectionSelector", 2 * buttonSize.X, CollectionType.Current, false, null );
|
DrawInheritedCollectionButton( 3 * buttonSize );
|
||||||
|
ImGui.SameLine();
|
||||||
|
DrawCollectionSelector( "##collectionSelector", 2 * buttonSize.X, CollectionType.Current, false, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenTutorial( BasicTutorialSteps.CollectionSelectors );
|
||||||
|
|
||||||
if( !Penumbra.CollectionManager.CurrentCollectionInUse )
|
if( !Penumbra.CollectionManager.CurrentCollectionInUse )
|
||||||
{
|
{
|
||||||
ImGuiUtil.DrawTextButton( "The currently selected collection is not used in any way.", -Vector2.UnitX, Colors.PressEnterWarningBg );
|
ImGuiUtil.DrawTextButton( "The currently selected collection is not used in any way.", -Vector2.UnitX, Colors.PressEnterWarningBg );
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,11 @@ public partial class ConfigWindow
|
||||||
{
|
{
|
||||||
if( !ImGui.CollapsingHeader( "General" ) )
|
if( !ImGui.CollapsingHeader( "General" ) )
|
||||||
{
|
{
|
||||||
OpenTutorial( 4 );
|
OpenTutorial( BasicTutorialSteps.GeneralSettings );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenTutorial( 4 );
|
OpenTutorial( BasicTutorialSteps.GeneralSettings );
|
||||||
|
|
||||||
Checkbox( "Hide Config Window when UI is Hidden",
|
Checkbox( "Hide Config Window when UI is Hidden",
|
||||||
"Hide the penumbra main window when you manually hide the in-game user interface.", Penumbra.Config.HideUiWhenUiHidden,
|
"Hide the penumbra main window when you manually hide the in-game user interface.", Penumbra.Config.HideUiWhenUiHidden,
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@ public partial class ConfigWindow
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem( "Settings" );
|
using var tab = ImRaii.TabItem( "Settings" );
|
||||||
|
OpenTutorial( BasicTutorialSteps.Fin );
|
||||||
|
OpenTutorial( BasicTutorialSteps.Faq1 );
|
||||||
|
OpenTutorial( BasicTutorialSteps.Faq2 );
|
||||||
|
OpenTutorial( BasicTutorialSteps.Faq3 );
|
||||||
if( !tab )
|
if( !tab )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -154,7 +158,7 @@ public partial class ConfigWindow
|
||||||
+ "It should also be placed near the root of a logical drive - the shorter the total path to this folder, the better.\n"
|
+ "It should also be placed near the root of a logical drive - the shorter the total path to this folder, the better.\n"
|
||||||
+ "Definitely do not place it in your Dalamud directory or any sub-directory thereof." );
|
+ "Definitely do not place it in your Dalamud directory or any sub-directory thereof." );
|
||||||
group.Dispose();
|
group.Dispose();
|
||||||
OpenTutorial( 1 );
|
OpenTutorial( BasicTutorialSteps.ModDirectory );
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var pos = ImGui.GetCursorPosX();
|
var pos = ImGui.GetCursorPosX();
|
||||||
ImGui.NewLine();
|
ImGui.NewLine();
|
||||||
|
|
@ -188,7 +192,7 @@ public partial class ConfigWindow
|
||||||
_window._penumbra.SetEnabled( enabled );
|
_window._penumbra.SetEnabled( enabled );
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenTutorial( 2 );
|
OpenTutorial( BasicTutorialSteps.EnableMods );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DrawShowAdvancedBox()
|
private static void DrawShowAdvancedBox()
|
||||||
|
|
@ -208,13 +212,13 @@ public partial class ConfigWindow
|
||||||
|
|
||||||
// Manually split due to tutorial.
|
// Manually split due to tutorial.
|
||||||
ImGuiComponents.HelpMarker( tt );
|
ImGuiComponents.HelpMarker( tt );
|
||||||
OpenTutorial( 0 );
|
OpenTutorial( BasicTutorialSteps.GeneralTooltips );
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted( "Show Advanced Settings" );
|
ImGui.TextUnformatted( "Show Advanced Settings" );
|
||||||
ImGuiUtil.HoverTooltip( tt );
|
ImGuiUtil.HoverTooltip( tt );
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenTutorial( 3 );
|
OpenTutorial( BasicTutorialSteps.AdvancedSettings );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DrawColorSettings()
|
private static void DrawColorSettings()
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using OtterGui.Widgets;
|
using OtterGui.Widgets;
|
||||||
using Penumbra.UI.Classes;
|
using Penumbra.UI.Classes;
|
||||||
|
|
||||||
|
|
@ -15,13 +16,41 @@ public partial class ConfigWindow
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void OpenTutorial( int id )
|
public static void OpenTutorial( BasicTutorialSteps step )
|
||||||
=> Tutorial.Open( id, Penumbra.Config.TutorialStep, v =>
|
=> Tutorial.Open( ( int )step, Penumbra.Config.TutorialStep, v =>
|
||||||
{
|
{
|
||||||
Penumbra.Config.TutorialStep = v;
|
Penumbra.Config.TutorialStep = v;
|
||||||
Penumbra.Config.Save();
|
Penumbra.Config.Save();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
public enum BasicTutorialSteps
|
||||||
|
{
|
||||||
|
GeneralTooltips,
|
||||||
|
ModDirectory,
|
||||||
|
EnableMods,
|
||||||
|
AdvancedSettings,
|
||||||
|
GeneralSettings,
|
||||||
|
Collections,
|
||||||
|
EditingCollections,
|
||||||
|
CurrentCollection,
|
||||||
|
Inheritance,
|
||||||
|
ActiveCollections,
|
||||||
|
DefaultCollection,
|
||||||
|
SpecialCollections,
|
||||||
|
Mods,
|
||||||
|
ModImport,
|
||||||
|
AdvancedHelp,
|
||||||
|
ModFilters,
|
||||||
|
CollectionSelectors,
|
||||||
|
EnablingMods,
|
||||||
|
Priority,
|
||||||
|
ModOptions,
|
||||||
|
Fin,
|
||||||
|
Faq1,
|
||||||
|
Faq2,
|
||||||
|
Faq3,
|
||||||
|
}
|
||||||
|
|
||||||
public static readonly Tutorial Tutorial = new Tutorial()
|
public static readonly Tutorial Tutorial = new Tutorial()
|
||||||
{
|
{
|
||||||
BorderColor = Colors.TutorialBorder,
|
BorderColor = Colors.TutorialBorder,
|
||||||
|
|
@ -32,23 +61,27 @@ public partial class ConfigWindow
|
||||||
+ "Hover over them when you are unsure what something does or how to do something." )
|
+ "Hover over them when you are unsure what something does or how to do something." )
|
||||||
.Register( "Initial Setup, Step 1: Mod Directory",
|
.Register( "Initial Setup, Step 1: Mod Directory",
|
||||||
"The first step is to set up your mod directory, which is where your mods are extracted to.\n\n"
|
"The first step is to set up your mod directory, which is where your mods are extracted to.\n\n"
|
||||||
+ "The mod directory should be a short path - like 'D:\\FFXIVMods', if you want to store your mods on D: - and be on a fast hard drive." )
|
+ "The mod directory should be a short path - like 'C:\\FFXIVMods' - on your fastest available drive. Faster drives improve performance.\n\n"
|
||||||
|
+ "The folder should be an empty folder no other applications write to." )
|
||||||
.Register( "Initial Setup, Step 2: Enable Mods", "Do not forget to enable your mods in case they are not." )
|
.Register( "Initial Setup, Step 2: Enable Mods", "Do not forget to enable your mods in case they are not." )
|
||||||
.Register( "Advanced Settings", "When you are just starting, you should leave this off.\n\n"
|
.Register( "Advanced Settings", "When you are just starting, you should leave this off.\n\n"
|
||||||
+ "If you need to do any editing of your mods, you will have to turn it on later." )
|
+ "If you need to do any editing of your mods, you will have to turn it on later." )
|
||||||
.Register( "General Settings", "Look through all of these settings before starting, they might help you a lot!\n\n"
|
.Register( "General Settings", "Look through all of these settings before starting, they might help you a lot!\n\n"
|
||||||
+ "If you do not know what some of these do yet, return to this later!" )
|
+ "If you do not know what some of these do yet, return to this later!" )
|
||||||
.Register( "Initial Setup, Step 3: Collections", "Collections are lists of settings for your installed mods.\n\n"
|
.Register( "Initial Setup, Step 3: Collections", "Collections are lists of settings for your installed mods.\n\n"
|
||||||
+ "This is our next stop!" )
|
+ "This is our next stop!\n\n"
|
||||||
|
+ "Go here after setting up your root folder to continue the tutorial!" )
|
||||||
.Register( "Initial Setup, Step 4: Editing Collections", "First, we need to open the Collection Settings.\n\n"
|
.Register( "Initial Setup, Step 4: Editing Collections", "First, we need to open the Collection Settings.\n\n"
|
||||||
+ "In here, we can create new collections, delete collections, or make them inherit from each other." )
|
+ "In here, we can create new collections, delete collections, or make them inherit from each other." )
|
||||||
.Register( "Initial Setup, Step 5: Current Collection",
|
.Register( "Initial Setup, Step 5: Current Collection",
|
||||||
"We should already have a Default Collection, and for our simple setup, we do not need to do anything here.\n\n"
|
"We should already have a Default Collection, and for our simple setup, we do not need to do anything here.\n\n"
|
||||||
+ "The current collection is the one we are currently editing. Any changes we make in our mod settings later will edit this collection." )
|
+ "The current collection is the one we are currently editing. Any changes we make in our mod settings later in the next tab will edit this collection." )
|
||||||
.Register( "Inheritance",
|
.Register( "Inheritance",
|
||||||
"This is a more advanced feature. Click the 'What is Inheritance?' button for more information, but we will ignore this for now." )
|
"This is a more advanced feature. Click the help button for more information, but we will ignore this for now." )
|
||||||
.Register( "Initial Setup, Step 6: Active Collections", "Active Collections are those that are actually in use at the moment.\n\n"
|
.Register( "Initial Setup, Step 6: Active Collections", "Active Collections are those that are actually in use at the moment.\n\n"
|
||||||
+ "Any collection in use will apply to the game under certain conditions." )
|
+ "Any collection in use will apply to the game under certain conditions.\n\n"
|
||||||
|
+ "The Current Collection is also active for technical reasons.\n\n"
|
||||||
|
+ "Open this now to continue." )
|
||||||
.Register( "Initial Setup, Step 7: Default Collection",
|
.Register( "Initial Setup, Step 7: Default Collection",
|
||||||
"The Default Collection - which should currently also be set to a collection named Default - is the main one.\n\n"
|
"The Default Collection - which should currently also be set to a collection named Default - is the main one.\n\n"
|
||||||
+ "As long as no more specific collection applies to something, the mods from the Default Collection will be used.\n\n"
|
+ "As long as no more specific collection applies to something, the mods from the Default Collection will be used.\n\n"
|
||||||
|
|
@ -56,15 +89,21 @@ public partial class ConfigWindow
|
||||||
.Register( "Special Collections",
|
.Register( "Special Collections",
|
||||||
"Special Collections are those that are used only for special characters in the game, either by specific conditions, or by name.\n\n"
|
"Special Collections are those that are used only for special characters in the game, either by specific conditions, or by name.\n\n"
|
||||||
+ "We will skip this for now, but hovering over the creation buttons should explain how they work." )
|
+ "We will skip this for now, but hovering over the creation buttons should explain how they work." )
|
||||||
.Register( "Initial Setup, Step 8: Mods", "Our last stop is the Mods tab, where you can import and setup your mods." )
|
.Register( "Initial Setup, Step 8: Mods", "Our last stop is the Mods tab, where you can import and setup your mods.\n\n"
|
||||||
|
+ "Please go there after verifying that your Current Collection and Default Collection are setup to your liking." )
|
||||||
.Register( "Initial Setup, Step 9: Mod Import",
|
.Register( "Initial Setup, Step 9: Mod Import",
|
||||||
"Click this button to open a file selector with which to select TTMP mod files. You can select multiple at once.\n\n"
|
"Click this button to open a file selector with which to select TTMP mod files. You can select multiple at once.\n\n"
|
||||||
+ "It is not recommended to import huge mod packs of all your TexTools mods, but rather import the mods themselves, otherwise you lose out on a lot of Penumbra features!\n\n"
|
+ "It is not recommended to import huge mod packs of all your TexTools mods, but rather import the mods themselves, otherwise you lose out on a lot of Penumbra features!\n\n"
|
||||||
+ "A feature to import raw texture mods for Tattoos etc. is available under Advanced Editing, but is currently a work in progress." ) // TODO
|
+ "A feature to import raw texture mods for Tattoos etc. is available under Advanced Editing, but is currently a work in progress." ) // TODO
|
||||||
.Register( "Advanced Help", "Click this button to get detailed information on what you can do in the mod selector.\n\n"
|
.Register( "Advanced Help", "Click this button to get detailed information on what you can do in the mod selector.\n\n"
|
||||||
+ "Import and select a mod now to continue." )
|
+ "Import and select a mod now to continue." )
|
||||||
|
.Register( "Mod Filters", "You can filter the available mods by name, author, changed items or various attributes here." )
|
||||||
|
.Register( "Collection Selectors", "This row provides shortcuts to set your Current Collection.\n\n"
|
||||||
|
+ "The first button sets it to your Default Collection (if any).\n\n"
|
||||||
|
+ "The second button sets it to the collection the settings of the currently selected mod are inherited from (if any).\n\n"
|
||||||
|
+ "The third is a regular collection selector to let you choose among all your collections." )
|
||||||
.Register( "Initial Setup, Step 11: Enabling Mods",
|
.Register( "Initial Setup, Step 11: Enabling Mods",
|
||||||
"Enable a mod here. Disabled mods will not apply to anything in the current collection (which can be seen and changed in the top-right corner).\n\n"
|
"Enable a mod here. Disabled mods will not apply to anything in the current collection.\n\n"
|
||||||
+ "Mods can be enabled or disabled in a collection, or they can be unconfigured, in which case they will use Inheritance." )
|
+ "Mods can be enabled or disabled in a collection, or they can be unconfigured, in which case they will use Inheritance." )
|
||||||
.Register( "Initial Setup, Step 12: Priority", "If two enabled mods in one collection change the same files, there is a conflict.\n\n"
|
.Register( "Initial Setup, Step 12: Priority", "If two enabled mods in one collection change the same files, there is a conflict.\n\n"
|
||||||
+ "Conflicts can be solved by setting a priority. The mod with the higher number will be used for all the conflicting files.\n\n"
|
+ "Conflicts can be solved by setting a priority. The mod with the higher number will be used for all the conflicting files.\n\n"
|
||||||
|
|
@ -76,5 +115,6 @@ public partial class ConfigWindow
|
||||||
.Register( "FAQ 1", "Penumbra can not easily change which items a mod applies to." )
|
.Register( "FAQ 1", "Penumbra can not easily change which items a mod applies to." )
|
||||||
.Register( "FAQ 2",
|
.Register( "FAQ 2",
|
||||||
"It is advised to not use TexTools and Penumbra at the same time. Penumbra may refuse to work if TexTools broke your game indices." )
|
"It is advised to not use TexTools and Penumbra at the same time. Penumbra may refuse to work if TexTools broke your game indices." )
|
||||||
.Register( "FAQ 3", "Penumbra can change the skin material a mod uses. This is under advanced editing." );
|
.Register( "FAQ 3", "Penumbra can change the skin material a mod uses. This is under advanced editing." )
|
||||||
|
.EnsureSize( Enum.GetValues< BasicTutorialSteps >().Length );
|
||||||
}
|
}
|
||||||
|
|
@ -79,10 +79,6 @@ public sealed partial class ConfigWindow : Window, IDisposable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OpenTutorial( 18 );
|
|
||||||
OpenTutorial( 19 );
|
|
||||||
OpenTutorial( 20 );
|
|
||||||
OpenTutorial( 21 );
|
|
||||||
using var bar = ImRaii.TabBar( string.Empty, ImGuiTabBarFlags.NoTooltip );
|
using var bar = ImRaii.TabBar( string.Empty, ImGuiTabBarFlags.NoTooltip );
|
||||||
SetupSizes();
|
SetupSizes();
|
||||||
_settingsTab.Draw();
|
_settingsTab.Draw();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue