diff --git a/README.md b/README.md index dc79939..6e66243 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,28 @@ -# geyser-mappings-generator +# Rainbow -This is a Minecraft mod for the Fabric modloader to generate Geyser mappings (and potentially in the future, full bedrock packs) -for use with the custom item API (v2). +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) +[![Discord](https://img.shields.io/discord/613163671870242838.svg?color=%237289da&label=discord)](https://discord.gg/geysermc) + +Rainbow is a client-side Minecraft mod for the Fabric modloader to generate Geyser item mappings and bedrock resourcepacks +for use with Geyser's [custom item API (v2)](https://github.com/geyserMC/geyser/pull/5189). + +Rainbow is currently experimental and capable of the following: + +- Generating Geyser item mappings complete with data components and proper bedrock options, by detecting items with a custom `minecraft:item_model` component and analysing their components. + - Also includes generating mappings with predicates for more complicated Java item model definitions, such as checks for if an item is broken. + - Does not support range dispatch predicates yet. + - Also includes detecting if an item should be displayed handheld by looking at the item's model. +- Generating a simple bedrock resourcepack for simple 2D items, as well as: + - Simple custom armour items, by analysing an item's `minecraft:equippable` component and loaded equipment assets. + - 3D Java items, by converting the model to a bedrock one, and generating an attachable and animations for it, as well as rendering a custom GUI icon (unlikely to work well as of now). + +Rainbow works by detecting custom items in your inventory, or a container/inventory menu you have opened. It analyses +the components of detected items, and uses assets from loaded Java resourcepacks to gather information about item models, textures, +and more. Commands: -- `/packgenerator create ` - starts a new pack with the given name. The files will be exported in `.minecraft/geyser/` when finished. Anything in this directory can be overwritten! -- `/packgenerator map` - creates Geyser mappings for the item stack you are currently holding. The stack must have a custom model, and a pack must have been created. -- `/packgenerator mapinventory` - creates Geyser mappings for every applicable item in your inventory. A pack must have been created. -- `/packgenerator finish` - finishes the pack, and writes Geyser mappings to disk. +- `/rainbow create ` - starts a new pack with the given name. The files will be exported in `.minecraft/geyser/` when finished. Anything in this directory can be overwritten! +- `/rainbow map` - creates Geyser mappings for the item stack you are currently holding. The stack must have a custom model, and a pack must have been created. +- `/rainbow mapinventory` - creates Geyser mappings for every applicable item in your inventory. A pack must have been created. +- `/rainbow finish` - finishes the pack, and writes Geyser mappings to disk. diff --git a/src/main/resources/assets/rainbow/icon.png b/src/main/resources/assets/rainbow/icon.png new file mode 100644 index 0000000..11c9b28 Binary files /dev/null and b/src/main/resources/assets/rainbow/icon.png differ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 7361804..5cc4161 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -3,12 +3,14 @@ "id": "rainbow", "version": "${version}", "name": "Rainbow", - "description": "Rainbow is a mod to generate Geyser mappings and bedrock resourcepacks for use with Geyser's custom item API (v2)", + "description": "Rainbow is a mod to generate Geyser item mappings and bedrock resourcepacks for use with Geyser's custom item API (v2)", "authors": [ "GeyserMC contributors" ], "contact": { - "repo": "https://github.com/GeyserMC/rainbow" + "homepage": "https://github.com/GeyserMC/rainbow", + "issues": "https://github.com/GeyserMC/rainbow/issues", + "sources": "https://github.com/GeyserMC/rainbow" }, "license": "MIT", "icon": "assets/rainbow/icon.png", @@ -25,5 +27,12 @@ "fabricloader": ">=${loader_version}", "fabric-api": "*", "minecraft": "${minecraft_version}" + }, + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://discord.gg/GeyserMC" + } + } } }