• Forge论坛

导航页

  • 主页
  • 向文档做出贡献
  • 入门
    • 概述
    • 模组文件
    • 规划你的模组结构
    • 版本号
  • 核心概念
    • 注册表
    • 端位(Sides)
    • 事件
    • 模组生命周期
    • 资源
      • ResourceLocation
    • 国际化与本地化
  • 方块
    • 概述
    • 方块状态
  • 物品
    • 概述
    • BlockEntityWithoutLevelRenderer
  • 网络
    • 概述
    • SimpleImpl
    • 实体的同步
  • 方块实体
    • 概述
    • BlockEntityRenderer
  • 游戏特效
    • 粒子效果
    • 音效
  • 数据储存
    • Capabilities
    • Saved Data
    • 编解码器(Codecs)
  • 图形用户界面
    • 菜单(Menus)
    • 屏幕(Screens)
  • 渲染
    • 模型扩展
      • 概述
      • 根变换
      • 渲染类型
      • 部分可见度
      • 面数据
    • 模型加载器
      • 概述
      • 烘焙模型
      • 变换
      • 物品重载
  • 资源
    • 客户端资源(Assets)
      • 概述
      • 模型
        • 概述
        • 纹理色调
        • 物品属性
    • 服务端数据(Data)
      • 概述
      • 配方
        • 概述
        • 自定义配方
        • 原料
        • 非数据包配方
      • 战利品表
      • 全局战利品修改器
      • 标签
      • 进度
      • 条件性加载数据
  • 数据生成
    • 概述
    • 客户端资源(Assets)
      • 模型提供者
      • 语言提供者
      • 音效提供者
    • 服务端数据(Data)
      • 配方提供者
      • 战利品表提供者
      • 标签提供者
      • 进度提供者
      • 全局战利品修改器提供者
      • 数据包注册表对象提供者
  • 杂项功能
    • 配置
    • 键盘布局
    • 游戏测试
    • Forge更新检查器
    • 调试分析器
  • 进阶主题
    • 访问转换器
  • 向Forge做出贡献
    • 概述
    • Pull Request准则
  • 旧版本
    • 概述
    • 移植到当前版本

资源

资源是游戏使用的额外数据,存储在数据文件中,而不是代码中。Minecraft有两个主要的资源系统:一个在逻辑客户端上,用于模型、纹理和本地化等视觉效果,称为assets(资源),另一个在用于游戏的逻辑服务端上,如配方和战利品表,称为data(数据)。资源包(Resource pack)控制前者,而数据包(Datapack)控制后者。

在默认的模组开发工具包中,assets和data目录位于项目的src/main/resources目录下。

如果启用了多个资源包或数据包,它们会被合并。通常,堆栈顶部包中的文件会覆盖下面的文件;但是,对于某些文件,例如本地化文件和标签,数据实际上是按内容合并的。模组在其resources目录中定义资源和数据包,但它们被视为“模组资源”包的子集。不能禁用模组资源包,但它们可以被其他资源包覆盖。可以使用原版的/datapack命令禁用模组数据包。

所有资源都应该有遵循蛇形命名法(Snake Case)的路径和文件名(小写,使用“_”表示单词边界),这在1.11及更高版本中得到了强制执行。

ResourceLocation

Minecraft使用ResourceLocation识别资源。ResourceLocation包含两部分:命名空间和路径。它通常指向assets/<namespace>/<ctx>/<path>处的资源,其中ctx是特定于上下文的路径片段,取决于ResourceLocation的使用方式。当从字符串中写入/读取为ResourceLocation时,它被视为<namespace>:<path>。如果省略了<namespace>:,那么当字符串被读取为ResourceLocation时,命名空间将始终默认为minecraft。模组应该将其资源放入与其mod id同名的命名空间中(例如,id为examplemod的模组应该分别将其资源放置在assets/examplemod和data/examplemod中,指向这些文件的ResourceLocation看起来像examplemod:<path>。)。这不是要求,并且在某些情况下,可能希望使用不同的(或者甚至不止一个)命名空间。ResourceLocation也在资源系统之外使用,因为它们恰好是唯一标识对象(例如[注册表][])的好方法。

Built with MkDocs using a custom theme. Hosted by Read the Docs.
Enable Dark Theme