Skip to content

Commit

Permalink
sleep soon
Browse files Browse the repository at this point in the history
  • Loading branch information
Cadiboo committed Feb 17, 2019
1 parent 8dd1581 commit b926291
Show file tree
Hide file tree
Showing 15 changed files with 543 additions and 598 deletions.
10 changes: 7 additions & 3 deletions src/main/java/io/github/cadiboo/nocubes/EventSubscriber.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

import io.github.cadiboo.nocubes.util.ModReference;
import io.github.cadiboo.nocubes.world.ModWorldEventListener;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

/**
* Subscribe to events that should be handled on both PHYSICAL sides in this class
Expand All @@ -16,8 +17,11 @@ public final class EventSubscriber {
@SubscribeEvent
public static void onWorldLoadEvent(final WorldEvent.Load event) {

final World world = event.getWorld();
world.addEventListener(new ModWorldEventListener());
final IWorld iworld = event.getWorld();
//WTF
if (iworld instanceof World) {
((World) iworld).addEventListener(new ModWorldEventListener());
}

}

Expand Down
16 changes: 0 additions & 16 deletions src/main/java/io/github/cadiboo/nocubes/NoCubes.java
Original file line number Diff line number Diff line change
@@ -1,30 +1,14 @@
package io.github.cadiboo.nocubes;

import io.github.cadiboo.nocubes.config.ModConfig;
import io.github.cadiboo.nocubes.util.IProxy;
import io.github.cadiboo.nocubes.util.ModProfiler;
import io.github.cadiboo.nocubes.util.ModUtil;
import net.minecraft.crash.CrashReport;
import net.minecraft.util.ReportedException;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.File;
import java.util.ArrayList;

import static io.github.cadiboo.nocubes.util.ModReference.ACCEPTED_MINECRAFT_VERSIONS;
import static io.github.cadiboo.nocubes.util.ModReference.CERTIFICATE_FINGERPRINT;
import static io.github.cadiboo.nocubes.util.ModReference.CLIENT_PROXY_CLASS;
import static io.github.cadiboo.nocubes.util.ModReference.DEPENDENCIES;
import static io.github.cadiboo.nocubes.util.ModReference.MOD_ID;
import static io.github.cadiboo.nocubes.util.ModReference.MOD_NAME;
import static io.github.cadiboo.nocubes.util.ModReference.SERVER_PROXY_CLASS;
import static io.github.cadiboo.nocubes.util.ModReference.UPDATE_JSON;
import static io.github.cadiboo.nocubes.util.ModReference.VERSION;

@Mod(MOD_ID)
public final class NoCubes {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.github.cadiboo.nocubes.client;

import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.IWorldReader;

import javax.annotation.Nonnull;

Expand All @@ -13,7 +13,7 @@ public final class ClientCacheUtil {
public static PackedLightCache generatePackedLightCache(
final int startPosX, final int startPosY, final int startPosZ,
final int cacheSizeX, final int cacheSizeY, final int cacheSizeZ,
@Nonnull final IBlockAccess cache,
@Nonnull final IWorldReader cache,
@Nonnull BlockPos.PooledMutableBlockPos pooledMutableBlockPos
) {
final PackedLightCache pooledPackedLightCache = PackedLightCache.retain(cacheSizeX, cacheSizeY, cacheSizeZ);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,15 @@
package io.github.cadiboo.nocubes.client;

import com.google.common.collect.Lists;
import cpw.mods.modlauncher.Launcher;
import io.github.cadiboo.nocubes.NoCubes;
import io.github.cadiboo.nocubes.client.render.RenderDispatcher;
import io.github.cadiboo.nocubes.config.ModConfig;
import io.github.cadiboo.renderchunkrebuildchunkhooks.event.RebuildChunkBlockEvent;
import io.github.cadiboo.renderchunkrebuildchunkhooks.event.RebuildChunkPreEvent;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.RayTraceResult;
import net.minecraftforge.common.MinecraftForge;
import io.github.cadiboo.renderchunkrebuildchunkhooks.event.RebuildCanBlockBeRenderedEvent;
import io.github.cadiboo.renderchunkrebuildchunkhooks.event.RebuildChunkPreRenderEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

import java.util.ArrayList;

import static io.github.cadiboo.nocubes.util.ModReference.MOD_ID;
import static net.minecraft.util.math.RayTraceResult.Type.BLOCK;
import static net.minecraftforge.api.distmarker.Dist.CLIENT;
import static net.minecraftforge.fml.relauncher.Side.CLIENT;

/**
* Subscribe to events that should be handled on the PHYSICAL CLIENT in this class
Expand All @@ -35,15 +20,15 @@
public final class ClientEventSubscriber {

@SubscribeEvent
public static void onRebuildChunkPreEvent(final RebuildChunkPreEvent event) {
public static void onRebuildChunkPreEvent(final RebuildChunkPreRenderEvent event) {
if (!NoCubes.isEnabled()) {
return;
}
RenderDispatcher.renderChunk(event);
}

@SubscribeEvent
public static void onRebuildChunkBlockEvent(final RebuildChunkBlockEvent event) {
public static void onRebuildChunkBlockEvent(final RebuildCanBlockBeRenderedEvent event) {
if (!NoCubes.isEnabled()) {
return;
}
Expand Down
39 changes: 19 additions & 20 deletions src/main/java/io/github/cadiboo/nocubes/client/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
import io.github.cadiboo.nocubes.NoCubes;
import io.github.cadiboo.nocubes.util.IProxy;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.crash.CrashReport;
import net.minecraft.util.ReportedException;
import net.minecraftforge.client.settings.KeyConflictContext;
import net.minecraft.crash.ReportedException;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;

Expand All @@ -25,7 +24,7 @@ public final class ClientProxy implements IProxy {

private static final int KEY_CODE_N = 49;

public static final KeyBinding toggleSmoothableBlockstate = new KeyBinding(MOD_ID + ".key.toggleSmoothableBlockstate", KeyConflictContext.IN_GAME, KEY_CODE_N, "key.categories.misc");
public static final KeyBinding toggleSmoothableBlockstate = new KeyBinding(MOD_ID + ".key.toggleSmoothableBlockstate", KEY_CODE_N, "key.categories.nocubes");

static {
ClientRegistry.registerKeyBinding(toggleSmoothableBlockstate);
Expand All @@ -34,7 +33,7 @@ public final class ClientProxy implements IProxy {
static {
try {
RenderGlobal_markBlocksForUpdate = MethodHandles.publicLookup().unreflect(
ObfuscationReflectionHelper.findMethod(RenderGlobal.class, "func_184385_a",
ObfuscationReflectionHelper.findMethod(WorldRenderer.class, "func_184385_a",
void.class,
int.class, int.class, int.class, int.class, int.class, int.class, boolean.class
)
Expand All @@ -49,21 +48,21 @@ public final class ClientProxy implements IProxy {
@Override
public void markBlocksForUpdate(int minX, int minY, int minZ, int maxX, int maxY, int maxZ, boolean updateImmediately) {

final RenderGlobal renderGlobal = Minecraft.getMinecraft().renderGlobal;

if (renderGlobal.world == null || renderGlobal.viewFrustum == null) {
return;
}

try {
RenderGlobal_markBlocksForUpdate.invokeExact(renderGlobal, minX, minY, minZ, maxX, maxY, maxZ, updateImmediately);
} catch (ReportedException e) {
throw e;
} catch (Throwable throwable) {
final CrashReport crashReport = new CrashReport("Exception invoking method RenderGlobal.markBlocksForUpdate", throwable);
crashReport.makeCategory("Reflectively Invoking Method");
throw new ReportedException(crashReport);
}
// final WorldRenderer renderGlobal = Minecraft.getInstance().renderGlobal;
//
// if (renderGlobal.world == null || renderGlobal.viewFrustum == null) {
// return;
// }
//
// try {
// RenderGlobal_markBlocksForUpdate.invokeExact(renderGlobal, minX, minY, minZ, maxX, maxY, maxZ, updateImmediately);
// } catch (ReportedException e) {
// throw e;
// } catch (Throwable throwable) {
// final CrashReport crashReport = new CrashReport("Exception invoking method RenderGlobal.markBlocksForUpdate", throwable);
// crashReport.makeCategory("Reflectively Invoking Method");
// throw new ReportedException(crashReport);
// }
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import java.util.List;
import java.util.Random;

import static io.github.cadiboo.renderchunkrebuildchunkhooks.hooks.RenderChunkRebuildChunkHooksHooks.renderChunk_preRenderBlocks;
import static io.github.cadiboo.renderchunkrebuildchunkhooks.util.Utils.renderChunk_preRenderBlocks;
import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.lang.Math.round;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package io.github.cadiboo.nocubes.client;

import io.github.cadiboo.nocubes.util.ReflectionHelper;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IWorldReader;
import net.minecraftforge.fml.common.Loader;

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

public final class OptifineCompatibility {

Expand All @@ -20,57 +17,63 @@ public final class OptifineCompatibility {
private static final MethodHandle POP_ENTITY;

static {
Class<?> optifineConfig = null;
MethodHandle configIsShaders = null;
Class<?> SVertexBuilder = null;
MethodHandle pushEntity = null;
MethodHandle popEntity = null;
try {
optifineConfig = ReflectionHelper.getClass(Loader.instance().getModClassLoader(), "Config");
} catch (ReflectionHelper.UnableToFindClassException e) {
//Optifine doesn't exist;
}

if (optifineConfig != null) {
try {
configIsShaders = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(optifineConfig, "isShaders", null));
} catch (ReflectionHelper.UnableToFindMethodException e) {
//Optifine doesn't exist;
} catch (IllegalAccessException e) {
//Wtf?
}

try {
SVertexBuilder = ReflectionHelper.getClass(Loader.instance().getModClassLoader(), "net.optifine.shaders.SVertexBuilder");
} catch (ReflectionHelper.UnableToFindClassException e) {
//Optifine doesn't exist;
}

{
try {
pushEntity = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(SVertexBuilder, "pushEntity", null, IBlockState.class, BlockPos.class, IWorldReader.class, BufferBuilder.class));
} catch (ReflectionHelper.UnableToFindMethodException e) {
//Optifine doesn't exist;
} catch (IllegalAccessException e) {
//Wtf?
}
}

{
try {
popEntity = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(SVertexBuilder, "popEntity", null, BufferBuilder.class));
} catch (ReflectionHelper.UnableToFindMethodException e) {
//Optifine doesn't exist;
} catch (IllegalAccessException e) {
//Wtf?
}
}
}
OPTIFINE_CONFIG = optifineConfig;
CONFIG_IS_SHADERS = configIsShaders;
S_VERTEX_BUILDER = SVertexBuilder;
PUSH_ENTITY = pushEntity;
POP_ENTITY = popEntity;
// Class<?> optifineConfig = null;
// MethodHandle configIsShaders = null;
// Class<?> SVertexBuilder = null;
// MethodHandle pushEntity = null;
// MethodHandle popEntity = null;
// try {
// optifineConfig = ReflectionHelper.getClass(Loader.instance().getModClassLoader(), "Config");
// } catch (ReflectionHelper.UnableToFindClassException e) {
// //Optifine doesn't exist;
// }
//
// if (optifineConfig != null) {
// try {
// configIsShaders = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(optifineConfig, "isShaders", null));
// } catch (ReflectionHelper.UnableToFindMethodException e) {
// //Optifine doesn't exist;
// } catch (IllegalAccessException e) {
// //Wtf?
// }
//
// try {
// SVertexBuilder = ReflectionHelper.getClass(Loader.instance().getModClassLoader(), "net.optifine.shaders.SVertexBuilder");
// } catch (ReflectionHelper.UnableToFindClassException e) {
// //Optifine doesn't exist;
// }
//
// {
// try {
// pushEntity = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(SVertexBuilder, "pushEntity", null, IBlockState.class, BlockPos.class, IWorldReader.class, BufferBuilder.class));
// } catch (ReflectionHelper.UnableToFindMethodException e) {
// //Optifine doesn't exist;
// } catch (IllegalAccessException e) {
// //Wtf?
// }
// }
//
// {
// try {
// popEntity = MethodHandles.publicLookup().unreflect(ReflectionHelper.findMethod(SVertexBuilder, "popEntity", null, BufferBuilder.class));
// } catch (ReflectionHelper.UnableToFindMethodException e) {
// //Optifine doesn't exist;
// } catch (IllegalAccessException e) {
// //Wtf?
// }
// }
// }
// OPTIFINE_CONFIG = optifineConfig;
// CONFIG_IS_SHADERS = configIsShaders;
// S_VERTEX_BUILDER = SVertexBuilder;
// PUSH_ENTITY = pushEntity;
// POP_ENTITY = popEntity;

OPTIFINE_CONFIG = null;
CONFIG_IS_SHADERS = null;
S_VERTEX_BUILDER = null;
PUSH_ENTITY = null;
POP_ENTITY = null;

}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package io.github.cadiboo.nocubes.client;

import io.github.cadiboo.nocubes.util.XYZCache;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

import javax.annotation.Nonnull;

/**
* @author Cadiboo
*/
@SideOnly(Side.CLIENT)
@OnlyIn(Dist.CLIENT)
public class PackedLightCache extends XYZCache {

@Nonnull
Expand Down
Loading

0 comments on commit b926291

Please sign in to comment.