public bool AllowUsageAsDirObj(string verbName, Thing doer) { if (!_verbHash.ContainsKey(verbName)) { return(false); } if (!_verbHash[verbName].ContainsKey(typeof(AllowUsageAsDirObjDelegate))) { return(false); } AllowUsageAsDirObjDelegate thisDelegate = (AllowUsageAsDirObjDelegate)_verbHash[verbName][typeof(AllowUsageAsDirObjDelegate)]; return(thisDelegate.Invoke(doer, this)); }
public void AddDirectObjectHandler(string verbName, Func <Thing, Thing, bool> handler) { if (!_verbHash.ContainsKey(verbName)) { _verbHash.Add(verbName, new Dictionary <Type, Delegate>()); } AllowUsageAsDirObjDelegate thisDelegate = new AllowUsageAsDirObjDelegate(handler); if (!_verbHash[verbName].ContainsKey(typeof(AllowUsageAsDirObjDelegate))) { _verbHash[verbName].Add(typeof(AllowUsageAsDirObjDelegate), thisDelegate); } else { _verbHash[verbName][typeof(AllowUsageAsDirObjDelegate)] = thisDelegate; } }