Files
Postea/src/main/java/com/gtnewhorizons/postea/api/BlockReplacementManager.java
T

38 lines
1.4 KiB
Java
Raw Normal View History

2024-01-15 15:10:18 +00:00
package com.gtnewhorizons.postea.api;
2023-12-20 02:00:48 +00:00
import java.util.function.BiFunction;
import net.minecraft.world.World;
import com.google.common.collect.LinkedListMultimap;
2024-01-15 15:10:18 +00:00
import com.gtnewhorizons.postea.utility.BlockConversionInfo;
2023-10-31 17:14:09 +00:00
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
public class BlockReplacementManager {
public static final LinkedListMultimap<String, BiFunction<BlockConversionInfo, World, BlockConversionInfo>> blockReplacementMap = LinkedListMultimap
.create();
public static final IntOpenHashSet posteaMarkedIDs = new IntOpenHashSet();
@SuppressWarnings("unused")
2023-10-31 17:14:09 +00:00
public static void addBlockReplacement(String blockNameIn,
2023-12-20 02:00:48 +00:00
BiFunction<BlockConversionInfo, World, BlockConversionInfo> transformer) {
2023-10-31 00:27:30 +00:00
blockReplacementMap.put(blockNameIn, transformer);
}
2023-12-20 02:00:48 +00:00
public static BlockConversionInfo getBlockReplacement(BlockConversionInfo blockConversionInfo, World world) {
for (BiFunction<BlockConversionInfo, World, BlockConversionInfo> transformer : blockReplacementMap
.get(blockConversionInfo.blockName)) {
BlockConversionInfo result = transformer.apply(blockConversionInfo, world);
if (result != null) return result;
2023-10-30 01:28:47 +00:00
}
return null;
}
2023-10-30 01:28:47 +00:00
2024-01-12 20:43:34 +00:00
// We need this to save reprocessing blocks.
public static boolean blockNotConvertible(int blockID) {
return !posteaMarkedIDs.contains(blockID);
}
}