internal static void ExecuteTakeEmbers() { GearItem emberBox = GameManager.GetInventoryComponent().GetBestGearItemWithName("GEAR_EmberBox"); if (emberBox == null) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_ToolRequiredToForceOpen").Replace("{item-name}", Localization.Get("GAMEPLAY_EmberBox")), false); return; } Panel_FeedFire panel = InterfaceManager.m_Panel_FeedFire; Fire fire = Traverse.Create(panel).Field("m_Fire").GetValue <Fire>(); if (fire && !fire.m_IsPerpetual) { fire.ReduceHeatByDegrees(1); } GameManager.GetInventoryComponent().DestroyGear(emberBox.gameObject); GearItem activeEmberBox = GameManager.GetPlayerManagerComponent().InstantiateItemInPlayerInventory("GEAR_ActiveEmberBox"); GearMessage.AddMessage(activeEmberBox, Localization.Get("GAMEPLAY_Harvested"), activeEmberBox.m_DisplayName, false); InterfaceManager.m_Panel_FeedFire.ExitFeedFireInterface(); }
internal static void Refuel(GearItem gearItem) { Panel_Inventory_Examine panel = InterfaceManager.m_Panel_Inventory_Examine; float currentLiters = GetCurrentLiters(panel.m_GearItem); float capacityLiters = GetCapacityLiters(panel.m_GearItem); if (Mathf.Approximately(currentLiters, capacityLiters)) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_AlreadyFilled"), false); return; } float totalCurrent = GetTotalCurrentLiters(panel.m_GearItem); if (totalCurrent < Implementation.MIN_LITERS) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_NoKeroseneavailable"), false); return; } GameAudioManager.PlayGuiConfirm(); InterfaceManager.m_Panel_GenericProgressBar.Launch( Localization.Get("GAMEPLAY_RefuelingProgress"), REFUEL_TIME, 0, 0, REFUEL_AUDIO, null, false, true, new OnExitDelegate(OnRefuelFinished)); }
private static void OnTransfer() { //MelonLoader.MelonLogger.Log("Transfer"); var liquidItem = WaterButtons.currentLiquidItemShowing; if (liquidItem == null) { return; } if (Water.IsEmpty(liquidItem)) // If the selected liquid container is empty. { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_Empty")); GameAudioManager.PlayGUIError(); return; } float spaceAvailable = Water.GetRemainingCapacityEmpty() + Water.GetRemainingCapacity(liquidItem.m_LiquidQuality) - liquidItem.m_LiquidCapacityLiters + liquidItem.m_LiquidLiters; if (Water.IsNone(spaceAvailable)) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_NoCapacityAvailable")); GameAudioManager.PlayGUIError(); return; } float maximumWaterTransfer = Mathf.Min(spaceAvailable, liquidItem.m_LiquidLiters); GameAudioManager.PlayGuiConfirm(); float refillDuration = Mathf.Max(maximumWaterTransfer * 4, 1); InterfaceManager.m_Panel_GenericProgressBar.Launch(Localization.Get("GAMEPLAY_BWM_TransferingProgress"), refillDuration, 0f, 0f, "Play_SndActionRefuelLantern", null, false, true, new System.Action <bool, bool, float>(OnTransferFinished)); }
internal static void FeedFire(Panel_FeedFire __instance) { Fire _fire = __instance.m_Fire; string guid = Utils.GetGuidFromGameObject(_fire.gameObject); GearItem fuel = __instance.GetSelectedFuelSource(); // cool off fire with water if (fuel.name.ToLower().Contains("recycledcan") || fuel.name.ToLower().Contains("cookingpot")) { GearItem gi_wt = GameManager.GetInventoryComponent().GetPotableWaterSupply(); if (gi_wt.m_WaterSupply.m_VolumeInLiters >= 0.25f && _fire.m_HeatSource.m_MaxTempIncrease > Settings.options.waterTempRemoveDeg) { GameAudioManager.StopAllSoundsFromGameObject(InterfaceManager.GetSoundEmitter()); GameAudioManager.PlaySound(gi_wt.m_PickUpAudio, InterfaceManager.GetSoundEmitter()); gi_wt.m_WaterSupply.m_VolumeInLiters -= 0.25f; _fire.ReduceHeatByDegrees(Settings.options.waterTempRemoveDeg); } else if (gi_wt.m_WaterSupply.m_VolumeInLiters < 0.25f) { HUDMessage.AddMessage("Need water in inventory.", false); GameAudioManager.StopAllSoundsFromGameObject(InterfaceManager.GetSoundEmitter()); GameAudioManager.PlayGUIError(); } else { HUDMessage.AddMessage("Temperature is too low.", false); GameAudioManager.StopAllSoundsFromGameObject(InterfaceManager.GetSoundEmitter()); GameAudioManager.PlayGUIError(); } /* we consume can/pot so recreate it * we could hack it to not consume but after some time (minutes) of feed fire dialog, said object is getting corrupted in such way that it's lagging game * on each interaction with said item */ GearItem clone = Utils.InstantiateGearFromPrefabName(fuel.name); clone.m_CurrentHP = fuel.m_CurrentHP; GameManager.GetInventoryComponent().AddGear(clone.gameObject); GameManager.GetInventoryComponent().DestroyGear(fuel.gameObject); } // added fuel while embers else if (_fire.m_EmberTimer > 0f) { ResetEmbersOnRestart(_fire); } // try add fuel to embers unless it wasn't comming out from ember state. else if (fuel.name.ToLower().Contains("wood") || fuel.name.ToLower().Contains("coal")) { if (_fire.GetRemainingLifeTimeSeconds() < 39600 && (_fire.m_EmberDurationSecondsTOD < (Settings.options.embersTime * 3600))) { float fuelmove = fuel.m_FuelSourceItem.m_BurnDurationHours * Settings.options.embersFuelRatio; _fire.m_MaxOnTODSeconds -= fuelmove * 3600; _fire.m_EmberDurationSecondsTOD += (fuelmove * 3600) * Settings.options.embersFuelEx; _fire.m_BurningTimeTODHours -= fuelmove; } } }
private static bool Prefix() { if (PlayerIsCarryingCarcass) { HUDMessage.AddMessage("CANNOT EQUIP ITEM WHILE CARRYING CARCASS", false); GameAudioManager.PlayGUIError(); return(false); } return(true); }
public static bool Prefix(vp_FPSPlayer __instance) { if (__instance.Controller.StateEnabled("Reload") || Time.time < __instance.FPSCamera.CurrentShooter.NextAllowedReloadTime) { GameAudioManager.PlayGUIError(); return(false); } return(true); }
private static bool Prefix(ref bool __result, GearItem gi) { if (gi.IsWornOut()) { GameAudioManager.PlayGUIError(); __result = false; return(false); } return(true); }
static bool Prefix(Panel_FireStart __instance, Campfire ___m_CampFireInstance, FireStarterItem ___m_KeroseneAccelerant, FireManager ___m_FireManager, bool skipResearchItemCheck = false) { var traverseInstance = Traverse.Create(__instance); traverseInstance.Field("m_FireManager").SetValue(GameManager.GetFireManagerComponent()); var selectedFireStarter = traverseInstance.Method("GetSelectedFireStarter").GetValue <FireStarterItem>(); var selectedTinder = traverseInstance.Method("GetSelectedTinder").GetValue <FuelSourceItem>(); var selectedFuelSource = traverseInstance.Method("GetSelectedFuelSource").GetValue <FuelSourceItem>(); var selectedAccelerant = traverseInstance.Method("GetSelectedAccelerant").GetValue <FireStarterItem>(); if (___m_CampFireInstance && ___m_CampFireInstance.TooWindyToStart()) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Itstoowindytostartafirethere"), false); return(false); } if (selectedFireStarter == null || (GameManager.GetSkillFireStarting().TinderRequired() && selectedTinder == null) || selectedFuelSource == null) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Insufficientmaterialstocreatefire"), false); return(false); } if (selectedFireStarter.m_RequiresSunLight && !traverseInstance.Method("HasDirectSunlight").GetValue <bool>()) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Magnifyinglensrequiresdirectsunlight"), false); return(false); } if (!skipResearchItemCheck) { ResearchItem component = selectedFuelSource.GetComponent <ResearchItem>(); if (component != null && !component.IsResearchComplete()) { Panel_Confirmation.CallbackDelegate forceBurnResearchItem = () => traverseInstance.Method("ForceBurnResearchItem").GetValue(); InterfaceManager.m_Panel_Confirmation.ShowBurnResearchNotification(forceBurnResearchItem); return(false); } } if (selectedAccelerant != null && selectedAccelerant == ___m_KeroseneAccelerant) { GameManager.GetPlayerManagerComponent().DeductLiquidFromInventory(GameManager.GetFireManagerComponent().m_KeroseneLitersAccelerant, GearLiquidTypeEnum.Kerosene); } float percentChanceSuccess = TinderHelper.CalculateFireStartSuccess(selectedFireStarter, selectedTinder, selectedFuelSource, selectedAccelerant); ___m_FireManager.PlayerStartFire(___m_CampFireInstance, selectedFireStarter, selectedTinder, selectedFuelSource, selectedAccelerant, percentChanceSuccess); __instance.Enable(false); GameAudioManager.PlayGuiConfirm(); return(false); }
internal static void OnMoveCarcass() { if (HasInjuryPreventingCarry()) { GameAudioManager.PlayGUIError(); AccessTools.Method(typeof(Panel_BodyHarvest), "DisplayErrorMessage", (Type[])null, (Type[])null).Invoke(currentHarvestPanel, new object[1] { "CANNOT MOVE CARCASS WHILE INJURED" }); } else { PickUpCarcass(); } }
private static bool Prefix(Panel_FeedFire __instance, Fire ___m_Fire) { if ((bool)AccessTools.Method(typeof(Panel_FeedFire), "ProgressBarIsActive").Invoke(__instance, null) || !___m_Fire) { GameAudioManager.PlayGUIError(); return(false); } if (!___m_Fire.CanTakeTorch())//then we can't take torch { GameAudioManager.PlayGUIError(); return(false); } GearItem gearItem = GameManager.GetPlayerManagerComponent().InstantiateItemInPlayerInventory("GEAR_Torch"); if (gearItem == null || gearItem.m_TorchItem == null) { return(false); } gearItem.OverrideGearCondition(GearStartCondition.Low); gearItem.m_TorchItem.m_ElapsedBurnMinutes = Mathf.Clamp01(1f - gearItem.m_CurrentHP / gearItem.m_MaxHP) * gearItem.m_TorchItem.GetModifiedBurnLifetimeMinutes(); GameManager.GetPlayerAnimationComponent().MaybeDropAndResetCurrentWeapon(); gearItem.m_TorchItem.Ignite(); GameManager.GetPlayerManagerComponent().EquipItem(gearItem, false); GameManager.GetPlayerManagerComponent().ClearRestoreItemInHandsAfterInteraction(); if (!___m_Fire.m_IsPerpetual) { float torchcost_cs = Fire_RV.torch_cost(___m_Fire); float fire_temp = (float)AccessTools.Field(typeof(Fire), "m_FuelHeatIncrease").GetValue(___m_Fire); float fire_time = ___m_Fire.GetRemainingLifeTimeSeconds(); float remaining_fire_cs = fire_time * fire_temp; float new_fire_cs = (remaining_fire_cs - torchcost_cs); float myfactor = Mathf.Pow(new_fire_cs / remaining_fire_cs, 0.5f); float time_reduction = fire_time - (fire_time * myfactor); float heat_reduction = fire_temp - (fire_temp * myfactor); Debug.Log("new_cs:" + new_fire_cs + " ratio::" + (new_fire_cs / remaining_fire_cs) + " myfactor::" + myfactor + " timered::" + time_reduction + " heat_red:" + heat_reduction); ___m_Fire.ReduceDurationByTODSeconds(time_reduction); ___m_Fire.ReduceHeatByDegrees(heat_reduction); fire_temp = (float)AccessTools.Field(typeof(Fire), "m_FuelHeatIncrease").GetValue(___m_Fire); fire_time = ___m_Fire.GetRemainingLifeTimeSeconds(); Debug.Log("Reducing Fire: Old cs:" + remaining_fire_cs + " New cs:" + fire_temp * fire_time); } __instance.ExitFeedFireInterface(); return(false); }
internal static bool Prefix(Panel_Inventory_Examine __instance) { float hoursResearchRemaining = GetHoursResearchRemaining(__instance); int maximumIntervals = Mathf.CeilToInt(hoursResearchRemaining / Settings.GetReadingIntervalHours()); int intervalsToRead = __instance.m_HoursToRead; if (intervalsToRead >= maximumIntervals) { GameAudioManager.PlayGUIError(); } else { ++__instance.m_HoursToRead; GameAudioManager.PlayGUIScroll(); __instance.RefreshHoursToRead(); } return(false); // Never run the original }
private static void OnFill() { //MelonLoader.MelonLogger.Log("Fill"); var liquidItem = WaterButtons.currentLiquidItemShowing; if (liquidItem == null) { return; } if (liquidItem.m_LiquidLiters >= liquidItem.m_LiquidCapacityLiters) //if the container is already full { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_AlreadyFull")); GameAudioManager.PlayGUIError(); return; } //If an empty container held nonpotable water before, we want to fill it with potable water. if (Water.IsEmpty(liquidItem) && liquidItem.m_LiquidQuality == LiquidQuality.NonPotable) { liquidItem.m_LiquidQuality = LiquidQuality.Potable; } //If the current water supply is empty. if (Water.IsNone(Water.GetActual(liquidItem.m_LiquidQuality))) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_Empty")); GameAudioManager.PlayGUIError(); return; } float maxWaterInBottle = Mathf.Min(Water.GetActual(liquidItem.m_LiquidQuality), liquidItem.m_LiquidCapacityLiters); float maximumWaterRefill = Mathf.Max(maxWaterInBottle - liquidItem.m_LiquidLiters, 0); if (Water.IsNone(maximumWaterRefill)) // If nothing gets transferred. { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_None")); GameAudioManager.PlayGUIError(); return; } GameAudioManager.PlayGuiConfirm(); float refuelDuration = Mathf.Max(maximumWaterRefill * 4, 1); InterfaceManager.m_Panel_GenericProgressBar.Launch(Localization.Get("GAMEPLAY_BWM_FillingProgress"), refuelDuration, 0f, 0f, "Play_SndActionRefuelLantern", null, false, true, new System.Action <bool, bool, float>(OnFillFinished)); }
public override bool ProcessInteraction() { if (IsTooDarkToRepair()) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_RequiresLightToRepair")); GameAudioManager.PlayGUIError(); return(true); } if (IsMissingRequiredTools()) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_ToolRequiredToForceOpen").Replace("{item-name}", Localization.Get("GAMEPLAY_RadialTools"))); GameAudioManager.PlayGUIError(); return(true); } this.StartProgressBar("GAMEPLAY_RepairingProgress", GetRepairAudio(), 5); return(true); }
internal static void Postfix(Panel_PickWater __instance) { if (InputManager.GetEquipPressed(__instance)) { var waterSource = __instance.m_WaterSource; if (!waterSource) { Implementation.LogError("UpdateCapacityInfo: Could not find WaterSource"); return; } if (Water.IsNone(waterSource.m_CurrentLiters)) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_Empty")); GameAudioManager.PlayGUIError(); return; } float waterVolumeToDrink = GameManager.GetPlayerManagerComponent().CalculateWaterVolumeToDrink(waterSource.m_CurrentLiters); if (Water.IsNone(waterVolumeToDrink)) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Youarenotthirsty")); return; } GameAudioManager.PlayGuiConfirm(); WaterSupply waterSupply; if (waterSource.GetQuality() == LiquidQuality.Potable) { waterSupply = __instance.InstantiateWaterSupply(__instance.m_WaterSupply_Potable).m_WaterSupply; } else { waterSupply = __instance.InstantiateWaterSupply(__instance.m_WaterSupply_NonPotable).m_WaterSupply; } waterSupply.m_VolumeInLiters = waterSource.m_CurrentLiters; waterSource.RemoveLiters(waterVolumeToDrink); GameManager.GetPlayerManagerComponent().DrinkFromWaterSupply(waterSupply, waterSupply.m_VolumeInLiters); UnityEngine.Object.Destroy(waterSupply.gameObject); __instance.ExitInterface(); } }
private static bool Prefix(Panel_Inventory_Examine __instance) { if (GameManager.GetWeatherComponent().IsTooDarkForAction(ActionsToBlock.Harvest)) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_RequiresLightToHarvest"), false); GameAudioManager.PlayGUIError(); return(false); } Harvest component = __instance.m_GearItem.GetComponent <Harvest>(); Debug.Log("gear:" + component.m_YieldGear[0].name); if (component.m_YieldGear[0].name == "GEAR_Stick") { __instance.m_HarvestTimeSeconds /= 6.0f; } __instance.StartHarvest(component.m_DurationMinutes, component.m_Audio); if (component.m_YieldGear[0].name == "GEAR_Stick") { __instance.m_HarvestTimeSeconds *= 6.0f; } return(false); }
private static void OnDump() { //MelonLoader.MelonLogger.Log("Dump"); LiquidItem liquidItem = WaterButtons.currentLiquidItemShowing; if (liquidItem == null) { return; } if (liquidItem.m_LiquidLiters <= 0.001f) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_Empty")); GameAudioManager.PlayGUIError(); return; } GameAudioManager.PlayGuiConfirm(); float lostLitersDuration = Mathf.Max(liquidItem.m_LiquidLiters * 4, 1); InterfaceManager.m_Panel_GenericProgressBar.Launch(Localization.Get("GAMEPLAY_BWM_DumpingProgress"), lostLitersDuration, 0f, 0f, "Play_SndActionRefuelLantern", null, false, true, new System.Action <bool, bool, float>(OnDumpFinished)); }
internal static void Drain(GearItem gearItem) { Panel_Inventory_Examine panel = InterfaceManager.m_Panel_Inventory_Examine; float currentLiters = GetCurrentLiters(panel.m_GearItem); if (currentLiters < MIN_LITERS) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_AlreadyEmpty")); GameAudioManager.PlayGUIError(); return; } float totalCapacity = GetTotalCapacityLiters(panel.m_GearItem); float totalCurrent = GetTotalCurrentLiters(panel.m_GearItem); if (Mathf.Approximately(totalCapacity, totalCurrent)) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_NoFuelCapacityAvailable")); GameAudioManager.PlayGUIError(); return; } GameAudioManager.PlayGuiConfirm(); InterfaceManager.m_Panel_GenericProgressBar.Launch( Localization.Get("GAMEPLAY_DrainingProgress"), REFUEL_TIME, 0, 0, REFUEL_AUDIO, null, false, true, new OnExitDelegate(OnDrainFinished)); // HACK: somehow this is needed to revert the button text to "Refuel", which will be active when draining finishes BetterFuelManagementUtils.SetButtonLocalizationKey(panel.m_RefuelPanel.GetComponentInChildren <UIButton>(), "GAMEPLAY_Refuel"); }
internal static bool Prefix(CookingPotItem __instance) { float waterAmount = __instance.m_LitersWaterBeingBoiled; if (Water.IsNone(waterAmount)) //only applies with water { return(true); } float waterVolumeToDrink = GameManager.GetPlayerManagerComponent().CalculateWaterVolumeToDrink(waterAmount); if (Water.IsNone(waterVolumeToDrink)) // Not thirsty. { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Youarenotthirsty")); GameAudioManager.PlayGUIError(); return(false); } bool is_ready = __instance.GetCookingState() == CookingPotItem.CookingState.Ready; bool is_not_ready_and_no_fire = __instance.GetCookingState() == CookingPotItem.CookingState.Cooking && !__instance.AttachedFireIsBurning(); if (is_ready || is_not_ready_and_no_fire) //patch applies if ready or if still cooking but no fire. { DrinkFromPot.cookingPot = __instance; DrinkFromPot.OnDrink(); if (Water.IsNone(__instance.m_LitersWaterBeingBoiled)) { return(true); } else { GameManager.GetPlayerManagerComponent().ExitInspectGearMode(false); return(false); } } return(true); }
private static bool Prefix() { GameAudioManager.PlayGUIError(); return(false); }
internal static void SignalItemBlocked() { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BlockedByItemAbove"), false); }
public static void showErrorMessage(string message) { message?.onScreen(); GameAudioManager.PlayGUIError(); }
private static bool Prefix(Panel_FeedFire __instance, Fire ___m_Fire, GameObject ___m_FireContainer, GearItem ___m_ResearchItemToBurn) { if ((bool)AccessTools.Method(typeof(Panel_FeedFire), "ProgressBarIsActive").Invoke(__instance, null)) { GameAudioManager.PlayGUIError(); return(false); } GearItem selectedFuelSource = (GearItem)AccessTools.Method(typeof(Panel_FeedFire), "GetSelectedFuelSource").Invoke(__instance, null); if (selectedFuelSource == null) { GameAudioManager.PlayGUIError(); return(false); } FuelSourceItem fuelSourceItem = selectedFuelSource.m_FuelSourceItem; if (fuelSourceItem == null) { GameAudioManager.PlayGUIError(); return(false); } if (!___m_FireContainer) { GameAudioManager.PlayGUIError(); return(false); } if (!___m_Fire) { return(false); } if (___m_Fire.FireShouldBlowOutFromWind()) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_TooWindyToAddFuel"), false); GameAudioManager.PlayGUIError(); return(false); } bool flag = true; if ((bool)AccessTools.Method(typeof(Panel_FeedFire), "FireInForge").Invoke(__instance, null) && fuelSourceItem.m_FireAgeMinutesBeforeAdding > 0f) { flag = false; } flag = false; //allow any duration of fire if (flag) { float num = fuelSourceItem.GetModifiedBurnDurationHours(selectedFuelSource.GetNormalizedCondition()) * 60f; float num2 = ___m_Fire.GetRemainingLifeTimeSeconds() / 60f; float num3 = (num + num2) / 60f; if (num3 > GameManager.GetFireManagerComponent().m_MaxDurationHoursOfFire) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_CannotAddMoreFuel"), false); return(false); } } int num4 = Mathf.RoundToInt(fuelSourceItem.m_FireAgeMinutesBeforeAdding - ___m_Fire.GetUnmodifiedMinutesBurning() - 10); if (num4 >= 1) { string text = Localization.Get("GAMEPLAY_BurnTimeNeededForCoal"); text = text.Replace("{minutes}", num4.ToString()); HUDMessage.AddMessage(text, false); GameAudioManager.PlayGUIError(); return(false); } if (selectedFuelSource.m_ResearchItem && !selectedFuelSource.m_ResearchItem.IsResearchComplete()) { ___m_ResearchItemToBurn = selectedFuelSource; InterfaceManager.m_Panel_Confirmation.ShowBurnResearchNotification(() => { AccessTools.Method(typeof(Panel_FeedFire), "ForceBurnResearchItem", null, null).Invoke(__instance, null); }); return(false); } if (selectedFuelSource == GameManager.GetPlayerManagerComponent().m_ItemInHands) { GameManager.GetPlayerManagerComponent().UnequipItemInHandsSkipAnimation(); } if (selectedFuelSource == GameManager.GetPlayerManagerComponent().m_PickupGearItem) { GameManager.GetPlayerManagerComponent().ResetPickup(); } GameAudioManager.PlaySound(__instance.m_FeedFireAudio, InterfaceManager.GetSoundEmitter()); ___m_Fire.AddFuel(selectedFuelSource, (bool)AccessTools.Method(typeof(Panel_FeedFire), "FireInForge").Invoke(__instance, null)); GameManager.GetPlayerManagerComponent().ConsumeUnitFromInventory(fuelSourceItem.gameObject); return(false); }