feat(api): add missing block/item placeholder textures

- Add mod_assets for weaveloader.api:missing_block and missing_item
- CopyModAssets target to deploy placeholders to mods/WeaveLoader.API/assets/
- WorldIdRemap: use placeholder icons instead of bedrock/apple
This commit is contained in:
Jacobwasbeast
2026-03-09 00:27:28 -05:00
parent 4027ee4ef2
commit 3293f1e181
5 changed files with 20 additions and 2 deletions

View File

@@ -13,4 +13,12 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<!-- Mod textures: use Target so they only copy when API builds to mods/, not when copied as dependency -->
<Target Name="CopyModAssets" AfterTargets="Build">
<MakeDir Directories="$(OutputPath)assets\blocks" />
<MakeDir Directories="$(OutputPath)assets\items" />
<Copy SourceFiles="mod_assets\blocks\missing_block.png" DestinationFolder="$(OutputPath)assets\blocks\" SkipUnchangedFiles="true" />
<Copy SourceFiles="mod_assets\items\missing_item.png" DestinationFolder="$(OutputPath)assets\items\" SkipUnchangedFiles="true" />
</Target>
</Project>

View File

@@ -0,0 +1,10 @@
# WeaveLoader.API Mod Assets
Placeholder textures for the missing block and missing item (unresolved mod content).
Stored in `mod_assets/` to avoid conflict with the `Assets/` C# source folder (Windows case-insensitivity).
Copied to `assets/blocks/` and `assets/items/` in the build output.
- **Blocks:** `mod_assets/blocks/missing_block.png` → icon `weaveloader.api:missing_block`
- **Items:** `mod_assets/items/missing_item.png` → icon `weaveloader.api:missing_item`
These are used when a world contains blocks or items from mods that are no longer installed.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -662,7 +662,7 @@ namespace WorldIdRemap
1.0f,
1.0f,
1,
L"bedrock",
L"weaveloader.api:missing_block",
0.0f,
15,
kMissingBlockDescriptionId);
@@ -676,7 +676,7 @@ namespace WorldIdRemap
missingItemId,
64,
0,
L"apple",
L"weaveloader.api:missing_item",
kMissingItemDescriptionId);
IdRegistry::Instance().SetMissingFallback(IdRegistry::Type::Item, missingItemId);
}