mcfonts.font

A Minecraft: Java Edition font.

Module Contents

class MinecraftFont

Bases: collections.abc.MutableSequence[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]

The MinecraftFont class contains a list of providers which supply character-glyph mappings.

By default, these do not have any "not defined" glyphs. Items that expect such default fallbacks must generate their own. You can manually create and add a NotdefProvider or similar that implements it.

This class is a MutableSequence:

font = MinecraftFont()
BitmapProvider(...) in font
glyph = font.get_first_provider_covering("A")
del font[BitmapProvider(...)]
for provider in font:
    ...
if len(font) > 0:
    ...
if font:
    ...
__bool__() bool

Return if this font has any providers.

Return type:

bool

__contains__(item: object, /) bool
Parameters:
item : object

Return type:

bool

__delitem__(index: int | slice) None
Parameters:
index : int | slice

Return type:

None

__getitem__(index: int) mcfonts.provider.Provider[mcfonts.glyph.Glyph]
__getitem__(index: slice) list[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]
__iter__() collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]
Return type:

collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]

__len__() int

Length is number of providers.

Return type:

int

__repr__() str

Return MinecraftFont(x providers => x characters).

Return type:

str

__reversed__() collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]
Return type:

collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]

__setitem__(index: int, value: mcfonts.provider.Provider[mcfonts.glyph.Glyph])
__setitem__(index: slice, value: collections.abc.Iterable[mcfonts.provider.Provider[mcfonts.glyph.Glyph]])
delete_character_from_providers(character: str) None

Delete character from all providers.

Parameters:
character : str

Return type:

None

delete_providers_with_character(character: str) None

Delete all providers from this font which cover character.

Parameters:
character : str

Return type:

None

get_characters() collections.abc.Generator[str]

Yield all characters this font covers.

Returns:

Generator that yields characters.

Return type:

collections.abc.Generator[str]

get_first_provider_covering(character: str, /) mcfonts.provider.Provider[mcfonts.glyph.Glyph] | None
Parameters:
character : str

Return type:

mcfonts.provider.Provider[mcfonts.glyph.Glyph] | None

get_notdef() mcfonts.provider.Provider[mcfonts.glyph.Glyph] | None

Return the first provider which responds to/has a glyph for the character "notdef".

Returns:

Provider, or None if no providers respond.

Return type:

mcfonts.provider.Provider[mcfonts.glyph.Glyph] | None

get_provider_count() dict[type[mcfonts.provider.Provider[mcfonts.glyph.Glyph]], int]

Return a count of the providers stored.

Returns:

Dictionary of provider type field to amount.

Return type:

dict[type[mcfonts.provider.Provider[mcfonts.glyph.Glyph]], int]

get_providers(order: PrioritySortOrder | None = None) collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]

Yield providers by their priority, ascending by default.

Parameters:
order : PrioritySortOrder | None

Order to yield in. Default is None - insertion order regardless of priority

Returns:

Generator yielding Provider.

Return type:

collections.abc.Generator[mcfonts.provider.Provider[mcfonts.glyph.Glyph]]

get_providers_covering(characters: collections.abc.Iterable[str], /) collections.abc.Generator[tuple[set[str], mcfonts.provider.Provider[mcfonts.glyph.Glyph]]]

Yield providers that cover at least 1 of any of the characters in characters.

Providers will be yielded at most once, and in descending priority order.

Warning

Multiple providers may overlap and cover the same character.

Parameters:
characters : collections.abc.Iterable[str]

Set of characters.

Returns:

Generator that yields tuple of (set of characters this provider covers, the provider).

Return type:

collections.abc.Generator[tuple[set[str], mcfonts.provider.Provider[mcfonts.glyph.Glyph]]]

has_character(character: str) bool
Parameters:
character : str

Return type:

bool

insert(index: int, value: mcfonts.provider.Provider[mcfonts.glyph.Glyph]) None

S.insert(index, value) -- insert value before index

Parameters:
index : int

value : mcfonts.provider.Provider[mcfonts.glyph.Glyph]

Return type:

None

with_filter(game_filter: mcfonts.provider.ProviderFilter) MinecraftFont

Return a new font with a filter applied, including only providers which would be enabled for it.

Parameters:
game_filter : mcfonts.provider.ProviderFilter

ProviderFilter reflecting the game's state.

Returns:

New MinecraftFont with filtered providers.

Return type:

MinecraftFont

class PrioritySortOrder(*args, **kwds)

Bases: enum.Enum

What order to sort providers' priorities.

ASCENDING = 0

From lowest to highest priority.

DESCENDING = 1

From highest to lowest priority.