diff options
author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-07-02 06:12:23 +0700 |
---|---|---|
committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-07-02 06:12:23 +0700 |
commit | d4bb5a94308d4379ef3d6cc7b9221ea0d98ff051 (patch) | |
tree | 9bb9b53e2823f73084780673763504f4098bae69 /versions/src/main/java/cc/polyfrost/oneconfig/platform | |
parent | d2b1d57120bb51e76191302a58d935afe52b89df (diff) | |
download | OneConfig-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')
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(); + } +} |