User Tools

Site Tools


tutorial:blockstate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tutorial:blockstate [2019/08/29 07:47] – [Adding models for your blockstates] JavaScript formatting, add file names jamieswhiteshirttutorial:blockstate [2020/03/19 10:10] – 1.15 juuz
Line 8: Line 8:
 it would become harder and gain a hardness of ''2''   it would become harder and gain a hardness of ''2''  
      
-First we define the boolean property of the block - whether or not it is hard:+First we define the boolean property of the block - whether or not it is hard (careful not to import the wrong BooleanProperty!):
 <code java> <code java>
 public class MyBlock extends Block { public class MyBlock extends Block {
Line 19: Line 19:
     [...]     [...]
     @Override     @Override
-    protected void appendProperties(StateFactory.Builder<Block, BlockState> stateFactory) { +    protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) { 
-        stateFactory.add(HARDENED);+        stateManager.add(HARDENED);
     }     }
          
Line 31: Line 31:
     public MyBlock(Settings settings) {     public MyBlock(Settings settings) {
         super(settings);         super(settings);
-        setDefaultState(getStateFactory().getDefaultState().with(HARDENED, false));+        setDefaultState(getStateManager().getDefaultState().with(HARDENED, false));
     }     }
          
 } }
 </code> </code>
 +(To set multiple properties, chain ''with()'' calls)
  
-Now, to set the property we need to call   +Now, to set the property we need to call  ''world.setBlockState()'':  
- +
-''world.setBlockState(<block-position>, <block-instance>.getDefaultState().with(<property-name>, <new-value>)'':  +
            
 (Replace ''MyBlocks.MY_BLOCK_INSTANCE'' with your block's instance) (Replace ''MyBlocks.MY_BLOCK_INSTANCE'' with your block's instance)
Line 46: Line 45:
     [...]     [...]
     @Override     @Override
-    public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult blockHitResult) {+    public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
         world.setBlockState(pos, MyBlocks.MY_BLOCK_INSTANCE.getDefaultState().with(HARDENED, true));         world.setBlockState(pos, MyBlocks.MY_BLOCK_INSTANCE.getDefaultState().with(HARDENED, true));
-        return true;+        return ActionResult.SUCCESS;
     }     }
 } }
tutorial/blockstate.txt · Last modified: 2023/11/18 08:13 by solidblock