Files
LegacyWeaveLoader/ExampleMod/assets
Jacobwasbeast 6464263d12 feat(items): add managed custom item callbacks and native pickaxe support
Introduce a managed custom item API with mine-block callbacks and cancellation semantics, plus native runtime support for registering pickaxe items.

Key changes:

- add WeaveLoader.API Item base/PickaxeItem and dispatcher plumbing

- register managed item instances in ItemRegistry

- add native export for pickaxe registration and wire through GameObjectFactory

- resolve/hook item mineBlock paths (ItemInstance/Item/DiggerItem) and dispatch to managed host

- expose managed OnItemMineBlock entry in WeaveLoader.Core and DotNetHost

- add Ruby Pickaxe example item + placeholder texture

- keep logger usable even before managed handler setup via native fallback
2026-03-07 13:42:46 -06:00
..
2026-03-06 22:47:24 -06:00

ExampleMod Assets

Language files

Language files live in assets/lang/ with the format {locale}.lang (e.g. en-GB.lang, de-DE.lang).

Current API: Use BlockProperties.Name() and ItemProperties.Name() when registering blocks and items. These set the display name shown in-game. The ModLoader hooks into the game's string lookup so your names appear correctly.

Future: Multi-locale support may load from these .lang files. Format: key=value per line, with # for comments.

Textures

Mod textures are supported via the dynamic atlas system. Place PNG files in:

  • Blocks: assets/blocks/{name}.png → icon {modid}:{name} (e.g. ruby_ore.pngexamplemod:ruby_ore)
  • Items: assets/items/{name}.png → icon {modid}:{name} (e.g. ruby.pngexamplemod:ruby)

The mod ID is derived from the mod folder name (lowercase, hyphens removed). Use the namespaced icon in BlockProperties.Icon() and ItemProperties.Icon():

.Icon("examplemod:ruby_ore")  // block from assets/blocks/ruby_ore.png
.Icon("examplemod:ruby")      // item from assets/items/ruby.png

Textures must be 16×16 pixels (or any size; they are scaled). For vanilla icons, use names like gold_ore, diamond, etc.