Skip to content

Commit

Permalink
Merge pull request #23 from Protonull/fix-forge
Browse files Browse the repository at this point in the history
Fix Forge fuckery
  • Loading branch information
okx-code authored Aug 21, 2024
2 parents f6f0263 + 4171648 commit a545105
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 12 deletions.
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,6 +28,6 @@
"fabric": "*"
},
"mixins": [
"civmodern.mixins.json"
"civmodern.common.mixins.json"
]
}
9 changes: 8 additions & 1 deletion forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ architectury {

loom {
forge {
mixinConfig "civmodern.mixins.json"
mixinConfig "civmodern.common.mixins.json"
mixinConfig "civmodern.forge.mixins.json"
}
}

Expand All @@ -19,6 +20,12 @@ configurations {
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentForge.extendsFrom common

// Bizarre hack to make Forge work on Forge 50+
// https://discord.com/channels/792699517631594506/792701725106634783/1272848116864909314
configureEach {
resolutionStrategy.force("net.sf.jopt-simple:jopt-simple:5.0.4")
}
}

dependencies {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package sh.okx.civmodern.forge;

import net.minecraftforge.client.ConfigScreenHandler;
import net.minecraftforge.client.event.RenderLevelStageEvent;
import net.minecraftforge.client.event.ScreenEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
Expand All @@ -14,7 +12,6 @@
import org.apache.logging.log4j.Logger;
import sh.okx.civmodern.common.AbstractCivModernMod;
import sh.okx.civmodern.common.events.ClientTickEvent;
import sh.okx.civmodern.common.events.PostRenderGameOverlayEvent;

@Mod("civmodern")
public class ForgeCivModernBootstrap {
Expand Down Expand Up @@ -47,9 +44,4 @@ public void onClientTick(TickEvent.ClientTickEvent event) {
mod.eventBus.post(new ClientTickEvent());
}
}

@SubscribeEvent
public void onRender(ScreenEvent.Render event) {
mod.eventBus.post(new PostRenderGameOverlayEvent(event.getGuiGraphics(), event.getPartialTick()));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package sh.okx.civmodern.forge.mixins;

import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiGraphics;
import org.jetbrains.annotations.NotNull;
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;
import sh.okx.civmodern.common.AbstractCivModernMod;
import sh.okx.civmodern.common.events.PostRenderGameOverlayEvent;

/**
* This didn't use to be necessary thanks to the RenderGuiEvent.Post event, but that seems to have been removed and
* there's no equivalent that I am aware of. This is a stopgap measure until an equivalent or better is found.
*/
@Mixin(Gui.class)
public abstract class PostGuiRenderMixin {
@Inject(
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/gui/LayeredDraw;render(Lnet/minecraft/client/gui/GuiGraphics;F)V",
shift = At.Shift.AFTER
)
)
protected void civmodern$emitPostRenderEvent(
final @NotNull GuiGraphics guiGraphics,
final float partialTick,
final @NotNull CallbackInfo ci
) {
AbstractCivModernMod.getInstance().eventBus.post(new PostRenderGameOverlayEvent(
guiGraphics,
partialTick
));
}
}
4 changes: 2 additions & 2 deletions forge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
modLoader = "javafml"
loaderVersion = "[49,)"
loaderVersion = "[50,)"
issueTrackerURL = "${mod_issues_url}"
license = "${copyright_licence}"

Expand All @@ -15,7 +15,7 @@ authors = "Okx"
[[dependencies.civmodern]]
modId = "forge"
mandatory = true
versionRange = "[49,)"
versionRange = "[50,)"
ordering = "NONE"
side = "CLIENT"

Expand Down
14 changes: 14 additions & 0 deletions forge/src/main/resources/civmodern.forge.mixins.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"required": true,
"minVersion": "0.8",
"package": "sh.okx.civmodern.forge.mixins",
"compatibilityLevel": "JAVA_17",
"mixins": [],
"client": [
"PostGuiRenderMixin"
],
"server": [],
"injectors": {
"defaultRequire": 1
}
}

0 comments on commit a545105

Please sign in to comment.