prepare("SELECT name from mm_mobs where name = ?"); $query->execute([$name]) or die("unable to check if mob exists"); if ($query->rowCount() == 0) { $query = $pdo->prepare("INSERT INTO mm_mobs (name, image) VALUES (?, ?)"); $query->execute([$name, $filename]) or die("unable to add new mob"); echo " added\n"; } else { $query = $pdo->prepare("UPDATE mm_mobs SET image = ? WHERE name = ?"); $query->execute([$filename, $name]) or die("unable to update mob"); echo " updated\n"; } } function getSpawnEggsImages(): array { $wikiPage = handleWikiRequest("titles=Spawn_Egg&prop=revisions&rvprop=content"); $wikiText = getWikiTextFromResponse($wikiPage); [, $iconSection] = explode("=== Icons ===", $wikiText); [$iconSection, ] = explode("===", $iconSection); $matches = []; preg_match_all("/([a-zA-Z0-9_ -]+.png)/", $iconSection, $matches); return array_filter( array_map( fn ($image) => [ "name" => trim( str_replace("Spawn Egg.png", "", $image) ) ?: "Spawn Egg", "image" => getImageUrlFromName($image) ], array_filter( array_unique($matches[1]), fn($image) => !str_contains($image, "BE") ) ), fn ($image) => !!$image["image"] ); } function makeChimera(array $left, array $right, string $path): string { $imageLeft = new Imagick(IMAGE_BASE_PATH . $path . "/" . $left["filename"]); $imageRight = new Imagick(IMAGE_BASE_PATH . $path . "/" . $right["filename"]); $height = min($imageLeft->getImageHeight(), $imageRight->getImageHeight()); $imageLeft->resizeImage(0, $height, Imagick::FILTER_LANCZOS, 1); $imageLeft->cropImage($height / 2, $height, 0, 0); $imageRight->resizeImage(0, $height, Imagick::FILTER_LANCZOS, 1); $imageRight->cropImage($height / 2, $height, $height / 2, 0); $chimera = new Imagick(); $chimera->newImage($height, $height, new ImagickPixel("transparent")); $chimera->compositeImage($imageLeft, Imagick::COMPOSITE_DEFAULT, 0, 0); $chimera->compositeImage($imageRight, Imagick::COMPOSITE_DEFAULT, $height / 2, 0); $name = strtolower(str_replace(" ", "_", $left["name"] . " " . $right["name"] . ".png")); $chimera->setImageFormat('png'); $chimera->writeImage(IMAGE_BASE_PATH . $path . "/chimera/" . $name); $chimera->destroy(); return $name; }