Posted August 2, 20169 yr I need to do some OpenGL stuff in one of my packets (rendering items/blocks and saving them to files) but the OpenGL calls fail because there's no opengl thing associated with the thread, so I need to do this stuff on the main thread. I know you have to schedule an object through the World object or something but I'm not sure how to actually do it. I like trains.
August 2, 20169 yr First you should probably update to 1.10, and what do you mean you need to do OpenGL stuff in packets? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr Author I plan to update to 1.10.2. My mod exports item, recipe and mod information to JSON files to be used by a web application which also uses the item/blocks' icons to make it easier to tell what it is you're choosing which I use some OpenGL for. The recipes are collected server-side and then sent to the client. When this is done the server sends a recipe list completion packet then the client exports item, block and mod info then renders all the icons and saves them to files. I like trains.
August 2, 20169 yr Where is this rendering happening in a gui? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr In Minecraft you can't render in a packet what you will need to do is open a gui and do the rendering in there, how are you sending this packet? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr Author I'm sending the packet via a SimpleNetworkWrapper object. Originally my mod was to be all client side and it was working fine, the items and blocks were being rendered without a GUI but when I tried to add IndustrialCraft 2 support, none of its machine recipes were available so I'm making my mod require a server component to accurately get all the recipes. I like trains.
August 2, 20169 yr Where are you trying to render these? On the screen after you have dumped all the crafting recipes to their respective JSONs? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr This page explains how to schedule a task on the main thread from an IMessageHandler using IThreadListener . Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
August 2, 20169 yr Also in the code you gave I saw nothing about the packet system... VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr Author Yeah because I haven't pushed any code that uses the packet system to my github because I have a jenkins server that autocompiles whenever I do a push and I didn't want people to download builds that would compile but not run. I like trains.
August 2, 20169 yr Ah so I'm pretty sure if you did need access to the Main Thread what Choonster said should get you there. Have fun come back if something happens. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
August 2, 20169 yr I am just here to say how to do it properly: Use packets to send whatever you need from server to client thread. On client-netty thread schedule task to client thread (link Choonster gave). On client thread (runnable) pass some things to some List (so for example - add list of ItemStacks to static client-sided PriorityQueue). Use RenderGameOverlayEvent to render ItemStacks from queue on screen. Use ClientTickEvent to remove items from PriorityQueue (so it will be like items show up and disappear after few ticks). Note: I have no idea what is your exact goal so I just gave example on how to generally do this stuff. P.S: Most of this stuff requires more notes (important) that were not included - that later. P.S 2: If you EVER touch OpenGL from outside of rendering events or Gui classes - you are doing it wrong. 1.7.10 is no longer supported by forge, you are on your own.
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.