本篇教程由作者设定未经允许禁止转载。

主页

PackMenu允许用户自定义主菜单

它的配置文件应该是这样的:(这是默认配置文件)

#配置文件

"forge info" {
    # 该元素的锚点。 [default: FORGE]
    S:"Anchor Point"=FORGE

    # 该元素的X偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"X Offset"=0

    # 该元素的Y偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"Y Offset"=0
}


general {
    # 是否绘制forge信息。  将包括测试版和更新警告。 [default: true]
    B:"Draw Forge Info"=true

    # 是否绘制“Java Edition”文本。 [default: true]
    B:"Draw Java Edition"=true

    # 是否启用原版的背景和它的淡入。 启用这个功能会禁用自定义背景选项。 [default: false]
    B:"Draw Panorama"=false

    # 是否绘制splash文本。 [default: true]
    B:"Draw Splash"=true

    # 是否绘制标题(巨大的minecraft文本)。 [default: true]
    B:"Draw Title"=true

    # 从/resources而不是/resources.zip加载资源包(true从/resources文件夹加载false从材质包加载) [default: true]
    B:"Folder Pack"=true

    # 是否启用动画淡入效果。 [default: false]
    B:"Panorama Fade In"=false

    # 动画速度的倍数。 [range: 0.01 ~ 100.0, default: 1.0]
    S:"Panorama Speed"=1.0

    #看不懂欢迎评论
    # The number of variations of panorama that exist.  Panorama files other than the original set must have the form panorama<y>_<z>.png.  For example the first file of varation #2 would be panorama1_0.png [range: 1 ~ 10, default: 1]
    I:"Panorama Variations"=1
}


"java edition text" {
    # 该元素的锚点。 [default: JAVAED]
    S:"Anchor Point"=JAVAED

    # 该元素的X偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"X Offset"=0

    # 该元素的Y偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"Y Offset"=0
}


logo {
    # logo的锚点。 锚点的类型可以在wiki上找到。 [default: DEFAULT_LOGO]
    S:"Anchor Point"=DEFAULT_LOGO

    # logo的高度。 [range: 0 ~ 500000, default: 100]
    I:Height=100

    # logo材质的高度。 [range: 0 ~ 500000, default: 300]
    I:"Texture Height"=300

    # logo材质的位置。 (必须是png格式文件,而且应该包含扩展名) [default: packmenu:textures/gui/logo.png]
    S:"Texture Path"=packmenu:textures/gui/logo.png

    # logo材质的宽度。 [range: 0 ~ 500000, default: 300]
    I:"Texture Width"=300

    # logo的宽度。 [range: 0 ~ 500000, default: 100]
    I:Width=100

    # logo的X偏移量。 [range: -500000 ~ 500000, default: -650]
    I:"X Offset"=-650

    # logo的Y偏移量。 [range: -500000 ~ 500000, default: 0]
    I:"Y Offset"=0
}


slideshow {
    # 背景轮换间隔多长时间。 [range: 1 ~ 1000000, default: 200]
    I:Duration=200

    # 背景的轮换图片列表。 如果为空,则忽略轮换背景。 [default: ]
    S:Textures <
     >

    # 每张图片持续多长时间。 [range: 1 ~ 1000000, default: 20]
    I:"Transition Duration"=20
}


"splash text" {
    # splash就是标题右边的闪黄字
    # 该元素的锚点。[default: SPLASH]
    S:"Anchor Point"=SPLASH

    # splash 文本的颜色。[range: -2147483647 ~ 2147483647, default: -256]
    I:Color=-256

    # splash文本的旋转值。 [range: -360.0 ~ 360.0, default: -20.0]
    S:Rotation=-20.0

    # 该元素的X偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"X Offset"=0

    # 该元素的Y偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"Y Offset"=0
}


support {
    # 链接到支持者页面的URL。 [default: https://www.patreon.com/Shadows_of_Fire?fan_landing=true]
    S:"Patreon Url"=https://www.patreon.com/Shadows_of_Fire?fan_landing=true
}


title {
    # 该元素的锚点。 [default: TITLE]
    S:"Anchor Point"=TITLE

    # 该元素的X偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"X Offset"=0

    # 该元素的Y偏移量。 [range: -1000 ~ 1000, default: 0]
    I:"Y Offset"=0
}



按钮官方wiki

要新建一个按钮你应该在.\packmenu\resources\assets\packmenu\buttons下新建一个json文件

第一次启动会生成原版的按钮的例子

例如下面的是单人按钮

{
    "x": -100,
    "y": 0,
    "width": 200,
    "height": 20,
    "langKey": "menu.singleplayer",
    "action": "OPEN_GUI",
    "data": "SINGLEPLAYER"
}

以下为可选键值:

"x":                           [Required] (Integer) 从屏幕中心的X偏移。

"y":                           [Required] (Integer) 从屏幕中心的Y偏移。

"width":                   [Required] (Integer) 此按钮的宽度。

"height":                  [Required] (Integer) 此按钮的高度。

"texture":                 [Semi-Optional] (String) 这个按钮的纹理。 默认为原版的widgets.png
"u":                          [Optional] (Integer) 按钮开始绘制的纹理X坐标。

"v":                          [Optional] (Integer) 按钮开始绘制时的纹理Y坐标。

"hoverU":                [Semi-Optional] (Integer) 悬停时按钮的纹理X坐标。

"hoverV":                [Semi-Optional] (Integer) 按钮在悬停时的纹理Y坐标。

"texWidth":             [Semi-Optional] (Integer) 该按钮的纹理文件的宽度。

"texHeight":            [Semi-Optional] (Integer) 这个按钮的纹理文件的高度。

"widgets":               [Optional] (Boolean) 是否使用widgets.png纹理文件。 如果 "texture "中含有widgets这个词,默认为true。

"langKey":               [Optional] (String) 要在这个按钮上绘制的文本的语言键。

"hoverLangKey":     [Optional] (String) 当悬停时在该按钮上绘制的文本的语言键。

"action":                  [Required] (String) 当此按钮被点击时会发生什么。 参见下面的 "按钮动作"。

"data":                    [Optional] (Variable Type) 取决于 "action "的值的额外数据。 参见下面的 "按钮动作"。

"fontColor":            [Optional] (Integer) 该按钮上文本的颜色。 见关于颜色的说明。

"hoverFontColor":  [Optional] (Integer) 悬停时文本的颜色。 参见颜色的说明。

"anchor":                [Semi-Optional] (String) 该按钮的锚点。参见下面的 "锚点"。

"textXOffset":         [Optional] (Integer) 在此按钮上绘制的文本的X偏移。 默认为0。

"textYOffset":         [Optional] (Integer) 在此按钮上绘制的文本的Y偏移。 默认为-4。

"dropShadow":      [Optional] (Boolean) 按钮上的文本是否会绘制阴影。

"active":                 [Optional] (Boolean) 决定该按钮是否可以点击。 如果禁用,该按钮不能被交互。

别和我说你看不懂[]和()里单词的意思


按钮操作

按钮操作是一组预定义的操作, 每个操作有与其关联的附加值。 对应"action": "OPEN_GUI" 该项,值即data项内内容

- CONNECT_TO_SERVER 值:字符串形式的服务器 IP 地址。

- OPEN_GUI                    值:GUI 类型为字符串。GUI 类型定义如下。

- OPEN_URL                   值:要以字符串形式打开的 URL。

- REALMS

- RELOAD

- QUIT

- NONE

- LOAD_WORLD(未实现)


用于按钮操作OPEN_GUI,这些是 PackMenu 可以打开的各种类型的菜单的标识符。

- SINGLEPLAYER

- MULTIPLAYER

- MODS

- LANGUAGE

- OPTIONS

- ACCESSIBILITY

- RESOURCE_PACKS

- SUPPORTERS



锚点

PackMenu 元素可以锚定在屏幕上的不同点,指示它们在偏移量之前的位置。目前,存在以下锚点:

- TOP_LEFT

- TOP_CENTER

- TOP_RIGHT

- MIDDLE_LEFT

- MIDDLE_CENTER

- MIDDLE_RIGHT

- BOTTOM_LEFT

- BOTTOM_CENTER

- BOTTOM_RIGHT

- DEFAULT

- DEFAULT_LOGO

别和我说你看不懂



背景

你可以直接替换这张图片来替换背景packmenu\resources\assets\packmenu\textures\gui\background.png

或者修改设置的slideshow项来启用轮播背景


如果有错或未提到的欢迎在短评提出

PS:PackMenu 所需的任何颜色都必须以整数形式提供。此整数是通过将十六进制颜色转换为十进制来获得的。这意味着,例如,白色 (0xFFFFFF) 表示为16777215。黑色 (0x000000) 表示为 0。