mrkirby153 Posted August 21, 2013 Share Posted August 21, 2013 How would I add a delay between something? I have a class that builds a house and I would like to add a 1/2 second delay between each block placement Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
hydroflame Posted August 21, 2013 Share Posted August 21, 2013 shoot the task ti another thread and handle everything from there hint: Thread.sleep(500); wont do anything for 500ms Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
hydroflame Posted August 21, 2013 Share Posted August 21, 2013 why the hell not, it works Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
hydroflame Posted August 21, 2013 Share Posted August 21, 2013 the only i could see why it would fail is because of ssp when a player switch dimention. but if that happens just make a playertracker and send the message to the thread and ask it to finish all at once. i guess scheduledtickhandler could be more "safe" but my during my test i wasn't able to make it blow up with another thread .... Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
hydroflame Posted August 21, 2013 Share Posted August 21, 2013 heu .. the method that buidl the structure wouldnt be public pseudo code of what i did: public class StructurebuilderThread extends Thread{ private ConcurrentLinkedQueue<BuildTask> tasks = new ConcurrentLinkedQueue<BuildTask>(); public void addBuildTask(World world, int x, int y, int z){ tasks.add(new BuildMyStructure(world, x, y, z)); } public void run(){ while(true){ if(there is a task in queue){ executeTask(tasks.poll()); } } } private void executeTask(BuildTask task){ //actual building here } } anyway op, diesieben is right you should use ScheduledTickHandler Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 How would I implement a tickhandler into https://github.com/mrkirby153/MscHouses/blob/master/common/mrkirby153/MscHouses/generation/HouseGen.java between the world.setBlock() Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 May I please have an example? I'm a visual learner when it comes to code Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 22, 2013 Share Posted August 22, 2013 How proficient are you with OOP? Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 What's OOP? Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 22, 2013 Share Posted August 22, 2013 What's OOP? It's time to go back to school mate Either: courses.vswe.se or http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111 Free courses which you need! Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 Actually, I was talking about the acronym. What does OOP mean? Ive never heard the acronym Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
hydroflame Posted August 22, 2013 Share Posted August 22, 2013 object oriented programming, a term probably as common as LOL in the programming world Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 OH! I'm pretty proficient with OOP then Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 22, 2013 Author Share Posted August 22, 2013 I also created a Schedueld Tick Handler that "fires" a tick every .5 seconds. Maybe I can use that? Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
hydroflame Posted August 23, 2013 Share Posted August 23, 2013 sure Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 23, 2013 Author Share Posted August 23, 2013 But, I don't know how to! Also, in my tick handler, every 1/2 seconds it increases a variable and I have a method to reset the variable back to 0 Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
hydroflame Posted August 23, 2013 Share Posted August 23, 2013 every time your tickhandler ticks ... create a new block of the structure Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 23, 2013 Author Share Posted August 23, 2013 May I please have an example? Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 23, 2013 Share Posted August 23, 2013 Inside the tickHandler, when it ticks check if there are anything needing to get placed. Place one of the blocks and remove it from the list of things getting placed. done. Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 23, 2013 Author Share Posted August 23, 2013 May I have a CODE example? Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 24, 2013 Share Posted August 24, 2013 May I have a CODE example? I'm having problems writing a code example which shows you how to do it, without being the full solution to the problem aka. without being copy-> paste material. tbh. the above statments shouldn't be too hard to be put into pseudocode. If you are planning this and struggling to understand what diesieben and the others said above, maybe you should try laying it out in pseudocode and let us know what you have problems with understanding? Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 24, 2013 Author Share Posted August 24, 2013 Here's my pseudocode: set block at x, y, z to Stone reset tickCount wait until tickCount equals 1 set block at x, y+1, z to Grass But my problem is how to wait until tickCount is 1 Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 24, 2013 Share Posted August 24, 2013 Here's my pseudocode: set block at x, y, z to Stone reset tickCount wait until tickCount equals 1 set block at x, y+1, z to Grass But my problem is how to wait until tickCount is 1 The tick count must be inside the TickHandler not inside the TE. The TE could just initialize the process, then the tick handler does the rest? Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
mrkirby153 Posted August 24, 2013 Author Share Posted August 24, 2013 TickCount IS inside the TickHandler, I forgot to add that Quote http://i.imgur.com/gWwyMMO.jpg[/img] Link to comment Share on other sites More sharing options...
Mazetar Posted August 24, 2013 Share Posted August 24, 2013 TickCount IS inside the TickHandler, I forgot to add that Well there are way better ways, but you could loop trhough all the blocks, placing them one by one. Then break out of the loop after a set number of blocks (in this case 1) and then keep a track of where you where in the loop between ticks? Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
Recommended Posts
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.