Пример #1
0
        protected override void on_rescale(ModulePair <ModuleResourceHarvester> mp, Scale scale)
        {
            mp.module.Efficiency = mp.base_module.Efficiency * scale;
            var def_ratios = mp.base_module.inputList.ToDictionary(r => r.ResourceName);

            mp.module.inputList.ForEach(r => r.Ratio = def_ratios[r.ResourceName].Ratio * scale);
        }
Пример #2
0
 protected override void on_rescale(ModulePair <OrbitalAccelerator> mp, Scale scale)
 {
     mp.module.SegmentMass        = mp.base_module.SegmentMass * scale.absolute.volume;
     mp.module.ScaffoldDeployTime = mp.base_module.ScaffoldDeployTime * scale.absolute.volume;
     mp.module.UpdateParams();
     mp.module.UpdateSegmentCost();
 }
Пример #3
0
        protected override void on_rescale(ModulePair <ModuleGenerator> mp, Scale scale)
        {
            var input_resources  = mp.base_module.resHandler.inputResources.ToDictionary(r => r.name);
            var output_resources = mp.base_module.resHandler.inputResources.ToDictionary(r => r.name);

            mp.module.resHandler.inputResources.ForEach(r => r.rate = input_resources[r.name].rate * scale.absolute.volume);
            mp.module.resHandler.inputResources.ForEach(r => r.rate = output_resources[r.name].rate * scale.absolute.volume);
        }
Пример #4
0
 protected override void on_rescale(ModulePair <HangarPassage> mp, Scale scale)
 {
     mp.module.Setup(!scale.FirstTime);
     foreach (var key in new List <string>(mp.module.Nodes.Keys))
     {
         mp.module.Nodes[key].Size = Vector3.Scale(mp.base_module.Nodes[key].Size,
                                                   new Vector3(scale, scale, 1));
     }
 }
Пример #5
0
        protected override void on_rescale(ModulePair <ModuleReactionWheel> mp, Scale scale)
        {
            mp.module.PitchTorque = mp.base_module.PitchTorque * scale.absolute.quad * scale.absolute.aspect;
            mp.module.YawTorque   = mp.base_module.YawTorque * scale.absolute.quad * scale.absolute.aspect;
            mp.module.RollTorque  = mp.base_module.RollTorque * scale.absolute.quad * scale.absolute.aspect;
            var input_resources = mp.base_module.resHandler.inputResources.ToDictionary(r => r.name);

            mp.module.resHandler.inputResources.ForEach(r => r.rate = input_resources[r.name].rate * scale.absolute.quad * scale.absolute.aspect);
        }
Пример #6
0
        protected override void on_rescale(ModulePair <SingleUseGrappleNode> mp, Scale scale)
        {
            var linear = scale.absolute * scale.absolute.aspect;

            mp.module.GrappleEnergyConsumption = mp.base_module.GrappleEnergyConsumption * linear;
            mp.module.GrappleForce             = mp.base_module.GrappleForce * linear;
            mp.module.GrappleRange             = mp.base_module.GrappleRange * linear;
            mp.module.DockRange = mp.base_module.DockRange * linear;
        }
Пример #7
0
 protected override void on_rescale(ModulePair <HangarGenericInflatable> mp, Scale scale)
 {
     mp.module.InflatableVolume = mp.base_module.InflatableVolume * scale.absolute.volume;
     mp.module.CompressedGas   *= scale.relative.volume;
     if (mp.module.Compressor.Valid)
     {
         mp.module.Compressor.ConsumptionRate = mp.base_module.Compressor.ConsumptionRate * scale.absolute.volume;
     }
 }
Пример #8
0
 protected override void on_rescale(ModulePair <MultiGeometryAnimator> mp, Scale scale)
 {
     mp.module.EnergyConsumption = mp.base_module.EnergyConsumption * scale.absolute.quad * scale.absolute.aspect;
     if (mp.module.CoMCurve != null)
     {
         mp.module.CoMCurve.Scale(scale.ScaleVectorRelative(Vector3d.one));
         mp.module.UpdateCoMOffset();
     }
 }
Пример #9
0
 protected override void on_rescale(ModulePair <HangarFairings> mp, Scale scale)
 {
     mp.module.JettisonForce = mp.base_module.JettisonForce * scale.absolute.volume;
     mp.module.FairingsCost  = mp.base_module.FairingsCost * scale.absolute.volume;
     mp.module.UpdateBaseCoMOffset(scale.ScaleVector(mp.base_module.BaseCoMOffset));
     if (HighLogic.LoadedSceneIsEditor)
     {
         mp.module.ResetPayloadResources();
     }
 }
Пример #10
0
        protected override void on_rescale(ModulePair <ModuleDockingNode> mp, Scale scale)
        {
            AttachNode node = part.FindAttachNode(mp.module.referenceAttachNode);

            if (node == null)
            {
                return;
            }
            if (mp.module.nodeType.StartsWith("size"))
            {
                mp.module.nodeType = string.Format("size{0}", node.size);
            }
        }
Пример #11
0
 protected override void on_rescale(ModulePair <ModuleJettison> mp, Scale scale)
 {
     mp.module.jettisonedObjectMass = mp.base_module.jettisonedObjectMass * scale.absolute.volume;
     mp.module.jettisonForce        = mp.base_module.jettisonForce * scale.absolute.volume;
     if (mp.module.jettisonTransform != null)
     {
         var p = mp.module.jettisonTransform.parent.gameObject.GetComponent <Part>();
         if (p == null || p == mp.module.part)
         {
             return;
         }
         object orig_scale;
         if (!mp.orig_data.TryGetValue("local_scale", out orig_scale) ||
             !(orig_scale is Vector3))
         {
             return;
         }
         mp.module.jettisonTransform.localScale = scale.ScaleVector((Vector3)orig_scale);
     }
 }
 protected override void on_rescale(ModulePair <ModuleTankManager> mp, Scale scale)
 {
     mp.module.Rescale(scale.relative.volume);
 }
Пример #13
0
 protected override void on_rescale(ModulePair <ModuleControlSurface> mp, Scale scale)
 {
     mp.module.ctrlSurfaceArea = mp.base_module.ctrlSurfaceArea * scale.absolute.quad;
 }
Пример #14
0
 protected override void on_rescale(ModulePair <ModuleResourceIntake> mp, Scale scale)
 {
     mp.module.area = mp.base_module.area * scale.absolute.quad;
 }
Пример #15
0
 protected override void on_rescale(ModulePair <ModuleDecouple> mp, Scale scale)
 {
     mp.module.ejectionForce = mp.base_module.ejectionForce * scale.absolute.cube;
 }
Пример #16
0
 protected override void on_rescale(ModulePair <ModuleEngines> mp, Scale scale)
 {
     mp.module.minThrust = mp.base_module.minThrust * scale.absolute.quad;
     mp.module.maxThrust = mp.base_module.maxThrust * scale.absolute.quad;
     //            mp.module.heatProduction = mp.base_module.heatProduction * scale.absolute;
 }
Пример #17
0
 protected override void on_rescale(ModulePair <ModuleResourceConverter> mp, Scale scale)
 {
     scale_res_list(mp.module.Recipe.Inputs, mp.base_module.Recipe.Inputs, scale);
     scale_res_list(mp.module.Recipe.Outputs, mp.base_module.Recipe.Outputs, scale);
     scale_res_list(mp.module.Recipe.Requirements, mp.base_module.Recipe.Requirements, scale);
 }
Пример #18
0
 protected override void on_rescale(ModulePair <ModuleDeployableSolarPanel> mp, Scale scale)
 {
     mp.module.chargeRate = mp.base_module.chargeRate * scale.absolute.quad * scale.absolute.aspect;
     mp.module.flowRate   = mp.base_module.flowRate * scale.absolute.quad * scale.absolute.aspect;
 }
Пример #19
0
 protected override void on_rescale(ModulePair <ModuleAsteroidDrill> mp, Scale scale)
 {
     mp.module.PowerConsumption = mp.base_module.PowerConsumption * scale;
     mp.module.Efficiency       = mp.base_module.Efficiency * scale;
 }
Пример #20
0
 protected override void on_rescale(ModulePair <MultiAnimator> mp, Scale scale)
 {
     mp.module.EnergyConsumption = mp.base_module.EnergyConsumption * scale.absolute.quad * scale.absolute.aspect;
 }
Пример #21
0
 protected override void on_rescale(ModulePair <MultiLights> mp, Scale scale)
 {
     mp.module.RangeMultiplier = mp.base_module.RangeMultiplier * scale;
     mp.module.UpdateLights();
 }
Пример #22
0
 protected override void on_rescale(ModulePair <ModuleSwitchableTank> mp, Scale scale)
 {
     mp.module.SetVolume(mp.module.Volume * scale.relative.volume);
 }
 protected override void on_rescale(ModulePair <AnimatedConverterBase> mp, Scale scale)
 {
     mp.module.SetRatesMultiplier(mp.base_module.RatesMultiplier * scale.absolute.volume);
 }
Пример #24
0
 protected override void on_rescale(ModulePair <ModuleRCS> mp, Scale scale)
 {
     mp.module.thrusterPower = mp.base_module.thrusterPower * scale.absolute.quad;
 }
 protected abstract void on_rescale(ModulePair <T> mp, Scale scale);