public function terrainInit(CouchService $cs, WargameService $ws, $game = "MartianCivilWar", $arg = false, $terrainDocId = false) { $user = Auth::user()['name']; $battle = Battle::battleFromName($game, $arg); if (method_exists($battle, 'terrainGen')) { $cs->setDb("rest"); $terrainDoc = $cs->get($terrainDocId); $mapId = $terrainDoc->hexStr->map; $mapDoc = $cs->get($mapId); $battle->terrainGen($mapDoc, $terrainDoc); } else { echo "No TerrainGen "; return; } $mapUrl = $battle->terrain->mapUrl; $mapWidth = $battle->terrain->mapWidth; if ($mapWidth && $mapWidth !== "auto") { $mapWidth = preg_replace("/[^\\d]*(\\d*)[^\\d]*/", "\$1", $mapWidth); $battle->terrain->mapUrl = $ws->resizeImage($mapUrl, $mapWidth, "images"); if (!empty($mapDoc->map->trueRows)) { $ws->rotateImage($battle->terrain->mapUrl, "images"); } } $battle->terrain->smallMapUrl = $ws->resizeImage($mapUrl); // $this->rotateImage($mapUrl); $battle->terrainName = false; $wargameDoc = $battle->save(); $terrainName = "terrain-{$game}"; $ws->saveTerrainDoc(urldecode($terrainName . "." . $arg), $battle); if (!empty($mapDoc->map->isDefault)) { $ws->saveTerrainDoc(urldecode($terrainName), $battle); } $ret = new \stdClass(); $ret->ok = true; return response()->json($ret); }