• 【MC 网易-我的世界-mod开发基础笔记】 --- 创建第一个空白Mod


    创建Mod文件夹

    在电脑上创建mod文件夹,用于存放mod开发的所有内容。
    此处我在我的电脑的 D:\MC\newProjects\ 目录下创建一个mod文件夹,文件夹名称为:ThreeSecretOneMod
    注意:

    1. 文件夹命名格式推荐为:自定义组织名称+自定义的Mod名称+Mod固定字符
      如上:Three为组织名称,SecretOne为Mod名称,Mod为固定字符
    2. 创建的mod文件夹路径不能出现中文。例如 D:\MC\newProjects\ 路径中并无中文字符。

    在这里插入图片描述

    构建Mod的基本目录结构

    进入mod文件夹中。进入后创建两个文件夹,分别为ThreeSecretOneBehaviorPackThreeSecretOneResourcePack ,分别代表此mod的行为包和资源包。
    注意:

    1. 行为包文件夹的命名格式为:自定义组织名称+自定义的Mod名称+BehaviorPack固定值。如:
      ThreeSecretOneBehaviorPack
    2. 资源包文件夹的命名格式为:自定义组织名称+自定义的Mod名称+ResourcePack固定值。如:
      ThreeSecretOneResourcePack

    ThreeSecretOneBehaviorPack: 用于存放游戏内容的相关行为逻辑相关内容资源和相关配置,主要是存放json和python文件。
    ThreeSecretOneResourcePack:用于存放游戏内需要用到的静态资源,主要是存放游戏中用到的图片、音频、粒子、序列帧等资源。
    在这里插入图片描述

    构建行为包基本结构

    进入行为包后,创建实体文件夹entities 和 脚本文件夹ThreeSecretOneScript
    注意:

    1. 实体文件夹entities的名称为固定名称,不可修改。
    2. 脚本文件夹名称格式为:自定义组织名称+自定义的Mod名称+Script固定字符。如:ThreeSecretOneScript

    另外,还需要创建一个名为 manifest.json 的json文件,用于告诉游戏引擎这是一个行为包。
    注意:manifest.json 文件名称不可修改,为固定名称
    manifest.json 文件内容如下:

    {
        "header": {
            "uuid": "9ac7ec64-fc78-4cc2-98bd-ff89bbedf672",
            "version": [ 0,0,1],
            "description": "Three Secret Place Tracking Preface @three",
            "name": "ThreeSecretOne"
        },
        "dependencies": [],
        "modules": [{
            "version": [0,0,1],
            "type": "data",
            "description": "Three Secret Place Tracking Preface  @three",
            "uuid": "ee42727e-79ad-4459-878f-1a70e63ec662"
        }],
        "format_version": 1
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    manifest.json 文件内容 说明,开发者只需要修改如下内容:

    header 内的配置:
    1. uuid :必填,使用【MC 网易-我的世界-mod开发基础笔记】 — 常用的在线工具 中的uuid在线生成工具生成,将生成的uuid复制到文件中即可。
    2. version :必填,版本号,默认初始版本号为 [ 0,0,1] ,若之后发布后的mod需要更新则此版本号需要修改。目前刚创建则使用默认版本号即可。
    3. description :描述,非必填,填写mod或mod行文包的相关描述。
    4. name:必填,填写 自定义组织名称+自定义的Mod名称

    modules 内的配置:
    1. uuid :必填,使用【MC 网易-我的世界-mod开发基础笔记】 — 常用的在线工具 中的uuid在线生成工具生成,将生成的uuid复制到文件中即可。
    2. version :必填,版本号,默认初始版本号为 [ 0,0,1] ,若之后发布后的mod需要更新则此版本号需要修改。目前刚创建则使用默认版本号即可。
    3. description :描述,非必填,填写mod或mod行文包的相关描述。
    4. type:必填,行为包的固定值为 data ,资源包的固定值为resources。此处为行为包,则填写为data

    结构如下图:
    在这里插入图片描述

    构建脚本文件夹基本结构

    进入脚本文件夹中。在文件夹中创建4个python文件。分别为:

    1. init.py :python的初始脚本文件,目前该文件为空白内容。
    2. handlerClient.py : mod的客户端处理脚本。
    3. handlerServer.py : mod的服务端处理脚本
    4. modMain.py : mod 启动入口脚本

    如下在这里插入图片描述

    构建 mod 启动入口脚本

    使用编辑器打开 modMain.py 文件,文件内容如下:

    # -*- coding: utf-8 -*-
    
    from mod.common.mod import Mod
    import mod.client.extraClientApi as clientApi
    import mod.server.extraServerApi as serverApi
    
    @Mod.Binding(name = 'ThreeSecretOne', version = '0.0.1')
    class ThreeSecretOneMod(object):
    	@Mod.InitServer()
    	def ThreeSecretOneServerInit(self):
    		# 使用RegisterSystem()方法向游戏引擎注册服务端脚本
    		# 参数1:自定义组织名称+自定义的Mod名称
    		# 参数2:自定义的服务端名称建议格式为:自定义组织名称+自定义的Mod名称+ServerSystem
    		# 参数3:服务端脚本文件的路径 。从脚本文件夹开始
    		serverApi.RegisterSystem('ThreeSecretOne', 'ThreeSecretOneServerSystem', 'ThreeSecretOneScript.handlerServer')
    		print("===== 	ThreeSecretOneServerInit =====") 
    		pass
    
    	@Mod.DestroyServer()
    	def ThreeSecretOneServerDestroy(self):
    		pass
    
    	@Mod.InitClient()
    	def ThreeSecretOneClientInit(self):
    		# 使用RegisterSystem()方法向游戏引擎注册客户端脚本
    		# 参数1:自定义组织名称+自定义的Mod名称
    		# 参数2:自定义的服务端名称建议格式为:自定义组织名称+自定义的Mod名称+ClientSystem
    		# 参数3:服务端脚本文件的路径 。从脚本文件夹开始
    		clientApi.RegisterSystem('ThreeSecretOne', 'ThreeSecretOneClientSystem', 'ThreeSecretOneScript.handlerClient')
    		print("===== 	ThreeSecretOneClientInit =====")
    		pass
    
    	@Mod.DestroyClient()
    	def ThreeSecretOneClientDestroy(self):
    		pass
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    构建资源包基本结构

    进入资源包目录下。
    创建一个名为 manifest.json 的json文件,用于告诉游戏引擎这是一个资源包。
    注意:manifest.json 文件名称不可修改,为固定名称
    manifest.json 文件内容如下:

    {
        "header": {
            "uuid": "39742707-d76c-4e1c-bede-92fbf30cd86c",
            "version": [ 0, 0,1],
            "description": "Three Secret Place Tracking Preface  @three",
            "name": "ThreeSecretOne"
        },
        "modules": [{
            "version": [ 0,0, 1],
            "type": "resources",
            "description": "Three Secret Place Tracking Preface  @three",
            "uuid": "d0b50d89-e185-4fdc-97b7-f492e2ded9bb"
        }],
        "format_version": 1
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    manifest.json 文件内容 说明,开发者只需要修改如下内容:

    header 内的配置:
    1. uuid :必填,使用【MC 网易-我的世界-mod开发基础笔记】 — 常用的在线工具 中的uuid在线生成工具生成,将生成的uuid复制到文件中即可。
    2. version :必填,版本号,默认初始版本号为 [ 0,0,1] ,若之后发布后的mod需要更新则此版本号需要修改。目前刚创建则使用默认版本号即可。
    3. description :描述,非必填,填写mod或mod行文包的相关描述。
    4. name:必填,填写 自定义组织名称+自定义的Mod名称

    modules 内的配置:
    1. uuid :必填,使用【MC 网易-我的世界-mod开发基础笔记】 — 常用的在线工具 中的uuid在线生成工具生成,将生成的uuid复制到文件中即可。
    2. version :必填,版本号,默认初始版本号为 [ 0,0,1] ,若之后发布后的mod需要更新则此版本号需要修改。目前刚创建则使用默认版本号即可。
    3. description :描述,非必填,填写mod或mod行文包的相关描述。
    4. type:必填,行为包的固定值为 data ,资源包的固定值为resources。此处为资源包,则填写为resources

    创建其他文件夹,用于存放各类资源,以下创建的文件夹名称固定,不可修改

    1. effects :用与存状态效果的相关配置的文件夹
    2. models :用于存放模型的文件夹
    3. sounds : 用于存放音频的文件夹
    4. texts :用于存放国际化配置的文件夹
    5. textures :用于存放贴图资源的文件夹
    6. ui : 用于存放ui配置的文件夹

    如下图:
    在这里插入图片描述

    构建国际化文件基本结构

    texts文件夹中存放国际化的文件。由于游戏中各项内容的配置均为英文,则游戏中展示默认是显示英文内容,若要将相对应的内容在游戏中显示为中文,(配置的中文可配合【MC 网易-我的世界-mod开发基础笔记】 — 常用的在线工具我的世界颜色格式的部分使用)
    则需要在此文件夹下做相关的配置。
    创建中文配置文件zh_CN.lang 文件名固定不可改变
    其内容相关的语法格式为:

    自定义物品配置中文名称

    格式为:item.自定义物品定义的英文名称.name=中文名称
    例如:item.three_secret_one:gambler_log.name=§9[初级] §9探险家日志

    自定义方块配置中文名称

    格式为:item.自定义物品定义的英文名称.name=中文名称
    例如:tile.three_secret_one:dowork.name=秘境工作台

    自定义实体配置中文名

    格式为:entity.自定义物品定义的英文名称.name=中文名称
    entity.three_secret_one:dangerDog.name=秘境恶犬

    如下:

    在这里插入图片描述

    构建贴图资源文件夹的基本结构

    创建以下文件夹用于分类存放贴图资源,创建的文件夹名称固定不可改变

    1. item :用于存放自定义物品贴图的文件夹
    2. models:用于存放模型贴图的文件夹
    3. ui:用于存放ui贴图的文件夹

    创建item_texture.json 文件,用于配置贴图资源的使用
    其内容为:

    {
        "resource_pack_name": "vanilla",
        "texture_name": "atlas.items",
        "texture_data": {
           
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如下图
    在这里插入图片描述

    此时,结构创建完毕。

  • 相关阅读:
    【JavaScript保姆级教程】输出函数和初识变量
    (Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突
    通用数据湖仓一体架构正当时
    云原生之K8S------list-watch机制,调度约束以及故障排查
    跑步运动蓝牙耳机哪个好?跑步无线运动蓝牙耳机推荐
    3.Docker 镜像及镜像分层
    便捷解压Keka for Mac(压缩解压工具) v1.3.3中文版
    [2022世界杯] 小白也可以看懂的世界杯
    LeetCode-热题100-笔记-day29
    Typescript-----面试题
  • 原文地址:https://blog.csdn.net/qq_38313548/article/details/125514494