我們完成畫面的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就算完成了。