Baystation12/Baystation12 — pull request #5761 by Zuhayr (2014-07-25 13:42:54+00:00)
Title: Hydroponics rewrite.

Thread is here: http://baystation12.net/forums/viewtopic.php?f=5&t=10921

This is a near-total Hydroponics rewrite. It isn't finished but it covers the functionality currently existing on the server and more.

COMPLETED FEATURES
------------------

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 independantly 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).
- Bioluminescent plants and vines are both possible.

SPACE VINES
- Space vines are now plantsegments pathwise 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 testing.
- EVERYTHING needs testing, I've done a ton locally but it badly needs a shakedown.

TO BE DONE
----------
Add seed line naming/labelling to extractor.
Generalize wall rot/glowshroom spread systems and allow arbitrary seeds to use them.
Generalize vine and mold icons for all plants to use.
Implement the capacity for plants to cool/heat their room and exude or consume gasses.
Expand mutation proc to cover other potentialities as well as traits.
Update all seed datums to have all features of pre-revamp plants they represent.
Update all mushrooms and weeds to consume or not consume water/nutrients as required.
General time/numbers rebalancing, this will probably need to wait for dev for decent data.