Registry update

This commit is contained in:
paulevsGitch 2021-10-26 16:12:38 +03:00
parent 9c1c1edb12
commit 3b570cd80e
6 changed files with 67 additions and 170 deletions

View file

@ -10,7 +10,7 @@ public interface MultiModelItem {
void registerModelPredicate(); void registerModelPredicate();
static void register() { static void register() {
EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> { EndItems.getModItems().forEach(item -> {
if (item instanceof MultiModelItem) { if (item instanceof MultiModelItem) {
((MultiModelItem) item).registerModelPredicate(); ((MultiModelItem) item).registerModelPredicate();
} }

View file

@ -21,7 +21,7 @@ import java.util.List;
public class GuideBookItem extends ModelProviderItem { public class GuideBookItem extends ModelProviderItem {
public final static ResourceLocation BOOK_ID = BetterEnd.makeID("guidebook"); public final static ResourceLocation BOOK_ID = BetterEnd.makeID("guidebook");
public static final Item GUIDE_BOOK = EndItems.registerEndItem(BOOK_ID, new GuideBookItem()); public static final Item GUIDE_BOOK = EndItems.getItemRegistry().register(BOOK_ID, new GuideBookItem());
public static void register() { public static void register() {
} }

View file

@ -150,7 +150,9 @@ import ru.betterend.item.material.EndArmorMaterial;
import ru.betterend.item.material.EndToolMaterial; import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.tab.CreativeTabs; import ru.betterend.tab.CreativeTabs;
public class EndBlocks extends BlockRegistry { public class EndBlocks {
private static final BlockRegistry REGISTRY = new BlockRegistry(CreativeTabs.TAB_BLOCKS, Configs.BLOCK_CONFIG);
// Terrain // // Terrain //
public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock()); public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock());
public static final Block END_MYCELIUM = registerBlock("end_mycelium", new EndTerrainBlock(MaterialColor.COLOR_LIGHT_BLUE)); public static final Block END_MYCELIUM = registerBlock("end_mycelium", new EndTerrainBlock(MaterialColor.COLOR_LIGHT_BLUE));
@ -523,17 +525,13 @@ public class EndBlocks extends BlockRegistry {
// Technical // Technical
public static final Block END_PORTAL_BLOCK = registerEndBlockOnly("end_portal_block", new EndPortalBlock()); public static final Block END_PORTAL_BLOCK = registerEndBlockOnly("end_portal_block", new EndPortalBlock());
private static BlockRegistry BlockRegistry;
private EndBlocks(CreativeModeTab creativeTab) {
super(creativeTab);
}
public static List<Block> getModBlocks() { public static List<Block> getModBlocks() {
return getModBlocks(BetterEnd.MOD_ID).stream() return BlockRegistry
.filter(BlockItem.class::isInstance) .getModBlocks(BetterEnd.MOD_ID)
.map(item -> ((BlockItem) item).getBlock()) .stream()
.collect(Collectors.toList()); .filter(BlockItem.class::isInstance)
.map(item -> ((BlockItem) item).getBlock())
.collect(Collectors.toList());
} }
public static Block registerBlock(ResourceLocation id, Block block) { public static Block registerBlock(ResourceLocation id, Block block) {
@ -568,16 +566,8 @@ public class EndBlocks extends BlockRegistry {
return getBlockRegistry().makeItemSettings(); return getBlockRegistry().makeItemSettings();
} }
@Override
public ResourceLocation createModId(String name) {
return BetterEnd.makeID(name);
}
@NotNull @NotNull
public static BlockRegistry getBlockRegistry() { public static BlockRegistry getBlockRegistry() {
if (BlockRegistry == null) { return REGISTRY;
BlockRegistry = new EndBlocks(CreativeTabs.TAB_BLOCKS);
}
return BlockRegistry;
} }
} }

View file

@ -1,11 +1,6 @@
package ru.betterend.registry; package ru.betterend.registry;
import java.util.List;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
@ -14,12 +9,11 @@ import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.Mob;
import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.food.Foods; import net.minecraft.world.food.Foods;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
import net.minecraft.world.item.TieredItem; import net.minecraft.world.item.TieredItem;
import net.minecraft.world.item.Tiers; import net.minecraft.world.item.Tiers;
import org.jetbrains.annotations.NotNull;
import ru.bclib.items.BaseArmorItem; import ru.bclib.items.BaseArmorItem;
import ru.bclib.items.tool.BaseAxeItem; import ru.bclib.items.tool.BaseAxeItem;
import ru.bclib.items.tool.BaseHoeItem; import ru.bclib.items.tool.BaseHoeItem;
@ -35,6 +29,7 @@ import ru.betterend.item.CrystaliteElytra;
import ru.betterend.item.CrystaliteHelmet; import ru.betterend.item.CrystaliteHelmet;
import ru.betterend.item.CrystaliteLeggings; import ru.betterend.item.CrystaliteLeggings;
import ru.betterend.item.EnchantedItem; import ru.betterend.item.EnchantedItem;
import ru.betterend.item.EndArmorItem;
import ru.betterend.item.EndBucketItem; import ru.betterend.item.EndBucketItem;
import ru.betterend.item.EternalCrystalItem; import ru.betterend.item.EternalCrystalItem;
import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndArmorMaterial;
@ -43,7 +38,11 @@ import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.item.tool.EndPickaxe; import ru.betterend.item.tool.EndPickaxe;
import ru.betterend.tab.CreativeTabs; import ru.betterend.tab.CreativeTabs;
public class EndItems extends ItemRegistry { import java.util.List;
public class EndItems {
private static final ItemRegistry REGISTRY = new ItemRegistry(CreativeTabs.TAB_ITEMS, Configs.ITEM_CONFIG);
// Materials // // Materials //
public final static Item ENDER_DUST = registerEndItem("ender_dust"); public final static Item ENDER_DUST = registerEndItem("ender_dust");
public final static Item ENDER_SHARD = registerEndItem("ender_shard"); public final static Item ENDER_SHARD = registerEndItem("ender_shard");
@ -93,60 +92,24 @@ public class EndItems extends ItemRegistry {
); );
// Armor // // Armor //
public static final Item AETERNIUM_HELMET = registerEndItem( public static final Item AETERNIUM_HELMET = registerEndItem("aeternium_helmet", new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.HEAD, makeEndItemSettings().fireResistant()));
"aeternium_helmet", public static final Item AETERNIUM_CHESTPLATE = registerEndItem("aeternium_chestplate", new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, makeEndItemSettings().fireResistant()));
new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.HEAD, makeEndItemSettings().fireResistant()) public static final Item AETERNIUM_LEGGINGS = registerEndItem("aeternium_leggings", new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeEndItemSettings().fireResistant()));
); public static final Item AETERNIUM_BOOTS = registerEndItem("aeternium_boots", new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, makeEndItemSettings().fireResistant()));
public static final Item AETERNIUM_CHESTPLATE = registerEndItem(
"aeternium_chestplate",
new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, makeEndItemSettings().fireResistant())
);
public static final Item AETERNIUM_LEGGINGS = registerEndItem(
"aeternium_leggings",
new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeEndItemSettings().fireResistant())
);
public static final Item AETERNIUM_BOOTS = registerEndItem(
"aeternium_boots",
new BaseArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, makeEndItemSettings().fireResistant())
);
public static final Item CRYSTALITE_HELMET = registerEndItem("crystalite_helmet", new CrystaliteHelmet()); public static final Item CRYSTALITE_HELMET = registerEndItem("crystalite_helmet", new CrystaliteHelmet());
public static final Item CRYSTALITE_CHESTPLATE = registerEndItem( public static final Item CRYSTALITE_CHESTPLATE = registerEndItem("crystalite_chestplate", new CrystaliteChestplate());
"crystalite_chestplate",
new CrystaliteChestplate()
);
public static final Item CRYSTALITE_LEGGINGS = registerEndItem("crystalite_leggings", new CrystaliteLeggings()); public static final Item CRYSTALITE_LEGGINGS = registerEndItem("crystalite_leggings", new CrystaliteLeggings());
public static final Item CRYSTALITE_BOOTS = registerEndItem("crystalite_boots", new CrystaliteBoots()); public static final Item CRYSTALITE_BOOTS = registerEndItem("crystalite_boots", new CrystaliteBoots());
public static final Item ARMORED_ELYTRA = registerEndItem( public static final Item ARMORED_ELYTRA = registerEndItem("elytra_armored", new ArmoredElytra("elytra_armored", EndArmorMaterial.AETERNIUM, Items.PHANTOM_MEMBRANE, 900, 0.975D, true));
"elytra_armored",
new ArmoredElytra("elytra_armored", EndArmorMaterial.AETERNIUM, Items.PHANTOM_MEMBRANE, 900, 0.975D, true)
);
public static final Item CRYSTALITE_ELYTRA = registerEndItem("elytra_crystalite", new CrystaliteElytra(650, 0.99D)); public static final Item CRYSTALITE_ELYTRA = registerEndItem("elytra_crystalite", new CrystaliteElytra(650, 0.99D));
// Tools // // Tools //
public static final TieredItem AETERNIUM_SHOVEL = registerEndTool( public static final TieredItem AETERNIUM_SHOVEL = registerEndTool("aeternium_shovel", new BaseShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeEndItemSettings().fireResistant()));
"aeternium_shovel", public static final TieredItem AETERNIUM_SWORD = registerEndTool("aeternium_sword", new BaseSwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeEndItemSettings().fireResistant()));
new BaseShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeEndItemSettings().fireResistant()) public static final TieredItem AETERNIUM_PICKAXE = registerEndTool("aeternium_pickaxe", new EndPickaxe(EndToolMaterial.AETERNIUM, 1, -2.8F, makeEndItemSettings().fireResistant()));
); public static final TieredItem AETERNIUM_AXE = registerEndTool("aeternium_axe", new BaseAxeItem(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, makeEndItemSettings().fireResistant()));
public static final TieredItem AETERNIUM_SWORD = registerEndTool( public static final TieredItem AETERNIUM_HOE = registerEndTool("aeternium_hoe", new BaseHoeItem(EndToolMaterial.AETERNIUM, -3, 0.0F, makeEndItemSettings().fireResistant()));
"aeternium_sword", public static final TieredItem AETERNIUM_HAMMER = registerEndTool("aeternium_hammer", new EndHammerItem(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeEndItemSettings().fireResistant()));
new BaseSwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeEndItemSettings().fireResistant())
);
public static final TieredItem AETERNIUM_PICKAXE = registerEndTool(
"aeternium_pickaxe",
new EndPickaxe(EndToolMaterial.AETERNIUM, 1, -2.8F, makeEndItemSettings().fireResistant())
);
public static final TieredItem AETERNIUM_AXE = registerEndTool(
"aeternium_axe",
new BaseAxeItem(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, makeEndItemSettings().fireResistant())
);
public static final TieredItem AETERNIUM_HOE = registerEndTool(
"aeternium_hoe",
new BaseHoeItem(EndToolMaterial.AETERNIUM, -3, 0.0F, makeEndItemSettings().fireResistant())
);
public static final TieredItem AETERNIUM_HAMMER = registerEndTool(
"aeternium_hammer",
new EndHammerItem(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeEndItemSettings().fireResistant())
);
// Toolparts // // Toolparts //
public final static Item AETERNIUM_SHOVEL_HEAD = registerEndItem("aeternium_shovel_head"); public final static Item AETERNIUM_SHOVEL_HEAD = registerEndItem("aeternium_shovel_head");
@ -158,40 +121,20 @@ public class EndItems extends ItemRegistry {
public final static Item AETERNIUM_SWORD_HANDLE = registerEndItem("aeternium_sword_handle"); public final static Item AETERNIUM_SWORD_HANDLE = registerEndItem("aeternium_sword_handle");
// ITEM_HAMMERS // // ITEM_HAMMERS //
public static final TieredItem IRON_HAMMER = registerEndTool( public static final TieredItem IRON_HAMMER = registerEndTool("iron_hammer", new EndHammerItem(Tiers.IRON, 5.0F, -3.2F, 0.2D, makeEndItemSettings()));
"iron_hammer", public static final TieredItem GOLDEN_HAMMER = registerEndTool("golden_hammer", new EndHammerItem(Tiers.GOLD, 4.5F, -3.4F, 0.3D, makeEndItemSettings()));
new EndHammerItem(Tiers.IRON, 5.0F, -3.2F, 0.2D, makeEndItemSettings()) public static final TieredItem DIAMOND_HAMMER = registerEndTool("diamond_hammer", new EndHammerItem(Tiers.DIAMOND, 5.5F, -3.1F, 0.2D, makeEndItemSettings()));
); public static final TieredItem NETHERITE_HAMMER = registerEndTool("netherite_hammer", new EndHammerItem(Tiers.NETHERITE, 5.0F, -3.0F, 0.2D, makeEndItemSettings().fireResistant()));
public static final TieredItem GOLDEN_HAMMER = registerEndTool(
"golden_hammer",
new EndHammerItem(Tiers.GOLD, 4.5F, -3.4F, 0.3D, makeEndItemSettings())
);
public static final TieredItem DIAMOND_HAMMER = registerEndTool(
"diamond_hammer",
new EndHammerItem(Tiers.DIAMOND, 5.5F, -3.1F, 0.2D, makeEndItemSettings())
);
public static final TieredItem NETHERITE_HAMMER = registerEndTool(
"netherite_hammer",
new EndHammerItem(Tiers.NETHERITE, 5.0F, -3.0F, 0.2D, makeEndItemSettings().fireResistant())
);
// Food // // Food //
public final static Item SHADOW_BERRY_RAW = registerEndFood("shadow_berry_raw", 4, 0.5F); public final static Item SHADOW_BERRY_RAW = registerEndFood("shadow_berry_raw", 4, 0.5F);
public final static Item SHADOW_BERRY_COOKED = registerEndFood("shadow_berry_cooked", 6, 0.7F); public final static Item SHADOW_BERRY_COOKED = registerEndFood("shadow_berry_cooked", 6, 0.7F);
public final static Item END_FISH_RAW = registerEndFood("end_fish_raw", Foods.SALMON); public final static Item END_FISH_RAW = registerEndFood("end_fish_raw", Foods.SALMON);
public final static Item END_FISH_COOKED = registerEndFood("end_fish_cooked", Foods.COOKED_SALMON); public final static Item END_FISH_COOKED = registerEndFood("end_fish_cooked", Foods.COOKED_SALMON);
public final static Item BUCKET_END_FISH = registerEndItem( public final static Item BUCKET_END_FISH = registerEndItem("bucket_end_fish", new EndBucketItem(EndEntities.END_FISH));
"bucket_end_fish",
new EndBucketItem(EndEntities.END_FISH)
);
public final static Item BUCKET_CUBOZOA = registerEndItem("bucket_cubozoa", new EndBucketItem(EndEntities.CUBOZOA)); public final static Item BUCKET_CUBOZOA = registerEndItem("bucket_cubozoa", new EndBucketItem(EndEntities.CUBOZOA));
public final static Item SWEET_BERRY_JELLY = registerEndFood("sweet_berry_jelly", 8, 0.7F); public final static Item SWEET_BERRY_JELLY = registerEndFood("sweet_berry_jelly", 8, 0.7F);
public final static Item SHADOW_BERRY_JELLY = registerEndFood( public final static Item SHADOW_BERRY_JELLY = registerEndFood("shadow_berry_jelly", 6, 0.8F, new MobEffectInstance(MobEffects.NIGHT_VISION, 400));
"shadow_berry_jelly",
6,
0.8F,
new MobEffectInstance(MobEffects.NIGHT_VISION, 400)
);
public final static Item BLOSSOM_BERRY_JELLY = registerEndFood("blossom_berry_jelly", 8, 0.7F); public final static Item BLOSSOM_BERRY_JELLY = registerEndFood("blossom_berry_jelly", 8, 0.7F);
public final static Item BLOSSOM_BERRY = registerEndFood("blossom_berry", Foods.APPLE); public final static Item BLOSSOM_BERRY = registerEndFood("blossom_berry", Foods.APPLE);
public final static Item AMBER_ROOT_RAW = registerEndFood("amber_root_raw", 2, 0.8F); public final static Item AMBER_ROOT_RAW = registerEndFood("amber_root_raw", 2, 0.8F);
@ -203,92 +146,54 @@ public class EndItems extends ItemRegistry {
// Drinks // // Drinks //
public final static Item UMBRELLA_CLUSTER_JUICE = registerEndDrink("umbrella_cluster_juice", 5, 0.7F); public final static Item UMBRELLA_CLUSTER_JUICE = registerEndDrink("umbrella_cluster_juice", 5, 0.7F);
private static ItemRegistry itemRegistry;
protected EndItems(CreativeModeTab creativeTab) {
super(creativeTab);
}
public static List<Item> getModItems() { public static List<Item> getModItems() {
return getModItems(BetterEnd.MOD_ID); return REGISTRY.getModItems(BetterEnd.MOD_ID);
} }
public static Item registerEndDisc(String name, int power, SoundEvent sound) { public static Item registerEndDisc(String name, int power, SoundEvent sound) {
return getItemRegistry().registerDisc(name, power, sound); return getItemRegistry().registerDisc(BetterEnd.makeID(name), power, sound);
} }
public static Item registerEndItem(String name) { public static Item registerEndItem(String name) {
return getItemRegistry().registerItem(name); return getItemRegistry().register(BetterEnd.makeID(name));
} }
public static Item registerEndItem(String name, Item item) { public static Item registerEndItem(String name, Item item) {
if (item instanceof EndArmorItem) {
return getItemRegistry().register(BetterEnd.makeID(name), item, "armour");
}
return getItemRegistry().register(BetterEnd.makeID(name), item); return getItemRegistry().register(BetterEnd.makeID(name), item);
} }
public static Item registerEndItem(ResourceLocation id, Item item) {
if (item instanceof ArmorItem) {
return registerEndArmor(id, item);
}
if (!Configs.ITEM_CONFIG.getBoolean("items", id.getPath(), true)) {
return item;
}
getItemRegistry().register(id, item);
return item;
}
private static Item registerEndArmor(ResourceLocation itemId, Item item) {
if (!Configs.ITEM_CONFIG.getBoolean("armor", itemId.getPath(), true)) {
return item;
}
getItemRegistry().register(itemId, item);
return item;
}
public static TieredItem registerEndTool(String name, TieredItem item) { public static TieredItem registerEndTool(String name, TieredItem item) {
if (!Configs.ITEM_CONFIG.getBoolean("tools", name, true)) { if (!Configs.ITEM_CONFIG.getBoolean("tools", name, true)) {
return item; return item;
} }
return (TieredItem)getItemRegistry().registerTool(name, item); return (TieredItem)getItemRegistry().registerTool(BetterEnd.makeID(name), item);
} }
public static Item registerEndEgg(String name, EntityType<? extends Mob> type, int background, int dots) { public static Item registerEndEgg(String name, EntityType<? extends Mob> type, int background, int dots) {
return getItemRegistry().registerEgg(name, type, background, dots); return getItemRegistry().registerEgg(BetterEnd.makeID(name), type, background, dots);
} }
public static Item registerEndFood(String name, int hunger, float saturation, MobEffectInstance... effects) { public static Item registerEndFood(String name, int hunger, float saturation, MobEffectInstance... effects) {
return getItemRegistry().registerFood(name, hunger, saturation, effects); return getItemRegistry().registerFood(BetterEnd.makeID(name), hunger, saturation, effects);
} }
public static Item registerEndFood(String name, FoodProperties foodComponent) { public static Item registerEndFood(String name, FoodProperties foodComponent) {
return getItemRegistry().registerFood(name, foodComponent); return getItemRegistry().registerFood(BetterEnd.makeID(name), foodComponent);
}
public static Item registerEndDrink(String name) {
return getItemRegistry().registerDrink(name);
}
public static Item registerEndDrink(String name, FoodProperties foodComponent) {
return getItemRegistry().registerDrink(name, foodComponent);
} }
public static Item registerEndDrink(String name, int hunger, float saturation) { public static Item registerEndDrink(String name, int hunger, float saturation) {
return getItemRegistry().registerDrink(name, hunger, saturation); return getItemRegistry().registerDrink(BetterEnd.makeID(name), hunger, saturation);
} }
public static FabricItemSettings makeEndItemSettings() { public static FabricItemSettings makeEndItemSettings() {
return itemRegistry.makeItemSettings(); return getItemRegistry().makeItemSettings();
}
@Override
public ResourceLocation createModId(String name) {
return BetterEnd.makeID(name);
} }
@NotNull @NotNull
public static ItemRegistry getItemRegistry() { public static ItemRegistry getItemRegistry() {
if (itemRegistry == null) { return REGISTRY;
itemRegistry = new EndItems(CreativeTabs.TAB_ITEMS);
}
return itemRegistry;
} }
} }

View file

@ -94,7 +94,7 @@ public class EndTags {
BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK); BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK);
List<Item> ITEM_HAMMERS = Lists.newArrayList(); List<Item> ITEM_HAMMERS = Lists.newArrayList();
EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> { EndItems.getModItems().forEach(item -> {
if (item.isEdible()) { if (item.isEdible()) {
FoodProperties food = item.getFoodProperties(); FoodProperties food = item.getFoodProperties();
if (food != null) { if (food != null) {

View file

@ -14,19 +14,21 @@ public class CreativeTabs {
public static final CreativeModeTab TAB_ITEMS; public static final CreativeModeTab TAB_ITEMS;
static { static {
TAB_BLOCKS = FabricItemGroupBuilder.create(BetterEnd.makeID("end_blocks")) TAB_BLOCKS = FabricItemGroupBuilder
.icon(() -> new ItemStack(EndBlocks.END_MYCELIUM)) .create(BetterEnd.makeID("end_blocks"))
.appendItems(stacks -> stacks.addAll(EndBlocks.getModBlocks() .icon(() -> new ItemStack(EndBlocks.END_MYCELIUM))
.stream() .appendItems(stacks -> stacks.addAll(EndBlocks.getModBlocks()
.map(ItemStack::new) .stream()
.collect(Collectors.toList()))) .map(ItemStack::new)
.build(); .collect(Collectors.toList())))
TAB_ITEMS = FabricItemGroupBuilder.create(BetterEnd.makeID("end_items")) .build();
.icon(() -> new ItemStack(EndItems.ETERNAL_CRYSTAL)) TAB_ITEMS = FabricItemGroupBuilder
.appendItems(stacks -> stacks.addAll(EndItems.getModItems() .create(BetterEnd.makeID("end_items"))
.stream() .icon(() -> new ItemStack(EndItems.ETERNAL_CRYSTAL))
.map(ItemStack::new) .appendItems(stacks -> stacks.addAll(EndItems.getModItems()
.collect(Collectors.toList()))) .stream()
.build(); .map(ItemStack::new)
.collect(Collectors.toList())))
.build();
} }
} }