用于构建minecraft数据包的高级、自以为是的python框架

endermite的Python项目详细描述


恩德尔米特

Build StatusPyPI VersionPython Version

A high-level, opinionated python framework for building Minecraft data packs.

这是一项正在进行的巨大工作

简介

Minecraft data packs通过编写一些json和一些函数,任何人都可以自定义游戏。底层格式简单明了,易于解析,但它并不是根据特定的开发人员经验创建的。当你坐在你的文本编辑器前,很难弄清楚你应该如何利用可用的功能来做你想做的事情。

endermite是一个python框架,它通过抽象层组合和公开数据包特性。它旨在通过提供基于组件的方法,使开发、封装和组合行为变得更容易。

fromendermiteimportComponentfromendermite.decoratorsimportpublic,tickclassHello(Component):"""Output `Hello, world!` each tick when attached to an entity."""@tick@publicdefsay_hello(self):self.say('Hello, world!')

组件是可以附加到实体的状态和行为的耦合部分。它们在概念上类似于使用MonoBehaviour脚本(如果您使用过unity游戏引擎)。

安装

确保您使用的是Python3.7或更高版本。可以使用pip安装endermite。

$ pip install endermite

通过尝试使用包附带的命令行界面,可以检查Endermite是否已正确安装。

$ ender --version

开始

开始使用endermite的最简单方法是熟悉命令行工作流。您可以在不使用endermite的情况下使用它,但是endercli通常会让您更加高效。

$ ender --help
Usage: ender [OPTIONS] COMMAND [ARGS]...

  Command-line utility to manage endermite projects.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  build  Build all the projects of the current world.
  init   Create a new endermite project.

创建新项目

cli允许您通过运行init命令在minecraft world文件夹中创建endermite项目。请注意,您可以在同一个世界中创建任意多个Endermite项目。

$ ender init
endermite vX.X.X

Creating endermite project.

Project name [testing_endermite]: tutorial
Project description [An endermite project]:
Project author [N/A]:
Project version [0.1.0]:

About to create .../.minecraft/saves/testing_endermite/@endermite/tutorial.

Is this ok? [Y/n]:

Done!

endercli创建的项目只是一个python包,它导出一个endermiteProject对象。

建立您的Endermite项目

您可以使用build命令来构建您在特定minecraft世界中创建的所有项目。该命令将在datapacks目录中输出相应的数据包。

$ ender build
endermite vX.X.X

Building endermite projects.

Attempting to build "tutorial"...
Done! (took X.XXXs)

使用--watch选项运行build命令将在修改@endermite目录时重新生成项目。它让您忘记了必须手动运行build命令。

$ ender build --watch
endermite vX.X.X

Building endermite projects.

Watching directory .../.minecraft/saves/testing_endermite/@endermite.

HH:MM:SS X changes detected

Attempting to build "tutorial"...
Done! (took X.XXXs)

记住,您仍然需要在游戏中运行/reload

贡献

欢迎捐款。确保安装了Python3.7或更新版本,并在项目目录中创建一个虚拟环境。

$ python -m venv env

这将在env目录中创建一个虚拟环境。如果您不熟悉虚拟环境,请查看official documentation。现在可以激活虚拟环境。

# Windows
$ env\Scripts\activate.bat

# Unix or MacOS
$ source env/bin/activate

记住每次你在项目中工作时都要激活虚拟环境!让我们安装endermite包的依赖项和必要的开发依赖项。

(env) $ pip install -U -r requirements.txt -r requirements.dev.txt

现在您应该能够对源代码进行lint操作,并使用tox运行测试。

(env) $ tox

该项目依赖于^{}^{}进行起绒和测试。如果您不熟悉这些工具,可以查看它们各自的文档。


许可证-MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有多用户OU和多访问CNs的java Spring LDAP身份验证   java分配的变量神秘地变为null   java比较两个表或文本文件,并用行号和列输出差异   java如何在同一构建目录中设置netbeans中的文件路径?   java如何在avro模式中定义byte[]和LocalDateTime?   java在多个活动和片段中使用相同的微调器。实施它的最佳方式是什么?   java使用OOPS扩展已编写的类   java如何在特定于文件的基础上禁用Eclipse中的编译器警告?   java将字符串转换为日期的格式不正确   Java文件从一台服务器复制到另一台服务器   java Jacksonal和JacksonApperasl的最新jar版本是什么?   java如何在使用selenium chrome web驱动程序时禁用chrome中的身份验证提示   java是什么。推荐人和推荐人。Eclipse工作区中的元数据以及它们是否应该在设备之间同步?   java我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?   java如何在选择单元格时设置JTable标题背景色   java Cassandra 2 Hector:复合行键上的范围切片查询返回空行   java方法注释继承   Python字节对象与java   java Android和从sqlite数据库加载listview