You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

1.20.1 Minecraft Forge自定义床方块旋转问题排查

自定义床方块旋转导致紫黑错误方块问题解决记录

问题场景

使用1.20.1版本Minecraft Forge开发服务器个人模组,目标实现自定义床模型。大部分功能正常,但方块旋转放置功能无法实现:未添加旋转相关方块状态时,方块显示正常;添加旋转配置后,方块变成紫黑错误纹理。

测试情况

  • 仅使用如下方块状态配置时,床显示正常:
{
  "variants": {
    "": {
      "model": "tutorial_testing:block/hope_bed"
    }
  }
}
  • 添加带旋转的方块状态配置后,方块变为错误方块:
{
  "variants": {
    "facing = north": {
      "model": "tutorial_testing:block/hope_bed"},
    "facing = east": {
        "model": "tutorial_testing:block/hope_bed",
        "y": 90
      },
    "facing = south": {
        "model": "tutorial_testing:block/hope_bed",
        "y": 180
      },
    "facing = west": {
        "model": "tutorial_testing:block/hope_bed",
        "y": 270
    }
  }
}

相关代码

方块注册类

import io.github.magikpups.testing.TestingMod;
import io.github.magikpups.testing.block.advhopebed;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.MapColor;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class BlockRegistry {
    public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS,
            TestingMod.MOD_ID);

    public static final RegistryObject<Block> HOPE_BED = BLOCKS.register(
            "hope_bed", () -> new advhopebed(Block.Properties.copy(Blocks.BAMBOO_PLANKS)
                    .mapColor(MapColor.COLOR_LIGHT_GREEN)
                    .strength(5.0f)
                    .sound(SoundType.BAMBOO_WOOD)
                    .noLootTable()
                    .dynamicShape()
            ));
}

advhopebed类

import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty;

public class advhopebed extends HorizontalDirectionalBlock {

    public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;

    public advhopebed(Properties properties) {
        super(properties);
    }

    public BlockState getStateForPlacement(BlockPlaceContext context) {
        return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
    }

    @Override
    protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
        super.createBlockStateDefinition(builder);
        builder.add(FACING);
    }
}

问题解决

经排查,问题根源在方块状态配置的格式错误:facing = north 中的空格不符合规范,正确写法为 facing=north。修改所有方向配置的格式后,方块旋转功能正常,不再显示紫黑错误纹理。

内容的提问来源于stack exchange,提问作者PupsiCola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:40:17