diff --git a/src/main/java/ru/betterend/blocks/AeterniumBlock.java b/src/main/java/ru/betterend/blocks/AeterniumBlock.java index 3aa5a7c9..11711a35 100644 --- a/src/main/java/ru/betterend/blocks/AeterniumBlock.java +++ b/src/main/java/ru/betterend/blocks/AeterniumBlock.java @@ -9,6 +9,7 @@ import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; +import ru.betterend.blocks.basis.BlockBase; public class AeterniumBlock extends BlockBase { diff --git a/src/main/java/ru/betterend/blocks/BlockTerrain.java b/src/main/java/ru/betterend/blocks/BlockTerrain.java index 78b791c8..454b92a9 100644 --- a/src/main/java/ru/betterend/blocks/BlockTerrain.java +++ b/src/main/java/ru/betterend/blocks/BlockTerrain.java @@ -5,6 +5,7 @@ import net.minecraft.block.Blocks; import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundEvents; +import ru.betterend.blocks.basis.BlockBase; public class BlockTerrain extends BlockBase { public static final BlockSoundGroup TERRAIN_SOUND = new BlockSoundGroup(1.0F, 1.0F, diff --git a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java index d00f2e56..01631123 100644 --- a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java +++ b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java @@ -7,7 +7,6 @@ import java.util.Random; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; - import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; @@ -37,6 +36,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; import net.minecraft.world.World; +import ru.betterend.blocks.basis.BaseBlockWithEntity; public class EndStoneSmelter extends BaseBlockWithEntity { public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; diff --git a/src/main/java/ru/betterend/blocks/EnderBlock.java b/src/main/java/ru/betterend/blocks/EnderBlock.java index 67714be0..57516d94 100644 --- a/src/main/java/ru/betterend/blocks/EnderBlock.java +++ b/src/main/java/ru/betterend/blocks/EnderBlock.java @@ -9,6 +9,7 @@ import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; +import ru.betterend.blocks.basis.BlockBase; public class EnderBlock extends BlockBase { diff --git a/src/main/java/ru/betterend/blocks/TerminiteBlock.java b/src/main/java/ru/betterend/blocks/TerminiteBlock.java index d8ed2352..4270e3a8 100644 --- a/src/main/java/ru/betterend/blocks/TerminiteBlock.java +++ b/src/main/java/ru/betterend/blocks/TerminiteBlock.java @@ -4,6 +4,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; +import ru.betterend.blocks.basis.BlockBase; public class TerminiteBlock extends BlockBase { public TerminiteBlock() { diff --git a/src/main/java/ru/betterend/blocks/BaseBlockWithEntity.java b/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java similarity index 95% rename from src/main/java/ru/betterend/blocks/BaseBlockWithEntity.java rename to src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java index 91d28e11..05bbad65 100644 --- a/src/main/java/ru/betterend/blocks/BaseBlockWithEntity.java +++ b/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java @@ -1,4 +1,4 @@ -package ru.betterend.blocks; +package ru.betterend.blocks.basis; import java.util.Collections; import java.util.List; diff --git a/src/main/java/ru/betterend/blocks/BlockBase.java b/src/main/java/ru/betterend/blocks/basis/BlockBase.java similarity index 89% rename from src/main/java/ru/betterend/blocks/BlockBase.java rename to src/main/java/ru/betterend/blocks/basis/BlockBase.java index af3607b5..4c408927 100644 --- a/src/main/java/ru/betterend/blocks/BlockBase.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockBase.java @@ -1,4 +1,4 @@ -package ru.betterend.blocks; +package ru.betterend.blocks.basis; import java.util.Collections; import java.util.List; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockDoor.java b/src/main/java/ru/betterend/blocks/basis/BlockDoor.java new file mode 100644 index 00000000..8fef0162 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockDoor.java @@ -0,0 +1,33 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.DoorBlock; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import ru.betterend.client.ERenderLayer; +import ru.betterend.client.IRenderTypeable; + +public class BlockDoor extends DoorBlock implements IRenderTypeable { + public BlockDoor(Block block) { + super(FabricBlockSettings.copy(block).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + if (state.get(HALF) == DoubleBlockHalf.LOWER) + return Collections.singletonList(new ItemStack(this.asItem())); + else + return Collections.emptyList(); + } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockFence.java b/src/main/java/ru/betterend/blocks/basis/BlockFence.java new file mode 100644 index 00000000..d2afb79a --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockFence.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.FenceBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockFence extends FenceBlock { + public BlockFence(Block source) { + super(FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockGate.java b/src/main/java/ru/betterend/blocks/basis/BlockGate.java new file mode 100644 index 00000000..a073c071 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockGate.java @@ -0,0 +1,23 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.FenceGateBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockGate extends FenceGateBlock +{ + public BlockGate(Block source) { + super(FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockLogStripable.java b/src/main/java/ru/betterend/blocks/basis/BlockLogStripable.java new file mode 100644 index 00000000..11f90960 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockLogStripable.java @@ -0,0 +1,41 @@ +package ru.betterend.blocks.basis; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.MaterialColor; +import net.minecraft.block.PillarBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class BlockLogStripable extends BlockPillar { + private final Block striped; + + public BlockLogStripable(MaterialColor color, Block striped) { + super(FabricBlockSettings.copyOf(striped).materialColor(color)); + this.striped = striped; + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (player.getMainHandStack().getItem().isIn(FabricToolTags.AXES)) { + world.playSound(player, pos, SoundEvents.ITEM_AXE_STRIP, SoundCategory.BLOCKS, 1.0F, 1.0F); + if (!world.isClient) { + world.setBlockState(pos, striped.getDefaultState().with(PillarBlock.AXIS, state.get(PillarBlock.AXIS)), 11); + if (player != null && !player.isCreative()) { + player.getMainHandStack().damage(1, world.random, (ServerPlayerEntity) player); + } + } + return ActionResult.SUCCESS; + } + return ActionResult.FAIL; + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPillar.java b/src/main/java/ru/betterend/blocks/basis/BlockPillar.java new file mode 100644 index 00000000..92e67bb8 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockPillar.java @@ -0,0 +1,20 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.minecraft.block.BlockState; +import net.minecraft.block.PillarBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockPillar extends PillarBlock { + public BlockPillar(Settings settings) { + super(settings); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPressurePlate.java b/src/main/java/ru/betterend/blocks/basis/BlockPressurePlate.java new file mode 100644 index 00000000..f4226ca6 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockPressurePlate.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.PressurePlateBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockPressurePlate extends PressurePlateBlock { + public BlockPressurePlate(Block source) { + super(ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockSlab.java b/src/main/java/ru/betterend/blocks/basis/BlockSlab.java new file mode 100644 index 00000000..7209eea3 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockSlab.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockSlab extends SlabBlock { + public BlockSlab(Block source) { + super(FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockStairs.java b/src/main/java/ru/betterend/blocks/basis/BlockStairs.java new file mode 100644 index 00000000..f872f5d9 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockStairs.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.StairsBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockStairs extends StairsBlock { + public BlockStairs(Block source) { + super(source.getDefaultState(), FabricBlockSettings.copyOf(source)); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java b/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java new file mode 100644 index 00000000..92021f6a --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.TrapdoorBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockTrapdoor extends TrapdoorBlock { + public BlockTrapdoor(Block source) { + super(FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockWoodenButton.java b/src/main/java/ru/betterend/blocks/basis/BlockWoodenButton.java new file mode 100644 index 00000000..9b7593d4 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockWoodenButton.java @@ -0,0 +1,22 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.WoodenButtonBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; + +public class BlockWoodenButton extends WoodenButtonBlock { + public BlockWoodenButton(Block source) { + super(FabricBlockSettings.copyOf(source).nonOpaque()); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } +} diff --git a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java new file mode 100644 index 00000000..f8faa189 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java @@ -0,0 +1,90 @@ +package ru.betterend.blocks.complex; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.Material; +import net.minecraft.block.MaterialColor; +import net.minecraft.item.Items; +import ru.betterend.blocks.basis.BlockBase; +import ru.betterend.blocks.basis.BlockDoor; +import ru.betterend.blocks.basis.BlockFence; +import ru.betterend.blocks.basis.BlockGate; +import ru.betterend.blocks.basis.BlockLogStripable; +import ru.betterend.blocks.basis.BlockPillar; +import ru.betterend.blocks.basis.BlockPressurePlate; +import ru.betterend.blocks.basis.BlockSlab; +import ru.betterend.blocks.basis.BlockStairs; +import ru.betterend.blocks.basis.BlockTrapdoor; +import ru.betterend.blocks.basis.BlockWoodenButton; +import ru.betterend.recipe.RecipeBuilder; +import ru.betterend.registry.BlockRegistry; + +public class WoodenMaterial +{ + public final Block log; + public final Block bark; + + public final Block log_striped; + public final Block bark_striped; + + public final Block planks; + + public final Block stairs; + public final Block slab; + public final Block fence; + public final Block gate; + public final Block button; + public final Block pressure_plate; + public final Block trapdoor; + public final Block door; + + //public final Block crafting_table; + //public final Block ladder; + //public final Block sign; + + //public final Block chest; + //public final Block barrel; + + public WoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) + { + FabricBlockSettings materialPlanks = FabricBlockSettings.of(Material.WOOD).materialColor(planksColor); + + log_striped = BlockRegistry.registerBlock(name + "_striped_log", new BlockPillar(materialPlanks)); + bark_striped = BlockRegistry.registerBlock(name + "_striped_bark", new BlockPillar(materialPlanks)); + + log = BlockRegistry.registerBlock(name + "_log", new BlockLogStripable(woodColor, log_striped)); + bark = BlockRegistry.registerBlock(name + "_bark", new BlockLogStripable(woodColor, bark_striped)); + + planks = BlockRegistry.registerBlock(name + "_planks", new BlockBase(materialPlanks)); + stairs = BlockRegistry.registerBlock(name + "_stairs", new BlockStairs(planks)); + slab = BlockRegistry.registerBlock(name + "_slab", new BlockSlab(planks)); + fence = BlockRegistry.registerBlock(name + "_fence", new BlockFence(planks)); + gate = BlockRegistry.registerBlock(name + "_gate", new BlockGate(planks)); + button = BlockRegistry.registerBlock(name + "_button", new BlockWoodenButton(planks)); + pressure_plate = BlockRegistry.registerBlock(name + "_plate", new BlockPressurePlate(planks)); + trapdoor = BlockRegistry.registerBlock(name + "_trapdoor", new BlockTrapdoor(planks)); + door = BlockRegistry.registerBlock(name + "_door", new BlockDoor(planks)); + + //crafting_table = BlockRegistry.registerBlock("crafting_table_" + name, planks); + //ladder = BlockRegistry.registerBlock(name + "_ladder", planks); + //sign = BlockRegistry.registerBlock("sign_" + name, planks); + + //chest = BlockRegistry.registerBlock("chest_" + name, planks); + //barrel = BlockRegistry.registerBlock("barrel_" + name, planks, planks_slab); + + RecipeBuilder.make(name + "_planks", planks).setOutputCount(4).setList("#").addMaterial('#', log, bark).setGroup("end_planks").build(); + RecipeBuilder.make(name + "_stairs", stairs).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', planks).setGroup("end_planks_stairs").build(); + RecipeBuilder.make(name + "_slab", slab).setOutputCount(6).setShape("###").addMaterial('#', planks).setGroup("end_planks_slabs").build(); + RecipeBuilder.make(name + "_fence", fence).setOutputCount(3).setShape("#I#", "#I#").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_fences").build(); + RecipeBuilder.make(name + "_gate", gate).setShape("I#I", "I#I").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_gates").build(); + RecipeBuilder.make(name + "_button", button).setList("#").addMaterial('#', planks).setGroup("end_planks_buttons").build(); + RecipeBuilder.make(name + "_pressure_plate", pressure_plate).setList("##").addMaterial('#', planks).setGroup("end_planks_plates").build(); + RecipeBuilder.make(name + "_trapdoor", trapdoor).setOutputCount(2).setShape("###", "###").addMaterial('#', planks).setGroup("end_trapdoors").build(); + RecipeBuilder.make(name + "_door", door).setOutputCount(3).setShape("##", "##", "##").addMaterial('#', planks).setGroup("end_doors").build(); + } + + public boolean isTreeLog(Block block) + { + return block == log || block == bark; + } +} \ No newline at end of file diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java new file mode 100644 index 00000000..208fb6a2 --- /dev/null +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -0,0 +1,28 @@ +package ru.betterend.client; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.registry.Registry; + +public class BetterEndClient implements ClientModInitializer +{ + @Override + public void onInitializeClient() { + registerRenderLayers(); + } + + private void registerRenderLayers() { + RenderLayer cutout = RenderLayer.getCutout(); + RenderLayer translucent = RenderLayer.getTranslucent(); + Registry.BLOCK.forEach(block -> { + if (block instanceof IRenderTypeable) { + ERenderLayer layer = ((IRenderTypeable) block).getRenderLayer(); + if (layer == ERenderLayer.CUTOUT) + BlockRenderLayerMap.INSTANCE.putBlock(block, cutout); + else if (layer == ERenderLayer.TRANSLUCENT) + BlockRenderLayerMap.INSTANCE.putBlock(block, translucent); + } + }); + } +} diff --git a/src/main/java/ru/betterend/client/ERenderLayer.java b/src/main/java/ru/betterend/client/ERenderLayer.java new file mode 100644 index 00000000..cd1c439c --- /dev/null +++ b/src/main/java/ru/betterend/client/ERenderLayer.java @@ -0,0 +1,6 @@ +package ru.betterend.client; + +public enum ERenderLayer { + CUTOUT, + TRANSLUCENT; +} diff --git a/src/main/java/ru/betterend/client/IRenderTypeable.java b/src/main/java/ru/betterend/client/IRenderTypeable.java new file mode 100644 index 00000000..4ae43f1c --- /dev/null +++ b/src/main/java/ru/betterend/client/IRenderTypeable.java @@ -0,0 +1,6 @@ +package ru.betterend.client; + +public interface IRenderTypeable +{ + public ERenderLayer getRenderLayer(); +} diff --git a/src/main/java/ru/betterend/recipe/RecipeBuilder.java b/src/main/java/ru/betterend/recipe/RecipeBuilder.java index 2272dc02..8fbcf78c 100644 --- a/src/main/java/ru/betterend/recipe/RecipeBuilder.java +++ b/src/main/java/ru/betterend/recipe/RecipeBuilder.java @@ -51,7 +51,7 @@ public class RecipeBuilder { return this; } - public RecipeBuilder setShape(String[] shape) { + public RecipeBuilder setShape(String... shape) { this.shape = shape; return this; } diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index 20ff706e..260883c3 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -35,7 +35,7 @@ public class BlockRegistry { public static void register() {} - private static Block registerBlock(String name, Block block) { + public 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;