import com.irtimaled.bbor.client.models.BoundingBoxSpawnableBlocks;
import com.irtimaled.bbor.common.BoundingBoxType;
import com.irtimaled.bbor.common.MathHelper;
-import net.minecraft.client.Minecraft;
+import com.irtimaled.bbor.common.models.DimensionId;
+import net.minecraft.client.MinecraftClient;
import java.util.HashSet;
import java.util.Set;
-public class SpawnableBlocksProvider implements IBoundingBoxProvider<BoundingBoxSpawnableBlocks> {
- public static final Minecraft minecraft = Minecraft.getInstance();
+public class SpawnableBlocksProvider implements IBoundingBoxProvider<BoundingBoxSpawnableBlocks>, ICachingProvider {
+ public static final MinecraftClient minecraft = MinecraftClient.getInstance();
private static Long lastGameTime = null;
private static Set<BoundingBoxSpawnableBlocks> lastBoundingBox = null;
- public static void clear() {
+ public void clearCache() {
+ lastGameTime = null;
lastBoundingBox = null;
}
}
@Override
- public boolean canProvide(int dimensionId) {
+ public boolean canProvide(DimensionId dimensionId) {
return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.SpawnableBlocks) &&
!isWithinActiveSpawningSphere();
}
@Override
- public Iterable<BoundingBoxSpawnableBlocks> get(int dimensionId) {
- long gameTime = minecraft.world.getGameTime();
+ public Iterable<BoundingBoxSpawnableBlocks> get(DimensionId dimensionId) {
+ long gameTime = minecraft.world.getTime();
if (lastBoundingBox == null || (!((Long) gameTime).equals(lastGameTime) && gameTime % 2L == 0L)) {
lastGameTime = gameTime;
lastBoundingBox = getSpawnableBlocks();