internal static void Configure(GameObject prefab) { ModHarvestableComponent modHarvestableComponent = ComponentUtils.GetComponent <ModHarvestableComponent>(prefab); if (modHarvestableComponent is null) { return; } Harvest harvest = ComponentUtils.GetOrCreateComponent <Harvest>(modHarvestableComponent); harvest.m_Audio = modHarvestableComponent.Audio; harvest.m_DurationMinutes = modHarvestableComponent.Minutes; if (modHarvestableComponent.YieldNames.Length != modHarvestableComponent.YieldCounts.Length) { throw new ArgumentException("YieldNames and YieldCounts do not have the same length on gear item '" + modHarvestableComponent.name + "'."); } harvest.m_YieldGear = ModUtils.GetItems <GearItem>(modHarvestableComponent.YieldNames, modHarvestableComponent.name); harvest.m_YieldGearUnits = modHarvestableComponent.YieldCounts; harvest.m_AppliedSkillType = SkillType.None; harvest.m_RequiredTools = ModUtils.GetItems <ToolsItem>(modHarvestableComponent.RequiredToolNames, modHarvestableComponent.name); harvest.m_GunpowderYield = 0f; }
internal static void Configure(GameObject prefab) { ModMillableComponent modMillable = ComponentUtils.GetComponent <ModMillableComponent>(prefab); if (modMillable is null) { return; } Millable millable = ComponentUtils.GetOrCreateComponent <Millable>(modMillable); millable.m_CanRestoreFromWornOut = modMillable.CanRestoreFromWornOut; millable.m_RecoveryDurationMinutes = modMillable.RecoveryDurationMinutes; millable.m_RepairDurationMinutes = modMillable.RepairDurationMinutes; millable.m_Skill = EnumUtils.TranslateEnumValue <SkillType, ModComponentAPI.SkillType>(modMillable.skill); if (modMillable.RepairRequiredGear.Length != modMillable.RepairRequiredGearUnits.Length) { throw new ArgumentException("RepairRequiredGear and RepairRequiredGearUnits do not have the same length on gear item '" + modMillable.name + "'."); } millable.m_RepairRequiredGear = ModUtils.GetItems <GearItem>(modMillable.RepairRequiredGear, modMillable.name); millable.m_RepairRequiredGearUnits = modMillable.RepairRequiredGearUnits; if (modMillable.RestoreRequiredGear.Length != modMillable.RestoreRequiredGearUnits.Length) { throw new ArgumentException("RestoreRequiredGear and RestoreRequiredGearUnits do not have the same length on gear item '" + modMillable.name + "'."); } millable.m_RestoreRequiredGear = ModUtils.GetItems <GearItem>(modMillable.RestoreRequiredGear, modMillable.name); millable.m_RestoreRequiredGearUnits = modMillable.RestoreRequiredGearUnits; }
internal static void Configure(ModComponent modComponent) { ModRepairableComponent modRepairableComponent = modComponent.GetComponent <ModRepairableComponent>(); if (modRepairableComponent == null) { return; } Repairable repairable = ModUtils.GetOrCreateComponent <Repairable>(modRepairableComponent); repairable.m_RepairAudio = modRepairableComponent.Audio; repairable.m_DurationMinutes = modRepairableComponent.Minutes; repairable.m_ConditionIncrease = modRepairableComponent.Condition; if (modRepairableComponent.MaterialNames.Length != modRepairableComponent.MaterialCounts.Length) { throw new ArgumentException("MaterialNames and MaterialCounts do not have the same length on gear item '" + modRepairableComponent.name + "'."); } repairable.m_RequiredGear = ModUtils.GetItems <GearItem>(modRepairableComponent.MaterialNames, modRepairableComponent.name); repairable.m_RequiredGearUnits = modRepairableComponent.MaterialCounts; repairable.m_RepairToolChoices = ModUtils.GetItems <ToolsItem>(modRepairableComponent.RequiredTools, modRepairableComponent.name); repairable.m_RequiresToolToRepair = repairable.m_RepairToolChoices.Length > 0; }
public static void Configure(GameObject prefab) { ModSharpenableComponent modSharpenableComponent = ComponentUtils.GetComponent <ModSharpenableComponent>(prefab); if (modSharpenableComponent is null) { return; } Sharpenable sharpenable = ComponentUtils.GetOrCreateComponent <Sharpenable>(modSharpenableComponent); sharpenable.m_ConditionIncreaseMax = modSharpenableComponent.ConditionMax; sharpenable.m_ConditionIncreaseMin = modSharpenableComponent.ConditionMin; sharpenable.m_DurationMinutesMax = modSharpenableComponent.MinutesMax; sharpenable.m_DurationMinutesMin = modSharpenableComponent.MinutesMin; sharpenable.m_SharpenToolChoices = ModUtils.GetItems <ToolsItem>(modSharpenableComponent.Tools, prefab.name + ": Tools"); sharpenable.m_RequiresToolToSharpen = sharpenable.m_SharpenToolChoices.Count() > 0; }
internal static void Configure(ModComponent modComponent) { ModHarvestableComponent modHarvestableComponent = ModUtils.GetComponent <ModHarvestableComponent>(modComponent); if (modHarvestableComponent == null) { return; } Harvest harvest = ModUtils.GetOrCreateComponent <Harvest>(modHarvestableComponent); harvest.m_Audio = modHarvestableComponent.Audio; harvest.m_DurationMinutes = modHarvestableComponent.Minutes; if (modHarvestableComponent.YieldNames.Length != modHarvestableComponent.YieldCounts.Length) { throw new ArgumentException("YieldNames and YieldCounts do not have the same length on gear item '" + modHarvestableComponent.name + "'."); } harvest.m_YieldGear = ModUtils.GetItems <GearItem>(modHarvestableComponent.YieldNames, modHarvestableComponent.name); harvest.m_YieldGearUnits = modHarvestableComponent.YieldCounts; }