本帖最后由 endcity 于 2021-8-13 16:58 编辑
方块setSoundType时报错:'setSoundType(net.minecraft.block.SoundType)' has protected access in 'net.minecraft.block.Block'
全部代码:
复制代码
方块setSoundType时报错:'setSoundType(net.minecraft.block.SoundType)' has protected access in 'net.minecraft.block.Block'
全部代码:
- package block;
- import net.minecraft.block.Block;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.renderer.block.model.ModelResourceLocation;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraftforge.client.event.ModelRegistryEvent;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.event.RegistryEvent;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.fml.relauncher.Side;
- import static item.CreativeTab.THE_FORGOTTEN;
- @Mod.EventBusSubscriber(value = Side.CLIENT,modid = "the_forgotten")
- public class mysterious_stone {
- public static Block Mysterious_Stone;
- @SubscribeEvent
- public static void registerBlock(RegistryEvent.Register<Block> event) {
- event.getRegistry().register(
- Mysterious_Stone = new Block(Material.ROCK)
- .setCreativeTab(THE_FORGOTTEN)
- .setUnlocalizedName("the_forgotten.Mysterious_Stone")
- .setRegistryName("the_forgotten:mysterious_stone")
- .setHardness(1.5f)
- .setResistance(10.0f)
- .setSoundType(SoundType.STONE)
- .setHarvestLevel("pickaxe",0)
- );
- }
- @SubscribeEvent
- public static void registerItems(RegistryEvent.Register<Item> event) {
- event.getRegistry().register(
- new ItemBlock(Mysterious_Stone).setRegistryName("the_forgotten:mysterious_stone")
- );
- }
- @Mod.EventBusSubscriber(value = Side.CLIENT,modid = "the_forgotten")
- public static final class ModelMapper {
- @SubscribeEvent
- public static void onModelReg(ModelRegistryEvent event) {
- ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(Mysterious_Stone), 0, new ModelResourceLocation(Mysterious_Stone.getRegistryName(), "inventory"));
- }
- }
- public void onBlockHarvested(EntityPlayer player) {
- ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
- stack.damageItem(2, player);
- }
- }
你中间的代码点之前不需要加东西吗?这样写不是错的吗?setSoundType翻译过来是设置声音类型,不过这个不需要新建一个ItemStack吗?只有有了对象才能设置声音类型,这个声音类型是方块被破坏产生的声音?
白色的小熊 发表于 2021-8-11 22:58
你中间的代码点之前不需要加东西吗?这样写不是错的吗?setSoundType翻译过来是设置声音类型,不过这个不需 ...
你中间的代码点之前不需要加东西吗?这样写不是错的吗?
您仔细看一下代码
- event.getRegistry().register(
- Mysterious_Stone = new Block(Material.ROCK)
- .setCreativeTab(THE_FORGOTTEN)
- .setUnlocalizedName("the_forgotten.Mysterious_Stone")
- .setRegistryName("the_forgotten:mysterious_stone")
- .setHardness(1.5f)
- .setResistance(10.0f)
- .setSoundType(SoundType.STONE)
- .setHarvestLevel("pickaxe",0)
- );
自行百度 “Java 链式”。
William_Shi 发表于 2021-8-12 09:20
您仔细看一下代码
自行百度 “Java 链式”。
就是链式编程点前面也得加东西吧?链式编程是指的
返回一个this对象,就是返回本身,达到链式效果。
白色的小熊 发表于 2021-8-13 15:44
就是链式编程点前面也得加东西吧?链式编程是指的
就是链式编程点前面也得加东西吧?
你能不能自己去找几个链式编程的实际例子看一看!自己测试一下!
Mysterious_Stone = new Block(Material.ROCK)
.setCreativeTab(THE_FORGOTTEN)
.setUnlocalizedName("the_forgotten.Mysterious_Stone")
这个链式,和
Mysterious_Stone = new Block(Material.ROCK).setCreativeTab(THE_FORGOTTEN).setUnlocalizedName("the_forgotten.Mysterious_Stone")
是等价的,只是在调用方法的时候换了个行而已。
你能不能先学学 Java 再来发表自己的观点?你引用的这句话“返回一个this对象,就是返回本身,达到链式效果。”你真的理解了吗?