KAS.KASModuleStrut.OnStart C# (CSharp) Method

OnStart() public method

public OnStart ( StartState state ) : void
state StartState
return void
        public override void OnStart(StartState state)
        {
            base.OnStart(state);
            if (state == StartState.Editor || state == StartState.None) {
              return;
            }
            //Loading texture
            texStrut = GameDatabase.Instance.GetTexture(tubeTexPath, false);
            if (!texStrut) {
              KAS_Shared.DebugError("tube texture loading error !");
              ScreenMessages.PostScreenMessage(
              string.Format(
              "Texture file : {0} has not been found, please check your KAS installation !",
              tubeTexPath),
              10, ScreenMessageStyle.UPPER_CENTER);
            }
            // loading sounds
            KAS_Shared.createFXSound(this.part, fxSndLink, sndLinkPath, false);
            KAS_Shared.createFXSound(this.part, fxSndUnlink, sndUnlinkPath, false);
            KAS_Shared.createFXSound(this.part, fxSndBroke, sndBrokePath, false);

            // loading strut renderer
            strutRenderer = this.part.gameObject.AddComponent<KAS_Tube>();
            strutRenderer.tubeTexTilingOffset = textureTiling;
            strutRenderer.tubeScale = tubeScale;
            strutRenderer.sphereScale = jointScale;
            strutRenderer.tubeTexture = texStrut;
            strutRenderer.sphereTexture = texStrut;
            strutRenderer.tubeJoinedTexture = texStrut;
            strutRenderer.srcNode = strutTransform;

            // loading tube type
            switch (tubeSrcType) {
              case "None":
            strutRenderer.srcJointType = KAS_Tube.tubeJointType.None;
            break;
              case "Rounded":
            strutRenderer.srcJointType = KAS_Tube.tubeJointType.Rounded;
            break;
              case "ShiftedAndRounded":
            strutRenderer.srcJointType = KAS_Tube.tubeJointType.ShiftedAndRounded;
            break;
              case "Joined":
            strutRenderer.srcJointType = KAS_Tube.tubeJointType.Joined;
            break;
              default:
            strutRenderer.srcJointType = KAS_Tube.tubeJointType.Joined;
            break;
            }
            switch (tubeTgtType) {
              case "None":
            strutRenderer.tgtJointType = KAS_Tube.tubeJointType.None;
            break;
              case "Rounded":
            strutRenderer.tgtJointType = KAS_Tube.tubeJointType.Rounded;
            break;
              case "ShiftedAndRounded":
            strutRenderer.tgtJointType = KAS_Tube.tubeJointType.ShiftedAndRounded;
            break;
              case "Joined":
            strutRenderer.tgtJointType = KAS_Tube.tubeJointType.Joined;
            break;
              default:
            strutRenderer.tgtJointType = KAS_Tube.tubeJointType.Joined;
            break;
            }

            // Reset link if docked
            if (attachMode.Docked && !linked) {
              KAS_Shared.DebugLog("OnStart(strut) Docked strut detected from save, relinking...");
              KASModuleStrut linkedStrutModuleSavedD = dockedAttachModule.GetComponent<KASModuleStrut>();
              LinkTo(linkedStrutModuleSavedD, false, true);
            }

            // Loading onVesselWasModified KSP event
            GameEvents.onVesselWasModified.Add(new EventData<Vessel>.OnEvent(this.OnVesselWasModified));
        }