NuclearCraft

NuclearCraft

31M Downloads

[Suggestion] Radiation should affect the world more

ElectroBot opened this issue ยท 9 comments

commented
  • trees should lose leaf blocks (higher chance the higher the level)
  • grass should turn into wasteland earth or a dirt version of it (higher chance the higher the level)
  • animals should burn/die and so should mobs if the level is high enough
  • drying up water would be nice, but probably cause too much block changes (maybe a default off option)
  • also would it be possible to have IC2 reactors emit radiation (while running and when they explode)?

Thanks

commented

Ah, I did not know about the reactor interface! Radiation support for IC2 reactors has been added :)

commented

I did consider things like this, and may add world effects in the future. I will most likely think about it more carefully when I get round to adding content to the wasteland and adding nuclear weapons, but both those things are low priority right now.

Although the trees and terrain are not effected, animals will already be hurt by high levels of radiation, and mobs will actually be buffed.

Finally, I can't add that sort of thing to IC2 reactors, unfortunately.

commented

What would the IC2 support need that you otherwise can't do? I can add a submodule within IC2 to do it (if it is explained of course) or see if what you need can get exposed via the reactor API.

commented

I was thinking thematically to go along with what Nuclear Craft already does. I suppose it can go along relatively to IC2's own heat generation, although that might pose a problem for when a reactor has fuel but it is turned off.
Even with a WorldTickEvent you'd have to go looking for reactors in the loaded tile entity list, which unless you're already iterating could be quite slow if the world was big (such as a server overworld). IC2 in comparison could attach onto the end of reactors ticking directly, so it would at least save the iterating. If you are iterating it periodically already there probably wouldn't be too much of a difference however.

commented

I'm not looking for any particular tiles - if I find one and it can produce radiation, I update the chunk it's in with the info about how much radiation it is producing. But yes, the iteration is already happening :)

commented

Maybe it is possible and I just don't know enough about how it would be implemented, but the IC2 reactor tile entity would need to be given the NC 'radiation source' capability and the mechanics of the reactor would need to be modified to update it. I'm not sure what the reactor API is, but if it can't be used to directly effect the reactor tile's update loop, it might be tricky.

commented

If it's based on the reactor's contents then it would make sense to add it IC2's side to save needing tick handlers watching for reactors. Does the capability just need updating to reflect the current radioactive contents, or does it also depend on other factors such as heat/depletion?

commented

It can depend on anything - contents, configuration, whatever. I have a WorldTickEvent which occasionally just reads the radiation level of loaded tile entities with the capability.

commented

If you're already iterating it then I suppose the decision is up to you whether you'd rather implement it your side looking for ic2.api.reactor.IReactor instances whilst looking for radiation producing tiles, then probably calling getReactorEnergyOutput() for the effective fuel value to calculate a radiation value from, or leaving it for IC2 to implement your capability itself. From the sounds of things both options should be possible, down to if you want to do the compat or not.