diff --git a/gradle.properties b/gradle.properties index ee6524e4..639c2e38 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.10 +bclib_version = 0.1.12 rei_version = 5.8.10 \ No newline at end of file diff --git a/src/main/java/ru/betterend/blocks/AeterniumAnvil.java b/src/main/java/ru/betterend/blocks/AeterniumAnvil.java index 8fd69a2f..36cd4fc2 100644 --- a/src/main/java/ru/betterend/blocks/AeterniumAnvil.java +++ b/src/main/java/ru/betterend/blocks/AeterniumAnvil.java @@ -12,8 +12,8 @@ import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.IntegerProperty; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.basis.EndAnvilBlock; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.item.material.EndToolMaterial; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java b/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java index 612e9de9..5237f2fb 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java @@ -20,9 +20,9 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.basis.EndLanternBlock; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/ChandelierBlock.java b/src/main/java/ru/betterend/blocks/ChandelierBlock.java index 6fb2cb40..6ed2e58a 100644 --- a/src/main/java/ru/betterend/blocks/ChandelierBlock.java +++ b/src/main/java/ru/betterend/blocks/ChandelierBlock.java @@ -21,9 +21,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.basis.AttachedBlock; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; @@ -47,7 +47,7 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, B @Override public BlockModel getItemModel(ResourceLocation blockId) { - return ModelsHelper.createItemModel(blockId.getPath()); + return ModelsHelper.createItemModel(blockId); } @Override diff --git a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java index 7e7769d2..f1f2d66f 100644 --- a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java @@ -24,7 +24,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import ru.betterend.client.models.BlockModelProvider; +import ru.bclib.client.models.BlockModelProvider; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java b/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java index dc906abe..841a2ffc 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java @@ -10,7 +10,7 @@ import net.minecraft.client.color.item.ItemColor; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.interfaces.IColorProvider; import ru.betterend.util.BlocksHelper; @@ -22,16 +22,12 @@ public class HydraluxPetalColoredBlock extends HydraluxPetalBlock implements ICo @Override public BlockColor getProvider() { - return (state, world, pos, tintIndex) -> { - return BlocksHelper.getBlockColor(this); - }; + return (state, world, pos, tintIndex) -> BlocksHelper.getBlockColor(this); } @Override public ItemColor getItemProvider() { - return (stack, tintIndex) -> { - return BlocksHelper.getBlockColor(this); - }; + return (stack, tintIndex) -> BlocksHelper.getBlockColor(this); } @Override diff --git a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java index 81b06595..79146e5b 100644 --- a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java +++ b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java @@ -1,12 +1,6 @@ package ru.betterend.blocks; -import java.util.List; -import java.util.Optional; - -import org.jetbrains.annotations.Nullable; - import com.google.common.collect.Lists; - import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.item.ItemColor; @@ -23,16 +17,20 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.storage.loot.LootContext; +import org.jetbrains.annotations.Nullable; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.bclib.util.ColorUtil; import ru.bclib.util.MHelper; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IColorProvider; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.noise.OpenSimplexNoise; +import java.util.List; +import java.util.Optional; + public class JellyshroomCapBlock extends SlimeBlock implements IRenderTypeable, BlockModelProvider, IColorProvider { public static final IntegerProperty COLOR = BlockProperties.COLOR; private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java index ed1af5e1..03dfca16 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java @@ -22,8 +22,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.storage.loot.LootContext; +import ru.bclib.client.models.BlockModelProvider; import ru.bclib.util.MHelper; -import ru.betterend.client.models.BlockModelProvider; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.noise.OpenSimplexNoise; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockBase.java b/src/main/java/ru/betterend/blocks/basis/BlockBase.java index 9587dc19..1b6978d6 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockBase.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockBase.java @@ -9,7 +9,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; +import ru.bclib.client.models.BlockModelProvider; public class BlockBase extends Block implements BlockModelProvider { public BlockBase(Properties settings) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java index a26ed8d4..ba2bbdd3 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java @@ -22,9 +22,9 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.BlockProperties; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndAnvilBlock extends AnvilBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java index ed49ae8a..e0abeef5 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java @@ -17,7 +17,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndBookshelfBlock extends BlockBase { diff --git a/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java b/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java index 8f5ff4fe..0933c2ee 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java @@ -18,8 +18,8 @@ import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public abstract class EndButtonBlock extends ButtonBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java index 7cb9a59e..57649929 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java @@ -18,8 +18,8 @@ import net.minecraft.world.level.block.ChainBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; @@ -36,7 +36,7 @@ public class EndChainBlock extends ChainBlock implements BlockModelProvider, IRe @Override public BlockModel getItemModel(ResourceLocation blockId) { - return ModelsHelper.createItemModel(blockId.getPath()); + return ModelsHelper.createItemModel(blockId); } @Override diff --git a/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java b/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java index 32885882..b505dc49 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java @@ -1,26 +1,7 @@ package ru.betterend.blocks.basis; -import java.util.List; -import java.util.Optional; - -import org.jetbrains.annotations.Nullable; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.ChestBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootContext; import ru.bclib.blocks.BaseChestBlock; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; -import ru.betterend.client.models.Patterns; -import ru.betterend.registry.EndBlockEntities; public class EndChestBlock extends BaseChestBlock { public EndChestBlock(Block source) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java b/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java index 621c7245..706566a0 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java @@ -16,9 +16,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.ComposterBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; -import ru.betterend.client.models.ModelsHelper.MultiPartBuilder; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; +import ru.bclib.client.models.ModelsHelper.MultiPartBuilder; import ru.betterend.client.models.Patterns; public class EndComposterBlock extends ComposterBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java b/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java index 566d5627..2ecf1f14 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java @@ -15,8 +15,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.CraftingTableBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndCraftingTableBlock extends CraftingTableBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java index 5e0628b6..3cc60898 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java @@ -21,8 +21,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.DoorHingeSide; import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java b/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java index 2e1dff62..8bc83a2a 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java @@ -18,9 +18,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FenceBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; -import ru.betterend.client.models.ModelsHelper.MultiPartBuilder; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; +import ru.bclib.client.models.ModelsHelper.MultiPartBuilder; import ru.betterend.client.models.Patterns; public class EndFenceBlock extends FenceBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java index 17f948c0..ba33f45a 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java @@ -17,8 +17,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FenceGateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndGateBlock extends FenceGateBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java index a9047038..ec22b239 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java @@ -29,8 +29,8 @@ import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java index c8b8c184..de18545c 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java @@ -22,8 +22,8 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.BlockProperties; -import ru.betterend.client.models.ModelsHelper; public class EndLanternBlock extends BlockBaseNotFull implements SimpleWaterloggedBlock, LiquidBlockContainer { public static final BooleanProperty IS_FLOOR = BlockProperties.IS_FLOOR; diff --git a/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java index 9f23a829..ef2b5c0e 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java @@ -19,8 +19,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import ru.bclib.client.models.BlockModelProvider; import ru.bclib.util.MHelper; -import ru.betterend.client.models.BlockModelProvider; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java b/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java index 1a0983db..72d233cf 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java @@ -21,8 +21,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.IronBarsBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java b/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java index f38fbf32..0d2c4e3a 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java @@ -19,8 +19,8 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import ru.bclib.client.models.BlockModelProvider; import ru.bclib.util.MHelper; -import ru.betterend.client.models.BlockModelProvider; public class EndOreBlock extends OreBlock implements BlockModelProvider { private final Item dropItem; diff --git a/src/main/java/ru/betterend/blocks/basis/EndPathBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPathBlock.java index e3c10550..79de1dcf 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPathBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPathBlock.java @@ -9,9 +9,4 @@ public class EndPathBlock extends BasePathBlock { public EndPathBlock(Block source) { super(source); } - - @Override - protected Block getBottomBlock() { - return Blocks.END_STONE; - } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java index afaf623f..24b2a1ca 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java @@ -16,8 +16,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.RotatedPillarBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndPillarBlock extends RotatedPillarBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java index 9bcf86fb..f29dbc95 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java @@ -17,8 +17,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.PressurePlateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndPlateBlock extends PressurePlateBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java b/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java index cfd7f015..b6ebc0fa 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java @@ -19,8 +19,8 @@ import net.minecraft.world.level.block.SlabBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.SlabType; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndSlabBlock extends SlabBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java index ceadfe4f..e5f94914 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java @@ -20,8 +20,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Half; import net.minecraft.world.level.block.state.properties.StairsShape; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndStairsBlock extends StairBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java index a7ff19f4..80af5145 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java @@ -1,47 +1,8 @@ package ru.betterend.blocks.basis; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Random; - -import org.jetbrains.annotations.Nullable; - -import com.google.common.collect.Maps; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.enchantment.EnchantmentHelper; -import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.SnowLayerBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.lighting.LayerLightEngine; import net.minecraft.world.level.material.MaterialColor; -import net.minecraft.world.level.storage.loot.LootContext; -import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import net.minecraft.world.phys.BlockHitResult; import ru.bclib.blocks.BaseTerrainBlock; -import ru.betterend.blocks.BlockSounds; -import ru.betterend.client.models.ModelsHelper; -import ru.betterend.client.models.Patterns; public class EndTerrainBlock extends BaseTerrainBlock { public EndTerrainBlock(MaterialColor color) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java index 1c28a416..3df52db8 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java @@ -19,8 +19,8 @@ import net.minecraft.world.level.block.TrapDoorBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Half; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java b/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java index 9ea1ef4f..f7189e6f 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java @@ -1,95 +1,11 @@ package ru.betterend.blocks.basis; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.jetbrains.annotations.Nullable; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.BlockModelRotation; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.WallBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.WallSide; -import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; -import ru.betterend.client.models.Patterns; +import ru.bclib.blocks.BaseWallBlock; -public class EndWallBlock extends WallBlock implements BlockModelProvider { - - private final Block parent; +public class EndWallBlock extends BaseWallBlock { public EndWallBlock(Block source) { - super(FabricBlockSettings.copyOf(source).noOcclusion()); - this.parent = source; - } - - @Override - public List getDrops(BlockState state, LootContext.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - - @Override - public BlockModel getItemModel(ResourceLocation blockId) { - ResourceLocation parentId = Registry.BLOCK.getKey(parent); - Optional pattern = Patterns.createJson(Patterns.ITEM_WALL, parentId.getPath(), blockId.getPath()); - return ModelsHelper.fromPattern(pattern); - } - - @Override - public @Nullable BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { - ResourceLocation parentId = Registry.BLOCK.getKey(parent); - String path = blockId.getPath(); - Optional pattern = Optional.empty(); - if (path.endsWith("_post")) { - pattern = Patterns.createJson(Patterns.BLOCK_WALL_POST, parentId.getPath(), blockId.getPath()); - } - if (path.endsWith("_side")) { - pattern = Patterns.createJson(Patterns.BLOCK_WALL_SIDE, parentId.getPath(), blockId.getPath()); - } - if (path.endsWith("_side_tall")) { - pattern = Patterns.createJson(Patterns.BLOCK_WALL_SIDE_TALL, parentId.getPath(), blockId.getPath()); - } - return ModelsHelper.fromPattern(pattern); - } - - @Override - public UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { - ResourceLocation postId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + "_post"); - ResourceLocation sideId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + "_side"); - ResourceLocation sideTallId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + "_side_tall"); - registerBlockModel(postId, postId, blockState, modelCache); - registerBlockModel(sideId, sideId, blockState, modelCache); - registerBlockModel(sideTallId, sideTallId, blockState, modelCache); - - ModelsHelper.MultiPartBuilder builder = ModelsHelper.MultiPartBuilder.create(stateDefinition); - builder.part(sideId).setCondition(state -> state.getValue(NORTH_WALL) == WallSide.LOW).setUVLock(true).add(); - builder.part(sideId).setCondition(state -> state.getValue(EAST_WALL) == WallSide.LOW) - .setTransformation(BlockModelRotation.X0_Y90.getRotation()).setUVLock(true).add(); - builder.part(sideId).setCondition(state -> state.getValue(SOUTH_WALL) == WallSide.LOW) - .setTransformation(BlockModelRotation.X0_Y180.getRotation()).setUVLock(true).add(); - builder.part(sideId).setCondition(state -> state.getValue(WEST_WALL) == WallSide.LOW) - .setTransformation(BlockModelRotation.X0_Y270.getRotation()).setUVLock(true).add(); - builder.part(sideTallId).setCondition(state -> state.getValue(NORTH_WALL) == WallSide.TALL).setUVLock(true).add(); - builder.part(sideTallId).setCondition(state -> state.getValue(EAST_WALL) == WallSide.TALL) - .setTransformation(BlockModelRotation.X0_Y90.getRotation()).setUVLock(true).add(); - builder.part(sideTallId).setCondition(state -> state.getValue(SOUTH_WALL) == WallSide.TALL) - .setTransformation(BlockModelRotation.X0_Y180.getRotation()).setUVLock(true).add(); - builder.part(sideTallId).setCondition(state -> state.getValue(WEST_WALL) == WallSide.TALL) - .setTransformation(BlockModelRotation.X0_Y270.getRotation()).setUVLock(true).add(); - builder.part(postId).setCondition(state -> state.getValue(UP)).add(); - - return builder.build(); + super(source); } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndWeightedPlateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndWeightedPlateBlock.java index c22e4be9..c2977317 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWeightedPlateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWeightedPlateBlock.java @@ -17,8 +17,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.WeightedPressurePlateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndWeightedPlateBlock extends WeightedPressurePlateBlock implements BlockModelProvider { diff --git a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java index 1e3b6060..a2016f02 100644 --- a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java @@ -29,8 +29,8 @@ import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import ru.bclib.api.TagAPI; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.BlockModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 099d392b..74118517 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -40,11 +40,11 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.PedestalState; import ru.betterend.blocks.InfusionPedestal; import ru.betterend.blocks.entities.PedestalBlockEntity; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.registry.EndBlocks; import ru.betterend.rituals.InfusionRitual; diff --git a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java index b9af355c..d36581d8 100644 --- a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java @@ -35,8 +35,8 @@ import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.BlockProperties; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; diff --git a/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java b/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java index 6095e2b8..9712f72a 100644 --- a/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java @@ -17,10 +17,10 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; +import ru.bclib.client.models.ModelsHelper; import ru.bclib.util.ColorUtil; import ru.bclib.util.MHelper; import ru.betterend.blocks.AuroraCrystalBlock; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; import ru.betterend.interfaces.IColorProvider; diff --git a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java index 6c1eb5cd..b71188c3 100644 --- a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java @@ -32,9 +32,9 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.phys.BlockHitResult; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class TripleTerrainBlock extends EndTerrainBlock { diff --git a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java index 60bcf1e9..131b6b52 100644 --- a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java @@ -14,32 +14,16 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.items.ModelProviderItem; +import ru.bclib.items.tool.*; import ru.bclib.util.TagHelper; import ru.betterend.blocks.BulbVineLanternBlock; import ru.betterend.blocks.BulbVineLanternColoredBlock; import ru.betterend.blocks.ChandelierBlock; -import ru.betterend.blocks.basis.BlockBase; -import ru.betterend.blocks.basis.EndAnvilBlock; -import ru.betterend.blocks.basis.EndChainBlock; -import ru.betterend.blocks.basis.EndDoorBlock; -import ru.betterend.blocks.basis.EndMetalPaneBlock; -import ru.betterend.blocks.basis.EndSlabBlock; -import ru.betterend.blocks.basis.EndStairsBlock; -import ru.betterend.blocks.basis.EndTrapdoorBlock; -import ru.betterend.blocks.basis.EndWoodenPlateBlock; +import ru.betterend.blocks.basis.*; import ru.betterend.item.EndArmorItem; -import ru.betterend.item.ModelProviderItem; -import ru.betterend.item.tool.EndAxeItem; import ru.betterend.item.tool.EndHammerItem; -import ru.betterend.item.tool.EndHoeItem; -import ru.betterend.item.tool.EndPickaxeItem; -import ru.betterend.item.tool.EndShovelItem; -import ru.betterend.item.tool.EndSwordItem; -import ru.betterend.recipe.builders.AlloyingRecipe; -import ru.betterend.recipe.builders.AnvilRecipe; -import ru.betterend.recipe.builders.FurnaceRecipe; -import ru.betterend.recipe.builders.GridRecipe; -import ru.betterend.recipe.builders.SmithingTableRecipe; +import ru.betterend.recipe.builders.*; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; import ru.betterend.registry.EndTags; @@ -130,11 +114,11 @@ public class MetalMaterial { swordBlade = EndItems.registerEndItem(name + "_sword_blade"); swordHandle = EndItems.registerEndItem(name + "_sword_handle"); - shovel = EndItems.registerEndTool(name + "_shovel", new EndShovelItem(material, 1.5F, -3.0F, itemSettings)); - sword = EndItems.registerEndTool(name + "_sword", new EndSwordItem(material, 3, -2.4F, itemSettings)); - pickaxe = EndItems.registerEndTool(name + "_pickaxe", new EndPickaxeItem(material, 1, -2.8F, itemSettings)); - axe = EndItems.registerEndTool(name + "_axe", new EndAxeItem(material, 6.0F, -3.0F, itemSettings)); - hoe = EndItems.registerEndTool(name + "_hoe", new EndHoeItem(material, -3, 0.0F, itemSettings)); + shovel = EndItems.registerEndTool(name + "_shovel", new BaseShovelItem(material, 1.5F, -3.0F, itemSettings)); + sword = EndItems.registerEndTool(name + "_sword", new BaseSwordItem(material, 3, -2.4F, itemSettings)); + pickaxe = EndItems.registerEndTool(name + "_pickaxe", new BasePickaxeItem(material, 1, -2.8F, itemSettings)); + axe = EndItems.registerEndTool(name + "_axe", new BaseAxeItem(material, 6.0F, -3.0F, itemSettings)); + hoe = EndItems.registerEndTool(name + "_hoe", new BaseHoeItem(material, -3, 0.0F, itemSettings)); hammer = EndItems.registerEndTool(name + "_hammer", new EndHammerItem(material, 5.0F, -3.2F, 0.3D, itemSettings)); forgedPlate = EndItems.registerEndItem(name + "_forged_plate"); diff --git a/src/main/java/ru/betterend/client/models/BlockModelProvider.java b/src/main/java/ru/betterend/client/models/BlockModelProvider.java deleted file mode 100644 index 473d9250..00000000 --- a/src/main/java/ru/betterend/client/models/BlockModelProvider.java +++ /dev/null @@ -1,40 +0,0 @@ -package ru.betterend.client.models; - -import static net.minecraft.client.resources.model.ModelBakery.MISSING_MODEL_LOCATION; - -import java.util.Map; -import java.util.Optional; - -import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.BetterEnd; - -public interface BlockModelProvider extends ItemModelProvider { - default @Nullable BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) { - Optional pattern = Patterns.createBlockSimple(resourceLocation.getPath()); - return ModelsHelper.fromPattern(pattern); - } - - default UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { - ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath()); - registerBlockModel(stateId, modelId, blockState, modelCache); - return ModelsHelper.createBlockSimple(modelId); - } - - default void registerBlockModel(ResourceLocation stateId, ResourceLocation modelId, BlockState blockState, Map modelCache) { - if (!modelCache.containsKey(modelId)) { - BlockModel model = getBlockModel(stateId, blockState); - if (model != null) { - model.name = modelId.toString(); - modelCache.put(modelId, model); - } else { - BetterEnd.LOGGER.warning("Error loading model: {}", modelId); - modelCache.put(modelId, modelCache.get(MISSING_MODEL_LOCATION)); - } - } - } -} diff --git a/src/main/java/ru/betterend/client/models/ItemModelProvider.java b/src/main/java/ru/betterend/client/models/ItemModelProvider.java deleted file mode 100644 index 36871854..00000000 --- a/src/main/java/ru/betterend/client/models/ItemModelProvider.java +++ /dev/null @@ -1,10 +0,0 @@ -package ru.betterend.client.models; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; - -public interface ItemModelProvider { - default BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createItemModel(resourceLocation.getPath()); - } -} \ No newline at end of file diff --git a/src/main/java/ru/betterend/client/models/ModelsHelper.java b/src/main/java/ru/betterend/client/models/ModelsHelper.java deleted file mode 100644 index 4ce6412f..00000000 --- a/src/main/java/ru/betterend/client/models/ModelsHelper.java +++ /dev/null @@ -1,149 +0,0 @@ -package ru.betterend.client.models; - -import java.util.List; -import java.util.Optional; -import java.util.function.Function; - -import com.google.common.collect.Lists; -import com.mojang.math.Transformation; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.renderer.block.model.MultiVariant; -import net.minecraft.client.renderer.block.model.Variant; -import net.minecraft.client.renderer.block.model.multipart.Condition; -import net.minecraft.client.renderer.block.model.multipart.MultiPart; -import net.minecraft.client.renderer.block.model.multipart.Selector; -import net.minecraft.client.resources.model.BlockModelRotation; -import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; - -@Environment(EnvType.CLIENT) -public class ModelsHelper { - public static BlockModel fromPattern(Optional pattern) { - return pattern.map(BlockModel::fromString).orElse(null); - } - - public static BlockModel createItemModel(String name) { - Optional pattern = Patterns.createItemGenerated("item/" + name); - return fromPattern(pattern); - } - - public static BlockModel createHandheldItem(String name) { - Optional pattern = Patterns.createJson(Patterns.ITEM_HANDHELD, "item/" + name); - return fromPattern(pattern); - } - - public static BlockModel createBlockItem(ResourceLocation resourceLocation) { - Optional pattern = Patterns.createJson(Patterns.ITEM_BLOCK, resourceLocation.getPath()); - return fromPattern(pattern); - } - - public static BlockModel createBlockEmpty(ResourceLocation resourceLocation) { - Optional pattern = Patterns.createJson(Patterns.BLOCK_EMPTY, resourceLocation.getPath()); - return fromPattern(pattern); - } - - public static MultiVariant createMultiVariant(ResourceLocation resourceLocation, Transformation transform, boolean uvLock) { - Variant variant = new Variant(resourceLocation, transform, uvLock, 1); - return new MultiVariant(Lists.newArrayList(variant)); - } - - public static MultiVariant createBlockSimple(ResourceLocation resourceLocation) { - return createMultiVariant(resourceLocation, Transformation.identity(), false); - } - - public static MultiVariant createFacingModel(ResourceLocation resourceLocation, Direction facing, boolean uvLock, boolean inverted) { - if (inverted) { - facing = facing.getOpposite(); - } - BlockModelRotation rotation = BlockModelRotation.by(0, (int) facing.toYRot()); - return createMultiVariant(resourceLocation, rotation.getRotation(), uvLock); - } - - public static MultiVariant createRotatedModel(ResourceLocation resourceLocation, Direction.Axis axis) { - BlockModelRotation rotation = BlockModelRotation.X0_Y0; - switch (axis) { - case X: rotation = BlockModelRotation.X90_Y90; break; - case Z: rotation = BlockModelRotation.X90_Y0; break; - default: break; - } - return createMultiVariant(resourceLocation, rotation.getRotation(), false); - } - - public static MultiVariant createRandomTopModel(ResourceLocation resourceLocation) { - return new MultiVariant(Lists.newArrayList( - new Variant(resourceLocation, Transformation.identity(), false, 1), - new Variant(resourceLocation, BlockModelRotation.X0_Y90.getRotation(), false, 1), - new Variant(resourceLocation, BlockModelRotation.X0_Y180.getRotation(), false, 1), - new Variant(resourceLocation, BlockModelRotation.X0_Y270.getRotation(), false, 1) - )); - } - - public static class MultiPartBuilder { - - private final static MultiPartBuilder BUILDER = new MultiPartBuilder(); - - public static MultiPartBuilder create(StateDefinition stateDefinition) { - BUILDER.stateDefinition = stateDefinition; - BUILDER.modelParts.clear(); - return BUILDER; - } - - private final List modelParts = Lists.newArrayList(); - private StateDefinition stateDefinition; - - private MultiPartBuilder() {} - - public ModelPart part(ResourceLocation modelId) { - return new ModelPart(modelId); - } - - public MultiPart build() { - if (modelParts.size() > 0) { - List selectors = Lists.newArrayList(); - modelParts.forEach(modelPart -> { - MultiVariant variant = createMultiVariant(modelPart.modelId, modelPart.transform, modelPart.uvLock); - selectors.add(new Selector(modelPart.condition, variant)); - }); - modelParts.clear(); - return new MultiPart(stateDefinition, selectors); - } - throw new IllegalStateException("At least one model part need to be created."); - } - - public class ModelPart { - private final ResourceLocation modelId; - private Transformation transform = Transformation.identity(); - private Condition condition = Condition.TRUE; - private boolean uvLock = false; - - private ModelPart(ResourceLocation modelId) { - this.modelId = modelId; - } - - public ModelPart setCondition(Function condition) { - this.condition = stateDefinition -> condition::apply; - return this; - } - - public ModelPart setTransformation(Transformation transform) { - this.transform = transform; - return this; - } - - public ModelPart setUVLock(boolean value) { - this.uvLock = value; - return this; - } - - public void add() { - modelParts.add(this); - } - } - } -} diff --git a/src/main/java/ru/betterend/integration/rei/REIPlugin.java b/src/main/java/ru/betterend/integration/rei/REIPlugin.java index 8ac01152..20906d2b 100644 --- a/src/main/java/ru/betterend/integration/rei/REIPlugin.java +++ b/src/main/java/ru/betterend/integration/rei/REIPlugin.java @@ -80,11 +80,11 @@ public class REIPlugin implements REIPluginV0 { } static { - List anvils = Lists.newArrayList(EntryStack.ofItems(EndItems.getModBlocks().stream() + List anvils = Lists.newArrayList(EntryStack.ofItems(EndItems.getModBlocks(BetterEnd.MOD_ID).stream() .filter(item -> ((BlockItem) item).getBlock() instanceof EndAnvilBlock).collect(Collectors.toList()))); anvils.add(0, EntryStack.create(Blocks.ANVIL)); ANVILS = anvils.toArray(new EntryStack[0]); - FURNACES = Lists.newArrayList(EntryStack.ofItems(EndItems.getModBlocks().stream() + FURNACES = Lists.newArrayList(EntryStack.ofItems(EndItems.getModBlocks(BetterEnd.MOD_ID).stream() .filter(item -> ((BlockItem) item).getBlock() instanceof EndFurnaceBlock).collect(Collectors.toList()))) .toArray(new EntryStack[0]); } diff --git a/src/main/java/ru/betterend/interfaces/MultiModelItem.java b/src/main/java/ru/betterend/interfaces/MultiModelItem.java index 9d0cbe59..a486db0a 100644 --- a/src/main/java/ru/betterend/interfaces/MultiModelItem.java +++ b/src/main/java/ru/betterend/interfaces/MultiModelItem.java @@ -2,6 +2,7 @@ package ru.betterend.interfaces; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import ru.betterend.BetterEnd; import ru.betterend.registry.EndItems; public interface MultiModelItem { @@ -9,7 +10,7 @@ public interface MultiModelItem { void registerModelPredicate(); static void register() { - EndItems.getModItems().forEach(item -> { + EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> { if (item instanceof MultiModelItem) { ((MultiModelItem) item).registerModelPredicate(); } diff --git a/src/main/java/ru/betterend/item/DrinkItem.java b/src/main/java/ru/betterend/item/DrinkItem.java index 09bda903..e727afb9 100644 --- a/src/main/java/ru/betterend/item/DrinkItem.java +++ b/src/main/java/ru/betterend/item/DrinkItem.java @@ -12,6 +12,7 @@ import net.minecraft.world.item.ItemUtils; import net.minecraft.world.item.Items; import net.minecraft.world.item.UseAnim; import net.minecraft.world.level.Level; +import ru.bclib.items.ModelProviderItem; public class DrinkItem extends ModelProviderItem { public DrinkItem(Properties settings) { diff --git a/src/main/java/ru/betterend/item/EnchantedPetalItem.java b/src/main/java/ru/betterend/item/EnchantedPetalItem.java index e3785469..9fd42565 100644 --- a/src/main/java/ru/betterend/item/EnchantedPetalItem.java +++ b/src/main/java/ru/betterend/item/EnchantedPetalItem.java @@ -4,7 +4,9 @@ import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.ModelsHelper; +import ru.bclib.items.ModelProviderItem; +import ru.betterend.BetterEnd; import ru.betterend.registry.EndItems; public class EnchantedPetalItem extends ModelProviderItem { @@ -19,6 +21,6 @@ public class EnchantedPetalItem extends ModelProviderItem { @Override public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createItemModel("hydralux_petal"); + return ModelsHelper.createItemModel(BetterEnd.makeID("hydralux_petal")); } } diff --git a/src/main/java/ru/betterend/item/EndArmorItem.java b/src/main/java/ru/betterend/item/EndArmorItem.java index a6c10d3f..1f4bf969 100644 --- a/src/main/java/ru/betterend/item/EndArmorItem.java +++ b/src/main/java/ru/betterend/item/EndArmorItem.java @@ -11,7 +11,7 @@ import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.ArmorMaterial; -import ru.betterend.client.models.ItemModelProvider; +import ru.bclib.client.models.ItemModelProvider; public class EndArmorItem extends ArmorItem implements ItemModelProvider { diff --git a/src/main/java/ru/betterend/item/EndBucketItem.java b/src/main/java/ru/betterend/item/EndBucketItem.java index a677cb80..7d7a729a 100644 --- a/src/main/java/ru/betterend/item/EndBucketItem.java +++ b/src/main/java/ru/betterend/item/EndBucketItem.java @@ -3,7 +3,7 @@ package ru.betterend.item; import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.FishBucketItem; import net.minecraft.world.level.material.Fluids; -import ru.betterend.client.models.ItemModelProvider; +import ru.bclib.client.models.ItemModelProvider; import ru.betterend.registry.EndItems; public class EndBucketItem extends FishBucketItem implements ItemModelProvider { diff --git a/src/main/java/ru/betterend/item/EndDiscItem.java b/src/main/java/ru/betterend/item/EndDiscItem.java index a89d7c8c..dd15a820 100644 --- a/src/main/java/ru/betterend/item/EndDiscItem.java +++ b/src/main/java/ru/betterend/item/EndDiscItem.java @@ -2,7 +2,7 @@ package ru.betterend.item; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.RecordItem; -import ru.betterend.client.models.ItemModelProvider; +import ru.bclib.client.models.ItemModelProvider; public class EndDiscItem extends RecordItem implements ItemModelProvider { public EndDiscItem(int comparatorOutput, SoundEvent sound, Properties settings) { diff --git a/src/main/java/ru/betterend/item/EndSpawnEggItem.java b/src/main/java/ru/betterend/item/EndSpawnEggItem.java index 14c0d2e5..a594c362 100644 --- a/src/main/java/ru/betterend/item/EndSpawnEggItem.java +++ b/src/main/java/ru/betterend/item/EndSpawnEggItem.java @@ -6,8 +6,8 @@ import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.SpawnEggItem; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.ItemModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.client.models.Patterns; public class EndSpawnEggItem extends SpawnEggItem implements ItemModelProvider { diff --git a/src/main/java/ru/betterend/item/EternalCrystalItem.java b/src/main/java/ru/betterend/item/EternalCrystalItem.java index 9e9bb63b..9034283d 100644 --- a/src/main/java/ru/betterend/item/EternalCrystalItem.java +++ b/src/main/java/ru/betterend/item/EternalCrystalItem.java @@ -1,6 +1,7 @@ package ru.betterend.item; import net.minecraft.world.item.Rarity; +import ru.bclib.items.ModelProviderItem; import ru.betterend.registry.EndItems; public class EternalCrystalItem extends ModelProviderItem { diff --git a/src/main/java/ru/betterend/item/GuideBookItem.java b/src/main/java/ru/betterend/item/GuideBookItem.java index 2a89baa3..3e7348c4 100644 --- a/src/main/java/ru/betterend/item/GuideBookItem.java +++ b/src/main/java/ru/betterend/item/GuideBookItem.java @@ -13,6 +13,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; +import ru.bclib.items.ModelProviderItem; import ru.betterend.BetterEnd; import ru.betterend.registry.EndItems; import ru.betterend.util.LangUtil; diff --git a/src/main/java/ru/betterend/item/ModelProviderItem.java b/src/main/java/ru/betterend/item/ModelProviderItem.java deleted file mode 100644 index 026abdcc..00000000 --- a/src/main/java/ru/betterend/item/ModelProviderItem.java +++ /dev/null @@ -1,18 +0,0 @@ -package ru.betterend.item; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Item; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class ModelProviderItem extends Item implements ItemModelProvider { - public ModelProviderItem(Properties settings) { - super(settings); - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createItemModel(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/item/tool/EndAxeItem.java b/src/main/java/ru/betterend/item/tool/EndAxeItem.java deleted file mode 100644 index 4d06037d..00000000 --- a/src/main/java/ru/betterend/item/tool/EndAxeItem.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.betterend.item.tool; - -import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; -import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.Tag; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.AxeItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Tier; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class EndAxeItem extends AxeItem implements DynamicAttributeTool, ItemModelProvider { - public EndAxeItem(Tier material, float attackDamage, float attackSpeed, Properties settings) { - super(material, attackDamage, attackSpeed, settings); - } - - @Override - public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(FabricToolTags.AXES)) { - return this.getTier().getLevel(); - } - return 0; - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/item/tool/EndHammerItem.java b/src/main/java/ru/betterend/item/tool/EndHammerItem.java index bd3ea65d..fa990cf9 100644 --- a/src/main/java/ru/betterend/item/tool/EndHammerItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHammerItem.java @@ -28,8 +28,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; +import ru.bclib.client.models.ItemModelProvider; +import ru.bclib.client.models.ModelsHelper; import ru.betterend.registry.EndTags; public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, ItemModelProvider { @@ -134,6 +134,6 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I @Override public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); + return ModelsHelper.createHandheldItem(resourceLocation); } } diff --git a/src/main/java/ru/betterend/item/tool/EndHoeItem.java b/src/main/java/ru/betterend/item/tool/EndHoeItem.java deleted file mode 100644 index 58502c87..00000000 --- a/src/main/java/ru/betterend/item/tool/EndHoeItem.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.betterend.item.tool; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.HoeItem; -import net.minecraft.world.item.Tier; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class EndHoeItem extends HoeItem implements ItemModelProvider { - public EndHoeItem(Tier material, int attackDamage, float attackSpeed, Properties settings) { - super(material, attackDamage, attackSpeed, settings); - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java b/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java deleted file mode 100644 index fc7cec19..00000000 --- a/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.betterend.item.tool; - -import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; -import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; -import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl; -import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl.Entry; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.Tag; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.PickaxeItem; -import net.minecraft.world.item.Tier; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class EndPickaxeItem extends PickaxeItem implements DynamicAttributeTool, ItemModelProvider { - public EndPickaxeItem(Tier material, int attackDamage, float attackSpeed, Properties settings) { - super(material, attackDamage, attackSpeed, settings); - } - - @Override - public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(FabricToolTags.PICKAXES)) { - return getTier().getLevel(); - } - return 0; - } - - @Override - public float getDestroySpeed(ItemStack stack, BlockState state) { - if (getTier().getLevel() > 2 && state.getMaterial().equals(Blocks.END_STONE.defaultBlockState().getMaterial())) { - return speed * 3; - } - Entry entry = ToolManagerImpl.entryNullable(state.getBlock()); - return (entry != null && entry.getMiningLevel(FabricToolTags.PICKAXES) >= 0) ? speed : super.getDestroySpeed(stack, state); - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/item/tool/EndShovelItem.java b/src/main/java/ru/betterend/item/tool/EndShovelItem.java deleted file mode 100644 index e105ca97..00000000 --- a/src/main/java/ru/betterend/item/tool/EndShovelItem.java +++ /dev/null @@ -1,42 +0,0 @@ -package ru.betterend.item.tool; - -import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; -import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; -import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl; -import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl.Entry; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.Tag; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ShovelItem; -import net.minecraft.world.item.Tier; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class EndShovelItem extends ShovelItem implements DynamicAttributeTool, ItemModelProvider { - public EndShovelItem(Tier material, float attackDamage, float attackSpeed, Properties settings) { - super(material, attackDamage, attackSpeed, settings); - } - - @Override - public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(FabricToolTags.SHOVELS)) { - return this.getTier().getLevel(); - } - return 0; - } - - @Override - public float getDestroySpeed(ItemStack stack, BlockState state) { - Entry entry = ToolManagerImpl.entryNullable(state.getBlock()); - return (entry != null && entry.getMiningLevel(FabricToolTags.SHOVELS) >= 0) ? speed : super.getDestroySpeed(stack, state); - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/item/tool/EndSwordItem.java b/src/main/java/ru/betterend/item/tool/EndSwordItem.java deleted file mode 100644 index b468fc73..00000000 --- a/src/main/java/ru/betterend/item/tool/EndSwordItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.betterend.item.tool; - -import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.SwordItem; -import net.minecraft.world.item.Tier; -import ru.betterend.client.models.ItemModelProvider; -import ru.betterend.client.models.ModelsHelper; - -public class EndSwordItem extends SwordItem implements DynamicAttributeTool, ItemModelProvider { - public EndSwordItem(Tier material, int attackDamage, float attackSpeed, Properties settings) { - super(material, attackDamage, attackSpeed, settings); - } - - @Override - public BlockModel getItemModel(ResourceLocation resourceLocation) { - return ModelsHelper.createHandheldItem(resourceLocation.getPath()); - } -} diff --git a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java index d936bfa0..adba0f1a 100644 --- a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java @@ -1,114 +1,20 @@ package ru.betterend.mixin.client; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import net.minecraft.client.renderer.block.BlockModelShaper; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.renderer.block.model.multipart.MultiPart; import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.BetterEnd; -import ru.betterend.client.models.BlockModelProvider; -import ru.betterend.client.models.ItemModelProvider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; import ru.betterend.world.generator.GeneratorOptions; @Mixin(ModelBakery.class) public abstract class ModelLoaderMixin { - @Final - @Shadow - private ResourceManager resourceManager; - @Final - @Shadow - private Map unbakedCache; - @Shadow - protected abstract void cacheAndQueueDependencies(ResourceLocation resourceLocation, UnbakedModel unbakedModel); - - @Inject(method = "loadModel", at = @At("HEAD"), cancellable = true) - private void be_loadModels(ResourceLocation resourceLocation, CallbackInfo info) { - if (resourceLocation instanceof ModelResourceLocation) { - String modId = resourceLocation.getNamespace(); - String path = resourceLocation.getPath(); - ResourceLocation clearLoc = new ResourceLocation(modId, path); - ModelResourceLocation modelId = (ModelResourceLocation) resourceLocation; - if ("inventory".equals(modelId.getVariant())) { - ResourceLocation itemLoc = new ResourceLocation(modId, "item/" + path); - ResourceLocation itemModelLoc = new ResourceLocation(modId, "models/" + itemLoc.getPath() + ".json"); - if (!resourceManager.hasResource(itemModelLoc)) { - Item item = Registry.ITEM.get(clearLoc); - ItemModelProvider modelProvider = null; - if (item instanceof ItemModelProvider) { - modelProvider = (ItemModelProvider) item; - } else if (item instanceof BlockItem) { - Block block = Registry.BLOCK.get(clearLoc); - if (block instanceof ItemModelProvider) { - modelProvider = (ItemModelProvider) block; - } - } - if (modelProvider != null) { - BlockModel model = modelProvider.getItemModel(clearLoc); - if (model != null) { - model.name = itemLoc.toString(); - cacheAndQueueDependencies(modelId, model); - unbakedCache.put(itemLoc, model); - } else { - BetterEnd.LOGGER.warning("Error loading model: {}", itemLoc); - } - info.cancel(); - } - } - } else { - ResourceLocation stateLoc = new ResourceLocation(modId, "blockstates/" + path + ".json"); - if (!resourceManager.hasResource(stateLoc)) { - Block block = Registry.BLOCK.get(clearLoc); - if (block instanceof BlockModelProvider) { - List possibleStates = block.getStateDefinition().getPossibleStates(); - Optional possibleState = possibleStates.stream() - .filter(state -> modelId.equals(BlockModelShaper.stateToModelLocation(clearLoc, state))) - .findFirst(); - if (possibleState.isPresent()) { - UnbakedModel modelVariant = ((BlockModelProvider) block).getModelVariant(modelId, possibleState.get(), unbakedCache); - if (modelVariant != null) { - if (modelVariant instanceof MultiPart) { - possibleStates.forEach(state -> { - ResourceLocation stateId = BlockModelShaper.stateToModelLocation(clearLoc, state); - cacheAndQueueDependencies(stateId, modelVariant); - }); - } else { - cacheAndQueueDependencies(modelId, modelVariant); - } - } else { - BetterEnd.LOGGER.warning("Error loading variant: {}", modelId); - } - info.cancel(); - } - } - } - } - } - } - @ModifyVariable(method = "loadModel", ordinal = 2, at = @At(value = "INVOKE")) public ResourceLocation be_switchModel(ResourceLocation id) { - if (GeneratorOptions.changeChorusPlant() && id.getNamespace().equals("minecraft") && id.getPath().startsWith("blockstates/") && id.getPath().contains("chorus") && !id.getPath().contains("custom_")) { + if (GeneratorOptions.changeChorusPlant() && id.getNamespace().equals("minecraft") && + id.getPath().startsWith("blockstates/") && id.getPath().contains("chorus") && + !id.getPath().contains("custom_")) { id = new ResourceLocation(id.getPath().replace("chorus", "custom_chorus")); } return id; diff --git a/src/main/java/ru/betterend/registry/EndBlockEntities.java b/src/main/java/ru/betterend/registry/EndBlockEntities.java index a1a05e5d..1d42a6dc 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntities.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntities.java @@ -6,6 +6,8 @@ import net.minecraft.world.item.BlockItem; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; +import ru.bclib.blocks.BaseChestBlock; +import ru.bclib.registry.BaseRegistry; import ru.betterend.BetterEnd; import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EternalPedestal; @@ -34,17 +36,11 @@ public class EndBlockEntities { public static void register() {} static Block[] getPedestals() { - List result = Lists.newArrayList(); - EndItems.getModBlocks().forEach((item) -> { - if (item instanceof BlockItem) { - Block block = ((BlockItem) item).getBlock(); - if (block instanceof EternalPedestal || - block instanceof InfusionPedestal) return; - if (block instanceof PedestalBlock) { - result.add(block); - } - } - }); - return result.toArray(new Block[] {}); + return BaseRegistry.getRegisteredBlocks().values().stream() + .filter(item -> item instanceof BlockItem) + .map(item -> ((BlockItem) item).getBlock()) + .filter(block -> block instanceof PedestalBlock && + !(block instanceof EternalPedestal || block instanceof InfusionPedestal)) + .toArray(Block[]::new); } } diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index afdbbeb7..d8612a45 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -1,7 +1,5 @@ package ru.betterend.registry; -import java.util.List; - import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; @@ -18,25 +16,10 @@ import ru.bclib.items.tool.*; import ru.bclib.registry.ItemsRegistry; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; -import ru.betterend.item.ArmoredElytra; -import ru.betterend.item.CrystaliteBoots; -import ru.betterend.item.CrystaliteChestplate; -import ru.betterend.item.CrystaliteHelmet; -import ru.betterend.item.CrystaliteLeggings; -import ru.betterend.item.DrinkItem; -import ru.betterend.item.EnchantedPetalItem; -import ru.betterend.item.EndArmorItem; -import ru.betterend.item.EndBucketItem; -import ru.betterend.item.EternalCrystalItem; -import ru.betterend.item.ModelProviderItem; +import ru.betterend.item.*; import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndToolMaterial; -import ru.betterend.item.tool.EndAxeItem; import ru.betterend.item.tool.EndHammerItem; -import ru.betterend.item.tool.EndHoeItem; -import ru.betterend.item.tool.EndPickaxeItem; -import ru.betterend.item.tool.EndShovelItem; -import ru.betterend.item.tool.EndSwordItem; import ru.betterend.tab.CreativeTabs; public class EndItems extends ItemsRegistry { diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index c6f9632d..6f30d4a6 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -82,7 +82,7 @@ public class EndTags { TagAPI.addEndGround(EndBlocks.ENDSTONE_DUST); TagAPI.addEndGround(EndBlocks.AMBER_ORE); - EndItems.getModBlocks().forEach(blockItem -> { + EndItems.getModBlocks(BetterEnd.MOD_ID).forEach(blockItem -> { Block block = ((BlockItem) blockItem).getBlock(); if (block instanceof EndTerrainBlock) { TagAPI.addEndGround(block); @@ -106,7 +106,7 @@ public class EndTags { }); List hammers = Lists.newArrayList(); - EndItems.getModItems().forEach(item -> { + EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> { if (item.isEdible()) { FoodProperties food = item.getFoodProperties(); if (food != null) { diff --git a/src/main/java/ru/betterend/tab/CreativeTabs.java b/src/main/java/ru/betterend/tab/CreativeTabs.java index 518925f7..92162302 100644 --- a/src/main/java/ru/betterend/tab/CreativeTabs.java +++ b/src/main/java/ru/betterend/tab/CreativeTabs.java @@ -1,6 +1,9 @@ package ru.betterend.tab; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -8,6 +11,8 @@ import ru.betterend.BetterEnd; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; +import java.util.stream.Collectors; + public class CreativeTabs { public static final CreativeModeTab TAB_BLOCKS; public static final CreativeModeTab TAB_ITEMS; @@ -15,15 +20,13 @@ public class CreativeTabs { static { TAB_BLOCKS = FabricItemGroupBuilder.create(BetterEnd.makeID("end_blocks")) .icon(() -> new ItemStack(EndBlocks.END_MYCELIUM)).appendItems(stacks -> { - for (Item i : EndItems.getModBlocks()) { - stacks.add(new ItemStack(i)); - } + stacks.addAll(EndItems.getModBlocks(BetterEnd.MOD_ID).stream() + .map(ItemStack::new).collect(Collectors.toList())); }).build(); TAB_ITEMS = FabricItemGroupBuilder.create(BetterEnd.makeID("end_items")) .icon(() -> new ItemStack(EndItems.ETERNAL_CRYSTAL)).appendItems(stacks -> { - for (Item i : EndItems.getModItems()) { - stacks.add(new ItemStack(i)); - } + stacks.addAll(EndItems.getModItems(BetterEnd.MOD_ID).stream() + .map(ItemStack::new).collect(Collectors.toList())); }).build(); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 60493aa0..c18e4f79 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.10" + "bclib": ">=0.1.12" }, "suggests": { "byg": ">=1.1.3",