public FarmAnimal RandomizeLocation(AnimalHouse animalHouse)
        {
            Building Building = animalHouse.getBuilding();

            this.home = Building;
            this.homeLocation.Set(new Vector2((float)Building.tileX, (float)Building.tileY));
            this.setRandomPosition(this.home.indoors);

            return(this);
        }
Exemplo n.º 2
0
        public static FarmAnimal BirthAnimal(AnimalHouse animalHouseInstance, int eggID)
        {
            FarmAnimal farmAnimal = null;

            // ... then hatch egg before game can.
            long newId = smapiHelper.Multiplayer.GetNewID();

            if (ModEntry.IsCustomEgg(eggID))
            {
                string type = "White Chicken";
                if (!ModEntry.modEntry.modData.customEggsAndHatchedAnimals.ContainsKey(eggID))
                {
                    // Attempt to convert chicken eggs from old ID system
                    eggID = ModEntry.ConvertFromOldID(eggID);
                }
                if (ModEntry.modEntry.modData.customEggsAndHatchedAnimals.ContainsKey(eggID))
                {
                    type = eggsAndHatchedAnimals[eggID];
                    // Allow for variants
                    string[] splitType = type.Split(new string[] { ", " }, StringSplitOptions.None);
                    if (splitType.Length > 1)
                    {
                        type = splitType[ModEntry.modEntry.rand.Next(0, splitType.Length)];
                    }
                }

                farmAnimal = new FarmAnimal(type, newId, (long)Game1.player.uniqueMultiplayerID);
                if (ModEntry.modEntry.customChickenTextures.ContainsKey(type))
                {
                    farmAnimal.type.Value  = type;
                    farmAnimal.displayType = null;
                    farmAnimal.reloadData();
                    ModEntry.modEntry.ReplaceCustomAnimalSound(farmAnimal);
                }

                animalHouseInstance.incubatingEgg.X = 0;
                animalHouseInstance.incubatingEgg.Y = -1;

                animalHouseInstance.animals.Add(farmAnimal.myID, farmAnimal);
                animalHouseInstance.animalsThatLiveHere.Add((long)farmAnimal.myID);

                Building building = animalHouseInstance.getBuilding();
                if (building != null)
                {
                    farmAnimal.home = building;
                    farmAnimal.homeLocation.Value = new Vector2((float)(int)((NetFieldBase <int, NetInt>)building.tileX), (float)(int)((NetFieldBase <int, NetInt>)building.tileY));
                    farmAnimal.setRandomPosition((GameLocation)((NetFieldBase <GameLocation, NetRef <GameLocation> >)farmAnimal.home.indoors));
                }
            }
            return(farmAnimal);
        }
Exemplo n.º 3
0
        private void DayStarted(object sender, DayStartedEventArgs e)
        {
            if (!Context.IsWorldReady)
            {
                return;
            }

            _data = Helper.Data.ReadSaveData <PlayerData>(Helper.ModRegistry.ModID) ?? new PlayerData();
            if (!_data.Buildings.Any())
            {
                return;
            }

            IEnumerator <Building> enumerator = Game1.getFarm().buildings.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    Building b = enumerator.Current;
                    if (b != null)
                    {
                        AnimalHouse bb = b.indoors.Value as AnimalHouse;
                        if (bb == null)
                        {
                            continue;
                        }

                        foreach (KeyValuePair <string, bool> building in _data.Buildings)
                        {
                            if (building.Key.Equals(bb.uniqueName.Value))
                            {
                                DoPopChange(bb.getBuilding(), showLog: true, doRestore: true);
                            }
                        }
                    }
                }
            }
            finally
            {
                enumerator.Dispose();
            }
        }
Exemplo n.º 4
0
        /// <summary>Creates an animal.</summary>
        /// <param name="name">The name of the animal.</param>
        /// <param name="type">The type of the animal.</param>
        /// <param name="__instance">The current <see cref="AnimalHouse"/> instance being patched.</param>
        /// <returns>The created <see cref="FarmAnimal"/>.</returns>
        private static FarmAnimal CreateAnimal(string name, string type, AnimalHouse __instance)
        {
            var multiplayer = (Multiplayer)typeof(Game1).GetField("multiplayer", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null);

            var animal = new FarmAnimal(type, multiplayer.getNewID(), Game1.player.UniqueMultiplayerID);

            animal.Name               = name;
            animal.displayName        = name;
            animal.home               = __instance.getBuilding();
            animal.homeLocation.Value = new Vector2(animal.home.tileX, animal.home.tileY);
            animal.setRandomPosition(animal.home.indoors);

            var animalHome = animal.home.indoors.Value as AnimalHouse;

            animalHome.Animals.Add(animal.myID, animal);
            animalHome.animalsThatLiveHere.Add(animal.myID);

            return(animal);
        }
Exemplo n.º 5
0
        private static void AddNewHatchedRabbit(Farmer who, AnimalHouse animalHouse, string animalName)
        {
            long animalId = ModEntry.GetMultiplayer().getNewID();

            FarmAnimal farmAnimal = new FarmAnimal("Rabbit", animalId, who.UniqueMultiplayerID);

            farmAnimal.Name        = animalName;
            farmAnimal.displayName = animalName;

            Building building = animalHouse.getBuilding();

            farmAnimal.home = building;
            farmAnimal.homeLocation.Value = new Vector2(building.tileX.Value, building.tileY.Value);
            farmAnimal.setRandomPosition(animalHouse);

            animalHouse.animals.Add(animalId, farmAnimal);
            animalHouse.animalsThatLiveHere.Add(animalId);

            Game1.exitActiveMenu();
        }
        /// <summary>Patch for Breeder newborn animals to have random starting friendship.</summary>
        private static void AnimalHouseAddNewHatchedAnimalPostfix(ref AnimalHouse __instance)
        {
            try
            {
                var who = Game1.getFarmer(__instance.getBuilding().owner.Value);
                if (!Utility.SpecificPlayerHasProfession("Rancher", who))
                {
                    return;
                }

                var a = __instance.Animals?.Values.Last();
                if (a == null || a.age.Value != 0 || a.friendshipTowardFarmer.Value != 0)
                {
                    return;
                }
                a.friendshipTowardFarmer.Value = new Random(__instance.GetHashCode() + a.GetHashCode()).Next(0, 200);
            }
            catch (Exception ex)
            {
                Monitor.Log($"Failed in {nameof(AnimalHouseAddNewHatchedAnimalPostfix)}:\n{ex}");
            }
        }
Exemplo n.º 7
0
        public static void NewHatchedAnimalPrefix(AnimalHouse __instance, ref string name, ref string __state)
        {
            if (__instance.getBuilding() is Coop)
            {
                foreach (StardewValley.Object @object in __instance.objects.Values)
                {
                    if ((bool)((NetFieldBase <bool, NetBool>)@object.bigCraftable) && @object.Name.Contains("Incubator") && (@object.heldObject.Value != null && (int)((NetFieldBase <int, NetIntDelta>)@object.minutesUntilReady) <= 0) && !__instance.isFull())
                    {
                        FarmAnimal farmAnimal = ModEntry.BirthAnimal(__instance, @object.heldObject.Value.ParentSheetIndex);

                        if (farmAnimal != null)
                        {
                            farmAnimal.Name          = name;
                            farmAnimal.displayName   = name;
                            @object.heldObject.Value = (StardewValley.Object)null;
                            @object.ParentSheetIndex = 101;
                            __state = farmAnimal.type;
                        }
                        break;
                    }
                }
            }
        }
Exemplo n.º 8
0
        public static bool AddHatchedAnimal(ref AnimalHouse __instance, ref string name)
        {
            if (__instance.getBuilding() is Coop)
            {
                foreach (SObject obj in __instance.objects.Values)
                {
                    if (obj.bigCraftable.Value && obj.Name.Contains("Incubator") && (obj.heldObject.Value != null && obj.minutesUntilReady.Value <= 0) && !__instance.isFull())
                    {
                        string type = "??";
                        if (obj.heldObject.Value == null)
                        {
                            type = "White Chicken";
                        }
                        else
                        {
                            switch (obj.heldObject.Value.ParentSheetIndex)
                            {
                            case 107:
                                type = "Dinosaur";
                                break;

                            case 174:
                            case 176:
                                type = "White Chicken";
                                break;

                            case 180:
                            case 182:
                                type = "Brown Chicken";
                                break;

                            case 305:
                                type = "Void Chicken";
                                break;

                            case 442:
                                type = "Duck";
                                break;

                            default:
                                if (obj.heldObject.Value.ParentSheetIndex == Loader.DATA["Blue Chicken Egg"])
                                {
                                    type = "Blue Chicken";
                                }
                                break;
                            }
                        }

                        FarmAnimal farmAnimal = new FarmAnimal(type, Loader.HELPER.Multiplayer.GetNewID(), Game1.player.UniqueMultiplayerID);
                        while ((Game1.player.eventsSeen.Contains(3900074) || !type.Equals("Blue Chicken")) && !farmAnimal.type.Value.Equals(type))
                        {
                            farmAnimal = new FarmAnimal(type, farmAnimal.myID.Value, Game1.player.UniqueMultiplayerID);
                        }
                        farmAnimal.Name        = name;
                        farmAnimal.displayName = name;
                        Building building = __instance.getBuilding();
                        farmAnimal.home = building;
                        farmAnimal.homeLocation.Value = new Vector2(building.tileX.Value, building.tileY.Value);
                        farmAnimal.setRandomPosition(farmAnimal.home.indoors.Value);
                        (building.indoors.Value as AnimalHouse).animals.Add(farmAnimal.myID.Value, farmAnimal);
                        (building.indoors.Value as AnimalHouse).animalsThatLiveHere.Add(farmAnimal.myID.Value);
                        obj.heldObject.Value = null;
                        obj.ParentSheetIndex = 101;
                        break;
                    }
                }
            }
            else if (Game1.farmEvent != null && Game1.farmEvent is QuestionEvent)
            {
                var        qe         = Game1.farmEvent as QuestionEvent;
                FarmAnimal farmAnimal = new FarmAnimal(qe.animal.type.Value, Loader.HELPER.Multiplayer.GetNewID(), Game1.player.UniqueMultiplayerID);
                farmAnimal.Name           = name;
                farmAnimal.displayName    = name;
                farmAnimal.parentId.Value = qe.animal.myID.Value;
                Building building = __instance.getBuilding();
                farmAnimal.home = building;
                farmAnimal.homeLocation.Value = new Vector2(building.tileX.Value, building.tileY.Value);
                qe.forceProceed = true;
                farmAnimal.setRandomPosition(farmAnimal.home.indoors.Value);
                (building.indoors.Value as AnimalHouse).animals.Add(farmAnimal.myID.Value, farmAnimal);
                (building.indoors.Value as AnimalHouse).animalsThatLiveHere.Add(farmAnimal.myID.Value);
            }
            if (Game1.currentLocation.currentEvent != null)
            {
                ++Game1.currentLocation.currentEvent.CurrentCommand;
            }
            Game1.exitActiveMenu();

            return(false);
        }
        public static bool AnimalHouseToolActionExecutor(ref AnimalHouse __instance, ref Tool t, ref int tileX, ref int tileY)
        {
            GameLocation gameLocation = Game1.currentLocation;

            if (t.BaseName != "Watering Can" || ((WateringCan)t).WaterLeft <= 0)
            {
                return(false);
            }

            if (Game1.currentLocation.Name.ToLower().Contains("coop") && !ModData.CoopsWithWateredTrough.Contains(__instance.NameOrUniqueName.ToLower()))
            {
                Type buildingType = typeof(Coop);

                if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "coop")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.coopTroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coopTroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coopTroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.CoopsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());
                        ModEntry.Instance.ChangeCoopTexture(__instance.getBuilding(), false);

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
                else if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "coop2")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.coop2TroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coop2TroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coop2TroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.CoopsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());
                        ModEntry.Instance.ChangeBigCoopTexture(__instance.getBuilding(), false);

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
                else if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "coop3")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.coop3TroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coop3TroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.coop3TroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.CoopsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
            }
            else if (Game1.currentLocation.Name.ToLower().Contains("barn") && !ModData.BarnsWithWateredTrough.Contains(__instance.NameOrUniqueName.ToLower()))
            {
                Type buildingType = typeof(Barn);

                if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "barn")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.barnTroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barnTroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barnTroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.BarnsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
                else if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "barn2")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.barn2TroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barn2TroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barn2TroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.BarnsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
                else if (__instance.getBuilding().nameOfIndoorsWithoutUnique.ToLower() == "barn3")
                {
                    foreach (TroughTile troughTile in ModEntry.Instance.CurrentTroughPlacementProfile.barn3TroughTiles)
                    {
                        if (troughTile.TileX != tileX || troughTile.TileY != tileY)
                        {
                            continue;
                        }

                        ModEntry.Instance.SendTroughWateredMessage(buildingType, __instance.NameOrUniqueName.ToLower());

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barn3TroughTiles)
                        {
                            gameLocation.removeTile(tile.TileX, tile.TileY, tile.Layer);
                        }

                        Layer     buildingsLayer = gameLocation.Map.GetLayer("Buildings");
                        Layer     frontLayer     = gameLocation.Map.GetLayer("Front");
                        TileSheet tilesheet      = gameLocation.Map.GetTileSheet("z_waterTroughTilesheet");

                        foreach (TroughTile tile in ModEntry.Instance.CurrentTroughPlacementProfile.barn3TroughTiles)
                        {
                            if (tile.Layer.Equals("Buildings"))
                            {
                                buildingsLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(buildingsLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                            else if (tile.Layer.Equals("Front"))
                            {
                                frontLayer.Tiles[tile.TileX, tile.TileY] = new StaticTile(frontLayer, tilesheet, BlendMode.Alpha, tileIndex: tile.FullIndex);
                            }
                        }

                        ModData.BarnsWithWateredTrough.Add(__instance.NameOrUniqueName.ToLower());

                        foreach (FarmAnimal animal in __instance.animals.Values)
                        {
                            if (ModEntry.Instance.Config.ShowLoveBubblesOverAnimalsWhenWateredTrough)
                            {
                                animal.doEmote(ModData.LoveEmote);
                            }
                            animal.friendshipTowardFarmer.Value += Math.Abs(ModEntry.Instance.Config.AdditionalFriendshipPointsForWateredTroughWithAnimalsInsideBuilding);
                        }
                    }
                }
            }

            return(false);
        }