public string GetCombineModel(uint model, uint avaterMotion, uint avaterDirection)
    {
        if (avaterMotion == 0 && avaterDirection == 0)
        {
            return(model.ToString());
        }
        uint        motion    = (uint)avaterMotion;
        uint        direction = (uint)avaterDirection;
        CSDirection d         = (CSDirection)direction;

        if (avaterMotion == (uint)CSMotion.Dead)
        {
            d = CSDirection.Up;
        }
        if (d == CSDirection.Left)
        {
            d = CSDirection.Right;
        }
        else if (d == CSDirection.Left_Up)
        {
            d = CSDirection.Right_Up;
        }
        else if (d == CSDirection.Left_Down)
        {
            d = CSDirection.Right_Down;
        }
        direction = (uint)d;
        CSStringBuilder.Clear();
        CSStringBuilder.Append(model.ToString(), "_", SFMisc.stringMotionDic.ContainsKey((int)motion) ? SFMisc.stringMotionDic[(int)motion] : "", "_", direction.ToString());
        return(CSStringBuilder.ToString());
    }
Beispiel #2
0
    /// <summary>
    /// 添加一个模型的加载数据
    /// 在结束解析的时候,开始加载
    /// </summary>
    /// <param name="model"></param>
    /// <param name="structure"></param>
    /// <param name="motion"></param>
    /// <param name="direction"></param>
    /// <param name="resourceType"></param>
    /// <param name="resourceAssistType"></param>
    protected void Load(uint model, EModelStructure structure, CSMotion motion, CSDirection direction, EResourceType resourceType, EResourceAssistType resourceAssistType)
    {
        //加载的模型不存在
        if (model == 0)
        {
            //如果要加载身体模型不存在,那么要注意清理其他的组件
            if (structure == EModelStructure.Body)
            {
            }
            return;
        }

        long key = GetKey((int)model, (int)motion, (int)direction, (int)structure);
        ModelComponentLoadData data = null;

        if (!ModelComponentLoadedCacheDic.TryGetValue(key, out data))
        {
            data = new T();
            ModelComponentLoadedCacheDic[key] = data;
        }
        data.Model              = model;
        data.Key                = key;
        data.Structure          = structure;
        data.ResourceType       = resourceType;
        data.ResourceAssistType = resourceAssistType;

        WaitLoadComponentKey.Add(data);
    }
    public static long GetKey(int modelID, int motion, int direction)
    {
        CSDirection d = (CSDirection)direction;

        if (motion == (uint)CSMotion.Dead)
        {
            d = CSDirection.Up;
        }
        if (d == CSDirection.Left)
        {
            d = CSDirection.Right;
        }
        else if (d == CSDirection.Left_Up)
        {
            d = CSDirection.Right_Up;
        }
        else if (d == CSDirection.Left_Down)
        {
            d = CSDirection.Right_Down;
        }
        return((long)modelID * 10000 + motion * 100 + (int)d);
    }
Beispiel #4
0
 public void Move(CSDirection direction)
 {
 }
Beispiel #5
0
 /// <summary>
 /// 设置方向
 /// 跟进传入的方向值,进行旋转角度的设置
 /// </summary>
 /// <param name="direction"></param>
 /// <returns></returns>
 public virtual bool SetDirection(CSDirection direction)
 {
     return(true);
 }