aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/makamys/neodymium/mixin
diff options
context:
space:
mode:
authormakamys <makamys@outlook.com>2022-06-24 09:59:15 +0200
committermakamys <makamys@outlook.com>2022-06-25 07:27:12 +0200
commitd5d08eb64a91c1a5b74e401037628260cfd8059c (patch)
treebf28db78fa10f92a28e82639943fe3cc409ee514 /src/main/java/makamys/neodymium/mixin
parent41c8ac491b8e168f871e8d5eec1a13208e272410 (diff)
downloadNeodymium-d5d08eb64a91c1a5b74e401037628260cfd8059c.tar.gz
Neodymium-d5d08eb64a91c1a5b74e401037628260cfd8059c.tar.bz2
Neodymium-d5d08eb64a91c1a5b74e401037628260cfd8059c.zip
DESTROOOOY
Delete unused LOD stuff. I can always restore it from Git history if I need it later.
Diffstat (limited to 'src/main/java/makamys/neodymium/mixin')
-rw-r--r--src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java72
-rw-r--r--src/main/java/makamys/neodymium/mixin/unused/lod/MixinChunkCache.java29
-rw-r--r--src/main/java/makamys/neodymium/mixin/unused/lod/MixinEntityRenderer.java32
-rw-r--r--src/main/java/makamys/neodymium/mixin/unused/lod/MixinRenderBlocks.java25
4 files changed, 1 insertions, 157 deletions
diff --git a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java
index 997ac67..a45257f 100644
--- a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java
+++ b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java
@@ -3,46 +3,28 @@ package makamys.neodymium.mixin;
import java.util.ArrayList;
import java.util.List;
-import org.lwjgl.opengl.GL11;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import makamys.neodymium.Config;
import makamys.neodymium.Neodymium;
import makamys.neodymium.ducks.IWorldRenderer;
import makamys.neodymium.renderer.ChunkMesh;
import makamys.neodymium.renderer.NeoRenderer;
-import makamys.neodymium.renderer.lod.FarChunkCache;
-import makamys.neodymium.renderer.lod.FarWorldRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.WorldRenderer;
-import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.world.ChunkCache;
-import net.minecraft.world.World;
/** Inserts hooks in WorldRenderer to listen for changes, and to grab the tessellator data right before rendering. */
@Mixin(WorldRenderer.class)
abstract class MixinWorldRenderer implements IWorldRenderer {
@Shadow
- public int posX;
- @Shadow
- public int posY;
- @Shadow
- public int posZ;
-
- @Shadow
private boolean isInFrustum;
@Shadow
public boolean[] skipRenderPass;
- @Shadow
- private int glRenderList;
@Shadow
public boolean needsUpdate;
@@ -52,22 +34,6 @@ abstract class MixinWorldRenderer implements IWorldRenderer {
public List<ChunkMesh> chunkMeshes;
- @Redirect(method = "setPosition", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RenderItem;renderAABB(Lnet/minecraft/util/AxisAlignedBB;)V"))
- private void redirectRenderAABB(AxisAlignedBB p1) {
- if(!FarWorldRenderer.class.isInstance(this.getClass())) {
- RenderItem.renderAABB(p1);
- }
- }
-
- @Redirect(method = "updateRenderer", at = @At(value = "NEW", target = "Lnet/minecraft/world/ChunkCache;"))
- private ChunkCache redirectConstructChunkCache(World p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8) {
- if(!FarWorldRenderer.class.isInstance(this.getClass())) {
- return new ChunkCache(p1, p2, p3, p4, p5, p6, p7, p8);
- } else {
- return new FarChunkCache(p1, p2, p3, p4, p5, p6, p7, p8);
- }
- }
-
@Inject(method = "updateRenderer", at = @At(value = "HEAD"))
private void preUpdateRenderer(CallbackInfo ci) {
saveDrawnStatus();
@@ -101,49 +67,13 @@ abstract class MixinWorldRenderer implements IWorldRenderer {
@Inject(method = "postRenderBlocks", at = @At(value = "HEAD"))
private void prePostRenderBlocks(int pass, EntityLivingBase entity, CallbackInfo ci) {
- if(insideUpdateRenderer && Neodymium.isActive() && !Config.disableChunkMeshes) {
+ if(insideUpdateRenderer && Neodymium.isActive()) {
if(chunkMeshes != null) {
chunkMeshes.add(ChunkMesh.fromTessellator(pass, WorldRenderer.class.cast(this), Tessellator.instance));
}
}
}
- @Redirect(method = "postRenderBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Tessellator;draw()I"))
- private int redirectPostRenderBlocksDraw() {
- if(!FarWorldRenderer.class.isInstance(this.getClass())) {
- return Tessellator.instance.draw();
- } else {
- Tessellator.instance.reset();
- return 0;
- }
- }
-
- // There's probably a nicer way to do this
-
- @Redirect(method = "postRenderBlocks", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glPopMatrix()V"))
- private void redirectPostRenderBlocksGL1() {
- if(!FarWorldRenderer.class.isInstance(this.getClass())) {
- GL11.glPopMatrix();
- }
- }
-
- @Redirect(method = "postRenderBlocks", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glEndList()V"))
- private void redirectPostRenderBlocksGL2() {
- if(!FarWorldRenderer.class.isInstance(this.getClass())) {
- GL11.glEndList();
- }
- }
-
- // XXX this is inconsistent, Forge callbacks are preserved in postRenderBlocks but not preRenderBlocks
-
- @Inject(method = "preRenderBlocks", at = @At(value = "HEAD"))
- private void preRenderBlocksInjector(CallbackInfo ci) {
- if(FarWorldRenderer.class.isInstance(this.getClass())) {
- Tessellator.instance.setTranslation((double)(-this.posX), (double)(-this.posY), (double)(-this.posZ));
- ci.cancel();
- }
- }
-
@Inject(method = "setDontDraw", at = @At(value = "HEAD"))
private void preSetDontDraw(CallbackInfo ci) {
if(Neodymium.isActive()) {
diff --git a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinChunkCache.java b/src/main/java/makamys/neodymium/mixin/unused/lod/MixinChunkCache.java
deleted file mode 100644
index 98dce9d..0000000
--- a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinChunkCache.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package makamys.neodymium.mixin.unused.lod;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-import makamys.neodymium.Neodymium;
-import makamys.neodymium.renderer.lod.FarChunkCache;
-import net.minecraft.world.ChunkCache;
-import net.minecraft.world.World;
-import net.minecraft.world.chunk.Chunk;
-
-/** Unused remnant from LODMod. Handles reusage of Chunks when a LOD chunk becomes loaded. */
-@Mixin(ChunkCache.class)
-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(Neodymium.isActive() && FarChunkCache.class.isInstance(this.getClass()) && chunk.isEmpty()) {
- Chunk myChunk = Neodymium.renderer.getChunkFromChunkCoords(p1, p2);
- if(myChunk != null) {
- chunk = myChunk;
- }
- }
- return chunk;
- }
-
-}
diff --git a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinEntityRenderer.java b/src/main/java/makamys/neodymium/mixin/unused/lod/MixinEntityRenderer.java
deleted file mode 100644
index 7ddade1..0000000
--- a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinEntityRenderer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package makamys.neodymium.mixin.unused.lod;
-
-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.neodymium.Neodymium;
-import net.minecraft.client.renderer.EntityRenderer;
-
-/** Unused remnant from LODMod. Handles changing fog distance. */
-@Mixin(EntityRenderer.class)
-abstract class MixinEntityRenderer {
-
- @Shadow
- private float farPlaneDistance;
-
- @Inject(method = "setupCameraTransform", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/EntityRenderer;farPlaneDistance:F", shift = At.Shift.AFTER, ordinal = 1))
- private void onConstructed(CallbackInfo ci) {
- if(Neodymium.isActive()) {
- farPlaneDistance *= Neodymium.renderer.getFarPlaneDistanceMultiplier();
- }
- }
-
- @Inject(method = "setupFog", at = @At(value = "RETURN"))
- private void afterSetupFog(int mode, float alpha, CallbackInfo ci) {
- if(Neodymium.isActive()) {
- Neodymium.renderer.afterSetupFog(mode, alpha, farPlaneDistance);
- }
- }
-}
diff --git a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinRenderBlocks.java b/src/main/java/makamys/neodymium/mixin/unused/lod/MixinRenderBlocks.java
deleted file mode 100644
index 0af9799..0000000
--- a/src/main/java/makamys/neodymium/mixin/unused/lod/MixinRenderBlocks.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package makamys.neodymium.mixin.unused.lod;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-import makamys.neodymium.Neodymium;
-import net.minecraft.block.Block;
-import net.minecraft.client.renderer.RenderBlocks;
-import net.minecraft.world.IBlockAccess;
-
-/** Unused remnant from LODMod. Disables a wall being drawn on the edges of chunks facing unloaded chunks. */
-@Mixin(RenderBlocks.class)
-abstract class MixinRenderBlocks {
-
- @Redirect(method = "renderBlockLiquid", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;shouldSideBeRendered(Lnet/minecraft/world/IBlockAccess;IIII)Z"))
- public boolean shouldSideBeRendered(Block block, IBlockAccess ba, int x, int y, int z, int w) {
- if(Neodymium.isActive()) {
- return Neodymium.renderer.shouldSideBeRendered(block, ba, x, y, z, w);
- } else {
- return block.shouldSideBeRendered(ba, x, y, z, w);
- }
- }
-
-}