diff options
| author | 2024-01-08 01:42:51 +0100 | |
|---|---|---|
| committer | 2024-01-08 01:42:51 +0100 | |
| commit | 52f8874f81116bd6767c6f9247347c30a3820e51 (patch) | |
| tree | 7c5398dc0e02bec54af7def5e1e11a7b733c034e /src/main/java/lv/enes/mc/eris_alchemy/utils | |
| parent | Build script improvements (diff) | |
| download | mc-eris-alchemy-52f8874f81116bd6767c6f9247347c30a3820e51.tar.gz mc-eris-alchemy-52f8874f81116bd6767c6f9247347c30a3820e51.tar.xz mc-eris-alchemy-52f8874f81116bd6767c6f9247347c30a3820e51.zip | |
Created the EMC system
Diffstat (limited to 'src/main/java/lv/enes/mc/eris_alchemy/utils')
6 files changed, 165 insertions, 0 deletions
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/BlockUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/BlockUtils.java new file mode 100644 index 0000000..74b6069 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/BlockUtils.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.core.registries.BuiltInRegistries; | ||
| 4 | import net.minecraft.tags.TagKey; | ||
| 5 | import net.minecraft.world.level.block.Block; | ||
| 6 | |||
| 7 | import java.util.stream.Stream; | ||
| 8 | |||
| 9 | public class BlockUtils { | ||
| 10 | public static Stream<Block> streamTag(TagKey<Block> tag) { | ||
| 11 | return TagUtils.stream(BuiltInRegistries.BLOCK, tag); | ||
| 12 | } | ||
| 13 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/CoralUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/CoralUtils.java new file mode 100644 index 0000000..c9203c6 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/CoralUtils.java | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.tags.BlockTags; | ||
| 4 | import net.minecraft.world.level.block.*; | ||
| 5 | |||
| 6 | import java.util.stream.Stream; | ||
| 7 | |||
| 8 | public class CoralUtils { | ||
| 9 | /** | ||
| 10 | * @see lv.enes.mc.eris_alchemy.mixin.CoralBlockMixin | ||
| 11 | * @see lv.enes.mc.eris_alchemy.mixin.CoralFanBlockMixin | ||
| 12 | * @see lv.enes.mc.eris_alchemy.mixin.CoralPlantBlockMixin | ||
| 13 | * @see lv.enes.mc.eris_alchemy.mixin.CoralWallFanBlockMixin | ||
| 14 | */ | ||
| 15 | public interface CoralSuper { | ||
| 16 | Block lv_enes_mc$getDead(); | ||
| 17 | } | ||
| 18 | |||
| 19 | public static Stream<CoralBlock> streamAllCoralBlocks() { | ||
| 20 | return BlockUtils.streamTag(BlockTags.CORAL_BLOCKS).map(b -> (CoralBlock)b); | ||
| 21 | } | ||
| 22 | |||
| 23 | public static Stream<BaseCoralPlantTypeBlock> streamAllCorals() { | ||
| 24 | return BlockUtils.streamTag(BlockTags.CORALS).map(b -> (BaseCoralPlantTypeBlock)b); | ||
| 25 | } | ||
| 26 | |||
| 27 | public static Stream<Block> streamAllDeadCoralBlocks() { | ||
| 28 | return streamAllCoralBlocks().map(CoralUtils::getDeadCoralBlock); | ||
| 29 | } | ||
| 30 | |||
| 31 | public static Stream<Block> streamAllDeadCorals() { | ||
| 32 | return streamAllCorals().map(CoralUtils::getDeadCoral); | ||
| 33 | } | ||
| 34 | |||
| 35 | public static Block getDeadCoral(BaseCoralPlantTypeBlock live ) { | ||
| 36 | return ((CoralSuper)live).lv_enes_mc$getDead(); | ||
| 37 | } | ||
| 38 | |||
| 39 | public static Block getDeadCoralBlock(CoralBlock live) { | ||
| 40 | return ((CoralSuper)live).lv_enes_mc$getDead(); | ||
| 41 | } | ||
| 42 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/DyeUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/DyeUtils.java new file mode 100644 index 0000000..83c8e04 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/DyeUtils.java | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.world.item.DyeColor; | ||
| 4 | import net.minecraft.world.item.DyeItem; | ||
| 5 | import net.minecraft.world.level.block.Block; | ||
| 6 | import net.minecraft.world.level.block.Blocks; | ||
| 7 | import net.minecraft.world.level.block.ConcretePowderBlock; | ||
| 8 | import net.minecraft.world.level.block.ShulkerBoxBlock; | ||
| 9 | |||
| 10 | public class DyeUtils { | ||
| 11 | public static Block getConcrete(DyeColor color) { | ||
| 12 | return switch (color) { | ||
| 13 | case BLACK -> Blocks.BLACK_CONCRETE; | ||
| 14 | case BLUE -> Blocks.BLUE_CONCRETE; | ||
| 15 | case BROWN -> Blocks.BROWN_CONCRETE; | ||
| 16 | case CYAN -> Blocks.CYAN_CONCRETE; | ||
| 17 | case GRAY -> Blocks.GRAY_CONCRETE; | ||
| 18 | case GREEN -> Blocks.GREEN_CONCRETE; | ||
| 19 | case LIGHT_BLUE -> Blocks.LIGHT_BLUE_CONCRETE; | ||
| 20 | case LIGHT_GRAY -> Blocks.LIGHT_GRAY_CONCRETE; | ||
| 21 | case LIME -> Blocks.LIME_CONCRETE; | ||
| 22 | case MAGENTA -> Blocks.MAGENTA_CONCRETE; | ||
| 23 | case ORANGE -> Blocks.ORANGE_CONCRETE; | ||
| 24 | case PINK -> Blocks.PINK_CONCRETE; | ||
| 25 | case PURPLE -> Blocks.PURPLE_CONCRETE; | ||
| 26 | case RED -> Blocks.RED_CONCRETE; | ||
| 27 | case WHITE -> Blocks.WHITE_CONCRETE; | ||
| 28 | case YELLOW -> Blocks.YELLOW_CONCRETE; | ||
| 29 | }; | ||
| 30 | } | ||
| 31 | |||
| 32 | public static ConcretePowderBlock getConcretePowder(DyeColor color) { | ||
| 33 | return (ConcretePowderBlock)switch (color) { | ||
| 34 | case BLACK -> Blocks.BLACK_CONCRETE_POWDER; | ||
| 35 | case BLUE -> Blocks.BLUE_CONCRETE_POWDER; | ||
| 36 | case BROWN -> Blocks.BROWN_CONCRETE_POWDER; | ||
| 37 | case CYAN -> Blocks.CYAN_CONCRETE_POWDER; | ||
| 38 | case GRAY -> Blocks.GRAY_CONCRETE_POWDER; | ||
| 39 | case GREEN -> Blocks.GREEN_CONCRETE_POWDER; | ||
| 40 | case LIGHT_BLUE -> Blocks.LIGHT_BLUE_CONCRETE_POWDER; | ||
| 41 | case LIGHT_GRAY -> Blocks.LIGHT_GRAY_CONCRETE_POWDER; | ||
| 42 | case LIME -> Blocks.LIME_CONCRETE_POWDER; | ||
| 43 | case MAGENTA -> Blocks.MAGENTA_CONCRETE_POWDER; | ||
| 44 | case ORANGE -> Blocks.ORANGE_CONCRETE_POWDER; | ||
| 45 | case PINK -> Blocks.PINK_CONCRETE_POWDER; | ||
| 46 | case PURPLE -> Blocks.PURPLE_CONCRETE_POWDER; | ||
| 47 | case RED -> Blocks.RED_CONCRETE_POWDER; | ||
| 48 | case WHITE -> Blocks.WHITE_CONCRETE_POWDER; | ||
| 49 | case YELLOW -> Blocks.YELLOW_CONCRETE_POWDER; | ||
| 50 | }; | ||
| 51 | } | ||
| 52 | |||
| 53 | public static DyeItem getDye(DyeColor color) { | ||
| 54 | return DyeItem.byColor(color); | ||
| 55 | } | ||
| 56 | |||
| 57 | public static ShulkerBoxBlock getShulkerBox(DyeColor color) { | ||
| 58 | return (ShulkerBoxBlock)ShulkerBoxBlock.getBlockByColor(color); | ||
| 59 | } | ||
| 60 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java new file mode 100644 index 0000000..2f7c8b2 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.core.registries.BuiltInRegistries; | ||
| 4 | import net.minecraft.tags.TagKey; | ||
| 5 | import net.minecraft.world.item.Item; | ||
| 6 | |||
| 7 | import java.util.stream.Stream; | ||
| 8 | |||
| 9 | public class ItemUtils { | ||
| 10 | public static Stream<Item> streamTag(TagKey<Item> tag) { | ||
| 11 | return TagUtils.stream(BuiltInRegistries.ITEM, tag); | ||
| 12 | } | ||
| 13 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/RecipeUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/RecipeUtils.java new file mode 100644 index 0000000..53ceaab --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/RecipeUtils.java | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.core.RegistryAccess; | ||
| 4 | import net.minecraft.world.item.ItemStack; | ||
| 5 | import net.minecraft.world.item.crafting.Ingredient; | ||
| 6 | import net.minecraft.world.item.crafting.Recipe; | ||
| 7 | |||
| 8 | import java.util.List; | ||
| 9 | |||
| 10 | public class RecipeUtils { | ||
| 11 | public interface RecipeSuper { | ||
| 12 | List<Ingredient> lv_enes_mc$getIngredients(); | ||
| 13 | ItemStack lv_enes_mc$getOutput(RegistryAccess registryAccess); | ||
| 14 | } | ||
| 15 | |||
| 16 | public static List<Ingredient> getIngredients(Recipe<?> recipe) { | ||
| 17 | return ((RecipeSuper)recipe).lv_enes_mc$getIngredients(); | ||
| 18 | } | ||
| 19 | |||
| 20 | public static ItemStack getOutput(Recipe<?> recipe, RegistryAccess registryAccess) { | ||
| 21 | return ((RecipeSuper)recipe).lv_enes_mc$getOutput(registryAccess); | ||
| 22 | } | ||
| 23 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/TagUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/TagUtils.java new file mode 100644 index 0000000..bb923ba --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/TagUtils.java | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | ||
| 2 | |||
| 3 | import net.minecraft.core.Holder; | ||
| 4 | import net.minecraft.core.Registry; | ||
| 5 | import net.minecraft.tags.TagKey; | ||
| 6 | |||
| 7 | import java.util.stream.Stream; | ||
| 8 | import java.util.stream.StreamSupport; | ||
| 9 | |||
| 10 | public class TagUtils { | ||
| 11 | public static <T> Stream<T> stream(Registry<T> registry, TagKey<T> tag) { | ||
| 12 | return StreamSupport.stream(registry.getTagOrEmpty(tag).spliterator(), false).map(Holder::value); | ||
| 13 | } | ||
| 14 | } | ||