using System;
using static SharedLibraryCore.Server;
namespace SharedLibraryCore.Interfaces
{
public interface IEventParser
{
///
/// Get game specific folder prefix for log files
///
/// Game directory prefix
IEventParserConfiguration Configuration { get; set; }
///
/// stores the game/client specific version (usually the value of the "version" DVAR)
///
string Version { get; set; }
///
/// specifies the game name (usually the internal studio iteration ie: IW4, T5 etc...)
///
Game GameName { get; set; }
///
/// specifies the connect URI used to join game servers via web browser
///
string URLProtocolFormat { get; set; }
///
/// specifies the text name of the game the parser is for
///
string Name { get; set; }
///
/// Generates a game event based on log line input
///
/// single log line string
///
/// todo: make this integrate without needing the server
GameEvent GenerateGameEvent(string logLine);
///
/// registers a custom event subtype to be triggered when a value is detected
///
/// subtype assigned to the event when generated
/// event keyword to trigger an event generation
/// function pointer that modifies the generated game event
void RegisterCustomEvent(string eventSubtype, string eventTriggerValue,
Func eventModifier);
}
}