aboutsummaryrefslogtreecommitdiff
path: root/versions/src/main/java/cc/polyfrost/oneconfig/platform
diff options
context:
space:
mode:
authorWyvest <45589059+Wyvest@users.noreply.github.com>2022-07-02 06:12:23 +0700
committerWyvest <45589059+Wyvest@users.noreply.github.com>2022-07-02 06:12:23 +0700
commitd4bb5a94308d4379ef3d6cc7b9221ea0d98ff051 (patch)
tree9bb9b53e2823f73084780673763504f4098bae69 /versions/src/main/java/cc/polyfrost/oneconfig/platform
parentd2b1d57120bb51e76191302a58d935afe52b89df (diff)
downloadOneConfig-d4bb5a94308d4379ef3d6cc7b9221ea0d98ff051.tar.gz
OneConfig-d4bb5a94308d4379ef3d6cc7b9221ea0d98ff051.tar.bz2
OneConfig-d4bb5a94308d4379ef3d6cc7b9221ea0d98ff051.zip
Separate Minecraft dependant and non-dependant code
Diffstat (limited to 'versions/src/main/java/cc/polyfrost/oneconfig/platform')
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GLPlatformImpl.java67
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GuiPlatformImpl.java31
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/I18nPlatformImpl.java13
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/LoaderPlatformImpl.java26
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/MousePlatformImpl.java53
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/PlatformImpl.java12
-rw-r--r--versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/ServerPlatformImpl.java22
7 files changed, 224 insertions, 0 deletions
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GLPlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GLPlatformImpl.java
new file mode 100644
index 0000000..3ee962b
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GLPlatformImpl.java
@@ -0,0 +1,67 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.libs.universal.UMatrixStack;
+import cc.polyfrost.oneconfig.libs.universal.UMinecraft;
+import cc.polyfrost.oneconfig.platform.GLPlatform;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.WorldRenderer;
+import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
+import net.minecraft.client.shader.Framebuffer;
+
+@SuppressWarnings("unused")
+public class GLPlatformImpl implements GLPlatform {
+
+ @Override
+ public void drawRect(float x, float y, float x2, float y2, int color) {
+ if (x < x2) {
+ float i = x;
+ x = x2;
+ x2 = i;
+ }
+
+ if (y < y2) {
+ float i = y;
+ y = y2;
+ y2 = i;
+ }
+
+ float f = (float)(color >> 24 & 0xFF) / 255.0F;
+ float g = (float)(color >> 16 & 0xFF) / 255.0F;
+ float h = (float)(color >> 8 & 0xFF) / 255.0F;
+ float j = (float)(color & 0xFF) / 255.0F;
+ Tessellator tessellator = Tessellator.getInstance();
+ WorldRenderer worldRenderer = tessellator.getWorldRenderer();
+ GlStateManager.enableBlend();
+ GlStateManager.disableTexture2D();
+ GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
+ GlStateManager.color(g, h, j, f);
+ worldRenderer.begin(7, DefaultVertexFormats.POSITION);
+ worldRenderer.pos(x, y2, 0.0).endVertex();
+ worldRenderer.pos(x2, y2, 0.0).endVertex();
+ worldRenderer.pos(x2, y, 0.0).endVertex();
+ worldRenderer.pos(x, y, 0.0).endVertex();
+ tessellator.draw();
+ GlStateManager.enableTexture2D();
+ GlStateManager.disableBlend();
+ }
+
+ @Override
+ public void enableStencil() {
+ Framebuffer framebuffer = Minecraft.getMinecraft().getFramebuffer();
+ if (!framebuffer.isStencilEnabled()) {
+ framebuffer.enableStencil();
+ }
+ }
+
+ @Override
+ public float drawText(UMatrixStack matrixStack, String text, float x, float y, int color, boolean shadow) {
+ return UMinecraft.getFontRenderer().drawString(text, x, y, color, shadow);
+ }
+
+ @Override
+ public int getStringWidth(String text) {
+ return UMinecraft.getFontRenderer().getStringWidth(text);
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GuiPlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GuiPlatformImpl.java
new file mode 100644
index 0000000..6ea3c03
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GuiPlatformImpl.java
@@ -0,0 +1,31 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.libs.universal.UMinecraft;
+import cc.polyfrost.oneconfig.libs.universal.UScreen;
+import cc.polyfrost.oneconfig.platform.GuiPlatform;
+import net.minecraft.client.gui.GuiChat;
+import net.minecraft.client.gui.GuiScreen;
+
+@SuppressWarnings("unused")
+public class GuiPlatformImpl implements GuiPlatform {
+
+ @Override
+ public Object getCurrentScreen() {
+ return UScreen.getCurrentScreen();
+ }
+
+ @Override
+ public void setCurrentScreen(Object screen) {
+ UScreen.displayScreen((GuiScreen) screen);
+ }
+
+ @Override
+ public boolean isInChat() {
+ return getCurrentScreen() instanceof GuiChat;
+ }
+
+ @Override
+ public boolean isInDebug() {
+ return UMinecraft.getSettings().showDebugInfo;
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/I18nPlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/I18nPlatformImpl.java
new file mode 100644
index 0000000..1913238
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/I18nPlatformImpl.java
@@ -0,0 +1,13 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.platform.I18nPlatform;
+import net.minecraft.client.resources.I18n;
+
+@SuppressWarnings("unused")
+public class I18nPlatformImpl implements I18nPlatform {
+
+ @Override
+ public String format(String key, Object... args) {
+ return I18n.format(key, args);
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/LoaderPlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/LoaderPlatformImpl.java
new file mode 100644
index 0000000..01269cd
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/LoaderPlatformImpl.java
@@ -0,0 +1,26 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.platform.LoaderPlatform;
+import net.minecraftforge.fml.common.Loader;
+import net.minecraftforge.fml.common.ModContainer;
+
+@SuppressWarnings("unused")
+public class LoaderPlatformImpl implements LoaderPlatform {
+ @Override
+ public boolean isModLoaded(String id) {
+ return Loader.isModLoaded(id);
+ }
+
+ @Override
+ public boolean hasActiveModContainer() {
+ return Loader.instance().activeModContainer() != null;
+ }
+
+ @Override
+ public ActiveMod getActiveModContainer() {
+ ModContainer container = Loader.instance().activeModContainer();
+ if (container == null)
+ return null;
+ return new ActiveMod(container.getName(), container.getModId(), container.getVersion());
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/MousePlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/MousePlatformImpl.java
new file mode 100644
index 0000000..1276000
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/MousePlatformImpl.java
@@ -0,0 +1,53 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.platform.MousePlatform;
+import org.lwjgl.input.Mouse;
+
+@SuppressWarnings("unused")
+public class MousePlatformImpl implements MousePlatform {
+
+ @Override
+ public int getMouseX() {
+ return Mouse.getX();
+ }
+
+ @Override
+ public int getMouseY() {
+ return Mouse.getY();
+ }
+
+ @Override
+ public int getDWheel() {
+ return Mouse.getDWheel();
+ }
+
+ @Override
+ public int getMouseDX() {
+ return Mouse.getDX();
+ }
+
+ @Override
+ public int getMouseDY() {
+ return Mouse.getDY();
+ }
+
+ @Override
+ public boolean next() {
+ return Mouse.next();
+ }
+
+ @Override
+ public boolean getEventButtonState() {
+ return Mouse.getEventButtonState();
+ }
+
+ @Override
+ public int getEventButton() {
+ return Mouse.getEventButton();
+ }
+
+ @Override
+ public boolean isButtonDown(int button) {
+ return Mouse.isButtonDown(button);
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/PlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/PlatformImpl.java
new file mode 100644
index 0000000..7ad639c
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/PlatformImpl.java
@@ -0,0 +1,12 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.platform.Platform;
+import net.minecraft.client.Minecraft;
+
+@SuppressWarnings("unused")
+public class PlatformImpl implements Platform {
+ @Override
+ public boolean isCallingFromMinecraftThread() {
+ return Minecraft.getMinecraft().isCallingFromMinecraftThread();
+ }
+}
diff --git a/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/ServerPlatformImpl.java b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/ServerPlatformImpl.java
new file mode 100644
index 0000000..81454b0
--- /dev/null
+++ b/versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/ServerPlatformImpl.java
@@ -0,0 +1,22 @@
+package cc.polyfrost.oneconfig.platform.impl;
+
+import cc.polyfrost.oneconfig.libs.universal.UMinecraft;
+import cc.polyfrost.oneconfig.platform.ServerPlatform;
+import net.minecraft.client.entity.EntityPlayerSP;
+
+@SuppressWarnings("unused")
+public class ServerPlatformImpl implements ServerPlatform {
+
+ @Override
+ public boolean inMultiplayer() {
+ return UMinecraft.getWorld() != null && !UMinecraft.getMinecraft().isSingleplayer();
+ }
+
+ @Override
+ public String getServerBrand() {
+ EntityPlayerSP player = UMinecraft.getPlayer();
+ if (player == null)
+ return null;
+ return player.getClientBrand();
+ }
+}