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

Hi,

 

I am trying to use the CoFH RedstoneFlux API to get my machine blocks powered (https://github.com/CoFH/RedstoneFlux-API). I did just put the files into /src/api/java/cofh/api/energy/*, hope this is correct.

 

I implemented IEnergyReceiver on my machine blocks TileEntity but the only method ever getting called is "boolean canConnectEnergy(ForgeDirection from)" if I place a cable nearby. Do I have to register the block somehow to actually receive energy?

 

Thanks

No, you have to actually start using the energy, and only allowing the block to function if you have enough energy!

For one, you need an EnergyStorage. Think of it like the code representation of the machines internal buffer, because it is! you'll also want a couple functions.

getMaxEnergyStored() - How much energy your buffer can hold. I have two, the public overwritten one, and a protected one, I use for initializing the storage

constructer - don't forget to intitalize the storage! It takes one parameter, the max storage

receiveEnergy() - just call storage.receiveEnergy()

extractEnergy() - see above

getEnergyStored() - see above

updateEntity() - or wherever you're handling the functions of the machine. Add in an extra if.

 

if(storage.extractEnergy(500, true))
{
   storage.extractEnergy(500, false);
   ...
}

 

extractEnergy takes two params, the amount, and whether it's a simulation, basically are we checking if we can extract that much. You could also see if getEnergyStored is greater than or equal to your amount, but this is simpler.

500 is the amount, you can change that.

Have fun!

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

  • Author

You mean I need to implement IEnergyStorage instead of IEnergyReceiver or do I need both?

Oh silly child.

     EnergyStorage storage;

 

I mean you need to create an EnergyStorage in your IEnergyReceiver

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

  • Author

Ok now I am slightly confused, you mean I should use a EnergyStorage internally to store the power?

 

But which interface is the correct one to actually receive power on my TileEntity? With IEnergyReceiver the only event I ever got is canConnectEnergy if some cable is placed beside it.

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.