Posted September 22, 20159 yr So, as an experiment I thought I'd try to make the most basic possible rendering Tile Entity. It took a bit to get error free (for whatever reason blockAccess was never set in the RenderBlocks no matter what I gave to the constructor), but even now that it is it doesn't actually seem to render anything... For info: TEBase most only consists of a method to split the updateEntity method into a server and client version. public class TEBox extends TEBase{ private RenderBlocks renderer = new RenderBlocks(); @Override void updateClient(World world, int x, int y, int z) { renderer.blockAccess = world; renderer.renderBlockAllFaces(Blocks.glass, x, y, z); } } Is there anyone who can see anything blatantly wrong here, or otherwise correct my course to what I should be doing instead? If anyone has a comprehensive, visual guide to GUIs - don't hesitate to message me. They make my head spin.
September 22, 20159 yr You should not render your tileentity on updateEntity. (Even on clientside) Just use TileEntitySpecialRenderer for that. I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP) II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.
September 22, 20159 yr Author But I thought TESR was still called on update? This code would otherwise work on a TESR extension? EDIT: After moving the code over to a TESR extension AND registering (I confirm through the log that the code runs), it is still invisible.... Current code block: public class RenderBox extends TileEntitySpecialRenderer{ private RenderBlocks renderer = new RenderBlocks(); @Override public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { LogHelper.info("RENDERING BOX!"); renderer.blockAccess = tileentity.getWorldObj(); renderer.renderBlockAllFaces(Blocks.glass, (int)x, (int)y, (int)z); } } If anyone has a comprehensive, visual guide to GUIs - don't hesitate to message me. They make my head spin.
September 22, 20159 yr x, y, z is just the entity's relative position.. You should get the position from the tileentity. & you cannot just use 'renderBlockAllFaces' in TESR. There are plenty of tutorials there, find and follow them. I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP) II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.
September 22, 20159 yr Author Uhm, okay. I got that last bit. Makes sense. Rendering != Logic. I've been looking for tutorials, but they all go into much more complicated things, while all I want to do is render a block! They also all directly seem to call out the opengl library without much explanation of what any of the calls actually mean. ...Maybe I'm trying to do too much... Apologies if I'm trying anyone's patience too much. If anyone has a comprehensive, visual guide to GUIs - don't hesitate to message me. They make my head spin.
September 22, 20159 yr Author I managed to figure it out through ISimpleBlockRenderingHandler instead of TESR. Still, thanks for the pointers. Sure to be useful in the future. EDIT: Now I try to only have it render in pass 1 (I applied a semi-translucent texture), and it goes invisible again... in random chunks? It's perfectly visible and transparent in others... Is there any known behavior that makes render pass 1 skip certain chunks? EDIT 2: placing ice or any other 'natural' block that renders in pass 1 in the same chunk makes all my blocks visible too... Is there somesort of trigger I've missed? EDIT 3: turns out I was using the entirely wrong method to set the render pass: canRenderInPass instead of getRenderBlockPass. All good now! If anyone has a comprehensive, visual guide to GUIs - don't hesitate to message me. They make my head spin.
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.