Skip to content

9540536/cctunicode

Repository files navigation

CC: Tweaked Unicode

A NeoForge addon which adds Unicode-aware terminal cells, input, synchronisation, rendering, ROM utilities and printed pages to CC: Tweaked.

Phase 5's implementation is complete: Lua UTF-8 terminal writes produce one cell per printable grapheme (combining marks attach to the previous cell), which is synchronised, persisted and drawn through Minecraft's resource-pack-aware font fallback chain. Computer/turtle GUIs, pocket items, lectern pocket terminals, and both monitor renderers share one Unicode overlay. Committed keyboard/IME text and Unicode clipboard content reach CraftOS as their original UTF-8 byte sequence.

require("cc.unicode") provides UTF-8 display width, truncation, splitting, wrapping and fixed-width helpers through a controlled ROM overlay. Printers retain CC:T's legacy printout component and add a versioned sparse Unicode component, which survives page/book crafting and renders in the printout GUI, hand and item frames. Warm Unicode terminals reuse bounded revision/layout and glyph-metric caches while Minecraft remains responsible for its resource-aware glyph atlas. Unicode page titles are preserved with the same 32-code-point safety limit.

The ROM overlay replaces CraftOS window's byte-indexed line buffer with a cell-indexed one, so advanced-computer multishell rows neither split a UTF-8 sequence at the right edge nor stop after a small number of multibyte characters. It also replaces the BIOS write() word wrapper and line editor's byte-indexed cursor/scroll calculations, allowing Unicode output and input to use the same visible row width as ASCII while preserving the UTF-8 byte string returned by read(). When rows are finally sent through term.blit, byte-length colour strings map each grapheme's first-byte colour to its single display cell. The Java boundary also preserves a valid UTF-8 prefix when an external redirect supplies a truncated final sequence. ASCII, legacy graphic bytes, keyboard shortcuts, and CC:T's wire/NBT/rendering paths retain their original behaviour.

The addon deliberately targets the exact versions listed in COMPATIBILITY.md. See PLAN.md for scope and milestones, PERFORMANCE.md for cache limits and profiling, and UPSTREAM_PROPOSAL.md for the evaluated CC:T extension API.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages