tutorial:items
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
tutorial:items [2019/08/13 14:48] – Add section showing how to set maximum stack size on custom item i509vcb | tutorial:items [2020/11/02 07:32] – [Registering an Item] fix formatting leocth2 | ||
---|---|---|---|
Line 6: | Line 6: | ||
==== Registering an Item ==== | ==== Registering an Item ==== | ||
- | First, create an instance of Item. We'll store it at the top of our initializer class. The constructor takes in an Item.Settings object, which is used to set item properties such as the inventory category, durability, and stack count. | + | First, create an instance of Item. We'll store it at the top of our initializer class. The constructor takes in an '' |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | + | public class ExampleMod implements ModInitializer { |
- | { | + | |
// an instance of our new item | // an instance of our new item | ||
- | public static final Item FABRIC_ITEM = new Item(new | + | public static final Item FABRIC_ITEM = new Item(new |
[...] | [...] | ||
} | } | ||
Line 17: | Line 17: | ||
You'll use the vanilla registry system for registering new content. The basic syntax is '' | You'll use the vanilla registry system for registering new content. The basic syntax is '' | ||
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | + | public class ExampleMod implements ModInitializer { |
- | { | + | |
// an instance of our new item | // an instance of our new item | ||
- | public static final Item FABRIC_ITEM = new Item(new | + | public static final Item FABRIC_ITEM = new Item(new |
| | ||
@Override | @Override | ||
- | public void onInitialize() | + | public void onInitialize() { |
- | | + | |
Registry.register(Registry.ITEM, | Registry.register(Registry.ITEM, | ||
} | } | ||
} | } | ||
</ | </ | ||
- | Your new item has now been added to Minecraft. Run the `runClient` gradle task to see it in action. | + | Your new item has now been added to Minecraft. Run the '' |
{{: | {{: | ||
Line 50: | Line 49: | ||
<code JavaScript> | <code JavaScript> | ||
{ | { | ||
- | " | + | " |
" | " | ||
" | " | ||
Line 66: | Line 65: | ||
To add additional behavior to the item you will need to create an Item class. The default constructor requires an Item.Settings object. | To add additional behavior to the item you will need to create an Item class. The default constructor requires an Item.Settings object. | ||
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class FabricItem extends Item | + | public class FabricItem extends Item { |
- | { | + | |
- | public FabricItem(Settings settings) | + | public FabricItem(Settings settings) { |
- | | + | |
super(settings); | super(settings); | ||
} | } | ||
Line 75: | Line 73: | ||
</ | </ | ||
- | A practical use-case for a custom item class would be making the item play a sound when you click with it: | + | A practical use-case for a custom item class would be making the item play a sound when you right click with it: |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class FabricItem extends Item | + | public class FabricItem extends Item { |
- | { | + | |
- | public FabricItem(Settings settings) | + | public FabricItem(Settings settings) { |
- | | + | |
super(settings); | super(settings); | ||
} | } | ||
| | ||
@Override | @Override | ||
- | public TypedActionResult< | + | public TypedActionResult< |
- | | + | |
playerEntity.playSound(SoundEvents.BLOCK_WOOL_BREAK, | playerEntity.playSound(SoundEvents.BLOCK_WOOL_BREAK, | ||
- | return | + | return TypedActionResult.success(playerEntity.getStackInHand(hand)); |
} | } | ||
} | } | ||
Line 95: | Line 91: | ||
Replace the old Item object with an instance of your new item class: | Replace the old Item object with an instance of your new item class: | ||
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | + | public class ExampleMod implements ModInitializer { |
- | { | + | |
// an instance of our new item | // an instance of our new item | ||
- | public static final FabricItem FABRIC_ITEM = new FabricItem(new | + | public static final FabricItem FABRIC_ITEM = new FabricItem(new |
[...] | [...] | ||
} | } | ||
Line 106: | Line 102: | ||
==== What if I want to change the stack size of my item? ==== | ==== What if I want to change the stack size of my item? ==== | ||
- | For this you would use '' | + | For this you would use '' |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | + | public class ExampleMod implements ModInitializer { |
- | { | + | |
// an instance of our new item, where the maximum stack size is 16 | // an instance of our new item, where the maximum stack size is 16 | ||
- | public static final FabricItem FABRIC_ITEM = new FabricItem(new | + | public static final FabricItem FABRIC_ITEM = new FabricItem(new |
[...] | [...] | ||
} | } |
tutorial/items.txt · Last modified: 2024/07/05 03:27 by solidblock