diff --git a/.vscode/tasks.json b/.vscode/tasks.json index cfe2b7d..488b9e0 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -16,7 +16,7 @@ { "label": "Build & Run", "type": "shell", - "command": "make clean && make build && ./bin/pncdsl-demo", + "command": "make clean && make build && ./bin/inkwell-demo", "problemMatcher": [] }, { diff --git a/.woodpecker.yml b/.woodpecker.yml index d6c619a..1d6ea0e 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -9,9 +9,9 @@ steps: image: golang:1.26.3-alpine commands: - apk add --no-cache zip make curl git - # The go.mod may point at a local ../pncdsl checkout (see README); + # The go.mod may point at a local ../inkwell checkout (see README); # in CI clone the framework next to the workspace so it resolves. - - if grep -q '=> \.\./pncdsl' go.mod; then git clone https://git.teletypegames.org/games/pncdsl ../pncdsl; fi + - if grep -q '=> \.\./inkwell' go.mod; then git clone https://git.teletypegames.org/games/inkwell ../inkwell; fi - make ci-export - name: artifact diff --git a/Makefile b/Makefile index c2cc339..bffd139 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # Makefile – Ebitengine project builder # ----------------------------------------- -PROJECT = pncdsl-demo +PROJECT = inkwell-demo BIN_DIR = bin DIST_DIR = dist diff --git a/README.md b/README.md index 2267c1d..6eb7957 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# pncdsl-demo — Morning Coffee +# inkwell-demo — Morning Coffee A short point-and-click adventure built on the -[`pncdsl`](https://git.teletypegames.org/games/pncdsl) framework. Two scenes, +[`inkwell`](https://git.teletypegames.org/games/inkwell) framework. Two scenes, three items, one NPC dialog and an ending cutscene — small on purpose, designed as an end-to-end reference for someone learning the library. @@ -9,12 +9,12 @@ designed as an end-to-end reference for someone learning the library. The library is fetched as a regular Go module. Prerequisites: Go 1.24+ and SSH access to `git.teletypegames.org` (the private host that serves the -`pncdsl` repo). +`inkwell` repo). ```bash -git clone ssh://git@git.teletypegames.org:2222/games/pncdsl-demo -cd pncdsl-demo -go mod tidy # fetches git.teletypegames.org/games/pncdsl +git clone ssh://git@git.teletypegames.org:2222/games/inkwell-demo +cd inkwell-demo +go mod tidy # fetches git.teletypegames.org/games/inkwell go run . ``` @@ -37,10 +37,10 @@ permanent.) ### Local-development override While iterating on the framework and the demo in parallel, point Go at a -local checkout of `pncdsl` with a temporary `replace` directive: +local checkout of `inkwell` with a temporary `replace` directive: ```bash -go mod edit -replace=git.teletypegames.org/games/pncdsl=../pncdsl +go mod edit -replace=git.teletypegames.org/games/inkwell=../inkwell go mod tidy ``` @@ -55,7 +55,7 @@ per file, no constructor functions. `main.go` only calls `lib.Run()`. main.go embeds assets/ (go:embed) and calls lib.Run() lib/ setup.go Run() and Build(); the only wiring code - assets.go var Assets []pncdsl.Asset + assets.go var Assets []inkwell.Asset flags.go flag-name constants character.player.go var Player character.cat.go var Cat @@ -75,7 +75,7 @@ one `Register(...)` line in `lib/setup.go`. No registrar functions, no indirection. The `assets/` tree is compiled into the binary via `go:embed` and -handed to the framework through `pncdsl.AssetFS`, so the js/wasm build +handed to the framework through `inkwell.AssetFS`, so the js/wasm build (`make wasm`) ships with working art. Native builds read from the same embedded copy — changing a PNG requires a rebuild. Files listed in `lib/assets.go` but missing from `assets/` still fall back to the diff --git a/go.mod b/go.mod index 99acefd..1ba0b08 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,9 @@ -module git.teletypegames.org/games/pncdsl-demo +module git.teletypegames.org/games/inkwell-demo go 1.26.3 require ( - git.teletypegames.org/games/pncdsl v0.0.0-00010101000000-000000000000 + git.teletypegames.org/games/inkwell v0.0.0-00010101000000-000000000000 github.com/hajimehoshi/ebiten/v2 v2.9.9 ) @@ -20,4 +20,4 @@ require ( golang.org/x/sys v0.36.0 // indirect ) -replace git.teletypegames.org/games/pncdsl => ../pncdsl +replace git.teletypegames.org/games/inkwell => ../inkwell diff --git a/lib/assets.go b/lib/assets.go index 83460f6..88f668e 100644 --- a/lib/assets.go +++ b/lib/assets.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" // Assets lists every asset the game references. Files don't need to // exist on disk — the library substitutes deterministic colored diff --git a/lib/character.cat.go b/lib/character.cat.go index 9387c40..0dd1b5d 100644 --- a/lib/character.cat.go +++ b/lib/character.cat.go @@ -3,7 +3,7 @@ package lib import ( "image/color" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) var Cat = p.Character{ diff --git a/lib/character.player.go b/lib/character.player.go index 9ea235e..dee0cbb 100644 --- a/lib/character.player.go +++ b/lib/character.player.go @@ -3,7 +3,7 @@ package lib import ( "image/color" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) var Player = p.Character{ diff --git a/lib/dialog.cat_morning.go b/lib/dialog.cat_morning.go index b219f1a..81b7141 100644 --- a/lib/dialog.cat_morning.go +++ b/lib/dialog.cat_morning.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var CatMorning = p.Dialogue{ Name: "cat_morning", diff --git a/lib/item.beans.go b/lib/item.beans.go index 1ad9a26..56c2ccb 100644 --- a/lib/item.beans.go +++ b/lib/item.beans.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var Beans = p.Item{ Name: "beans", diff --git a/lib/item.key.go b/lib/item.key.go index c5439eb..dcee727 100644 --- a/lib/item.key.go +++ b/lib/item.key.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var Key = p.Item{ Name: "key", diff --git a/lib/item.mug.go b/lib/item.mug.go index bc61f3f..d9777e5 100644 --- a/lib/item.mug.go +++ b/lib/item.mug.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var Mug = p.Item{ Name: "mug", diff --git a/lib/scene.bedroom.go b/lib/scene.bedroom.go index ca6fa80..c1b260f 100644 --- a/lib/scene.bedroom.go +++ b/lib/scene.bedroom.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var Bedroom = p.Scene{ Name: "bedroom", diff --git a/lib/scene.kitchen.go b/lib/scene.kitchen.go index 6ca7c52..abe7d70 100644 --- a/lib/scene.kitchen.go +++ b/lib/scene.kitchen.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var Kitchen = p.Scene{ Name: "kitchen", diff --git a/lib/script.intro.go b/lib/script.intro.go index 2c70ce8..364885f 100644 --- a/lib/script.intro.go +++ b/lib/script.intro.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var IntroScript = p.Script{ Name: "intro", diff --git a/lib/script.victory.go b/lib/script.victory.go index 4a0bf62..df9ebf4 100644 --- a/lib/script.victory.go +++ b/lib/script.victory.go @@ -1,6 +1,6 @@ package lib -import p "git.teletypegames.org/games/pncdsl" +import p "git.teletypegames.org/games/inkwell" var VictoryScript = p.Script{ Name: "victory", diff --git a/lib/setup.go b/lib/setup.go index 027362f..c50f7fd 100644 --- a/lib/setup.go +++ b/lib/setup.go @@ -3,10 +3,10 @@ package lib import ( "log" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) -// Run builds the game and hands it to the pncdsl engine. It is the +// Run builds the game and hands it to the inkwell engine. It is the // single entry point referenced from main.go. func Run() { if err := p.Run(Build()); err != nil { @@ -50,7 +50,7 @@ func Build() *p.Game { p.RegisterRichUI(g, "", "cat") // Replace the framework's in-game ChatLog with the demo's own // click-and-type GameChat panel — game-independent chatter that - // does not belong in the pncdsl library. + // does not belong in the inkwell library. g.UIManager.Remove("chat") g.UIManager.Register(Chat) // Swap the rich UI's always-visible verb wheel for a right-click, diff --git a/lib/theme.go b/lib/theme.go index b41b83f..d0d8aeb 100644 --- a/lib/theme.go +++ b/lib/theme.go @@ -3,7 +3,7 @@ package lib import ( "image/color" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) // MorningCoffeeTheme is the game-specific palette: warm coffee browns diff --git a/lib/widget.gamechat.go b/lib/widget.gamechat.go index e030c22..250eb96 100644 --- a/lib/widget.gamechat.go +++ b/lib/widget.gamechat.go @@ -9,7 +9,7 @@ import ( "github.com/hajimehoshi/ebiten/v2/inpututil" "github.com/hajimehoshi/ebiten/v2/vector" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) // GameChat is a stand-alone chat panel: click to focus, type a message, @@ -190,11 +190,11 @@ func (c *GameChat) Draw(dst *ebiten.Image, ctx *p.UICtx) { vector.DrawFilledRect(dst, float32(b.X), float32(inY), float32(b.W), 1, border, false) } -// BlocksClickAt implements the pncdsl clickBlocker contract so the +// BlocksClickAt implements the inkwell clickBlocker contract so the // verb-coin doesn't pop up over the chat panel. func (c *GameChat) BlocksClickAt(pt p.Point) bool { return c.Bounds.Contains(pt) } -// chatTextWidth mirrors the pncdsl text width estimate for the bundled +// chatTextWidth mirrors the inkwell text width estimate for the bundled // debug font (~6 px / glyph). Kept private to the demo. func chatTextWidth(s string) int { return len(s) * 6 } diff --git a/lib/widget.savekeys.go b/lib/widget.savekeys.go index 03ed2ec..49372e0 100644 --- a/lib/widget.savekeys.go +++ b/lib/widget.savekeys.go @@ -4,7 +4,7 @@ import ( "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/inpututil" - p "git.teletypegames.org/games/pncdsl" + p "git.teletypegames.org/games/inkwell" ) // SaveKeys is a no-draw widget that binds F5 → Save(slot 0) and diff --git a/main.go b/main.go index 3e39a66..dfadda2 100644 --- a/main.go +++ b/main.go @@ -3,8 +3,8 @@ package main import ( "embed" - p "git.teletypegames.org/games/pncdsl" - "git.teletypegames.org/games/pncdsl-demo/lib" + p "git.teletypegames.org/games/inkwell" + "git.teletypegames.org/games/inkwell-demo/lib" ) // The asset tree is compiled into the binary so the js/wasm build can diff --git a/metadata.json b/metadata.json index c2c4e33..a4624df 100644 --- a/metadata.json +++ b/metadata.json @@ -1,9 +1,9 @@ { - "name": "pncdsl-demo", + "name": "inkwell-demo", "title": "Morning Coffee", "author": "Teletype Games", - "desc": "A short point-and-click adventure built on the pncdsl framework", - "site": "https://git.teletypegames.org/games/pncdsl-demo", + "desc": "A short point-and-click adventure built on the inkwell framework", + "site": "https://git.teletypegames.org/games/inkwell-demo", "license": "MIT License", "version": "1.0.0" }