3 namespace Domain\Entities\StepMania
;
5 use Domain\VOs\StepMania\IArtist
;
6 use Domain\VOs\StepMania\IBPM
;
7 use Domain\VOs\StepMania\IStepChart
;
8 use Domain\Exception\InvalidStepChartException
;
9 use Domain\Entities\StepMania\ISimfile
;
10 use Domain\Entities\StepMania\IPack
;
11 use Domain\Entities\IUser
;
12 use Domain\Entities\IFile
;
13 use Domain\Entities\AbstractEntity
;
15 class Simfile
extends AbstractEntity
implements ISimfile
21 private $_bpmChanges = false
;
22 private $_stops = false
;
23 private $_fgChanges = false
;
24 private $_bgChanges = false
;
30 public function __construct(
32 IArtist
$artist = null
,
40 IFile
$simfile = null
,
44 $this->_title
= $title;
45 $this->_artist
= $artist;
46 $this->_uploader
= $uploader;
48 $this->_bpmChanges
= $bpmChanges;
49 $this->_stops
= $stops;
50 $this->_fgChanges
= $fgChanges;
51 $this->_bgChanges
= $bgChanges;
52 $this->_banner
= $banner;
53 $this->_simfile
= $simfile;
54 $this->_packId
= $packId;
56 foreach($steps as $stepChart) {
57 if(!$stepChart instanceof IStepChart
) {
58 throw new InvalidStepChartException(sprintf('Invalid StepChart array. All array elements must be an instance of Stepchart.'));
62 $this->_steps
= $steps;
65 public function getTitle()
70 public function getArtist()
72 return $this->_artist
;
75 public function getUploader()
77 return $this->_uploader
;
80 public function getBPM()
85 public function hasBPMChanges()
87 return $this->_bpmChanges
;
90 public function hasStops()
95 public function hasFgChanges()
97 return $this->_fgChanges
;
100 public function hasBgChanges()
102 return $this->_bgChanges
;
105 public function addStepChart(IStepChart
$stepChart) {
106 $this->_steps
[] = $stepChart;
109 public function getBanner()
111 return $this->_banner
;
114 public function getSimfile()
116 return $this->_simfile
;
119 public function getSteps()
121 return $this->_steps
;
124 public function addToPack(IPack
$pack) {
125 $this->_packId
= $pack->getId();
128 public function getPackId()
130 return $this->_packId
;