Skip to content

Commit

Permalink
Initial Fabric work
Browse files Browse the repository at this point in the history
Rendering of the mine menu itself doesn´t work, but functionality 100% works. Sub screens to select options works just fine as well.
  • Loading branch information
GirafiStudios committed Dec 9, 2023
1 parent fa82e90 commit a8da86f
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 9 deletions.
2 changes: 1 addition & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ dependencies {
compileOnly group: 'org.spongepowered', name: 'mixin', version: '0.8.5'
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
implementation "mysticdrew:common-networking-common:${common_networking}-${minecraft_version}"
implementation "fuzs.forgeconfigapiport:forgeconfigapiport-fabric:${forge_config_api_port}"
implementation "fuzs.forgeconfigapiport:forgeconfigapiport-common:${forge_config_api_port}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public static void renderItems(GuiGraphics guiGraphics) {

for (int i = 0; i < RadialMenu.MAX_ITEMS; i++) {
MenuItem item = RadialMenu.getActiveArray()[i];
Item menuButton = BuiltInRegistries.ITEM.get(new ResourceLocation(Config.GENERAL.menuButtonIcon.get().toString()));
Item menuButton = BuiltInRegistries.ITEM.get(new ResourceLocation(Config.GENERAL.menuButtonIcon.get()));
ItemStack stack = (item != null && !item.icon.isEmpty()) ? item.icon : (menuButton == null ? ItemStack.EMPTY : new ItemStack(menuButton));

double angle = (ANGLE_PER_ITEM * i);
Expand Down
3 changes: 1 addition & 2 deletions common/src/main/resources/minemenu.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ accessible method net/minecraft/client/gui/screens/controls/KeyBindsList$Ent
accessible method net/minecraft/client/gui/components/AbstractButton renderWidget (Lnet/minecraft/client/gui/GuiGraphics;IIF)V
accessible field net/minecraft/client/KeyMapping key Lcom/mojang/blaze3d/platform/InputConstants$Key;
accessible field net/minecraft/client/gui/components/AbstractButton SPRITES Lnet/minecraft/client/gui/components/WidgetSprites;


accessible field net/minecraft/client/renderer/GameRenderer renderBuffers Lnet/minecraft/client/renderer/RenderBuffers;
4 changes: 2 additions & 2 deletions fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ dependencies {
}

loom {
if(file("src/main/resources/${mod_id}.accesswidener").exists()){
accessWideners(file("src/main/resources/${mod_id}.accesswidener"))
if (project(":common").file("src/main/resources/${mod_id}.accesswidener").exists()) {
accessWidenerPath.set(project(":common").file("src/main/resources/${mod_id}.accesswidener"))
}
mixin {
defaultRefmapName.set("${mod_id}.refmap.json")
Expand Down
17 changes: 16 additions & 1 deletion fabric/src/main/java/com/girafi/minemenu/MineMenu.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,33 @@
package com.girafi.minemenu;

import com.girafi.minemenu.data.menu.RadialMenu;
import com.girafi.minemenu.gui.RadialMenuScreen;
import com.girafi.minemenu.handler.KeyboardHandlerHelper;
import com.girafi.minemenu.util.Config;
import fuzs.forgeconfigapiport.api.config.v3.ForgeConfigRegistry;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.loader.api.FabricLoader;
import net.neoforged.fml.config.ModConfig;

public class MineMenu implements ModInitializer {

@Override
public void onInitialize() {
MineMenuCommon.loadCommon(FabricLoader.getInstance().getGameDir().toFile());

MineMenuCommon.setupMenuLoader();
KeyBindingHelper.registerKeyBinding(MineMenuCommon.WHEEL);
ForgeConfigRegistry.INSTANCE.register(Constants.MOD_ID, ModConfig.Type.COMMON, Config.spec);

ClientTickEvents.END_CLIENT_TICK.register((mc) -> {
RadialMenu.tickTimer();

if ((mc.level == null || mc.isPaused()) && RadialMenuScreen.active) {
RadialMenuScreen.deactivate();
}

KeyboardHandlerHelper.onClientTick();
});
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.girafi.minemenu.mixin;

import com.girafi.minemenu.gui.RadialMenuScreen;
import com.girafi.minemenu.handler.ClientTickHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.renderer.GameRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(GameRenderer.class)
public class MixinGameRenderer {

@Inject(at = @At("TAIL"), method = "render(FJZ)V")
private void render(float f, long l, boolean b, CallbackInfo info) {
GameRenderer gameRenderer = (GameRenderer) (Object) this;
Minecraft mc = gameRenderer.getMinecraft();

if (mc.level != null && !mc.options.hideGui && !mc.isPaused() && RadialMenuScreen.active) {
System.out.println("RENDER MINE MENU");
GuiGraphics guiGraphics = new GuiGraphics(mc, gameRenderer.renderBuffers.bufferSource());
ClientTickHelper.renderButtonBackgrounds();
ClientTickHelper.renderItems(guiGraphics);
ClientTickHelper.renderText(guiGraphics);
}
}
}
2 changes: 1 addition & 1 deletion fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"fabric-api": "*",
"minecraft": "1.20.2",
"java": ">=17",
"fabric-key-binding-api-v1": "*"
"forgeconfigapiport": ">=9.1.2"
},
"suggests": {
"another-mod": "*"
Expand Down
2 changes: 1 addition & 1 deletion fabric/src/main/resources/minemenu.fabric.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"refmap": "${mod_id}.refmap.json",
"compatibilityLevel": "JAVA_17",
"mixins": [

"MixinGameRenderer"
],
"client": [
],
Expand Down

0 comments on commit a8da86f

Please sign in to comment.