package de.ellpeck.naturesaura.misc; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.Block; import net.minecraftforge.registries.ForgeRegistries; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public final class ColoredBlockHelper { public static final List WOOL = ColoredBlockHelper.collectBlocks("wool"); public static final List TERRACOTTA = ColoredBlockHelper.collectBlocks("terracotta"); public static final List CONCRETE_POWDER = ColoredBlockHelper.collectBlocks("concrete_powder"); public static final List CONCRETE = ColoredBlockHelper.collectBlocks("concrete"); public static final List GLASS = ColoredBlockHelper.collectBlocks("stained_glass"); public static final List GLASS_PANE = ColoredBlockHelper.collectBlocks("glass_pane"); public static final List CARPET = ColoredBlockHelper.collectBlocks("carpet"); public static final List> LISTS = Arrays.asList(ColoredBlockHelper.WOOL, ColoredBlockHelper.TERRACOTTA, ColoredBlockHelper.CONCRETE_POWDER, ColoredBlockHelper.CONCRETE, ColoredBlockHelper.GLASS, ColoredBlockHelper.GLASS_PANE, ColoredBlockHelper.CARPET); private static List collectBlocks(String name) { List blocks = new ArrayList<>(); for (var color : DyeColor.values()) blocks.add(ForgeRegistries.BLOCKS.getValue(new ResourceLocation(color.getName() + '_' + name))); return Collections.unmodifiableList(blocks); } public static List getBlocksContaining(Block block) { for (var list : ColoredBlockHelper.LISTS) { if (list.contains(block)) return list; } return null; } }