Custom Main Menu 文档

写一个 Custom Main Menu 的文档,国内好像还没有的样子


1.简介

Custom Main Menu 是一个能够自定义主界面的模组,需要配合 Resource Loader 模组使用。
采用json语法写的配置文件,可以热加载出自定义的样式。使用方式颇有点像CSS样表。许多著名的国外整合包无一例外都采用了这个模组。效果非常好,这里拿几个作者设计的样式给大家看看吧。(作者美工水平不咋行啊)

pic001

pic002

pic003

pic004

2.文件结构

配置文件为游戏主文件夹下config\CustomMainMenu\mainmenu.json文件; 所有的图片文件地址都在游戏主文件夹下resources\mainmenu文件夹下。
目前这货好像还不支持UFT-8编码,所以还是别用中文了吧【还看着干什么,快去github轰炸作者吧,这作者是我见过最偷懒的作者】。
修改好了之后,在主界面按下ctrl+r键即可重载配置。

配置文件结构一般如下

{
"images": {
        "图片一": {
        },
        "图片二": {
        }
    },

"buttons": {
        "按钮一": {      
        },
        "按钮二": {      
        }
    },

"labels": {
        "文本一": {      
        },
        "文本一": {      
        }
    },

"other":{
        "background":{          
        }
    }
}

3.背景的添加

背景分为动态背景和静态背景。

(1)静态背景:

{
"other":{
        "background":{
            "image":"mainmenu:001.png",
            "mode":"fill"
        }
    }
}

如案例所示,背景属于”other”分区,有两个参数可选:

(2)动态背景

{
"other":{
    "background":{
            "image" : "",
            "slideshow":{
                "images" : ["mainmenu:001.png","mainmenu:002.png","mainmenu:003.png"],
                "displayDuration" : 100,
                "fadeDuration" : 40
            }
        }
    }
}

4. 文字的添加

网络加载文字:

{
"labels": {
    "changelog":{
          "text":"web:http://pastebin.com/raw.php?i=MmSCr6zV",
          "posX" : 2,
          "posY" : 0,
          "color" : -1,
          "alignment" : "left_center"
        }
    }
}

硬编码文字加载【不支持中文哦,会乱码的】

{
"labels": {
      "mojang": {
          "text" : "Copyright Mojang AB. Do not distribute!",
          "posX" : -197,
          "posY" : -10,
          "color" : -1,
          "alignment" : "bottom_right"
        }
    }
}

除此之外还有几个属性可以选择添加:

推荐两个使用的颜色代码网站:

5.图片的添加

图片只能用png格式。

{
    "images":{
        "picture":{
            "image":"mainmenu:001.png",
            "posX":-120,
            "posY":-120,
            "width":240,
            "height":240,
            "alignment":"center"
        }
    }
}

除此之外还可以添加:

推荐一个好用的,制作minecraft样式文字图标的网站:textcraft

6.按钮的添加

{
"buttons":{
        "singleplayer":{
            "text":"menu.singleplayer",
            "texture":"mainmenu:shortbutton.png",
            "posX":-100,
            "posY":-8,
            "width":98,
            "height":20,
            "imageWidth":98,
            "imageHeight":20,
            "alignment":"center",
            "action":{
                "type":"openGui",
                "gui":"singleplayer"
            }
        },
        "ftbForums":{
            "text":"FTB Forums",
            "texture":"mainmenu:shortbutton.png",
            "posX":2,
            "posY":58,
            "width":98,
            "height":20,
            "imageWidth":98,
            "imageHeight":20,
            "alignment":"center",
            "action":{
                "type":"openLink",
                "link":"https://forum.feed-the-beast.com/forum/"
            }
        }
    }
}

除此之外还可以添加这几个参数

当然,还有我们最重要的action参数,action下必须要有type参数,可以传入openLink, openGui, quit, refresh, connectToServer, openFolder