- 注 1 AwesomeMod 目录下有 awesome_behavior_packs 和 awesome_resource_packs 两个目录,但不是必须得有 2 个,可以只有其中 1 个。
- 注 2 awesome_behavior_packs 目录下必须有 entities 目录
- 注 3 awesome_behavior_packs 目录下的 uniqueNameScripts 是存放脚本的目录
- 注 4 manifest.json 资源包的配置
world_behavior_packs.json 和 world_resource_packs.json 是什么?
主要是记载这个地图加载的资源包的信息,尤其是 "pack_id" 和 "version" 对应到 manifest.json 中 header / uuid 和 header / version
[
{
"folder": "awesome_packs",
"version": [0, 0, 1],
"pack_id": "ab7b26c2-9de3-41e0-854f-be8843dd5c47"
}
]
python mod 是在 addon 的基础上,将 python 目录存放在 behavior_packs 中,演示目录结构如下
| awesomeScripts
| modClient
| sfx
| ui
| ...
| __init__.py
| modCommon
| entity
| gameSetting
| network
| ...
| __init__.py
| modServer
| ai
| attr
| buff
| entity
| ...
| __init__.py
| __init__.py
| modMain.py
modMain.py 是什么?
modMain 是 python 逻辑的入口文件,必须包含,其中有一些初始化函数
SDK class for binding
from common.mod import Mod
binding class HugoMod
@Mod.Binding(name = "HugoMod", version = "0.0.1")
class HugoMod(object):
def __init__(self):
pass
server initializes entry
@Mod.InitServer()
def testServerInit(self):
pass
server destroy entry
@Mod.DestroyServer()
def testServerDestroy(self):
pass
client initializes entry
@Mod.InitClient()
def testClientInit(self):
pass
client destroy entry
@Mod.DestroyClient()
def testClientDestroy(self):
pass
在开发的时候 Mod(即 Addon,包含 Python 脚本 install 加载 / uninstall 卸载 / use 使用 / unuse 不使用 是由一个 addon.json 配置文件来控制的。我们只需要通过修改配置文件,来决定 MC 每次启动时候的 MOD 行为。存放在 exe 同一目录中,这里的加载只是为开发者准备的,实际的加载不是这样实现的,开发者可以方便的在 windows 上查看资源和文件,实际运行环境会对我们的 mod python 脚本进行加密。
addon.json 是什么?
{
"install" : [
"F:/ModDev/awesomeMod"
],
"uninstall" : [
// refer to install "awesomeMod"
],
"use" : {
"levelID" : "awesomeMod"
},
"unuse" : {
// refer to use
}
}
Directory 目录
在 PC 端,我们可以很方便地查看各种文件和资源路径在哪,在开发时,我们加载资源和地图资源会加载到 C 盘的指定位置,我们需要打开隐藏目录才能看到我们的内容。
游戏的路径:RootPath = C:\Users\xxxx\AppData\Roaming\MinecraftPE_Netease
Addon 路径:AddonPath = RootPath + \games\com.netease\
add_ons 目录:保存了我们安装好的 mod.lst,里面包含我们每一个 MOD 的所有文件资源的列表。
behavior_packs 目录:保存了我们安装好 MOD 的 behavior 资源
resource_packs 目录:保存了我们安装好 MOD 的 resource 资源
Level 路径:LevelPath = RootPath + \minecraftWorlds\
该目录下,所有文件夹代表了每一个 level 的目录,目录名即是上文中的 levelID
Advise 建议
开发时,只需要填写 “install”和 “use”这两项,通过修改 “install”路径下的 python 内容,在每次游戏启动时,都会自动将该路径下的 python 内容同步到 C 盘真正加载的地方去,这两项可以不去掉,方便开发。
- 清理开发环境可以删除 Addon 路径下的 add_ons / behavior_packs / resource_packs 三个文件夹,并清除该地图存档下的 used_add_on_list.txt / world_behavior_packs.json / world_resource_packs.json 三个文件,重启游戏。
- 取名使用英文字母和下划线组合(英文或拼音),尽量使用个性化的名字不与其他人冲突
- 遇到自身没法解决的问题时,可以及时和官方沟通反馈
图片资源内存规范
图片资源主要有 UI,模型,特效。图片资源加载后占用总内存不能超过 100M。图片资源占用内存的计算方法,以分辨率(1024 x 1024)的 32 位 png 图片为例:1024 x 1024 x 32 / 8 = 4194304Bytes = 4M
可参考:图片在内存中的占用的空间大小
最后更新:2019-06-12