iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0

ScreenHandler

我們完成畫面的Sreen類,現在要來完成ScreenHandler

public class CustomScreenHandler extends ScreenHandler {
    public CustomScreenHandler(int syncId, PlayerInventory playerInventory) {
        super(TheClassicofMountainsandOceans.CustomScreenHandler, syncId);  
    }

    @Override
    public ItemStack quickMove(PlayerEntity player, int slot) {
        return null;
    }

    @Override
    public boolean canUse(PlayerEntity player) {
        
        return true;
    }
}

這裡可以看到我們繼承了ScreenHandler,並且我們有覆寫兩個方法
qucikMove代表物品欄的物品有沒有快速移動的邏輯,例如按住Shift可以快速移動整組物品,這裡我們回傳null代表沒有特殊的邏輯。
canUse是玩家可不可以使用這個GUI,如果這個GUI有特定的限制可以在這裡寫邏輯,我們目前沒有這個需求就回傳true。

super中的customscreenhandler要先在主類中定義

public static final ScreenHandlerType<CustomScreenHandler> CustomScreenHandler = ScreenHandlerRegistry.registerSimple(new Identifier(TheClassicofMountainsandOceans.MOD_ID, "customscreenhandler"), CustomScreenHandler::new);

這樣這兩個class就算完成了。


上一篇
Minecraft Fabric Mod 模組製作 DAY25
下一篇
Minecraft Fabric Mod 模組製作 DAY27
系列文
Minecraft JAVA Fabric 模組製作 : 成為真正的創世神30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言