From ed35577e311e1092f67bf9c0d65f9c415fa31dc3 Mon Sep 17 00:00:00 2001 From: Eclipse Date: Thu, 17 Jul 2025 13:34:29 +0000 Subject: [PATCH] Add mod icon (programmer art!), update fabric.mod.json and work on updating README --- README.md | 31 ++++++++++++++++----- src/main/resources/assets/rainbow/icon.png | Bin 0 -> 282 bytes src/main/resources/fabric.mod.json | 13 +++++++-- 3 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/rainbow/icon.png 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 0000000000000000000000000000000000000000..11c9b287283af768dbb551f6db17e580666cc430 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhjKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CC3g$*qX48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!CBxD zSzq&i8 z8+bQ72$|CB{_%c)b)aa;iQ07H-o3EpUXO@geCw=${loader_version}", "fabric-api": "*", "minecraft": "${minecraft_version}" + }, + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://discord.gg/GeyserMC" + } + } } }