GetVesselByName() 공개 정적인 메소드

public static GetVesselByName ( String name, Vessel origin ) : Vessel
name String
origin Vessel
리턴 Vessel
예제 #1
0
        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);
            });
        }
예제 #2
0
        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);
        }
예제 #3
0
        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)); });
        }
예제 #4
0
파일: Function.cs 프로젝트: erendrake/kRISC
 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);
 }