Baystation12/Baystation12 — pull request #5757 by Zuhayr (2014-07-25 12:50:05+00:00)
Title: Hydroponics rewrite.

Alright! Putting this up for a merge now as I've reproduced all existing behavior and it's ready for testing so I can work all the kinks out and get the numbers looking good. This is a near-total rewrite of hydroponics.

HYDROPONICS
- Closed hydro trays are now possible, taking atmospherics from a portables connector beneath them.
- Lysis-isolation centrifuge and ballistic delivery system are in, allowing for gene modifications.
- The plant analyzer has been rewritten from the ground up to be more useful and immersive.

SEEDS AND PLANTS
- Seed/plant/product data is stored in a set of global seed datums.
- These datums can diverge to form new species and be manipulated via genetic engineering.
- These datums handle harvesting and mutating independently of hydroponics trays.
- Mutant species varieties are now handled in a modular way.
- Plants now have ideal heat, light and pressure values, as well as tolerances for differences.
- Plants can produce multiple different kinds of product.
- Reagent information is held in the datums rather than the product item.
- Arbitrary living products are now possible (current legit case is dionaea).
- Bio-luminescent plants and vines are both possible.

SPACE VINES
- Space vines are now plantsegments path-wise in view of future intentions to make them more general.
- Spawned event kudzu should be identical to the current master implementation as it has no seed datum and ignores all the new code.
- Space vines now make use of seed data if spawned with a reference and can be harvested from.
- Vines now cause physical damage if they are carnivorous, and inject reagents if their seed data includes them.
- Vines will die if they find themselves in area outside of their tolerance.

KNOWN BUGS
- Poppies have no growing icons.
- Analyzer needs testing.
- Mutation proc needs more testing.
- EVERYTHING needs testing, I've done a ton locally but it badly needs a shakedown.