Files
Postea/src/main/java/com/gtnewhorizons/postea/api/BlockReplacementManager.java
T
2024-01-15 15:10:18 +00:00

41 lines
1.3 KiB
Java

package com.gtnewhorizons.postea.api;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.function.BiFunction;
import net.minecraft.world.World;
import com.gtnewhorizons.postea.utility.BlockConversionInfo;
public class BlockReplacementManager {
public static final Map<String, BiFunction<BlockConversionInfo, World, BlockConversionInfo>> blockReplacementMap = new HashMap<>();
public static final HashSet<Integer> posteaMarkedIDs = new HashSet<>();
@SuppressWarnings("unused")
public static void addBlockReplacement(String blockNameIn,
BiFunction<BlockConversionInfo, World, BlockConversionInfo> transformer) {
blockReplacementMap.put(blockNameIn, transformer);
}
public static BlockConversionInfo getBlockReplacement(BlockConversionInfo blockConversionInfo, World world) {
BiFunction<BlockConversionInfo, World, BlockConversionInfo> transformer = blockReplacementMap
.getOrDefault(blockConversionInfo.blockName, null);
if (transformer == null) {
return null;
} else {
return transformer.apply(blockConversionInfo, world);
}
}
// We need this to save reprocessing blocks.
public static boolean blockNotConvertible(int blockID) {
return !posteaMarkedIDs.contains(blockID);
}
}