Skip to content

Commit ec0e35d

Browse files
Haruma-Kclaude
andcommitted
feat: 新しいProviderクラスのためのDrawerを追加
- AddressBasedLabelProviderDrawer - AddressBasedVersionProviderDrawer - AddressableAssetGroupNameBasedLabelProviderDrawer - AddressableAssetGroupNameBasedVersionProviderDrawer これらのDrawerクラスにより、エディタ上で各Providerの設定をGUIで行えるようになります。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 6317e4e commit ec0e35d

File tree

4 files changed

+134
-0
lines changed

4 files changed

+134
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using SmartAddresser.Editor.Core.Models.LayoutRules.LabelRules;
2+
using SmartAddresser.Editor.Core.Models.Shared;
3+
using SmartAddresser.Editor.Foundation.CustomDrawers;
4+
using UnityEditor;
5+
using UnityEngine;
6+
7+
namespace SmartAddresser.Editor.Core.Tools.Addresser.LayoutRuleEditor.LabelRuleEditor
8+
{
9+
/// <summary>
10+
/// GUI Drawer for <see cref="AddressBasedLabelProvider" />
11+
/// </summary>
12+
[CustomGUIDrawer(typeof(AddressBasedLabelProvider))]
13+
public sealed class AddressBasedLabelProviderDrawer : GUIDrawer<AddressBasedLabelProvider>
14+
{
15+
protected override void GUILayout(AddressBasedLabelProvider target)
16+
{
17+
var useFullAddressLabel = ObjectNames.NicifyVariableName(nameof(target.UseFullAddress));
18+
target.UseFullAddress = EditorGUILayout.Toggle(useFullAddressLabel, target.UseFullAddress);
19+
20+
var replaceWithRegexLabel = ObjectNames.NicifyVariableName(nameof(target.ReplaceWithRegex));
21+
target.ReplaceWithRegex = EditorGUILayout.Toggle(replaceWithRegexLabel, target.ReplaceWithRegex);
22+
23+
GUI.enabled = target.ReplaceWithRegex;
24+
using (new EditorGUI.IndentLevelScope())
25+
{
26+
var patternLabel = ObjectNames.NicifyVariableName(nameof(target.Pattern));
27+
target.Pattern = EditorGUILayout.TextField(patternLabel, target.Pattern);
28+
var replacementLabel = ObjectNames.NicifyVariableName(nameof(target.Replacement));
29+
target.Replacement = EditorGUILayout.TextField(replacementLabel, target.Replacement);
30+
}
31+
32+
GUI.enabled = true;
33+
}
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using SmartAddresser.Editor.Core.Models.LayoutRules.LabelRules;
2+
using SmartAddresser.Editor.Core.Models.Shared;
3+
using SmartAddresser.Editor.Foundation.CustomDrawers;
4+
using UnityEditor;
5+
using UnityEngine;
6+
7+
namespace SmartAddresser.Editor.Core.Tools.Addresser.LayoutRuleEditor.LabelRuleEditor
8+
{
9+
/// <summary>
10+
/// GUI Drawer for <see cref="AddressableAssetGroupNameBasedLabelProvider" />
11+
/// </summary>
12+
[CustomGUIDrawer(typeof(AddressableAssetGroupNameBasedLabelProvider))]
13+
public sealed class AddressableAssetGroupNameBasedLabelProviderDrawer : GUIDrawer<AddressableAssetGroupNameBasedLabelProvider>
14+
{
15+
protected override void GUILayout(AddressableAssetGroupNameBasedLabelProvider target)
16+
{
17+
var replaceWithRegexLabel = ObjectNames.NicifyVariableName(nameof(target.ReplaceWithRegex));
18+
target.ReplaceWithRegex = EditorGUILayout.Toggle(replaceWithRegexLabel, target.ReplaceWithRegex);
19+
20+
GUI.enabled = target.ReplaceWithRegex;
21+
using (new EditorGUI.IndentLevelScope())
22+
{
23+
var patternLabel = ObjectNames.NicifyVariableName(nameof(target.Pattern));
24+
target.Pattern = EditorGUILayout.TextField(patternLabel, target.Pattern);
25+
var replacementLabel = ObjectNames.NicifyVariableName(nameof(target.Replacement));
26+
target.Replacement = EditorGUILayout.TextField(replacementLabel, target.Replacement);
27+
}
28+
29+
GUI.enabled = true;
30+
}
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using SmartAddresser.Editor.Core.Models.LayoutRules.VersionRules;
2+
using SmartAddresser.Editor.Core.Models.Shared;
3+
using SmartAddresser.Editor.Foundation.CustomDrawers;
4+
using UnityEditor;
5+
using UnityEngine;
6+
7+
namespace SmartAddresser.Editor.Core.Tools.Addresser.LayoutRuleEditor.VersionRuleEditor
8+
{
9+
/// <summary>
10+
/// GUI Drawer for <see cref="AddressBasedVersionProvider" />
11+
/// </summary>
12+
[CustomGUIDrawer(typeof(AddressBasedVersionProvider))]
13+
public sealed class AddressBasedVersionProviderDrawer : GUIDrawer<AddressBasedVersionProvider>
14+
{
15+
protected override void GUILayout(AddressBasedVersionProvider target)
16+
{
17+
var useFullAddressLabel = ObjectNames.NicifyVariableName(nameof(target.UseFullAddress));
18+
target.UseFullAddress = EditorGUILayout.Toggle(useFullAddressLabel, target.UseFullAddress);
19+
20+
var replaceWithRegexLabel = ObjectNames.NicifyVariableName(nameof(target.ReplaceWithRegex));
21+
target.ReplaceWithRegex = EditorGUILayout.Toggle(replaceWithRegexLabel, target.ReplaceWithRegex);
22+
23+
GUI.enabled = target.ReplaceWithRegex;
24+
using (new EditorGUI.IndentLevelScope())
25+
{
26+
var patternLabel = ObjectNames.NicifyVariableName(nameof(target.Pattern));
27+
target.Pattern = EditorGUILayout.TextField(patternLabel, target.Pattern);
28+
var replacementLabel = ObjectNames.NicifyVariableName(nameof(target.Replacement));
29+
target.Replacement = EditorGUILayout.TextField(replacementLabel, target.Replacement);
30+
}
31+
32+
GUI.enabled = true;
33+
}
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using SmartAddresser.Editor.Core.Models.LayoutRules.VersionRules;
2+
using SmartAddresser.Editor.Core.Models.Shared;
3+
using SmartAddresser.Editor.Foundation.CustomDrawers;
4+
using UnityEditor;
5+
using UnityEngine;
6+
7+
namespace SmartAddresser.Editor.Core.Tools.Addresser.LayoutRuleEditor.VersionRuleEditor
8+
{
9+
/// <summary>
10+
/// GUI Drawer for <see cref="AddressableAssetGroupNameBasedVersionProvider" />
11+
/// </summary>
12+
[CustomGUIDrawer(typeof(AddressableAssetGroupNameBasedVersionProvider))]
13+
public sealed class AddressableAssetGroupNameBasedVersionProviderDrawer : GUIDrawer<AddressableAssetGroupNameBasedVersionProvider>
14+
{
15+
protected override void GUILayout(AddressableAssetGroupNameBasedVersionProvider target)
16+
{
17+
var replaceWithRegexLabel = ObjectNames.NicifyVariableName(nameof(target.ReplaceWithRegex));
18+
target.ReplaceWithRegex = EditorGUILayout.Toggle(replaceWithRegexLabel, target.ReplaceWithRegex);
19+
20+
GUI.enabled = target.ReplaceWithRegex;
21+
using (new EditorGUI.IndentLevelScope())
22+
{
23+
var patternLabel = ObjectNames.NicifyVariableName(nameof(target.Pattern));
24+
target.Pattern = EditorGUILayout.TextField(patternLabel, target.Pattern);
25+
var replacementLabel = ObjectNames.NicifyVariableName(nameof(target.Replacement));
26+
target.Replacement = EditorGUILayout.TextField(replacementLabel, target.Replacement);
27+
}
28+
29+
GUI.enabled = true;
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)