Source code for bedrock.ext.ui

"""
.. role:: mc-black
.. role:: mc-dark-blue
.. role:: mc-dark-green
.. role:: mc-dark-aqua
.. role:: mc-dark-red
.. role:: mc-dark-purple
.. role:: mc-gold
.. role:: mc-gray
.. role:: mc-dark-gray
.. role:: mc-blue
.. role:: mc-green
.. role:: mc-aqua
.. role:: mc-red
.. role:: mc-light-purple
.. role:: mc-yellow
.. role:: mc-white
.. role:: mc-minecoin-gold
.. role:: mc-material-quartz
.. role:: mc-material-iron
.. role:: mc-material-netherite
.. role:: mc-material-redstone
.. role:: mc-material-copper
.. role:: mc-material-gold
.. role:: mc-material-emerald
.. role:: mc-material-diamond
.. role:: mc-material-lapis
.. role:: mc-material-amethyst

This module contains a variety of unicode characters and colors
to use inside Minecraft. They can be used everywhere where text is
used: chat, signs, titles etc. The appearance may be changed
by resource packs.


Useful Links & Reference
========================

- https://wiki.bedrock.dev/concepts/emojis.html
- https://github.com/Partymann2000/bedrock-edition-symbols
- https://minecraft.wiki/w/Formatting_codes#Color_codes


Example
=======

.. code-block:: python

    >>> from bedrock.ext import ui
    >>> f"{ui.red:Hello} {ui.blue:Player}! {ui.CODE_BUILDER_BUTTON}"
"""

# TODO: extend and/or rename from https://wiki.bedrock.dev/concepts/emojis.html
# TODO: include emojis in docstring


from attrs import define


[docs]@define class Style: """A class used to style text in the game. Attributes ---------- code The code used for the style. """ _code: str @property def code(self) -> str: return self._code
[docs] def __call__(self, text: str, /) -> str: """Styles text. Parameters ---------- text The text to style. Returns ------- str The text prefixed by the formatting code and suffixed with the reset code. """ return f{self.code}{text}§r"
def __format__(self, format_spec: str, /) -> str: return self(format_spec)
black = Style("0") """Black (:mc-black:`#000000`) colored text.""" dark_blue = Style("1") """Dark blue (:mc-dark-blue:`#0000AA`) colored text.""" dark_green = Style("2") """Dark green (:mc-dark-green:`#00AA00`) colored text.""" dark_aqua = Style("3") """Dark aqua (:mc-dark-aqua:`#00AAAA`) colored text.""" dark_red = Style("4") """Dark red (:mc-dark-red:`#AA0000`) colored text.""" dark_purple = Style("5") """Dark purple (:mc-dark-purple:`#AA00AA`) colored text.""" gold = Style("6") """Gold (:mc-gold:`#FFAA00`) colored text.""" gray = Style("7") """Gray (:mc-gray:`#AAAAAA`) colored text.""" dark_gray = Style("8") """Dark gray (:mc-dark-gray:`#555555`) colored text.""" blue = Style("9") """Blue (:mc-blue:`#5555FF`) colored text.""" green = Style("a") """Green (:mc-green:`#55FF55`) colored text.""" aqua = Style("b") """Aqua (:mc-aqua:`#55FFFF`) colored text.""" red = Style("c") """Red (:mc-red:`#FF5555`) colored text.""" light_purple = Style("d") """Light purple (:mc-light-purple:`#FF55FF`) colored text.""" yellow = Style("e") """Yellow (:mc-yellow:`#FFFF55`) colored text.""" white = Style("f") """White (:mc-white:`#FFFFFF`) colored text.""" minecoin_gold = Style("g") """Minecoin gold (:mc-minecoin-gold:`#DDD605`) colored text.""" material_quartz = Style("h") """Material quartz (:mc-material-quartz:`#E3D4D1`) colored text.""" meterial_iron = Style("i") """Material iron (:mc-material-iron:`#CECACA`) colored text.""" material_netherite = Style("j") """Material netherite (:mc-material-netherite:`#443A3B`) colored text.""" obfuscated = Style("k") """Obfuscated text.""" bold = Style("l") """Bold text.""" material_redstone = Style("m") """Material redstone (:mc-material-redstone:`#971607`) colored text.""" material_copper = Style("n") """Material copper (:mc-material-copper:`#B4684D`) colored text.""" italic = Style("o") """Italic text.""" material_gold = Style("p") """Material gold (:mc-material-gold:`#DEB12D`) colored text.""" material_emerald = Style("q") """Material emerald (:mc-material-emerald:`#47A036`) colored text.""" reset = Style("r") """Reset all styles.""" material_diamond = Style("s") """Material diamond (:mc-material-diamond:`#2CBAA8`) colored text.""" material_lapis = Style("t") """Material lapis (:mc-material-lapis:`#21497B`) colored text.""" material_amethyst = Style("u") """Material amethyst (:mc-material-amethyst:`#9A5CC6`) colored text.""" # The `#:` below are required to include the constants in the # documentation. XBOX_A_BUTTON = chr(0xE000) #: XBOX_B_BUTTON = chr(0xE001) #: XBOX_X_BUTTON = chr(0xE002) #: XBOX_Y_BUTTON = chr(0xE003) #: XBOX_LB_BUTTON = chr(0xE004) #: XBOX_RB_BUTTON = chr(0xE005) #: XBOX_LT_BUTTON = chr(0xE006) #: XBOX_RT_BUTTON = chr(0xE007) #: XBOX_SELECT_BUTTON = chr(0xE008) #: XBOX_START_BUTTON = chr(0xE009) #: XBOX_LEFT_STICK_BUTTON = chr(0xE00A) #: XBOX_RIGHT_STICK_BUTTON = chr(0xE00B) #: XBOX_D_PAD_UP_BUTTON = chr(0xE00C) #: XBOX_D_PAD_LEFT_BUTTON = chr(0xE00D) #: XBOX_D_PAD_DOWN_BUTTON = chr(0xE00E) #: XBOX_D_PAD_RIGHT_BUTTON = chr(0xE00F) #: MOBILE_JUMP = chr(0xE014) #: MOBILE_ATTACK = chr(0xE015) #: MOBILE_JOY_STICK = chr(0xE016) #: MOBILE_CROSS_HAIR = chr(0xE017) #: MOBILE_PLACE = chr(0xE018) PLAYSTATION_CROSS_BUTTON = chr(0xE020) #: PLAYSTATION_CIRCLE_BUTTON = chr(0xE021) #: PLAYSTATION_SQUARE_BUTTON = chr(0xE022) #: PLAYSTATION_TRIANGLE_BUTTON = chr(0xE023) #: PLAYSTATION_L1_BUTTON = chr(0xE024) #: PLAYSTATION_R1_BUTTON = chr(0xE025) #: PLAYSTATION_L2_BUTTON = chr(0xE026) #: PLAYSTATION_R2_BUTTON = chr(0xE027) #: PLAYSTATION_SELECT_BUTTON = chr(0xE028) #: PLAYSTATION_START_BUTTON = chr(0xE029) #: PLAYSTATION_LEFT_STICK_BUTTON = chr(0xE02A) #: PLAYSTATION_RIGHT_STICK_BUTTON = chr(0xE02B) #: PLAYSTATION_D_PAD_UP_BUTTON = chr(0xE02C) #: PLAYSTATION_D_PAD_LEFT_BUTTON = chr(0xE02D) #: PLAYSTATION_D_PAD_DOWN_BUTTON = chr(0xE02E) #: PLAYSTATION_D_PAD_RIGHT_BUTTON = chr(0xE02F) #: SWITCH_A_BUTTON = chr(0xE040) #: SWITCH_B_BUTTON = chr(0xE041) #: SWITCH_X_BUTTON = chr(0xE042) #: SWITCH_Y_BUTTON = chr(0xE043) #: SWITCH_L_BUTTON = chr(0xE044) #: SWITCH_R_BUTTON = chr(0xE045) #: SWITCH_ZL_BUTTON = chr(0xE046) #: SWITCH_ZR_BUTTON = chr(0xE047) #: SWITCH_MINUS_BUTTON = chr(0xE048) #: SWITCH_PLUS_BUTTON = chr(0xE049) #: SWITCH_LEFT_STICK_BUTTON = chr(0xE04A) #: SWITCH_RIGHT_STICK_BUTTON = chr(0xE04B) #: SWITCH_D_PAD_UP_BUTTON = chr(0xE04C) #: SWITCH_D_PAD_LEFT_BUTTON = chr(0xE04D) #: SWITCH_D_PAD_DOWN_BUTTON = chr(0xE04E) #: SWITCH_D_PAD_RIGHT_BUTTON = chr(0xE04F) #: MOBILE_SMALL_JUMP_BUTTON = chr(0xE059) #: MOBILE_SMALL_CROUCH_BUTTON = chr(0xE05A) #: MOBILE_SMALL_FLY_UP_BUTTON = chr(0xE05C) #: MOBILE_SMALL_FLY_DOWN_BUTTON = chr(0xE05D) #: MOBILE_SMALL_LEFT_ARROW_BUTTON = chr(0xE056) #: MOBILE_SMALL_RIGHT_ARROW_BUTTON = chr(0xE058) #: MOBILE_SMALL_UP_ARROW_BUTTON = chr(0xE055) #: MOBILE_SMALL_DOWN__ARROW_BUTTON = chr(0xE057) #: MOBILE_SMALL_INVENTORY_BUTTON = chr(0xE05B) #: WINDOWS_LEFT_MOUSE_BUTTON = chr(0xE060) #: WINDOWS_RIGHT_MOUSE_BUTTON = chr(0xE061) #: WINDOWS_MIDDLE_MOUSE_BUTTON = chr(0xE062) #: MOBILE_FORWARD_ARROW_BUTTON = chr(0xE080) #: MOBILE_LEFT_ARROW_BUTTON = chr(0xE081) #: MOBILE_BACKWARDS_ARROW_BUTTON = chr(0xE082) #: MOBILE_RIGHT_ARROW_BUTTON = chr(0xE083) #: MOBILE_JUMP_BUTTON = chr(0xE084) #: MOBILE_CROUCH_BUTTON = chr(0xE085) #: MOBILE_FLY_UP_BUTTON = chr(0xE086) #: MOBILE_FLY_DOWN_BUTTON = chr(0xE087) #: CRAFTABLE_TOGGLE_ON = chr(0xE0A0) #: CRAFTABLE_TOGGLE_OFF = chr(0xE0A1) #: FOOD_ICON = chr(0xE100) #: ARMOR_ICON = chr(0xE101) #: MINECOIN = chr(0xE102) #: CODE_BUILDER_BUTTON = chr(0xE103) #: IMMERSE_READER_BUTTON = chr(0xE104) #: TOKEN = chr(0xE105) #: WINMR_LEFT_GRAB_BUTTON = chr(0xE0C0) #: WINMR_RIGHT_GRAB_BUTTON = chr(0xE0C1) #: WINMR_MENU_BUTTON = chr(0xE0C2) #: WINMR_LEFT_STICK_BUTTON = chr(0xE0C3) #: WINMR_RIGHT_STICK_BUTTON = chr(0xE0C4) #: WINMR_LEFT_TOUCHPAD_BUTTON = chr(0xE0C5) #: WINMR_LEFT_TOUCHPAD_HORIZONTAL_BUTTON = chr(0xE0C6) #: WINMR_LEFT_TOUCHPAD_VERTICAL_BUTTON = chr(0xE0C7) #: WINMR_RIGHT_TOUCHPAD_BUTTON = chr(0xE0C8) #: WINMR_RIGHT_TOUCHPAD_HORIZONTAL_BUTTON = chr(0xE0C9) #: WINMR_RIGHT_TOUCHPAD_VERTICAL_BUTTON = chr(0xE0CA) #: WINMR_LEFT_TRIGGER_BUTTON = chr(0xE0CB) #: WINMR_RIGHT_TRIGGER_BUTTON = chr(0xE0CC) #: WINMR_WINDOWS = chr(0xE0CD) #: RIFT_ZERO_BUTTON = chr(0xE0E0) #: RIFT_A_BUTTON = chr(0xE0E1) #: RIFT_B_BUTTON = chr(0xE0E2) #: RIFT_LEFT_GRAB_BUTTON = chr(0xE0E3) #: RIFT_RIGHT_GRAB_BUTTON = chr(0xE0E4) #: RIFT_LEFT_STICK_BUTTON = chr(0xE0E5) #: RIFT_RIGHT_STICK_BUTTON = chr(0xE0E6) #: RIFT_LEFT_TRIGGER_BUTTON = chr(0xE0E7) #: RIFT_RIGHT_TRIGGER_BUTTON = chr(0xE0E8) #: RIFT_X_BUTTON = chr(0xE0E9) #: RIFT_Y_BUTTON = chr(0xE0EA) #: