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

Posted

I am trying to make a block that will need to do some work every second. Reading tutorials on the web seem to indicate that I should call setTickRandom(true) and then I'll get a random tick. First that doesn't seem to work. My updateTick() is never called and secondly I don't really like random.

 

Other sources say I should call        world.scheduleBlockUpdate(x, y, z, this, tickRate(world)); after placing the block (onBlockAdded) and then again every tick. Is that the way to go? I also want to ensure the block ticks as the world is loaded and the chunk it is in is loaded.

 

What are good recommendations for implementing this kind of functionality?

 

Thanks!

 

  • Author

Ok thanks that works. But now I'm doubting if that's actually what I want in this particular case. I'm making a block that monitors the amount of RF that is in another block (it will do more in the future but that's what it does now). So I want one side of the block to change texture depending on the capacity of another RF block. I already implemented Block.getIcon() so that the front of the block has a different texture but now I want that texture to change depending on the RF capacity of another block.

 

I'm not sure if getIcon() is called every frame. I suspect not. So I probably need to have my tile entity do this check and then somehow notify the client that this texture has to be changed. I suppose that the tile entity can use the metadata for this and then I have to update the block on the client side somehow?

 

Thanks,

  • Author

Well the other block doesn't belong to my mod. The purpose of my monitor is to monitor any other RF supporting block from all other mods that support RF.

 

Thanks for the info

  • Author

I got it to work but to my surprise I noticed that both the client side and server side version of my tile entity are ticking. And it seems that on the client side the energy RF state of the tile entity of the block I'm monitoring (in this case a thermal expansion machine) gets outdated after a while too. So now I do the updateEntity() of my tile entity only if world.isRemote is false (i.e. on the server) and it now works perfectly.

 

Thanks for the help.

Actually I would like to add that you don't really need a tile entity in this case. Or rather you could just use the one next to you.

Setting textures is as simple as setting metadata and reflecting that, as diesieben07 pointed out. Basically a tile entity update is somewhat equivalent of a block update except it uses other methods. Now I do not know how well this will work with blocks using RF.

I haven't got the API setup for that so I can't test it but try the following method.

 

  @Override
  public void onNeighborTileChange(World world, int x, int y, int z, int tileX, int tileY, int tileZ)
  {
    	
  }

 

Example:

A block with this method next to a furnace will pickup when things are inputted or outputted and when an item is done cooking.

The question here remains obviously how often a RF machine outputs a Tile entity update.

 

And halving the number of tile entities is always a good idea.

 

I'm somewhat curious how well this would work.

  • Author

Well I need a tile entity here because I need somewhere to remember which block my monitor will monitor. Additionally my monitor block doesn't have to be directly adjacent to the block it is monitoring. When you use it you get a GUI where you can select the block you want to monitor from all nearby blocks (currently that means all blocks in a 3x3x3 area centered around the monitor). Not sure if diagonals are considered as adjacent here?

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.