示例#1
0
        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));
        }
示例#2
0
        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;
            }
        }