Posted August 8, 20232 yr I making a block that can irrigate an area of 3x3 and this is how is should be like. Once you click to activate the block, the particles are added to the area that will be irrigated. The problem i'm having is that i don't know how to make the farmland wet. I've tried to do so, asked ChatGPT for help but could not get to any result. Full code of the custom block. Spoiler import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; public class BaseIrrigatorBlock extends Block { public static final BooleanProperty IRRIGATING = BooleanProperty.create("irrigating"); public BaseIrrigatorBlock(Properties properties) { super(properties); } private static final VoxelShape SHAPE = Block.box(0, 0, 0, 15.99, 6.5, 16); @Override public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource rand) { if (state.getValue(BaseIrrigatorBlock.IRRIGATING)) { for (int i = 0; i < 9; i++) { double xOffset = rand.nextDouble() * 3 - 1.5; double zOffset = rand.nextDouble() * 3 - 1.5; level.addParticle( ParticleTypes.RAIN, pos.getX() + 0.5 + xOffset, pos.getY() + 0.5, pos.getZ() + 0.5 + zOffset, 0, 0.05d, 0d); } } } private void moistenFarmland() { // method to make farmland wet in the area } @Override public InteractionResult use(BlockState state, Level level, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult hitResult) { if (!level.isClientSide() && hand == InteractionHand.MAIN_HAND) { level.setBlock(blockPos, state.cycle(IRRIGATING), 3); } return super.use(state, level, blockPos, player, hand, hitResult); } @Override protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) { builder.add(IRRIGATING); } @Override public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) { return SHAPE; } } How can i make the farmland wet? Should i receive any parameters in the moistenFarmland method? If so, what parameters? Edited August 13, 20232 yr by lvcas Solved
August 8, 20232 yr Did you take a look at the FarmBlock class, and see how Minecraft checks/sets moisture? Looks like perhaps it's done in the randomTick method for that block: p_221140_.setBlock(p_221141_, p_221139_.setValue(MOISTURE, Integer.valueOf(7)), 2); See what you can cobble together, and if it doesn't work, show what you tried and what the results were vs. what you expect. Also a github repo of your project so it can be cloned/downloaded and built/run/debugged would be useful for others to help find errors as well.
August 11, 20232 yr On 8/8/2023 at 3:43 AM, lvcas said: I've tried to do so, asked ChatGPT for help but could not get to any result. took me a while to stop shuddering. you asked a guessing engine how to do something? you have two options: one - look inside the game code. if you have no patience to do so, you will not make a decent mod. ever. option two - ask living people on forge forum or NF discord.
August 12, 20232 yr 14 hours ago, MFMods said: NF discord To be fair, Minecraft Forge has a discord server as well, and seems unfair to direct them elsewhere, especially from here. (that being said, I'd join both)
August 12, 20232 yr please share the link then. i would agree that redirecting towards NF communities is somewhat unfair, but only starting now that i know that there is a forge discord.
August 13, 20232 yr Author On 8/11/2023 at 4:21 PM, MFMods said: took me a while to stop shuddering. you asked a guessing engine how to do something? you have two options: one - look inside the game code. if you have no patience to do so, you will not make a decent mod. ever. option two - ask living people on forge forum or NF discord. Well, ChatGPT actually helped me tbh haha I've looked through the game code and it helped me a lot too and eventually i made it work, with some bugs but it's working. Gonna join forge discord and ask for help there! Thanks!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.