private void CreatePartsFromBuild(Double3 launchPadPosition) { Build.BuildSave buildSave = JsonUtility.FromJson <Build.BuildSave>(Ref.LoadJsonString(Saving.SaveKey.ToLaunch)); PartGrid.PositionForLaunch(buildSave.parts, this.partDatabase, buildSave.rotation); List <Part> list = CreateRocket.CreateBuildParts((launchPadPosition - Ref.positionOffset).toVector3, buildSave, this.partDatabase); List <Part> list2 = new List <Part>(); for (int i = 0; i < list.Count; i++) { if (list[i].GetComponent <ControlModule>() != null) { list2.Add(list[i]); } } list2.AddRange(list); List <Vessel> list3 = this.CreateVesselsFromParts(list2, Vector2.zero, 0f, new Vessel.Throttle(false, 0.65f), new List <string>()); Ref.mainVessel = null; Ref.mainVessel = list3[0]; Ref.map.SelectVessel(list3[0], false); for (int j = 0; j < list.Count; j++) { list[j].UpdateConnected(); } Ref.map.UpdateVesselsMapIcons(); this.UpdateVesselButtons(); this.RepositionFuelIcons(); }
public void SideSeparator() { Part part = CreateRocket.CreatePart(this.leftHalfPrefab, this.part.orientation, this.part.transform.parent, this.part.transform.localPosition); Part part2 = CreateRocket.CreatePart(this.rightHalfPrefab, this.part.orientation, this.part.transform.parent, this.part.transform.localPosition); this.TransferJoints(0, part, 0); this.TransferJoints(1, part2, 0); this.part.vessel.partsManager.parts.Add(part); this.part.vessel.partsManager.parts.Add(part2); this.part.vessel.partsManager.UpdatePartsGruping(true, this.part.vessel); part.UsePart(); part2.UsePart(); this.part.DestroyPart(false, true); }
public void SplitFairing(ref List <Part> partsToPush) { if (this.fairingHalfPrefab != null) { Part part = CreateRocket.CreatePart(this.fairingHalfPrefab, this.part.orientation, this.part.transform.parent, this.part.transform.localPosition); Part part2 = CreateRocket.CreatePart(this.fairingHalfPrefab, new Orientation(-this.part.orientation.x, this.part.orientation.y, this.part.orientation.z), this.part.transform.parent, this.part.transform.localPosition); part2.transform.GetChild(1).gameObject.SetActive(false); part2.transform.GetChild(2).gameObject.SetActive(true); for (int i = 0; i < this.leftJoints.Length; i++) { SeparatorModule.TransferJoints(this.part, this.leftJoints[i], part, 0); } for (int j = 0; j < this.rightJoints.Length; j++) { SeparatorModule.TransferJoints(this.part, this.rightJoints[j], part2, 0); } this.part.vessel.partsManager.parts.Add(part); this.part.vessel.partsManager.parts.Add(part2); partsToPush.Add(part); partsToPush.Add(part2); } this.part.DestroyPart(false, true); }