跳到正文

Block Transformer

作者:Aleeq

Take control of every block! Adjust its X, Y, Z position, rotation, and scale with an intuitive 3D editor. Fine-tune every detail with precise controls, snapping, and undo, all while preserving the block’s original data.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

⚠️Important   Disclaimer🤖

Block Transformer was developed entirely using artificial intelligence (AI). I strongly recommend thoroughly testing the mod before using it, as it may contain bugs, unexpected behavior, or compatibility issues.

🛠️ I created this mod solely because I needed this functionality for a private Minecraft server. I decided to publish it as well, since there was nothing to lose by sharing it with others who might find it useful.

🔄 If updates, bug fixes, or improvements are needed, I will do my best to provide them.

❗ Use at your own risk, and please report any issues you encounter.

———————————————————————————————————–

 Block Transformer

**Move, rotate and resize any placed block — furniture, machines, chests, decorations — with an in-world 3D editor.**
The block keeps working exactly where it logically is; only how it is drawn, selected and touched changes.

> **WHEN INSTALLING, test your setup in a backup world.**
> This mod hooks into rendering, collision and chunk meshing. It is built to degrade safely (every hook is optional and
> turns itself off if another mod changed the code it targets), but combinations of rendering mods are endless.

—

Features

– **3D gizmos in the world:** arrows to move, rings to rotate, a free “trackball” in the middle to turn in every direction, and a cube to scale. Everything snaps (1/16 block, 15°, 0.125) or can be typed in numerically.
– **Whole objects move as one:** multi-block furniture, machines, doors and beds are detected as a *piece* and transformed together around their centre. Optional “touching / near” group modes for anything else.
– **Undo / redo / reset** for the whole group, local or world axes, live readout, and a panel that adapts to any GUI scale.
– **It really behaves like the block is there:**
  – drawn, **selected** and **collided with** at its new place (you can walk on it, bump into it, mine it, use it);
  – **sit** on moved chairs and sofas — and you get off next to the chair, not at its old spot;
  – **breaking overlay, particles, sounds** and **dropped items / container contents** come from where the block is drawn;
  – **block entities** (chests, signs, furniture items…) move with it; a moved chest’s lid no longer gets stuck open;
  – entities that belong to a block (cards, props, display entities) follow it;
  – lighting and ambient occlusion are corrected so the cell it left is not left in shadow.
– **Fast:** each block’s mesh is baked once to the GPU and only a matrix is applied per frame. Shapes are cached, data reads are lock-free, entities far from any transformed block cost nothing.
– **Server friendly:** server-authoritative, per-chunk limits, range and permission checks, edit-rate limiting, audit log, and an optional network channel (clients without the mod can still join; they just see blocks untransformed).

How to use

1. Craft the **Transformer Wand** (2 sticks + 1 amethyst shard, diagonal) or take it from the Tools tab.
2. Hold it and **right-click a block**, or press **M** while looking at one.
3. **G / R / S** switch tool · **Ctrl+Z / Ctrl+Y** undo/redo · **Esc** or right-click cancels a drag · type a value and press **Enter**.
4. The **Group** button chooses what moves with the block: *Off*, *Piece* (default), *Touching*, *Near*.

## Commands (operators, permission level 2)

| Command | What it does |
|—|—|
| `/blocktransformer list [page]` | Lists transformed blocks of the dimension (click to teleport) |
| `/blocktransformer inspect <pos>` | Shows the transformation of a block |
| `/blocktransformer reset <pos>` | Removes a transformation |
| `/blocktransformer mode logical\|transformed` | `logical` switches all transformations of the dimension **off** without deleting them (handy to debug or recover a world); `transformed` switches them back on |
| `/blocktransformer status` | Hook diagnostics |
| `/blocktransformer debug on\|off` | Logs seat and mining activity to `latest.log` |

Configuration

**Server** (`serverconfig/blocktransformer-server.toml`): `maxTransformsPerChunk`, `survivalPlayersCanEdit`, `editRange`, `maxEditPacketsPerSecond`.
**Client** (`config/blocktransformer-client.toml`): `cachedMeshes` (set to `false` if something looks wrong with your setup), `renderDistance`.

Compatibility

| Component | Version the hooks were written against | What the mod does there |
|—|—|—|
| Vanilla renderer | Minecraft 1.21.1 / NeoForge 21.1.x | Transformed block models, block entities, breaking overlay, particles, collision, selection, lighting |
| Sodium | 0.8.13 and 0.6.13 for NeoForge 1.21.1 | Hides the original block in Sodium’s chunk meshing; face culling, occlusion and lighting handled through the shared vanilla methods |
| Flywheel | 1.0.6 | Transformed block entities leave Flywheel instancing and use their normal renderer |
| Create | 6.0.10 (through Flywheel) | Static placed blocks work through the Flywheel path above; moving contraptions are not affected |
| Iris | 1.8.x | Transformed blocks are drawn with the per-frame path **only while a shader pack is active**; installing Iris alone costs nothing. They do not cast shadows in the shadow pass yet |
| Immersive Furniture, Kaleidoscope Tavern | 1.21.1 | Multi-block furniture, dynamic models, seats |

Mixins are written to be non-invasive: no `@Overwrite`, no `@Redirect`, every injection is optional. If another mod changes the code a hook targets, that hook is skipped instead of crashing the game.

Known limitations

– The **light emitted** by a block (a lamp) cannot move: Minecraft’s light engine works per whole cell.
– Experience orbs still come out at the original cell.
– Redstone, physics and fluids use the block’s original position.
– Placing a block against a transformed one puts it next to its original cell.
– Transformations do not follow pistons or Create contraptions.
– Maximum offset ±8 blocks, scale from 1/16× to 4×.

FAQ

**Does it change my world?** It stores a small list of transformations per dimension. Blocks themselves are untouched; remove the mod (or use `mode logical`) and everything is back in place.
**Can players abuse it?** Survival editing can be disabled in the server config; creative players and operators are always allowed. There are per-chunk limits, range checks and rate limiting.
**Does it need to be on the client?** Install it on both to see and edit. A server with the mod accepts clients without it.

## Credits

Independent implementation, inspired by the idea of editing how a placed block looks and is touched. 

—
—

Block Transformer (Español)

**Mueve, rota y escala cualquier bloque colocado —muebles, máquinas, cofres, decoración— con un editor 3D dentro del mundo.**
El bloque sigue funcionando exactamente donde está lógicamente; solo cambia cómo se dibuja, se selecciona y se toca.

> **AL INSTALAR, prueba tu configuración en un mundo de copia de seguridad.**
> El mod interviene en el renderizado, la colisión y el mallado de chunks. Está hecho para degradarse sin romper nada
> (cada gancho es opcional y se desactiva solo si otro mod cambió el código al que apunta), pero las combinaciones de mods
> de renderizado son infinitas.

Características

– **Gizmos 3D en el mundo:** flechas para mover, anillos para rotar, una «bola» central para girar en cualquier dirección y un cubo para escalar. Imán (1/16 de bloque, 15°, 0.125) o valores numéricos.
– **Los objetos completos se mueven juntos:** muebles de varios bloques, máquinas, puertas y camas se detectan como una *pieza* y se transforman alrededor de su centro. Modos «contacto / cerca» para lo demás.
– **Deshacer / rehacer / reiniciar** para todo el grupo, ejes locales o del mundo, y un panel que se adapta a cualquier escala de GUI.
– **Se comporta como si el bloque estuviera ahí:**
  – se dibuja, se **selecciona** y **colisiona** en su nuevo lugar (puedes pisarlo, chocar, romperlo, usarlo);
  – te **sientas** en sillas y sofás movidos, y al bajarte apareces junto a la silla, no en su sitio viejo;
  – la **animación de rotura, partículas, sonidos** y los **ítems / contenido** que suelta salen de donde se ve el bloque;
  – las **entidades de bloque** (cofres, carteles, muebles…) se mueven con él; la tapa de un cofre movido ya no se queda abierta;
  – las entidades que pertenecen a un bloque (cartas, props, entidades display) lo siguen;
  – la luz y el sombreado se corrigen para que la celda que dejó no quede a oscuras.
– **Rápido:** la malla de cada bloque se hornea una vez en la GPU y por fotograma solo se aplica una matriz; las formas se cachean, las lecturas no bloquean y las entidades lejos de bloques transformados no cuestan nada.
– **Pensado para servidores:** autoridad del servidor, límites por chunk, comprobación de alcance y permisos, límite de paquetes, registro de auditoría y canal de red opcional (los clientes sin el mod pueden entrar, solo ven los bloques sin transformar).

Cómo se usa

1. Craftea la **Varita Transformadora** (2 palos + 1 fragmento de amatista, en diagonal) o cógela de la pestaña Herramientas.
2. Con ella en la mano, **clic derecho sobre un bloque**, o pulsa **M** mirándolo.
3. **G / R / S** cambian de herramienta · **Ctrl+Z / Ctrl+Y** deshacer/rehacer · **Esc** o clic derecho cancela un arrastre · escribe un valor y pulsa **Enter**.
4. El botón **Grupo** elige qué se mueve con el bloque: *No*, *Pieza* (por defecto), *Contacto*, *Cerca*.

## Comandos (operadores, nivel 2)

`/blocktransformer list|inspect|reset|status|debug` y `/blocktransformer mode logical|transformed`.
**`logical`** apaga todas las transformaciones de la dimensión *sin borrarlas* (útil para depurar o recuperar un mundo); **`transformed`** las vuelve a encender.

Configuración

**Servidor** (`serverconfig/blocktransformer-server.toml`): `maxTransformsPerChunk`, `survivalPlayersCanEdit`, `editRange`, `maxEditPacketsPerSecond`.
**Cliente** (`config/blocktransformer-client.toml`): `cachedMeshes` (ponlo en `false` si algo se ve mal en tu equipo) y `renderDistance`.

Compatibilidad

| Componente | Versión contra la que se escribieron los ganchos | Qué hace el mod |
|—|—|—|
| Renderizador vanilla | Minecraft 1.21.1 / NeoForge 21.1.x | Modelos, entidades de bloque, grietas de rotura, partículas, colisión, selección e iluminación |
| Sodium | 0.8.13 y 0.6.13 para NeoForge 1.21.1 | Oculta el bloque original en el mallado de Sodium; recorte de caras, oclusión y luz vía los métodos de vanilla |
| Flywheel | 1.0.6 | Las entidades de bloque transformadas salen de la instanciación y usan su renderizador normal |
| Create | 6.0.10 (a través de Flywheel) | Los bloques estáticos funcionan por el camino de Flywheel; las contraptions en movimiento no se ven afectadas |
| Iris | 1.8.x | Se usa el dibujo fotograma a fotograma **solo con un paquete de shaders activo**; tener Iris instalado sin shaders no cuesta nada. Aún no proyectan sombras |
| Immersive Furniture, Kaleidoscope Tavern | 1.21.1 | Muebles de varios bloques, modelos dinámicos, asientos |
 

Límites conocidos

La **luz que emite** un bloque (una lámpara) no se puede mover · los orbes de experiencia salen en la celda original · redstone, física y fluidos usan la posición original · colocar un bloque contra uno transformado lo pone junto a su celda original · no siguen a pistones ni a contraptions de Create · desplazamiento máximo ±8 bloques, escala de 1/16× a 4×.

 

常见问题

Block Transformer 支持哪些 Minecraft 版本?

Block Transformer 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

Block Transformer 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Aleeq 的其他作品

查看全部 →