public void OnProtoDeserializeObjectTree(ProtobufSerializer serializer) { QuickLogger.Debug("Loading save data"); if (_saveData.LoadData()) { isLoadingSaveData = true; QuickLogger.Debug("Save data found"); RodsContainer.Clear(false); reactorRodData.Clear(); int nonEmptySlots = 0; for (int r = 0; r < _saveData.SlotData.Count; r++) { CyNukeRodSaveData rodData = _saveData.SlotData[r]; TechType techTypeID = rodData.TechTypeID; if (techTypeID != TechType.None) { InventoryItem spanwedItem = SpawnItem(techTypeID); if (spanwedItem != null) { InventoryItem rod = RodsContainer.AddItem(spanwedItem.item); AddNewRod(rodData.RemainingCharge, rod.item); nonEmptySlots++; } } } QuickLogger.Debug($"Added {nonEmptySlots} items from save data"); isLoadingSaveData = false; } }
private void OnFoodCookedAll(TechType oldTechType, List <TechType> cookedTechTypes) { _mono.AudioManager.StopMachineAudio(); foreach (TechType type in cookedTechTypes) { var newFood = GameObject.Instantiate(CraftData.GetPrefabForTechType(type)); #if SUBNAUTICA var item = new InventoryItem(newFood.GetComponent <Pickupable>().Pickup(false)); #elif BELOWZERO Pickupable pickupable = newFood.GetComponent <Pickupable>(); pickupable.Pickup(false); var item = new InventoryItem(pickupable); #endif _exportContainer.UnsafeAdd(item); QuickLogger.Debug($"Food {oldTechType} has been cooked", true); } if (_exportToSeaBreeze) { SendToSeaBreeze(); } _container.Clear(); _lockInputContainer = false; //if (_container.count > 0) //{ // CookStoredFood(); // return; //} _mono.DisplayManager.ToggleProcessDisplay(false); _mono.UpdateIsRunning(false); }