Files
FabricModLearning/src/main/java/com/learning/block/CustomBlocks.java
2025-03-08 08:13:56 +08:00

37 lines
1.3 KiB
Java

package com.learning.block;
import com.learning.Learning;
import java.util.function.Function;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.util.Identifier;
public class CustomBlocks {
public static void registerBlocks() {
Learning.LOGGER.info("Registering blocks...");
}
public static final Block test_block = register("test_block");
public static final Block damageBlock = register("damage_block", DamageBlock::new, AbstractBlock.Settings.create());
public static final Block register(String blockId) {
return register(blockId, Block::new, AbstractBlock.Settings.create());
}
public static Block register(String blockId, Function<AbstractBlock.Settings, Block> factory, AbstractBlock.Settings settings) {
RegistryKey<Block> key = keyOf(blockId);
return Registry.register(Registries.BLOCK, key, factory.apply(settings.registryKey(key)));
}
private static final RegistryKey<Block> keyOf(String blockId) {
return RegistryKey.of(RegistryKeys.BLOCK, Identifier.of(Learning.MOD_ID, blockId));
}
}