Beispiel #1
0
    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();
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
 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);
 }