void Awake()
{
_instance = this;
FileLoader fileLoader = new FileLoader();
_reactionsSets = new LinkedList<ReactionSet>();
_moleculesSets = new LinkedList<MoleculeSet>();
_mediums = new LinkedList<Medium>();
//TODO there is only one file in _moleculesFiles and in _reactionsFiles
foreach (string file in _reactionsFiles)
{
LinkedList<ReactionSet> lr = fileLoader.loadObjectsFromFile<ReactionSet>(file,"reactions");
if(null != lr)
LinkedListExtensions.AppendRange<ReactionSet>(_reactionsSets, lr);
}
foreach (string file in _moleculesFiles)
{
Logger.Log("ReactionEngine::Awake() loading molecules from file", Logger.Level.DEBUG);
LinkedList<MoleculeSet> lm = fileLoader.loadObjectsFromFile<MoleculeSet>(file,"molecules");
if(null != lm)
LinkedListExtensions.AppendRange<MoleculeSet>(_moleculesSets, lm);
Logger.Log("ReactionEngine::Awake() loading molecules from file done"
+": _moleculesSets="+Logger.ToString<MoleculeSet>(_moleculesSets)
, Logger.Level.DEBUG);
}
foreach (string file in _mediumsFiles)
{
LinkedList<Medium> lmed = fileLoader.loadObjectsFromFile<Medium>(file,"Medium");
if(null != lmed)
LinkedListExtensions.AppendRange<Medium>(_mediums, lmed);
}
foreach (Medium medium in _mediums)
{
medium.Init(_reactionsSets, _moleculesSets);
medium.enableSequential(enableSequential);
medium.enableNoise(enableNoise);
medium.enableEnergy(enableEnergy);
medium.enableShufflingReactionOrder = enableShufflingReactionOrder;
}
Logger.Log("ReactionEngine::Awake() FickReactions starting", Logger.Level.INFO);
_fick = new Fick();
_fick.loadFicksReactionsFromFiles(_fickFiles, _mediums);
Logger.Log("ReactionEngine::Awake() activeTransport starting", Logger.Level.INFO);
_activeTransport = new ActiveTransport();
_activeTransport.loadActiveTransportReactionsFromFiles(_activeTransportFiles, _mediums);
Logger.Log("ReactionEngine::Awake() done", Logger.Level.INFO);
}