mirror of
https://github.com/RoBaertschi/EnvironmentTech.git
synced 2025-04-20 07:03:30 +00:00
ticking for env distributor
This commit is contained in:
parent
a653a10ae8
commit
88753530be
@ -1,7 +1,10 @@
|
|||||||
package robaertschi.environmenttech.level.block;
|
package robaertschi.environmenttech.level.block;
|
||||||
|
|
||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelAccessor;
|
import net.minecraft.world.level.LevelAccessor;
|
||||||
@ -13,8 +16,17 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||||||
import net.minecraft.world.level.block.state.StateDefinition;
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
|
||||||
|
import robaertschi.environmenttech.level.block.entity.EnvDistributorBlockEntity;
|
||||||
|
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
@Slf4j
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
@MethodsReturnNonnullByDefault
|
||||||
public class EnvDistributorBlock extends BaseEntityBlock {
|
public class EnvDistributorBlock extends BaseEntityBlock {
|
||||||
public static final DirectionProperty FACING = BlockStateProperties.FACING;
|
public static final DirectionProperty FACING = BlockStateProperties.FACING;
|
||||||
public static final MapCodec<EnvDistributorBlock> CODEC = simpleCodec(EnvDistributorBlock::new);
|
public static final MapCodec<EnvDistributorBlock> CODEC = simpleCodec(EnvDistributorBlock::new);
|
||||||
@ -41,7 +53,7 @@ public class EnvDistributorBlock extends BaseEntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockState mirror(BlockState pState, Mirror pMirror) {
|
protected @NotNull BlockState mirror(BlockState pState, Mirror pMirror) {
|
||||||
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
|
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +77,25 @@ public class EnvDistributorBlock extends BaseEntityBlock {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) {
|
public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) {
|
||||||
return null;
|
return new EnvDistributorBlockEntity(pPos, pState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(@NotNull Level pLevel, @NotNull BlockState pState, @NotNull BlockEntityType<T> pBlockEntityType) {
|
||||||
|
return createTickerHelper(pBlockEntityType, ETBlockEntities.ENV_DISTRIBUTOR_BLOCK_ENTITY.get(), this::tick);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void tick(Level level, BlockPos blockPos, BlockState blockState, EnvDistributorBlockEntity envDistributorBlockEntity) {
|
||||||
|
|
||||||
|
if (!level.isClientSide()) {
|
||||||
|
if (level instanceof ServerLevel serverLevel) {
|
||||||
|
envDistributorBlockEntity.serverTick(serverLevel, blockPos, blockState);
|
||||||
|
} else {
|
||||||
|
log.error("level.isClientSide() returned false, but is not a ServerLevel, not ticking EnvCollector");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user