Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
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;
        }
Esempio n. 5
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;
        }