diff options
| author | makamys <makamys@outlook.com> | 2022-06-24 09:59:15 +0200 |
|---|---|---|
| committer | makamys <makamys@outlook.com> | 2022-06-25 07:27:12 +0200 |
| commit | d5d08eb64a91c1a5b74e401037628260cfd8059c (patch) | |
| tree | bf28db78fa10f92a28e82639943fe3cc409ee514 /src/main/java/makamys | |
| parent | 41c8ac491b8e168f871e8d5eec1a13208e272410 (diff) | |
| download | Neodymium-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')
18 files changed, 40 insertions, 1181 deletions
diff --git a/src/main/java/makamys/neodymium/Config.java b/src/main/java/makamys/neodymium/Config.java index 48f46c9..6c72fde 100644 --- a/src/main/java/makamys/neodymium/Config.java +++ b/src/main/java/makamys/neodymium/Config.java @@ -21,10 +21,6 @@ import java.nio.file.Files; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; import java.nio.file.WatchService; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.lwjgl.input.Keyboard; @@ -64,18 +60,6 @@ public class Config { @ConfigBoolean(cat="debug", def=false) public static boolean wireframe; - // Unused LOD stuff - public static int chunkLoadsPerTick = 64; - public static List<Class<?>> blockClassBlacklist = Arrays.asList(); - public static double fogStart = 0.25f; - public static double fogEnd = 1f; - public static double farPlaneDistanceMultiplier = 1; - public static boolean forceVanillaBiomeTemperature = false; - public static boolean hideUnderVanillaChunks = false; - public static boolean disableChunkMeshes = false; - public static boolean disableSimpleMeshes = true; - public static boolean saveMeshes = false; - private static File configFile = new File(Launch.minecraftHome, "config/" + MODID + ".cfg"); private static WatchService watcher; @@ -169,29 +153,6 @@ public class Config { return needReload; } - // Unused - public static void loadConfigLOD(Configuration config) { - chunkLoadsPerTick = config.get("General", "chunkLoadsPerTick", 64).getInt(); - blockClassBlacklist = Arrays.stream(config.get("General", "blockClassBlacklist", "net.minecraft.block.BlockRotatedPillar;biomesoplenty.common.blocks.BlockBOPLog;gregapi.block.multitileentity.MultiTileEntityBlock").getString().split(";")) - .map(className -> { - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - return null; - } - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - fogStart = config.get("Fog", "fogStart", "0.4").getDouble(); - fogEnd = config.get("Fog", "fogEnd", "0.8").getDouble(); - farPlaneDistanceMultiplier = config.get("Fog", "farPlaneDistanceMultiplier", "1.0").getDouble(); - forceVanillaBiomeTemperature = config.get("Simple mesh generation", "forceVanillaBiomeTemperature", true).getBoolean(); - hideUnderVanillaChunks = config.getBoolean("hideUnderVanillaChunks", "render", true, ""); - disableChunkMeshes = config.getBoolean("disableChunkMeshes", "render", true, ""); - disableSimpleMeshes = config.getBoolean("disableSimpleMeshes", "render", false, ""); - saveMeshes = config.getBoolean("saveMeshes", "render", false, ""); - } - public static boolean reloadIfChanged(ReloadInfo info) { boolean reloaded = false; if(watcher != null) { diff --git a/src/main/java/makamys/neodymium/MixinConfigPlugin.java b/src/main/java/makamys/neodymium/MixinConfigPlugin.java index a2357d4..38d6304 100644 --- a/src/main/java/makamys/neodymium/MixinConfigPlugin.java +++ b/src/main/java/makamys/neodymium/MixinConfigPlugin.java @@ -9,19 +9,15 @@ import org.spongepowered.asm.lib.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; +import makamys.neodymium.util.OFUtil; + public class MixinConfigPlugin implements IMixinConfigPlugin { - private static boolean isOptiFinePresent = MixinConfigPlugin.class.getResource("/optifine/OptiFineTweaker.class") != null; - @Override - public void onLoad(String mixinPackage) { - // TODO Auto-generated method stub - - } + public void onLoad(String mixinPackage) {} @Override public String getRefMapperConfig() { - // TODO Auto-generated method stub return null; } @@ -31,10 +27,7 @@ public class MixinConfigPlugin implements IMixinConfigPlugin { } @Override - public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) { - // TODO Auto-generated method stub - - } + public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {} @Override public List<String> getMixins() { @@ -43,7 +36,7 @@ public class MixinConfigPlugin implements IMixinConfigPlugin { "MixinRenderGlobal", "MixinWorldRenderer")); - if (isOptiFinePresent()) { + if (OFUtil.isOptiFinePresent()) { System.out.println("Detected OptiFine"); mixins.add("MixinRenderGlobal_OptiFine"); } @@ -52,19 +45,9 @@ public class MixinConfigPlugin implements IMixinConfigPlugin { } @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - // TODO Auto-generated method stub - - } + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - // TODO Auto-generated method stub - - } - - public static boolean isOptiFinePresent() { - return isOptiFinePresent; - } + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} } diff --git a/src/main/java/makamys/neodymium/Neodymium.java b/src/main/java/makamys/neodymium/Neodymium.java index 4a59426..e8a0c5c 100644 --- a/src/main/java/makamys/neodymium/Neodymium.java +++ b/src/main/java/makamys/neodymium/Neodymium.java @@ -1,16 +1,9 @@ package makamys.neodymium; -import java.io.File; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.Objects; -import java.util.stream.Collectors; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.lwjgl.input.Keyboard; - import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -25,18 +18,16 @@ import cpw.mods.fml.relauncher.SideOnly; import makamys.mclib.core.MCLib; import makamys.mclib.core.MCLibModules; import makamys.neodymium.renderer.NeoRenderer; -import makamys.neodymium.util.SpriteUtil; +import makamys.neodymium.util.OFUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; -import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; @Mod(modid = Neodymium.MODID, version = Neodymium.VERSION) @@ -51,8 +42,6 @@ public class Neodymium public static NeoRenderer renderer; - public static boolean fogEventWasPosted; - public static boolean ofFastRender; private static Method ofIsFastRenderMethod; @@ -84,9 +73,6 @@ public class Neodymium private void onPlayerWorldChanged(World newWorld) { if(getRendererWorld() == null && newWorld != null) { Config.reloadConfig(); - if(Config.enabled) { - SpriteUtil.init(); - } } if(renderer != null) { renderer.destroy(); @@ -107,15 +93,6 @@ public class Neodymium } } - @SubscribeEvent - public void onChunkLoad(ChunkEvent.Load event) { - if(!event.world.isRemote) return; - - if(isActive()) { - renderer.onChunkLoad(event); - } - } - public static boolean isActive() { return renderer != null && renderer.hasInited && !renderer.destroyPending; } @@ -142,22 +119,11 @@ public class Neodymium } @SubscribeEvent - public void onServerTick(TickEvent.ServerTickEvent event) { - if(!Config.enabled) return; - - if(event.phase == TickEvent.Phase.START) { - if(isActive()) { - renderer.serverTick(); - } - } - } - - @SubscribeEvent public void onRenderTick(TickEvent.RenderTickEvent event) { if(!Config.enabled) return; if(event.phase == TickEvent.Phase.START) { - if(MixinConfigPlugin.isOptiFinePresent()) { + if(OFUtil.isOptiFinePresent()) { try { if(ofIsFastRenderMethod == null) { ofIsFastRenderMethod = Class.forName("Config").getMethod("isFastRender"); @@ -199,12 +165,6 @@ public class Neodymium } } - - @SubscribeEvent - public void onRenderFog(EntityViewRenderEvent.RenderFogEvent event) { - fogEventWasPosted = true; - } - public static boolean shouldRenderVanillaWorld() { return !isActive() || (isActive() && renderer.renderWorld && !renderer.rendererActive); } 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); - } - } - -} diff --git a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java index c1616f2..47c082e 100644 --- a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java +++ b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java @@ -1,35 +1,24 @@ package makamys.neodymium.renderer; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; -import java.nio.FloatBuffer; import java.nio.IntBuffer; -import java.nio.ShortBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; - import org.lwjgl.BufferUtils; import makamys.neodymium.Config; -import makamys.neodymium.MixinConfigPlugin; import makamys.neodymium.Neodymium; import makamys.neodymium.ducks.IWorldRenderer; import makamys.neodymium.util.BufferWriter; +import makamys.neodymium.util.OFUtil; import makamys.neodymium.util.RecyclingList; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagByteArray; import net.minecraft.tileentity.TileEntity; /** A mesh for a 16x16x16 region of the world. */ @@ -39,9 +28,6 @@ public class ChunkMesh extends Mesh { private int[] subMeshStart = new int[NORMAL_ORDER.length]; - // TODO move this somewhere else - List<String> nameList = (List<String>) ((TextureMap)Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture)).mapUploadedSprites.keySet().stream().collect(Collectors.toList()); - public static int usedRAM = 0; public static int instances = 0; @@ -76,9 +62,6 @@ public class ChunkMesh extends Mesh { instances++; } - private static int totalOriginalQuadCount = 0; - private static int totalSimplifiedQuadCount = 0; - public static ChunkMesh fromTessellator(int pass, WorldRenderer wr, Tessellator t) { if(t.vertexCount % 4 != 0) { System.out.println("Error: Vertex count is not a multiple of 4"); @@ -89,7 +72,7 @@ public class ChunkMesh extends Mesh { int yOffset = wr.posY; int zOffset = wr.posZ; - boolean fr = MixinConfigPlugin.isOptiFinePresent() && Neodymium.ofFastRender; + boolean fr = OFUtil.isOptiFinePresent() && Neodymium.ofFastRender; int tessellatorXOffset = fr ? 0 : xOffset; int tessellatorYOffset = fr ? 0 : yOffset; int tessellatorZOffset = fr ? 0 : zOffset; @@ -134,10 +117,6 @@ public class ChunkMesh extends Mesh { int quadCount = countValidQuads(quads); - totalOriginalQuadCount += quads.size(); - totalSimplifiedQuadCount += quadCount; - //System.out.println("simplified quads " + totalOriginalQuadCount + " -> " + totalSimplifiedQuadCount + " (ratio: " + ((float)totalSimplifiedQuadCount / (float)totalOriginalQuadCount) + ") totalMergeCountByPlane: " + Arrays.toString(totalMergeCountByPlane)); - if(quadCount > 0) { return new ChunkMesh( (int)(xOffset / 16), (int)(yOffset / 16), (int)(zOffset / 16), @@ -248,69 +227,10 @@ public class ChunkMesh extends Mesh { destroy(); } - public void update() { - } - - // Java is weird. - public static short readShortAt(DataInputStream in, int offset) { - try { - in.reset(); - in.skip(offset); - return in.readShort(); - } catch(IOException e) { - return -1; - } - } - - public static short readShortAt(byte[] data, int offset) { - return (short)(Byte.toUnsignedInt(data[offset]) << 8 | Byte.toUnsignedInt(data[offset + 1])); - } - - public static int readIntAt(DataInputStream in, int offset) { - try { - in.reset(); - in.skip(offset); - return in.readInt(); - } catch(IOException e) { - return -1; - } - } - - public static int readIntAt(byte[] data, int offset) { - return (int)(Byte.toUnsignedLong(data[offset]) << 24 | Byte.toUnsignedLong(data[offset + 1]) << 16 | Byte.toUnsignedLong(data[offset + 2]) << 8 | Byte.toUnsignedLong(data[offset + 3])); - } - public int getStride() { return MeshQuad.getStride(); } - static void saveChunks(List<Integer> coords) { - System.out.println("saving " + (coords.size() / 3) + " cchunks"); - for(int i = 0; i < coords.size(); i += 3) { - if(i % 300 == 0) { - System.out.println((i / 3) + " / " + (coords.size() / 3)); - } - int theX = coords.get(i); - int theY = coords.get(i + 1); - int theZ = coords.get(i + 2); - - WorldRenderer wr = new WorldRenderer(Minecraft.getMinecraft().theWorld, new ArrayList<TileEntity>(), theX * 16, theY * 16, theZ * 16, 100000); - /* - if (this.occlusionEnabled) - { - this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].glOcclusionQuery = this.glOcclusionQueryBase.get(var3); - }*/ - - wr.isWaitingOnOcclusionQuery = false; - wr.isVisible = true; - wr.isInFrustum = true; - wr.chunkIndex = 0; - wr.markDirty(); - wr.updateRenderer(Minecraft.getMinecraft().thePlayer); - } - //Tessellator.endSave(); - } - static List<ChunkMesh> getChunkMesh(int theX, int theY, int theZ) { WorldRenderer wr = new WorldRenderer(Minecraft.getMinecraft().theWorld, new ArrayList<TileEntity>(), theX * 16, theY * 16, theZ * 16, 100000); diff --git a/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java b/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java index 882b0c6..cb08c43 100644 --- a/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java +++ b/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java @@ -85,27 +85,6 @@ public class GPUMemoryManager { glBindBuffer(GL_ARRAY_BUFFER, 0); } - private int malloc(int size) { - int nextBase = 0; - if(!sentMeshes.isEmpty()) { - if(nextMesh < sentMeshes.size() - 1) { - Mesh next = sentMeshes.get(nextMesh); - Mesh nextnext = sentMeshes.get(nextMesh + 1); - if(nextnext.offset - next.getEnd() >= size) { - return next.getEnd(); - } - } - - nextBase = sentMeshes.get(sentMeshes.size() - 1).getEnd(); - } - - if(nextBase + size >= bufferSize) { - return -1; - } else { - return nextBase; - } - } - private int end() { return (sentMeshes.isEmpty() ? 0 : sentMeshes.get(sentMeshes.size() - 1).getEnd()); } diff --git a/src/main/java/makamys/neodymium/renderer/MeshQuad.java b/src/main/java/makamys/neodymium/renderer/MeshQuad.java index 1d2c196..71daf1a 100644 --- a/src/main/java/makamys/neodymium/renderer/MeshQuad.java +++ b/src/main/java/makamys/neodymium/renderer/MeshQuad.java @@ -66,21 +66,6 @@ public class MeshQuad { private static Vector3f vectorB = new Vector3f(); private static Vector3f vectorC = new Vector3f(); - private int minPositive(int a, int b) { - if(a == -1) { - return b; - } else { - return a < b ? a : b; - } - } - private int maxPositive(int a, int b) { - if(a == -1) { - return b; - } else { - return a > b ? a : b; - } - } - private void read(int[] rawBuffer, int offset, int offsetX, int offsetY, int offsetZ) { for(int vi = 0; vi < 4; vi++) { int i = offset + vi * 8; @@ -146,10 +131,6 @@ public class MeshQuad { mergeReference = null; } - public MeshQuad() { - - } - public void writeToBuffer(BufferWriter out) throws IOException { for(int vertexI = 0; vertexI < 4; vertexI++) { int vi = vertexI; diff --git a/src/main/java/makamys/neodymium/renderer/NeoChunk.java b/src/main/java/makamys/neodymium/renderer/NeoChunk.java index e7c3cab..b5e544b 100644 --- a/src/main/java/makamys/neodymium/renderer/NeoChunk.java +++ b/src/main/java/makamys/neodymium/renderer/NeoChunk.java @@ -2,10 +2,8 @@ package makamys.neodymium.renderer; import java.util.List; -import makamys.neodymium.Config; import makamys.neodymium.Neodymium; import net.minecraft.entity.Entity; -import net.minecraft.world.chunk.Chunk; /** A container for the meshes that compose a chunk (16x256x16 region). It keeps track of which meshes should be made visible and which ones should not. */ public class NeoChunk { @@ -18,7 +16,6 @@ public class NeoChunk { boolean discardedMesh; NeoRegion region; - SimpleChunkMesh[] simpleMeshes = new SimpleChunkMesh[2]; ChunkMesh[] chunkMeshes = new ChunkMesh[32]; public boolean[] isSectionVisible = new boolean[16]; @@ -30,25 +27,7 @@ public class NeoChunk { this.z = z; this.region = region; } - /* - public LODChunk(NBTTagCompound nbt, List<String> spriteList) { - this.x = nbt.getInteger("x"); - this.z = nbt.getInteger("z"); - - loadChunkMeshesNBT(nbt.getCompoundTag("chunkMeshes"), spriteList); - } - private void loadChunkMeshesNBT(NBTTagCompound chunkMeshesCompound, List<String> spriteList) { - for(Object o : chunkMeshesCompound.func_150296_c()) { - String key = (String)o; - int keyInt = Integer.parseInt(key); - - byte[] data = chunkMeshesCompound.getByteArray(key); - - chunkMeshes[keyInt] = new ChunkMesh(x, keyInt / 2, z, new ChunkMesh.Flags(true, true, true, false), data.length / (2 + 4 * (3 + 2 + 2 + 4)), data, spriteList, keyInt % 2); - } - } - */ @Override public String toString() { return "LODChunk(" + x + ", " + z + ")"; @@ -64,9 +43,7 @@ public class NeoChunk { if(chunkMeshes[cy * 2 + i] != null) { if(newChunkMesh != null) { // ??? why is this needed? - if(newChunkMesh != null) { - newChunkMesh.pass = i; - } + newChunkMesh.pass = i; } renderer.removeMesh(chunkMeshes[cy * 2 + i]); @@ -81,23 +58,6 @@ public class NeoChunk { discardedMesh = false; } - // nice copypasta - public void putSimpleMeshes(List<SimpleChunkMesh> newSimpleMeshes) { - for(int i = 0; i < 2; i++) { - SimpleChunkMesh newSimpleMesh = newSimpleMeshes.size() > i ? newSimpleMeshes.get(i) : null; - if(simpleMeshes[i] != null) { - if(newSimpleMesh != null) { - newSimpleMesh.pass = i; |
