Jump to content

ericos

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by ericos

  1. This is the way I am currently registering the item:

     

    Spoiler
    
    event.getRegistry().register(ItemList.seed_bag = new CustomSeedItem(Blocks.WHEAT, (new Item.Properties()).group(rebrandGroup)).setRegistryName(location("seed_bag")));

     

     

    With the location function returning a new Resource Location like this:

    Spoiler
    
                private static ResourceLocation location(String name) {
                    return new ResourceLocation(MOD_ID, name);
                }

     

     

    The CustomSeedItem I create extends the BlockItem class.

     

    Spoiler
    
    public class CustomSeedItem extends BlockItem {
        public CustomSeedItem(Block p_i50041_1_, Properties p_i50041_2_) {
            super(p_i50041_1_, p_i50041_2_);
        }
    
        @Override
        public ActionResultType onItemUse(ItemUseContext context) {
            ActionResultType actionresulttype = this.tryPlace(new BlockItemUseContext(context));
            BlockPos clickedOn = context.getPos();
    
            World world = context.getWorld();
    
            boolean playedSound = false;
            boolean placedWheat = false;
    
            for (int i = -1; i <= 1; i++) {
                for (int j = -1; j <= 1; j++) {
    
                    BlockPos neighbor;
                    BlockPos aboveNeighbor;
                    neighbor = clickedOn.add(new Vec3i(i,0,j));
                    aboveNeighbor = neighbor.add(new Vec3i(0,1,0));
                    if(world.getBlockState(neighbor).getBlock() == Blocks.FARMLAND && world.getBlockState(aboveNeighbor).getBlock() == Blocks.AIR){
                        if(i == 0 && j ==0){
                            playedSound = true;
                            continue;
                        }
                        placedWheat = true;
                        world.setBlockState(aboveNeighbor, Blocks.WHEAT.getDefaultState(), 0);
                    }
    
    
                }
    
    
            }
    
            if (placedWheat == true && playedSound == false){
                world.playSound(context.getPlayer(), context.getPos(), SoundEvents.BLOCK_GRASS_BREAK, SoundCategory.BLOCKS, 1, 1);
            }
    
            return actionresulttype != ActionResultType.SUCCESS && this.isFood() ? this.onItemRightClick(context.getWorld(), context.getPlayer(), context.getHand()).getType() : actionresulttype;
        }
    }

     

     

  2. Hello,

     

    I've been trying to create an item that places wheat seeds in a 3x3 grid. To do that I have created the item as a new BlockNamedItem for the wheat block. My implementation works fine, however I just realized I seem to be overriding the vanilla minecraft seeds with this approach.

     

    I am wondering what the proper way is to go about this. Any help would be appreciated.

  3. Hello!

     

    I am trying to stop blocks from dropping their respective item when mined. This should happen only if a certain condition is met. I've been trying to get this to work with the BlockEvent.BreakEvent Event. The idea was to perform the check in the event handler and to remove the item that's about to be dropped when the condition is met. However I'm not sure how I would go about actually stopping the block from dropping anything.

     

    Any help would be appreciated.

  4. Greetings,

     

    I am trying to disable the recipes for all vanilla tools (wooden axe, stone sword, diamond shovel etc.). To accomplish this I am currently specifying my own .json files that are named after those tools (wooden_axe.json, stone_sword.json, etc) and I'm putting them under assets/data/minecraft/recipes/.

     

    This does not disable any of the recipes for the vanilla items however and the new recipes I specify in the .json files are not working either. It seems to work for some vanilla blocks where I was able to override the crafting table and the diamond block recipe, but not the furnace, using this method. I have attached the two .json files I have been testing with. The diamond_block.json successfully overrides the diamond block recipe, the furnace.json does not work.

     

    Is there anything I am missing about overriding vanilla recipes?

     

     

    diamond_block.json furnace.json

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.