private static void HandleHatchling( ref Decorators.AnimalHouse moddedAnimalHouse, string name, Farmer moddedPlayer) { if (moddedAnimalHouse.IsFull()) { return; } var withEggReadyToHatch = moddedAnimalHouse.GetIncubatorWithEggReadyToHatch(); if (withEggReadyToHatch == null) { return; } string type; type = new Incubator(withEggReadyToHatch) .GetRandomType(FarmAnimals.GroupTypesByCategory() .ToDictionary (kvp => kvp.Key, kvp => moddedPlayer.SanitizeBlueChickens(kvp.Value))); var building = moddedAnimalHouse.GetBuilding(); var farmAnimal = new Decorators.FarmAnimal(moddedPlayer.CreateFarmAnimal(type, name, building)); farmAnimal.AddToBuilding(building); moddedAnimalHouse.ResetIncubator(withEggReadyToHatch); farmAnimal.SetCurrentProduce(-1); }
public static void Postfix(ref StardewValley.AnimalHouse __instance) { var animalHouse = new Decorators.AnimalHouse(__instance); if (animalHouse.IsFull() || animalHouse.GetIncubatorWithEggReadyToHatch() == null) { return; } animalHouse.SetIncubatorHatchEvent(); }
public static bool Prefix(ref StardewValley.Buildings.Coop __instance, ref int dayOfMonth) { var animalHouse = new Decorators.AnimalHouse(new Decorators.Coop(__instance).GetIndoors()); if (!animalHouse.IsEggReadyToHatch()) { return(true); } animalHouse.ResetIncubator(); return(true); }
public static bool Prefix(ref StardewValley.AnimalHouse __instance, ref string name) { var moddedAnimalHouse = new Decorators.AnimalHouse(__instance); var moddedPlayer = new Farmer(Game.GetPlayer()); if (moddedAnimalHouse.GetBuilding() is StardewValley.Buildings.Barn _) { if (Event.IsFarmEventOccurring(out QuestionEvent farmEvent)) { HandleNewborn(ref moddedAnimalHouse, name, ref farmEvent, moddedPlayer); } } HandleHatchling(ref moddedAnimalHouse, name, moddedPlayer); Event.GoToNextEventCommandInLocation(Game.GetCurrentLocation()); Game.ExitActiveMenu(); return(false); }
private static void HandleNewborn( ref Decorators.AnimalHouse moddedAnimalHouse, string name, ref QuestionEvent questionEvent, Farmer moddedPlayer) { var withEggReadyToHatch = moddedAnimalHouse.GetIncubatorWithEggReadyToHatch(); var moddedParent = new Decorators.FarmAnimal(questionEvent.animal); var dictionary = FarmAnimals.GroupTypesByCategory().Where(kvp => kvp.Value.Contains(moddedParent.GetTypeString())) .ToDictionary(kvp => kvp.Key, kvp => moddedPlayer.SanitizeBlueChickens(kvp.Value)); var randomTypeFromProduce = moddedParent.GetRandomTypeFromProduce(dictionary); var building = moddedAnimalHouse.GetBuilding(); var farmAnimal = new Decorators.FarmAnimal(moddedPlayer.CreateFarmAnimal(randomTypeFromProduce, name, building)); farmAnimal.AssociateParent(questionEvent.animal); farmAnimal.AddToBuilding(building); farmAnimal.SetCurrentProduce(-1); Event.ForceQuestionEventToProceed(questionEvent); }