Beispiel #1
0
        private ItemDropAttemptResult ResolveRule(IItemDropRule rule, DropAttemptInfo info)
        {
            if (!rule.CanDrop(info))
            {
                ItemDropAttemptResult itemDropAttemptResult = default(ItemDropAttemptResult);
                itemDropAttemptResult.State = ItemDropAttemptResultState.DoesntFillConditions;
                ItemDropAttemptResult itemDropAttemptResult2 = itemDropAttemptResult;
                ResolveRuleChains(rule, info, itemDropAttemptResult2);
                return(itemDropAttemptResult2);
            }
            ItemDropAttemptResult itemDropAttemptResult3 = (rule as INestedItemDropRule)?.TryDroppingItem(info, ResolveRule) ?? rule.TryDroppingItem(info);

            ResolveRuleChains(rule, info, itemDropAttemptResult3);
            return(itemDropAttemptResult3);
        }
Beispiel #2
0
        private ItemDropAttemptResult ResolveRule(
            IItemDropRule rule,
            DropAttemptInfo info)
        {
            if (!rule.CanDrop(info))
            {
                ItemDropAttemptResult parentResult = new ItemDropAttemptResult()
                {
                    State = ItemDropAttemptResultState.DoesntFillConditions
                };
                this.ResolveRuleChains(rule, info, parentResult);
                return(parentResult);
            }
            ItemDropAttemptResult parentResult1 = !(rule is INestedItemDropRule nestedItemDropRule) ? rule.TryDroppingItem(info) : nestedItemDropRule.TryDroppingItem(info, new ItemDropRuleResolveAction(this.ResolveRule));

            this.ResolveRuleChains(rule, info, parentResult1);
            return(parentResult1);
        }