MyTown GUI 快捷键

基本信息

属性 值
默认按键 M
分类 mytown.key
内部 ID mytown.key.gui
注册类 mytown.client.proxy.ClientProxy
监听类 mytown.client.handlers.InputHandler

功能

按下 M 键时,客户端会在本地打开 MyTown 主 GUI(GuiTown)。

按下后:

  1. InputHandler.keyInput 检测 keyBindings[0].isPressed();
  2. 调用 Minecraft.getMinecraft().thePlayer.openGui(...),传入 modid = MyTown2-Client、GUI id = 0,以及玩家当前坐标;
  3. MyTownGuiHandler.getClientGuiElement(0, ...) 被 FML 调用,返回 new GuiTown(player);
  4. GuiTown.initGui() 注册一个 (1, 1, 1, "Yo") 的 ButtonTown(当前为最小占位按钮,未挂事件)。

触发与限制

触发条件 行为
客户端按 M 打印日志 Key binding = mytown.key.gui 后打开 GuiTown
服务端按 M 无响应(监听器 @SideOnly(Side.CLIENT),且只在客户端注册)
玩家打开 GuiTown 后按 M 由于 GuiScreen 会拦截按键输入,通常不会重复触发;如未拦截,每次按下都会重新生成一个新 GuiTown 实例并覆盖当前 GUI。

坐标参数说明

openGui 调用传入 (int) Math.floor(posX)、posY、posZ —— 这些参数仅作为 IGuiHandler 的透传字段,目前 GuiTown 并不使用它们(玩家坐标参数目前是占位)。

相关条目