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/05/26 16:03] – Add JSON syntax highlighting jamieswhiteshirt | tutorial:items [2019/08/13 14:48] – Add section showing how to set maximum stack size on custom item i509vcb | ||
---|---|---|---|
Line 3: | Line 3: | ||
==== Introduction ==== | ==== Introduction ==== | ||
- | One of the first things you'll want to do with Fabric is adding a new item. | + | Adding a basic item is one of the first steps in modding. You're going to need to create an '' |
- | + | ||
- | You're going to need to create an '' | + | |
- | | + | |
==== Registering an Item ==== | ==== Registering an Item ==== | ||
Line 14: | Line 11: | ||
{ | { | ||
// an instance of our new item | // an instance of our new item | ||
- | public static final Item FABRIC_ITEM = new Item(new Item.Settings().itemGroup(ItemGroup.MISC)); | + | public static final Item FABRIC_ITEM = new Item(new Item.Settings().group(ItemGroup.MISC)); |
[...] | [...] | ||
} | } | ||
</ | </ | ||
- | To register an '' | + | 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 Item.Settings().itemGroup(ItemGroup.MISC)); | + | public static final Item FABRIC_ITEM = new Item(new Item.Settings().group(ItemGroup.MISC)); |
| | ||
@Override | @Override | ||
public void onInitialize() | public void onInitialize() | ||
{ | { | ||
- | Registry.register(Registry.ITEM, | + | Registry.register(Registry.ITEM, |
} | } | ||
} | } | ||
Line 40: | Line 37: | ||
Registering a texture for an item requires an item model .json file and a texture image. You're going to need to add these to your resource directory. The direct path of each is: | Registering a texture for an item requires an item model .json file and a texture image. You're going to need to add these to your resource directory. The direct path of each is: | ||
- | Item model: .../ | + | Item model: .../ |
- | Item texture: .../ | + | Item texture: .../ |
- | Note that wikitut is your modid. | + | Our example texture can be found [[https:// |
If you registered your item properly in the first step, your game will complain about a missing texture file in a fashion similar to this: | If you registered your item properly in the first step, your game will complain about a missing texture file in a fashion similar to this: | ||
- | [Server-Worker-1/ | + | [Server-Worker-1/ |
It conveniently tells you exactly where it expects your asset[s] to be found-- when in doubt, check the log. | It conveniently tells you exactly where it expects your asset[s] to be found-- when in doubt, check the log. | ||
Line 55: | Line 52: | ||
" | " | ||
" | " | ||
- | " | + | " |
} | } | ||
} | } | ||
Line 78: | Line 75: | ||
</ | </ | ||
- | An example application | + | A practical use-case for a custom item class would be making the item play a sound when you click with it: |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
public class FabricItem extends Item | public class FabricItem extends Item | ||
Line 96: | Line 93: | ||
</ | </ | ||
- | Replace the old Item object with an instance of your new Item: | + | 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 Item.Settings().itemGroup(ItemGroup.MISC)); | + | public static final FabricItem FABRIC_ITEM = new FabricItem(new Item.Settings().group(ItemGroup.MISC)); |
[...] | [...] | ||
} | } | ||
</ | </ | ||
If you did everything correctly, using the item should now play a sound. | If you did everything correctly, using the item should now play a sound. | ||
+ | |||
+ | ==== What if I want to change the stack size of my item? ==== | ||
+ | |||
+ | For this you would use '' | ||
+ | <code java [enable_line_numbers=" | ||
+ | public class ExampleMod implements ModInitializer | ||
+ | { | ||
+ | // an instance of our new item, where the maximum stack size is 16 | ||
+ | public static final FabricItem FABRIC_ITEM = new FabricItem(new Item.Settings().group(ItemGroup.MISC).maxCount(16)); | ||
+ | [...] | ||
+ | } | ||
+ | </ | ||
+ | ==== Next Steps ==== | ||
+ | [[tutorial: |
tutorial/items.txt · Last modified: 2024/04/20 08:05 by ryhon