Started with ServerEvent for clientside
This commit is contained in:
@ -135,6 +135,14 @@ namespace CoopClient
|
||||
_scriptEngines.ForEach(engine => engine.Script.API.InvokeChatMessage(from, message));
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InvokeServerEvent(string eventName, params object[] args)
|
||||
{
|
||||
lock (_scriptEngines)
|
||||
{
|
||||
_scriptEngines.ForEach(engine => engine.Script.API.InvokeServerEvent(eventName, args));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class ScriptContext
|
||||
@ -146,6 +154,7 @@ namespace CoopClient
|
||||
#endregion
|
||||
|
||||
#region EVENTS
|
||||
private Dictionary<string, Action<object[]>> _serverEvents = new Dictionary<string, Action<object[]>>();
|
||||
public event EmptyEvent OnStart, OnStop, OnTick;
|
||||
public event PlayerConnectEvent OnPlayerConnect, OnPlayerDisconnect;
|
||||
public event ChatMessageEvent OnChatMessage;
|
||||
@ -179,6 +188,11 @@ namespace CoopClient
|
||||
{
|
||||
OnChatMessage?.Invoke(from, message);
|
||||
}
|
||||
|
||||
public void InvokeServerEvent(string eventName, params object[] args)
|
||||
{
|
||||
_serverEvents.FirstOrDefault(x => x.Key == eventName).Value?.Invoke(args);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/* ===== PLAYER STUFF ===== */
|
||||
@ -438,6 +452,18 @@ namespace CoopClient
|
||||
MapLoader.DeleteMap();
|
||||
}
|
||||
|
||||
private void AddServerEvent(string eventName, Action<object[]> action)
|
||||
{
|
||||
if (!_serverEvents.ContainsKey(eventName))
|
||||
{
|
||||
_serverEvents.Add(eventName, action);
|
||||
}
|
||||
}
|
||||
public void AddServerEvent(string eventName, dynamic action)
|
||||
{
|
||||
AddServerEvent(eventName, arg => action(arg));
|
||||
}
|
||||
|
||||
public void TriggerServerEvent(string eventName, params object[] args)
|
||||
{
|
||||
// TODO
|
||||
|
Reference in New Issue
Block a user