Add textures for future content
69
src/main/java/su/a71/new_soviet/blocks/StoveBlock.java
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
package su.a71.new_soviet.blocks;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
|
import net.minecraft.block.*;
|
||||||
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
|
import net.minecraft.block.piston.PistonBehavior;
|
||||||
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
import net.minecraft.state.StateManager;
|
||||||
|
import net.minecraft.state.property.DirectionProperty;
|
||||||
|
import net.minecraft.state.property.Properties;
|
||||||
|
import net.minecraft.util.BlockMirror;
|
||||||
|
import net.minecraft.util.BlockRotation;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
|
import net.minecraft.util.shape.VoxelShapes;
|
||||||
|
import net.minecraft.world.BlockView;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class StoveBlock extends BlockWithEntity {
|
||||||
|
public static final DirectionProperty FACING;
|
||||||
|
|
||||||
|
public StoveBlock() {
|
||||||
|
super(FabricBlockSettings.create().sounds(BlockSoundGroup.METAL).notSolid().pistonBehavior(PistonBehavior.BLOCK));
|
||||||
|
setDefaultState(getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
|
builder.add(Properties.HORIZONTAL_FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
||||||
|
Direction dir = state.get(FACING);
|
||||||
|
switch(dir) {
|
||||||
|
case NORTH, SOUTH:
|
||||||
|
return VoxelShapes.cuboid(0.0625f, 0.0f, 0.3125f, 0.9375f, 0.5625f, 0.6875f);
|
||||||
|
case EAST, WEST:
|
||||||
|
return VoxelShapes.cuboid(0.3125f, 0.0f, 0.0625f, 0.6875f, 0.5625f, 0.9375f);
|
||||||
|
default:
|
||||||
|
return VoxelShapes.fullCube();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||||
|
return super.getPlacementState(ctx).with(Properties.HORIZONTAL_FACING, ctx.getHorizontalPlayerFacing().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
||||||
|
return (BlockState)state.with(FACING, rotation.rotate((Direction)state.get(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
||||||
|
return state.rotate(mirror.getRotation((Direction)state.get(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
FACING = Properties.HORIZONTAL_FACING;
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 315 B |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 316 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 317 B |
After Width: | Height: | Size: 309 B |
After Width: | Height: | Size: 370 B |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 326 B |
After Width: | Height: | Size: 300 B |
After Width: | Height: | Size: 243 B |
After Width: | Height: | Size: 250 B |
After Width: | Height: | Size: 258 B |
After Width: | Height: | Size: 273 B |
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 226 B |
After Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 231 B |