From ea30863666f142b11818f8de091433b5ae73ac3d Mon Sep 17 00:00:00 2001 From: Aleksey Date: Thu, 3 Jun 2021 17:33:08 +0300 Subject: [PATCH] BlockEntities bclib fix --- build.gradle | 2 +- gradle.properties | 2 +- settings.gradle | 1 - .../ru/betterend/client/BetterEndClient.java | 19 ++++++++++++++ .../java/ru/betterend/registry/EndBlocks.java | 25 +++++++++++++++---- src/main/resources/fabric.mod.json | 2 +- 6 files changed, 42 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 8a542da4..69851754 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ dependencies { useApi "vazkii.patchouli:Patchouli:1.16.4-${project.patchouli_version}" useApi "com.github.paulevsGitch:BCLib:${project.bclib_version}" - + useOptional "me.shedaniel:RoughlyEnoughItems:${project.rei_version}" useOptional "me.shedaniel:RoughlyEnoughItems-api:${project.rei_version}" //useOptional "grondag:canvas-mc116:${project.canvas_version}" diff --git a/gradle.properties b/gradle.properties index e71ad51d..80616cff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,5 +17,5 @@ archives_base_name = better-end patchouli_version = 50-FABRIC fabric_version = 0.32.9+1.16 canvas_version = 1.0.+ -bclib_version = 0.1.13 +bclib_version = 0.1.15 rei_version = 5.8.10 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 5b60df3d..f91a4fe7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,5 @@ pluginManagement { repositories { - jcenter() maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 365a89f4..c0d601c5 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -8,6 +8,14 @@ import net.minecraft.core.Registry; import net.minecraft.network.chat.Style; import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import ru.bclib.blocks.BaseChestBlock; +import ru.bclib.blocks.BaseSignBlock; +import ru.bclib.client.render.BaseChestBlockEntityRenderer; +import ru.bclib.client.render.BaseSignBlockEntityRenderer; +import ru.bclib.registry.BaseRegistry; import ru.bclib.util.TranslationHelper; import ru.betterend.BetterEnd; import ru.betterend.client.render.ERenderLayer; @@ -21,6 +29,8 @@ import ru.betterend.registry.EndModelProviders; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndScreens; +import java.util.List; + public class BetterEndClient implements ClientModInitializer { @Override public void onInitializeClient() { @@ -32,6 +42,7 @@ public class BetterEndClient implements ClientModInitializer { EndModelProviders.register(); MultiModelItem.register(); ClientOptions.init(); + registerRenderers(); registerTooltips(); if (BetterEnd.isDevEnvironment()) { @@ -67,4 +78,12 @@ public class BetterEndClient implements ClientModInitializer { } }); } + + private static void registerRenderers() { + List modBlocks = BaseRegistry.getModBlocks(BetterEnd.MOD_ID); + modBlocks.stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock) + .map(item -> ((BlockItem) item).getBlock()).forEach(BaseChestBlockEntityRenderer::registerRenderLayer); + modBlocks.stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock) + .map(item -> ((BlockItem) item).getBlock()).forEach(BaseSignBlockEntityRenderer::registerRenderLayer); + } } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 02a9eb9a..7d593602 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -7,11 +7,17 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import org.jetbrains.annotations.NotNull; -import ru.bclib.blocks.BasePathBlock; +import ru.bclib.blocks.*; +import ru.bclib.registry.BaseBlockEntities; import ru.bclib.registry.BlocksRegistry; import ru.betterend.BetterEnd; import ru.betterend.blocks.*; import ru.betterend.blocks.basis.*; +import ru.betterend.blocks.basis.SimpleLeavesBlock; +import ru.betterend.blocks.basis.StalactiteBlock; +import ru.betterend.blocks.basis.TripleTerrainBlock; +import ru.betterend.blocks.basis.VineBlock; +import ru.betterend.blocks.basis.WallMushroomBlock; import ru.betterend.blocks.complex.ColoredMaterial; import ru.betterend.blocks.complex.CrystalSubblocksMaterial; import ru.betterend.blocks.complex.MetalMaterial; @@ -313,15 +319,24 @@ public class EndBlocks extends BlocksRegistry { if (!Configs.BLOCK_CONFIG.getBooleanRoot(id.getPath(), true)) { return block; } + if (block instanceof BaseChestBlock) { + BaseBlockEntities.CHEST.registerBlock(block); + } + if (block instanceof BaseSignBlock) { + BaseBlockEntities.SIGN.registerBlock(block); + } + if (block instanceof BaseBarrelBlock) { + BaseBlockEntities.BARREL.registerBlock(block); + } + if (block instanceof BaseFurnaceBlock) { + BaseBlockEntities.FURNACE.registerBlock(block); + } getBlockRegistry().register(id, block); return block; } public static Block registerBlock(String name, Block block) { - if (!Configs.BLOCK_CONFIG.getBooleanRoot(name, true)) { - return block; - } - return getBlockRegistry().register(name, block); + return registerBlock(BetterEnd.makeID(name), block); } public static Block registerEndBlockOnly(String name, Block block) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index c18e4f79..c4d43434 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.11.0", "fabric": ">=0.32.0", "minecraft": ">=1.16.4", - "bclib": ">=0.1.12" + "bclib": ">=0.1.15" }, "suggests": { "byg": ">=1.1.3",