Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mrbradlerz.moar.block;
- import net.minecraftforge.registries.ObjectHolder;
- import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
- import net.minecraftforge.common.ToolType;
- import net.minecraftforge.api.distmarker.OnlyIn;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraft.world.IBlockReader;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.Rotation;
- import net.minecraft.util.Mirror;
- import net.minecraft.util.Direction;
- import net.minecraft.state.StateContainer;
- import net.minecraft.state.DirectionProperty;
- import net.minecraft.loot.LootContext;
- import net.minecraft.item.ItemStack;
- import net.minecraft.item.Item;
- import net.minecraft.item.BlockItemUseContext;
- import net.minecraft.item.BlockItem;
- import net.minecraft.client.renderer.RenderTypeLookup;
- import net.minecraft.client.renderer.RenderType;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.HorizontalBlock;
- import net.minecraft.block.BlockState;
- import net.minecraft.block.Block;
- import java.util.List;
- import java.util.Collections;
- import com.mrbradlerz.moar.itemgroup.MOARTabItemGroup;
- import com.mrbradlerz.moar.MoarModElements;
- import net.minecraft.state.EnumProperty;
- import com.mrbradlerz.moar.TableType;
- @MoarModElements.ModElement.Tag
- public class BuffetTableBlock extends MoarModElements.ModElement {
- @ObjectHolder("moar:buffet_table")
- public static final Block block = null;
- public BuffetTableBlock(MoarModElements instance) {
- super(instance, 1042);
- }
- @Override
- public void initElements() {
- elements.blocks.add(() -> new CustomBlock());
- elements.items.add(() -> new BlockItem(block, new Item.Properties().group(MOARTabItemGroup.tab)).setRegistryName(block.getRegistryName()));
- }
- @Override
- @OnlyIn(Dist.CLIENT)
- public void clientLoad(FMLClientSetupEvent event) {
- RenderTypeLookup.setRenderLayer(block, RenderType.getCutout());
- }
- public static class CustomBlock extends Block {
- public static final DirectionProperty FACING = HorizontalBlock.HORIZONTAL_FACING;
- public static final EnumProperty TYPE = EnumProperty.create("type", TableType.class);
- public CustomBlock() {
- super(Block.Properties.create(Material.WOOD).sound(SoundType.WOOD).hardnessAndResistance(1f, 10f).setLightLevel(s -> 0).harvestLevel(1)
- .harvestTool(ToolType.AXE).setRequiresTool().notSolid().setOpaque((hogwash, br, bp) -> false));
- this.setDefaultState(this.stateContainer.getBaseState().with(FACING, Direction.NORTH));
- this.setDefaultState(new BlockStateEnum());
- setRegistryName("buffet_table");
- }
- @Override
- public boolean propagatesSkylightDown(BlockState state, IBlockReader reader, BlockPos pos) {
- return true;
- }
- @Override
- public int getOpacity(BlockState state, IBlockReader worldIn, BlockPos pos) {
- return 0;
- }
- @Override
- protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder) {
- builder.add(FACING);
- }
- public BlockState rotate(BlockState state, Rotation rot) {
- return state.with(FACING, rot.rotate(state.get(FACING)));
- }
- public BlockState mirror(BlockState state, Mirror mirrorIn) {
- return state.rotate(mirrorIn.toRotation(state.get(FACING)));
- }
- @Override
- public BlockState getStateForPlacement(BlockItemUseContext context) {
- ;
- return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite());
- }
- @Override
- public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
- List<ItemStack> dropsOriginal = super.getDrops(state, builder);
- if (!dropsOriginal.isEmpty())
- return dropsOriginal;
- return Collections.singletonList(new ItemStack(this, 1));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement