diff --git a/ValheimPlus/Assets/logo.png b/ValheimPlus/Assets/logo.png index c38f6b93..0d70c83c 100644 Binary files a/ValheimPlus/Assets/logo.png and b/ValheimPlus/Assets/logo.png differ diff --git a/ValheimPlus/Configurations/Sections/PlayerConfiguration.cs b/ValheimPlus/Configurations/Sections/PlayerConfiguration.cs index 0d6995e6..7016c796 100644 --- a/ValheimPlus/Configurations/Sections/PlayerConfiguration.cs +++ b/ValheimPlus/Configurations/Sections/PlayerConfiguration.cs @@ -26,5 +26,6 @@ public class PlayerConfiguration : ServerSyncConfig public bool skipTutorials { get; internal set; } = false; public bool disableEncumbered { get; internal set; } = false; public bool autoPickUpWhenEncumbered { get; internal set; } = false; + public bool disableEightSecondTeleport { get; internal set; } = false; } } diff --git a/ValheimPlus/GameClasses/Player.cs b/ValheimPlus/GameClasses/Player.cs index a9a51141..592184bc 100644 --- a/ValheimPlus/GameClasses/Player.cs +++ b/ValheimPlus/GameClasses/Player.cs @@ -1137,7 +1137,6 @@ public static float GetMaxCarryWeight() } } - [HarmonyPatch(typeof(Player), nameof(Player.GetFirstRequiredItem))] public static class Player_GetFirstRequiredItem_Transpiler { @@ -1168,4 +1167,17 @@ public static IEnumerable Transpile(IEnumerable 0) + if (__instance.m_fuelItem && toMaxFuel > 0) { - ItemDrop.ItemData fuelItemData = smelter.m_fuelItem.m_itemData; + ItemDrop.ItemData fuelItemData = __instance.m_fuelItem.m_itemData; // Check for fuel in nearby containers - int addedFuel = InventoryAssistant.RemoveItemInAmountFromAllNearbyChests(smelter.gameObject, autoFuelRange, fuelItemData, toMaxFuel, !ignorePrivateAreaCheck); + int addedFuel = InventoryAssistant.RemoveItemInAmountFromAllNearbyChests(__instance.gameObject, autoFuelRange, fuelItemData, toMaxFuel, !ignorePrivateAreaCheck); for (int i = 0; i < addedFuel; i++) { - smelter.m_nview.InvokeRPC("AddFuel", new object[] { }); + __instance.m_nview.InvokeRPC("AddFuel", new object[] { }); } if (addedFuel > 0) - ZLog.Log("Added " + addedFuel + " fuel(" + fuelItemData.m_shared.m_name + ") in " + smelter.m_name); + UnityEngine.Debug.Log("Added " + addedFuel + " fuel(" + fuelItemData.m_shared.m_name + ") in " + __instance.m_name); } if (toMaxOre > 0) { - List nearbyChests = InventoryAssistant.GetNearbyChests(smelter.gameObject, autoFuelRange); - foreach (Container c in nearbyChests) + foreach (Smelter.ItemConversion itemConversion in __instance.m_conversion) { - foreach (Smelter.ItemConversion itemConversion in smelter.m_conversion) + if (isKiln) { - if (isKiln) - { - if (Configuration.Current.Kiln.dontProcessFineWood && itemConversion.m_from.m_itemData.m_shared.m_name.Equals(WoodDefinitions.FineWoodName)) continue; - if (Configuration.Current.Kiln.dontProcessRoundLog && itemConversion.m_from.m_itemData.m_shared.m_name.Equals(WoodDefinitions.RoundLogName)) continue; + if (Configuration.Current.Kiln.dontProcessFineWood && itemConversion.m_from.m_itemData.m_shared.m_name.Equals(WoodDefinitions.FineWoodName)) continue; + if (Configuration.Current.Kiln.dontProcessRoundLog && itemConversion.m_from.m_itemData.m_shared.m_name.Equals(WoodDefinitions.RoundLogName)) continue; - int threshold = Configuration.Current.Kiln.stopAutoFuelThreshold < 0 ? 0 : Configuration.Current.Kiln.stopAutoFuelThreshold; - if (threshold > 0 && InventoryAssistant.GetItemAmountInItemList(InventoryAssistant.GetNearbyChestItemsByContainerList(nearbyChests), itemConversion.m_to.m_itemData) >= threshold) return; - } + if (threshold > 0 && InventoryAssistant.GetItemAmountInItemList( + InventoryAssistant.GetNearbyChestItems(__instance.gameObject, autoFuelRange, !ignorePrivateAreaCheck), itemConversion.m_to.m_itemData) >= threshold + ) return; + } - ItemDrop.ItemData oreItem = itemConversion.m_from.m_itemData; - int addedOres = InventoryAssistant.RemoveItemFromChest(c, oreItem, toMaxOre); - if (addedOres > 0) + ItemDrop.ItemData oreItem = itemConversion.m_from.m_itemData; + + int addedOres = InventoryAssistant.RemoveItemInAmountFromAllNearbyChests(__instance.gameObject, autoFuelRange, oreItem, toMaxFuel, !ignorePrivateAreaCheck); + if (addedOres > 0) + { + GameObject orePrefab = ObjectDB.instance.GetItemPrefab(itemConversion.m_from.gameObject.name); + + for (int i = 0; i < addedOres; i++) { - GameObject orePrefab = ObjectDB.instance.GetItemPrefab(itemConversion.m_from.gameObject.name); - - for (int i = 0; i < addedOres; i++) - { - smelter.m_nview.InvokeRPC("AddOre", new object[] { orePrefab.name }); - } - toMaxOre -= addedOres; - if (addedOres > 0) - ZLog.Log("Added " + addedOres + " ores(" + oreItem.m_shared.m_name + ") in " + smelter.m_name); - if (toMaxOre == 0) - return; + __instance.m_nview.InvokeRPC("AddOre", new object[] { orePrefab.name }); } + toMaxOre -= addedOres; + if (addedOres > 0) + UnityEngine.Debug.Log("Added " + addedOres + " ores(" + oreItem.m_shared.m_name + ") in " + __instance.m_name); + if (toMaxOre == 0) + return; } } } @@ -340,24 +337,24 @@ private static float GetPowerOutput(Windmill __instance) public static class SmelterDefinitions { - public static readonly string KilnName = "$piece_charcoalkiln"; - public static readonly string SmelterName = "$piece_smelter"; - public static readonly string FurnaceName = "$piece_blastfurnace"; - public static readonly string WindmillName = "$piece_windmill"; - public static readonly string SpinningWheelName = "$piece_spinningwheel"; + public const string KilnName = "$piece_charcoalkiln"; + public const string SmelterName = "$piece_smelter"; + public const string FurnaceName = "$piece_blastfurnace"; + public const string WindmillName = "$piece_windmill"; + public const string SpinningWheelName = "$piece_spinningwheel"; } public static class FurnaceDefinitions { - public static readonly string CopperOrePrefabName = "CopperOre"; - public static readonly string ScrapIronPrefabName = "IronScrap"; - public static readonly string SilverOrePrefabName = "SilverOre"; - public static readonly string TinOrePrefabName = "TinOre"; - - public static readonly string CopperPrefabName = "Copper"; - public static readonly string IronPrefabName = "Iron"; - public static readonly string SilverPrefabName = "Silver"; - public static readonly string TinPrefabName = "Tin"; + public const string CopperOrePrefabName = "CopperOre"; + public const string ScrapIronPrefabName = "IronScrap"; + public const string SilverOrePrefabName = "SilverOre"; + public const string TinOrePrefabName = "TinOre"; + + public const string CopperPrefabName = "Copper"; + public const string IronPrefabName = "Iron"; + public const string SilverPrefabName = "Silver"; + public const string TinPrefabName = "Tin"; public static readonly List AdditionalConversions = new List { diff --git a/ValheimPlus/ValheimPlus.csproj.user b/ValheimPlus/ValheimPlus.csproj.user index 48f93869..f31b3ac3 100644 --- a/ValheimPlus/ValheimPlus.csproj.user +++ b/ValheimPlus/ValheimPlus.csproj.user @@ -1,7 +1,7 @@  - ShowAllFiles + ProjectFiles