Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

shoot the task ti another thread and handle everything from there 

 

hint: Thread.sleep(500); wont do anything for 500ms

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

why the hell not, it works

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

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 ....

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

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

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

object oriented programming, a term probably as common as LOL in the programming world

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

every time your tickhandler ticks ... create a new block of the structure

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

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.

If you guys dont get it.. then well ya.. try harder...

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?

If you guys dont get it.. then well ya.. try harder...

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?

If you guys dont get it.. then well ya.. try harder...

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?

 

If you guys dont get it.. then well ya.. try harder...

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.