Add sorting, filtering, and new columns to WeaponTable

Enhanced the `MudDataGrid` in `WeaponTable` by enabling multiple sorting and filtering while adding new "Faction" and "Immortal" columns. Extended `EntityModel` and `DATA` to support faction and immortal data for the table. Added "Neutral" faction and new entity "Pyre Miner" to the data model.
This commit is contained in:
Jonathan
2025-04-27 20:47:09 -04:00
parent 25776b3b00
commit b653a00238
4 changed files with 72 additions and 3 deletions
+21 -2
View File
@@ -228,6 +228,16 @@ public class DATA
new EntityModel(DataType.FACTION_Khardu, EntityType.Faction, true)
.AddPart(new EntityInfoModel { Name = "Khardu" })
},
// Factions
// Neutral
{
DataType.FACTION_Neutral,
new EntityModel(DataType.FACTION_Neutral, EntityType.Faction)
.AddPart(new EntityInfoModel
{
Name = "Neutral"
})
},
// Immortals
// Aru
{
@@ -371,7 +381,6 @@ public class DATA
Description = "Provides a fully upgraded base worth of alloy.",
Notes = "Revives in 40 seconds when destroyed."
})
.AddPart(new EntityFactionModel { Faction = DataType.NEUTRAL_PyreCamp })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Neutral })
.AddPart(new EntityHarvestModel
{
@@ -3637,7 +3646,17 @@ public class DATA
})
.AddPart(new EntityVitalityModel
{ Health = 850, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true })
}
},
{
DataType.NEUTRAL_PyreMiner,
new EntityModel(DataType.NEUTRAL_PyreMiner, EntityType.Building)
.AddPart(new EntityInfoModel
{
Name = "Pyre Miner",
Description = "Passively harvest pyre.",
Notes = ""
})
},
};
}
}
+12
View File
@@ -44,6 +44,18 @@ public class EntityModel
var entityInfo = EntityParts.FirstOrDefault(a => a.GetType() == typeof(EntityInfoModel)) as EntityInfoModel;
return entityInfo == null ? string.Empty : entityInfo.Name;
}
public string GetFaction()
{
var entityInfo = EntityParts.FirstOrDefault(a => a.GetType() == typeof(EntityFactionModel)) as EntityFactionModel;
return entityInfo == null ? string.Empty : DATA.Get()[entityInfo.Faction].GetName();
}
public string GetImmortal()
{
var entityInfo = EntityParts.FirstOrDefault(a => a.GetType() == typeof(EntityVanguardAddedModel)) as EntityVanguardAddedModel;
return entityInfo == null ? string.Empty : DATA.Get()[entityInfo.ImmortalId].GetName();
}
public string AsYaml()
{