Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package dev.redstudio.alfheim.lighting;

// stub class for Alfheim v1.6+
public class LightingEngine {
}
21 changes: 1 addition & 20 deletions src/main/java/com/cleanroommc/client/util/TrackedDummyWorld.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.cleanroommc.client.util;

import com.cleanroommc.client.util.world.DummyWorld;
import hellfirepvp.modularmachinery.ModularMachinery;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
Expand All @@ -12,11 +11,9 @@

import javax.annotation.Nonnull;
import javax.vecmath.Vector3f;
import java.lang.reflect.Field;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiFunction;
import java.util.function.Predicate;

Expand All @@ -40,26 +37,10 @@ public class TrackedDummyWorld extends DummyWorld {

public TrackedDummyWorld() {
proxyWorld = null;
initAlfheimLightingEngine();
}

public TrackedDummyWorld(World world) {
proxyWorld = world;
initAlfheimLightingEngine();
}

private void initAlfheimLightingEngine() {
try {
Field lightingEngineField = World.class.getDeclaredField("alfheim$lightingEngine");
lightingEngineField.setAccessible(true);

if (lightingEngineField.get(this) == null) {
lightingEngineField.set(this, new AtomicReference<>());
}
} catch (NoSuchFieldException ignored) {
} catch (IllegalAccessException e) {
ModularMachinery.log.error("Failed to initialize Alfheim lighting engine: ", e);
}
}

public void setRenderFilter(Predicate<BlockPos> renderFilter) {
Expand Down Expand Up @@ -141,4 +122,4 @@ public Vector3f getMinPos() {
public Vector3f getMaxPos() {
return maxPos;
}
}
}
10 changes: 8 additions & 2 deletions src/main/java/com/cleanroommc/client/util/world/DummyWorld.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.cleanroommc.client.util.world;

import dev.redstudio.alfheim.lighting.LightingEngine;
import hellfirepvp.modularmachinery.ModularMachinery;
import hellfirepvp.modularmachinery.common.base.Mods;
import net.minecraft.block.Block;
Expand Down Expand Up @@ -27,7 +28,6 @@ public class DummyWorld extends World {

private static final WorldSettings DEFAULT_SETTINGS = new WorldSettings(1L, GameType.SURVIVAL, true, false, WorldType.DEFAULT);

@SuppressWarnings("deprecation")
public DummyWorld() {
super(new DummySaveHandler(), new WorldInfo(DEFAULT_SETTINGS, "DummyServer"), new WorldProviderSurface(), new Profiler(), true);
// Guarantee the dimension ID was not reset by the provider
Expand Down Expand Up @@ -117,13 +117,19 @@ public World init() {

@Override
@Optional.Method(modid = "alfheim")
public int getLightFromNeighborsFor(EnumSkyBlock type, BlockPos pos) {
public int getLightFromNeighborsFor(@Nonnull EnumSkyBlock type, @Nonnull BlockPos pos) {
return 15;
}

@SuppressWarnings("unused")
@Optional.Method(modid = "alfheim")
public int alfheim$getLight(BlockPos pos, boolean checkNeighbors) {
return 15;
}

@SuppressWarnings("unused")
@Optional.Method(modid = "alfheim")
public LightingEngine getAlfheim$lightingEngine() {
return null;
}
}
Loading