public static void Postfix(Panel_Inventory_Examine __instance) { if (BetterFuelManagement.IsFuelItem(__instance.m_GearItem) && BetterFuelManagementUtils.IsSelected(__instance.m_Button_Unload)) { __instance.m_ButtonLegendContainer.UpdateButton("Continue", "GAMEPLAY_Drain", true, 1, true); } }
internal static float GetLitersToRefuel(GearItem gearItem) { float currentLiters = BetterFuelManagement.GetCurrentLiters(gearItem); float capacityLiters = BetterFuelManagement.GetCapacityLiters(gearItem); float totalCurrent = BetterFuelManagement.GetTotalCurrentLiters(gearItem); return(Mathf.Min(capacityLiters - currentLiters, totalCurrent)); }
public static bool Prefix(Panel_Inventory_Examine __instance) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return(true); } BetterFuelManagement.Drain(__instance.m_GearItem); return(false); }
public static bool Prefix(GearItem gi, ref bool __result) { if (BetterFuelManagement.IsFuelItem(gi)) { __result = true; return(false); } return(true); }
public static void Prefix(Panel_Inventory_Examine __instance, bool selected) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return; } if (selected) { BetterFuelManagementUtils.SetButtonLocalizationKey(__instance.m_RefuelPanel.GetComponentInChildren <UIButton>(), "GAMEPLAY_Refuel"); } }
private static void OnRefuelFinished(bool success, bool playerCancel, float progress) { Panel_Inventory_Examine panel = InterfaceManager.m_Panel_Inventory_Examine; if (BetterFuelManagement.IsFuelItem(panel.m_GearItem)) { float litersToTransfer = BetterFuelManagement.GetLitersToRefuel(panel.m_GearItem) * progress; BetterFuelManagement.AddTotalCurrentLiters(-litersToTransfer, panel.m_GearItem); BetterFuelManagement.AddLiters(panel.m_GearItem, litersToTransfer); } panel.RefreshMainWindow(); }
public static bool Prefix(Panel_Inventory_Examine __instance, bool selected) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return(true); } if (selected) { BetterFuelManagementUtils.SetButtonLocalizationKey(__instance.m_RefuelPanel.GetComponentInChildren <UIButton>(), "GAMEPLAY_Drain"); } __instance.m_RefuelPanel.SetActive(selected || BetterFuelManagementUtils.IsSelected(__instance.m_Button_Refuel)); return(false); }
public static bool Prefix(Panel_Inventory_Examine __instance) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return(true); } if (BetterFuelManagementUtils.IsSelected(__instance.m_Button_Unload)) { BetterFuelManagement.Drain(__instance.m_GearItem); } else { BetterFuelManagement.Refuel(__instance.m_GearItem); } return(false); }
public static void Postfix(Panel_Inventory_Examine __instance) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return; } Vector3 position = BetterFuelManagementUtils.GetBottomPosition( __instance.m_Button_Harvest, __instance.m_Button_Refuel, __instance.m_Button_Repair); position.y += __instance.m_ButtonSpacing; __instance.m_Button_Unload.transform.localPosition = position; __instance.m_Button_Unload.gameObject.SetActive(true); float litersToDrain = BetterFuelManagement.GetLitersToDrain(__instance.m_GearItem); __instance.m_Button_Unload.GetComponent <Panel_Inventory_Examine_MenuItem>().SetDisabled(litersToDrain < BetterFuelManagement.MIN_LITERS); }
public static bool Prefix(Panel_Inventory_Examine __instance) { if (!BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { return(true); } __instance.m_RefuelPanel.SetActive(false); __instance.m_Button_Refuel.gameObject.SetActive(true); float currentLiters = BetterFuelManagement.GetCurrentLiters(__instance.m_GearItem); float capacityLiters = BetterFuelManagement.GetCapacityLiters(__instance.m_GearItem); var fuelAvailable = BetterFuelManagement.GetTotalCurrentLiters(__instance.m_GearItem) > BetterFuelManagement.MIN_LITERS; bool canRefuel = !Mathf.Approximately(currentLiters, capacityLiters) && fuelAvailable; __instance.m_Refuel_X.gameObject.SetActive(!canRefuel); __instance.m_Button_Refuel.gameObject.GetComponent <Panel_Inventory_Examine_MenuItem>().SetDisabled(!canRefuel); __instance.m_MouseRefuelButton.SetActive(canRefuel); __instance.m_RequiresFuelMessage.SetActive(false); __instance.m_LanternFuelAmountLabel.text = Utils.GetLiquidQuantityString(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, BetterFuelManagement.GetCurrentLiters(__instance.m_GearItem)) + "/" + Utils.GetLiquidQuantityStringWithUnitsNoOunces(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, BetterFuelManagement.GetCapacityLiters(__instance.m_GearItem)); float totalCurrent = BetterFuelManagement.GetTotalCurrentLiters(__instance.m_GearItem); float totalCapacity = BetterFuelManagement.GetTotalCapacityLiters(__instance.m_GearItem); __instance.m_FuelSupplyAmountLabel.text = Utils.GetLiquidQuantityString(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, totalCurrent) + "/" + Utils.GetLiquidQuantityStringWithUnitsNoOunces(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, totalCapacity); AccessTools.Method(__instance.GetType(), "UpdateCondition")?.Invoke(__instance, null); return(false); }
public static void Prefix(Panel_Inventory_Examine __instance, bool enable) { if (!enable) { return; } if (BetterFuelManagement.IsFuelItem(__instance.m_GearItem)) { // repurpose the "Unload" button to "Drain" BetterFuelManagementUtils.SetButtonLocalizationKey(__instance.m_Button_Unload, "GAMEPLAY_Drain"); BetterFuelManagementUtils.SetButtonSprite(__instance.m_Button_Unload, "ico_lightSource_lantern"); Transform lanternTexture = __instance.m_RefuelPanel.transform.Find("FuelDisplay/Lantern_Texture"); BetterFuelManagementUtils.SetTexture(lanternTexture, Utils.GetInventoryIconTexture(__instance.m_GearItem)); } else { BetterFuelManagementUtils.SetButtonLocalizationKey(__instance.m_Button_Unload, "GAMEPLAY_Unload"); BetterFuelManagementUtils.SetButtonSprite(__instance.m_Button_Unload, "ico_ammo_rifle"); } }