Esempio n. 1
0
    public int InsertAction(int iActionId, ActionFileData data, ActionParam param, List <GameObject> affectedObjects)
    {
        ActionPlayer action = new ActionPlayer(iActionId, data, param, affectedObjects);

        m_lstAction.Add(action);
        return(action.GetInstanceID());
    }
Esempio n. 2
0
    public static bool AddFrameList(ActionFileData fileData, List <ActionFrameData> frameDataList)
    {
        if (frameDataList == null || fileData == null)
        {
            Debug.LogError("frameData or fileData is null");
            return(false);
        }
        if (fileData.FrameDatalist == null)
        {
            fileData.FrameDatalist = new List <ActionFrameData>();
        }
        if (frameDataList.Count <= 0)
        {
            return(false);
        }
        int count = 0;

        foreach (ActionFrameData frameData in frameDataList)
        {
            if (!fileData.FrameDatalist.Contains(frameData))
            {
                fileData.FrameDatalist.Add(frameData);
                count++;
            }
        }
        fileData.FrameDatalist.Sort(SortFrameByTime);
        if (count == 0)
        {
            return(false);
        }
        return(true);
    }
Esempio n. 3
0
    public static void DeleteActionEditFile(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List <ActionFileData>();
        }

        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                filedatalist.DataList.RemoveAt(i);
                break;
            }
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }
Esempio n. 4
0
    public int InsertAction(int iActionId, ActionFileData data, ActionParam param)
    {
        ActionPlayer action = new ActionPlayer(iActionId, data, param, null);

        m_lstAction.Add(action);
        return(action.GetInstanceID());
    }
Esempio n. 5
0
    public static void SaveActionEditFileList(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List <ActionFileData>();
        }

        fileData.TimeStamp = GetTimeStamp();
        bool bIsNeedAddNew = true;

        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                bIsNeedAddNew            = false;
                break;
            }
        }
        if (bIsNeedAddNew)
        {
            filedatalist.DataList.Add(fileData);
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }
Esempio n. 6
0
 public static bool CheckConflcit(ActionFileData item1, ActionFileData item2)
 {
     if (item1.TimeStamp == item2.TimeStamp)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 7
0
    public int PlayAction(int iActionId, ActionParam param)
    {
        ActionFileData data   = ConfigManager.Instance.GetActionFileData(iActionId);
        ActionPlayer   action = new ActionPlayer(iActionId, data, param, null);

        m_lstAction.Add(action);
        MessageDispatcher.Instance.BroadcastMessage(new MessageObject(ClientCustomMessageDefine.C_ACTION_START, param));
        return(action.GetInstanceID());
    }
Esempio n. 8
0
    public int InsertAction(int iActionId, ActionFileData data, ActionParam param, params GameObject[] affectedObjects)
    {
        List <GameObject> affectedOjectList = new List <GameObject>();

        affectedOjectList.AddRange(affectedObjects);
        ActionPlayer action = new ActionPlayer(iActionId, data, param, affectedOjectList);

        m_lstAction.Add(action);
        return(action.GetInstanceID());
    }
Esempio n. 9
0
    public static int SortFileByID(ActionFileData item1, ActionFileData item2)
    {
        if (item1.ID < item2.ID)
        {
            return(-1);
        }
        else if (item1.ID > item2.ID)
        {
            return(1);
        }

        return(0);
    }
Esempio n. 10
0
    private void ClearData()
    {
        OnStop();
        // editor state
        m_bPlay             = false;
        m_bIsCreateNew      = false;
        m_bInitSceneCamera  = false;
        m_fAniTimeLastValue = 0f;
        m_ActionId          = -1;

        // editor data
        m_ObjMap = null;
        if (null != m_ObjMapInstance)
        {
            UnityEngine.Object.Destroy(m_ObjMapInstance);

            // clear terrain
            CloseTerrain();
        }
        m_ObjMapInstance      = null;
        m_DurationInputBuffer = null;
        m_MapIDInputBuffer    = null;

        // action data
        m_fAniTimeValue     = 0f;
        m_CurrentActionName = null;;
        m_CurrentMapName    = "";
        m_FileData          = null;
        m_KeyFrameDataDict  = null;


        //Close Windows
        var subTypeQuery = from t in Assembly.GetExecutingAssembly().GetTypes()
                           where IsSubClassOf(t, typeof(AbstractFrameEdit))
                           select t;

        foreach (var type in subTypeQuery)
        {
            MethodInfo method = type.GetMethod("CloseWindow");
            method.Invoke(null, null);
        }
        m_RuntimeParam.ClearData();
        AERuntimeParamEditorWindow.CloseWindow();
        ActionKeyframeWindow.CloseWindow();
        ActionTimeChangeWindow.CloseWindow();
        ActionListWindow.CloseWindow();
        ConflictSolveWindow.CloseWindow();
    }
Esempio n. 11
0
 public static void DelFrame(ActionFileData fileData, ActionFrameData frameData)
 {
     if (frameData == null || fileData == null)
     {
         Debug.LogError("frameData or fileData is null");
         return;
     }
     if (fileData.FrameDatalist == null)
     {
         Debug.LogError("frameDatalist is null");
         return;
     }
     if (fileData.FrameDatalist.Contains(frameData))
     {
         fileData.FrameDatalist.Remove(frameData);
     }
 }
Esempio n. 12
0
 public static void DelFrame(ActionFileData fileData, int nIndex)
 {
     if (fileData == null)
     {
         Debug.LogError("fileData is null");
         return;
     }
     if (fileData.FrameDatalist == null)
     {
         Debug.LogError("frameDatalist is null");
         return;
     }
     if (nIndex < 0 || nIndex >= fileData.FrameDatalist.Count)
     {
         return;
     }
     fileData.FrameDatalist.RemoveAt(nIndex);
 }
Esempio n. 13
0
    private void OnSave()
    {
        //Action Data
        if (m_FileData == null)
        {
            m_FileData = new ActionFileData();
        }
        m_FileData.ID         = m_CurrentEditiongMapId;
        m_FileData.Duration   = (double)m_fActionDuration;
        m_FileData.MapResName = m_CurrentMapName;
        m_FileData.FileName   = m_CurrentActionName;
        //m_FileData.FrameDatalist = ActionHelper.ConvertActionFrameData(m_KeyFrameData);

        m_FileDataList = ActionHelper.GetActionEditFileList();
        ActionHelper.SaveActionEditFileList(m_FileDataList, m_FileData);
        ActionHelper.CombineActionEditFileList(m_FileDataList);
        EditorUtility.DisplayDialog("保存成功", "保存成功", "确定");
    }
Esempio n. 14
0
    public ActionPlayer(int iActionId, ActionFileData data, ActionParam param, List <GameObject> affectedObjects = null)
    {
        //Check
        if (null == data)
        {
            return;
        }
        m_AffectedObject = affectedObjects;

        //Save Init Info
        SaveInitInfo();
        //Set Data
        m_ActionId       = iActionId;
        m_ActionFileData = data;
        m_nInstanceID    = AllocInstanceId();
        m_ActionParam    = param;
        if (affectedObjects != null && affectedObjects.Count > 0)
        {
            //Add Target
            foreach (GameObject obj in affectedObjects)
            {
                if (obj == null)
                {
                    Debuger.LogWarning("None(GameObject) in TargetObjectList");
                    continue;
                }
                CharTransformContainer objContainer = obj.GetComponent <CharTransformContainer>();
                if (objContainer == null)
                {
                    Debuger.LogWarning("Instance Container Not Found in " + obj.name);
                    continue;
                }
                else
                {
                    AddAffectedObject(obj, objContainer);
                }
                //disable rigidbody
                SetPhysicStatus(obj, false);
            }
        }
        Reset();
    }
Esempio n. 15
0
 public static bool AddFrame(ActionFileData fileData, ActionFrameData frameData)
 {
     if (frameData == null || fileData == null)
     {
         Debug.LogError("frameData or fileData is null");
         return(false);
     }
     if (fileData.FrameDatalist == null)
     {
         fileData.FrameDatalist = new List <ActionFrameData>();
     }
     if (fileData.FrameDatalist.Contains(frameData))
     {
         fileData.FrameDatalist.Sort(SortFrameByTime);
         return(false);
     }
     fileData.FrameDatalist.Add(frameData);
     fileData.FrameDatalist.Sort(SortFrameByTime);
     return(true);
 }
Esempio n. 16
0
    public void OpenAction(ActionFileData data)
    {
        ClearData();

        //Action Data
        m_CurrentEditiongMapId = data.ID;
        m_fActionDuration      = (float)data.Duration;
        m_CurrentMapName       = data.MapResName;
        m_CurrentActionName    = data.FileName;
        m_KeyFrameDataDict     = ActionHelper.ConvertKeyFrameData(data.FrameDatalist);
        m_FileData             = data;

        //Editor Data
        m_bIsCreateNew        = true;
        m_DurationInputBuffer = m_fActionDuration.ToString();
        m_MapIDInputBuffer    = m_CurrentEditiongMapId.ToString();
        m_ObjMap = ActionHelper.GetSceneMap(data.MapResName);

        Repaint();
    }
Esempio n. 17
0
    public ActionFileData GetActionFileData(int id)
    {
        ActionFileDataArray config = TryGetConfig <ActionFileDataArray>(ConfigPath_ActionConfig);

        if (config == null || config.DataList == null)
        {
            Debuger.LogWarning("can't find Action File DataArray");
        }
        ActionFileData res = null;

        foreach (ActionFileData data in config.DataList)
        {
            if (data.ID == id)
            {
                res = data;
            }
        }
        if (res == null)
        {
            Debuger.LogWarning("can't find Action File");
        }
        return(res);
    }
Esempio n. 18
0
    private void Copy(ActionFileData data)
    {
        int max = 0;

        for (int i = 0; i < m_DataList.DataList.Count; ++i)
        {
            if (m_DataList.DataList[i].ID > max)
            {
                max = m_DataList.DataList[i].ID;
            }
        }
        ++max;
        ActionFileData elem = new ActionFileData();

        elem.ID            = max;
        elem.FileName      = data.FileName;
        elem.MapResName    = data.MapResName;
        elem.Duration      = data.Duration;
        elem.FrameDatalist = data.FrameDatalist;
        m_DataList         = ActionHelper.GetActionEditFileList();
        ActionHelper.SaveActionEditFileList(m_DataList, elem);
        ActionHelper.CombineActionEditFileList(m_DataList);
        Repaint();
    }
Esempio n. 19
0
 private void ChoiseMap(ActionFileData data)
 {
     m_Instance.Close();
     m_Instance = null;
     ActionEditorWindow.Instance.OpenAction(data);
 }
Esempio n. 20
0
 private void Delete(ActionFileData data)
 {
     ActionHelper.DeleteActionEditFile(m_DataList, data);
     Repaint();
 }