From 45421184b7b73d3681fbe9f73830e0b9cb10ec62 Mon Sep 17 00:00:00 2001 From: TechnoVisionDev Date: Wed, 29 Apr 2020 17:53:10 -0700 Subject: [PATCH] Add custom blocks --- .../tutorial/blocks/BlockItemBase.java | 13 +++++++++++++ .../tutorial/blocks/RubyBlock.java | 18 ++++++++++++++++++ .../tutorial/util/RegistryHandler.java | 11 +++++++++++ .../tutorial/blockstates/ruby_block.json | 5 +++++ .../resources/assets/tutorial/lang/en_us.json | 1 + .../tutorial/models/block/ruby_block.json | 6 ++++++ .../tutorial/models/item/ruby_block.json | 3 +++ .../tutorial/textures/blocks/ruby_block.png | Bin 0 -> 431 bytes 8 files changed, 57 insertions(+) create mode 100644 src/main/java/com/technovision/tutorial/blocks/BlockItemBase.java create mode 100644 src/main/java/com/technovision/tutorial/blocks/RubyBlock.java create mode 100644 src/main/resources/assets/tutorial/blockstates/ruby_block.json create mode 100644 src/main/resources/assets/tutorial/models/block/ruby_block.json create mode 100644 src/main/resources/assets/tutorial/models/item/ruby_block.json create mode 100644 src/main/resources/assets/tutorial/textures/blocks/ruby_block.png diff --git a/src/main/java/com/technovision/tutorial/blocks/BlockItemBase.java b/src/main/java/com/technovision/tutorial/blocks/BlockItemBase.java new file mode 100644 index 0000000..2aeee8d --- /dev/null +++ b/src/main/java/com/technovision/tutorial/blocks/BlockItemBase.java @@ -0,0 +1,13 @@ +package com.technovision.tutorial.blocks; + +import com.technovision.tutorial.Tutorial; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; + +public class BlockItemBase extends BlockItem { + + public BlockItemBase(Block block) { + super(block, new Item.Properties().group(Tutorial.TAB)); + } +} diff --git a/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java b/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java new file mode 100644 index 0000000..80c0dba --- /dev/null +++ b/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java @@ -0,0 +1,18 @@ +package com.technovision.tutorial.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraftforge.common.ToolType; + +public class RubyBlock extends Block { + + public RubyBlock() { + super(Block.Properties.create(Material.IRON) + .hardnessAndResistance(5.0f, 6.0f) + .sound(SoundType.METAL) + .harvestLevel(3) //1 - wood, 2 - stone, 3 - iron, 4 - diamond + .harvestTool(ToolType.PICKAXE) + ); + } +} diff --git a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java index 1005862..99e3041 100644 --- a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java +++ b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java @@ -1,7 +1,10 @@ package com.technovision.tutorial.util; import com.technovision.tutorial.Tutorial; +import com.technovision.tutorial.blocks.BlockItemBase; +import com.technovision.tutorial.blocks.RubyBlock; import com.technovision.tutorial.items.ItemBase; +import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -11,12 +14,20 @@ import net.minecraftforge.registries.ForgeRegistries; public class RegistryHandler { public static final DeferredRegister ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Tutorial.MOD_ID); + public static final DeferredRegister BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Tutorial.MOD_ID); public static void init() { ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); + BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); } // Items public static final RegistryObject RUBY = ITEMS.register("ruby", ItemBase::new); + // Blocks + public static final RegistryObject RUBY_BLOCK = BLOCKS.register("ruby_block", RubyBlock::new); + + // Block Items + public static final RegistryObject RUBY_BLOCK_ITEM = ITEMS.register("ruby_block", () -> new BlockItemBase(RUBY_BLOCK.get())); + } diff --git a/src/main/resources/assets/tutorial/blockstates/ruby_block.json b/src/main/resources/assets/tutorial/blockstates/ruby_block.json new file mode 100644 index 0000000..8e857d1 --- /dev/null +++ b/src/main/resources/assets/tutorial/blockstates/ruby_block.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "tutorial:block/ruby_block" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/lang/en_us.json b/src/main/resources/assets/tutorial/lang/en_us.json index 7773a4e..4a95fc0 100644 --- a/src/main/resources/assets/tutorial/lang/en_us.json +++ b/src/main/resources/assets/tutorial/lang/en_us.json @@ -1,4 +1,5 @@ { "item.tutorial.ruby": "Ruby", + "block.tutorial.ruby_block": "Block of Ruby", "itemGroup.tutorialTab": "Tutorial" } \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/block/ruby_block.json b/src/main/resources/assets/tutorial/models/block/ruby_block.json new file mode 100644 index 0000000..c61fd28 --- /dev/null +++ b/src/main/resources/assets/tutorial/models/block/ruby_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "tutorial:blocks/ruby_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_block.json b/src/main/resources/assets/tutorial/models/item/ruby_block.json new file mode 100644 index 0000000..9c68ce6 --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorial:block/ruby_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/textures/blocks/ruby_block.png b/src/main/resources/assets/tutorial/textures/blocks/ruby_block.png new file mode 100644 index 0000000000000000000000000000000000000000..ce64d5a142b90e0f651aade21d49f037c0525978 GIT binary patch literal 431 zcmV;g0Z{&lP)Bb5Ph5*NECtz+*xU2VWY9Jvo)F+8%uwJf5OsVKxeB3u_3YXBhqV3v@w*LpccZB zC_+v?LRQ|w9(%{BOf$E$^Jd=LnG;u7mPtDf)23qyAvU)cU>Qj=cN{pI;MMtAJiUEGunM~nT)cdN!< zHFbV#Pp~gRQ)M@TtJMZJ_Lo#FEa|RL9(xB7ekg*U3l*e~a;V!t+J*8pw0zpMuLlq4 z$A#`<4JolR!E^Ek&P5)*lRPp^D!Pa=5gwDKEQet0qwC+Zt7mumUXBWwnzS5J&J4kg zN=wBkVFvNP8R&U;W8FY!8g~W%70_(zvZqEmiK!`=TSnkwHU&GI7)vhI8c2p%1Q>7! zxY{n-k=^v#n^J_?d40_p&G=V~ql6|_`ds`1lY<9FFpE%*ASF_JeEl3eq!axskIBJ6 Z&JUN$xD*c2oDcv2002ovPDHLkV1k~CyE^~? literal 0 HcmV?d00001