▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Salicin: Block Scale
Salicin: Block Scale

Salicin: Block Scale

Easily and conveniently resize & rotate blocks (with BERs and collision boxes)

Оцените первым
250
0

Easily and conveniently resize and rotate blocks (including their block entity renderers and collision boxes) with a single interface.

This is a library mod for Minecraft Forge 1.20.1. Have your Block implement IScalableBlock and/or IRotatableBlock, and it automatically gets scaled/rotated model rendering, BER rendering, and VoxelShape collision, no per-block mixin registration required.

Features

  • One interface, everything scaled: implement IScalableBlock, return an SBSProp config, done.
  • One interface, everything rotated: implement IRotatableBlock, return an SBSRProp config, and blocks rotate around any axis at any angle.
  • Block model rendering: BakedQuad vertices transformed via BakedModel proxy at model bake time, ensuring compatibility with rendering replacers like Embeddium & Oculus.
  • Block entity rendering: BERs (chests, signs, etc.) scale and rotate together with their parent block via Mixin injection into BlockEntityRenderDispatcher.
  • Collision box scaling & translation: VoxelShape automatically transformed when scaleShape is enabled; intelligently translated to match rotated model center.
  • Compound transforms: blocks can implement both interfaces — rotation is applied first, then scaling.
  • Configurable pivot: scale and rotate around any anchor point within the block.
  • Zero configuration: no mixin config, no JSON, no data-gen. Pure API.

Usage

public class MyBlock extends Block implements IScalableBlock, IRotatableBlock {
@Override
public SBSProp getScaleConfig(BlockState state) {
    // Scale to 50% around the block center, including collision
    return new SBSProp(0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, true);
}

@Override
public SBSRProp getRotationConfig(BlockState state) {
    // Rotate 45° around Y axis, centered on the block
    return new SBSRProp(45f, Direction.Axis.Y, 0.5f, 0.5f, 0.5f);
}

@Override
public VoxelShape getShape(BlockState state,
                           BlockGetter level,
                           BlockPos pos,
                           CollisionContext ctx) {
    VoxelShape rotatedShape = getTranslatedShape(state, level, pos, ctx, 
                                                 super.getShape(state, level, pos, ctx));
    return getScaledShape(state, level, pos, ctx, rotatedShape);
}

}


# SBSProp Parameters

| Field | Description |
|-------|-------------|
| `scaleX / Y / Z` | Scale multiplier per axis (1.0 = original) |
| `pivotX / Y / Z` | Anchor point in block coordinates (0~1, 0.5 = center) |
| `scaleShape` | Whether to also scale the collision VoxelShape |

# SBSRProp Parameters

| Field | Description |
|-------|-------------|
| `degree` | Rotation angle in degrees |
| `axis` | Rotation axis (`Direction.Axis.X / Y / Z`) |
| `pivotX / Y / Z` | Anchor point in block coordinates (0~1, 0.5 = center) |

# Compatible
This mod is designed to be compatible with Embeddium & Oculus. Any incompatibility is welcome to feedback.

# Feedback
If you have issues/pr to submit, please first send a brief description about the issue to 3485874663@qq.com, you will be redirected to a gitea website with username & password. You can continue your issues/pr there.
Партнёрский материал

Как поиграть с друзьями с модом Salicin: Block Scale?

Мод Salicin: Block Scale куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Salicin: Block Scale будет готов за пару минут - BungeeHost сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.20.x

Платформы

Поддерживаемые окружения

Клиент

Создатели

Детали

Лицензия:
Опубликован:5 месяцев назад
Обновлён:5 месяцев назад
Главная