Changes

2,364 bytes added ,  16:51, 24 October 2020
Inital Import dokuwiki
Along with blocks, items are a key component of most mods. While blocks make up the world around you, items are what let you change it.

== Creating an Item ==
=== Basic Items ===
Basic items that need no special functionality (think sticks or sugar) don’t need custom classes. You can create an item by instantiate the <code><nowiki>Item</nowiki></code> class with an <code><nowiki>Item$Properties</nowiki></code> object. This <code><nowiki>Item$Properties</nowiki></code> object can be made calling the constructor and it can be customised by calling its methods. For instance:
{| class="wikitable sortable" border=1
!Method !!Description
|-
| <code><nowiki>group</nowiki></code> || Sets which <code><nowiki>ItemGroup</nowiki></code> (previously called creative tab) this item is under. Must be called if this item is meant to be shown on the creative menu. Vanilla groups can be found in the class <code><nowiki>ItemGroup</nowiki></code>.
|-
| <code><nowiki>maxDamage</nowiki></code> || Sets the maximum damage value for this item. If it is greater than ''0'', the properties ''damaged'' and ''damage'' are added to keep track of the current ''ItemStack'' damage.
|-
| <code><nowiki>maxStackSize</nowiki></code> || Sets the maximum stack size. You cannot have an item that is both damagable and stackable.
|-
| <code><nowiki>setNoRepair</nowiki></code> || Makes this item impossible to repair, even if it is damageable.
|-
| <code><nowiki>containerItem</nowiki></code> || Sets this item’s container item. For example, milk buckets give you back an empty bucket when they are crafted.
|-
| <code><nowiki>addToolType</nowiki></code> || Gives the item the ability of a <code><nowiki>ToolType</nowiki></code> (<code><nowiki>SHOVEL</nowiki></code>, <code><nowiki>AXE</nowiki></code>) at the specified harvest level (''0'' for Wood/Gold, ''1'' for Stone, ''2'' for Iron, ''3'' for Gold).
|-
|}


The above methods are chainable meaning they <code><nowiki>return this</nowiki></code> to facilitate calling them in series.

=== Advanced Items ===
Setting the properties of an item as above only works for simple items. If you want more complicated items, you should subclass ''Item'' and override its methods.

== Registering an Item ==
Items must be [[Registration|registered]] to function.