private static void Postfix(SeaMoth __instance) { if (__instance.GetPilotingMode() && !Player.main.GetPDA().isInUse) { string button2 = LanguageCache.GetButtonFormat("Change Torpedo (<color=#ADF8FFFF>{0}</color>)", GameInput.Button.Deconstruct); string button3 = ""; var toggledSlots = (bool[])Vehicle_quickSlotToggled.GetValue(__instance); for (var i = 0; i < toggledSlots.Length; ++i) { if (toggledSlots[i] && __instance.GetSlotItem(i) != null && __instance.GetSlotItem(i).item.GetTechType() == TechType.SeamothTorpedoModule) { button3 = LanguageCache.GetButtonFormat("\nAccess Torpedo Storage (<color=#ADF8FFFF>{0}</color>)", GameInput.Button.AltTool); break; } } string buttonFormat = LanguageCache.GetButtonFormat("PressToExit", GameInput.Button.Exit); HandReticle.main.SetUseTextRaw(buttonFormat, button2 + button3); } }
internal static void OnUpgradeModuleUse(SeaMoth seaMoth, TechType techType, int slotId) { if (!IsStorageModule(techType)) { return; } var slotItem = seaMoth.GetSlotItem(slotId); var itemsContainer = GetItemsContainerFromIventoryItem(slotItem, techType); PDA pda = Player.main.GetPDA(); Inventory.main.SetUsedStorage(itemsContainer); pda.Open(PDATab.Inventory); }
static bool Prefix(Equipment __instance, string slot, Pickupable pickupable, bool verbose, ref bool __result) { TechType techType = pickupable.GetTechType(); if (techType != TechType.VehicleStorageModule || !slot.StartsWith("SeamothModule")) { return(true); } SeaMoth seamoth = __instance.owner.GetComponent <SeaMoth>(); if (seamoth == null) { return(true); } int slotID = int.Parse(slot.Substring(13)) - 1; if (slotID > 3 && (slotID < Main.config.slotsOffset || slotID > Main.config.slotsOffset + 3)) { return(true); } // HACK: trying to swap one storage to another while drag, silently refusing because of ui problems if (seamoth.GetSlotItem(slotID)?.item.GetTechType() == TechType.VehicleStorageModule) { __result = false; return(false); } __result = !seamoth.storageInputs[slotID % Main.config.slotsOffset].state; //already active if (!__result && verbose) { $"Storage module is already in slot {(slotID < 4? slotID + Main.config.slotsOffset: slotID - Main.config.slotsOffset) + 1}".onScreen(); } return(false); }