Пример #1
0
        public ReliabilityInfo(ProtoPartSnapshot p, ProtoPartModuleSnapshot m, Reliability module_prefab)
        {
            title            = Lib.BuildString(p.partInfo.title, Lib.Color(" " + module_prefab.title, Lib.Kolor.LightGrey));
            group            = module_prefab.redundancy;
            broken           = Lib.Proto.GetBool(m, "broken", false);
            critical         = Lib.Proto.GetBool(m, "critical", false);
            partId           = 0;
            need_maintenance = Lib.Proto.GetBool(m, "need_maintenance", false);

            bool quality = Lib.Proto.GetBool(m, "quality", false);

            if (module_prefab.rated_operation_duration > 0)
            {
                var operation_duration = Lib.Proto.GetDouble(m, "operation_duration", 0);
                rel_duration = operation_duration / Reliability.EffectiveDuration(quality, module_prefab.rated_operation_duration);
                rel_duration = Lib.Clamp(rel_duration, 0, 1);
            }

            if (module_prefab.rated_ignitions > 0)
            {
                var ignitions = Lib.Proto.GetInt(m, "ignitions", 0);
                rel_ignitions = (double)ignitions / Reliability.EffectiveDuration(quality, module_prefab.rated_ignitions);
                rel_ignitions = Lib.Clamp(rel_ignitions, 0, 1);
            }

            mtbf = Reliability.EffectiveMTBF(quality, module_prefab.mtbf);

            if (mtbf > 0)
            {
                var last_inspection = Lib.Proto.GetDouble(m, "last_inspection", 0);
                maintenance_after = last_inspection + mtbf * 0.5;
            }
        }
Пример #2
0
        public ReliabilityInfo(Reliability module)
        {
            title            = Lib.BuildString(module.part.partInfo.title, Lib.Color(" " + module.title, Lib.Kolor.LightGrey));
            group            = module.redundancy;
            broken           = module.broken;
            critical         = module.critical;
            partId           = module.part.flightID;
            need_maintenance = module.needMaintenance;
            mtbf             = Reliability.EffectiveMTBF(module.quality, module.mtbf);

            if (module.rated_operation_duration > 0)
            {
                rel_duration = module.operation_duration / Reliability.EffectiveDuration(module.quality, module.rated_operation_duration);
                rel_duration = Lib.Clamp(rel_duration, 0, 1);
            }

            if (module.rated_ignitions > 0)
            {
                rel_ignitions = (double)module.ignitions / Reliability.EffectiveIgnitions(module.quality, module.rated_ignitions);
                rel_ignitions = Lib.Clamp(rel_ignitions, 0, 1);
            }

            if (mtbf > 0)
            {
                maintenance_after = module.last_inspection + mtbf * 0.5;
            }
        }