From 040de9b68f238124b77c2432573012f62b531bee Mon Sep 17 00:00:00 2001 From: zombifier Date: Wed, 21 May 2025 00:07:35 -0400 Subject: [PATCH 1/2] [Animal Husbandry] Handle null produces, and allows overriding feather/wool/feet item. --- ButcherMod/animals/MeatController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ButcherMod/animals/MeatController.cs b/ButcherMod/animals/MeatController.cs index 3aa0fab..5c11849 100644 --- a/ButcherMod/animals/MeatController.cs +++ b/ButcherMod/animals/MeatController.cs @@ -165,7 +165,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) for (; numberOfWools > 0; --numberOfWools) { - Object newItem = ItemRegistry.Create(farmAnimal.GetProduceID(random, false), 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("woolIndex") ?? farmAnimal.GetProduceID(random, false) ?? "440", 1, ProduceQuality(random, farmAnimal)); itemsToReturn.Add(newItem); } } @@ -180,7 +180,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) { if (random.NextDouble() < ((double)farmAnimal.friendshipTowardFarmer.Value + (double)num1) / 5000.0 + Game1.player.DailyLuck + (double)Game1.player.LuckLevel * 0.01) { - Object newItem = ItemRegistry.Create(farmAnimal.GetProduceID(random, true), 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("featherIndex") ?? farmAnimal.GetProduceID(random, true) ?? "444", 1, ProduceQuality(random, farmAnimal)); itemsToReturn.Add(newItem); } } @@ -197,7 +197,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) { if (random.NextDouble() < ((double)farmAnimal.friendshipTowardFarmer.Value + (double)num1) / 5000.0 + Game1.player.DailyLuck + (double)Game1.player.LuckLevel * 0.01) { - Object newItem = ItemRegistry.Create(farmAnimal.GetProduceID(random, true), 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("feetIndex") ?? farmAnimal.GetProduceID(random, true) ?? "446", 1, ProduceQuality(random, farmAnimal)); newItem.Quality = ProduceQuality(random, farmAnimal); itemsToReturn.Add(newItem); } From b7a89dafdd179189ccc92c948dd5a9d245746791 Mon Sep 17 00:00:00 2001 From: zombifier Date: Wed, 21 May 2025 00:22:27 -0400 Subject: [PATCH 2/2] Make null default clearer --- ButcherMod/animals/MeatController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ButcherMod/animals/MeatController.cs b/ButcherMod/animals/MeatController.cs index 5c11849..7fdf890 100644 --- a/ButcherMod/animals/MeatController.cs +++ b/ButcherMod/animals/MeatController.cs @@ -165,7 +165,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) for (; numberOfWools > 0; --numberOfWools) { - Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("woolIndex") ?? farmAnimal.GetProduceID(random, false) ?? "440", 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("woolIndex", null) ?? farmAnimal.GetProduceID(random, false) ?? "440", 1, ProduceQuality(random, farmAnimal)); itemsToReturn.Add(newItem); } } @@ -180,7 +180,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) { if (random.NextDouble() < ((double)farmAnimal.friendshipTowardFarmer.Value + (double)num1) / 5000.0 + Game1.player.DailyLuck + (double)Game1.player.LuckLevel * 0.01) { - Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("featherIndex") ?? farmAnimal.GetProduceID(random, true) ?? "444", 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("featherIndex", null) ?? farmAnimal.GetProduceID(random, true) ?? "444", 1, ProduceQuality(random, farmAnimal)); itemsToReturn.Add(newItem); } } @@ -197,7 +197,7 @@ public static List CreateMeat(FarmAnimal farmAnimal) { if (random.NextDouble() < ((double)farmAnimal.friendshipTowardFarmer.Value + (double)num1) / 5000.0 + Game1.player.DailyLuck + (double)Game1.player.LuckLevel * 0.01) { - Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("feetIndex") ?? farmAnimal.GetProduceID(random, true) ?? "446", 1, ProduceQuality(random, farmAnimal)); + Object newItem = ItemRegistry.Create(farmAnimal.GetAnimalData().CustomFields?.GetValueOrDefault("feetIndex", null) ?? farmAnimal.GetProduceID(random, true) ?? "446", 1, ProduceQuality(random, farmAnimal)); newItem.Quality = ProduceQuality(random, farmAnimal); itemsToReturn.Add(newItem); }