开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[闲聊] 希望编写一个MC开发工具库

 发表于 2026-3-12 23:48:52 来自手机|显示全部楼层|阅读模式 IP:江苏省
最近试了下Common Lisp的cl-who库,html可以这样写:
  1. (:html
  2. (:head (:title "test")(:meta "…"))
  3. (:body (:p "xxx")(:a :href "")))
复制代码


这不是比html标签简单多了?

于是我在想:BE资源包用的json,经过封装之后,语法可能就是这样

  1. ;;分号和python里的#一样是注释
  2. (:format-version 2 ;使用lisp的列表和关键字
  3.   :header
  4.     (:description "这里写附加包描述"
  5.     :name "这里写附加包名称"
  6.     :uuid (generate-uuid);;直接调用函数生成uuid
  7.     :version #(1 0 0) ;#()是lisp的数组
  8.     :min-engine-version #(1 19 50))
  9.   :modules #((:type "data"
  10.       :uuid uuid ;;lisp变量复用
  11.       :version #(1 0 0))))
复制代码

等效json:

  1. {
  2.   "format_version": 2,
  3.   "header": {
  4.     "description": "这里写附加包描述",
  5.     "name": "这里写附加包名称",
  6.     "uuid": "这里写uuid,要和其他任何uuid不一样,下文有获取uuid的方法",
  7.     "version": [1, 0, 0], //版本号
  8.     "min_engine_version": [1, 19, 50]
  9.   },
  10.   "modules": [
  11.     {
  12.       "type": "data",
  13.       "uuid": "这里写uuid,要和其他任何uuid不一样,下文有获取uuid的方法",
  14.       "version": [1, 0, 0]
  15.     }
  16.   ]
  17. }
复制代码

可能还是太麻烦?其实还可以更简单,封装成一个函数:
(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。不过这是以后的事了。
苦力怕论坛,感谢有您~
 发表于 2026-3-14 08:48:11 来自手机|显示全部楼层 IP:湖南省
实际上这种方法会使得配置可读性极地,因为minecraft的材质包本质上是一堆配置文件、且JSON本质上就是一个人类高可读性的配置文件格式

更好的方法是通过开发脚手架封装配置,以利用TS编写配置在构建时生成高度压缩的json产物
2#2026-3-14 08:48:11回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2026-3-15 22:44:01 来自手机|显示全部楼层 IP:江苏省
林梦泽 发表于 2026-3-14 08:48
实际上这种方法会使得配置可读性极地,因为minecraft的材质包本质上是一堆配置文件、且JSON本质上就是一个 ...

文章里的 (init-mcaddon) 就是脚手架,直接运行时生成项目结构。
另外这不是静态配置替换,是动态生成。比如 (generate-uuid) 执行时生成 UUID,不需要用工具生成了。
3#2026-3-15 22:44:01回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-23 10:14

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4