MinePython

MinePython

在可编程ESP32块上编写真正的Python 3.12。一个完整的游戏内编辑器,包含LSP、自动补全、红石I/O、数据I/O、持久化与易失性存储器(RAM)、以及芯片之间的无线网络连接。

红石

MinePython - 在 Minecraft 中编写真正的 Python

放置一个方块。右键点击它。编写 Python。观察它运行。

MinePython 在你的世界中放置一个可编程的 ESP32 微控制器,并在其上运行真正、从头编写的 Python 解释器:不是命令方块,不是配置语言,也不是穿着马甲的 Lua。你打开一个完整的游戏内代码编辑器,编写一个实际程序,将其刷入芯片,它就会在通电后每 tick 运行一次。

你的第一个程序可以只有三行代码并让红石灯闪烁。你的第一百个程序可以是一个遍布世界的自协调控制器网络。同一个方块,同一种语言,深度由你决定。


你的前两分钟

  1. 放置一个 ESP32 并右键点击它。启动程序已加载完毕。
  2. 在背面放置一个拉杆,在前面放置一个红石灯。
  3. 编写你的软件:
  4. 点击运行,拨动拉杆。
 

它的与众不同之处

其他所有“计算机”模组都会交给你一个隐藏了困难部分的 API。MinePython 交给你的是原语,让你自己构建困难的部分,而这正是乐趣(以及学习)所在。没有神奇的内置 `sendMessage()` 函数来连接两个芯片。有一个移动比特信号的无线电,而你决定这些比特的意义。当你遇到瓶颈时,解决方法是靠你自己发明,而不是去查资料。

它既是学习 Python 的入门阶梯(在你还熟悉的世界里,写一行代码,看一个灯做出反应),也是一个足够深的沙盒,让经验丰富的程序员可以用原始比特构建路由器、协议和分布式系统。


你能构建什么

用代码控制红石。最多四个 GPIO 侧面可以读取和驱动红石信号:`OUT.high()`、`if DATA.HIGH:`、模拟强度、定时脉冲、实时方向切换。不再有中继器迷宫;一个芯片就能精确驱动你连线的电路。

永久存储的内存。`Ram()` 存储可以在停止/启动和区块重载后保留:计数器、缓冲区、网络收件箱、你装置的存档状态。

易失性内存。`Ram.JITC()` 存储仅在 esp 存在期间有效。使用即时缓存设计缓存系统等。

无线网络。端口、套接字、帧数据包以及芯片间可调节的时钟。构建传感器网格、远程控制、健康检查节点网络;协议由你设计。

世界本身。声音、粒子、聊天/标题/操作栏输出,以及开启作弊后完整的服务器命令 API。

传感器与便携存储(S3)。将物品、声音和上方的方块作为数据字读取;将 JSON 保存到你可以物理拔出并携带到其他控制器的 EMC 芯片上。你的数据和代码成为可交易物品。

真正的并发(AWC 芯片)。协作式工作线程,支持锁和连接,让一个芯片能够同时轮询、监听和响应。


它是一门真正的语言

大整数运算、浮点数、字符串和 f-string、列表/元组/字典/集合、推导式、生成器、支持继承和双下划线方法的类、异常、闭包、装饰器,以及一个多文件导入系统,编写方式与 Python 3 完全一致。内置的API 目录(每个功能都有是什么/为什么/示例)以及引导式教程意味着你无需离开游戏就能学习。

编辑器也是一个真正的编辑器:语法高亮、自动补全、悬停文档、带行/列诊断信息的实时错误检查,以及一个多文件项目浏览器。


按需升级

用固件卡右键点击芯片即可升级。卡不会被消耗,一张卡可以刷入任意数量的芯片:

  • ESP32(标准版):需外部供电的基准板。(GPIO0)
  • ESP32 Dev:速度更快;增加了串行 I/O 和开发者工具。
  • ESP32-S3:自供电(所有四个引脚均可用),更大 RAM,支持多文件项目、传感器、EMC 存储。
  • ESP32-S3 Dev:集所有功能于一身,速度最快,固件空间最大。

然后将硬件芯片(EMC 存储、AWC 线程、WR 范围、DRM 内存)和软件芯片插入设备槽位,以在运行时实时扩展控制器。在程序运行中途拔出芯片,代码会诚实响应:没有隐藏的东西,没有无声无息的崩溃。

展示


状态

Beta 版,正在积极开发中。核心功能稳定且运行流畅,但这是早期公开发布版:可能存在粗糙之处,请报告错误。适用于 Fabric,Minecraft 1.21.1(需要 Fabric API)。可选的 Jade 支持可在 HUD 上显示每个芯片的名称、固件和运行状态。

路线图

  • 下界存储:基于下界坐标比率的慢速、持久、无网络数据层
  • 更多软件芯片,以及持续的多玩家稳定性加固

如果在 Minecraft 中使用真正的 Python 听起来像是你喜欢的事情,那就放下一个芯片,编写你的前三行代码吧。欢迎提供反馈和错误报告。