示例#1
0
 public override bool StopOperate(IOperator oper, EOperationMask mask)
 {
     if (m_Mask == mask)
     {
         UnDo(oper);
     }
     return(true);
 }
示例#2
0
 public override bool StartOperate(IOperator oper, EOperationMask mask)
 {
     if (m_Mask == mask)
     {
         Do(oper);
         return(true);
     }
     return(false);
 }
        public override bool CanOperateMask(EOperationMask mask)
        {
            if (m_Mask == mask)
            {
                return(IsIdle());
            }

            return(false);
        }
        public override bool StartOperate(IOperator oper, EOperationMask mask, PEActionParam para)
        {
            Operation_Single single = GetStartOperate(mask);

            if (single != null)
            {
                return(single.StartOperate(oper, mask, para));
            }
            return(false);
        }
        public override bool StopOperate(IOperator oper, EOperationMask mask)
        {
            Operation_Single single = GetStopOperate(oper, mask);

            if (single != null)
            {
                return(single.StopOperate(oper, mask));
            }
            return(true);
        }
 public Operation_Single GetStartOperate(EOperationMask mask)
 {
     if (Singles != null)
     {
         return(Singles.Find(ret => ret != null && ret.CanOperateMask(mask)));
     }
     else
     {
         return(null);
     }
 }
 Operation_Single GetStopOperate(IOperator oper, EOperationMask mask)
 {
     if (Singles != null)
     {
         return(Singles.Find(ret => ret != null && ret.m_Mask == mask && ret.ContainsOperator(oper)));
     }
     else
     {
         return(null);
     }
 }
示例#8
0
 public override bool CanOperateMask(EOperationMask mask)
 {
     if (base.CanOperateMask(mask))
     {
         float angle = Vector3.Angle(transform.up, Vector3.up);
         if (angle < WhiteCat.PEVCConfig.instance.bedLimitAngle)
         {
             return(true);
         }
     }
     return(false);
 }
        public override bool CanOperateMask(EOperationMask mask)
        {
            if (Singles != null)
            {
                foreach (Operation_Single single in Singles)
                {
                    if (single != null && single.CanOperateMask(mask))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
        public override EOperationMask GetOperateMask()
        {
            EOperationMask tmpMask = EOperationMask.None;

            if (Singles != null)
            {
                foreach (Operation_Single single in Singles)
                {
                    if (single != null)
                    {
                        tmpMask |= single.m_Mask;
                    }
                }
            }

            return(tmpMask);
        }
示例#11
0
 public override bool StopOperate(IOperator oper, EOperationMask mask)
 {
     if (null == oper || oper.Equals(null))
     {
         return(false);
     }
     if (m_Mask == mask && ContainsOperator(oper))
     {
         if (UnDo(oper))
         {
             m_Operator   = null;
             oper.Operate = null;
             return(true);
         }
         return(false);
     }
     return(true);
 }
示例#12
0
 public void Awake()
 {
     m_Mask = GetOperateMask();
 }
示例#13
0
 public override bool CanOperateMask(EOperationMask mask)
 {
     return(base.CanOperateMask(mask));
 }
示例#14
0
 public abstract bool StopOperate(IOperator oper, EOperationMask mask);
示例#15
0
 public abstract bool StartOperate(IOperator oper, EOperationMask mask, PEActionParam para);
示例#16
0
 public abstract bool CanOperateMask(EOperationMask mask);
示例#17
0
 public bool ContainsMask(EOperationMask mask)
 {
     return((m_Mask & mask) != 0);
 }