2
2
3
3
import net .minecraft .block .AbstractFurnaceBlock ;
4
4
import net .minecraft .block .BlockState ;
5
+ import net .minecraft .block .BlockWithEntity ;
5
6
import net .minecraft .block .entity .AbstractFurnaceBlockEntity ;
6
7
import net .minecraft .block .entity .BlockEntity ;
7
8
import net .minecraft .block .entity .BlockEntityTicker ;
15
16
import net .minecraft .util .math .random .Random ;
16
17
import net .minecraft .world .World ;
17
18
19
+ import java .util .function .BiConsumer ;
20
+
18
21
import org .jetbrains .annotations .Nullable ;
19
22
20
23
import com .mojang .serialization .MapCodec ;
21
24
22
25
import net .minecraft .block .AbstractBlock ;
23
26
24
- public class WoodenFurnaceBlock extends AbstractFurnaceBlock {
27
+ public class WoodenFurnaceBlock extends BlockWithEntity {
25
28
public WoodenFurnaceBlock (AbstractBlock .Settings settings ) {
26
29
super (settings );
27
30
}
28
31
32
+ // @Nullable
33
+ // public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
34
+ // return world.isClient ? null : checkType(type, SmeltingInAPinch.WOODEN_FURNACE_BLOCK_ENTITY, WoodenFurnaceBlockEntity::tick);
35
+ // }
36
+
37
+
29
38
@ Override
30
39
public BlockEntity createBlockEntity (BlockPos pos , BlockState state ) {
31
40
return new WoodenFurnaceBlockEntity (pos , state );
@@ -36,35 +45,4 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
36
45
protected MapCodec <WoodenFurnaceBlock > getCodec () {
37
46
return CODEC ;
38
47
}
39
-
40
- @ Override
41
- protected void openScreen (World world , BlockPos pos , PlayerEntity player ) {
42
- BlockEntity blockEntity = world .getBlockEntity (pos );
43
- if (blockEntity instanceof WoodenFurnaceBlockEntity ) {
44
- player .openHandledScreen ((NamedScreenHandlerFactory )((Object )blockEntity ));
45
- }
46
- }
47
-
48
- @ Override
49
- public <T extends BlockEntity > BlockEntityTicker <T > getTicker (World world , BlockState state , BlockEntityType <T > type ) {
50
- return checkType (type , SmeltingInAPinch .WOODEN_FURNACE_BLOCK_ENTITY , (world1 , pos , state1 , be ) -> WoodenFurnaceBlockEntity .tick (world1 , pos , state1 , be ));
51
- }
52
-
53
- public static <T extends BlockEntity > BlockEntityTicker <T > checkType (BlockEntityType <T > givenType , BlockEntityType <WoodenFurnaceBlockEntity > expectedType , BlockEntityTicker <? super WoodenFurnaceBlockEntity > ticker ) {
54
- return givenType == expectedType ? (BlockEntityTicker <T >) ticker : null ;
55
- }
56
-
57
- @ Override
58
- public void randomDisplayTick (BlockState state , World world , BlockPos pos , Random random ) {
59
- if (!state .get (LIT ).booleanValue ()) {
60
- return ;
61
- }
62
- double d = (double )pos .getX () + 0.5 ;
63
- double e = pos .getY ();
64
- double f = (double )pos .getZ () + 0.5 ;
65
- if (random .nextDouble () < 0.1 ) {
66
- world .playSound (d , e , f , SoundEvents .BLOCK_SMOKER_SMOKE , SoundCategory .BLOCKS , 1.0f , 1.0f , false );
67
- }
68
- world .addParticle (ParticleTypes .SMOKE , d , e + 1.1 , f , 0.0 , 0.0 , 0.0 );
69
- }
70
48
}
0 commit comments