Пример #1
0
        public ItemCollectorMod()
        {
            Log.Info($"Initalizing {nameof(ItemCollectorMod)}");
            _config = ConfigurationBase.LoadConfiguration <ItemCollectorConfiguration>();
            ItemFinder.ConnectorItems     = new List <string>(_config.ItemsToConsiderConnectors.Split(',').Select(v => v.Trim()));
            ItemFinder.ConnectorFloorings = _config.FlooringsToConsiderConnectors;

            var machinesToCollectFrom = _config.MachinesToCollectFrom.Split(',').Select(v => v.Trim()).ToList();
            var locationsToSearch     = _config.LocationsToSearch.Split(',').Select(v => v.Trim()).ToList();

            _machinesProcessor = new MachinesProcessor(machinesToCollectFrom, locationsToSearch,
                                                       _config.AddBuildingsToLocations, _config.AllowDiagonalConnectionsForAllItems)
            {
                MuteWhileCollectingFromMachines = Math.Max(0, Math.Min(5000, _config.MuteWhileCollectingFromMachines))
            };


            _animalHouseProcessor = new AnimalHouseProcessor(_config.PetAnimals, _config.AdditionalFriendshipFromCollecting, _config.MuteAnimalsWhenCollecting);
        }
        private void _InitializeMod()
        {
            Monitor.Log($"Initalizing {nameof(ItemCollectorMod)}", LogLevel.Info);

            _config.MachineConfigs.ForEach(t =>
            {
                if (t.AcceptableObjects == null)
                {
                    t.AcceptableObjects = new List <AcceptableObject>();
                }

                if (t.AcceptableCategories == null)
                {
                    t.AcceptableCategories = new List <AcceptableCategory>();
                }
            });

            _machineBuildingConfigs = _config.MachineBuildingConfigs;

            var machineConfigs = _config.MachineConfigs;
            var config         = machineConfigs.FirstOrDefault(t => t.Name == "Seed Maker");

            if (config != null)
            {
                config.AcceptableObjects = _GetSeedMakerMaterials();
            }

            ItemFinder.ConnectorItems     = machineConfigs.Where(t => t.AllowConnection).ToList().Select(t => t.Name).ToList();
            ItemFinder.ConnectorFloorings = _config.FlooringsToConsiderConnectors;

            var locationsToSearch = _config.LocationsToSearch.Split(',').Select(v => v.Trim()).ToList();

            _machinesProcessor = new MachinesProcessor(machineConfigs, locationsToSearch, _config.AddBuildingsToLocations, _config.AllowDiagonalConnectionsForAllItems, Monitor)
            {
                MuteWhileCollectingFromMachines = Math.Max(0, Math.Min(5000, _config.MuteWhileCollectingFromMachines))
            };

            _buildingProcessor = new BuildingProcessor(_config.PetAnimals, _config.AdditionalFriendshipFromCollecting, _config.MuteAnimalsWhenCollecting, _config.BuildingsToIgnore, Monitor);
        }