酒石酸菌
本帖最后由 酒石酸菌 于 2018-2-10 16:11 编辑


Custom Main Menu 简单介绍


1.简介

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










2.文件结构

配置文件为游戏主文件夹下 config\CustomMainMenu\mainmenu.json 文件;

所有的图片文件地址都在游戏主文件夹下 resources\mainmenu 文件夹下。

目前这货好像还不支持 UFT-8 编码,所以还是别用中文了吧【还看着干什么,快去github轰炸作者吧,这作者是我见过最偷懒的作者】。

修改好了之后,在主界面按下 ctrl+r 键即可重载配置。

配置文件结构一般如下

  1. {
  2. "images": {
  3.         "图片一": {
  4.         },
  5.         "图片二": {
  6.         }
  7.     },

  8. "buttons": {
  9.         "按钮一": {      
  10.         },
  11.         "按钮二": {      
  12.         }
  13.     },

  14. "labels": {
  15.         "文本一": {      
  16.         },
  17.         "文本一": {      
  18.         }
  19.     },

  20. "other":{
  21.         "background":{         
  22.         }
  23.     }
  24. }
复制代码

3.背景的添加

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

    (1)静态背景:
  1. {
  2. "other":{
  3.         "background":{
  4.             "image":"mainmenu:001.png",
  5.             "mode":"fill"
  6.         }
  7.     }
  8. }
复制代码

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


(2)动态背景
  1. {
  2. "other":{
  3.     "background":{
  4.             "image" : "",
  5.             "slideshow":{
  6.                 "images" : ["mainmenu:001.png","mainmenu:002.png","mainmenu:003.png"],
  7.                 "displayDuration" : 100,
  8.                 "fadeDuration" : 40
  9.             }
  10.         }
  11.     }
  12. }
复制代码


4. 文字的添加
        网络加载文字:
  1. {
  2. "labels": {
  3.     "changelog":{
  4.           "text":"web:http://pastebin.com/raw.php?i=MmSCr6zV",
  5.           "posX" : 2,
  6.           "posY" : 0,
  7.           "color" : -1,
  8.           "alignment" : "left_center"
  9.         }
  10.     }
  11. }
复制代码

        硬编码文字加载【不支持中文哦,会乱码的】
  1. {
  2. "labels": {
  3.       "mojang": {
  4.           "text" : "Copyright Mojang AB. Do not distribute!",
  5.           "posX" : -197,
  6.           "posY" : -10,
  7.           "color" : -1,
  8.           "alignment" : "bottom_right"
  9.         }
  10.     }
  11. }
复制代码


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


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

5.图片的添加
    图片只能用png格式。
  1. {
  2.     "images":{
  3.         "picture":{
  4.             "image":"mainmenu:001.png",
  5.             "posX":-120,
  6.             "posY":-120,
  7.             "width":240,
  8.             "height":240,
  9.             "alignment":"center"
  10.         }
  11.     }
  12. }
复制代码


    除此之外还可以添加:

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

6.按钮的添加
  1. {
  2. "buttons":{
  3.         "singleplayer":{
  4.             "text":"menu.singleplayer",
  5.             "texture":"mainmenu:shortbutton.png",
  6.             "posX":-100,
  7.             "posY":-8,
  8.             "width":98,
  9.             "height":20,
  10.             "imageWidth":98,
  11.             "imageHeight":20,
  12.             "alignment":"center",
  13.             "action":{
  14.                 "type":"openGui",
  15.                 "gui":"singleplayer"
  16.             }
  17.         },
  18.         "ftbForums":{
  19.             "text":"FTB Forums",
  20.             "texture":"mainmenu:shortbutton.png",
  21.             "posX":2,
  22.             "posY":58,
  23.             "width":98,
  24.             "height":20,
  25.             "imageWidth":98,
  26.             "imageHeight":20,
  27.             "alignment":"center",
  28.             "action":{
  29.                 "type":"openLink",
  30.                 "link":"https://forum.feed-the-beast.com/forum/"
  31.             }
  32.         }
  33.     }
  34. }
复制代码



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

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


zjxx
听说是支持ANSI编码??

http://www.mcbbs.net/thread-733677-1-1.html
(猜猜那看到的)
只不过怎么全是CMM的教程

酒石酸菌
本帖最后由 酒石酸菌 于 2018-2-10 16:15 编辑

这是我去年夏天写的东西,前两天 4z 做了个 Markdown 转 BBCode 的工具,我就把它搬过来了。如果和别人有重复的,那我删掉吧 _(:з」∠)_
至于编码问题,其实这个属于作者的疏忽。在没有特定限定编码的情况下,会优先使用系统编码,导致了在 Windows 下直接 UTF-8 编码会乱码,如果在 Unix 系统下 UTF-8 书写就不会乱码。


AmethystSEA
感谢楼主的教程

MC_kemi
大佬的教程还是那么详细,不过希望更新一下最新版的,还希望有空能出一些这类mod的教程,比如FTBLib、FTBUtilities这类的

lliiooll
中文乱码只是需要转码,转为ANSI码就可以了

酒石酸菌
lliiooll 发表于 2018-5-5 15:22
中文乱码只是需要转码,转为ANSI码就可以了

然后  Linux 用户和 MacOS 用户发出了 MMP 的声音

AmethystSEA
gui背景可以支持高清图片吗,我放高像素的就显示到脚边了,挺难受的

酒石酸菌
弦弓音 发表于 2018-5-5 17:21
gui背景可以支持高清图片吗,我放高像素的就显示到脚边了,挺难受的

可以啊,显示边角是你没有设定显示方式吧

AmethystSEA
酒石酸菌 发表于 2018-5-7 12:57
可以啊,显示边角是你没有设定显示方式吧

怎么设置显示方式啊,按钮和标题我都需要设置高清的

酒石酸菌
弦弓音 发表于 2018-5-7 14:07
怎么设置显示方式啊,按钮和标题我都需要设置高清的

fill:适应,保证图片长宽比前提下,尽可能铺满屏幕。会适当裁剪图片。
stretch:拉伸,尽可能铺满屏幕,如果不合适会强制拉伸图片。
center:居中,不改变图片大小和比例,依据屏幕大小裁剪图片。
tile:平铺,重复图片铺满屏幕。

13050002
挺详细的 多学习学习

AmethystSEA

这样也不可以啊。。。

AmethystSEA
四个显示方式都尝试了,但就是在屏幕不同的位置显示边角

酒石酸菌
弦弓音 发表于 2018-5-7 22:06
四个显示方式都尝试了,但就是在屏幕不同的位置显示边角

emmmm,那就不清楚了

AmethystSEA
本帖最后由 弦弓音 于 2018-5-7 23:57 编辑

我现在改成了点击空白区域进入游戏,那个
hoverColor:鼠标指针悬浮上去的文字颜色
请问要填什么,RGB码和&都没有用,就是鼠标悬浮于gui然后text变黄我想改成亮白

AmethystSEA
没什么问题了,谢谢

酒石酸菌
弦弓音 发表于 2018-5-7 23:25
我现在改成了点击空白区域进入游戏,那个
hoverColor:鼠标指针悬浮上去的文字颜色
请问要填什么,RGB码和& ...

十进制的RGB码

某狮
谢谢楼主的细心教程!解决了我许多天的困惑

guting
大佬的教程真详细

kuaile412
大佬请问怎么让文字能够显示在线人数,还有调用语言文件中的key加载文字具体该怎么做呢?

w0998w
kuaile412 发表于 2018-8-8 19:04
大佬请问怎么让文字能够显示在线人数,还有调用语言文件中的key加载文字具体该怎么做呢? ...

我也是想问这个的

GC_YKE
其实CMM支持GBK编码的……不用UTF-8

酒石酸菌
本帖最后由 酒石酸菌 于 2019-1-19 00:26 编辑
GC_YKE 发表于 2019-1-18 22:43
其实CMM支持GBK编码的……不用UTF-8

是这样的,java 的 readStream 方法在默认情况是使用系统编码,这意味着在简体中文的 win 系统上使用的是 GB 编码,但是在 unix 系统,比如 MacOS 之类的上面则是 UTF-8 编码读取。

所以这一块为了兼容各个操作系统,应当甚至必须强制限定 UTF-8 编码,但是很遗憾,作者很明显没有意识到这一点,因为欧美作者常用的英文字符大多限制于 ACSII 编码的那些字符,无论是他们用 win 系统(大多为 ISO8859-1 编码)还是 unix 系统(用 UTF-8 编码),在 ASCII 字符内都是互相兼容的,所以他们没有意识到这个问题。

实际上无论是 Minecraft 官方还是 Forge 都无一例外对于所有文件读取限定了 utf-8 编码。

综上所述,并非是 CMM 支持 GB 编码,而是作者犯错误未能支持所致。



heguo
这个怎么改啊,就是客户端左下角的哪团字

kemonohito
推推推推推推推推推推推推推推推推推

花生小孩子
楼主你好,请问能搬运你的教程在我的搬运此mod的贴子里吗?

酒石酸菌
花生小孩子 发表于 2019-5-23 20:11
楼主你好,请问能搬运你的教程在我的搬运此mod的贴子里吗?

随便用,没有问题的

下一页 最后一页