# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit desktop xdg HOMEPAGE="https://github.com/ShadowMario/FNF-PsychEngine" DESCRIPTION="Engine originally used on Mind Games mod" SRC_URI="https://github.com/ShadowMario/FNF-PsychEngine/releases/download/${PV}/PsychEngine-Linux.zip -> ${P}.zip" S="${WORKDIR}" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64" BDEPEND="app-arch/unzip" RDEPEND=" media-libs/alsa-lib media-libs/mesa sys-apps/util-linux x11-libs/libX11 =media-video/vlc-3.0.23-r1* " src_install() { insinto /opt/psych-engine doins -r * fperms +x /opt/psych-engine/PsychEngine cat <<'EOF' > "${T}/psych-engine" #!/usr/bin/env bash REAL_USER="${SUDO_USER:-$USER}" USER_HOME=$(getent passwd "$REAL_USER" | cut -d: -f6) DATA_DIR="${USER_HOME}/.local/share/psych-engine" mkdir -p "${DATA_DIR}" if [ "$(stat -c '%U' "${DATA_DIR}" 2>/dev/null)" = "root" ]; then chown -R "$REAL_USER:$REAL_USER" "${DATA_DIR}" fi if [[ ! -f "${DATA_DIR}/modsList.txt" ]]; then if [[ -f "/opt/psych-engine/modsList.txt" ]]; then cp "/opt/psych-engine/modsList.txt" "${DATA_DIR}/modsList.txt" else touch "${DATA_DIR}/modsList.txt" fi fi if [[ ! -d "${DATA_DIR}/mods" ]]; then mkdir -p "${DATA_DIR}/mods" if [[ -d "/opt/psych-engine/mods" && -n "$(ls -A "/opt/psych-engine/mods" 2>/dev/null)" ]]; then cp -r "/opt/psych-engine/mods/." "${DATA_DIR}/mods/" fi fi if [[ ! -d "${DATA_DIR}/plugins" ]]; then mkdir -p "${DATA_DIR}/plugins" if [[ -d "/opt/psych-engine/plugins" && -n "$(ls -A "/opt/psych-engine/plugins" 2>/dev/null)" ]]; then cp -r "/opt/psych-engine/plugins/." "${DATA_DIR}/plugins/" fi fi for item in /opt/psych-engine/*; do base=$(basename "${item}") case "${base}" in mods|plugins|modsList.txt|icon.png) ;; *) if [[ ! -e "${DATA_DIR}/${base}" ]]; then ln -s "${item}" "${DATA_DIR}/${base}" fi ;; esac done cd "${DATA_DIR}" || exit 1 exec ./PsychEngine "$@" EOF dobin "${T}/psych-engine" if [[ -n "${icon_file}" ]]; then make_desktop_entry psych-engine "FNF: Psych Engine" psych-engine "Game;" else make_desktop_entry psych-engine "FNF: Psych Engine" application-games "Game;" fi } pkg_postinst() { xdg_pkg_postinst elog "Psych Engine's main folder should be located in" elog " '~/.local/share' folder!" }