[Feature]: Chat emojis
- Dominant language
- Lua
- Stars
- 264
- Forks
- 260
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 21
Description
### Describe the Feature
Ability to display text-scaled images in chat.
This helps players express themselves better with modern emoji communication in chat.
It also allows improvements for things like the resource sharing notifications by allowing generic icon-based system messages.
### Expected Behavior
Steps of implementation:
1. A text superclass that can render a basic variable-size bitmap using an in-text key. The bitmap should take the left edge of the key's text and be centered vertically in the text line. The height should adjust to text font height. The width should offset the text coming after the bitmap.
2. Make sure methods like text wrapping and the textadvance lazyvar work with it.
3. Allow passing in a key->bitmap table to customize the new class.
5. Implement the new class as the text display for the chat.
6. Add ability to add additional emoji mappings for chat.
7. Create a basic emoji set for the FAF community and assign it to chat.
8. Add an emoji input box to chat based off the mappings. Put added mappings in separate categories alphabetically sorted so that mods don't mess with it too much.
9. Add onto chat's autocomplete implementation to work with the emojis.
### Screenshots
_No response_
### Additional context
This would be an integration and upgrade of @4z0t's deprecated "Emojis" mod.
In the future this could be added to the lobby chat.
Contributor guide
Research direction
Start by locating the chat text display, text wrapping, textadvance, input box, and autocomplete entry points described in the issue. Define the bitmap-backed text behavior and emoji mapping structure before implementing the chat integration. Done means chat renders mapped emojis, wrapping and advancement work, mappings are categorized and sorted, and autocomplete and input support them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- frontend, game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100