public void AddScrap(int addScrapAmount = 0) { this.queuedAddScrapActions++; if (this.IsMachineLocked) { return; } this.queuedAddScrapActions--; int num = GameProgress.ScrapCount(); int num2 = GameProgress.GetInt("Machine_scrap_amount", 0, GameProgress.Location.Local, null); int num3 = num - num2; int value = Singleton <GameConfigurationManager> .Instance.GetValue <int>(WorkshopMenu.CRAFT_PRICE_CONFIG_KEY, BasePart.PartTier.Common.ToString()); int value2 = Singleton <GameConfigurationManager> .Instance.GetValue <int>(WorkshopMenu.CRAFT_PRICE_CONFIG_KEY, BasePart.PartTier.Rare.ToString()); int value3 = Singleton <GameConfigurationManager> .Instance.GetValue <int>(WorkshopMenu.CRAFT_PRICE_CONFIG_KEY, BasePart.PartTier.Epic.ToString()); int price = AlienCustomizationManager.GetPrice(); bool flag = CustomizationManager.CustomizationCount(BasePart.PartTier.Common, CustomizationManager.PartFlags.Locked | CustomizationManager.PartFlags.Craftable) <= 0; bool flag2 = CustomizationManager.CustomizationCount(BasePart.PartTier.Rare, CustomizationManager.PartFlags.Locked | CustomizationManager.PartFlags.Craftable) <= 0; bool flag3 = CustomizationManager.CustomizationCount(BasePart.PartTier.Epic, CustomizationManager.PartFlags.Locked | CustomizationManager.PartFlags.Craftable) <= 0; bool flag4 = CustomizationManager.CustomizationCount(BasePart.PartTier.Legendary, CustomizationManager.PartFlags.Locked | CustomizationManager.PartFlags.Craftable) <= 0; BasePart.PartTier nextTier = BasePart.PartTier.Regular; int num4 = 0; int num5; if (addScrapAmount > 0) { num4 = addScrapAmount; if (num4 + num2 < value) { num5 = 0; } else if (num4 + num2 < value2) { num5 = 1; } else if (num4 + num2 < value3) { num5 = 2; } else if (this.IsAlienMachine && num4 + num2 < price) { num5 = 2; } else { num5 = 3; } if (!this.IsAlienMachine && num4 + num2 > value3) { num4 = value3 - num2; } else if (this.IsAlienMachine && num4 + num2 > price) { num4 = price - num2; } } else if (!flag && num2 < value) { nextTier = BasePart.PartTier.Common; num4 = value - num2; num5 = 0; } else if (!flag2 && num2 < value2) { nextTier = BasePart.PartTier.Rare; num4 = value2 - num2; num5 = 1; } else if (!flag3 && num2 < value3) { nextTier = BasePart.PartTier.Epic; num4 = value3 - num2; num5 = 2; } else if (this.IsAlienMachine && !flag4 && num2 < price) { nextTier = BasePart.PartTier.Legendary; num4 = price - num2; num5 = 0; } else { num5 = 3; } if (num4 > 0 && num3 > 0) { if (num4 > num3) { this.ShowGetMoreScrapDialog(num4 - num3, nextTier); num4 = num3; } int partTierFromAmount = (int)this.GetPartTierFromAmount(num2); num2 += num4; GameProgress.SetInt("Machine_scrap_amount", num2, GameProgress.Location.Local); EventManager.Send(new CraftingMachineEvent(WorkshopMenu.CraftingMachineAction.AddScrap, GameProgress.GetInt("Machine_scrap_amount", 0, GameProgress.Location.Local, null))); num5 = (int)this.GetPartTierFromAmount(num2); if (num5 >= 0) { this.SetMachineAnimation(this.chainPullAnimationName, false, true, false); this.SetMachineAnimation(this.feedAnimationNames[num5], false, false, true); this.SetMachineAnimation(this.idleAnimationNames[num5], true, true, true); if (num5 != partTierFromAmount) { this.SetMachineIdleSound(num5); } } base.StartCoroutine(this.MoveNuts(this.nutRootUpper, this.nutRootLower, num4, 0.2f)); Singleton <AudioManager> .Instance.Spawn2dOneShotEffect(this.gameData.commonAudioCollection.insertScrap); } else { this.queuedAddScrapActions = 0; this.SetMachineAnimation(this.idleAnimationNames[num5], true, true, true); this.SetMachineIdleSound(num5); if (num4 > 0 && num3 <= 0) { this.ShowGetMoreScrapDialog(num4, nextTier); } } }