endcity
本帖最后由 endcity 于 2021-8-13 16:58 编辑

方块setSoundType时报错:'setSoundType(net.minecraft.block.SoundType)' has protected access in 'net.minecraft.block.Block'

全部代码:
  1. package block;

  2. import net.minecraft.block.Block;
  3. import net.minecraft.block.SoundType;
  4. import net.minecraft.block.material.Material;
  5. import net.minecraft.block.state.IBlockState;
  6. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.item.Item;
  9. import net.minecraft.item.ItemBlock;
  10. import net.minecraft.item.ItemStack;
  11. import net.minecraft.util.EnumHand;
  12. import net.minecraft.util.math.BlockPos;
  13. import net.minecraft.world.World;
  14. import net.minecraftforge.client.event.ModelRegistryEvent;
  15. import net.minecraftforge.client.model.ModelLoader;
  16. import net.minecraftforge.event.RegistryEvent;
  17. import net.minecraftforge.fml.common.Mod;
  18. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  19. import net.minecraftforge.fml.relauncher.Side;

  20. import static item.CreativeTab.THE_FORGOTTEN;

  21. @Mod.EventBusSubscriber(value = Side.CLIENT,modid = "the_forgotten")
  22. public class mysterious_stone {
  23.     public static Block Mysterious_Stone;

  24.     @SubscribeEvent
  25.     public static void registerBlock(RegistryEvent.Register<Block> event) {
  26.         event.getRegistry().register(
  27.                 Mysterious_Stone = new Block(Material.ROCK)
  28.                 .setCreativeTab(THE_FORGOTTEN)
  29.                 .setUnlocalizedName("the_forgotten.Mysterious_Stone")
  30.                 .setRegistryName("the_forgotten:mysterious_stone")
  31.                 .setHardness(1.5f)
  32.                 .setResistance(10.0f)
  33.                 .setSoundType(SoundType.STONE)
  34.                 .setHarvestLevel("pickaxe",0)
  35.         );
  36.     }
  37.     @SubscribeEvent
  38.     public static void registerItems(RegistryEvent.Register<Item> event) {
  39.         event.getRegistry().register(
  40.                 new ItemBlock(Mysterious_Stone).setRegistryName("the_forgotten:mysterious_stone")
  41.         );
  42.     }

  43.     @Mod.EventBusSubscriber(value = Side.CLIENT,modid = "the_forgotten")
  44.     public static final class ModelMapper {
  45.         @SubscribeEvent
  46.         public static void onModelReg(ModelRegistryEvent event) {
  47.             ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(Mysterious_Stone), 0, new ModelResourceLocation(Mysterious_Stone.getRegistryName(), "inventory"));
  48.         }
  49.     }
  50.     public void onBlockHarvested(EntityPlayer player) {
  51.         ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
  52.         stack.damageItem(2, player);
  53.         }
  54.     }
复制代码

白色的小熊
你中间的代码点之前不需要加东西吗?这样写不是错的吗?setSoundType翻译过来是设置声音类型,不过这个不需要新建一个ItemStack吗?只有有了对象才能设置声音类型,这个声音类型是方块被破坏产生的声音?

下一页 最后一页