Advertisement
NightHawk016

block file

Sep 8th, 2023
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | Gaming | 0 0
  1. package net.NightHawk016.paradiselostadditions.block.custom;
  2.  
  3. import net.NightHawk016.paradiselostadditions.container.ucplaneContainer;
  4. import net.NightHawk016.paradiselostadditions.tileentity.ModTileEntities;
  5. import net.NightHawk016.paradiselostadditions.tileentity.ucplaneTile;
  6. import net.minecraft.block.Block;
  7. import net.minecraft.block.BlockState;
  8. import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
  9. import net.minecraft.entity.player.PlayerEntity;
  10. import net.minecraft.entity.player.PlayerInventory;
  11. import net.minecraft.entity.player.ServerPlayerEntity;
  12. import net.minecraft.inventory.container.Container;
  13. import net.minecraft.inventory.container.INamedContainerProvider;
  14. import net.minecraft.tileentity.TileEntity;
  15. import net.minecraft.util.ActionResultType;
  16. import net.minecraft.util.Hand;
  17. import net.minecraft.util.math.BlockPos;
  18. import net.minecraft.util.math.BlockRayTraceResult;
  19. import net.minecraft.util.text.ITextComponent;
  20. import net.minecraft.util.text.TranslationTextComponent;
  21. import net.minecraft.world.IBlockReader;
  22. import net.minecraft.world.World;
  23. import net.minecraftforge.fml.network.NetworkHooks;
  24.  
  25. import javax.annotation.Nullable;
  26.  
  27. public class ucplaneBlock extends Block {
  28. public ucplaneBlock(Properties properties) {
  29. super(properties);
  30. }
  31.  
  32. @Override
  33. public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {
  34. if(!worldIn.isRemote()) {
  35. TileEntity tileEntity = worldIn.getTileEntity(pos);
  36.  
  37. if(!player.isCrouching()) {
  38. if (tileEntity instanceof ucplaneTile) {
  39. INamedContainerProvider containerProvider = createContainerProvider(worldIn, pos);
  40.  
  41. NetworkHooks.openGui(((ServerPlayerEntity) player), containerProvider, tileEntity.getPos());
  42. }else{
  43. throw new IllegalStateException("Our Container provider is missing...");
  44. }
  45. }else{
  46.  
  47. }
  48.  
  49. }
  50.  
  51. return ActionResultType.SUCCESS;
  52. }
  53.  
  54. private INamedContainerProvider createContainerProvider(World worldIn, BlockPos pos) {
  55. return new INamedContainerProvider() {
  56. @Override
  57. public ITextComponent getDisplayName() {
  58. return new TranslationTextComponent("screen.paradiselostaddditions.ucplane");
  59. }
  60.  
  61. @Nullable
  62. @Override
  63. public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity playerEntity) {
  64. return new ucplaneContainer(i, worldIn, pos, playerInventory, playerEntity);
  65. }
  66. };
  67. }
  68.  
  69. @Nullable
  70. @Override
  71. public TileEntity createTileEntity(BlockState state, IBlockReader world) {
  72. return ModTileEntities.UCPLANETILE.get().create();
  73. }
  74.  
  75. @Override
  76. public boolean hasTileEntity(BlockState state) {
  77. return true;
  78. }
  79. }
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement