/// <summary>
 /// Called when the part modifier data is initialized in the designer scene.
 /// </summary>
 /// <param name="d">The designer part properties.</param>
 protected override void OnDesignerInitialization(IDesignerPartPropertiesModifierInterface d)
 {
     base.OnDesignerInitialization(d);
     d.OnActivated(() => Symmetry.ExecuteOnSymmetricPartModifiers(this, true, x => x.PropertiesOpen   = true));
     d.OnDeactivated(() => Symmetry.ExecuteOnSymmetricPartModifiers(this, true, x => x.PropertiesOpen = false));
     d.OnPropertyChanged(() => this.emissionAngle, (x, y) => { Symmetry.SynchronizePartModifiers(this.Part.PartScript); Symmetry.ExecuteOnSymmetricPartModifiers(this, true, (z) => z.Script?.SetEmissionAngle(x)); });
     d.OnPropertyChanged(() => this.emissionRate, (x, y) => { Symmetry.SynchronizePartModifiers(this.Part.PartScript); Symmetry.ExecuteOnSymmetricPartModifiers(this, true, (z) => z.Script?.SetEmissionRate(x)); });
     d.OnPropertyChanged(() => this.emissionVelocity, (x, y) => { Symmetry.SynchronizePartModifiers(this.Part.PartScript); Symmetry.ExecuteOnSymmetricPartModifiers(this, true, (z) => z.Script?.SetEmissionVelocity(x)); });
 }
 protected override void OnDesignerInitialization(IDesignerPartPropertiesModifierInterface d)
 {
     d.OnPropertyChanged(() => width, (newVal, OldVal) => Script.UpdateMesh());
     d.OnPropertyChanged(() => depth, (newVal, OldVal) => Script.UpdateMesh());
     d.OnPropertyChanged(() => length, (newVal, OldVal) => Script.UpdateMesh());
     d.OnPropertyChanged(() => curvature, (newVal, OldVal) => Script.UpdateMesh());
     d.OnPropertyChanged(() => distribution, (newVal, OldVal) => Script.UpdateMesh());
     d.OnPropertyChanged(() => twist, (newVal, OldVal) => Script.UpdateMesh());
 }
 /*
  *      public void UpdateScale()
  *      {
  *          base.Script.UpdateScale();
  *      }
  */
 protected override void OnDesignerInitialization(IDesignerPartPropertiesModifierInterface d)
 {
     d.OnValueLabelRequested(() => _length, (float x) => x.ToString("0.00") + "m");
     d.OnValueLabelRequested(() => _force, (float x) => Units.GetForceString(x));
     d.OnValueLabelRequested(() => _acceleration, (float x) => Units.GetAccelerationString(x));
     d.OnValueLabelRequested(() => _velocity, (float x) => Units.GetVelocityString(x));
     d.OnPropertyChanged(() => _length, (x, y) =>
     {
         Symmetry.SynchronizePartModifiers(base.Part.PartScript);
         base.Part.PartScript.CraftScript.RaiseDesignerCraftStructureChangedEvent();
     });
 }
 protected override void OnDesignerInitialization(IDesignerPartPropertiesModifierInterface d)
 {
     d.OnAnyPropertyChanged(() => Updates());
     d.OnValueLabelRequested(() => fuelPercentage, (float x) => GetDesignerFuelLabel());
 }