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

40 lines
1.3 KiB
Java
Raw Normal View History

2024-01-15 15:10:18 +00:00
package com.gtnewhorizons.postea.api;
import java.util.HashMap;
2024-01-12 20:43:34 +00:00
import java.util.HashSet;
import java.util.Map;
2023-12-20 02:00:48 +00:00
import java.util.function.BiFunction;
import net.minecraft.world.World;
2024-01-15 15:10:18 +00:00
import com.gtnewhorizons.postea.utility.BlockConversionInfo;
2023-10-31 17:14:09 +00:00
public class BlockReplacementManager {
2024-01-12 20:43:34 +00:00
public static final Map<String, BiFunction<BlockConversionInfo, World, BlockConversionInfo>> blockReplacementMap = new HashMap<>();
public static final HashSet<Integer> posteaMarkedIDs = new HashSet<>();
@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) {
2023-10-30 01:28:47 +00:00
2023-12-20 02:00:48 +00:00
BiFunction<BlockConversionInfo, World, BlockConversionInfo> transformer = blockReplacementMap
2023-12-20 01:11:18 +00:00
.getOrDefault(blockConversionInfo.blockName, null);
2023-10-30 01:28:47 +00:00
if (transformer == null) {
return null;
} else {
2023-12-20 02:00:48 +00:00
return transformer.apply(blockConversionInfo, world);
2023-10-30 01:28:47 +00:00
}
}
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);
}
}