示例#1
0
        public bool IsValid(DropTableItemConfiguration config)
        {
            if (config is null)
            {
                return(true);
            }

            var envMan = EnvMan.instance;

            if (config.ConditionNotDay && envMan.IsDay())
            {
                return(false);
            }

            if (config.ConditionNotAfternoon && envMan.IsAfternoon())
            {
                return(false);
            }

            if (config.ConditionNotNight && envMan.IsNight())
            {
                return(false);
            }

            return(true);
        }
示例#2
0
        public bool IsValid(Vector3 position, DropTableItemConfiguration config)
        {
            if (config is null)
            {
                return(true);
            }

            if (string.IsNullOrWhiteSpace(config.ConditionBiomes.Value))
            {
                return(true);
            }

            var allowedBiomes = config.ConditionBiomes.Value.SplitByComma(true);

            var currentBiome        = Heightmap.FindBiome(position);
            var currentBiomeCleaned = currentBiome.ToString().ToUpperInvariant();

            return(allowedBiomes.Any(x => x == currentBiomeCleaned));
        }
        public bool IsValid(Vector3 position, DropTableItemConfiguration config)
        {
            if (string.IsNullOrWhiteSpace(config?.ConditionLocations?.Value))
            {
                return(true);
            }

            var locations = config.ConditionLocations.Value.SplitByComma(toUpper: true);

            if (locations.Count == 0)
            {
                return(true);
            }

            var currentLocation = LocationHelper.FindLocation(position);

            var currentLocationName = currentLocation.LocationName.Trim().ToUpperInvariant();

            return(locations.Any(x => x == currentLocationName));
        }
示例#4
0
        public bool IsValid(Vector3 position, DropTableItemConfiguration config)
        {
            if (config is null)
            {
                return(true);
            }

            var altitude = position.y - ZoneSystem.instance.m_waterLevel;

            if (altitude < config.ConditionAltitudeMin)
            {
                return(false);
            }

            if (altitude > config.ConditionAltitudeMax)
            {
                return(false);
            }

            return(true);
        }
        public bool IsValid(DropTableItemConfiguration config)
        {
            if (string.IsNullOrEmpty(config.ConditionGlobalKeys.Value))
            {
                return(true);
            }

            var requiredKeys = config.ConditionGlobalKeys.Value.SplitByComma();

            if (requiredKeys.Count == 0)
            {
                return(true);
            }

            if (requiredKeys.Any(x => ZoneSystem.instance.GetGlobalKey(x)))
            {
                return(true);
            }

            return(false);
        }
        public bool IsValid(Vector3 position, DropTableItemConfiguration config)
        {
            if (config is null)
            {
                return(true);
            }

            var distance = position.magnitude;

            if (distance < config.ConditionDistanceToCenterMin.Value)
            {
                return(false);
            }

            if (config.ConditionDistanceToCenterMax.Value > 0 && distance > config.ConditionDistanceToCenterMax.Value)
            {
                return(false);
            }

            return(true);
        }
        public bool IsValid(DropTableItemConfiguration config)
        {
            if (string.IsNullOrEmpty(config.ConditionEnvironments.Value))
            {
                return(true);
            }

            var envMan     = EnvMan.instance;
            var currentEnv = envMan.GetCurrentEnvironment().m_name.Trim().ToUpperInvariant();

            var environments = config.ConditionEnvironments.Value.SplitByComma(toUpper: true);

            if (environments.Count == 0)
            {
                return(true);
            }

            if (environments.Any(x => x == currentEnv))
            {
                return(true);
            }

            return(false);
        }
        public bool IsValid(DropTableItemConfiguration itemConfig)
        {
            if (itemConfig is null)
            {
                return(true);
            }

            if (itemConfig.TryGet(DropTableModConfigCLLC.ModName, out var modConfig) && modConfig is DropTableModConfigCLLC config)
            {
                int worldLevel = API.GetWorldLevel();

                if (worldLevel < config.ConditionWorldLevelMin)
                {
                    return(false);
                }

                if (config.ConditionWorldLevelMax > 0 && worldLevel > config.ConditionWorldLevelMax)
                {
                    return(false);
                }
            }

            return(true);
        }