Skip to content

Commit dee881c

Browse files
committed
[Parameters] ZoneParameter
1 parent 117a3af commit dee881c

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

WDE.TrinitySmartScriptEditor/SmartData/actions.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3249,8 +3249,8 @@
32493249
"name_readable": "Override weather",
32503250
"parameters": [
32513251
{
3252-
"name": "Zone or area",
3253-
"type": "ZoneAreaParameter"
3252+
"name": "Zone",
3253+
"type": "ZoneParameter"
32543254
},
32553255
{
32563256
"name": "Weather state",

WoWDatabaseEditor.Common/WDE.DbcStore/DbcStore.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ internal DbcStore(IParameterFactory parameterFactory,
127127
public Dictionary<long, Dictionary<long, long>> ScenarioToStepStore { get; internal set; } = new();
128128

129129
public IReadOnlyList<IArea> Areas { get; internal set; } = Array.Empty<IArea>();
130+
public IReadOnlyList<IArea> ZonesOnly { get; internal set; } = Array.Empty<IArea>();
130131
public Dictionary<uint, IArea> AreaById { get; internal set; } = new();
131132

132133
public IReadOnlyList<IMap> Maps { get; internal set; } = Array.Empty<IMap>();
@@ -235,6 +236,7 @@ public void FinishMainThread()
235236
store.BattlePetSpeciesIdStore = data.BattlePetSpeciesIdStore;
236237
store.CurrencyTypeStore = data.CurrencyTypeStore;
237238
store.Areas = data.Areas;
239+
store.ZonesOnly = data.Areas.Where(a => a.ParentAreaId == 0).ToList();
238240
store.CharShipmentContainers = data.CharShipmentContainers;
239241
store.AreaById = data.Areas.ToDictionary(a => a.Id, a => (IArea)a);
240242
store.Missions = data.Missions;
@@ -399,11 +401,11 @@ void RegisterCharShipmentContainerParameter(string key, TabularDataAsyncColumn<u
399401
}
400402
RegisterCharShipmentContainerParameter("CharShipmentContainerParameter");
401403

402-
void RegisterZoneAreParameter(string key, TabularDataAsyncColumn<uint>? counterColumn = null)
404+
void RegisterZoneAreaParameter(string key, TabularDataAsyncColumn<uint>? counterColumn = null, bool onlyZones = false)
403405
{
404406
parameterFactory.Register(key,
405407
new DbcParameterWithPicker<IArea>(dataPicker, data.AreaStore, "zone or area", area => area.Id,
406-
() => store.Areas,
408+
() => onlyZones ? store.ZonesOnly : store.Areas,
407409
(area, text) => area.Name.Contains(text, StringComparison.InvariantCultureIgnoreCase) || area.Id.Contains(text) ||
408410
area.MapId.Contains(text) || (area.Map != null && area.Map.Name.Contains(text, StringComparison.InvariantCultureIgnoreCase)) ||
409411
area.ParentAreaId.Contains(text) || (area.ParentArea != null && area.ParentArea.Name.Contains(text, StringComparison.InvariantCultureIgnoreCase)),
@@ -421,15 +423,16 @@ void RegisterZoneAreParameter(string key, TabularDataAsyncColumn<uint>? counterC
421423
new TabularDataColumn(nameof(IArea.Map) + "." + nameof(IMap.Name), "Map name", 120),
422424
counterColumn), QuickAccessMode.Limited);
423425
}
424-
RegisterZoneAreParameter("ZoneAreaParameter");
425-
RegisterZoneAreParameter("ZoneArea(spell_area)Parameter",
426+
RegisterZoneAreaParameter("ZoneAreaParameter");
427+
RegisterZoneAreaParameter("ZoneParameter", onlyZones: true);
428+
RegisterZoneAreaParameter("ZoneArea(spell_area)Parameter",
426429
new TabularDataAsyncColumn<uint>(nameof(IArea.Id), "Count", async (zoneId, token) =>
427430
{
428431
if (zoneId == 0)
429432
return "0";
430433
return (await store.databaseRowsCountProvider.GetRowsCountByPrimaryKey(DatabaseTable.WorldTable("spell_area"), zoneId, token)).ToString();
431434
}, 50));
432-
RegisterZoneAreParameter("ZoneArea(phase_definitions)Parameter",
435+
RegisterZoneAreaParameter("ZoneArea(phase_definitions)Parameter",
433436
new TabularDataAsyncColumn<uint>(nameof(IArea.Id), "Count", async (zoneId, token) =>
434437
{
435438
if (zoneId == 0)

0 commit comments

Comments
 (0)