示例#1
0
 void Start()
 {
     debounceDispatcher = new DebounceDispatcher(1000);
     TypeEventSystem.Register <FileDragIn>((fileDragIn) =>
     {
         var path = fileDragIn.Path;
         System.IO.FileInfo file = new System.IO.FileInfo(path);
         if (file.Extension == ".csb")
         {
             Paths = GetPaths();
         }
         else if (file.Extension == ".png")
         {
             RefreshItems();
         }
     });
     TypeEventSystem.Register <DeleteItem>((t) =>
     {
         if (t.Extension == ".csb")
         {
             Paths = GetPaths();
             RefreshItems();
         }
     });
 }
示例#2
0
        public void TypeEventSystem_UnRegisterTest()
        {
            var receivedCount = 0;

            Action <string> onReceive = (msg) => { receivedCount++; };

            TypeEventSystem.Register(onReceive);
            TypeEventSystem.Register(onReceive);
            TypeEventSystem.Register(onReceive);
            TypeEventSystem.Register(onReceive);
            TypeEventSystem.Register(onReceive);

            TypeEventSystem.UnRegister(onReceive);
            TypeEventSystem.UnRegister(onReceive);
            TypeEventSystem.UnRegister(onReceive);


            TypeEventSystem.Send("Hello");

            Assert.AreEqual(receivedCount, 2);

            // 为了避免影响其他的单元测试,所以要注销一下
            TypeEventSystem.UnRegister(onReceive);
            TypeEventSystem.UnRegister(onReceive);
        }
示例#3
0
    private void Start()
    {
        if (AttackBtn)
        {
            AttackBtn.PointerDownEvent += (s, e) => Attack();
        }

        // FluentText 初始化
        FluentText.InitPanel(transform, FluentText.transform.position - transform.position);
        FluentText.ShowPanel();
        FluentText.ChangeWord(FluentText.CurrentText);

        // 注册驱逐通知
        TypeEventSystem.Register <MissionExpelledNotification>(OnExpelOne);

        // ResLoader Allocate
        resLoader = ResLoader.Allocate();

        // 获取攻击动画时长
        //if (Animator) {
        //    AnimationClip[] clips = Animator.runtimeAnimatorController.animationClips;
        //    foreach (AnimationClip clip in clips) {
        //        if (clip.name == "Attack") {
        //            attackDuration = clip.length;
        //            break;
        //        }
        //    }
        //}
    }
示例#4
0
 public void Register <T> (Action <T> onReceive)
 {
     TypeEventSystem.Register <T>(onReceive);
     mUnRegisterEventActions.Add(() =>
     {
         TypeEventSystem.UnRegister <T>(onReceive);
     });
 }
示例#5
0
        public PackageLoginApp()
        {
            mContainer = new QFrameworkContainer();

            mContainer.RegisterInstance(new PackageLoginModel());
            mContainer.RegisterInstance <IPackageLoginService>(new PacakgeLoginService());
            TypeEventSystem.Register <IPackageLoginCommand>(OnCommandExecute);
        }
示例#6
0
        public void TypeEventSystem_RegisterTest()
        {
            var receivedMsg = string.Empty;

            Action <string> onReceive = (msg) => { receivedMsg = msg; };

            TypeEventSystem.Register(onReceive);

            TypeEventSystem.Send("Hello");

            Assert.AreEqual(receivedMsg, "Hello");

            // 为了避免影响其他的单元测试,所以要注销一下
            TypeEventSystem.UnRegister(onReceive);
        }
        private void Start()
        {
            TypeEventSystem.Register <GameStartEvent>(OnGameStartEvent);
            TypeEventSystem.Register <GameOverEvent>(OnGameOverEvent);
            TypeEventSystem.Register <ISkillEvent>(OnSkillEvent);


            TypeEventSystem.Send <GameStartEvent>();
            TypeEventSystem.Send(new GameOverEvent()
            {
                Score = 100
            });

            // 要把事件发送给父类
            TypeEventSystem.Send <ISkillEvent>(new PlayerSkillAEvent());
            TypeEventSystem.Send <ISkillEvent>(new PlayerSkillBEvent());
        }
示例#8
0
    private List <int> missionCompletedRecord;     // 事件完成的记录


    private void Awake()
    {
        // 注册 IOC
        App.Container.RegisterInstance <LevelManager>(this);
        // 注册聚会通知的提醒
        TypeEventSystem.Register <PartyNotification>(OnPartyNotify);
        // 注册活动成功/失败的通知提醒
        TypeEventSystem.Register <MissionCompletedNotification>(OnMissionCompleteNotify);
        TypeEventSystem.Register <MissionExpelledNotification>(OnMissionExpelledNotify);

        ResMgr.Init();
        resLoader = ResLoader.Allocate();

        InitTargetPositions();
        InitEvent2Pos();
        InitPartyPos2Human();
        InitPartyTipTexts();
        InitRecordList();
    }
示例#9
0
        public PackageManagerApp()
        {
            // 注册好 自己的实例
            Container.RegisterInstance(Container);

            // 配置命令的执行
            TypeEventSystem.Register <IEditorStrangeMVCCommand>(OnCommandExecute);

            InstalledPackageVersions.Reload();

            // 注册好 model
            var model = new PackageManagerModel
            {
                Repositories = PackageInfosRequestCache.Get().PackageRepositories
            };

            Container.RegisterInstance(model);

            Container.Register <IPackageManagerServer, PackageManagerServer>();
        }
示例#10
0
        public void Init(IQFrameworkContainer container)
        {
// view
            mRootLayout = new VerticalLayout();
            var treeNode = new TreeNode(true, LocaleText.FrameworkPackages).AddTo(mRootLayout);

            var verticalLayout = new VerticalLayout("box");

            treeNode.Add2Spread(verticalLayout);


            mCategoriesSelectorView = new ToolbarView(0)
                                      .AddTo(verticalLayout);

            mCategoriesSelectorView.Index.Bind(newIndex =>
            {
                TypeEventSystem.Send <IEditorStrangeMVCCommand>(new PackageManagerSelectCategoryCommand()
                {
                    CategoryIndex = newIndex
                });
            });

            new HeaderView()
            .AddTo(verticalLayout);

            var packageList = new VerticalLayout("box")
                              .AddTo(verticalLayout);

            mScrollLayout = new ScrollLayout()
                            .Height(240)
                            .AddTo(packageList);

            TypeEventSystem.Register <PackageManagerViewUpdate>(OnRefresh);

            // 执行
            TypeEventSystem.Send <IEditorStrangeMVCCommand>(new PackageManagerStartUpCommand());

            var bindingSet = BindKit.CreateBindingSet(this, new PackageManagerViewModel());
        }
示例#11
0
 public PacakgeKitLoginViewModel()
 {
     TypeEventSystem.Register <LoginSucceed>(OnLoginSucceed);
 }
示例#12
0
    void Start()
    {
        Mask.SetActive(true);
        TypeEventSystem.Register <ResourceItemClick>((tmp) => {
            var isOn = ScrollViewContent.AnyTogglesOn();
            if (!isOn)
            {
                Mask.SetActive(true);
            }
            else
            {
                Mask.SetActive(false);
                var items = ScrollViewContent.ActiveToggles();
                var item  = items.FirstOrDefault();
                if (item)
                {
                    mItem = item;
                    SetUI();
                }
            }
        });
        InputName.onValueChanged.AddListener((value) => {
            if (mItem)
            {
                var resourceItem = mItem.GetComponent <ResourceItem>();
                resourceItem.SetFileName(value + resourceItem.ResInfo.Extension);
            }
            else
            {
                Debug.LogError("mItem is null");
            }
        });

        DeleteBtn.onClick.AddListener(() =>
        {
            if (mItem)
            {
                var resourceItem = mItem.GetComponent <ResourceItem>();
                resourceItem.DeleteItem();
                Mask.SetActive(true);
            }
            else
            {
                Debug.LogError("mItem is null");
            }
        });
        ImageMark.onValueChanged.AddListener((state) =>
        {
            if (mItem)
            {
                var resInfo       = mItem.GetComponent <ResourceItem>().ResInfo;
                var isCocosStudio = resInfo.Tag == ResourceTag.CocosStudio;
                var resourceItem  = mItem.GetComponent <ResourceItem>();

                InputName.textComponent.color = isCocosStudio ? new Color(255, 0, 0) : new Color(0, 0, 0);
                if (state)
                {
                    resInfo.Tag = ResourceTag.TexturePackage;
                    resourceItem.SetTag(ResourceTag.TexturePackage);
                }
                else
                {
                    resInfo.Tag = ResourceTag.None;
                    resourceItem.SetTag(ResourceTag.None);
                }
            }
            else
            {
                Debug.LogError("mItem is null");
            }
        });
    }
示例#13
0
        protected override void OnInit(QFramework.IUIData uiData)
        {
            mData = uiData as UIResourcePanelData ?? new UIResourcePanelData();
            // please add init code here
            var activity = mData.activityIndex;
            var id       = mData.id;

            TextLabel.text = "ResArea-" + activity;
            var version = PlayerPrefs.GetString("Version");

            gameObject.AddComponent <FileDragAndDrop>();
            DirTools.ActivityIndex = activity;
            DirTools.Version       = version;
            TypeEventSystem.Register <ResBlockNameChanged>(NameChanged);
            Export.onClick.AddListener(ExportRes);
            Clear.onClick.AddListener(ClearRes);
            God.onClick.AddListener(() =>
            {
                UIMgr.OpenPanel("UIUploadPanel", UILevel.Common, new UIUploadPanelData()
                {
                    ActivityIndex = activity,
                    id            = id
                });
            });
            TypeEventSystem.Register <RemoveBlock>((tmp) => {
                var md5 = tmp.MD5;

                ResMap.Remove(md5);
                string resDir   = DirTools.GetTmpResDir();
                string filepath = Path.Combine(resDir, md5 + tmp.Extension);
                if (File.Exists(filepath))
                {
                    File.Delete(filepath);
                }
                else
                {
                    Debug.LogError("资源不存在!!!");
                }
            });
            TypeEventSystem.Register <SetBlockProperties>((tmp) => {
                var md5        = tmp.MD5;
                var properties = tmp.properties;
                var ResBlock   = ResMap[md5];
                ResBlock.GetComponent <ResBlockScript>().Properties = properties;
            });
            TypeEventSystem.Register <ClearRescoursePanel>((tmp) => {
                ResMap.Clear();
                var lst = new List <Transform>();
                foreach (Transform child in Content)
                {
                    lst.Add(child);
                }
                for (int i = 0; i < lst.Count; i++)
                {
                    Destroy(lst[i].gameObject);
                }
                DirTools.DeleteFolder(DirTools.GetTmpResDir());
            });

            TypeEventSystem.Register <FilePathInfo>((file) =>
            {
                if (ResMap.ContainsKey(file.MD5))
                {
                    return;
                }
                else if (file.Extension == ".zip")
                {
                    MessageBoxV2.AddMessage("暂不支持拖入zip", 3);
                }
                else
                {
                    var BlockImage = Instantiate(ResBlockPrefab, Content);
                    BlockImage.GetComponent <ResBlockScript>().SetImage(file);
                    DirTools.CopyDropFileToTmpResDir(file);
                    ResMap.Add(file.MD5, BlockImage);
                }
            });
            DirTools.CleanUpDir();
            ResMap.Clear();
#if UNITY_EDITOR
            Invoke("Test", 3.0f);
#endif
        }
示例#14
0
        private void TypeEventRegister()
        {
            DownloadButton.GetComponentInChildren <Text>().color = new Color(66, 66, 66);
            UploadButton.GetComponentInChildren <Text>().color   = new Color(66, 66, 66);
            TypeEventSystem.Register <Template>((template) => {
                TemplateText.text           = "已选择Template: " + template.name;
                UploadButton.interactable   = true;
                DownloadButton.interactable = true;
                DownloadButton.GetComponentInChildren <Text>().color = new Color(0, 0, 0);
                UploadButton.GetComponentInChildren <Text>().color   = new Color(0, 0, 0);
                _template = template;
            });
            TypeEventSystem.Register <FileInfo>((fileInfo) =>
            {
                List <Transform> children = new List <Transform>();
                foreach (Transform child in ScrollViewContent)
                {
                    // var info = child.GetComponent<ResourceItem>().ResInfo;
                    children.Add(child);
                }

                var target = children.Find((child) =>
                {
                    var info = child.GetComponent <ResourceItem>().ResInfo;
                    return(info.FileName == fileInfo.FileName);
                });
                if (target != null)
                {
                    var resItem = target.GetComponent <ResourceItem>();
                    SimplePopupManager.Instance.CreatePopup(string.Format("文件名相同,直接替换原有资源{0}", fileInfo.FileName));
                    SimplePopupManager.Instance.AddButton("知道了", delegate
                    {
                        fileInfo.Tag = resItem.ResInfo.Tag;
                        target.GetComponent <ResourceItem>().SetItemInfo(fileInfo);
                    });
                    SimplePopupManager.Instance.ShowPopup();
                    return;
                }
                if (fileInfo.DropType == DragDropType.Add)
                {
                    var Item = Instantiate(ResourceItem, ScrollViewContent);
                    Item.GetComponent <ResourceItem>().SetItemInfo(fileInfo);
                    Item.GetComponent <Toggle>().group = ScrollViewContent.GetComponent <ToggleGroup>();
                }
                else
                {
                    var inspector = Inspector.GetComponent <Inspector>();
                    if (!inspector.Mask.activeSelf)
                    {
                        ///替换item
                        var item = inspector.SelectItem;
                        if (item)
                        {
                            var resItem = item.GetComponent <ResourceItem>();
                            if (resItem.ResInfo.Extension != fileInfo.Extension)
                            {
                                SimplePopupManager.Instance.CreatePopup(string.Format("不可以把 {0} 替换为 {1}", resItem.ResInfo.Extension, fileInfo.Extension));
                                SimplePopupManager.Instance.AddButton("Soga", delegate { });
                                SimplePopupManager.Instance.ShowPopup();
                                File.Delete(fileInfo.FileFullName);
                                return;
                            }
                            SimplePopupManager.Instance.CreatePopup(string.Format("确定替换 {0}{1}", inspector.InputName.text, inspector.ExtensionText.text));
                            SimplePopupManager.Instance.AddButton("嗯嗯", delegate {
                                if (File.Exists(resItem.ResInfo.FileFullName))
                                {
                                    var originName = resItem.ResInfo.FileName;
                                    File.Delete(resItem.ResInfo.FileFullName);
                                    fileInfo.Tag = resItem.ResInfo.Tag;
                                    resItem.SetItemInfo(fileInfo);
                                    resItem.SetFileName(originName);
                                }
                                else
                                {
                                    Debug.LogError("替换文件,被替换的文件不存在");
                                }
                                Debug.Log(resItem.ResInfo);
                            });
                            SimplePopupManager.Instance.AddButton("算了算了", delegate
                            {
                                File.Delete(fileInfo.FileFullName);
                            });
                            SimplePopupManager.Instance.ShowPopup();
                        }
                    }
                    else
                    {
                        SimplePopupManager.Instance.CreatePopup("没有选中的资源,无法进行替换");
                        SimplePopupManager.Instance.AddButton("朕晓得了", delegate {  });
                        SimplePopupManager.Instance.ShowPopup();
                    }
                }
            });
        }
示例#15
0
 // Start is called before the first frame update
 void Start()
 {
     DirTools.ClearTempPath();
     TypeEventSystem.Register <FileDragIn>((fileDragIn) => {
         var path = fileDragIn.Path;
         System.IO.FileInfo file = new System.IO.FileInfo(path);
         if (file.Extension == ".zip")
         {
             ImportZip(path);
             return;
         }
         else if (file.Extension == ".csb")
         {
             // var csbInspector = transform.GetComponent<CsbInspector>();
             // var totalInfo = transform.GetComponent<QFramework.Example.UIPanel>().GetTotalInfo();
             // totalInfo = totalInfo.Where((info) => { return info.Extension == ".csb"; }).ToList();
             // var paths = totalInfo.Select((info) => { return info.FileFullName; }).ToList();
             // paths.Add(path);
             // var totalPaths = new List<string>();
             // paths.ForEach((name) =>
             // {
             //     totalPaths.AddRange(csbInspector.GetCsbImagePath(name));
             // });
             // totalPaths = totalPaths.Select((t) => { return Path.GetFileName(t); }).ToList();
             // totalPaths = totalPaths.Distinct().ToList();
             // transform.GetComponent<AppData>().CsbImagePaths = totalPaths;
         }
         else if (file.Extension == ".png")
         {
             // var ret = isCocosStudioImage(path);
             // if (ret)
             // {
             //     fileDragIn.Tag = ResourceTag.CocosStudio;
             // }
         }
         var tempPath = DirTools.GetTempPath();
         File.Copy(file.FullName, tempPath + "/" + file.Name, true);
         var md5Code = GetMD5HashFromFile(path);
         if (md5Code == null)
         {
             SimplePopupManager.Instance.CreatePopup(string.Format("{0}可能被占用", fileDragIn.Path));
             SimplePopupManager.Instance.AddButton("朕知道了", delegate {  });
             SimplePopupManager.Instance.ShowPopup();
             return;
         }
         TypeEventSystem.Send(new FileInfo()
         {
             FileName     = file.Name,
             FileFullName = tempPath + "/" + file.Name,
             Extension    = file.Extension,
             Time         = DateTime.Now,
             MD5          = md5Code,
             Tag          = fileDragIn.Tag,
             DropType     = fileDragIn.Point.x < 860 ? DragDropType.Add : DragDropType.Replace,
         });
     });
     if (Application.platform == RuntimePlatform.WindowsEditor)
     {
         var path = @"C:\Users\yzqlw\Desktop\png";
         Directory.GetFiles(path, "*").ForEach((file) =>
         {
             TypeEventSystem.Send(new FileDragIn()
             {
                 Path = file,
                 Tag  = ResourceTag.Default
             });
         });
         // TypeEventSystem.Send(new FileDragIn()
         // {
         //     Path = path,
         //     Tag = ResourceTag.Default
         // });
         Invoke("test", 3.0f);
     }
     else if (Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer)
     {
         var path = @"/Users/yzqlwt/Desktop/image";
         Directory.GetFiles(path, "*").ForEach((file) => {
             TypeEventSystem.Send(new FileDragIn()
             {
                 Path  = file,
                 Tag   = ResourceTag.Default,
                 Point = new POINT(900, 100)
             });
         });
     }
 }