Skip to content

Commit

Permalink
esc menu
Browse files Browse the repository at this point in the history
  • Loading branch information
PTOM76 committed Feb 18, 2023
1 parent 6b609d1 commit 837676d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@

import com.github.ptom76.tutorialfabricmod.client.render.entity.EntityRenderers;
import com.github.ptom76.tutorialfabricmod.client.screen.Screens;
import com.github.ptom76.tutorialfabricmod.mixin.GridWidgetAccessor;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.minecraft.client.gui.screen.GameMenuScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.gui.widget.GridWidget;
import net.minecraft.text.Text;

import java.util.List;

@Environment(EnvType.CLIENT)
public class TutorialFabricClientMod implements ClientModInitializer {
Expand All @@ -19,5 +28,20 @@ public void onInitializeClient() {

// キーバインドの登録
KeyBindings.init();


ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
if (!(screen instanceof GameMenuScreen)) return;
ClickableWidget gridWidget = net.fabricmc.fabric.api.client.screen.v1.Screens.getButtons(screen).get(0);
if (gridWidget instanceof GridWidget) {
List<ClickableWidget> widgets = ((GridWidgetAccessor)gridWidget).getChildren();

ButtonWidget helloWorldBtn = ButtonWidget.builder(Text.of("Hello, World!"), (widget) -> {
if (client.player != null)
client.player.sendMessage(Text.of("Hello, World!"));
}).dimensions(screen.width / 2 - 102, screen.height / 4 + 128, 204, 20).build();
widgets.add(helloWorldBtn);
}
});
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.ptom76.tutorialfabricmod.mixin;

import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.gui.widget.GridWidget;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

import java.util.List;

@Mixin(GridWidget.class)
public interface GridWidgetAccessor {
@Accessor
List<ClickableWidget> getChildren();
}
1 change: 1 addition & 0 deletions src/main/resources/tutorialfabricmod.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"StuffTimer"
],
"client": [
"GridWidgetAccessor"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit 837676d

Please sign in to comment.