RT,当右键半砖后会在原来的半砖上放一个新的半砖,而不是堆叠成一个完整的方块(如右边的木板)
本帖最后由 皖月清风 于 2021-6-14 22:36 编辑
是否跟站位有关?还有,你错版了
2021 6 14晚22:35
感谢评分人提醒,我错版了(我以为自己在茶馆)
是否跟站位有关?还有,你错版了
2021 6 14晚22:35
感谢评分人提醒,我错版了(我以为自己在茶馆)
把你的台阶方块的代码贴出来。
本帖最后由 endersoul233 于 2021-6-15 06:05 编辑
public class BlockDarknessSlab extends BlockSlab {
public static final PropertyEnum<CommonV> VARIANT = PropertyEnum.create("variant", CommonV.class);
private final boolean isDouble;
public BlockDarknessSlab(boolean isDouble) {
super(Material.PACKED_ICE);
this.isDouble = isDouble;
this.setRegistryName(this.isDouble()?"darkness_slab_double":"darkness_slab");
this.setUnlocalizedName(this.isDouble()?"darkness_slab_double":"darkness_slab");
this.setCreativeTab(FinalDevil.finaldevilDarkWorld);
this.setHardness(2.0F);
this.setResistance(10.0F);
this.setLightOpacity(isDouble ? 255 : 0);
this.setHarvestLevel("axe",1);
this.useNeighborBrightness = !isDouble;
IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, CommonV.COMMON);
if (!this.isDouble()) {
state = state.withProperty(HALF, EnumBlockHalf.BOTTOM);
this.setDefaultState(state);
}else
this.setDefaultState(state);
}
@Override
protected BlockStateContainer createBlockState() {
return this.isDouble() ? new BlockStateContainer(this, VARIANT) : new BlockStateContainer(this, VARIANT, HALF);
}
@Override
public String getUnlocalizedName(int meta) {
return super.getUnlocalizedName();
}
@Override
public boolean isDouble() {
return isDouble;
}
@Override
public IProperty<?> getVariantProperty() {
return VARIANT;
}
@Override
public Comparable<?> getTypeForItem(ItemStack stack) {
return CommonV.COMMON;
}
@Override
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
return Item.getItemFromBlock(BlockRegistry.darkslab2);
}
@Override
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
return new ItemStack(Item.getItemFromBlock(BlockRegistry.darkslab2));
}
@Override
protected ItemStack getSilkTouchDrop(IBlockState state) {
return new ItemStack(Item.getItemFromBlock(BlockRegistry.darkslab2), isDouble() ? 2 : 1, 0);
}
@Override
@Deprecated
public IBlockState getStateFromMeta(int meta) {
return this.isDouble() ? this.getDefaultState() : this.getDefaultState().withProperty(HALF, EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]);
}
@Override
public int getMetaFromState(IBlockState state) {
return state.getValue(HALF).ordinal();
}
private enum CommonV implements IStringSerializable {
COMMON;
@Override
public String getName() {
return name().toLowerCase(Locale.ROOT);
}
}
}
3TUSK 发表于 2021-6-15 03:21
把你的台阶方块的代码贴出来。
public class BlockDarknessSlab extends BlockSlab {
public static final PropertyEnum<CommonV> VARIANT = PropertyEnum.create("variant", CommonV.class);
private final boolean isDouble;
public BlockDarknessSlab(boolean isDouble) {
super(Material.PACKED_ICE);
this.isDouble = isDouble;
this.setRegistryName(this.isDouble()?"darkness_slab_double":"darkness_slab");
this.setUnlocalizedName(this.isDouble()?"darkness_slab_double":"darkness_slab");
this.setCreativeTab(FinalDevil.finaldevilDarkWorld);
this.setHardness(2.0F);
this.setResistance(10.0F);
this.setLightOpacity(isDouble ? 255 : 0);
this.setHarvestLevel("axe",1);
this.useNeighborBrightness = !isDouble;
IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, CommonV.COMMON);
if (!this.isDouble()) {
state = state.withProperty(HALF, EnumBlockHalf.BOTTOM);
this.setDefaultState(state);
}else
this.setDefaultState(state);
}
@Override
protected BlockStateContainer createBlockState() {
return this.isDouble() ? new BlockStateContainer(this, VARIANT) : new BlockStateContainer(this, VARIANT, HALF);
}
@Override
public String getUnlocalizedName(int meta) {
return super.getUnlocalizedName();
}
@Override
public boolean isDouble() {
return isDouble;
}
@Override
public IProperty<?> getVariantProperty() {
return VARIANT;
}
@Override
public Comparable<?> getTypeForItem(ItemStack stack) {
return CommonV.COMMON;
}
@Override
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
return Item.getItemFromBlock(BlockRegistry.darkslab2);
}
@Override
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
return new ItemStack(Item.getItemFromBlock(BlockRegistry.darkslab2));
}
@Override
protected ItemStack getSilkTouchDrop(IBlockState state) {
return new ItemStack(Item.getItemFromBlock(BlockRegistry.darkslab2), isDouble() ? 2 : 1, 0);
}
@Override
@Deprecated
public IBlockState getStateFromMeta(int meta) {
return this.isDouble() ? this.getDefaultState() : this.getDefaultState().withProperty(HALF, EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]);
}
@Override
public int getMetaFromState(IBlockState state) {
return state.getValue(HALF).ordinal();
}
private enum CommonV implements IStringSerializable {
COMMON;
@Override
public String getName() {
return name().toLowerCase(Locale.ROOT);
}
}
}
endersoul233 发表于 2021-6-15 05:58
public class BlockDarknessSlab extends BlockSlab {
public static final PropertyEnum VARIANT = ...
看上去没问题。
但是你的台阶物品是什么?原版有一个名为 ItemSlab 的类专门处理台阶放置的逻辑。看上去你没有用?
这个问题难道我了.我去给你查查