aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/makamys/lodmod/mixin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/makamys/lodmod/mixin')
-rw-r--r--src/main/java/makamys/lodmod/mixin/MixinChunkCache.java5
-rw-r--r--src/main/java/makamys/lodmod/mixin/MixinEntityRenderer.java25
-rw-r--r--src/main/java/makamys/lodmod/mixin/MixinMinecraftServer.java30
-rw-r--r--src/main/java/makamys/lodmod/mixin/MixinRenderGlobal.java4
-rw-r--r--src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java19
5 files changed, 35 insertions, 48 deletions
diff --git a/src/main/java/makamys/lodmod/mixin/MixinChunkCache.java b/src/main/java/makamys/lodmod/mixin/MixinChunkCache.java
index bbfcca1..c5b6f33 100644
--- a/src/main/java/makamys/lodmod/mixin/MixinChunkCache.java
+++ b/src/main/java/makamys/lodmod/mixin/MixinChunkCache.java
@@ -4,6 +4,7 @@ import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
+import makamys.lodmod.LODMod;
import makamys.lodmod.renderer.FarChunkCache;
import makamys.lodmod.renderer.MyRenderer;
import net.minecraft.world.ChunkCache;
@@ -16,8 +17,8 @@ abstract class MixinChunkCache {
@Redirect(method = "<init>*", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getChunkFromChunkCoords(II)Lnet/minecraft/world/chunk/Chunk;"))
private Chunk redirectGetChunkFromChunkCoords(World world, int p1, int p2) {
Chunk chunk = world.getChunkFromChunkCoords(p1, p2);
- if(FarChunkCache.class.isInstance(this.getClass()) && chunk.isEmpty()) {
- Chunk myChunk = MyRenderer.getChunkFromChunkCoords(p1, p2);
+ if(LODMod.isActive() && FarChunkCache.class.isInstance(this.getClass()) && chunk.isEmpty()) {
+ Chunk myChunk = LODMod.renderer.getChunkFromChunkCoords(p1, p2);
if(myChunk != null) {
chunk = myChunk;
}
diff --git a/src/main/java/makamys/lodmod/mixin/MixinEntityRenderer.java b/src/main/java/makamys/lodmod/mixin/MixinEntityRenderer.java
index 544d131..4fe081c 100644
--- a/src/main/java/makamys/lodmod/mixin/MixinEntityRenderer.java
+++ b/src/main/java/makamys/lodmod/mixin/MixinEntityRenderer.java
@@ -8,6 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import makamys.lodmod.LODMod;
import makamys.lodmod.renderer.MyRenderer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.EntityRenderer;
@@ -22,23 +23,29 @@ abstract class MixinEntityRenderer {
@Inject(method = "setupCameraTransform", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/EntityRenderer;farPlaneDistance:F", shift = At.Shift.AFTER, args = "log=true", ordinal = 0))
private void onConstructed(CallbackInfo ci) {
- farPlaneDistance *= 4;
+ if(LODMod.isActive()) {
+ farPlaneDistance *= 4;
+ }
}
@Inject(method = "renderWorld", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glAlphaFunc(IF)V", shift = At.Shift.AFTER, ordinal = 1))
private void afterSortAndRender(float alpha, long something, CallbackInfo ci) {
- Minecraft.getMinecraft().entityRenderer.enableLightmap((double)alpha);
- MyRenderer.beforeRenderTerrain();
- Minecraft.getMinecraft().entityRenderer.disableLightmap((double)alpha);
+ if(LODMod.isActive()) {
+ Minecraft.getMinecraft().entityRenderer.enableLightmap((double)alpha);
+ LODMod.renderer.beforeRenderTerrain();
+ Minecraft.getMinecraft().entityRenderer.disableLightmap((double)alpha);
+ }
}
@Redirect(method = "setupFog", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glFogf(IF)V"))
private void afterSetupFog(int pname, float param, int mode, float alpha) {
- EntityLivingBase var3 = Minecraft.getMinecraft().renderViewEntity;
- if(pname == GL11.GL_FOG_START && mode != 999 && mode != -1 && !var3.isPotionActive(Potion.blindness) && !Minecraft.getMinecraft().theWorld.provider.doesXZShowFog((int)var3.posX, (int)var3.posZ)) {
- GL11.glFogf(pname, farPlaneDistance * 0.2f);
- } else {
- GL11.glFogf(pname, param);
+ if(LODMod.isActive()) {
+ EntityLivingBase var3 = Minecraft.getMinecraft().renderViewEntity;
+ if(pname == GL11.GL_FOG_START && mode != 999 && mode != -1 && !var3.isPotionActive(Potion.blindness) && !Minecraft.getMinecraft().theWorld.provider.doesXZShowFog((int)var3.posX, (int)var3.posZ)) {
+ GL11.glFogf(pname, farPlaneDistance * 0.2f);
+ } else {
+ GL11.glFogf(pname, param);
+ }
}
}
}
diff --git a/src/main/java/makamys/lodmod/mixin/MixinMinecraftServer.java b/src/main/java/makamys/lodmod/mixin/MixinMinecraftServer.java
deleted file mode 100644
index 747cbb8..0000000
--- a/src/main/java/makamys/lodmod/mixin/MixinMinecraftServer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package makamys.lodmod.mixin;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-import makamys.lodmod.renderer.MyRenderer;
-import net.minecraft.server.MinecraftServer;
-
-@Mixin(MinecraftServer.class)
-abstract class MixinMinecraftServer {
-
- @Shadow
- boolean worldIsBeingDeleted;
-
- @Inject(method = "stopServer", at = @At("HEAD"))
- public void stopServer(CallbackInfo ci) {
- if(!worldIsBeingDeleted) {
- MyRenderer.onStopServer();
- }
- }
-
- @Inject(method = "updateTimeLightAndEntities", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkSystem;networkTick()V"))
- public void preServerTick(CallbackInfo ci) {
- MyRenderer.serverTick();
- }
-
-}
diff --git a/src/main/java/makamys/lodmod/mixin/MixinRenderGlobal.java b/src/main/java/makamys/lodmod/mixin/MixinRenderGlobal.java
index f2b89fd..18f95a6 100644
--- a/src/main/java/makamys/lodmod/mixin/MixinRenderGlobal.java
+++ b/src/main/java/makamys/lodmod/mixin/MixinRenderGlobal.java
@@ -4,7 +4,7 @@ import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
-import makamys.lodmod.renderer.MyRenderer;
+import makamys.lodmod.LODMod;
import net.minecraft.client.renderer.RenderGlobal;
@Mixin(RenderGlobal.class)
@@ -12,7 +12,7 @@ abstract class MixinRenderGlobal {
@Redirect(method = "renderSortedRenderers", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderGlobal;renderAllRenderLists(ID)V"))
private void redirectRenderAllRenderLists(RenderGlobal thiz, int p1, double p2) {
- if(MyRenderer.renderWorld) {
+ if(LODMod.isActive() && LODMod.renderer.renderWorld) {
thiz.renderAllRenderLists(p1, p2);
}
}
diff --git a/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java b/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java
index abfcc4e..988b478 100644
--- a/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java
+++ b/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java
@@ -11,6 +11,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import makamys.lodmod.LODMod;
import makamys.lodmod.ducks.ITessellator;
import makamys.lodmod.ducks.IWorldRenderer;
import makamys.lodmod.renderer.ChunkMesh;
@@ -55,18 +56,24 @@ abstract class MixinWorldRenderer implements IWorldRenderer {
@Inject(method = "updateRenderer", at = @At(value = "HEAD"))
private void preUpdateRenderer(CallbackInfo ci) {
- chunkMeshes.clear();
+ if(LODMod.isActive()) {
+ chunkMeshes.clear();
+ }
}
@Inject(method = "updateRenderer", at = @At(value = "TAIL"))
private void postUpdateRenderer(CallbackInfo ci) {
- MyRenderer.onWorldRendererPost(WorldRenderer.class.cast(this));
- chunkMeshes.clear();
+ if(LODMod.isActive()) {
+ LODMod.renderer.onWorldRendererPost(WorldRenderer.class.cast(this));
+ chunkMeshes.clear();
+ }
}
@Inject(method = "postRenderBlocks", at = @At(value = "HEAD"))
private void prePostRenderBlocks(CallbackInfo ci) {
- chunkMeshes.add(((ITessellator)Tessellator.instance).toChunkMesh());
+ if(LODMod.isActive()) {
+ chunkMeshes.add(((ITessellator)Tessellator.instance).toChunkMesh());
+ }
}
@Redirect(method = "postRenderBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Tessellator;draw()I"))
@@ -107,7 +114,9 @@ abstract class MixinWorldRenderer implements IWorldRenderer {
@Inject(method = "setDontDraw", at = @At(value = "HEAD"))
private void preSetDontDraw(CallbackInfo ci) {
- MyRenderer.onDontDraw(WorldRenderer.class.cast(this));
+ if(LODMod.isActive()) {
+ LODMod.renderer.onDontDraw(WorldRenderer.class.cast(this));
+ }
}
@Override