This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/docs/tutorials/BLOCK.md
TheBrokenRail e7a6b55d76
All checks were successful
ScriptCraft/pipeline/head This commit looks good
Update Docs And Fix Gradle Plugin
2020-06-01 19:07:01 -04:00

48 lines
1.5 KiB
Markdown

# Create A Block
## Create Your Block Class
JavaScript:
```javascript
import { Identifier, BlockState, BlockSettings, ActionResult, CustomBlock } from 'minecraft';
class MyBlock extends CustomBlock {
constructor() {
super(new BlockSettings('STONE', 'IRON'));
}
onUse(world, blockState, blockPos, side, player, hand) {
world.setBlockState(blockPos.offset(side), BlockState.getDefaultState(new Identifier('minecraft:stone')));
return ActionResult.SUCCESS;
}
}
```
TypeScript:
```typescript
import { Identifier, BlockState, BlockSettings, ActionResult, World, Pos, Hand, PlayerEntity, Direction, CustomBlock } from 'minecraft';
class MyBlock extends CustomBlock {
constructor() {
super(new BlockSettings('STONE', 'IRON'));
}
onUse(world: World, blockState: BlockState, blockPos: Pos, side: Direction, player: PlayerEntity, hand: Hand): ActionResult {
world.setBlockState(blockPos.offset(side), BlockState.getDefaultState(new Identifier('minecraft:stone')));
return ActionResult.SUCCESS;
}
}
```
## Register Your Block
```javascript
import { Registry, Identifier } from 'minecraft';
Registry.register(Registry.BLOCK, new Identifier('modid', 'my_block'), new MyBlock());
```
## Register Your Block Item
```javascript
import { Registry, Identifier, BlockItem, ItemSettings } from 'minecraft';
Registry.register(Registry.ITEM, new Identifier('modid', 'my_block'), new BlockItem(new Identifier('modid', 'my_block'), new ItemSettings().setItemGroup('building_blocks')));
```