diff --git a/src/main/java/gregtech/api/util/Mods.java b/src/main/java/gregtech/api/util/Mods.java index b06b7d9f247..609f71c1008 100644 --- a/src/main/java/gregtech/api/util/Mods.java +++ b/src/main/java/gregtech/api/util/Mods.java @@ -69,6 +69,7 @@ public enum Mods { VoxelMap(Names.VOXEL_MAP), XaerosMinimap(Names.XAEROS_MINIMAP), Vintagium(Names.VINTAGIUM), + Alfheim(Names.ALFHEIM), // Special Optifine handler, but consolidated here for simplicity Optifine(null) { @@ -137,6 +138,7 @@ public static class Names { public static final String VOXEL_MAP = "voxelmap"; public static final String XAEROS_MINIMAP = "xaerominimap"; public static final String VINTAGIUM = "vintagium"; + public static final String ALFHEIM = "alfheim"; } private final String ID; diff --git a/src/main/java/gregtech/api/util/world/DummyWorld.java b/src/main/java/gregtech/api/util/world/DummyWorld.java index 858a27138bb..451940347b9 100644 --- a/src/main/java/gregtech/api/util/world/DummyWorld.java +++ b/src/main/java/gregtech/api/util/world/DummyWorld.java @@ -1,5 +1,7 @@ package gregtech.api.util.world; +import gregtech.api.util.Mods; + import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.profiler.Profiler; @@ -10,6 +12,7 @@ import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.fml.common.ObfuscationReflectionHelper; +import net.minecraftforge.fml.common.Optional.Method; import net.minecraftforge.fml.relauncher.FMLLaunchHandler; import org.jetbrains.annotations.NotNull; @@ -37,6 +40,12 @@ public DummyWorld() { // De-allocate lightUpdateBlockList, checkLightFor uses this ObfuscationReflectionHelper.setPrivateValue(World.class, this, null, FMLLaunchHandler.isDeobfuscatedEnvironment() ? "lightUpdateBlockList" : "field_72994_J"); + + // De-allocate alfheim lighting engine + if (Mods.Alfheim.isModLoaded()) { + ObfuscationReflectionHelper.setPrivateValue(World.class, this, null, + "alfheim$lightingEngine"); + } } @Override @@ -90,4 +99,21 @@ protected boolean isChunkLoaded(int x, int z, boolean allowEmpty) { public boolean checkLightFor(@NotNull EnumSkyBlock lightType, @NotNull BlockPos pos) { return true; } + + @Override + @Method(modid = Mods.Names.ALFHEIM) + public World init() { + return this; + } + + @Override + @Method(modid = Mods.Names.ALFHEIM) + public int getLightFromNeighborsFor(EnumSkyBlock type, BlockPos pos) { + return 15; + } + + @Method(modid = Mods.Names.ALFHEIM) + public int alfheim$getLight(BlockPos pos, boolean checkNeighbors) { + return 15; + } }