コード例 #1
0
    public static List <DropTemplate> Filter(DropSourceTemplateLink context, List <DropTemplate> templates)
    {
        return(templates.Where(template =>
        {
            try
            {
                if ((template?.Conditions?.Count ?? 0) == 0)
                {
                    return true;
                }

                return !template.Conditions.Any(x =>
                {
                    try
                    {
                        return x?.ShouldFilter(context, template) ?? true;
                    }
                    catch (Exception e)
                    {
                        Log.LogError($"Error while attempting to check condition '{x?.GetType()?.Name}' for '{template.Config.PrefabName}'. Condition will be ignored", e);
                        return true;
                    }
                });
            }
            catch (Exception e)
            {
                Log.LogError($"Error while attempting to check conditions for '{template?.Config?.PrefabName}'. Conditions will be ignored", e);
                return true;
            }
        })
               .ToList());
    }
コード例 #2
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(context.Source.transform.position, template?.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due being outside required altitude.");
            return(true);
        }
コード例 #3
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(template.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due to not finding required global key.");
            return(true);
        }
コード例 #4
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(template?.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due being outside allowed time of day.");
            return(true);
        }
コード例 #5
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(context.Source.transform.position, template?.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due not being within required distance to center of map.");
            return(true);
        }
コード例 #6
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(template.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due to current environment.");
            return(true);
        }
コード例 #7
0
        public bool ShouldFilter(DropSourceTemplateLink context, DropTemplate template)
        {
            if (IsValid(template?.Config))
            {
                return(false);
            }

            Log.LogTrace($"Filtered drop '{template.Drop.m_item.name}' due to not being within required CLLC world level.");
            return(true);
        }