Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: checkout repository
uses: actions/checkout@v3
- name: validate gradle wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/actions/wrapper-validation@v3
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ yarn_mappings=b1.7.3+c6a9668
loader_version=0.15.6-babric.1

# Mod Properties
mod_version=1.1.7
mod_version=1.1.8
maven_group=net.mine_diver
archives_base_name=SmoothBeta

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package net.mine_diver.smoothbeta.client;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;

@Environment(EnvType.CLIENT)
public class IncompatibleOSScreen extends Screen {
private int ticksRan = 0;

public IncompatibleOSScreen() {
}

public void tick() {
++this.ticksRan;
}

public void init() {
}

protected void buttonClicked(ButtonWidget button) {
}

protected void keyPressed(char character, int keyCode) {
}

public void render(int mouseX, int mouseY, float delta) {
this.renderBackground();
this.drawCenteredTextWithShadow(this.textRenderer, "Operating system not supported!", this.width / 2, this.height / 4 - 60 + 20, 16777215);
this.drawCenteredTextWithShadow(this.textRenderer, "MacOS is not supported by smoothbeta.", this.width / 2, this.height / 4 - 60 + 60 + 0, 10526880);
super.render(mouseX, mouseY, delta);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package net.mine_diver.smoothbeta.mixin.client;

import net.minecraft.client.Minecraft;
import net.minecraft.util.OperatingSystem;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(Minecraft.class)
public interface MinecraftAccessor {
@Invoker("logGlError")
void smoothbeta_printOpenGLError(String location);

@Invoker("getOperatingSystem")
OperatingSystem smoothbeta_getOperatingSystem();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package net.mine_diver.smoothbeta.mixin.client;

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.mine_diver.smoothbeta.client.IncompatibleOSScreen;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.OperatingSystem;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

@Environment(EnvType.CLIENT)
@Mixin(Minecraft.class)
public abstract class MinecraftMixin {

@WrapOperation(
method = "init",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/Minecraft;setScreen(Lnet/minecraft/client/gui/screen/Screen;)V"
)
)
private void smoothbeta_init(Minecraft instance, Screen screen, Operation<Void> original) {
OperatingSystem os = ((MinecraftAccessor) this).smoothbeta_getOperatingSystem();

if (OperatingSystem.MACOS == os) {
screen = new IncompatibleOSScreen();
}

original.call(instance, screen);
}
}
4 changes: 4 additions & 0 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,9 @@
"depends": {
"minecraft": "1.0.0-beta.7.3",
"stationapi": ">=2.0.0-alpha.3"
},

"breaks": {
"macula": "*"
}
}
1 change: 1 addition & 0 deletions src/main/resources/smoothbeta.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"compatibilityLevel": "JAVA_8",
"client": [
"client.MinecraftAccessor",
"client.MinecraftMixin",
"client.MixinEntityRendererDispatcher",
"client.MixinTileEntityRenderDispatcher",
"client.multidraw.ChunkRendererMixin",
Expand Down