3 namespace Domain\Entities\StepMania
;
6 use Domain\Entities\StepMania\ISimfile
;
7 use Domain\Entities\IUser
;
8 use Domain\Entities\IFile
;
9 use Domain\Entities\StepMania\IPack
;
10 use Domain\Entities\AbstractEntity
;
12 class Pack
extends AbstractEntity
implements IPack
20 public function __construct(
27 $this->_title
= $title;
28 $this->_uploader
= $uploader;
29 $this->_banner
= $banner;
32 foreach($simfiles as $simfile) {
33 if(!$simfile instanceof ISimfile
) {
34 throw new Exception('Invalid Simfile array. All elements must be an instance of ISimfile.');
38 $this->_simfiles
= $simfiles;
41 public function getContributors() {
42 $contributors = array();
43 foreach($this->_simfiles
as $simfile)
45 /* @var $simfile \Domain\Entities\StepMania\Simfile */
46 $contributors = array_unique(
47 array_merge($contributors, $this->getAllStepArtistsFromSimfile($simfile))
54 public function getFile()
59 public function getSimfiles()
61 return $this->_simfiles
;
64 public function getTitle()
69 public function getUploader()
71 return $this->_uploader
;
74 public function getBanner()
76 return $this->_banner
;
79 private function getAllStepArtistsFromSimfile(ISimfile
$simfile)
82 foreach($simfile->getSteps() as $steps)
84 /* @var $steps \Domain\VOs\StepMania\StepChart */
85 if($steps->getArtist()->getTag() && !in_array($steps->getArtist()->getTag(), $artists)) $artists[] = $steps->getArtist()->getTag();