/// <summary> /// Lets you register a command to be called when the game is directly sent a message. /// /// The callback you register must have a CmdName attribute. That attibute will determine /// which event the callback gets dispatched for. /// </summary> /// <example> /// <code> /// <![CDATA[ /// [CmdName("color")] /// private class MessageColor : MessageCmdData { /// public string color = ""; // in CSS format rgb(r,g,b) /// }; /// /// ... /// gameServer.RegisterCmdHandler<MessageColor>(OnColor); /// ... /// void OnColor(MessageColor) { /// Debug.Log("received msg with color: " + color); /// } /// ]]> /// </code> /// </example> /// <param name="callback">Typed callback</param> public void RegisterCmdHandler <T>(TypedCmdEventHandler <T> callback) where T : MessageCmdData { string name = HFTMessageCmdDataNameDB.GetCmdName(typeof(T)); if (name == null) { throw new System.InvalidOperationException("no CmdNameAttribute on " + typeof(T).Name); } RegisterCmdHandler <T>(name, callback); }
public void RegisterCmdHandler <T>(TypedCmdEventHandler <T> callback) where T : MessageCmdData { string name = MessageCmdDataNameDB.GetCmdName(typeof(T)); if (name == null) { throw new System.InvalidOperationException("no CmdNameAttribute on " + typeof(T).Name); } CmdConverter <T> converter = new CmdConverter <T>(callback); m_handlers[name] = converter.Callback; m_mcdc.RegisterCreator(typeof(T)); }
public void RegisterCmdHandler <T>(string name, TypedCmdEventHandler <T> callback) { CmdConverter <T> converter = new CmdConverter <T>(log_, callback); messageHandlers_[name] = converter.Callback; }
public CmdConverter(HFTLog log, TypedCmdEventHandler <T> handler) { m_log = log; m_handler = handler; }
public CmdConverter(TypedCmdEventHandler <T> handler) { m_handler = handler; }
/// <summary> /// Lets you register a command to be called when the game is directly sent a message. /// </summary> /// <example> /// <code> /// private class MessageColor { /// public string color = ""; // in CSS format rgb(r,g,b) /// }; /// /// ... /// gameServer.RegisterCmdHandler("color", OnColor); /// ... /// void OnColor(MessageColor) { /// Debug.Log("received msg with color: " + color); /// } /// </code> /// </example> /// <param name="name">command to call callback for</param> /// <param name="callback">Typed callback</param> public void RegisterCmdHandler <T>(string name, TypedCmdEventHandler <T> callback) { CmdConverter <T> converter = new CmdConverter <T>(callback); m_handlers[name] = converter.Callback; }
private void RegisterInternalCmdHandler <T>(string name, TypedCmdEventHandler <T> callback) { CmdConverter <T> converter = new CmdConverter <T>(callback); m_internalHandlers[name] = converter.Callback; }