//ADDSTATEFUNCTION() FUNCTION // - ADDS A FUNCTION TO A STATE'S 'ONENTER' OR 'ONEXIT' DELEGATE // - NEEDS WORK public bool AddStateFunction(DelegateEnum delegateType, T state, Delegate del) { //STRING 'STATEKEY' // - TYPECAST TEMPLATED VARIABLE 'STATE' AS AN ENUM, INVOKE THE OBJECT METHOD FUNCTION '.TOSTRING()' TO CONVERT ENUM TO STRING // - USED AS THE INDEXER FOR DICTIONARY 'STATES' string stateKey = (state as Enum).ToString(); //IF STRING 'FUNCNAME' == 'ONENTER' // - ACCESS DICTIONARY 'STATES' // - INVOKE 'ADDENTERFUNCTION()' FROM THE STATE AT THE INDEX OF 'STATEKEY' // - PASS IN DELEGATE 'D' AS THE ARGUMENT FOR 'ADDENTERFUNCTION()' // - RETURN TRUE if (delegateType == DelegateEnum.ONENTER) { this.states[stateKey].AddEnterFunction(del); return(true); } //IF STRING 'FUNCNAME' == 'ONEXIT' // - ACCESS DICTIONARY 'STATES' // - INVOKE 'ADDEXITFUNCTION()' FROM THE STATE AT THE INDEX OF 'STATEKEY' // - PASS IN DELEGATE 'DEL' AS THE ARGUMENT FOR 'ADDEXITFUNCTION()' // - RETURN TRUE if (delegateType == DelegateEnum.ONEXIT) { this.states[stateKey].AddExitFunction(del); return(true); } //IF ERROR, RETURN FALSE return(false); }
public void removeDelegate(DelegateEnum dEnum) { if (delegateMapping.ContainsKey(dEnum)) { delegateMapping.Remove(dEnum); } //Debug.Log("DelegateManager-->removeDelegate " + delegateMapping[(int)dEnum].GetInvocationList().Length); }
public void registerDelegate(DelegateEnum dEnum, CommonDelegate tDelegate) { if (!delegateMapping.ContainsKey(dEnum)) { delegateMapping.Add(dEnum, tDelegate); } //Debug.Log("DelegateManager-->registerDelegate " + delegateMapping[(int)dEnum].GetInvocationList().Length); }
public void decreaseDelegate(DelegateEnum dEnum, CommonDelegate tDelegate) { if (!delegateMapping.ContainsKey(dEnum)) { registerDelegate(dEnum, null); } delegateMapping[dEnum] -= tDelegate; //Debug.Log("DelegateManager-->decreaseDelegate " + delegateMapping[(int)dEnum].GetInvocationList().Length); }
public static void delegateInvoke(DelegateEnum dEnum, object[] msgData) { CommonDelegate delegates = StaticDelegateManager.Instance().delegateMapping[(int)dEnum]; if (delegates != null) { delegates.Invoke(msgData); } }
public void addDelegate(DelegateEnum dEnum, CommonDelegate tDelegate) { //Debug.Log("DelegateManager-->addDelegate " + dEnum.ToString() +" " + delegateMapping); if (!delegateMapping.ContainsKey(dEnum)) { registerDelegate(dEnum, null); } delegateMapping[dEnum] += tDelegate; //Debug.Log("DelegateManager-->addDelegate " + delegateMapping[(int)dEnum].GetInvocationList().Length); }
public void delegateInvoke(DelegateEnum dEnum, object[] msgData) { if (!delegateMapping.ContainsKey(dEnum)) { //Debug.Log("DelegateManager-->delegateInvoke NULL" + dEnum.ToString()); return; } CommonDelegate delegates = delegateMapping[dEnum]; if (delegates != null) { delegates.Invoke(msgData); } }
public static void decreaseDelegate(DelegateEnum dEnum, CommonDelegate tDelegate) { StaticDelegateManager.Instance().delegateMapping[(int)dEnum] -= tDelegate; //Debug.Log("StaticDelegateManager-->decreaseDelegate " + delegateMapping[(int)dEnum].GetInvocationList().Length); }