NaturesAura/src/main/java/de/ellpeck/naturesaura/misc/ColoredBlockHelper.java

39 lines
1.8 KiB
Java
Raw Normal View History

2020-01-29 20:22:10 +01:00
package de.ellpeck.naturesaura.misc;
2021-12-15 16:24:53 +01:00
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.level.block.Block;
2020-01-29 20:22:10 +01:00
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 {
2022-06-27 15:24:04 +02:00
public static final List<Block> WOOL = ColoredBlockHelper.collectBlocks("wool");
public static final List<Block> TERRACOTTA = ColoredBlockHelper.collectBlocks("terracotta");
public static final List<Block> CONCRETE_POWDER = ColoredBlockHelper.collectBlocks("concrete_powder");
public static final List<Block> CONCRETE = ColoredBlockHelper.collectBlocks("concrete");
public static final List<Block> GLASS = ColoredBlockHelper.collectBlocks("stained_glass");
public static final List<Block> GLASS_PANE = ColoredBlockHelper.collectBlocks("glass_pane");
public static final List<Block> CARPET = ColoredBlockHelper.collectBlocks("carpet");
public static final List<List<Block>> LISTS = Arrays.asList(ColoredBlockHelper.WOOL, ColoredBlockHelper.TERRACOTTA, ColoredBlockHelper.CONCRETE_POWDER, ColoredBlockHelper.CONCRETE, ColoredBlockHelper.GLASS, ColoredBlockHelper.GLASS_PANE, ColoredBlockHelper.CARPET);
2020-01-29 20:22:10 +01:00
private static List<Block> collectBlocks(String name) {
List<Block> blocks = new ArrayList<>();
2021-12-15 16:30:22 +01:00
for (var color : DyeColor.values())
2021-12-15 16:24:53 +01:00
blocks.add(ForgeRegistries.BLOCKS.getValue(new ResourceLocation(color.getName() + '_' + name)));
2020-01-29 20:22:10 +01:00
return Collections.unmodifiableList(blocks);
}
public static List<Block> getBlocksContaining(Block block) {
2022-06-27 15:24:04 +02:00
for (var list : ColoredBlockHelper.LISTS) {
2020-01-29 20:22:10 +01:00
if (list.contains(block))
return list;
}
return null;
}
}