internal AnimalsTask(ModConfig config, AnimalsTaskId id) { _config = config; _id = id; SettingsMenu.ReportConfigChanged += SettingsMenu_ReportConfigChanged; if (id == AnimalsTaskId.UnpettedAnimals) { ModEntry.EventsHelper.Display.MenuChanged += Display_MenuChanged; } }
internal AnimalsTask(ModConfig config, AnimalsTaskId id) { _config = config; _id = id; SettingsMenu.ReportConfigChanged += SettingsMenu_ReportConfigChanged; if (id == AnimalsTaskId.UnpettedAnimals) { MenuEvents.MenuChanged += MenuEvents_MenuChanged; MenuEvents.MenuClosed += MenuEvents_MenuClosed; } }
protected override void FirstScan() { if (_who == AnimalsTaskId.None) { _who = _id; } else if (_who != _id) { return; } if (ObjectsNames.Count == 0) { PopulateObjectsNames(); } _farm = Game1.locations.First(l => l is Farm) as Farm; // Checking animals left outside CheckAnimals(_farm); // ReSharper disable once PossibleNullReferenceException foreach (var building in _farm.buildings) { if (building.isUnderConstruction()) { continue; } switch (building.indoors.Value) { case AnimalHouse animalHouse: // Check animals CheckAnimals(animalHouse); // Check for object in Coop if (building is Coop) { CheckAnimalProductsInCoop(animalHouse); } // Check for hay var count = animalHouse.numberOfObjectsWithName("Hay"); var animalLimit = animalHouse.animalLimit.Value; if (count < animalLimit) { MissingHay.Add(new Tuple <Building, int>(building, animalLimit - count)); } break; case SlimeHutch slimeHutch: // Check slime balls foreach (var pair in building.indoors.Value.objects.Pairs) { if (pair.Value.ParentSheetIndex >= 56 && pair.Value.ParentSheetIndex <= 61) { AnimalProductsToCollect.Add(new TaskItem <SObject>(slimeHutch, pair.Key, pair.Value)); } } break; default: break; } } CheckForTruffles(_farm); }