Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ dist-ssr

.env
public/discord-users.json
/public/sprites
56 changes: 54 additions & 2 deletions build-sprites.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,68 @@
#!/bin/sh
#!/usr/bin/env bash

ROOT="$(git rev-parse --show-toplevel)"
SRC="$ROOT/sprites"
TMP="$(mktemp -d)/sprites"
DEST="$ROOT/public/sprites"

rm -rf "$DEST"

sub_inputs=(220022 440044 aa00aa ff00ff)

declare -A palettes=(
[lightblue]="#305182 #4192c3 #61d3e3 #a2fff3"
[turqoise]="#165950 #189572 #37da94 #a0ffc2"
[green]="#006130 #19a239 #5ff040 #ccffad"
[lime]="#263e0a #6e8d1b #bee344 #edff89"
[yellow]="#6d3c05 #b87a0c #ffd42d #fff392"
[orange]="#732200 #c64b01 #ff8b17 #ffdba2"
[warmred]="#681d27 #ae2b28 #ff5d32 #ffae93"
[red]="#641b3b #9d193c #ff4656 #ff9ba1"
[magenta]="#612b79 #9c37ba #f75aff #ffa9f0"
[purple]="#342561 #6b42a7 #b76cff #e2abff"
[indigo]="#1f1d51 #3e3c8b #6979e8 #88baff"
[blue]="#19295b #305faa #3f9eff #8ad1ff"
[white]="#535353 #8a8a8a #c6c6c6 #ffffff"
)

find "$SRC" -type f -name '*.aseprite' | while read -r file; do
rel="${file#"$SRC"/}"
out="$DEST/${rel%.aseprite}.png"
out="$TMP/${rel%.aseprite}.png"

mkdir -p "$(dirname "$out")"

aseprite \
--batch "$file" \
--save-as "$out"
done

run_with_palette() {
local in="$1" out="$2" palette_str="$3"
local s1 s2 s3 s4
read -r s1 s2 s3 s4 <<< "$palette_str"

png-subs "$in" "$out" \
--subs "${sub_inputs[0]}" "${s1#"#"}" \
--subs "${sub_inputs[1]}" "${s2#"#"}" \
--subs "${sub_inputs[2]}" "${s3#"#"}" \
--subs "${sub_inputs[3]}" "${s4#"#"}"
}


find "$TMP" -type f -name '*.png' | while read -r file; do
rel="${file#"$TMP"/}"
out_rel="${rel//\/substitute\//\/}"
dest_base="$DEST/${out_rel%.png}"

mkdir -p "$(dirname "$dest_base")"

if [[ "$rel" == *"/substitute/"* ]]; then
for name in "${!palettes[@]}"; do
out="${dest_base}-${name}.png"
run_with_palette "$file" "$out" "${palettes[$name]}"
done
else
out="${dest_base}.png"
png-subs "$file" "$out"
fi
done
133 changes: 129 additions & 4 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";

png-subs.url = "https://git.geenit.nl/noa/png-subs/archive/main.tar.gz";
};

outputs =
{
nixpkgs,
flake-utils,
png-subs,
...
}:
flake-utils.lib.eachDefaultSystem (
Expand All @@ -19,6 +22,7 @@
inherit system;
config.allowUnfree = true;
};
png-sub = png-subs.packages.${system}.default;
in
{
devShells.default = pkgs.mkShell {
Expand All @@ -27,6 +31,7 @@
http-server
bun
aseprite
png-sub
(pkgs.writeShellApplication {
name = "aseprite-export";

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "node fetch-discord-users && vite build",
"build": "node fetch-discord-users && ./build-sprites.sh && vite build",
"preview": "vite preview",
"sprites": "./build-sprites.sh",
"deploy": "npm run build && gh-pages -d dist --nojekyll --cname elementipelago.peppidesu.dev"
"deploy": "bun run build && gh-pages -d dist --nojekyll --cname elementipelago.peppidesu.dev"
},
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "^6.2.4",
Expand Down
Binary file removed public/sprites/elements/apple.png
Binary file not shown.
Binary file removed public/sprites/elements/armor.png
Binary file not shown.
Binary file removed public/sprites/elements/ball.png
Binary file not shown.
Binary file removed public/sprites/elements/berry.png
Binary file not shown.
Binary file removed public/sprites/elements/boat.png
Binary file not shown.
Binary file removed public/sprites/elements/book.png
Binary file not shown.
Binary file removed public/sprites/elements/boots.png
Binary file not shown.
Binary file removed public/sprites/elements/bow.png
Binary file not shown.
Binary file removed public/sprites/elements/car.png
Binary file not shown.
Binary file removed public/sprites/elements/chest.png
Binary file not shown.
Binary file removed public/sprites/elements/coin.png
Binary file not shown.
Binary file removed public/sprites/elements/egg.png
Binary file not shown.
Binary file removed public/sprites/elements/element.png
Binary file not shown.
Binary file removed public/sprites/elements/emerald.png
Binary file not shown.
Binary file removed public/sprites/elements/fire.png
Binary file not shown.
Binary file removed public/sprites/elements/gun.png
Binary file not shown.
Binary file removed public/sprites/elements/hammer.png
Binary file not shown.
Binary file removed public/sprites/elements/hat.png
Binary file not shown.
Binary file removed public/sprites/elements/heart.png
Binary file not shown.
Binary file removed public/sprites/elements/hourglass.png
Binary file not shown.
Binary file removed public/sprites/elements/house.png
Binary file not shown.
Binary file removed public/sprites/elements/ice.png
Binary file not shown.
Binary file removed public/sprites/elements/key.png
Binary file not shown.
Binary file removed public/sprites/elements/leaf.png
Binary file not shown.
Binary file removed public/sprites/elements/magic.png
Binary file not shown.
Binary file removed public/sprites/elements/map.png
Diff not rendered.
Binary file removed public/sprites/elements/marker.png
Diff not rendered.
Binary file removed public/sprites/elements/metal.png
Diff not rendered.
Binary file removed public/sprites/elements/money.png
Diff not rendered.
Binary file removed public/sprites/elements/music.png
Diff not rendered.
Binary file removed public/sprites/elements/piece.png
Diff not rendered.
Binary file removed public/sprites/elements/potion.png
Diff not rendered.
Binary file removed public/sprites/elements/quest.png
Diff not rendered.
Binary file removed public/sprites/elements/ring.png
Diff not rendered.
Binary file removed public/sprites/elements/rock.png
Diff not rendered.
Binary file removed public/sprites/elements/sand.png
Diff not rendered.
Binary file removed public/sprites/elements/sign.png
Diff not rendered.
Binary file removed public/sprites/elements/skull.png
Diff not rendered.
Binary file removed public/sprites/elements/spear.png
Diff not rendered.
Binary file removed public/sprites/elements/sword.png
Diff not rendered.
Binary file removed public/sprites/elements/tree.png
Diff not rendered.
Binary file removed public/sprites/elements/upgrade.png
Diff not rendered.
Binary file removed public/sprites/elements/void.png
Diff not rendered.
Binary file removed public/sprites/elements/wand.png
Diff not rendered.
Binary file removed public/sprites/elements/water.png
Diff not rendered.
Binary file added public/sprites/ui/broom.png
Binary file removed public/sprites/ui/burger.png
Diff not rendered.
Binary file removed public/sprites/ui/chat.png
Diff not rendered.
Binary file removed public/sprites/ui/check.png
Diff not rendered.
Binary file removed public/sprites/ui/download.png
Diff not rendered.
Binary file removed public/sprites/ui/hint1.png
Diff not rendered.
Binary file removed public/sprites/ui/hint2.png
Diff not rendered.
Binary file removed public/sprites/ui/new.png
Diff not rendered.
Binary file removed public/sprites/ui/settings.png
Diff not rendered.
Binary file removed sprites/elements/apple.aseprite
Binary file not shown.
Binary file removed sprites/elements/armor.aseprite
Binary file not shown.
Binary file removed sprites/elements/ball.aseprite
Binary file not shown.
Binary file removed sprites/elements/berry.aseprite
Binary file not shown.
Binary file removed sprites/elements/boat.aseprite
Binary file not shown.
Binary file removed sprites/elements/book.aseprite
Binary file not shown.
Binary file removed sprites/elements/boots.aseprite
Binary file not shown.
Binary file removed sprites/elements/car.aseprite
Binary file not shown.
Binary file added sprites/elements/cave.aseprite
Binary file not shown.
Binary file removed sprites/elements/chest.aseprite
Binary file not shown.
Binary file added sprites/elements/desert.aseprite
Binary file not shown.
Binary file removed sprites/elements/element.aseprite
Binary file not shown.
Binary file removed sprites/elements/emerald.aseprite
Binary file not shown.
Binary file removed sprites/elements/hat.aseprite
Binary file not shown.
Binary file removed sprites/elements/heart.aseprite
Binary file not shown.
Binary file added sprites/elements/hills.aseprite
Binary file not shown.
Binary file modified sprites/elements/ice.aseprite
Binary file not shown.
Binary file added sprites/elements/island.aseprite
Binary file not shown.
Binary file modified sprites/elements/key.aseprite
Binary file not shown.
Binary file removed sprites/elements/leaf.aseprite
Binary file not shown.
Binary file removed sprites/elements/magic.aseprite
Binary file not shown.
Binary file modified sprites/elements/map.aseprite
Binary file not shown.
Binary file removed sprites/elements/marker.aseprite
Binary file not shown.
Binary file removed sprites/elements/metal.aseprite
Binary file not shown.
Binary file modified sprites/elements/money.aseprite
Binary file not shown.
Binary file added sprites/elements/mountains.aseprite
Binary file not shown.
Binary file removed sprites/elements/music.aseprite
Binary file not shown.
Binary file added sprites/elements/planet.aseprite
Binary file not shown.
Binary file removed sprites/elements/potion.aseprite
Binary file not shown.
Binary file removed sprites/elements/sand.aseprite
Binary file not shown.
Binary file added sprites/elements/shop.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/apple.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/armor.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/ball.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/berry.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/boat.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/book.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/boots.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/car.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/chest.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/element.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/emerald.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/hat.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/heart.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/leaf.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/magic.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/marker.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/metal.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/music.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/potion.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/sand.aseprite
Binary file not shown.
Binary file added sprites/elements/substitute/wand.aseprite
Binary file not shown.
Binary file modified sprites/elements/sword.aseprite
Binary file not shown.
Binary file removed sprites/elements/wand.aseprite
Binary file not shown.
Binary file added sprites/ui/broom.aseprite
Binary file not shown.
12 changes: 9 additions & 3 deletions src/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Tray from "./lib/components/Tray.svelte";
import Settings from "./lib/components/Settings.svelte";
import Hints from "./lib/components/Hints.svelte";
import { moveDragging } from "./lib/state/playfield.svelte";
import { mounted, moveDragging, unmountElem } from "./lib/state/playfield.svelte";

let openWindow = $state("");
/** @type {Playfield} */
Expand Down Expand Up @@ -45,10 +45,16 @@
</div>
{/if}
<Tray
handler={(/** @type {string} */ btn) => {
{connected}
handler={(btn) => {
if (btn == "clear") {
mounted.entries().forEach(([idx, elem]) => {
unmountElem(elem, idx);
});
return;
}
openWindow = btn;
}}
{connected}
/>

<Toast />
Expand Down
19 changes: 18 additions & 1 deletion src/lib/components/Chat.svelte
Original file line number Diff line number Diff line change
@@ -1,13 +1,30 @@
<script>
import { apstore } from "../state/apclient.svelte";
import Window from "./Window.svelte";
import { toast_queue } from "../state/toast.svelte";

let { show, onClose } = $props();

let msgs = $state([]);
let sendContent = $state("");

apstore.client.messages.on("message", (msg, _) => {
apstore.client.messages.on("connected", (msg, player) => {
toast_queue.push({
title: `${player.alias} joined.`,
description: `Team #${player.team + 1} - ${player.game}`,
image: "/sprites/elements/void.png",
});
});

apstore.client.messages.on("disconnected", (msg, player) => {
toast_queue.push({
title: `${player.alias} left.`,
description: `Team #${player.team + 1} - ${player.game}`,
image: "/sprites/elements/void.png",
});
});

apstore.client.messages.on("message", (msg, nodes) => {
msgs.push(msg);
});

Expand Down
Loading