mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 10:17:22 +01:00
51 lines
No EOL
1.6 KiB
C#
51 lines
No EOL
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Dalamud;
|
|
using Dalamud.Data;
|
|
using Lumina.Excel.GeneratedSheets;
|
|
using Penumbra.GameData.Enums;
|
|
using Penumbra.GameData.Structs;
|
|
using Penumbra.GameData.Util;
|
|
|
|
namespace Penumbra.GameData
|
|
{
|
|
public static class GameData
|
|
{
|
|
internal static ObjectIdentification? Identification;
|
|
internal static readonly GamePathParser GamePathParser = new();
|
|
|
|
public static IObjectIdentifier GetIdentifier( DataManager dataManager, ClientLanguage clientLanguage )
|
|
{
|
|
Identification ??= new ObjectIdentification( dataManager, clientLanguage );
|
|
return Identification;
|
|
}
|
|
|
|
public static IObjectIdentifier GetIdentifier()
|
|
{
|
|
if( Identification == null )
|
|
{
|
|
throw new Exception( "Object Identification was not initialized." );
|
|
}
|
|
|
|
return Identification;
|
|
}
|
|
|
|
public static IGamePathParser GetGamePathParser()
|
|
=> GamePathParser;
|
|
}
|
|
|
|
public interface IObjectIdentifier
|
|
{
|
|
public void Identify( IDictionary< string, object? > set, GamePath path );
|
|
|
|
public Dictionary< string, object? > Identify( GamePath path );
|
|
public Item? Identify( SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot );
|
|
}
|
|
|
|
public interface IGamePathParser
|
|
{
|
|
public ObjectType PathToObjectType( GamePath path );
|
|
public GameObjectInfo GetFileInfo( GamePath path );
|
|
public string VfxToKey( GamePath path );
|
|
}
|
|
} |