예제 #1
0
        protected EatPattern(BreakDownHandler howBreakdown, BreakDownsHandler howBreakdowns, EatPatternConfig config)
        {
            _howBreakDown  = howBreakdown;
            _howBreakDowns = howBreakdowns;
            _config        = config;
            _rubbish       = new Rubbish();

            _stomach = new OneByOnePipeline(Digest);
            _enzyme  = new AutoResetPipeline(Breakdown);
            _lock    = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
            _outputElapsedStopwatch = new Stopwatch();

            _foods     = new Compounds <F>(config.MaxFoodStock, config.ReplaceMode, _rubbish);     //食物
            _nutrients = new Compounds <N>(config.MaxNutrientStock, config.ReplaceMode, _rubbish); //养分
            _delapyer  = new MediaDelayer();
        }
 protected SatietyPattern(BreakDownHandler howBreakDown, BreakDownsHandler howBreakDowns, SatietyPatternConfig config)
     : base(howBreakDown, howBreakDowns, config)
 {
     InitInputInterval(); //初始化输入养分的时间间隔
     InitOutputElapsed(); //初始化输出养分所运行的时间
 }
예제 #3
0
 public HungrySingle(BreakDownHandler howBreakDown, HungryPatternConfig config)
     : base(howBreakDown, null, config)
 {
 }
 public SatietySingle(BreakDownHandler howBreakDown, SatietyPatternConfig config)
     : base(howBreakDown, null, config)
 {
 }
예제 #5
0
 protected HungryPattern(BreakDownHandler howBreakDown, BreakDownsHandler howBreakDowns, HungryPatternConfig config)
     : base(howBreakDown, howBreakDowns, config)
 {
     _nutrientOutputInterval = config.NutrientOutputInterval;
 }