diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 337072c3..76cdcc03 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -2,7 +2,9 @@ package ru.betterend; import net.fabricmc.api.ModInitializer; import ru.betterend.registry.BiomeRegistry; +import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.FeatureRegistry; +import ru.betterend.registry.ItemRegistry; import ru.betterend.util.Logger; import ru.betterend.world.generator.BetterEndBiomeSource; @@ -12,6 +14,8 @@ public class BetterEnd implements ModInitializer { @Override public void onInitialize() { + ItemRegistry.register(); + BlockRegistry.register(); FeatureRegistry.register(); BiomeRegistry.register(); BetterEndBiomeSource.register(); diff --git a/src/main/java/ru/betterend/blocks/BlockWetMycelium.java b/src/main/java/ru/betterend/blocks/BlockWetMycelium.java new file mode 100644 index 00000000..ae291fda --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockWetMycelium.java @@ -0,0 +1,11 @@ +package ru.betterend.blocks; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; + +public class BlockWetMycelium extends Block { + public BlockWetMycelium() { + super(FabricBlockSettings.copyOf(Blocks.END_STONE)); + } +} diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java new file mode 100644 index 00000000..e200f80f --- /dev/null +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -0,0 +1,28 @@ +package ru.betterend.registry; + +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; +import ru.betterend.BetterEnd; +import ru.betterend.blocks.BlockWetMycelium; +import ru.betterend.tab.CreativeTab; + +public class BlockRegistry { + public static final Block WET_MYCELIUM = registerBlock("wet_mycelium", new BlockWetMycelium()); + + public static void register() {} + + private static Block registerBlock(String name, Block block) + { + Registry.register(Registry.BLOCK, new Identifier(BetterEnd.MOD_ID, name), block); + ItemRegistry.registerItem(name, new BlockItem(block, new Item.Settings().group(CreativeTab.END_TAB))); + return block; + } + + public static Block registerBlockNI(String name, Block block) + { + return Registry.register(Registry.BLOCK, new Identifier(BetterEnd.MOD_ID, name), block); + } +} diff --git a/src/main/java/ru/betterend/registry/ItemRegistry.java b/src/main/java/ru/betterend/registry/ItemRegistry.java new file mode 100644 index 00000000..092256e4 --- /dev/null +++ b/src/main/java/ru/betterend/registry/ItemRegistry.java @@ -0,0 +1,38 @@ +package ru.betterend.registry; + +import java.util.List; + +import com.google.common.collect.Lists; + +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; +import ru.betterend.BetterEnd; + +public class ItemRegistry { + private static final List MOD_BLOCKS = Lists.newArrayList(); + private static final List MOD_ITEMS = Lists.newArrayList(); + + protected static Item registerItem(String name, Item item) { + if (item instanceof BlockItem && item != Items.AIR) { + Registry.register(Registry.ITEM, new Identifier(BetterEnd.MOD_ID, name), item); + if (item instanceof BlockItem) + MOD_BLOCKS.add(item); + else + MOD_ITEMS.add(item); + } + return item; + } + + public static void register() {} + + public static List getModBlocks() { + return MOD_BLOCKS; + } + + public static List getModItems() { + return MOD_ITEMS; + } +} diff --git a/src/main/java/ru/betterend/tab/CreativeTab.java b/src/main/java/ru/betterend/tab/CreativeTab.java new file mode 100644 index 00000000..eb8a0273 --- /dev/null +++ b/src/main/java/ru/betterend/tab/CreativeTab.java @@ -0,0 +1,23 @@ +package ru.betterend.tab; + +import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.minecraft.block.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; +import ru.betterend.BetterEnd; +import ru.betterend.registry.ItemRegistry; + +public class CreativeTab { + public static final ItemGroup END_TAB = FabricItemGroupBuilder.create(new Identifier(BetterEnd.MOD_ID, "items")) + .icon(() -> new ItemStack(Blocks.END_STONE)).appendItems(stacks -> { + for (Item i : ItemRegistry.getModBlocks()) { + stacks.add(new ItemStack(i)); + } + + for (Item i : ItemRegistry.getModItems()) { + stacks.add(new ItemStack(i)); + } + }).build(); +} diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index ea51758d..c47d4339 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -1,5 +1,7 @@ package ru.betterend.world.biome; +import net.minecraft.world.gen.GenerationStep.Feature; +import net.minecraft.world.gen.feature.ConfiguredFeatures; import ru.betterend.registry.FeatureRegistry; public class BiomeFoggyMushroomland extends EndBiome { @@ -7,6 +9,9 @@ public class BiomeFoggyMushroomland extends EndBiome { super(new BiomeDefinition("foggy_mushroomland") .setFogColor(41, 122, 173) .setFogDensity(3) - .addFeature(FeatureRegistry.STONE_SPIRAL)); + .setWaterColor(119, 227, 250) + .setWaterFogColor(119, 227, 250) + .addFeature(FeatureRegistry.STONE_SPIRAL) + .addFeature(Feature.LAKES, ConfiguredFeatures.LAKE_WATER)); } }