Posted June 22, 20232 yr I'm having a weird lighting bug on my block where it appears dark Block file: package com.derpz.nukaisles.block.custom; import javax.annotation.Nullable; import com.derpz.nukaisles.item.ModItems; import com.derpz.nukaisles.item.custom.NukaColaItem; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; import com.derpz.nukaisles.block.entity.ModBlockEntities; import com.derpz.nukaisles.block.entity.NukaColaMachineBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; 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.DirectionProperty; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.network.NetworkHooks; public class NukaColaMachineBlock extends BaseEntityBlock { public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public NukaColaMachineBlock(Properties properties) { super(properties); } private static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 32, 16); @Override public @NotNull VoxelShape getShape(@NotNull BlockState pState, @NotNull BlockGetter pBlock, @NotNull BlockPos pPos, @NotNull CollisionContext pContext) { return SHAPE; } //getStateForPlacement @Override public BlockState getStateForPlacement(BlockPlaceContext context) { return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); } //rotate @Override public @NotNull BlockState rotate(BlockState state, Rotation rotation) { return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); } //mirror @Override public @NotNull BlockState mirror(BlockState state, Mirror mirror) { return state.rotate(mirror.getRotation(state.getValue(FACING))); } @Override protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) { builder.add(FACING); } @Override public @NotNull RenderShape getRenderShape(@NotNull BlockState pState) { return RenderShape.MODEL; } @Override public void onRemove(BlockState pState, @NotNull Level pLevel, @NotNull BlockPos pPos, BlockState pNewState, boolean pIsMoving) { if (pState.getBlock() != pNewState.getBlock()) { BlockEntity blockEntity = pLevel.getBlockEntity(pPos); if (blockEntity instanceof NukaColaMachineBlockEntity) { ((NukaColaMachineBlockEntity) blockEntity).drops(); } super.onRemove(pState, pLevel, pPos, pNewState, pIsMoving); } } @Override public @NotNull InteractionResult use(@NotNull BlockState pState, Level pLevel, @NotNull BlockPos pPos, @NotNull Player pPlayer, @NotNull InteractionHand pHand, @NotNull BlockHitResult pHit) { if (!pLevel.isClientSide) { BlockEntity blockEntity = pLevel.getBlockEntity(pPos); if (blockEntity instanceof NukaColaMachineBlockEntity NukaColaMachineBlockEntity) { ServerPlayer serverPlayer = (ServerPlayer) pPlayer; NetworkHooks.openScreen(serverPlayer, NukaColaMachineBlockEntity, pPos); } if (pPlayer.isCrouching() && pPlayer.getMainHandItem().getItem() instanceof NukaColaItem) { System.out.println("test"); pPlayer.getInventory().add(new ItemStack(ModItems.BOTTLE_CAP.get())); pPlayer.getInventory().removeItem(pPlayer.getInventory().selected, 1); pPlayer.getInventory().getItem(pPlayer.getInventory().selected).addTagElement("de-capped", new CompoundTag()); } return InteractionResult.CONSUME; } return InteractionResult.SUCCESS; } @Override @Nullable public BlockEntity newBlockEntity(@NotNull BlockPos pPos, @NotNull BlockState pState) { return new NukaColaMachineBlockEntity(pPos, pState); } @Nullable @Override public <T extends BlockEntity> BlockEntityTicker<T> getTicker(@NotNull Level pLevel, @NotNull BlockState pState, @NotNull BlockEntityType<T> pType) { return createTickerHelper(pType, ModBlockEntities.NUKA_COLA_MACHINE.get(), NukaColaMachineBlockEntity::tick); } } Registration: public static final RegistryObject<Block> NUKA_COLA_MACHINE = registerBlock("nuka_cola_machine", () -> new NukaColaMachineBlock(BlockBehaviour.Properties.of(Material.METAL) .strength(5f).requiresCorrectToolForDrops().noOcclusion()));
June 22, 20232 yr i gave up on double-sized blocks. it looks good but then you place a dirt blocks next to it and urgh, things become very dark. cut it up into two top and bottom parts.
June 22, 20232 yr Author 11 minutes ago, MFMods said: i gave up on double-sized blocks. it looks good but then you place a dirt blocks next to it and urgh, things become very dark. cut it up into two top and bottom parts. So make it work like the MC door?
June 22, 20232 yr yeah. i tried a lot harder than you did, trust me. keep the big one you already made and use it for item model. make two copies, delete bottom portion in one, delete top portion in the other and translate upwards.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.