Posted June 25, 201510 yr 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
June 25, 201510 yr 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]
June 25, 201510 yr Author You mean I need to implement IEnergyStorage instead of IEnergyReceiver or do I need both?
June 25, 201510 yr 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]
June 25, 201510 yr 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.