Posted September 14, 20196 yr I've been writing my own capabilities lately, and I'm not sure what should I do to archive a interaction with my block and redstone wire, levers, buttons, etc... Any info is welcome. Edited September 21, 20196 yr by Brbcode
September 14, 20196 yr 10 minutes ago, Brbcode said: and I'm not sure what should I do to archive a interaction with my block and redstone wire, levers, buttons, etc... Why not take a look at the vanilla blocks that interact with redstone the way you want it to? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 21, 20196 yr Author I have spent some time immersed in the minecraft code and I have managed to learn slightly how the redstone system works. PART ONE The fisrt part is to add and manage properties of your custom block. To add a property we have to declarate de property itself, initialize and overload fillStateContainer. //Step 1: declaration public static final IntegerProperty POWER = BlockStateProperties.POWER_0_15; //, public static final IntegerProperty POWERED = BlockStateProperties.POWERED; //... //In your Custom Block Class Constructor (Initialize) this.setDefaultState(this.getDefaultState().with(POWER, 0).with(POWERED, true));//How many properties as you want //Last Step @Override public void fillStateContainer(StateContainer.Builder<Block,BlockState> builder) { super.fillStateContainer(builder); builder.add(POWERED,POWER);//How many properties as you want } We can change the property value overloading event method like "OnBlockAdded", "OnRemplaced", "neighborChanged" To change the value of a property we need the World, BlockState and BlockPos state = state.with(POWER, Integer.valueOf(15)) //State:BlockState world.setBlockState(pos, state, 2);//world:World && pos:BlockPos PART TWO The second part allow other blocks to recognize that has power or if it is a power source. To archive this we have to overload two or three methods of "net.minecraft.block.Block" @Override public boolean canProvidePower(BlockState state) ... @Override public int getStrongPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) ... @Override public int getWeakPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) ... Example Visit: https://github.com/Brbcode/BrbMod
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.