public static void Postfix(Pickupable pickupable) { if (newgame && Main.config.Hardcore && !Utils.GetContinueMode() && pickupable.GetTechType() != TechType.FireExtinguisher) { CoroutineHost.StartCoroutine(GiveHardcoreScanner()); newgame = false; SMLHelper.V2.Handlers.IngameMenuHandler.RegisterOnQuitEvent(() => newgame = true); } TechType techType = pickupable.GetTechType(); PDAScanner.EntryData entryData = PDAScanner.GetEntryData(techType); GameObject gameObject = pickupable.gameObject; if (Main.config.ScanOnPickup && Inventory.main.container.Contains(TechType.Scanner) && entryData != null) { if (!PDAScanner.GetPartialEntryByKey(techType, out PDAScanner.Entry entry)) { entry = PDAScanner.Add(techType, 1); } if (entry != null) { PDAScanner.partial.Remove(entry); PDAScanner.complete.Add(entry.techType); PDAScanner.NotifyRemove(entry); PDAScanner.Unlock(entryData, true, true, true); KnownTech.Add(techType, false); if (gameObject != null) { gameObject.SendMessage("OnScanned", null, SendMessageOptions.DontRequireReceiver); } #if SN1 ResourceTracker.UpdateFragments(); #endif } } if (!Main.config.Hardcore && entryData == null) { KnownTech.Add(techType, true); } }