'); echo ('
'); if(isset($_REQUEST['gameParams']['levelUid'])) { if(intval($_REQUEST['gameParams']['levelUid']) < 1000) echo ' '; else echo ' '; } else echo (' '); echo '
'; echo '
'; echo ''; } // Creates and returns a new level id else if($_REQUEST['tx_eoapombeargames_pi1']['action'] == 'createWorldBuilderLevel') { header('Content-Type: application/json'); header('Expires: 0'); header('Cache-Control: must-revalidate'); $weltenDateien = scandir("./welten"); $weltenUser = []; $weltenAll = []; // DEBUG echo 'Welten:
'; print_r($weltenDateien); echo '
'; foreach($weltenDateien as $datei) { $dprefix = explode('_', $datei); if(count($dprefix) == 2 && $dprefix[0] == 'level') { $dsuffix = explode('.', $dprefix[1]); if(count($dsuffix) == 2 && $dsuffix[1] == 'json') { $levelNum = intval($dsuffix[0]); if($levelNum > 200 && $levelNum < 1000) array_push($weltenAll, $levelNum); else if($levelNum > 1000) array_push($weltenUser, $levelNum); else echo ('Malformed level number ' . $levelNum . '!'); } } } $freieID = 1000 + count($weltenUser); if(file_exists("./welten/level_" . $freieID . ".json")) { if(file_exists("./welten/level_" . $freieID + 1 . ".json")) echo '{"status":"failed"}'; else { saveFile($freieID + 1); echo '{"status":"success","levelUid":' . $freieID + 1 . '}'; } } else { saveFile($freieID); echo '{"status":"success","levelUid":' . $freieID . '}'; } } // Loads a specific level by ID. (Public levels start with the id 231 and so on, user levels with 1000...?) else if($_REQUEST['tx_eoapombeargames_pi1']['action'] == 'getWorldBuilderLevel') { $levelName = "./welten/level_" . $_REQUEST['tx_eoapombeargames_pi1']['levelUid'] . ".json"; if(file_exists($levelName)) { header('Content-Type: application/json'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Content-Length: ' . filesize($levelName)); readfile($levelName); } else { http_response_code(404); echo ('404 while loading level: ' . $levelName . ''); } } // Called by the editor to save a level as JSON else if($_REQUEST['tx_eoapombeargames_pi1']['action'] == 'updateWorldBuilderLevel') { echo $levelName . ', Bytes written: ' . saveFile($_REQUEST['tx_eoapombeargames_pi1']['levelUid'] . ''); } else { echo 'Dont know how to handle:
';
    print_r($_REQUEST);
    echo '
'; //echo('Dont know how to handle: ' . var_dump($_REQUEST)); error_log('Dont know how to handle: ' . $_REQUEST); } function saveFile($levelUID) { $levelName = "./welten/level_" . $levelUID . ".json"; if(isset($_REQUEST['tx_eoapombeargames_pi1']['json'])) { $levelResponse->json = json_decode($_REQUEST['tx_eoapombeargames_pi1']['json']); $levelResponse->title = $levelResponse->json->meta->name; return file_put_contents($levelName, json_encode($levelResponse)); } } ?>