UID1591144性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2024-2-14最后登录1970-1-1
|
最近试了下Common Lisp的cl-who库,html可以这样写:- (:html
- (:head (:title "test")(:meta "…"))
- (:body (:p "xxx")(:a :href "")))
复制代码
这不是比html标签简单多了?
于是我在想:BE资源包用的json,经过封装之后,语法可能就是这样
- ;;分号和python里的#一样是注释
- (:format-version 2 ;使用lisp的列表和关键字
- :header
- (:description "这里写附加包描述"
- :name "这里写附加包名称"
- :uuid (generate-uuid);;直接调用函数生成uuid
- :version #(1 0 0) ;#()是lisp的数组
- :min-engine-version #(1 19 50))
- :modules #((:type "data"
- :uuid uuid ;;lisp变量复用
- :version #(1 0 0))))
复制代码
等效json:
- {
- "format_version": 2,
- "header": {
- "description": "这里写附加包描述",
- "name": "这里写附加包名称",
- "uuid": "这里写uuid,要和其他任何uuid不一样,下文有获取uuid的方法",
- "version": [1, 0, 0], //版本号
- "min_engine_version": [1, 19, 50]
- },
- "modules": [
- {
- "type": "data",
- "uuid": "这里写uuid,要和其他任何uuid不一样,下文有获取uuid的方法",
- "version": [1, 0, 0]
- }
- ]
- }
复制代码
可能还是太麻烦?其实还可以更简单,封装成一个函数:
(init-mcaddon :name "附加包名称" ……),项目结构就出来了。
然后要一个方块?(add-block …),自动处理材质包和行为包。
实体?(add-entity …)
至于是否简化了开发,我就不清楚了。可以对于C-V编程要遭殃了。
当然现在还有疑问,就是json的键是否对大小写敏感。因为lisp中间不区分大小写。
sapi怎么办?
还有就是我第一次接触资源包开发,所以需要一些指导。 补充内容0
其实不需要会lisp编程的。因为你所需要的就是那些封装的函数,基本不需要用到默认函数。除非你想contribute我的项目。 补充内容1
在编辑内容时,我发现bbcode也很麻烦。为什么我不能(:b "xxx")呢?为什么不能(:code "xxx")呢? 补充内容2
lisp通过cffi可以调用c语言leveldb库,从而可以操作mc存档nbt。不过这是以后的事了。 |
|