void CartSupplier::send2City( BuildingPtr building, const Good::Type type, const int qty ) { computeWalkerDestination( building, type, qty ); GoodStore* storage = 0; if( building.is<Factory>() ) { storage = &building.as<Factory>()->getGoodStore(); } else if( building.is<Granary>() ) { storage = &building.as<Granary>()->getGoodStore(); } else if( building.is<Warehouse>() ) { storage = &building.as<Warehouse>()->getGoodStore(); } if( !isDeleted() && storage ) { _d->stock.setType( type ); _d->stock._maxQty = qty; _d->rcvReservationID = storage->reserveStorage( _d->stock ); _d->city->addWalker( WalkerPtr( this ) ); } }
void CartPusher::send2City() { computeWalkerDestination(); if( !isDeleted() ) Scenario::instance().getCity().addWalker( WalkerPtr( this ) ); }
void CartPusher::timeStep( const unsigned long time ) { if( (time % 22 == 1) && (_getPathway().getLength() < 2) ) { computeWalkerDestination(); } Walker::timeStep( time ); }
void MarketLady::send2City( MarketPtr market ) { computeWalkerDestination( market ); if( !isDeleted() ) { _d->city->addWalker( WalkerPtr( this ) ); } }
void CartPusher::send2City( BuildingPtr building, GoodStock& carry ) { _d->stock.append( carry ); setProducerBuilding( building ); computeWalkerDestination(); if( !isDeleted() ) { _getCity()->addWalker( this ); } }