zh en

指南

本指南將描述如何爲Easer添加新功能,如增加新的Event、Condition或Operation,同時也會簡單涉及Easer的設計結構。
(注意:Profile是一組Operation的集合,所以要擴展Profile只要創建相應的新Operation即可。)

另,v0.7.7新加入USource,以便統一Event和Condition的編寫。該機制仍處於早期試驗,故而本文不對其進行描述(但其與之前類似)。

增加Event/Operation

在Easer中,所有的Event和Operation都被稱爲技能(skill),均放置於skills包下——更具體地,Event在skills.event包下,Operation在skills.operation包下。

要新建Event或Operation,可以使用提供的腳本,之後自行填充;也可以純手動。

使用腳本自動生成模板

在utils目錄下有兩個腳本(new_event.pynew_operation.py),用於創建相應技能的“模板”——通用部分會被創建,一般而言只需要填充其中TODO部分即可。 做完之後,在skills.LocalSkillRegistry中註冊該新技能即完成。

組件的各個部分詳解見下。

詳細步驟

要增加新的Event或Operation,本質上來說要做兩件事:

  1. 實現新Event或Operation的功能(通過擴展/繼承相應接口,並實現相應內容)
  2. skills.LocalSkillRegistry中註冊該新技能

其中:

而在LocalSkillRegistry中註冊只需要在其init()方法中仿照已有條目,爲新技能寫一行代碼。

強烈建議仿照已有技能的做法,將新的技能放於相應的包/目錄內。

EventSkill接口和OperationSkill接口均有詳細註釋。

無論是EventSkill還是OperationSkill均需實現UI部分,均是通過實現一個skills.SkillViewFragment的子類來完成。

一些常用的子類已在skills或子包中寫好,方便使用。

接口/抽象類作用

SkillStorageData爲通用的接口,實際使用中會使用相應的子接口(如EventSkill)。每個技能的各個部件均會使用數據,所以其對應數據類(即StorageData的子類)需要作爲泛型參數。