Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. private void renderMissing(PlayerEntity player, ItemStack stack, IBuildView view, RenderSorter sorter) {
  2. int energyCost = ((GadgetCopyPaste) stack.getItem()).getEnergyCost(stack);
  3. IItemIndex index = InventoryHelper.index(stack, player);
  4. boolean overwrite = Config.GENERAL.allowOverwriteBlocks.get();
  5. BlockItemUseContext useContext = new BlockItemUseContext(new ItemUseContext(player, Hand.MAIN_HAND, VectorHelper.getLookingAt(player, stack)));
  6. InvertedPlacementEvaluator evaluator = new InvertedPlacementEvaluator(
  7. sorter.getOrderedTargets(),
  8. new PlacementChecker(
  9. stack.getCapability(CapabilityEnergy.ENERGY).map(SimulateEnergyStorage::new),
  10. t -> energyCost,
  11. index,
  12. (c, t) -> overwrite ? c.getWorld().getBlockState(t.getPos()).isReplaceable(useContext) : c.getWorld().isAirBlock(t.getPos()),
  13. false),
  14. view.getContext());
  15. //GL14.glBlendColor(1F, 1F, 1F, 0.35f); //Set the alpha of the blocks we are rendering
  16. //GlStateManager.alphaFunc(GL11.GL_GREATER, 0.0001F);
  17. BufferBuilder bufferBuilder = Tessellator.getInstance().getBuffer();
  18. GlStateManager.disableTexture();
  19. GlStateManager.depthMask(false);
  20. bufferBuilder.begin(GL14.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
  21. BlockState redGlass = Blocks.RED_STAINED_GLASS.getDefaultState();
  22. Random rand = new Random();
  23. for (PlacementTarget target : evaluator) { //Now run through the UNSORTED list of coords, to show which blocks won't place if you don't have enough of them.
  24. GlStateManager.pushMatrix();//Push matrix again just because
  25. BlockPos pos = target.getPos();
  26. /*GlStateManager.translatef(pos.getX(), pos.getY(), pos.getZ());//Now move the render position to the coordinates we want to render at
  27. GlStateManager.rotatef(- 90.0F, 0.0F, 1.0F, 0.0F); //Rotate it because i'm not sure why but we need to
  28. GlStateManager.translatef(- 0.005f, - 0.005f, 0.005f);*/
  29. //GlStateManager.scalef(1.01f, 1.01f, 1.01f);
  30. renderBox(bufferBuilder, pos);
  31. //getMc().getBlockRendererDispatcher().renderBlock(redGlass, pos, player.world, bufferBuilder, rand, EmptyModelData.INSTANCE);
  32. //getMc().getBlockRendererDispatcher().renderBlockBrightness(Blocks.RED_STAINED_GLASS.getDefaultState(), 1f);
  33. //Move the render position back to where it was
  34. GlStateManager.popMatrix();
  35. }
  36. Tessellator.getInstance().draw();
  37. GlStateManager.depthMask(true);
  38. GlStateManager.enableTexture();
  39. }
  40.  
  41. private void renderBox(BufferBuilder bufferBuilder, BlockPos pos) {
  42. float red = 1;
  43. float green = 0;
  44. float blue = 0;
  45. float alpha = 0.5f;
  46. double x = pos.getX()-0.001;
  47. double y = pos.getY()-0.001;
  48. double z = pos.getZ()-0.001;
  49. double xEnd = pos.getX()+1.001;
  50. double yEnd = pos.getY()+1.001;
  51. double zEnd = pos.getZ()+1.001;
  52. //front-side
  53. bufferBuilder.pos(x, y, z).color(red, green, blue, alpha).endVertex();
  54. bufferBuilder.pos(xEnd, y, z).color(red, green, blue, alpha).endVertex();
  55. bufferBuilder.pos(xEnd, yEnd, z).color(red, green, blue, alpha).endVertex();
  56. bufferBuilder.pos(x, yEnd, z).color(red, green, blue, alpha).endVertex();
  57. //left-side
  58. bufferBuilder.pos(x, y, z).color(red, green, blue, alpha).endVertex();
  59. bufferBuilder.pos(x, y, zEnd).color(red, green, blue, alpha).endVertex();
  60. bufferBuilder.pos(x, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  61. bufferBuilder.pos(x, yEnd, z).color(red, green, blue, alpha).endVertex();
  62. //bottom
  63. bufferBuilder.pos(x, y, z).color(red, green, blue, alpha).endVertex();
  64. bufferBuilder.pos(xEnd, y, z).color(red, green, blue, alpha).endVertex();
  65. bufferBuilder.pos(xEnd, y, zEnd).color(red, green, blue, alpha).endVertex();
  66. bufferBuilder.pos(x, y, zEnd).color(red, green, blue, alpha).endVertex();
  67. //top
  68. bufferBuilder.pos(xEnd, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  69. bufferBuilder.pos(xEnd, yEnd, z).color(red, green, blue, alpha).endVertex();
  70. bufferBuilder.pos(x, yEnd, z).color(red, green, blue, alpha).endVertex();
  71. bufferBuilder.pos(x, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  72. //right-side
  73. bufferBuilder.pos(xEnd, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  74. bufferBuilder.pos(xEnd, yEnd, z).color(red, green, blue, alpha).endVertex();
  75. bufferBuilder.pos(xEnd, y, z).color(red, green, blue, alpha).endVertex();
  76. bufferBuilder.pos(xEnd, y, zEnd).color(red, green, blue, alpha).endVertex();
  77. //back-side
  78. bufferBuilder.pos(xEnd, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  79. bufferBuilder.pos(x, yEnd, zEnd).color(red, green, blue, alpha).endVertex();
  80. bufferBuilder.pos(x, y, zEnd).color(red, green, blue, alpha).endVertex();
  81. bufferBuilder.pos(xEnd, y, zEnd).color(red, green, blue, alpha).endVertex();
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement