Registry changes (WIP)

This commit is contained in:
paulevsGitch 2021-10-26 16:12:10 +03:00
parent 449d7cc0d0
commit b66c8cd5a6
3 changed files with 98 additions and 64 deletions

View file

@ -6,19 +6,25 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Block;
import ru.bclib.api.TagAPI;
import ru.bclib.blocks.BaseLeavesBlock;
import ru.bclib.blocks.FeatureSaplingBlock;
import ru.bclib.config.PathConfig;
import ru.bclib.interfaces.CustomItemProvider;
public class BlockRegistry extends BaseRegistry<Block> {
protected BlockRegistry(CreativeModeTab creativeTab) {
super(creativeTab);
public BlockRegistry(CreativeModeTab creativeTab, PathConfig config) {
super(creativeTab, config);
}
@Override
public Block register(ResourceLocation id, Block block) {
if (!config.getBooleanRoot(id.getNamespace(), true)) {
return block;
}
BlockItem item = null;
if (block instanceof CustomItemProvider) {
item = ((CustomItemProvider) block).getCustomItem(id, makeItemSettings());
@ -27,9 +33,7 @@ public class BlockRegistry extends BaseRegistry<Block> {
item = new BlockItem(block, makeItemSettings());
}
registerBlockItem(id, item);
if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance()
.get(block)
.getBurnChance() == 0) {
if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance().get(block).getBurnChance() == 0) {
FlammableBlockRegistry.getDefaultInstance().add(block, 5, 5);
}
@ -51,11 +55,22 @@ public class BlockRegistry extends BaseRegistry<Block> {
}
public Block registerBlockOnly(ResourceLocation id, Block block) {
if (!config.getBooleanRoot(id.getNamespace(), true)) {
return block;
}
return Registry.register(Registry.BLOCK, id, block);
}
private Item registerBlockItem(ResourceLocation id, Item item) {
registerItem(id, item, BaseRegistry.getModBlocks(id.getNamespace()));
registerItem(id, item);
return item;
}
@Override
public void registerItem(ResourceLocation id, Item item) {
if (item != null && item != Items.AIR) {
Registry.register(Registry.ITEM, id, item);
getModBlocks(id.getNamespace()).add(item);
}
}
}