More import changes and more options
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Text.Json.Serialization;
|
||||
using KamiToolKit.Classes;
|
||||
|
||||
namespace AetherBags.Configuration;
|
||||
@@ -33,8 +34,14 @@ public class CategoryRuleSet
|
||||
public List<uint> AllowedUiCategoryIds { get; set; } = new();
|
||||
public List<int> AllowedRarities { get; set; } = new();
|
||||
|
||||
public RangeFilter<int> Level { get; set; } = new() { Enabled = false, Min = 0, Max = 200 };
|
||||
public RangeFilter<int> ItemLevel { get; set; } = new() { Enabled = false, Min = 0, Max = 2000 };
|
||||
public RangeFilter<uint> VendorPrice { get; set; } = new() { Enabled = false, Min = 0, Max = 9_999_999 };
|
||||
public StateFilter Untradable { get; set; } = new();
|
||||
public StateFilter Unique { get; set; } = new();
|
||||
public StateFilter Collectable { get; set; } = new();
|
||||
public StateFilter Dyeable { get; set; } = new();
|
||||
public StateFilter Repairable { get; set; } = new();
|
||||
}
|
||||
|
||||
public class RangeFilter<T> where T : struct, IComparable<T>
|
||||
@@ -42,4 +49,24 @@ public class RangeFilter<T> where T : struct, IComparable<T>
|
||||
public bool Enabled { get; set; }
|
||||
public T Min { get; set; }
|
||||
public T Max { get; set; }
|
||||
}
|
||||
|
||||
public class StateFilter
|
||||
{
|
||||
public int State { get; set; } = 0;
|
||||
public int Filter { get; set; } = 0;
|
||||
|
||||
[JsonIgnore]
|
||||
public ToggleFilterState ToggleState
|
||||
{
|
||||
get => Enum.IsDefined(typeof(ToggleFilterState), State) ? (ToggleFilterState)State : ToggleFilterState.Ignored;
|
||||
set => State = (int)value;
|
||||
}
|
||||
}
|
||||
|
||||
public enum ToggleFilterState
|
||||
{
|
||||
Ignored = 0,
|
||||
Allow = 1,
|
||||
Disallow = 2,
|
||||
}
|
||||
@@ -3,13 +3,12 @@ using System.Numerics;
|
||||
|
||||
namespace AetherBags.Configuration.Import;
|
||||
|
||||
// Possible Mapping:
|
||||
// Index -> Order
|
||||
// Color/Id/Name
|
||||
// AllowedItemNames -> AllowedItemNamePatterns
|
||||
// AllowedItemTypes -> AllowedUiCategoryIds
|
||||
// AllowedItemRarities -> AllowedRarities
|
||||
// ItemLevelFilter / VendorPriceFilter -> RangeFilter
|
||||
public sealed class SortaKindaImportFile
|
||||
{
|
||||
public List<SortaKindaCategory> Rules { get; set; } = new();
|
||||
|
||||
public object? MainInventory { get; set; }
|
||||
}
|
||||
|
||||
public sealed class SortaKindaCategory
|
||||
{
|
||||
@@ -19,15 +18,38 @@ public sealed class SortaKindaCategory
|
||||
public int Index { get; set; }
|
||||
|
||||
public List<string> AllowedItemNames { get; set; } = new();
|
||||
|
||||
public List<AllowedNameRegexDto> AllowedNameRegexes { get; set; } = new();
|
||||
|
||||
// Common
|
||||
public List<uint> AllowedItemTypes { get; set; } = new();
|
||||
public List<int> AllowedItemRarities { get; set; } = new();
|
||||
|
||||
public ExternalRangeFilterDto<int>? LevelFilter { get; set; }
|
||||
public ExternalRangeFilterDto<int> ItemLevelFilter { get; set; } = new();
|
||||
public ExternalRangeFilterDto<uint> VendorPriceFilter { get; set; } = new();
|
||||
|
||||
public ExternalStateFilterDto? UntradableFilter { get; set; }
|
||||
public ExternalStateFilterDto? UniqueFilter { get; set; }
|
||||
public ExternalStateFilterDto? CollectableFilter { get; set; }
|
||||
public ExternalStateFilterDto? DyeableFilter { get; set; }
|
||||
public ExternalStateFilterDto? RepairableFilter { get; set; }
|
||||
|
||||
public int Direction { get; set; }
|
||||
public int FillMode { get; set; }
|
||||
public int SortMode { get; set; }
|
||||
public bool InclusiveAnd { get; set; }
|
||||
}
|
||||
|
||||
public sealed class AllowedNameRegexDto
|
||||
{
|
||||
public string Text { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public sealed class ExternalStateFilterDto
|
||||
{
|
||||
public int State { get; set; }
|
||||
public int Filter { get; set; }
|
||||
}
|
||||
|
||||
public sealed class ExternalRangeFilterDto<T> where T : struct
|
||||
|
||||
Reference in New Issue
Block a user