예제 #1
0
	public function saveMapAction() {
		$this->setParam('post', $_POST);
		$this->setParam('mapData', $_POST['mapData']);
		foreach ($_POST as $key => $value) {
			$this->setParam($key, $value);
		}
		$mapData = $this->frontController->getParam('mapData', false);
		if ($mapData) {
			$mapData = json_decode($mapData, true);
			$mapData['extend'] = 'Redokes.map.MapData';
			foreach($mapData as $key => &$value) {
				if (is_numeric($value)) {
					$value = intval($value);
				}
			}
			
			$mapDir = PUBLIC_PATH . 'js/redokes/src/map/data/';
			$mapPath = $mapDir . $mapData['fileName'] . '.js';
			
			$mapDataTemplate = new Redokes_View_Template();
			$mapDataTemplate->html = "Ext.define('Redokes.map.data.{fileName}',{data})";
			$mapDataTemplate->setValues(array(
				'fileName' => $mapData['fileName'],
				'data' => json_encode($mapData)
			));
			
			$mapDataStr = $mapDataTemplate->render();
			file_put_contents($mapPath, $mapDataStr);
//			chmod($mapPath, 0777);
		}
	}
예제 #2
0
	public function createAction() {
		$this->setParam('post', $_POST);
		$title = $this->frontController->getParam('title', false);
		if ($title) {
			$safeTitle = preg_replace('/[^a-z\d]/i', '', $title);
			$mapFile = $this->getMapsDir() . $safeTitle . '.js';
			if (is_file($mapFile)) {
				$this->addError('Map already exists');
			}
			else {
				// Build map object
				$mapData = array(
					'title' => $title,
					'fileName' => $safeTitle,
					'numLayers' => 3,
					'width' => 1,
					'height' => 1,
					'tileSize' => 32,
					'tileData' => false,
					'tileSheet' => '/modules/wes/img/sprites/maps/jidoor/sheet.png',
					'spawnX' => 0,
					'spawnY' => 0,
					'spawnLayer' => 0,
					'music' => false,
					'extend' => 'Redokes.map.MapData'
				);

				$mapDataTemplate = new Redokes_View_Template();
				$mapDataTemplate->html = "Ext.define('Redokes.map.data.{fileName}',{data})";
				$mapDataTemplate->setValues(array(
					'fileName' => $mapData['fileName'],
					'data' => json_encode($mapData)
				));

				$mapDataStr = $mapDataTemplate->render();
				file_put_contents($mapFile, $mapDataStr);
			}


			$this->setParam('safeTitle', $safeTitle);
		}
	}