Exemple #1
0
        public MotionCardWrapper(IMotionCard motion)
        {
            if (motion == null)
            {
                return;
            }

            Name    = (motion as IPrim)?.Name;
            Index   = motion.DevIndex;
            Motion  = motion;
            Trigger = motion;
            Interp  = motion;
        }
Exemple #2
0
        public void Import(string line, StateMachine machine)
        {
            var data = line.Split(' ');
            int i    = 0;
            var id   = int.Parse(data[i++]);

            Name  = data[i++];
            Index = int.Parse(data[i++]);

            var typeName = data[i++];

            //load motioncardwrapper from prims
            var motionPrim = DevPrimsManager.Instance.GetPrimByName(Name);

            if (motionPrim == null)
            {
                throw new Exception($"LOAD MOTION ERROR: {Name} not found in DevPrimsManager");
            }
            if (motionPrim is IMotionCard)
            {
                var m = motionPrim as IMotionCard;
                Motion  = m;
                Trigger = m;
                Interp  = m;
            }
            else if (motionPrim is IP2PMotionCard)
            {
                Motion = motionPrim as IP2PMotionCard;
            }
            else
            {
                throw new Exception($"LOAD MOTION ERROR: {line}");
            }

            if (machine.MotionExs.ContainsKey(id))
            {
                return;
            }
            machine.MotionExs.Add(id, this);
        }