mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-13 20:24:17 +01:00
Update gamepaths stuff.
This commit is contained in:
parent
fe0e01b8fe
commit
93840e30f0
2 changed files with 119 additions and 108 deletions
|
|
@ -7,14 +7,9 @@ namespace Penumbra.GameData.Data;
|
|||
|
||||
public static partial class GamePaths
|
||||
{
|
||||
private static readonly Regex RaceCodeRegex = new(@"c(?'racecode'\d{4})", RegexOptions.Compiled);
|
||||
|
||||
//[GeneratedRegex(@"c(?'racecode'\d{4})")]
|
||||
[GeneratedRegex(@"c(?'racecode'\d{4})")]
|
||||
public static partial Regex RaceCodeParser();
|
||||
|
||||
public static partial Regex RaceCodeParser()
|
||||
=> RaceCodeRegex;
|
||||
|
||||
public static GenderRace ParseRaceCode(string path)
|
||||
{
|
||||
var match = RaceCodeParser().Match(path);
|
||||
|
|
@ -28,8 +23,8 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Imc
|
||||
{
|
||||
// [GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/b\k'id'\.imc")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/b\k'id'\.imc")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId monsterId, SetId bodyId)
|
||||
=> $"chara/monster/m{monsterId.Value:D4}/obj/body/b{bodyId.Value:D4}/b{bodyId.Value:D4}.imc";
|
||||
|
|
@ -37,8 +32,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/model/m\k'monster'b\k'id'\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/model/m\k'monster'b\k'id'\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId monsterId, SetId bodyId)
|
||||
=> $"chara/monster/m{monsterId.Value:D4}/obj/body/b{bodyId.Value:D4}/model/m{monsterId.Value:D4}b{bodyId.Value:D4}.mdl";
|
||||
|
|
@ -46,8 +41,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/material/v(?'variant'\d{4})/mt_m\k'monster'b\k'id'_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/material/v(?'variant'\d{4})/mt_m\k'monster'b\k'id'_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId monsterId, SetId bodyId, byte variant, string suffix)
|
||||
=> $"chara/monster/m{monsterId.Value:D4}/obj/body/b{bodyId.Value:D4}/material/v{variant:D4}/mt_m{monsterId.Value:D4}b{bodyId.Value:D4}_{suffix}.mtrl";
|
||||
|
|
@ -55,8 +51,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/texture/v(?'variant'\d{2})_m\k'monster'b\k'id'(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/texture/v(?'variant'\d{2})_m\k'monster'b\k'id'(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId monsterId, SetId bodyId, byte variant, char suffix1, char suffix2 = '\0')
|
||||
=> $"chara/monster/m{monsterId.Value:D4}/obj/body/b{bodyId.Value:D4}/texture/v{variant:D2}_m{monsterId.Value:D4}b{bodyId.Value:D4}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
|
@ -85,8 +82,8 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Imc
|
||||
{
|
||||
// [GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/b\k'weapon'\.imc")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/b\k'weapon'\.imc")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId weaponId, SetId bodyId)
|
||||
=> $"chara/weapon/w{weaponId.Value:D4}/obj/body/b{bodyId.Value:D4}/b{bodyId.Value:D4}.imc";
|
||||
|
|
@ -94,8 +91,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/model/w\k'id'b\k'weapon'\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/model/w\k'id'b\k'weapon'\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId weaponId, SetId bodyId)
|
||||
=> $"chara/weapon/w{weaponId.Value:D4}/obj/body/b{bodyId.Value:D4}/model/w{weaponId.Value:D4}b{bodyId.Value:D4}.mdl";
|
||||
|
|
@ -103,8 +100,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/material/v(?'variant'\d{4})/mt_w\k'id'b\k'weapon'_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/material/v(?'variant'\d{4})/mt_w\k'id'b\k'weapon'_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId weaponId, SetId bodyId, byte variant, string suffix)
|
||||
=> $"chara/weapon/w{weaponId.Value:D4}/obj/body/b{bodyId.Value:D4}/material/v{variant:D4}/mt_w{weaponId.Value:D4}b{bodyId.Value:D4}_{suffix}.mtrl";
|
||||
|
|
@ -112,8 +110,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/texture/v(?'variant'\d{2})_w\k'id'b\k'weapon'(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/texture/v(?'variant'\d{2})_w\k'id'b\k'weapon'(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId weaponId, SetId bodyId, byte variant, char suffix1, char suffix2 = '\0')
|
||||
=> $"chara/weapon/w{weaponId.Value:D4}/obj/body/b{bodyId.Value:D4}/texture/v{variant:D2}_w{weaponId.Value:D4}b{bodyId.Value:D4}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
|
@ -124,8 +123,8 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Imc
|
||||
{
|
||||
// [GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/e\k'equip'\.imc")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/e\k'equip'\.imc")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId demiId, SetId equipId)
|
||||
=> $"chara/demihuman/d{demiId.Value:D4}/obj/equipment/e{equipId.Value:D4}/e{equipId.Value:D4}.imc";
|
||||
|
|
@ -133,8 +132,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/model/d\k'id'e\k'equip'_(?'slot'[a-z]{3})\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/model/d\k'id'e\k'equip'_(?'slot'[a-z]{3})\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId demiId, SetId equipId, EquipSlot slot)
|
||||
=> $"chara/demihuman/d{demiId.Value:D4}/obj/equipment/e{equipId.Value:D4}/model/d{demiId.Value:D4}e{equipId.Value:D4}_{slot.ToSuffix()}.mdl";
|
||||
|
|
@ -142,8 +141,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/material/v(?'variant'\d{4})/mt_d\k'id'e\k'equip'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/material/v(?'variant'\d{4})/mt_d\k'id'e\k'equip'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId demiId, SetId equipId, EquipSlot slot, byte variant, string suffix)
|
||||
=> $"chara/demihuman/d{demiId.Value:D4}/obj/equipment/e{equipId.Value:D4}/material/v{variant:D4}/mt_d{demiId.Value:D4}e{equipId.Value:D4}_{slot.ToSuffix()}_{suffix}.mtrl";
|
||||
|
|
@ -151,8 +151,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/texture/v(?'variant'\d{2})_d\k'id'e\k'equip'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/texture/v(?'variant'\d{2})_d\k'id'e\k'equip'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId demiId, SetId equipId, EquipSlot slot, byte variant, char suffix1, char suffix2 = '\0')
|
||||
=> $"chara/demihuman/d{demiId.Value:D4}/obj/equipment/e{equipId.Value:D4}/texture/v{variant:D2}_d{demiId.Value:D4}e{equipId.Value:D4}_{slot.ToSuffix()}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
|
@ -163,8 +164,8 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Imc
|
||||
{
|
||||
// [GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/e\k'id'\.imc")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/e\k'id'\.imc")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId equipId)
|
||||
=> $"chara/equipment/e{equipId.Value:D4}/e{equipId.Value:D4}.imc";
|
||||
|
|
@ -172,8 +173,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/model/c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/model/c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId equipId, GenderRace raceCode, EquipSlot slot)
|
||||
=> $"chara/equipment/e{equipId.Value:D4}/model/c{raceCode.ToRaceCode()}e{equipId.Value:D4}_{slot.ToSuffix()}.mdl";
|
||||
|
|
@ -181,8 +182,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/equipment/e(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId equipId, GenderRace raceCode, EquipSlot slot, byte variant, string suffix)
|
||||
=> $"{FolderPath(equipId, variant)}/mt_c{raceCode.ToRaceCode()}e{equipId.Value:D4}_{slot.ToSuffix()}_{suffix}.mtrl";
|
||||
|
|
@ -193,8 +195,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/equipment/e(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId equipId, GenderRace raceCode, EquipSlot slot, byte variant, char suffix1, char suffix2 = '\0')
|
||||
=> $"chara/equipment/e{equipId.Value:D4}/texture/v{variant:D2}_c{raceCode.ToRaceCode()}e{equipId.Value:D4}_{slot.ToSuffix()}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
|
@ -202,8 +205,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Avfx
|
||||
{
|
||||
//[GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/vfx/eff/ve(?'variant'\d{4})\.avfx")]
|
||||
//public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/equipment/e(?'id'\d{4})/vfx/eff/ve(?'variant'\d{4})\.avfx")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId equipId, byte effectId)
|
||||
=> $"chara/equipment/e{equipId.Value:D4}/vfx/eff/ve{effectId:D4}.avfx";
|
||||
|
|
@ -211,8 +214,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Decal
|
||||
{
|
||||
//[GeneratedRegex(@"chara/common/texture/decal_equip/-decal_(?'decalId'\d{3})\.tex")]
|
||||
//public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/common/texture/decal_equip/-decal_(?'decalId'\d{3})\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(byte decalId)
|
||||
=> $"chara/common/texture/decal_equip/-decal_{decalId:D3}.tex";
|
||||
|
|
@ -223,8 +226,8 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Imc
|
||||
{
|
||||
// [GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/a\k'id'\.imc")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/a\k'id'\.imc")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId accessoryId)
|
||||
=> $"chara/accessory/a{accessoryId.Value:D4}/a{accessoryId.Value:D4}.imc";
|
||||
|
|
@ -232,8 +235,8 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/model/c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/model/c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId accessoryId, GenderRace raceCode, EquipSlot slot)
|
||||
=> $"chara/accessory/a{accessoryId.Value:D4}/model/c{raceCode.ToRaceCode()}a{accessoryId.Value:D4}_{slot.ToSuffix()}.mdl";
|
||||
|
|
@ -241,8 +244,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/accessory/a(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId accessoryId, GenderRace raceCode, EquipSlot slot, byte variant, string suffix)
|
||||
=> $"{FolderPath(accessoryId, variant)}/c{raceCode.ToRaceCode()}a{accessoryId.Value:D4}_{slot.ToSuffix()}_{suffix}.mtrl";
|
||||
|
|
@ -253,8 +257,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/accessory/a(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/accessory/a(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(SetId accessoryId, GenderRace raceCode, EquipSlot slot, byte variant, char suffix1, char suffix2 = '\0')
|
||||
=> $"chara/accessory/a{accessoryId.Value:D4}/texture/v{variant:D2}_c{raceCode.ToRaceCode()}a{accessoryId.Value:D4}_{slot.ToSuffix()}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
|
@ -280,8 +285,9 @@ public static partial class GamePaths
|
|||
{
|
||||
public static partial class Mdl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/model/c\k'race'\k'typeabr'\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/model/c\k'race'\k'typeabr'\k'id'_(?'slot'[a-z]{3})\.mdl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(GenderRace raceCode, BodySlot slot, SetId slotId, CustomizationType type)
|
||||
=> $"chara/human/c{raceCode.ToRaceCode()}/obj/{slot.ToSuffix()}/{slot.ToAbbreviation()}{slotId.Value:D4}/model/c{raceCode.ToRaceCode()}{slot.ToAbbreviation()}{slotId.Value:D4}_{type.ToSuffix()}.mdl";
|
||||
|
|
@ -289,8 +295,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Mtrl
|
||||
{
|
||||
// [GeneratedRegex(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/material(/v(?'variant'\d{4}))?/mt_c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?_[a-z]+\.mtrl")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/material(/v(?'variant'\d{4}))?/mt_c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?_[a-z]+\.mtrl")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string FolderPath(GenderRace raceCode, BodySlot slot, SetId slotId, byte variant = byte.MaxValue)
|
||||
=> $"chara/human/c{raceCode.ToRaceCode()}/obj/{slot.ToSuffix()}/{slot.ToAbbreviation()}{slotId.Value:D4}/material{(variant != byte.MaxValue ? $"/v{variant:D4}" : string.Empty)}";
|
||||
|
|
@ -342,8 +349,9 @@ public static partial class GamePaths
|
|||
|
||||
public static partial class Tex
|
||||
{
|
||||
// [GeneratedRegex(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture/(?'minus'(--)?)(v(?'variant'\d{2})_)?c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?(_[a-z])?_[a-z]\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(
|
||||
@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture/(?'minus'(--)?)(v(?'variant'\d{2})_)?c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?(_[a-z])?_[a-z]\.tex")]
|
||||
public static partial Regex Regex();
|
||||
|
||||
public static string Path(GenderRace raceCode, BodySlot slot, SetId slotId, char suffix1, bool minus = false,
|
||||
CustomizationType type = CustomizationType.Unknown, byte variant = byte.MaxValue, char suffix2 = '\0')
|
||||
|
|
@ -353,35 +361,44 @@ public static partial class GamePaths
|
|||
+ $"c{raceCode.ToRaceCode()}{slot.ToAbbreviation()}{slotId.Value:D4}{(type != CustomizationType.Unknown ? $"_{type.ToSuffix()}" : string.Empty)}{(suffix2 != '\0' ? $"_{suffix2}" : string.Empty)}_{suffix1}.tex";
|
||||
|
||||
|
||||
// [GeneratedRegex(@"chara/common/texture/(?'catchlight'catchlight)(.*)\.tex")]
|
||||
// public static partial Regex CatchlightRegex();
|
||||
[GeneratedRegex(@"chara/common/texture/(?'catchlight'catchlight)(.*)\.tex")]
|
||||
public static partial Regex CatchlightRegex();
|
||||
|
||||
// [GeneratedRegex(@"chara/common/texture/skin(?'skin'.*)\.tex")]
|
||||
// public static partial Regex SkinRegex();
|
||||
[GeneratedRegex(@"chara/common/texture/skin(?'skin'.*)\.tex")]
|
||||
public static partial Regex SkinRegex();
|
||||
|
||||
// [GeneratedRegex(@"chara/common/texture/decal_(?'location'[a-z]+)/[-_]?decal_(?'id'\d+).tex")]
|
||||
// public static partial Regex DecalRegex();
|
||||
[GeneratedRegex(@"chara/common/texture/decal_(?'location'[a-z]+)/[-_]?decal_(?'id'\d+).tex")]
|
||||
public static partial Regex DecalRegex();
|
||||
|
||||
// [GeneratedRegex(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture")]
|
||||
// public static partial Regex FolderRegex();
|
||||
[GeneratedRegex(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture")]
|
||||
public static partial Regex FolderRegex();
|
||||
}
|
||||
}
|
||||
|
||||
public static partial class Icon
|
||||
{
|
||||
// [GeneratedRegex(@"ui/icon/(?'group'\d*)(/(?'lang'[a-z]{2}))?(/(?'hq'hq))?/(?'id'\d*)(?'hr'_hr1)?\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"ui/icon/(?'group'\d*)(/(?'lang'[a-z]{2}))?(/(?'hq'hq))?/(?'id'\d*)(?'hr'_hr1)?\.tex")]
|
||||
public static partial Regex Regex();
|
||||
}
|
||||
|
||||
public static partial class Map
|
||||
{
|
||||
// [GeneratedRegex(@"ui/map/(?'id'[a-z0-9]{4})/(?'variant'\d{2})/\k'id'\k'variant'(?'suffix'[a-z])?(_[a-z])?\.tex")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"ui/map/(?'id'[a-z0-9]{4})/(?'variant'\d{2})/\k'id'\k'variant'(?'suffix'[a-z])?(_[a-z])?\.tex")]
|
||||
public static partial Regex Regex();
|
||||
}
|
||||
|
||||
public static partial class Font
|
||||
{
|
||||
// [GeneratedRegex(@"common/font/(?'fontname'.*)_(?'id'\d\d)(_lobby)?\.fdt")]
|
||||
// public static partial Regex Regex();
|
||||
[GeneratedRegex(@"common/font/(?'fontname'.*)_(?'id'\d\d)(_lobby)?\.fdt")]
|
||||
public static partial Regex Regex();
|
||||
}
|
||||
|
||||
public static partial class Vfx
|
||||
{
|
||||
[GeneratedRegex(@"chara[\/]action[\/](?'key'[^\s]+?)\.tmb", RegexOptions.IgnoreCase)]
|
||||
public static partial Regex Tmb();
|
||||
|
||||
[GeneratedRegex(@"chara[\/]human[\/]c0101[\/]animation[\/]a0001[\/][^\s]+?[\/](?'key'[^\s]+?)\.pap", RegexOptions.IgnoreCase)]
|
||||
public static partial Regex Pap();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue