Перейти к содержимому
Mineforgian

CC: Spatial Projector

Programmable ComputerCraft holograms for drawing lines, boxes, markers, and overlays in the world.

Загрузки
868
Подписчики
6
Обновлён
5 июля 2026 г.
Лицензия
MIT

Опубликован 5 июля 2026 г.

CC: Spatial Projector

Programmable world-space overlays for CC:Tweaked computers and turtles.

CC: Spatial Projector lets ComputerCraft programs draw lines, paths, boxes, and markers directly in the Minecraft world.

Place a Spatial Projector, connect it to a ComputerCraft computer, turtle, or wired modem, and wear bound Spatial Goggles to see its output. Use it for technical build planning, navigation, turtle debugging, automation displays, and custom spatial interfaces.

Visuals are overlays only. They do not place blocks, spawn entities, or affect collisions.

polyline

Features

  • ComputerCraft peripheral named spatial_projector
  • Spatial Goggles for viewing projector output
  • Lua API for lines, polylines, boxes, and markers
  • Named visual objects that can be updated, removed, listed, or cleared
  • Persistent visuals by default
  • Optional TTL for temporary visuals
  • Configurable limits and default values
  • Built-in demo and utility commands
  • Optional Curios support for wearing goggles in a supported Curios slot

Quick start

  1. Place a Spatial Projector.
  2. Put a ComputerCraft computer or turtle next to it, or connect it using a wired modem.
  3. Right-click the projector with Spatial Goggles to bind them.
  4. Wear the bound goggles.
  5. Run the built-in demo:
spatial_projector

Useful CraftOS commands:

spatial_projector          -- run the demo
spatial_projector demo 30  -- run the demo with a 30-second TTL
spatial_projector clear    -- clear all visuals
spatial_projector stats    -- show projector statistics
spatial_projector list     -- list object IDs in the buffer

Lua example

local projector = peripheral.find("spatial_projector")
if not projector then
    error("spatial_projector not found")
end

projector.clear()

projector.line("axis.x", 0, 64, 0, 16, 64, 0, {
    color = 0xff3333,
    width = 0.07,
})

projector.marker("target", 16, 64, 0, {
    color = 0xff33cc,
    size = 1.0,
})

projector.sync()

Drawing API

Each visual is stored under a string ID inside the projector buffer. Drawing another object with the same ID replaces the previous visual.

projector.line(id, x1, y1, z1, x2, y2, z2, options)
projector.polyline(id, points, options)
projector.box(id, x1, y1, z1, x2, y2, z2, options)
projector.marker(id, x, y, z, options)

options is optional. If it is omitted, the projector uses its configured defaults.

{
    color = 0x33ff88, -- RGB color
    width = 0.0625,  -- line, polyline, and box width
    ttl = 0,         -- seconds before auto-removal; 0 means persistent
    size = 0.35,     -- marker size
}

Line

Draws a segment between two world positions.

projector.line("line.id", 0, 64, 0, 10, 64, 0, {
    color = 0xff3333,
    width = 0.07,
    ttl = 30,
})

Polyline

Draws a connected path through a dense array of {x, y, z} points.

projector.polyline("route", {
    {0, 64, 0},
    {4, 65, 4},
    {8, 64, 8},
    {12, 64, 4},
}, {
    color = 0x33ff88,
    width = 0.06,
})

Box

Draws a box between two opposite corners.

projector.box("build.area", 0, 63, 0, 10, 70, 10, {
    color = 0x3399ff,
    width = 0.05,
})

Marker

Draws a marker at one world position.

projector.marker("target", 16, 64, 0, {
    color = 0xff33cc,
    size = 1.0,
})

Buffer utilities

projector.clear()       -- remove all visuals
projector.remove(id)    -- remove one visual by ID
projector.list()        -- list object IDs
projector.stats()       -- get projector statistics
projector.getLimits()   -- get configured limits
projector.sync()        -- send pending drawing changes

Call sync() after a batch of drawing changes.

Requirements

Requires Minecraft 1.21.1, NeoForge 21.1.x, Java 21, CC:Tweaked 1.120.0+, and Create 6.0.10+.

Create is used as a rendering/library dependency. CC: Spatial Projector does not add Create contraption mechanics.

Optional: Curios API 9.x for wearing Spatial Goggles in a supported Curios slot. Without Curios, goggles can be worn as a normal helmet.

Notes

  • Only players wearing goggles bound to a projector receive its visuals.
  • Coordinates use normal Minecraft world coordinates.
  • list() returns object IDs, not full geometry data.
  • Visuals remain until they are cleared, removed, overwritten, expire through TTL, or are cleaned up when the chunk or world unloads.

Ченджлог

0.1.0Альфа1.21.1 · 5 июля 2026 г.

Initial public alpha release.

Added Spatial Projector, Spatial Goggles, ComputerCraft Lua API, in-world lines, boxes, markers, polylines, object buffer management, crafting recipes, configurable limits, and Create-based visual rendering.

Комментарии

Загружаем…