Noah Petherbridge
97e179716c
New category for the Doodad Dropper: "Technical" Technical doodads have a dashed outline and label for now, and they turn invisible on level start, and are for hidden technical effects on your level. The doodads include: * Goal Region: acts like an invisible Exit Flag (128x128), the level is won when the player character touches this region. * Fire Region: acts like a death barrier (128x128), kills the player when a generic "You have died!" message. * Power Source: on level start, acts like a switch and emits a power(true) signal to all linked doodads. Link it to your Electric Door for it to be open by default in your level! * Stall Player (250ms): The player is paused for a moment the first time it touches this region. Useful to work around timing issues, e.g. help prevent the player from winning a race against another character. There are some UI improvements to the Doodad Dropper window: * If the first page of doodads is short, extra spacers are added so the alignment and size shows correctly. * Added a 'background pattern' to the window: any unoccupied icon space has an inset rectangle slot. * "Last pages" which are short still render weirdly without reserving the correct height in the TabFrame. Doodad scripting engine updates: * Self.Hide() and Self.Show() available. * Subscribe to "broadcast:ready" to know when the level is ready, so you can safely Publish messages without deadlocks!
89 lines
2.9 KiB
Bash
Executable File
89 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# fpm-bundle: create bundles for the app.
|
|
|
|
# Add the user-level "gem install fpm" to the $PATH.
|
|
# Might need fixing over time.
|
|
export PATH="$PATH:$HOME/.local/share/gem/ruby/3.0.0/bin"
|
|
|
|
INSTALL_ROOT="/opt/sketchy-maze"
|
|
LAUNCHER_FILENAME="etc/linux/net.kirsle.ProjectDoodle.desktop"
|
|
LAUNCHER_ROOT="/usr/share/applications" # Where the .desktop file goes.
|
|
ICON_ROOT="/usr/share/icons/hicolor/"
|
|
|
|
# Find out how many levels up we need to go, so this
|
|
# script can run from either of these locations:
|
|
# ./dist/sketchymaze-$version/
|
|
# ./dist/stage/$version/linux/
|
|
UPLEVELS="."
|
|
if [[ -f "../../${LAUNCHER_FILENAME}" ]]; then
|
|
# run from a ./dist/x folder.
|
|
UPLEVELS="../.."
|
|
elif [[ -f "../../../../${LAUNCHER_FILENAME}" ]]; then
|
|
# run from a release stage folder
|
|
UPLEVELS="../../../.."
|
|
else
|
|
echo Did not find ${LAUNCHER_FILENAME} relative to your working directory.
|
|
echo Good places to run this script include:
|
|
echo " * ./dist/sketchymaze-\$version/ (as in 'make dist')"
|
|
echo " * ./dist/stage/\$version/linux/ (as in 'make release')"
|
|
exit 1
|
|
fi
|
|
|
|
VERSION=`egrep -e 'Version\s+=' ${UPLEVELS}/pkg/branding/branding.go | head -n 1 | cut -d '"' -f 2`
|
|
LAUNCHER_FILE="${UPLEVELS}/${LAUNCHER_FILENAME}"
|
|
|
|
if [[ ! -f "./sketchymaze" ]]; then
|
|
echo Run this script from the directory containing the Doodle binary.
|
|
echo This is usually at /dist/doodle-VERSION/ relative to the git root.
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$LAUNCHER_FILE" ]]; then
|
|
echo "Didn't find Linux desktop launcher relative to current folder."
|
|
echo "I looked at $LAUNCHER_FILE."
|
|
exit 1
|
|
fi
|
|
|
|
# Clean previous artifacts.
|
|
rm *.rpm *.deb
|
|
|
|
# Create the root structure.
|
|
mkdir -p root
|
|
mkdir -p root$INSTALL_ROOT root$LAUNCHER_ROOT
|
|
cp * root$INSTALL_ROOT/
|
|
cp $LAUNCHER_FILE root$LAUNCHER_ROOT/
|
|
|
|
# Copy icons in.
|
|
mkdir -p root$ICON_ROOT/{256x256,128x128,64x64,32x32,16x16}/apps
|
|
cp ${UPLEVELS}/etc/icons/256.png "root${ICON_ROOT}256x256/apps/project-doodle.png"
|
|
cp ${UPLEVELS}/etc/icons/128.png "root${ICON_ROOT}128x128/apps/project-doodle.png"
|
|
cp ${UPLEVELS}/etc/icons/64.png "root$ICON_ROOT/64x64/apps/project-doodle.png"
|
|
cp ${UPLEVELS}/etc/icons/32.png "root$ICON_ROOT/32x32/apps/project-doodle.png"
|
|
cp ${UPLEVELS}/etc/icons/16.png "root$ICON_ROOT/16x16/apps/project-doodle.png"
|
|
|
|
# Copy runtime package and guidebook
|
|
cp -r guidebook rtp "root$INSTALL_ROOT/"
|
|
|
|
echo =====================
|
|
echo Starting fpm package build.
|
|
echo =====================
|
|
|
|
# RPM Package
|
|
fpm -C ./root -s dir -t rpm \
|
|
-d SDL2 -d SDL2_ttf -a i386 \
|
|
-n sketchy-maze -v ${VERSION} \
|
|
--license="Copyright" \
|
|
--maintainer=noah@kirsle.net \
|
|
--description="Sketchy Maze - A drawing-based maze game." \
|
|
--url="https://www.sketchymaze.com"
|
|
|
|
# Debian Package
|
|
fpm -C ./root -s dir -t deb \
|
|
-d libsdl2 -d libsdl2-ttf -a i386 \
|
|
-n sketchy-maze -v ${VERSION} \
|
|
--license="Copyright" \
|
|
--maintainer=noah@kirsle.net \
|
|
--description="Sketchy Maze - A drawing-based maze game." \
|
|
--url="https://www.sketchymaze.com"
|