public static GetVesselByName ( String name, Vessel origin ) : Vessel | ||
name | String | |
origin | Vessel | |
리턴 | Vessel |
public override void AddTo(SharedObjects shared) { _shared = shared; _shared.BindingMgr.AddSetter("TARGET", delegate(CPU cpu, object val) { if (val is ITargetable) { VesselUtils.SetTarget((ITargetable)val); } else if (val is VesselTarget) { VesselUtils.SetTarget(((VesselTarget)val).target); } else if (val is BodyTarget) { VesselUtils.SetTarget(((BodyTarget)val).target); } else { var body = VesselUtils.GetBodyByName(val.ToString()); if (body != null) { VesselUtils.SetTarget(body); return; } var vessel = VesselUtils.GetVesselByName(val.ToString(), _shared.Vessel); if (vessel != null) { VesselUtils.SetTarget(vessel); return; } } }); _shared.BindingMgr.AddGetter("TARGET", delegate(CPU cpu) { var currentTarget = FlightGlobals.fetch.VesselTarget; if (currentTarget is Vessel) { return(new VesselTarget((Vessel)currentTarget, _shared.Vessel)); } else if (currentTarget is CelestialBody) { return(new BodyTarget((CelestialBody)currentTarget, _shared.Vessel)); } return(null); }); }
private bool TryParseVessel(string text) { Match match = Regex.Match(text, "^VESSEL\\(([ @A-Za-z0-9\"]+)\\)$"); if (match.Success) { var input = ParseSubExpressionAsString(match.Groups[1].Value.Trim()); Value = new VesselTarget(VesselUtils.GetVesselByName(input, executionContext.Vessel), executionContext); // Will throw if not found return(true); } return(false); }
public override void AddTo(BindingManager manager) { manager.AddSetter("TARGET", delegate(CPU cpu, object val) { if (val is ITargetable) { VesselUtils.SetTarget((ITargetable)val); } else if (val is VesselTarget) { VesselUtils.SetTarget(((VesselTarget)val).target); } else { var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel); VesselUtils.SetTarget(vessel); } }); manager.AddGetter("TARGET", delegate(CPU cpu) { return(new VesselTarget((Vessel)FlightGlobals.fetch.VesselTarget, cpu)); }); }
public override void Execute(SharedObjects shared) { string vesselName = shared.Cpu.PopValue().ToString(); VesselTarget result = new VesselTarget(VesselUtils.GetVesselByName(vesselName, shared.Vessel), null); shared.Cpu.PushStack(result); }