Skip to content

Commit d84890c

Browse files
authored
Merge pull request #1352 from son-link/main
New port: EntroPipes
2 parents 2512adf + 13f296b commit d84890c

File tree

8 files changed

+839
-0
lines changed

8 files changed

+839
-0
lines changed

ports/entropipes/EntroPipes.sh

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/bin/bash
2+
3+
XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
4+
5+
if [ -d "/opt/system/Tools/PortMaster/" ]; then
6+
controlfolder="/opt/system/Tools/PortMaster"
7+
elif [ -d "/opt/tools/PortMaster/" ]; then
8+
controlfolder="/opt/tools/PortMaster"
9+
elif [ -d "$XDG_DATA_HOME/PortMaster/" ]; then
10+
controlfolder="$XDG_DATA_HOME/PortMaster"
11+
else
12+
controlfolder="/roms/ports/PortMaster"
13+
fi
14+
15+
source $controlfolder/control.txt
16+
17+
[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"
18+
19+
get_controls
20+
21+
GAMEDIR=/$directory/ports/entropipes
22+
CONFDIR="$GAMEDIR/conf"
23+
PYXEL_PKG="entropipes.pyxapp"
24+
25+
cd "${GAMEDIR}"
26+
27+
> "${GAMEDIR}/log.txt" && exec > >(tee "${GAMEDIR}/log.txt") 2>&1
28+
29+
mkdir -p "$GAMEDIR/conf"
30+
bind_directories "$HOME/.config/.pyxel/entropipes" "$CONFDIR"
31+
# note: replace gamename with the appropriate value for the game
32+
33+
# Load Pyxel runtime
34+
runtime="pyxel_2.2.8_python_3.11"
35+
export pyxel_dir="$HOME/pyxel"
36+
mkdir -p "${pyxel_dir}"
37+
38+
if [ ! -f "$controlfolder/libs/${runtime}.squashfs" ]; then
39+
# Check for runtime if not downloaded via PM
40+
if [ ! -f "$controlfolder/harbourmaster" ]; then
41+
pm_message "This port requires the latest PortMaster to run, please go to https://portmaster.games/ for more info."
42+
sleep 5
43+
exit 1
44+
fi
45+
46+
$ESUDO $controlfolder/harbourmaster --quiet --no-check runtime_check "${runtime}.squashfs"
47+
fi
48+
49+
if [[ "$PM_CAN_MOUNT" != "N" ]]; then
50+
$ESUDO umount "${pyxel_dir}"
51+
fi
52+
53+
$ESUDO mount "$controlfolder/libs/${runtime}.squashfs" "${pyxel_dir}"
54+
55+
export SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig"
56+
57+
$GPTOKEYB "pyxel" &
58+
59+
pm_platform_helper "${pyxel_dir}/bin/pyxel"
60+
61+
# Enable Pyxel virtual env
62+
source "${pyxel_dir}/bin/activate"
63+
export PYTHONHOME="${pyxel_dir}"
64+
export PYTHONPYCACHEPREFIX="${GAMEDIR}/${runtime}.cache"
65+
66+
# play the pyxel package stored in gamedata
67+
"${pyxel_dir}/bin/pyxel" play "${GAMEDIR}/${PYXEL_PKG}"
68+
69+
# Alternatively, run a python script file
70+
# "${pyxel_dir}/bin/pyxel" run gamedata/main.py
71+
72+
if [[ "$PM_CAN_MOUNT" != "N" ]]; then
73+
$ESUDO umount "${pyxel_dir}"
74+
fi
75+
76+
pm_finish

ports/entropipes/README.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# EntroPipes
2+
3+
https://codeberg.org/son_link/EntroPipes
4+
5+
© 2015-2025 Alfonso Saavedra "Son Link" http://son-link.github.io
6+
7+
EntroPipes is a puzzle type game programming on **Python** and the retro game engine [Pyxel](https://github.com/kitao/pyxel/) for **Linux**, **Windows**, Linux base game consoles (like R36S, Anbernic, etc.) and Web Browsers.
8+
9+
Under **GPL 3** license
10+
11+
Based on original idea of [Z80St Software](https://sites.google.com/site/z80stsoftware) and porting for the previous version make with LUA and [TIC-80](https://tic80.com/)
12+
13+
The objective is to rotate the pipes until they are all joined together before time runs out. At the end of each level an extra time is added and points are added for the remaining seconds.
14+
15+
## Installation:
16+
17+
Simply download the correct archive for your system, extract and double-click on the executable. It's as simple as that.
18+
19+
## Download:
20+
* [Last releases](https://codeberg.org/son_link/EntroPipes)
21+
* [Itch](https://son-link.itch.io/entropipes)
22+
* [Online](https://son_link.codeberg.page/entropipes)
23+
* PortMaster: Soon
24+
25+
## How to play:
26+
27+
### Main menu
28+
29+
|Gamepad|Keyboard|Action|
30+
|-------|--------|------|
31+
|D-pad|Arrow keys|Up/Down for select option. Left/Right: Change puzzle size|
32+
|A|Z|Confirm|
33+
|B|X|Return to main menu from Top Score and How to play|
34+
35+
### In game
36+
37+
|Gamepad|Keyboard|Action|
38+
|-------|--------|------|
39+
|D-pad|Arrow keys|Move cursor|
40+
|A|Z|Rotate pipe|
41+
|Start|Enter|Pause game
42+
|Select/Option|Space|If game is paused, return to main menu|
43+
44+
Press **Scape** on Linux/Windows to close the game.
45+
46+
## Puzzle editor:
47+
48+
The puzzle editor is written on HTML and Javascript and based on the original puzzle editor make by Z80St. Simply open **editor/index.html** on your favorite web browser (tested on **Firefox** and **Chrome**) or use the online version [available here](https://son_link.codeberg.page/entropipes_editor/) and create a new issue or send push merge.
49+
50+
The font of the icons has been created with (Fontello)[https://fontello.com/] and the icon pack (Pixelarticons)[https://github.com/halfmage/pixelarticons] (under MIT license).

ports/entropipes/cover.png

42.7 KB
Loading
11 KB
Binary file not shown.

0 commit comments

Comments
 (0)