summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/utils
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-01-08 01:42:51 +0100
committerGravatar Uko Kokņevičs2024-01-08 01:42:51 +0100
commit52f8874f81116bd6767c6f9247347c30a3820e51 (patch)
tree7c5398dc0e02bec54af7def5e1e11a7b733c034e /src/main/java/lv/enes/mc/eris_alchemy/utils
parentBuild script improvements (diff)
downloadmc-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')
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/BlockUtils.java13
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/CoralUtils.java42
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/DyeUtils.java60
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java13
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/RecipeUtils.java23
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/TagUtils.java14
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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.core.registries.BuiltInRegistries;
4import net.minecraft.tags.TagKey;
5import net.minecraft.world.level.block.Block;
6
7import java.util.stream.Stream;
8
9public 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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.tags.BlockTags;
4import net.minecraft.world.level.block.*;
5
6import java.util.stream.Stream;
7
8public 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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.world.item.DyeColor;
4import net.minecraft.world.item.DyeItem;
5import net.minecraft.world.level.block.Block;
6import net.minecraft.world.level.block.Blocks;
7import net.minecraft.world.level.block.ConcretePowderBlock;
8import net.minecraft.world.level.block.ShulkerBoxBlock;
9
10public 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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.core.registries.BuiltInRegistries;
4import net.minecraft.tags.TagKey;
5import net.minecraft.world.item.Item;
6
7import java.util.stream.Stream;
8
9public 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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.core.RegistryAccess;
4import net.minecraft.world.item.ItemStack;
5import net.minecraft.world.item.crafting.Ingredient;
6import net.minecraft.world.item.crafting.Recipe;
7
8import java.util.List;
9
10public 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 @@
1package lv.enes.mc.eris_alchemy.utils;
2
3import net.minecraft.core.Holder;
4import net.minecraft.core.Registry;
5import net.minecraft.tags.TagKey;
6
7import java.util.stream.Stream;
8import java.util.stream.StreamSupport;
9
10public 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}